This patch enables syntax highlighting of PHP and Python code blocks in Markdown code.
Details
- Reviewers
vkrause - Group Reviewers
Framework: Syntax Highlighting - Commits
- R216:4f7e020e332d: Basic support for PHP and Python fenced code blocks in Markdown
Diff Detail
- Repository
- R216 Syntax Highlighting
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Could you also extend the test case in
https://github.com/KDE/syntax-highlighting/blob/master/autotests/input/test.markdown
This way, we can automatically guarantee that we will not break this feature accidentally.
- Removed JavaScript code blocks in Markdown support since it didn’t work
- Added test cases for new code blocks in Markdown
This fixes bug https://bugs.kde.org/show_bug.cgi?id=389307 at least partially. More languages such as Ruby etc can still be added.
Fine with me.
The approach doesn't scale though, so maybe we need to look into better support for this kind of syntax nesting if we want this for many more languages here (similar problems exist in other nest-able languages too).
@vkrause Do you already have something in mind, when you say this does not scale? ...
No concrete ideas yet, but mainly two observations:
- when nesting a language you need to implement detecting the end of that code manually each time
- you need to explicitly list all languages you want to nest, one by one
The latter is ok if there is a limited amount of languages that can be nested in this context, but in case of markdown it's in theory every language we have.
So a rule like <NestLanguage syntax="<name or regexp capture>" end="<string|regexp>"/> to do all the repeating work inside the engine might be interesting. We'd need to survey all current usages of nesting to see if that covers enough use-cases though, I haven't done that yet.