public static Parser make(ParsingPage currentPage, CharSequence input) { return make(currentPage, input, SymbolProvider.wikiParsingProvider); }
public static Parser make(ParsingPage currentPage, CharSequence input) { return make(currentPage, input, SymbolProvider.wikiParsingProvider); }
private void parse() { if (syntaxTree == null) { // This is the only page where we need a VariableSource parsingPage = makeParsingPage(this); syntaxTree = Parser.make(parsingPage, getData().getContent()).parse(); } }
private void parse() { if (syntaxTree == null) { // This is the only page where we need a VariableSource parsingPage = makeParsingPage(this); syntaxTree = Parser.make(parsingPage, getData().getContent()).parse(); } }
String getHtmlFor(String input) { SourcePage page = new DummySourcePage(); Symbol list = Parser.make(new ParsingPage(page), input).parse(); return new HtmlTranslator(page, new ParsingPage(page)).translateTree(list); }
@Override public String getVariable(String name) { ParsingPage parsingPage = getParsingPage(); Maybe<String> variable = parsingPage.findVariable(name); if (variable.isNothing()) return null; Parser parser = Parser.make(parsingPage, "", SymbolProvider.variableDefinitionSymbolProvider); return new HtmlTranslator(null, parsingPage).translate(parser.parseWithParent(variable.getValue(), null)); }
@Override public void process(WikiPage currentPage) { this.currentPage = currentPage; String content = currentPage.getData().getContent(); Symbol syntaxTree = Parser.make( new ParsingPage(new WikiSourcePage(currentPage)), content, SymbolProvider.refactoringProvider) .parse(); syntaxTree.walkPreOrder(this); }
@Override public String getVariable(String name) { ParsingPage parsingPage = getParsingPage(); Maybe<String> variable = parsingPage.findVariable(name); if (variable.isNothing()) return null; Parser parser = Parser.make(parsingPage, "", SymbolProvider.variableDefinitionSymbolProvider); return new HtmlTranslator(null, parsingPage).translate(parser.parseWithParent(variable.getValue(), null)); }
@Override public void process(WikiPage currentPage) { this.currentPage = currentPage; String content = currentPage.getData().getContent(); Symbol syntaxTree = Parser.make( new ParsingPage(new WikiSourcePage(currentPage)), content, SymbolProvider.refactoringProvider) .parse(); syntaxTree.walkPreOrder(this); }
String getHtmlFor(String input) { SourcePage page = new DummySourcePage(); Symbol list = Parser.make(new ParsingPage(page), input).parse(); return new HtmlTranslator(page, new ParsingPage(page)).translateTree(list); }
private PageData getDataVersion() throws IOException { FileVersion[] versions = versionsController.getRevisionData(versionName, path); FileVersion fileVersion = versions[0]; String content = ""; WikiPageProperty properties = defaultPageProperties(); if (fileVersion != null) { try { String fileContent = loadContent(fileVersion); final ParsingPage parsingPage = makeParsingPage(this); final Symbol syntaxTree = Parser.make(parsingPage, fileContent, WIKI_FILE_PARSING_PROVIDER).parse(); if (!syntaxTree.getChildren().isEmpty()) { final Symbol maybeFrontMatter = syntaxTree.getChildren().get(0); if (maybeFrontMatter.isType(FrontMatter.symbolType)) { properties = mergeWikiPageProperties(properties, maybeFrontMatter); if (syntaxTree.getChildren().size() > 1) { content = fileContent.substring(maybeFrontMatter.getEndOffset()); } } else { content = fileContent; } } properties.setLastModificationTime(fileVersion.getLastModificationTime()); } catch (IOException e) { throw new WikiPageLoadException(e); } } pageData = new PageData(content, properties); return pageData; }
private PageData getDataVersion() throws IOException { FileVersion[] versions = versionsController.getRevisionData(versionName, path); FileVersion fileVersion = versions[0]; String content = ""; WikiPageProperty properties = defaultPageProperties(); if (fileVersion != null) { try { String fileContent = loadContent(fileVersion); final ParsingPage parsingPage = makeParsingPage(this); final Symbol syntaxTree = Parser.make(parsingPage, fileContent, WIKI_FILE_PARSING_PROVIDER).parse(); if (!syntaxTree.getChildren().isEmpty()) { final Symbol maybeFrontMatter = syntaxTree.getChildren().get(0); if (maybeFrontMatter.isType(FrontMatter.symbolType)) { properties = mergeWikiPageProperties(properties, maybeFrontMatter); if (syntaxTree.getChildren().size() > 1) { content = fileContent.substring(maybeFrontMatter.getEndOffset()); } } else { content = fileContent; } } properties.setLastModificationTime(fileVersion.getLastModificationTime()); } catch (IOException e) { throw new WikiPageLoadException(e); } } pageData = new PageData(content, properties); return pageData; }
@Override public String getHtml() { // -AJM- Okay, this is not as clean as I'd like it to be, but for now it does the trick if (containsWikitext()) { String content = getDecoratedContent(); ParsingPage parsingPage = BaseWikitextPage.makeParsingPage((BaseWikitextPage) sourcePage); Symbol syntaxTree = Parser.make(parsingPage, content).parse(); return new HtmlTranslator(new WikiSourcePage(sourcePage), parsingPage).translateTree(syntaxTree); } else { return sourcePage.getHtml(); } }
@Override public String getHtml() { // -AJM- Okay, this is not as clean as I'd like it to be, but for now it does the trick if (containsWikitext()) { String content = getDecoratedContent(); ParsingPage parsingPage = BaseWikitextPage.makeParsingPage((BaseWikitextPage) sourcePage); Symbol syntaxTree = Parser.make(parsingPage, content).parse(); return new HtmlTranslator(new WikiSourcePage(sourcePage), parsingPage).translateTree(syntaxTree); } else { return sourcePage.getHtml(); } }
@Override public void process(WikiPage currentPage) { PageData data = currentPage.getData(); String content = data.getContent(); Symbol syntaxTree = Parser.make( new ParsingPage(new WikiSourcePage(currentPage)), content, SymbolProvider.refactoringProvider) .parse(); this.currentPage = currentPage; syntaxTree.walkPreOrder(walker); String newContent = new WikiTranslator(new WikiSourcePage(currentPage)).translateTree(syntaxTree); boolean pageHasChanged = !newContent.equals(content); if (pageHasChanged) { data.setContent(newContent); currentPage.commit(data); } }
@Override public void process(WikiPage currentPage) { PageData data = currentPage.getData(); String content = data.getContent(); Symbol syntaxTree = Parser.make( new ParsingPage(new WikiSourcePage(currentPage)), content, SymbolProvider.refactoringProvider) .parse(); this.currentPage = currentPage; syntaxTree.walkPreOrder(walker); String newContent = new WikiTranslator(new WikiSourcePage(currentPage)).translateTree(syntaxTree); boolean pageHasChanged = !newContent.equals(content); if (pageHasChanged) { data.setContent(newContent); currentPage.commit(data); } }
@Override public String toTarget(Translator translator, Symbol symbol) { if (symbol.childAt(0).childAt(0).isType(WikiWord.symbolType)) return translator.translate(symbol.childAt(0)); String linkBody = translator.translate(symbol.childAt(0)); String linkReferenceString = HtmlUtil.unescapeHTML(translator.translate(symbol.childAt(1))); ParsingPage parsingPage = ((HtmlTranslator)translator).getParsingPage(); Symbol linkReference = Parser.make(parsingPage, linkReferenceString).parseToIgnoreFirst(Comment.symbolType); if (linkReference.childAt(0).isType(WikiWord.symbolType) || (linkReference.getChildren().size() == 1 && PathParser.isWikiPath(linkReference.childAt(0).getContent()))) { return new WikiWordBuilder(translator.getPage(), linkReference.childAt(0).getContent(), linkBody) .buildLink(translator.translate(linkReference.childrenAfter(0)), linkBody); } HtmlTag alias = new HtmlTag("a", linkBody); if (linkReference.childAt(0).isType(Link.symbolType)) { alias.addAttribute("href", linkReferenceString.startsWith("http://files/") ? linkReferenceString.substring(7) : linkReferenceString); } else { alias.addAttribute("href", translator.translate(linkReference)); } return alias.htmlInline(); } }
@Override public String toTarget(Translator translator, Symbol symbol) { if (symbol.childAt(0).childAt(0).isType(WikiWord.symbolType)) return translator.translate(symbol.childAt(0)); String linkBody = translator.translate(symbol.childAt(0)); String linkReferenceString = HtmlUtil.unescapeHTML(translator.translate(symbol.childAt(1))); ParsingPage parsingPage = ((HtmlTranslator)translator).getParsingPage(); Symbol linkReference = Parser.make(parsingPage, linkReferenceString).parseToIgnoreFirst(Comment.symbolType); if (linkReference.childAt(0).isType(WikiWord.symbolType) || (linkReference.getChildren().size() == 1 && PathParser.isWikiPath(linkReference.childAt(0).getContent()))) { return new WikiWordBuilder(translator.getPage(), linkReference.childAt(0).getContent(), linkBody) .buildLink(translator.translate(linkReference.childrenAfter(0)), linkBody); } HtmlTag alias = new HtmlTag("a", linkBody); if (linkReference.childAt(0).isType(Link.symbolType)) { alias.addAttribute("href", linkReferenceString.startsWith("http://files/") ? linkReferenceString.substring(7) : linkReferenceString); } else { alias.addAttribute("href", translator.translate(linkReference)); } return alias.htmlInline(); } }