____ _ _ __ __ _ | _ \ _ __(_)_ __ ___ __ _| | \/ | __ _ _ __| | ___ _ _ __ | |_) | '__| | '_ ` _ \ / _` | | |\/| |/ _` | '__| |/ / | | | '_ \ | __/| | | | | | | | | (_| | | | | | (_| | | | <| |_| | |_) | |_| |_| |_|_| |_| |_|\__,_|_|_| |_|\__,_|_| |_|\_\\__,_| .__/ |_| # PrimalMarkup The name already implies everything. PrimalMarkup is probably the worst Markup-Language out there. Please do yourself a favor and don't look at the source-code. This project has been done in a hurry! PrimalMarkupScript was originally designed to easily add a content table and chapter-numbers to text files. This is achieved by 'compiling' .pms (Primal-Markup-Script-File) into plain text files. Chapter-numbering and indentation as well as generating the table of contents is handled by the compiler. As of now, the compiler supports two levels of headlines. # Files PrimalMarkupScript uses the .pms extension for its sourcefiles. The Repository also contains the complementary VS-Code plugin for syntax highlighting. Temporary files are created in /tmp and have the suffix .pmc1 ## Syntax The PrimalMarkupScript-Language conatins three basic elements: - Comments (of course...) - Metadata Tags - Content-Tags ### Comments Comments are single-lined and start with `%% `. Inline Comments are not supported. It is recommended to remove any preceding white-spaces to avoid bugs. ### Metadata Tags Metadata Tags set options for the current scope. Right now,there is only one scope available: - Document All Meta-Tags for the Document-Scope have to be at the beginning of the file. The snytax is: `[[gmu.\=\]]` Valid values are: |Option|Default|Function|Required| |--|--|--|--| | defaultWidth | 80 | Width of the seperator | no | | spacerChar | '#' | Char used for generating the seperators | no | | indentation | '\\t' | Char/String used to indent the sub-chapters | no | | title | | Document title | yes | | shorttitle | | Short title for generating the ASCII-Art | no | | author | | Document author | yes | Example: [[gmu.title=Testdokument]] [[gmu.shorttitle=Ansible]] [[gmu.author=Dennis Gunia]] %% Dies ist ein Kommentar. Einfach ignorieren .... ### Content Tags Metadata Tags are substituted by the compiler. The snytax is: `{{gmu.\(=\)}}` Value is only required by section and subsection. Valid values are: - header - contents - seperator - section - subsection - include #### header The **header** generates an ASCII-Art banner with the author and title. Example: {{gmu.header}} Output: _ _ _ _ / \ _ __ ___(_) |__ | | ___ / _ \ | '_ \/ __| | '_ \| |/ _ \ / ___ \| | | \__ \ | |_) | | __/ /_/ \_\_| |_|___/_|_.__/|_|\___| Title : Testdokument Author : Dennis Gunia The ASCII-Text is defined by `gmu.shorttitle`, the Title is defined by `gmu.title` and the Author is defined by `gmu.author`. #### contents The content-tag is replaced with the generated table of contents Example: {{gmu.contents}} Output: 1. Kapitel1 ----------- 1.1 Hier gehts weiter 1.2 Hier gehts weiter Pt. 2 2. Kapitel2 ----------- 3. Kapitel3 ----------- 3.1 Hier gehts weiter Pt. 2 #### seperator The seperator generates a bar with the symbol specified in `gmu.spacerChar` and a width of `gmu.defaultWidth`. Example: {{gmu.seperator}} Output: ################################################################################ #### section The section tag generates a new chapter and automatically assigns a chapter number. Example: {{gmu.section=Kapitel1}} Output: 1. Kapitel1 =========== #### subsection The subsection tag generates a new sub-chapter and automatically assigns a sub-chapter number. Example: {{gmu.subsection=Hier gehts weiter}} Output: 1.1 Hier gehts weiter --------------------- #### include The include tag is substituted by the content of the specified file. Relative path are resolved in context of the current file. Example: {{gmu.include=./filename.pms}} ## Dependencies python3.7 -m pip install pyfiglet