Search in sources :

Example 1 with IElementType

use of org.intellij.markdown.IElementType 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();
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) IElementType(org.intellij.markdown.IElementType) GeneratingProvider(org.intellij.markdown.html.GeneratingProvider) ASTNode(org.intellij.markdown.ast.ASTNode) HtmlGenerator(org.intellij.markdown.html.HtmlGenerator) URI(java.net.URI) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File) MarkdownParser(org.intellij.markdown.parser.MarkdownParser) NotNull(org.jetbrains.annotations.NotNull)

Example 2 with IElementType

use of org.intellij.markdown.IElementType in project intellij-plugins by JetBrains.

the class PsiBuilderFillingVisitor method visitNode.

@Override
public void visitNode(@NotNull ASTNode node) {
    if (node instanceof LeafASTNode) {
        /* a hack for the link reference definitions:
       * they are being parsed independent from link references and
       * the link titles and urls are tokens instead of composite elements
       */
        final IElementType type = node.getType();
        if (type != MarkdownElementTypes.LINK_LABEL && type != MarkdownElementTypes.LINK_DESTINATION) {
            return;
        }
    }
    ensureBuilderInPosition(node.getStartOffset());
    final PsiBuilder.Marker marker = builder.mark();
    super.visitNode(node);
    ensureBuilderInPosition(node.getEndOffset());
    marker.done(MarkdownElementType.platformType(node.getType()));
}
Also used : IElementType(org.intellij.markdown.IElementType) LeafASTNode(org.intellij.markdown.ast.LeafASTNode) PsiBuilder(com.intellij.lang.PsiBuilder)

Aggregations

IElementType (org.intellij.markdown.IElementType)2 PsiBuilder (com.intellij.lang.PsiBuilder)1 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 File (java.io.File)1 URI (java.net.URI)1 ASTNode (org.intellij.markdown.ast.ASTNode)1 LeafASTNode (org.intellij.markdown.ast.LeafASTNode)1 GeneratingProvider (org.intellij.markdown.html.GeneratingProvider)1 HtmlGenerator (org.intellij.markdown.html.HtmlGenerator)1 MarkdownParser (org.intellij.markdown.parser.MarkdownParser)1 NotNull (org.jetbrains.annotations.NotNull)1