123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- ##[
- .. include:: ./utils_overview.rst
- # This is now a header
- ## Next header
- ### And so on
- # More headers
- ###### Up to level 6
- #. An enumeration
- #. Second idea here.
- More text.
- 1. Other case value
- 2. Second case.
- Ref group fn2_ or specific function like `fn2()`_
- or `fn2( int )`_ or `fn2(int,
- float)`_.
- Ref generics like this: binarySearch_ or `binarySearch(openArray[T], K,
- proc (T, K))`_ or `proc binarySearch(openArray[T], K, proc (T, K))`_ or
- in different style: `proc binarysearch(openarray[T], K, proc(T, K))`_.
- Can be combined with export symbols and type parameters:
- `binarysearch*[T, K](openArray[T], K, proc (T, K))`_.
- With spaces `binary search`_.
- Note that `proc` can be used in postfix form: `binarySearch proc`_.
- Ref. type like G_ and `type G`_ and `G[T]`_ and `type G*[T]`_.
- Group ref. with capital letters works: fN11_ or fn11_
- ]##
- include ./utils_helpers
- type
- SomeType* = enum
- enumValueA,
- enumValueB,
- enumValueC
- G*[T] = object
- val: T
- proc someType*(): SomeType =
- ## constructor.
- SomeType(2)
- proc fn2*() = discard ## comment
- proc fn2*(x: int) =
- ## fn2 comment
- discard
- proc fn2*(x: int, y: float) =
- discard
- proc binarySearch*[T, K](a: openArray[T]; key: K;
- cmp: proc (x: T; y: K): int {.closure.}): int =
- discard
- proc fn3*(): auto = 1 ## comment
- proc fn4*(): auto = 2 * 3 + 4 ## comment
- proc fn5*() ## comment
- proc fn5*() = discard
- proc fn6*() =
- ## comment
- proc fn7*() =
- ## comment
- discard
- proc fn8*(): auto =
- ## comment
- 1+1
- func fn9*(a: int): int = 42 ## comment
- func fn10*(a: int): int = a ## comment
- # Note capital letter N will be handled correctly in
- # group references like fN11_ or fn11_
- # (or [fN11] or [fn11] in Markdown Syntax):
- func fN11*() = discard
- func fN11*(x: int) = discard
- # bug #9235
- template aEnum*(): untyped =
- type
- A* {.inject.} = enum ## The enum A.
- aA
- template bEnum*(): untyped =
- type
- B* {.inject.} = enum ## The enum B.
- bB
- func someFunc*() =
- ## My someFunc.
- ## Stuff in `quotes` here.
- ## [Some link](https://nim-lang.org)
- discard
- template fromUtilsGen*(): untyped =
- ## should be shown in utils.html only
- runnableExamples:
- discard "should be in utils.html only, not in module that calls fromUtilsGen"
- ## ditto
- iterator fromUtils1*(): int =
- runnableExamples:
- # ok1
- assert 1 == 1
- # ok2
- yield 15
- template fromUtils2*() =
- ## ok3
- runnableExamples:
- discard """should be shown as examples for fromUtils2
- in module calling fromUtilsGen"""
- proc fromUtils3*() =
- ## came form utils but should be shown where `fromUtilsGen` is called
- runnableExamples: discard """should be shown as examples for fromUtils3
- in module calling fromUtilsGen"""
- proc f*(x: G[int]) =
- ## There is also variant `f(G[string])`_
- discard
- proc f*(x: G[string]) =
- ## See also `f(G[int])`_.
- discard
- ## Ref. `[]`_ is the same as `proc \`[]\`(G[T])`_ because there are no
- ## overloads. The full form: `proc \`[]\`*[T](x: G[T]): T`_
- proc `[]`*[T](x: G[T]): T = x.val
- ## Ref. `[]=`_ aka `\`[]=\`(G[T], int, T)`_.
- proc `[]=`*[T](a: var G[T], index: int, value: T) = discard
- ## Ref. `$`_ aka `proc $`_ or `proc \`$\``_.
- proc `$`*[T](a: G[T]): string = ""
- ## Ref. `$(a: ref SomeType)`_.
- proc `$`*[T](a: ref SomeType): string = ""
- ## Ref. foo_bar_ aka `iterator foo_bar_`_.
- iterator fooBar*(a: seq[SomeType]): int = discard
- ## Ref. `fn[T; U,V: SomeFloat]()`_.
- proc fn*[T; U, V: SomeFloat]() = discard
- ## Ref. `'big`_ or `func \`'big\``_ or `\`'big\`(string)`_.
- func `'big`*(a: string): SomeType = discard
- ##[
- Pandoc Markdown
- ===============
- Now repeat all the auto links of above in Pandoc Markdown Syntax.
- Ref group [fn2] or specific function like [fn2()]
- or [fn2( int )] or [fn2(int,
- float)].
- Ref generics like this: [binarySearch] or [binarySearch(openArray[T], K,
- proc (T, K))] or [proc binarySearch(openArray[T], K, proc (T, K))] or
- in different style: [proc binarysearch(openarray[T], K, proc(T, K))].
- Can be combined with export symbols and type parameters:
- [binarysearch*[T, K](openArray[T], K, proc (T, K))].
- With spaces [binary search].
- Note that `proc` can be used in postfix form: [binarySearch proc].
- Ref. type like [G] and [type G] and [G[T]] and [type G*[T]].
- Group ref. with capital letters works: [fN11] or [fn11]
- Ref. [`[]`] is the same as [proc `[]`(G[T])] because there are no
- overloads. The full form: [proc `[]`*[T](x: G[T]): T]
- Ref. [`[]=`] aka [`[]=`(G[T], int, T)].
- Ref. [$] aka [proc $] or [proc `$`].
- Ref. [$(a: ref SomeType)].
- Ref. [foo_bar] aka [iterator foo_bar_].
- Ref. [fn[T; U,V: SomeFloat]()].
- Ref. ['big] or [func `'big`] or [`'big`(string)].
- Link name syntax
- ----------------
- Pandoc Markdown has synax for changing text of links:
- Ref. [this proc][`[]`] or [another symbol][G[T]].
- Symbols documentation
- ---------------------
- Let us repeat auto links from symbols section below:
- There is also variant [f(G[string])].
- See also [f(G[int])].
- ]##
|