basic-book-builder/chapters/03_Features.md

272 lines
4.6 KiB
Markdown

# Features
The basic book builder template integrates feature from many systems including Pandoc, MathJax, Obsidian, and Zotero. The following list covers these features from a functional point of view.
## Metadata
Metadata for the project is managed in `metadata.yaml`. Edit this file to make **global changes** to variables for your document. Definitions in `metadata.yaml` will propagate to all format builds.
## Front-matter
Front-Matter documents control the Title Page, Metadata and other pages before the Title of Contents. Front matter content is manged in these files:
- `templates/frontmatter.tex`
- `templates/frontmatter.html`
- `templates/frontmatter-md.html`
Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats.
### Title Page
Edit the **Front-matter** files to modify the formatting of the Title Page. You'll need to modify the HTML / LaTex code.
### Meta Data Page
Edit the **Front-matter** files to modify the 2nd page Metadata format and fields to display.
### Cover Illustration
Edit the **Front-matter** files to optionally un-comment the Cover Art Acknowledgement.
- This is disabled by default
### Dedication
Edit the **Front-matter** files to modify un-comment the Book Dedication.
- This is disabled by default
## Table of Contents
The table of contents is auto generated. But can be disabled in `template\pandoc.yaml` by setting:
- `toc: false`
## Chapters
Chapter Markdown source files are located in the `chapters` directory. To edit which chapter files are included the document:
- Edit the `input-file:` section of the `template\pandoc.yaml`
## Appendixes
TBD
## Glossary
TBD
## Index
TBD
### Markdown Indexes
TBD
## Bibliography
TBD
### Zotero Integration
TBD
### Obsidian Citations
TBD
## Images
You can use basic Markdown Images
```
![ACEP](lib/img/ACEPLogo.png)
```
![ACEP](lib/img/ACEPLogo.png)
## *LaTeX* Equations
You can embed LaTeX equations directly in your Markdown pages.
### Left Justified / Inline
To left justify *LaTex* surround the code inside single `$`:
> [!code] Left Justified Equation
> ```
> $x = \frac{1}{2}$
> ```
$x = \frac{1}{2}$
> [!code] Inline
> ```
> Or inline, $x = \frac{1}{2}$, in a sentence.
> ```
Or inline, $x = \frac{1}{2}$, in a sentence.
### Centered
To center justify *LaTex* surround the code inside double `$$`:
> [!code] Centered Equation
> ```
> $$x = \frac{1}{2}$$
> ```
$$x = \frac{1}{2}$$
## Custom Markdown
### Call-outs
A few call-out box styles have been custom added to easily highlight certain types of content.
> [!code] Markdown Example
> ```
> [!established] Green Call-out Title
> A green box
> ```
Will render:
> [!established] Green Call-out Title
> A green box
---
> [!code] Markdown Example
> ```
> [!proposed] Blue Call-out Title
> A blue box
> ```
Will render:
> [!proposed] Blue Call-out Title
> A blue box
---
> [!code] Markdown Example
> ```
> [!speculative] Purple Call-out Title
> A purple box
> ```
Will render:
> [!speculative] Purple Call-out Title
> A purple box
---
> [!code] Markdown Example
> ```
> [!caution] Caution Note
> Beware of this section. AKA a orange box.
> ```
Will render:
> [!caution] Caution Note
> Beware of this section. AKA a orange box.
---
> [!code] Markdown Example
> ```
> [!warning] Warning Note
> Same as the Caution Box
> ```
Will render:
> [!warning] Warning Note
> Same as the Caution Box
---
> [!code] Markdown Example
> ```
> [!danger] Alert
> A slightly stronger warning. AKA a red box.
> ```
Will render:
> [!danger] Alert
> A slightly stronger warning. AKA a red box.
---
> [!code] Markdown Example
> ```
> [!code] Code Block
> '''
> if [ true ]; do
> echo "The Cow Jumps over the Moon"
> fi
> '''
> ```
Will render:
> [!code] Code Block
> ```
> if [ true ]; do
> echo "The Cow Jumps over the Moon"
> fi
> ```
---
> [!code] Markdown Example
> ```
> [!cli] Command line
> A command line example
>'''
>$ ls
>build chapters conf filters lib LICENSE.md Makefile
>metadata.yaml >README.md scripts templates
> '''
> ```
Will render:
> [!cli] Command line
> A command line example
> ```
> $ ls
> build chapters conf filters lib LICENSE.md Makefile
> metadata.yaml README.md scripts templates
> ```
## Advanced
### Changing Fonts
It is possible to change fonts by editing `templates/pandoc.yaml`, and `templates\styles.css`, but you will have to make sure you have the proper font's installed on your system first.
### Adding Filters
Custom filters can be created. This is complicated and typically needs done in 3 places for:
- obsidian
- *LaTeX*
- HTML