doc/-api.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# Nim API
Besides its command libe, you can also import {{hs}} as a library within your [Nim](https://nim-lang.org) program.
## Types
{{hs}} exposes the following Nim types:
```
HastyOptions* = object
toc*: bool
input*: string
output*: string
css*: string
js*: string
watermark*: string
fragment*: bool
HastyFields* = Table[string, proc():string]
HastySnippets* = Table[string, string]
HastyMacros* = Table[string, string]
HastyScribe* = object
options: HastyOptions
fields: HastyFields
snippets: HastySnippets
macros: HastyMacros
document: string
```
## Procs
{{hs}} exposes the following [proc](class:kwd)s.
### newHastyScribe
proc newHastyScribe*(options: HastyOptions, fields: HastyFields): HastyScribe
Instantiates a new {{hs}} object.
### dump
proc dump*(hs: var HastyScribe, data="all", dest=".")
Saves linked resources to the [dest](class:dir) directory.
[data](class:kwd) can be set to one of the following values:
all
: Dumps all resource files.
styles
: Dumps all stylesheet files.
fonts
: Dumps all font files.
### compileFragment
proc compileFragment*(hs: var HastyScribe, input, dir: string, toc = false): string {.discardable.}
Compiles the [input](class:kwd) markdown text into an HTML fragment, without embedding stylesheets or fonts. [dir](class:kwd) identifies the directory containing the input text (it is only used to resolve transclusions).
### compileDocument
proc compileDocument*(hs: var HastyScribe, input, dir: string): string {.discardable.}
Compiles the [input](class:kwd) markdown text into a self-contained HTML document, embedding stylesheets and fonts. [dir](class:kwd) identifies the directory containing the input text (it is only used to resolve transclusions).
### compile
proc compile*(hs: var HastyScribe, input_file: string)
Compiles the markdown file [input\_file](class:kwd) into a self-contained HTML document.
|