lib/wlang/dialects/xhtml_dialect.rb in wlang-0.8.5 vs lib/wlang/dialects/xhtml_dialect.rb in wlang-0.9.1
- old
+ new
@@ -29,10 +29,33 @@
# Defines rulset of the wlang/xhtml dialect
module XHtml
# Default mapping between tag symbols and methods
- DEFAULT_RULESET = {}
+ DEFAULT_RULESET = {'@' => :at}
+
+ def self.at(parser, offset)
+ # parse the url
+ url, reached = parser.parse(offset, 'wlang/active-string')
+ url = WLang::encode(url, 'wlang/xhtml/double-quoting')
+
+ # parse the label if there is one
+ label = nil
+ if parser.has_block?(reached)
+ label, reached = parser.parse_block(reached)
+ label = WLang::encode(label, 'wlang/xhtml/entities-encoding')
+ end
+
+ if label and url.respond_to?(:to_xhtml_link)
+ [url.to_xhtml_link(url, label), reached]
+ elsif url.respond_to?(:to_xhtml_href)
+ [url.to_xhtml_href(url), reached]
+ elsif label
+ ["<a href=\"#{url}\">#{label}</a>", reached]
+ else
+ [url, reached]
+ end
+ end
end # module XHtml
end
end