Comments (3)
I have implemented the behaviour described above on my fork. It's not particularly pretty but does the job.
Essentially, we fold over top-level blocks to find the document structure:
- If it's a heading, we check if it closes or opens new sections and render it manually1.
- If it's something else, we render it using the already existing rendering functions, thus accounting for extensions.
This makes the assumption that document headings only appear at the uppermost level (in mmarkBlocks
), which they should anyway.
Let me know if there's any interest in this thing.
Footnotes
-
We could also render headings with the existing rendering function, but currently this function automatically adds an id to every heading, which we obviously want to avoid. We could turn auto-ids into an extension, too. ↩
from mmark.
I think the best thing we can do here is to expose more internals of MMark, e.g. in Text.MMark.Internal
to facilitate custom logic like this. I'm open to a PR that does that.
from mmark.
Related Issues (20)
- Support for the traditional block quote syntax
- Monadic `blockRender`?
- Inline and block transformations are not applied to nested inlines/blocks
- Terminating emphasis HOT 3
- The other heading style HOT 2
- Expose source position to scanners and extensions HOT 5
- GHCJS support HOT 12
- Compile time `MMark` HOT 3
- Compile fail in Circle CI 2.0 (out of memory error) HOT 6
- Compilation breaks on: # Foo\n\n ### Bar \n\n HOT 3
- Task support HOT 1
- Blockquote laziness support
- Add CSS classes to rendered elements HOT 2
- Paragraphs within blockquotes are not parsed HOT 2
- Parser fails on '_' symbol inside link text HOT 5
- Test suite failure for package mmark-0.0.7.2 HOT 2
- Update the test suite to conform to CommonMark Spec 0.29 HOT 1
- testsuite failing for Stackage Nightly HOT 1
- Test failures when building with `modern-uri-0.3.4.3` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mmark.