Comments (5)
I don't quite understand the problem here. If I add a test for the document you show (in attached patch), that content seems to round-trip just fine, without any extra newlines being inserted.
from prosemirror-markdown.
I don't quite understand the problem here
It does not happen when using the provided markdown parser, but if happens if you set the parse options / parse rules of paragraphs to preserveWhitespace: true
.
e.g. you want to keep the formatting of a markdown file after a roundtrip you need to keep any additional tabs and spaces and also newlines "soft brakes" like:
hello
world
should stay like this after a roundtrip and not result in
hello world
even if this is syntactically the same.
So the previous example results in:
<p>hello<br />
world</p>
which is this prosemirror state: doc(p("hello", br(), "\nworld"))
.
And that state would currently be serialized as
hello\
world
(note the additional newline).
See the testcase in the PR:
serialize(doc(p(em("foo", br(), "\nbar"))), "*foo\\\nbar*")
from prosemirror-markdown.
It does not happen when using the provided markdown parser, but if happens if you set the parse options / parse rules of paragraphs to preserveWhitespace: true.
That's a DOM parser option, though. How does that effect Markdown deserializing?
from prosemirror-markdown.
As I said I do not use the provided parser, but plain markdown-it
as the project uses quite a lot markdown extensions.
So this is only a problem if you use the to_markdown
part of this nice project together with custom markdown parsing.
(I can understand if you decide that this is a won't fix)
from prosemirror-markdown.
Ah, all right. I think this is something you'll have to address in your custom parser then.
from prosemirror-markdown.
Related Issues (20)
- Allow list items to start with other nodes than paragraphs HOT 2
- Unnecessary escape for the period (.) character HOT 3
- Inline code with `<` characters does not parse correctly (html inside inline code) HOT 2
- Unnecessary escape for `#` character HOT 2
- expelEnclosingWhitespace not working with inner links HOT 1
- What is the recommended method to update the src/schema.ts configuration in a project? HOT 1
- Mark's aren't serialized if root node isn't a block container HOT 2
- Markdown-It is not ESM HOT 4
- Punycode is now a hard-dependency? HOT 4
- Numbers in headers HOT 1
- Don' escape `+++` at the start of a line when serializing HOT 1
- Markdown parser combines two or more same autolink into a single anchor element HOT 3
- How to use with Tables? HOT 1
- Export default parser/serializer options HOT 2
- symbol | in table cells HOT 2
- update `MarkdownSerialize.serialize` type to accept `Fragment` HOT 4
- Markdown-it import path does not align with current package HOT 1
- Handling of `softbreak` is weird HOT 4
- HTML entity unescaping on parse can lead to unexpected results on serialize HOT 5
- Add support for passing an extra env dictionary to the `MarkdownSerializer` HOT 5
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 prosemirror-markdown.