mudasobwa

mudasobwa

Creator of Cure

Md, a library to parse markdown and markdown-like syntaxes, has been released.

Fully-customizable syntax, blazingly fast (5× compared to earmark,) opinionated. It does not fully support Commonmark (and it’ll never do,) but it covers the needs of the average user + allows the introduction of custom markdown-like syntax with ease.

Parser for Markdown Family

Showing Posts 1 to 10

derek-zhou

derek-zhou

Nice. Does it generate a AST that is compatible with either earmark or floki?

mudasobwa

mudasobwa OP

Creator of Cure

It uses xml_builder for generation, hence it differs from earmark AST (I believe floki leverages the latter.)

OTOH, the traversing/mapping the result to earmark AST should be trivial.

derek-zhou

derek-zhou

I am using Earmark to parse user input then do a sanitizing run on the resulting AST to remove unwanted artifacts. It seems like with this library I may be able to define the subset that I allow precisely and get rid of the sanitizing run.

mudasobwa

mudasobwa OP

Creator of Cure

Yes, you might explicitly allow whatever you want to be parsed as markdown, including but not limited to the markdown syntax itself. E. g. magnet allows to declare a syntax for @handles and/or #hashtags.

derek-zhou

derek-zhou

I am reading your code, it is very impressive. It is basically a framework to build ad-hoc parsers for any syntax. For example, you can have a syntax highlighter for any program languages. A server side rendering, elixir based syntax highlighter will be very sweet. I long for the day when I could remove prismjs from my js bundle. Keep it up!

mudasobwa

mudasobwa OP

Creator of Cure

Thanks, but nope. For that, one should nimble_parsec or any other parser combinator.

I am after another usage: custom simple markup parsers, easily covering needs like Slack in-place markup, user-defined markup, etc.

Using this as a language grammar parser is like parsing HTML with regular expressions :slight_smile:

derek-zhou

derek-zhou

prismjs is built on regular expressions, and it is good enough for syntax highlighting. Emacs’s syntax highlighters are also basically regular expressions.

derek-zhou

derek-zhou

The problem is that with makeup I need to write some serious code to support a new language. While in prismjs or emacs, I only need to write one file, with ~50 lines, in one hour to get a passable highlighter for a language.

knoebber

knoebber

Looks awesome! I enjoyed your blog post too :slight_smile:

Where Next? Top

Trending in Announcing Top

bluzky
You may know https://ui.shadcn.com/, a UI component library for React. I really love it’s design style and components. I’ve built some co...
387 15136 120
New
wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
handnot2
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application. This library uses Erlang esaml to provide plug enabl...
New
woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 11030 135
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
shahryarjb
The Chelekom project is a library of Phoenix and LiveView components generated via Mix tasks to fit developer needs seamlessly. One of i...
New

Other Trending Topics Top

mudasobwa
I am seeing a lot of aplications of Argumentum ad Vericundiam in software discussions. They do link some piece of writing and point us to...
New
bartblast
Hey folks, I just published a post about Hologram’s funding and where the project goes next - the short version: Curiosum as Main Spons...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
lawik
I was thinking since Goatmire Elixir turned out pretty good I should maybe do another one. 30th of Sep - 2nd of Oct this year./ The firs...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews