In adding entries to this lab, my list of custom component started growing. Instead of writing custom components, I thought I'd build a small markdown component, so I could write my articles in markdown, and publish them.

It's on github: @stilva/markdown, check it out.

I haven't gotten around writing any documentation, but the test within the ./src folder can serve as documentation.

There's a few performance tests I'd like to run:

  • What are the performance implications in creating DOM elements vs building string representations and using dangerouslySetInnerHTML
  • Same for using createElement as a building block (I'm not convinced there's much to gain by converting the input as actual react components, given the static nature of markdowns)
  • Avoiding regexp, and having a more abstract representation of the markdown. e.g. new Node(), new Leaf()

I initially had decided to use RegExp to keep the code simple, and to worry about performance when needed. The only performance optimisation I have done this far, is to cache the rendered HTML string in the SessionStorage. At the moment the only way to invalidate it is by passing a new key.