Implement Pandoc Markdown concise link extension (#20304)
* Implement Pandoc Markdown concise link extension This implements https://github.com/nim-lang/Nim/issues/20127. Besides reference to headings we also support doing references to Nim symbols inside Nim modules. Markdown: ``` Some heading ------------ Ref. [Some heading]. ``` Nim: ``` proc someFunction*() ... ... ## Ref. [someFunction] ``` This is substitution for RST syntax like `` `target`_ ``. All 3 syntax variants of extension from Pandoc Markdown are supported: `[target]`, `[target][]`, `[description][target]`. This PR also fixes clashes in existing files, particularly conflicts with RST footnote feature, which does not work with this PR (but there is a plan to adopt a popular [Markdown footnote extension](https://pandoc.org/MANUAL.html#footnotes) to make footnotes work). Also the PR fixes a bug that Markdown links did not work when `[...]` section had a line break. The implementation is straightforward since link resolution did not change w.r.t. RST implementation, it's almost only about new syntax addition. The only essential difference is a possibility to add a custom link description: form `[description][target]` which does not have an RST equivalent. * fix nim 1.0 gotcha
This commit is contained in:
parent
b931e74a59
commit
cde6b2aab8
23 changed files with 325 additions and 152 deletions
|
|
@ -336,7 +336,7 @@ To avoid accidental highlighting follow this rule in ``*.nim`` files:
|
|||
|
||||
.. Note:: ``*.rst`` files have ``:literal:`` as their default role.
|
||||
So for them the rule above is only applicable if the ``:nim:`` role
|
||||
is set up manually as the default [*]_::
|
||||
is set up manually as the default \[*]::
|
||||
|
||||
.. role:: nim(code)
|
||||
:language: nim
|
||||
|
|
@ -345,7 +345,7 @@ To avoid accidental highlighting follow this rule in ``*.nim`` files:
|
|||
The first 2 lines are for other RST implementations,
|
||||
including Github one.
|
||||
|
||||
.. [*] this is fulfilled when ``doc/rstcommon.rst`` is included.
|
||||
\[*] this is fulfilled when ``doc/rstcommon.rst`` is included.
|
||||
|
||||
Best practices
|
||||
==============
|
||||
|
|
@ -431,7 +431,7 @@ including prepending location info, writing to log files, etc.).
|
|||
```
|
||||
|
||||
.. _use_Option:
|
||||
[Ongoing debate] Consider using Option instead of return bool + var argument,
|
||||
(Ongoing debate) Consider using Option instead of return bool + var argument,
|
||||
unless stack allocation is needed (e.g. for efficiency).
|
||||
|
||||
```nim
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue