Comments (3)
Thanks for raising this issue.
I am working on a port of micromark in another language, which improves a couple of architectural things, likely also including this problem.
It's going to take a bit but I am planning to port those back.
In the meantime, perhaps you can find out how to fix this here now.
from micromark.
Hi! This was marked as ready to be worked on! Note that while this is ready to be worked on, nothing is said about priority: it may take a while for this to be solved.
Is this something you can and want to work on?
Team: please use the area/*
(to describe the scope of the change), platform/*
(if this is related to a specific one), and semver/*
and type/*
labels to annotate this. If this is first-timers friendly, add good first issue
and if this could use help, add help wanted
.
from micromark.
I think there are two possible places where this problem could be fixed:
micromark/dev/lib/compile.js::prepareList
: When compiling to basic HTML, the events related to a list are preprocessed such that the items of a list without blank lines between items are compiled as<li>...</li>
and items of a list with blank lines in at least one item are compiled as<li><p>...</p></li>
(tight vs. loose lists). This preprocessing logic could be extended to ignore trailing blank lines which are part of the tokenized list.micromark-core-commonmark/dev/lib/list.js::tokenizeListContinuation
: The list continuation tokenizer could be modified to not only check whether the current line is a blank line but rather keep checking subsequent lines until a non-blank line is found that terminates the list and abort then, so that the blank lines (including non-empty blank lines, which are treated as list item prefixes + line endings) are excluded in the last list item.
I tend to prefer option 2, but I'm not sure whether that's easily done with a document
parser as lines are parsed independently and content is parsed implicitly. Any comments and/or suggestions?
from micromark.
Related Issues (20)
- 3.0.8 seems to introduce a module level dependency on document HOT 9
- `index.d.ts` is missing in `micromark-util-encode` published files HOT 3
- HTML with excess whitespace is not parsed correctly HOT 2
- hard break at the end of a paragraph is not properly parsed HOT 3
- Make `definitions` available to extensions HOT 2
- Custom extensions break in development mode, despite working in production HOT 6
- & in image url will be encode to html entity HOT 2
- Configure collapsing newlines into a single paragraph HOT 3
- TokenizeContext.sliceSerialize throws in sliceChunks if first chunk of token is Code instead of string HOT 20
- Reduce execution time by ~11% with a simple reimplementation of TokenizeContext.now HOT 3
- nested ordered lists not starting with 1. are not detected HOT 4
- `TokenizeContext.sliceSerialize` for `Token.type` of `setextHeading` includes non-heading content from outside the range of [`startLine`, `endLine`] HOT 1
- `micromark-util-symbol` can not be imported by typescript HOT 9
- Strings ending with `\n-` are compiled into a level 2 heading HOT 3
- Error - [webpack] 'dist': ./node_modules/micromark-util-decode-numeric-character-reference/index.js 23:11 Module parse failed: Identifier directly after number HOT 12
- control character and puntuation cause extra emphasis to appear HOT 3
- Using power-assert causes Webpack builds to fail HOT 13
- ES5 Compatibility HOT 6
- uvu shouldn't be set in dependencies 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.
tags due to trailing space
from micromark.