Fix many broken links and prefer relative links within docs (#12463)

* Fix many broken links

Note that contrary to what docgen.rst currently says, the ids have
to match exactly or else most web browsers will not jump to the
intended symbol.

* Prefer relative links for Nim documentation

This is more friendly to those browsing the documentation without
a network connection. The nim-doc package in Debian allows this,
for example.

Also, the domain name being used was not consistent. It could have
been either nim-lang.org or nim-lang.github.io, and those reading
the stable docs could have found themselves suddenly reading the
devel docs instead.

* koch.rst: remove link to nonexistent section

* manual.rst: remove unintended link

cast[T](0) is interpreted as a link to id 0 with text T, so escape
the opening parentheses to display the intended output.

* asyncstreams: replace unintended link with emphasis

* Fix word wrapping
This commit is contained in:
Miran 2019-10-24 14:07:43 +02:00 • committed by GitHub
commit b03de8a4d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 239 additions and 216 deletions

View file

@ -392,7 +392,7 @@ func sort*[T](a: var openArray[T],
## sort(myStrArray, system.cmp)
##
## You can inline adhoc comparison procs with the `do notation
## <manual.html#procedures-do-notation>`_. Example:
## <manual_experimental.html#do-notation>`_. Example:
##
## .. code-block:: nim
##

View file

@ -60,7 +60,7 @@ proc `callback=`*[T](future: FutureStream[T],
proc finished*[T](future: FutureStream[T]): bool =
## Check if a ``FutureStream`` is finished. ``true`` value means that
## no more data will be placed inside the stream _and_ that there is
## no more data will be placed inside the stream *and* that there is
## no data waiting to be retrieved.
result = future.finished and future.queue.len == 0

View file

@ -175,8 +175,8 @@ proc decode*(s: string): string =
## The initial whitespace is skipped.
##
## **See also:**
## * `encode proc<#encode,openArray[T],int,string>`_ for encoding an openarray
## * `encode proc<#encode,string,int,string>`_ for encoding a string
## * `encode proc<#encode,openArray[T]>`_ for encoding an openarray
## * `encode proc<#encode,string>`_ for encoding a string
runnableExamples:
assert decode("SGVsbG8gV29ybGQ=") == "Hello World"
assert decode(" SGVsbG8gV29ybGQ=") == "Hello World"

View file

@ -69,8 +69,8 @@
## See also
## ========
##
## * `deques module <#deques.html>`_ for double-ended queues
## * `sharedlist module <#sharedlist.html>`_ for shared singly-linked lists
## * `deques module <deques.html>`_ for double-ended queues
## * `sharedlist module <sharedlist.html>`_ for shared singly-linked lists
when not defined(nimhygiene):

View file

@ -35,7 +35,7 @@
## `filterIt<#filterIt.t,untyped,untyped>`_, etc.)
##
## The chaining of functions is possible thanks to the
## `method call syntax<manual.html#procs-method-call-syntax>`_.
## `method call syntax<manual.html#procedures-method-call-syntax>`_.
##
## .. code-block::
## import sequtils, sugar

View file

@ -99,8 +99,8 @@ proc init*[A](s: var HashSet[A], initialSize = defaultInitialSize) =
##
## The `initialSize` parameter needs to be a power of two (default: 64).
## If you need to accept runtime values for this, you can use
## `math.nextPowerOfTwo proc <math.html#nextPowerOfTwo>`_ or `rightSize proc
## <#rightSize,Natural>`_ from this module.
## `math.nextPowerOfTwo proc <math.html#nextPowerOfTwo,int>`_ or
## `rightSize proc <#rightSize,Natural>`_ from this module.
##
## Starting from Nim v0.20, sets are initialized by default and it is
## not necessary to call this function explicitly.
@ -645,8 +645,8 @@ proc init*[A](s: var OrderedSet[A], initialSize = defaultInitialSize) =
##
## The `initialSize` parameter needs to be a power of two (default: 64).
## If you need to accept runtime values for this, you can use
## `math.nextPowerOfTwo proc <math.html#nextPowerOfTwo>`_ or `rightSize proc
## <#rightSize,Natural>`_ from this module.
## `math.nextPowerOfTwo proc <math.html#nextPowerOfTwo,int>`_ or
## `rightSize proc <#rightSize,Natural>`_ from this module.
##
## Starting from Nim v0.20, sets are initialized by default and it is
## not necessary to call this function explicitly.

View file

@ -134,7 +134,8 @@
## # 'a': 5, 'b': 2, 'c': 1, 'd': 1, 'r': 2}
##
## The same could have been achieved by manually iterating over a container
## and increasing each key's value with `inc proc<#inc,CountTable[A],A,int>`_:
## and increasing each key's value with `inc proc
## <#inc,CountTable[A],A,Positive>`_:
##
## .. code-block::
## import tables
@ -2236,7 +2237,7 @@ proc `[]=`*[A](t: var CountTable[A], key: A, val: int) =
##
## See also:
## * `[] proc<#[],CountTable[A],A>`_ for retrieving a value of a key
## * `inc proc<#inc,CountTable[A],A,int>`_ for incrementing a
## * `inc proc<#inc,CountTable[A],A,Positive>`_ for incrementing a
## value of a key
assert(not t.isSorted, "CountTable must not be used after sorting")
assert val >= 0

View file

@ -487,7 +487,7 @@ proc parallel*(body: untyped) {.magic: "Parallel".}
##
## ``body`` has to be in a DSL that is a particular subset of the language.
##
## Please refer to `the manual <manual.html#parallel-amp-spawn>`_
## Please refer to `the manual <manual_experimental.html#parallel-amp-spawn>`_
## for further information.
var

View file

@ -11,7 +11,7 @@
## as ``from htmlgen import nil`` and then fully qualify the macros.
##
## *Note*: The Karax project (``nimble install karax``) has a better
## way to achieve the same, see `https://github.com/pragmagic/karax/blob/master/tests/nativehtmlgen.nim`_
## way to achieve the same, see https://github.com/pragmagic/karax/blob/master/tests/nativehtmlgen.nim
## for an example.
##
##

View file

@ -35,7 +35,7 @@
## # nan (use `complex` module)
##
## This module is available for the `JavaScript target
## <backends.html#the-javascript-target>`_.
## <backends.html#backends-the-javascript-target>`_.
##
## **See also:**
## * `complex module<complex.html>`_ for complex numbers and their

View file

@ -431,9 +431,9 @@ iterator memSlices*(mfile: MemFile, delim = '\l', eat = '\r'): MemSlice {.inline
iterator lines*(mfile: MemFile, buf: var TaintedString, delim = '\l',
eat = '\r'): TaintedString {.inline.} =
## Replace contents of passed buffer with each new line, like
## `readLine(File) <system.html#readLine,File,TaintedString>`_.
## `delim`, `eat`, and delimiting logic is exactly as for
## `memSlices <#memSlices>`_, but Nim strings are returned.
## `readLine(File) <io.html#readLine,File,TaintedString>`_.
## `delim`, `eat`, and delimiting logic is exactly as for `memSlices
## <#memSlices.i,MemFile,char,char>`_, but Nim strings are returned.
##
## Example:
##
@ -450,9 +450,9 @@ iterator lines*(mfile: MemFile, buf: var TaintedString, delim = '\l',
iterator lines*(mfile: MemFile, delim = '\l', eat = '\r'): TaintedString {.inline.} =
## Return each line in a file as a Nim string, like
## `lines(File) <system.html#lines.i,File>`_.
## `delim`, `eat`, and delimiting logic is exactly as for
## `memSlices <#memSlices>`_, but Nim strings are returned.
## `lines(File) <io.html#lines.i,File>`_.
## `delim`, `eat`, and delimiting logic is exactly as for `memSlices
## <#memSlices.i,MemFile,char,char>`_, but Nim strings are returned.
##
## Example:
##

View file

@ -57,7 +57,7 @@
## ========
##
## * `streams module <streams.html>`_ for using
## `open proc <#open,CsvParser,Stream,string,Char,Char,Char>`_
## `open proc <#open,CsvParser,Stream,string,char,char,char>`_
## and other stream processing (like `close proc <streams.html#close,Stream>`_)
## * `parseopt module <parseopt.html>`_ for a command line parser
## * `parsecfg module <parsecfg.html>`_ for a configuration file parser
@ -117,7 +117,7 @@ proc open*(my: var CsvParser, input: Stream, filename: string,
## `separator` is ignored.
##
## See also:
## * `open proc <#open,CsvParser,string,Char,Char,Char>`_ which creates the
## * `open proc <#open,CsvParser,string,char,char,char>`_ which creates the
## file stream for you
runnableExamples:
import streams
@ -139,7 +139,7 @@ proc open*(my: var CsvParser, input: Stream, filename: string,
proc open*(my: var CsvParser, filename: string,
separator = ',', quote = '"', escape = '\0',
skipInitialSpace = false) =
## Similar to the `other open proc<#open,CsvParser,Stream,string,Char,Char,Char>`_,
## Similar to the `other open proc<#open,CsvParser,Stream,string,char,char,char>`_,
## but creates the file stream for you.
runnableExamples:
from os import removeFile

View file

@ -75,7 +75,7 @@
## generator
## * `stats module<stats.html>`_ for statistical analysis
## * `list of cryptographic and hashing modules
## <lib.html#pure-libraries-cryptography-and-hashing>`_
## <lib.html#pure-libraries-hashing>`_
## in the standard library
import algorithm #For upperBound

View file

@ -1223,7 +1223,7 @@ else:
## * `newStringStream proc <#newStringStream,string>`_ creates a new stream
## from string.
## * `newFileStream proc <#newFileStream,string,FileMode,int>`_ is the same
## as using `open proc <system.html#open,File,string,FileMode,int>`_
## as using `open proc <io.html#open,File,string,FileMode,int>`_
## on Examples.
## * `openFileStream proc <#openFileStream,string,FileMode,int>`_ creates a
## file stream from the file name and the mode.

View file

@ -50,7 +50,7 @@
## "Beetlejuice Beetlejuice Beetlejuice"
##
## This module is available for the `JavaScript target
## <backends.html#the-javascript-target>`_.
## <backends.html#backends-the-javascript-target>`_.
##
## ----
##
@ -209,7 +209,7 @@ proc toLowerAscii*(c: char): char {.noSideEffect, procvar,
## Returns the lower case version of character ``c``.
##
## This works only for the letters ``A-Z``. See `unicode.toLower
## <unicode.html#toLower>`_ for a version that works for any Unicode
## <unicode.html#toLower,Rune>`_ for a version that works for any Unicode
## character.
##
## See also:
@ -233,7 +233,7 @@ proc toLowerAscii*(s: string): string {.noSideEffect, procvar,
## Converts string `s` into lower case.
##
## This works only for the letters ``A-Z``. See `unicode.toLower
## <unicode.html#toLower>`_ for a version that works for any Unicode
## <unicode.html#toLower,string>`_ for a version that works for any Unicode
## character.
##
## See also:
@ -247,7 +247,7 @@ proc toUpperAscii*(c: char): char {.noSideEffect, procvar,
## Converts character `c` into upper case.
##
## This works only for the letters ``A-Z``. See `unicode.toUpper
## <unicode.html#toUpper>`_ for a version that works for any Unicode
## <unicode.html#toUpper,Rune>`_ for a version that works for any Unicode
## character.
##
## See also:
@ -267,7 +267,7 @@ proc toUpperAscii*(s: string): string {.noSideEffect, procvar,
## Converts string `s` into upper case.
##
## This works only for the letters ``A-Z``. See `unicode.toUpper
## <unicode.html#toUpper>`_ for a version that works for any Unicode
## <unicode.html#toUpper,string>`_ for a version that works for any Unicode
## character.
##
## See also:
@ -631,10 +631,10 @@ iterator rsplit*(s: string, sep: string, maxsplit: int = -1,
iterator splitLines*(s: string, keepEol = false): string =
## Splits the string `s` into its containing lines.
##
## Every `character literal <manual.html#character-literals>`_ newline
## combination (CR, LF, CR-LF) is supported. The result strings contain no
## trailing end of line characters unless parameter ``keepEol`` is set to
## ``true``.
## Every `character literal <manual.html#lexical-analysis-character-literals>`_
## newline combination (CR, LF, CR-LF) is supported. The result strings
## contain no trailing end of line characters unless parameter ``keepEol``
## is set to ``true``.
##
## Example:
##
@ -1308,8 +1308,8 @@ proc spaces*(n: Natural): string {.inline.} =
## to left align strings.
##
## See also:
## * `align proc<#align,string,Natural,Char>`_
## * `alignLeft proc<#alignLeft,string,Natural,Char>`_
## * `align proc<#align,string,Natural,char>`_
## * `alignLeft proc<#alignLeft,string,Natural,char>`_
## * `indent proc<#indent,string,Natural,string>`_
## * `center proc<#center,string,int,char>`_
runnableExamples:
@ -1330,10 +1330,10 @@ proc align*(s: string, count: Natural, padding = ' '): string {.
## `padding` characters (by default spaces) are added before `s` resulting in
## right alignment. If ``s.len >= count``, no spaces are added and `s` is
## returned unchanged. If you need to left align a string use the `alignLeft
## proc <#alignLeft,string,Natural,Char>`_.
## proc <#alignLeft,string,Natural,char>`_.
##
## See also:
## * `alignLeft proc<#alignLeft,string,Natural,Char>`_
## * `alignLeft proc<#alignLeft,string,Natural,char>`_
## * `spaces proc<#spaces,Natural>`_
## * `indent proc<#indent,string,Natural,string>`_
## * `center proc<#center,string,int,char>`_
@ -1357,10 +1357,10 @@ proc alignLeft*(s: string, count: Natural, padding = ' '): string {.
## `padding` characters (by default spaces) are added after `s` resulting in
## left alignment. If ``s.len >= count``, no spaces are added and `s` is
## returned unchanged. If you need to right align a string use the `align
## proc <#align,string,Natural,Char>`_.
## proc <#align,string,Natural,char>`_.
##
## See also:
## * `align proc<#align,string,Natural,Char>`_
## * `align proc<#align,string,Natural,char>`_
## * `spaces proc<#spaces,Natural>`_
## * `indent proc<#indent,string,Natural,string>`_
## * `center proc<#center,string,int,char>`_
@ -1387,8 +1387,8 @@ proc center*(s: string, width: int, fillChar: char = ' '): string {.
## to `s.len`.
##
## See also:
## * `align proc<#align,string,Natural,Char>`_
## * `alignLeft proc<#alignLeft,string,Natural,Char>`_
## * `align proc<#align,string,Natural,char>`_
## * `alignLeft proc<#alignLeft,string,Natural,char>`_
## * `spaces proc<#spaces,Natural>`_
## * `indent proc<#indent,string,Natural,string>`_
runnableExamples:
@ -1420,8 +1420,8 @@ proc indent*(s: string, count: Natural, padding: string = " "): string
## **Note:** This does not preserve the new line characters used in ``s``.
##
## See also:
## * `align proc<#align,string,Natural,Char>`_
## * `alignLeft proc<#alignLeft,string,Natural,Char>`_
## * `align proc<#align,string,Natural,char>`_
## * `alignLeft proc<#alignLeft,string,Natural,char>`_
## * `spaces proc<#spaces,Natural>`_
## * `unindent proc<#unindent,string,Natural,string>`_
runnableExamples:
@ -1445,8 +1445,8 @@ proc unindent*(s: string, count: Natural, padding: string = " "): string
## **Note:** This does not preserve the new line characters used in ``s``.
##
## See also:
## * `align proc<#align,string,Natural,Char>`_
## * `alignLeft proc<#alignLeft,string,Natural,Char>`_
## * `align proc<#align,string,Natural,char>`_
## * `alignLeft proc<#alignLeft,string,Natural,char>`_
## * `spaces proc<#spaces,Natural>`_
## * `indent proc<#indent,string,Natural,string>`_
runnableExamples:
@ -1471,8 +1471,8 @@ proc unindent*(s: string): string
## Removes all indentation composed of whitespace from each line in ``s``.
##
## See also:
## * `align proc<#align,string,Natural,Char>`_
## * `alignLeft proc<#alignLeft,string,Natural,Char>`_
## * `align proc<#align,string,Natural,char>`_
## * `alignLeft proc<#alignLeft,string,Natural,char>`_
## * `spaces proc<#spaces,Natural>`_
## * `indent proc<#indent,string,Natural,string>`_
runnableExamples:
@ -1862,7 +1862,7 @@ proc find*(s: string, sub: char, start: Natural = 0, last = 0): int {.noSideEffe
## Use `s[start..last].rfind` for a ``start``-origin index.
##
## See also:
## * `rfind proc<#rfind,string,char,int,int>`_
## * `rfind proc<#rfind,string,char,Natural,int>`_
## * `replace proc<#replace,string,char,char>`_
let last = if last == 0: s.high else: last
when nimvm:
@ -1890,7 +1890,7 @@ proc find*(s: string, chars: set[char], start: Natural = 0, last = 0): int {.noS
## Use `s[start..last].find` for a ``start``-origin index.
##
## See also:
## * `rfind proc<#rfind,string,set[char],int,int>`_
## * `rfind proc<#rfind,string,set[char],Natural,int>`_
## * `multiReplace proc<#multiReplace,string,varargs[]>`_
let last = if last == 0: s.high else: last
for i in int(start)..last:
@ -1907,7 +1907,7 @@ proc find*(s, sub: string, start: Natural = 0, last = 0): int {.noSideEffect,
## Use `s[start..last].find` for a ``start``-origin index.
##
## See also:
## * `rfind proc<#rfind,string,string,int,int>`_
## * `rfind proc<#rfind,string,string,Natural,int>`_
## * `replace proc<#replace,string,string,string>`_
if sub.len > s.len: return -1
if sub.len == 1: return find(s, sub[0], start, last)
@ -1927,7 +1927,7 @@ proc rfind*(s: string, sub: char, start: Natural = 0, last = -1): int {.noSideEf
## Use `s[start..last].find` for a ``start``-origin index.
##
## See also:
## * `find proc<#find,string,char,int,int>`_
## * `find proc<#find,string,char,Natural,int>`_
let last = if last == -1: s.high else: last
for i in countdown(last, start):
if sub == s[i]: return i
@ -2101,7 +2101,8 @@ proc replace*(s: string, sub, by: char): string {.noSideEffect,
rtl, extern: "nsuReplaceChar".} =
## Replaces `sub` in `s` by the character `by`.
##
## Optimized version of `replace <#replace,string,string>`_ for characters.
## Optimized version of `replace <#replace,string,string,string>`_ for
## characters.
##
## See also:
## * `find proc<#find,string,char,Natural,int>`_