|  |  |  | @ -16,26 +16,67 @@ func Test_Lexer(t *testing.T) { | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "wikilink", in: "[[wikilink]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemText, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "wikilink|display name", in: "[[wikilink|display name]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemText, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemAlias, Val: "|"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemText, Val: "display name"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "display name"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "wikilink|display name|second pipe", in: "[[wikilink|display name|second pipe]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemAlias, Val: "|"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "display name"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemAlias, Val: "|"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "second pipe"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "wikilink with numeric alias|420|second pipe", in: "[[wikilink|420|second pipe]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemAlias, Val: "|"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "420"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemAlias, Val: "|"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "second pipe"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "wikilink with spaces in filename", in: "[[wikilink spaces]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "wikilink spaces"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "#heading", in: "[[#heading]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemHeading, Val: "#"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "heading"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			name: "wikilink#heading", in: "[[wikilink#heading]]", expected: []wikilink.Item{ | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemOpenLink, Val: "[["}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "wikilink"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemHeading, Val: "#"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemIdent, Val: "heading"}, | 
		
	
		
			
				|  |  |  |  | 				{Typ: wikilink.ItemCloseLink, Val: "]]"}, | 
		
	
		
			
				|  |  |  |  | 			}, | 
		
	
		
			
				|  |  |  |  | 		}, | 
		
	
		
			
				|  |  |  |  | 		// {name: "", in: "", expected: []wikilink.ItemType{wikilink.ItemOpenLink, wikilink.ItemText, wikilink.ItemAlias, wikilink.ItemText, wikilink.ItemCloseLink}},
 | 
		
	
		
			
				|  |  |  |  | 		/* | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink|display name|second pipe", in: "[[wikilink|display name|second pipe]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink with numeric alias|420|second pipe", in: "[[wikilink|420|second pipe]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink with spaces in filename", in: "[[wikilink spaces]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "#heading", in: "[[#heading]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink#heading", in: "[[wikilink#heading]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "", in: "", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink#heading|display name", in: "[[wikilink#heading|display name]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink#heading|display name|second pipe", in: "[[wikilink#heading|display name|second pipe]]", expected: []wikilink.ItemType{}}, | 
		
	
		
			
				|  |  |  |  | 			{name: "wikilink with numeric aliases#heading|420|display name", in: "[[wikilink#heading|420|second pipe]]", expected: []wikilink.ItemType{}}, | 
		
	
	
		
			
				
					|  |  |  | @ -55,12 +96,12 @@ func Test_Lexer(t *testing.T) { | 
		
	
		
			
				|  |  |  |  | 			for _, e := range tc.expected { | 
		
	
		
			
				|  |  |  |  | 				n := l.NextItem() | 
		
	
		
			
				|  |  |  |  | 				if e.Typ != n.Typ { | 
		
	
		
			
				|  |  |  |  | 					t.Logf("expected Type %s, received %s with raw value %q", e.String(), n, n.Val) | 
		
	
		
			
				|  |  |  |  | 					t.Logf("expected Type %s, received %s", e.Typ.String(), n.Typ.String()) | 
		
	
		
			
				|  |  |  |  | 					t.Fail() | 
		
	
		
			
				|  |  |  |  | 				} | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 				if e.Val != n.Val { | 
		
	
		
			
				|  |  |  |  | 					t.Logf("expected Value %s, received %s with raw value %q", e.String(), n, n.Val) | 
		
	
		
			
				|  |  |  |  | 					t.Logf("expected Value %q, received %q", e.Val, n.Val) | 
		
	
		
			
				|  |  |  |  | 					t.Fail() | 
		
	
		
			
				|  |  |  |  | 				} | 
		
	
		
			
				|  |  |  |  | 			} | 
		
	
	
		
			
				
					|  |  |  | 
 |