class Kramdown::Parser::RFC2629Kramdown

def initialize(*doc)

def initialize(*doc)
  super
  @span_parsers.unshift(:xref)
  @span_parsers.unshift(:iref)
end

def parse_iref

Introduce new (((target))) syntax for irefs
def parse_iref
  @src.pos += @src.matched_size
  href = @src[1]
  el = Element.new(:iref, nil, {'target' => href}) # XXX
  @tree.children << el
end

def parse_xref

(I'd rather use [[target]], but that somehow clashes with links.)
otherwise be an ugly ![!](target) or ![ ](target)
Introduce new {{target}} syntax for empty xrefs, which would
def parse_xref
  @src.pos += @src.matched_size
  href = @src[1]
  href = href.gsub(/\A[0-9]/) { "_#{$&}" } # can't start an IDREF with a number
  el = Element.new(:xref, nil, {'target' => href})
  @tree.children << el
end