2021-02-03 19:07:11 +01:00
2021-02-02 23:12:52 +01:00
2021-02-03 19:07:11 +01:00

 ____       _                 _ __  __            _                
|  _ \ _ __(_)_ __ ___   __ _| |  \/  | __ _ _ __| | ___   _ _ __  
| |_) | '__| | '_ ` _ \ / _` | | |\/| |/ _` | '__| |/ / | | | '_ \ 
|  __/| |  | | | | | | | (_| | | |  | | (_| | |  |   <| |_| | |_) |
|_|   |_|  |_|_| |_| |_|\__,_|_|_|  |_|\__,_|_|  |_|\_\\__,_| .__/ 
                                                            |_|    

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.\<option\>=\<value\>]] 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.\<option\>(=\<value\>)}} 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 
Description
No description provided
Readme 39 KiB
Languages
Python 100%