Nim/lib/std
Andrey Makarov cde6b2aab8
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
2022-09-04 14:52:21 -04:00
..
private Implement Pandoc Markdown concise link extension (#20304) 2022-09-04 14:52:21 -04:00
assertions.nim new .redefine pragma for templates, warn on redefinition without it (#20211) 2022-08-23 21:41:30 +02:00
compilesettings.nim add mm to compilesettings; deprecate gc (#19394) 2022-01-16 21:10:35 +01:00
decls.nim New/better macro pragmas, mark some as experimental (#19406) 2022-01-20 20:57:50 +01:00
editdistance.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
effecttraits.nim .forbids pragma: defining forbidden tags (#20050) 2022-07-26 07:40:49 +02:00
enumerate.nim move tests to testament (#16101) 2020-11-24 19:06:41 +01:00
enumutils.nim move assertions out of system (#19599) 2022-03-23 20:34:53 +01:00
envvars.nim Add use of Windows Wide CRT API for env. vars (#20084) 2022-08-20 04:30:11 -04:00
exitprocs.nim Freeing critical sections via atexit in system/alloc and system/io (#19062) 2021-10-29 13:42:44 +02:00
formatfloat.nim move formatfloat out of system (#20195) 2022-08-24 13:38:30 +02:00
genasts.nim new genAst as replacement for quote do (#17426) 2021-04-02 13:11:03 +02:00
importutils.nim make privateAccess work with generic types and generic instantiations; fix a SIGSEGV (#18260) 2021-06-19 11:24:46 -07:00
isolation.nim Rename = to =copy in stdlib (#17781) 2021-04-19 13:16:10 +02:00
jsbigints.nim add number literal jsbigints.big (#17707) 2021-04-13 09:33:28 +02:00
jsfetch.nim Pass headers and body correctly to FetchOptions (#19884) [backport] 2022-06-13 08:03:40 +02:00
jsformdata.nim Use .. warning:: (#17320) 2021-03-10 10:39:23 -08:00
jsheaders.nim Use .. warning:: (#17320) 2021-03-10 10:39:23 -08:00
jsonutils.nim move assertions out of system (#19599) 2022-03-23 20:34:53 +01:00
logic.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
monotimes.nim Implement zephyr urandom and monotime (#19142) 2021-11-14 12:49:30 +01:00
objectdollar.nim test removing dollar for objects out of system (#20242) 2022-08-24 09:44:16 +02:00
oserrors.nim Added std/oserrors for OS error reporting (#19390) 2022-01-17 13:06:31 +01:00
packedsets.nim move assertions out of system (#19599) 2022-03-23 20:34:53 +01:00
setutils.nim correct licence header (#18935) 2021-10-01 13:57:06 +02:00
sha1.nim move assertions out of system (#19599) 2022-03-23 20:34:53 +01:00
socketstreams.nim Implements streams for sockets (#15729) 2021-01-07 16:09:57 +01:00
stackframes.nim init checks and 'out' parameters (#14521) 2020-06-23 10:53:57 +02:00
strbasics.nim bootstrap the compiler with nimPreviewSlimSystem (#20176) 2022-08-09 16:32:29 +08:00
sums.nim Deprecate std/sums (#18439) 2022-06-09 08:27:31 +02:00
syncio.nim Revert "fix #19600 No error checking on fclose (#19836)" (#20297) 2022-09-02 19:04:58 +02:00
sysrand.nim sysrand: fix syscall signature [backport] (#19982) 2022-07-07 21:26:58 +08:00
tasks.nim enable style:usages for stdlib tests [backport: 1.6] (#19715) 2022-04-13 11:53:02 +02:00
tempfiles.nim [std/tempfiles] docs improvement (#18936) 2021-10-01 20:14:10 +02:00
time_t.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
varints.nim Make unused code into actual test, replace echo with doassert (#13952) 2020-04-11 22:16:26 +02:00
vmutils.nim enable VM tracing in user code via {.define(nimVmTrace).} (#18244) 2021-06-24 11:55:31 +02:00
with.nim Small doc improvements for std/with (#17556) 2021-03-29 12:44:31 +02:00
wordwrap.nim move rest of tests to testament (#16140) 2020-11-27 20:47:49 +01:00
wrapnils.nim major improvements to std/wrapnils: optimal codegen, case objects, lvalue semantics (#18435) 2021-07-07 06:04:36 +02:00