# Markdown presentation as stylized text in plugins

**URL:** <https://platform.jetbrains.com/t/markdown-presentation-as-stylized-text-in-plugins/992>\
**Category:** IntelliJ Platform\
**Created:** [March 19, 2025, 1:57am UTC](https://platform.jetbrains.com/t/markdown-presentation-as-stylized-text-in-plugins/992 "2025-03-19T01:57:32Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![vasiliy](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/vasiliy/32/875_2.png) [@vasiliy](https://platform.jetbrains.com/u/vasiliy)\
**Post date:** [March 19, 2025, 1:57am UTC](https://platform.jetbrains.com/t/markdown-presentation-as-stylized-text-in-plugins/992/1 "2025-03-19T01:57:32Z")

</div>

Hello Community.

How would you recommend parsing and presenting Markdown formatted text in IDE using a plugin?

Potential flow:

1. get markdown formatted text from API,
2. convert it to HTML with org.jetbrains:markdown and show using JBHtmlPanel
3. show code fragments in markdown using com.intellij.openapi.editor.ex.EditorEx to get syntax highlighting.

On the markdown plugin usage -

Sample code from [GitHub - JetBrains/markdown: Markdown parser written in kotlin](https://github.com/JetBrains/markdown?tab=readme-ov-file) :

```java
final String src = "Some *Markdown*";
final MarkdownFlavourDescriptor flavour = new GFMFlavourDescriptor();
final ASTNode parsedTree = new MarkdownParser(flavour).buildMarkdownTreeFromString(text);
final String html = new HtmlGenerator(src, parsedTree, flavour, false).generateHtml();

```

`generateHtml` requires `ASTNode`, `ASTNode`, `Iterable<CharSequence?>`.  
Is there a minimal working Java code?

Thank you!

---

<div class="post-metadata">

**Author:** ![chriscarini](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/chriscarini/32/695_2.png) [@chriscarini](https://platform.jetbrains.com/u/chriscarini)\
**Post date:** [March 19, 2025, 4:15am UTC](https://platform.jetbrains.com/t/markdown-presentation-as-stylized-text-in-plugins/992/2 "2025-03-19T04:15:07Z")

</div>

If you haven’t already, you could explore how the Markdown plugin works - the source is on GitHub: [intellij-community/plugins/markdown at master · JetBrains/intellij-community · GitHub](https://github.com/JetBrains/intellij-community/tree/master/plugins%2Fmarkdown)

---

<div class="post-metadata">

**Author:** ![insyncwithfoo](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/insyncwithfoo/32/158_2.png) [@insyncwithfoo](https://platform.jetbrains.com/u/insyncwithfoo)\
**Post date:** [March 19, 2025, 8:53am UTC](https://platform.jetbrains.com/t/markdown-presentation-as-stylized-text-in-plugins/992/3 "2025-03-19T08:53:38Z")

</div>

You are in luck; there’s [an API](https://github.com/JetBrains/intellij-community/blob/8c9a8c358b9fae54828ed283e7b6bab90b87ee9a/platform/markdown-utils/src/com/intellij/markdown/utils/doc/DocMarkdownToHtmlConverter.kt) that does exactly this:

```kotlin
import com.intellij.markdown.utils.doc.DocMarkdownToHtmlConverter

val html = DocMarkdownToHtmlConverter.convert(project, someMarkdownString)

```

(This is in Kotlin, but the equivalent Java code should be similar.)

It adds syntax highlighting and such on top of `org.jetbrains:markdown`. There’s [a small bug](https://youtrack.jetbrains.com/issue/IJPL-160938), but it should be good enough for the vast majority of cases.
