node package manager
Stop wasting time. Easily manage code sharing in your team. Create a free org »

markdown-element

Markdown Element

HTML Element for markdown content.

Usage:

<body>
  <script src="https://cdn.jsdelivr.net/npm/markdown-element/dist/markdown-element.min.js"></script> 
  <mark-down>
    ## h2
 
    * test
      * test2
 
    ```javascript
    let x = 'asdf'
 
    class Text {
      constructor() {
 
      }
    }
    ```
  </mark-down>
</body>

Attributes/properties

The following element properties can be used to change the render settings. They can be set either from JavaScript or from HTML.

  • noGFM: Disables GitHub flavored markdown (GFM).
  • noTables: Disables GFM tables. This has no effect if noGFM is true.
  • breaks: Enable GFM line breaks. This has no effect if noGFM is true.
  • noHighlight: Disables syntax highlighting.
  • pedantic: Conform to obscure parts of markdown.pl as much as possible. Don't fix any of the original markdown bugs or poor behavior.
  • noSmartLists: Disable smarter list behavior than the original markdown. May eventually be default with the old behavior moved into pedantic.
  • smartyPants: Use "smart" typographic punctuation for things like quotes and dashes.

Examples:

<mark-down notables pedantic>
    # h1
 
    * test
</mark-down>
let marked = document.createElement('mark-down')
marked.noGFM = true
marked.smartyPants = true
document.body.appendChild(marked)

Rendering

The rendered markdown is placed in a <render> element.

<mark-down>
  <render>
    <h1>h1</h1>
    <ul>
      <li>test</li>
    </ul>
  </render>
</mark-down>

Bundling

If you want to build the component into the JavaScript bundle of your app you can do so easily, but you'll need to handle loading a WebComponents polyfill on your own.