Comments (3)
Yes, indent-based code blocks are now disabled by default. The allowIndentation
option is still relevant, however, because it tells the tokenizer to allow other block types to be parsed when indented.
For example, consider the following Markdoc source:
This is a test
- This is another test
When the allowIndentation
option is not enabled, the list is not recognized as such because it is indented more than three spaces, resulting in this output: <article><p>This is a test</p><p>- This is another test</p></article>
. With the option enabled, the list tag parses as expected.
The reason we still don't turn this on by default is because content written with this sort of indentation will not parse as expected in a CommonMark-compliant parser. Users who want their Markdoc content to still be portable to other parsers should probably keep it turned off.
I can update the docs to clarify this and address that indent code blocks are now off by default regardless of the setting. Thanks for raising this. 👍
from markdoc.
Indented code blocks are a significant use case, though, especially with regards to portable content. Indented blocks are the only one supported by more "old-school" parsers including the original Gruber one, especially when dealing with content nested inside lists. For example, in Python-Markdown, even with the "extra" settings for code fences, you can't use code fences in lists, but you can use indented code blocks. Content that's written for these parsers can also be handled by CommonMark parsers, but disabling indented code breaks that.
I say this as someone who has been writing such content for 9 years, and finds a lot of the content incompatible with Markdoc because of the use of indented code blocks inside lists.
from markdoc.
@mDuo13 if you really need to parse content written with indented code blocks in Markdoc, you can still subclass Markdoc's Tokenizer
class and set up an instance of MarkdownIt
with whatever features (and specific plugins) you want.
from markdoc.
Related Issues (20)
- Allow metadata export to be optional in markdoc/next.js
- html-nodejs example: document undefined error in Windows system, but same works in macOS
- `\n` in string attribute causes syntax error HOT 2
- Table's width attribute throws type error on strings HOT 1
- Unclosed selfClosing tag vacuums everything after it in the page HOT 4
- Update Config types to account for Schema render function
- Attributes don't render on Cloudflare Workers (but work locally) HOT 1
- Render image with data URI (image/svg+xml) HOT 3
- Code fence doesn't pass through info string HOT 2
- Markdoc `module.exports` pattern not working with Next.js `14.1.0` HOT 5
- Website using markdoc getting crash randomly with TypeError: Cannot read properties of undefined (reading 'content') HOT 1
- `transform` should work with Promises but doesn't HOT 2
- Replace the Tag class by a POJO to make the RenderableTreeNode serializable HOT 3
- Exported `transform` type should return `MaybePromise`
- Being able to open links in a new tab
- Markdoc language server on a Next.js app HOT 1
- Building markdoc docs fails with react 16-vs-18 incompatibility HOT 1
- Global `process=false` flag HOT 1
- Updates for tree shaking
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 markdoc.