# README.md

### Installation
Create a virtual python environment using ` python -m venv venv`
Activate the virtual environment using `source venv/bin/activate`
Install the packages using `pip install -r requirements.txt`


### Running
Compile the content into a static site using
```
python app.py
```

This creates the "dist" directory, with all of the HTML in there.
At the moment, `dist` is part of the `.gitignore`!


### Writing Content
Within the `content` directory, you can create/edit markdown files. When compiling the markdown content, `app.py` will look for jinja templates in the `templates` directory. If the markdown file is in the root of `content`, it will try to load a template with the same filename as the markdown file. For instance, `about.md` will look for `about.jinja`.
If the markdown file is in a subdirectory, it will look for a template with the same name as the subdirectory. At the moment, there is no functionality for deep nested folders. So, `recipes/tomato-soup.md` wants `recipes.jinja`. If the template does not exist, the default template is `post.jinja`.

The project uses [Jinja](https://jinja.palletsprojects.com/), which allows for extending templates, using variables, looping through variables, and other funky features!

Additionally, `component-inventory.csv` is loaded as a dataset.

### Transclusion
You'll be able to transclude one markdown file into another, by applying the following syntax:

```MARKDOWN
{! path-to-file.md !}
```

The transclusion package also allows for transcluding specific lines:

```MARKDOWN
{! path-to-file.md!lines=1  3 8-10  2}
```
In the example above, it would read the file and include the lines 1, 3, 8, 9, 10, 2.




### Metadata
Metadata can be applied to markdown files using FrontMatters YAML. The metadata is accessable in the jinja tempaltes using `page.{metadata}`. In the example below, this could be, `page.title`.

```MARKDOWN
---

title: Capacitors
type: Capacitor
valueSymbol: unf
description: This is the description
---
```


### Assets
At the moment, the `src/assets` directory is copied to the `dist` folder, to apply CSS.
