FAQ (Frequently Asked Questions)
Can I see some real-life examples?
What is PML?
PML is an acronym for Practical Markup Language. It is a human-friendly markup language (Wikipedia) designed to write articles, books, reports, and other documents.
A PML document is converted into a HTML document with a tool called PML Companion (PMLC). You can use this tool to quickly create beautiful web documents.
Why PML?
Note: For an elaborated discussion of the benefits of PML, please read:
We Need a New Document Markup Language - Here is Why..
PML has been meticulously designed to get rid of some problems encountered with other markup languages.
The main objectives are:
Well-structured and unambiguous documents (like XML, XHTML and Docbook; unlike Markdown, Asciidoc, Restructedtext, etc.).
A syntax that is easy to read and write for humans (like Markdown and Asciidoc; unlike XML, XHTML and Docbook).
Powerful features and suitable for complex and big documents (like Docbook; unlike Markdown).
Good-looking documents by default - customizable if needed.
Easy to get started: one-click installation and no dependencies.
Free (no charge), no ads.
How does it work?
It's easy.
-
Create a text file named
example.pml
with the following content:[doc [title First test] This is a [i simple] example. ]
-
Convert this PML file into a HTML file by entering the following command in a terminal:
pmlc p2h example.pml
-
Open file
output/example.html
in your browser. The result looks like this:
You can change the style and customize the result with standard CSS.
Can I see some real-life examples?
PML's User Manual and Reference Manual have been created with PML. You can look at the User Manual's markup code here.
There are a number of blog posts that have been written in PML, such as this one and this one.
How mature is PML?
PML is still in its early days. Some planned features are not yet implemented (see below).
If you miss a feature or encounter a bug, then please follow the instructions on the help page. Bugs are always treated with highest priority - you'll probably get an update within a few days.
Which features are supported?
List of current features:
- Runs on Windows, Linux and macOS
- Can be used as a desktop application (GUI) or a command line interface (CLI)
- Easy to:
- install (no dependencies)
- learn
- use
- Supports all tags commonly used in text documents (chapters, lists, quotes, etc.), including media (images, audio, and video), as well as some special tags used in articles about software development (for a full list please refer to the Reference Manual).
- Good-looking documents out-of-the-box, but presentation (font, color, etc.) is fully customizable through standard CSS
- Suitable for big and complex documents, because PML doesn't have the problems and limitations encountered with other popular markup languages.
- Features:
- tables created from CSV data and HTML-like tables with complex content
- automatic creation of expandable table of contents
- cross-references
- file splitting (useful for big documents and shared text snippets)
- text parameters (to avoid duplication of recurring text snippets)
- supports all HTML attributes for PML's standard tags
- embedded HTML code (can be imported from an external file or URL)
- inline and block source code (can be highlighted, and imported from an external file or URL)
- nested multi-line comments
- online and CLI documentation with lots of examples
- The generated HTML code:
- uses modern, semantic HTML tags (e.g.
article/section/time
instead of justdiv
) - is simple and indented by default to make it human-readable
- uses a simple CSS file that can easily be adapted
- uses modern, semantic HTML tags (e.g.
- Support for user-defined nodes/tags. Allows you to define new nodes, in addition to PML's standard nodes. HTML rendering is defined by Javascript code in an external configuration file. User-defined nodes can be shared with other users.
- Provides all advantages of markup languages over text processors
- Dynamic, programmable content. Parts of the PML document can be defined by programs written in Javascript or Python. Programs are embedded in the PML document, or can be loaded from a local file or a URL (shared with other users). Usage examples: insert current date/time automatically; retrieve some text sections from URLs (and sanitize them); create embedded tables programmatically by retrieving data from a database; etc.
- Java Application Program Interface (API) to programmatically call PML from other Java applications.
Additional features planned in upcoming versions:
- IDE support, such as syntax highlighting and code completion. A plugin for Sublime Text by Tristano Ajmone is under development. It's still a work in progress, but you can have a look at it on Githib, try it out, and send feedback.
- Embedded Markdown, Latex, Mathjax, and Gist sections
- Hooks to programmatically modify/extend/automate the document creation process
Do I have to pay to use PML?
No. PML is free of charge for everybody. However, you are politely asked to please send feedback after using PML, because user-feedback is essential to improve PML. Your voice counts!
Which license is used?
The PML Companion (PMLC) is open-sourced and licensed under the GNU General Public License Version 2 (GPL 2). The source code is available on Github
What do I need to use PML?
You just need a standard Windows/Linux/Mac desktop/laptop. You can then install the PML Companion and use any text editor to write your PML documents and convert them to HTML.
How do I get started?
Install the PML Companion.
Read the beginning of the User Manual. Then refer to the Reference Manual when needed.
Visit the help page for further assistance.
Enjoy!
Who created PML?
Hello. My name is Christian Neumanns, born in Luxembourg, Europe. I am a curious software developer, a zealous simplifier, and a lifelong student of life. I created and maintain the Practical Markup Language (PML), the Practical Data and Markup Language (PDML) and the Practical Programming Language (PPL).
You can contact me at chris {at} pml-lang {dot} dev.