Basic Front Matter Editing Example¶
- Synopsis
Example program that performs the following actions:
Reads a Jinja2 template
{% set toc = "true" %} toc: {{ toc }} draft: {{ false | canPublish }} hasMath: {{ hasMath }} stuff: {{ addedVariable }}
Reads a mardown file that contains yaml front matter via
editfrontmatter.EditFrontMatter.readFile()
--- title: "EditFrontMatter Class Example 1" description: "Edit some fields in this front matter" catagories: [programming, python, markdown] deleteme: this will be deleted tags: [front matter, administration, testing] # comments and spaces will be eliminated (see docs) author: "Karl N. Redman" creatordisplayname: "Karl N. Redman" creatoremail: "karl.redman@example.com" date: 2019-05-23T17:43:45-05:00 lastmodifierdisplayname: "Karl N. Redman" lastmodifieremail: "karl.redman@gmail.com" lastmod: 2019-05-23T17:43:45-05:00 toc: false type: "page" hasMath: false draft: false weight: 5 --- # EditFontMatter Class Example 1 Edit several fields of front matter. ## Fields affected in this example: * toc * note: uses local template variable * pre: false * post: true * draft: * note: uses jinja2 filter (callback) * pre: false * post: true * hasMath * note: uses program variable * pre: true * post: false * stuff: * note: uses program variable to create field * pre: did not exist * post: (list) ['one', 'two', 'three'] * deleteme: * note: removed from final result * pre: this will be deleted * post: N/A
Extracts the front matter from the source file
Prorammitically edits the front matter via
editfrontmatter.EditFrontMatter.run()
Concatinates the edited front matter with the original file content via
editfrontmatter.EditFrontMatter.dumpFileData()
Prints the edited file to stdout
- Dependencies
editfrontmatter>=0.0.1 Jinja2>=2.10.1 MarkupSafe>=1.1.1 oyaml>=0.9 PyYAML>=5.1
- Platform
Unix, Windows, python >=v3.5.3
- License
- Author
- homepage
- Current Release
version: 0.0.1
New in version 0.0.1: Initial Version
-
canPublish_func
(val)[source]¶ - Description
Example callback function used to populate a jinja2 variable. Note that this function must be reentrant for threaded applications.
- Parameters
val (object) – generic object for the example
- Returns
example content (True)
-
main
()[source]¶ - Description
Basic example function for processing yaml with a jinja template and a markdown file with yaml content.
- Envvar
TEST_DATA_DIR Variable used to specify the path to the data files.
- Variables
DATA_PATH (str) – generic path if running from the local example1 directory
file_path (str) – path of data (markdown) file to be read
template_str (str) – string containing the contents of a Jinja2 template
proc (EditFrontMatter) – the EditFrontmatter object
- Returns
program exit status (0 or 1)
Example
To run from a non program directory use the environment variable:
TEST_DATA_DIR="./data/" example1/example1.py