@Override public void build(Translator translator, Symbol symbol, StringBuilder wikiString) { wikiString.append(symbol.getContent()); } });
@Override public void build(Translator translator, Symbol symbol, HtmlTag tag) { tag.addAttribute(name, prefix + (index < 0 ? symbol.getContent() : TranslateChildAt(translator, symbol, index))); } });
private boolean hasOption(String option, String variableName) { for (Symbol child: contents.getChildren()) { if (child.getContent().equals(option)) return true; } return !variableName.isEmpty() && contents.getVariable(variableName, "").equals("true"); }
private boolean hasOption(String option, String variableName) { for (Symbol child: contents.getChildren()) { if (child.getContent().equals(option)) return true; } return !variableName.isEmpty() && contents.getVariable(variableName, "").equals("true"); }
@Override public String toTarget(Translator translator, Symbol symbol) { return HtmlUtil.escapeHTML(HtmlUtil.unescapeWiki(symbol.getContent())); } }
@Override public String toTarget(Translator translator, Symbol symbol) { HtmlTag html = new HtmlTag("hr"); int size = symbol.getContent().length() - 3; if (size > 1) html.addAttribute("size", Integer.toString(size)); return html.html(); } }
@Override public boolean visit(Symbol node) { if (node.isType(Literal.symbolType)) { node.setContent(literalDelimiter + node.getContent() + literalDelimiter); } return true; }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { List<Symbol> tokens = parser.moveNext(new SymbolType[] {SymbolType.Text}); if (tokens.isEmpty()) return Symbol.nothing; String anchor = tokens.get(0).getContent(); if (!ScanString.isWord(anchor)) return Symbol.nothing; return new Maybe<>(current.add(tokens.get(0))); }
@Override public String toTarget(Translator translator, Symbol symbol) { if ("true".equals(symbol.getProperty(WITH_EDIT))) { return buildEditableLink( symbol.getContent(), formatWikiWord(symbol)); } return buildLink( symbol.getContent(), formatWikiWord(symbol)); }
@Override public boolean visit(final Symbol node) { if (node.isType(SymbolType.Text) || node.isType(Literal.symbolType) || node.isType(Whitespace)) { sb.append(node.getContent()); } return true; }
@Override public boolean visit(Symbol node) { if (node.isType(See.symbolType)) { if (node.childAt(0).isType(Alias.symbolType)) { xrefPages.add(node.childAt(0).lastChild().childAt(0).getContent()); } else { xrefPages.add(node.childAt(0).getContent()); } } return true; }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { String content = current.getContent(); char beginner = content.charAt(content.length() - 1); Symbol body = parser.parseToIgnoreFirst(closeType(beginner)); if (parser.atEnd()) return Symbol.nothing; return new Maybe<>(new Symbol(SymbolType.Style, content.substring(7, content.length() - 1)).add(body)); }
@Override public String toTarget(Translator translator, Symbol symbol) { String target = symbol.getContent() + translator.translate(symbol.childAt(0)); return buildLink(translator, target, symbol); }
private void handleNonWhitespace(final Symbol symbol) { String option = symbol.getContent(); if (isOptionAKey(option)) { handleOptionAsKeyCandidate(option); } else { handleOptionAsValue(option); } }
public Maybe<String> stringFromStart(int start) { int end = getOffset() - getCurrent().getContent().length(); return start <= end ? new Maybe<>(input.rawSubstring(start, end)) : Maybe.noString; }
private void handleNonWhitespace(final Symbol symbol) { String option = symbol.getContent(); if (isOptionAKey(option)) { handleOptionAsKeyCandidate(option); } else { handleOptionAsValue(option); } }
private Maybe<String> copyVariableValue(Parser parser, Symbol next) { String fromVariableName = next.getContent(); if (!ScanString.isVariableName(fromVariableName)) return Maybe.noString; return parser.getVariableSource().findVariable(fromVariableName); }
public String translate(Symbol symbol) { if (getTranslation(symbol.getType()) != null) { return getTranslation(symbol.getType()).toTarget(this, symbol); } else { StringBuilder result = new StringBuilder(symbol.getContent()); for (Symbol child: symbol.getChildren()) { result.append(translate(child)); } return result.toString(); } }
@Override public boolean visit(Symbol node) { if (node.isType(WikiWord.symbolType)) { new WikiWordReference(currentPage(), node.getContent()).wikiWordRenameMovedPageIfReferenced(node, pageToBeMoved, newParentName); } return true; }
@Override public Maybe<Symbol> parse(Symbol current, Parser parser) { Symbol next = parser.moveNext(1); if (!next.isType(SymbolType.Whitespace)) return Symbol.nothing; String level = current.getContent().substring(1,2); if (ScanString.isDigits(level)) current.putProperty(Level, level); current.add(parser.parseToEnd(SymbolType.Newline)); if (parser.peek().isType(SymbolType.Newline) && !parser.endsOn(SymbolType.Newline)) parser.moveNext(1); return new Maybe<>(current); } }