}
public override void visit_link (Link element) {
- var label = element.label;
- _stream.printf ("[[%s|%s]]",
- element.url,
- (label == null || label == "") ? element.url : label);
+ _stream.printf ("[[%s", element.url);
+ if (element.content.size > 0) {
+ _stream.printf ("|");
+ element.accept_children (this);
+ }
+ _stream.printf ("]]");
}
public override void visit_symbol_link (SymbolLink element) {
using Gee;
-public class Valadoc.Content.Link : ContentElement, Inline {
+public class Valadoc.Content.Link : InlineContent, Inline {
public string url { get; set; }
- public string label { get; set; }
internal Link () {
base ();
visitor.visit_link (this);
}
}
-
Rule link =
Rule.seq ({
TokenType.DOUBLE_OPEN_BRACKET.action (() => { _scanner.set_url_escape_mode (true); }),
- TokenType.any_word (),
+ TokenType.any_word ().action ((token) => { ((Link) peek ()).url = token.to_string (); }),
Rule.option ({
TokenType.PIPE.action (() => { _scanner.set_url_escape_mode (false); }),
run
|| name == "h3"
|| name == "h4"
|| name == "h5"
- || name == "li"
+ || name == "li"
|| name == "span"
|| name == "code"
|| name == "b"
}
public override void visit_link (Link element) {
- var label = element.label;
- writer.link (element.url, (label == null || label == "") ? element.url : label);
+ writer.start_tag ("a", {"href", element.url});
+ if (element.content.size > 0) {
+ element.accept_children (this);
+ } else {
+ writer.text (element.url);
+ }
+ writer.end_tag ("a");
}
public override void visit_symbol_link (SymbolLink element) {