markdown :: TokenWikiLink :: defaultinit
# A NitiWiki link token.
#
# Something of the form `[[foo]]`.
#
# Allowed formats:
#
# * `[[Wikilink]]`
# * `[[Wikilink/Bar]]`
# * `[[Wikilink#foo]]`
# * `[[Wikilink/Bar#foo]]`
# * `[[title|Wikilink]]`
# * `[[title|Wikilink/Bar]]`
# * `[[title|Wikilink/Bar#foo]]`
class TokenWikiLink
	super TokenLink
	redef fun emit_hyper(v) do
		v.decorator.add_wikilink(v, self)
	end
	redef fun check_link(v, out, start, token) do
		var md = v.current_text
		if md == null then return -1
		var pos = start + 2
		var tmp = new FlatBuffer
		pos = md.read_md_link_id(tmp, pos)
		if pos < start then return -1
		var name = tmp.write_to_string
		if name.has("|") then
			var parts = name.split_once_on("|")
			self.name = parts.first
			self.link = parts[1]
		else
			self.name = null
			self.link = name
		end
		pos += 1
		pos = md.skip_spaces(pos)
		if pos < start then return -1
		return pos
	end
end
					lib/markdown/wikilinks.nit:53,1--94,3