use of org.intellij.markdown.parser.MarkdownParser in project intellij-plugins by JetBrains.
the class MarkdownLazyElementType method doParseContents.
@Override
protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) {
final Project project = psi.getProject();
final Lexer lexer = new MarkdownLexerAdapter();
final CharSequence chars = chameleon.getChars();
final org.intellij.markdown.ast.ASTNode node = new MarkdownParser(MarkdownParserManager.FLAVOUR).parseInline(MarkdownElementType.markdownType(chameleon.getElementType()), chars, 0, chars.length());
final PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(project, chameleon, lexer, getLanguage(), chars);
assert builder.getCurrentOffset() == 0;
new PsiBuilderFillingVisitor(builder).visitNode(node);
assert builder.eof();
return builder.getTreeBuilt().getFirstChildNode();
}
use of org.intellij.markdown.parser.MarkdownParser in project intellij-plugins by JetBrains.
the class MarkdownParserManager method parseContent.
public static ASTNode parseContent(@NotNull CharSequence buffer) {
final ParsingInfo info = ourLastParsingResult.get();
if (info != null && info.myBufferHash == buffer.hashCode() && info.myBuffer.equals(buffer)) {
return info.myParseResult;
}
final ASTNode parseResult = new MarkdownParser(FLAVOUR).parse(MarkdownElementTypes.MARKDOWN_FILE, buffer.toString(), false);
ourLastParsingResult.set(new ParsingInfo(buffer, parseResult));
return parseResult;
}
use of org.intellij.markdown.parser.MarkdownParser in project intellij-plugins by JetBrains.
the class MarkdownPreviewFileEditor method generateMarkdownHtml.
@NotNull
private static String generateMarkdownHtml(@NotNull VirtualFile file, @NotNull String text) {
final VirtualFile parent = file.getParent();
final URI baseUri = parent != null ? new File(parent.getPath()).toURI() : null;
final ASTNode parsedTree = new MarkdownParser(MarkdownParserManager.FLAVOUR).buildMarkdownTreeFromString(text);
final Map<IElementType, GeneratingProvider> htmlGeneratingProviders = MarkdownParserManager.FLAVOUR.createHtmlGeneratingProviders(LinkMap.Builder.buildLinkMap(parsedTree, text), baseUri);
return new HtmlGenerator(text, parsedTree, htmlGeneratingProviders, true).generateHtml();
}
Aggregations