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