add template selection

main
Jean-Marie 'Histausse' Mineau 2024-03-22 19:33:13 +01:00
parent 60a3671a68
commit cd3c5dac83
Signed by: histausse
GPG Key ID: B66AEEDA9B645AD2
3 changed files with 47 additions and 3 deletions

View File

@ -59,6 +59,7 @@ a -- b;
b -- c;
c -- a;
\```
```
```
\```pintora
@ -76,7 +77,6 @@ mindmap
*** DOT Diagram
\```
```
```
### Todo
@ -98,6 +98,14 @@ To hid todos, you can add this line at the top of the document:
#show-todos.update(_ => false)
```
### Templates
Parameters can be passed to the template depending on the usage. The `doc_type` parameter indicate the specific template to use:
```
#show: notes-template.with(doc_type: "research_journal", keywords: ("ipsum",))
```
## TODO:
- biblio

38
lib.typ
View File

@ -23,7 +23,29 @@
}
}
#let notes-template(keywords: (), doc) = {
#let note_header(title: "Notes", ..args) = {
[ = #title ]
}
#let research_journal_header(title: "Research Journal", ..args) = {
show link: underline
show heading.where(level: 2): it => {
it
v(5pt, weak: true)
line(length: 100%)
}
// Setup level3 headings
show heading.where(level: 3): it => {
block(smallcaps(it.body))
}
// Set Make title
align(center, text(size: 20pt, font: "Indie Flower", title))
v(2em)
}
#let notes-template(title: none, doc_type: none, keywords: (), doc) = {
show raw.where(lang: "dot-render"): it => gviz.render-image(it.text)
show raw.where(lang: "digraphLR"): it => gviz.render-image("digraph mygraph { rankdir=\"LR\";" + it.text + "}")
show raw.where(lang: "digraphTB"): it => gviz.render-image("digraph mygraph { rankdir=\"TB\";" + it.text + "}")
@ -42,6 +64,20 @@
rest
}
let args = (:)
for (arg, val) in ("title": title, "keywords": keywords) {
if val != none {
args.insert(arg, val)
}
}
if doc_type == "notes" {
note_header(..args)
} else if doc_type == "research_journal" {
research_journal_header(..args)
} else {
assert.eq(doc_type, none, message: "unknown document type: " + doc_type)
}
doc
todos()

View File

@ -1,5 +1,5 @@
#import "@local/notes:0.0.1": *
#show: notes-template
#show: notes-template.with(doc_type: "research_journal", keywords: ("ipsum",))
```dot-render
digraph mygraph {