mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-23 11:39:45 +00:00
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:
committed by
ringabout
parent
03a0fda1bd
commit
9b7320d352
@@ -180,7 +180,7 @@ iterator fastRows*(db: DbConn, query: SqlQuery,
|
||||
## if you require **ALL** the rows.
|
||||
##
|
||||
## Breaking the fastRows() iterator during a loop will cause the next
|
||||
## database query to raise an [EDb] exception `Commands out of sync`.
|
||||
## database query to raise an `EDb` exception `Commands out of sync`.
|
||||
rawExec(db, query, args)
|
||||
var sqlres = mysql.useResult(PMySQL db)
|
||||
if sqlres != nil:
|
||||
@@ -203,7 +203,7 @@ iterator instantRows*(db: DbConn, query: SqlQuery,
|
||||
args: varargs[string, `$`]): InstantRow
|
||||
{.tags: [ReadDbEffect].} =
|
||||
## Same as fastRows but returns a handle that can be used to get column text
|
||||
## on demand using []. Returned handle is valid only within the iterator body.
|
||||
## on demand using `[]`. Returned handle is valid only within the iterator body.
|
||||
rawExec(db, query, args)
|
||||
var sqlres = mysql.useResult(PMySQL db)
|
||||
if sqlres != nil:
|
||||
@@ -283,7 +283,7 @@ proc setColumnInfo(columns: var DbColumns; res: PRES; L: int) =
|
||||
iterator instantRows*(db: DbConn; columns: var DbColumns; query: SqlQuery;
|
||||
args: varargs[string, `$`]): InstantRow =
|
||||
## Same as fastRows but returns a handle that can be used to get column text
|
||||
## on demand using []. Returned handle is valid only within the iterator body.
|
||||
## on demand using `[]`. Returned handle is valid only within the iterator body.
|
||||
rawExec(db, query, args)
|
||||
var sqlres = mysql.useResult(PMySQL db)
|
||||
if sqlres != nil:
|
||||
|
||||
Reference in New Issue
Block a user