https://bugs.kde.org/show_bug.cgi?id=488497
machinedreamcatc...@temp752.ynh.fr changed:
What|Removed |Added
Status|REOPENED|NEEDSINFO
Resolution|--- |NOT A BUG
--- Comment #4 from machinedreamcatc...@temp752.ynh.fr ---
> (Joplin, Zotero, Typora as desktop editors, or websites such as popular
> software forges) are actually following as a base a common spec called
> CommonMark (sometimes referred-to as "Github-flavoured"). It seems to me
> relatively widespread, even if not the unique path as you demonstrated.
After further research, the CommonMark spec alone is not enough to cover that
linebreak issue, as show this page: https://markdown-it.github.io ("CommonMark
strict" does not convert newlines in paragraphs as linebreaks, but checking the
extra feature "breaks" would do it). In the section dedicated to soft and hard
breaks, [the specs say](https://spec.commonmark.org/0.31.2/#example-649) that
`a renderer may also provide an option to render soft line breaks as hard line
breaks.`
So the softwares I mentionned earlier may be using CommonMark-based markdown
rendered together with extra-features, in particular for linebreak. But any
CommonMark-based renderer is supposed to allow forcing hard linebreaks by
adding a backslash OR 2 spaces or more at the end of a line.
As for Discount, it also implements a way to force hard linebreak [since
version 2.1.5a](https://www.pell.portland.or.us/~orc/Code/discount/#v2.1.5a)
(and it works at least from Okular 21.12.3): `[support for github flavored
markdown] input methods that put hardbreaks (== two spaces) at the end of every
input line.
The bahavior of linebreaks in Markdown has actually is being [subject to
debate](https://talk.commonmark.org/search?q=line%20break), and personnally I
would rather have the option to consider newline as linebreak, ideally within
the same paragraph.
> I do think that - at some point - it could make sense to switch Okular from
> libdiscount to Qt's recently-ish gained markdown support (iirc based upon
> md4c) but don't hold your breath for it. Will happily review patches though.
Thank you for the feedback. [According to
MD4C](https://github.com/mity/md4c?tab=readme-ov-file#links-to-related-projects),
QT do use their implementation.
MD4C has CommonMark and Github-flavour, as well as extra optional features,
potentially the one regarding linebreaks.
QT implements a strict CommonMark rendered as well a Github-flavoured one
(according to the parameters which is set when using the method).
Markdown-related methods seems to be implemented in `QTextDocument` &
`QTextEdit` classes. Are those related to the former what you had in mind ?
https://docs.w3cub.com/qt/qtextdocument#setMarkdown
https://docs.w3cub.com/qt/qtextdocument#toMarkdown
While I have never worked on a C++/QT/KDE project so far, it could be a
starting point... This is not something I could work on with a high priority
either, but I quickly checked the code and I guess I would have to focus on
that folder :
https://invent.kde.org/graphics/okular/-/tree/master/generators/markdown?ref_type=heads
Would you have in mind:
1. Where in the code is libmarkdown (Discount) being called so far ? I could
see mentions of it in what seem the build instructions or as comments in
`/generators/markdown/converter.cpp`, but could not spot an actual call to the
library.
2. Is the Markdown class (in converter.cpp) used to both render view and
generate file ? In that case, the general markdown ouput string would be the
one returned at the following line ?
https://invent.kde.org/graphics/okular/-/blob/master/generators/markdown/converter.cpp?ref_type=heads#L177
Also, should QT/MD4C Markdown renderer be implemented as the new and only
markdown backend, or should it be optional and offered as an alternative
backend to Discount in the [configuration
window](https://docs.kde.org/stable5/en/okular/okular/configure-backends.html)?
Not sure whether this is feasible with QT, but ideally the config panel would
offer optional markdown features included in MD4C.
PS: could this bug report be moved to the Request section?
--
You are receiving this mail because:
You are watching all bug changes.