Markers Documentation



The Markers is a Markup language focused on simplicity and ease of use.

It is primarily intended for the academic field, and with the possibility of being used both in plaintext and in the application version, it becomes a simple and powerful alternative.

For those less tech-savvy who are looking for an open and agile way to create academic articles without the need to pay for SAAS or worry about formatting standards, Markers serves as an essential alternative.


Installing and Using Markers


You can download the latest version of the Markers Language Parser in the official repository .
The parser is currently available for Windows and Linux. No super technical knowledge is needed.

It is recommended you also install the Markers Language Extension for VSCode, so you can have syntax highlighting and autocompletion. The extension is available in the VSCode Marketplace .

Using the Parser


To install the parser, simply download the latest version from the Github repository and run the executable.
Note that for now the parser does not have an installer. You will need to run it from the command line and if needed, add it to your PATH Variable .

After running the parser, you can use it to convert your Markers files to HTML.
It's usage is as follows:

mks [-html | -markdown | -md | -json | -abnt | -help | -h]

The parser will then convert your file to the desired format. Those being:
-html -> Converts the file to HTML.
-markdown | -md -> Converts the file to Markdown.
-json -> Converts the file to JSON.
-abnt -> Converts the file to ABNT Format. [Warning: This is experimental for now.]


Using the Extension


To install the extension, simply go to the VSCode Marketplace and click on the install button.
After installing the extension, you will have syntax highlighting and tag autocompletion for Markers files.



An front-end and simple text editor for Markers is also in development, and will be available soon.


I. Main Structure



Markers follows a simple and intuitive structure, to declare a markers file, first you need to define a (title)Title Tag(/title) followed by any content.


    (title)Title of the Document(/title)
    This is the (b)content(/b) of the document.



The (title) tag is used to define the title of the document. It is a required tag and must be the first tag in the document. An Markers file must also end with the .mks extension while editing. This is important for the parser to recognize the file.



II. Text Tags



Markers has the following text tags:

(c) and (/c) -> Strikethrough Text. For example, This is a strikethrough text
(u) and (/u) -> Underlined Text. For example, This is an underlined text
(b) and (/b) -> Bold Text. For example, This is a bold text
(i) and (/i) -> Italic Text. For example, This is an italic text
(k) and (/k) -> Inline Code. For example, This is an inline code

All these tags can be used in sequence. however, they (b)cannot be nested(/b).

This is intentional, aiming to keep the focus on writing and the language, keeping the text highlightings as an option.

However, there are also special tags such as (bi) for bold and italic text, as well as (color) for changing the text color.

Note that here - for the sake of simplicity - we say that the text tags of Markers follow the cubik rule.



III. Main Tags



Markers also has some main tags, which are useful for various purposes.
Some of these tags are inspired by the ABNT standard, while others were created for better simplicity and universality of the language.

III.I. Common Tags



Common tags are tags that are not recursive by nature. Some examples are the tags (/link), (/img), (/ref), and (/code).
Let's see what each of these tags does:

Associating a link to the text.


The tag (link) is a tag that allows the redirection of a URL . Its usage is as follows:

(link | https://en.wikipedia.org/wiki/URL)Internet URL(/link) -> Internet URL .


Adding an Image.


We can add an image to the document with the (img) tag. Its usage is given by the start of the tag, followed by the URL, and a description of the image:

(img | https://i.kym-cdn.com/photos/images/newsfeed/002/061/548/5aa.jpg)lolcat.(/img)

Photo of a lolcat.


Creating a code block.


We can create a code block - different from inline code - using the (code) tag:


            (title)Markers Test File(/title)
            This is a (b)test(/b) Markers file that aims to test all the language's tags.
            Shall we begin? Look at the following texts. They have tags:

            (c)crossed(/c)
            (u)underline(/u)
            (b)bold(/b)
            (i)italic(/i)
            (k)inline code(/k)

        



Adding an separator.


We can add a separator to the document with the (hr) tag. Its usage is as follows:

(hr)







Creating a reference.


We can create a reference to a text using the (ref) tag. Its usage is as follows:

(ref | url | name-of-the-author | year | date-of-access)This is a reference(/ref)




An important note is that these tags do not support nesting, as they are not recursive by nature. In other words, you are forbidden from adding a list inside the description of a link, for example.

This is intentional, aiming to keep the focus on writing and the language. There should be no need to nest these tags.



III.II. Recursive Tags


Markers also has recursive tags, which are tags that can be nested within themselves. Some examples are the tags (/chap) and (/>>) (for lists). Let's see what each of these tags do:

Creating a chapter.


The (chap) tag is used to create a chapter in the document. Its usage is as follows:


            (chap | Title of the Chapter)
                Content of the Chapter
            (/chap)

        


Which will result in:

Title of the Chapter


Content of the Chapter


Note that we can nest chapters within chapters:

            (chap | Title of the Chapter)
                Content of the Chapter
                (chap | Another Chapter)
                    Content of the Chapter
                (/chap)
            (/chap)

        



Creating a list.


The (/>>) (arrow) tag is used to create a list in the document. This syntax has been preffered over the traditional (list) tag, as it is more intuitive and easier to use; reminding the arrows commonly used to denote lists in apps like Notion .
Its usage is as follows:

(>> | Title of the List)Content of the List(/>>)

Title of the List

Content of the List


Again, we can also nest lists within lists:

            (>> | Title of the List)
                Content of the List
                (>> | Another List)
                    Content of the List
                (/>>)
            (/>>)

        




IV. Special Tags


Markers also has support for a series of special tags. Most of these tags are either limited to a single parsing format (such as the (abnt) tags, while others take advantage of already existing HTML5 tags.

IV.I. ABNT Tags


The ABNT tag is necessary for exporting to the ABNT academic format. If follows this structure:

    (abnt)
        (institution)INSTITUTION FOR ACADEMIC WORKS(/institution)
        (author)YOUR NAME HERE(/author)
        (subtitle)(/subtitle)
        (location)LOCATION - STATE(/location)
        (year)20XX(/year)
    (/abnt)

    


Please note that the (abnt) tag shoud always be placed after the (title) tag in the document.

IV.I.II Inner ABNT Tags


The inner ABNT tags are used to define the inner structure of the ABNT cover format. These tags are inserted inside an (abnt) tag. They are:

(institution) and (/institution) - The institution where the work was developed.

(author) and (/author) - The author of the work.

(subtitle) and (/subtitle) - The subtitle of the work.

(location) and (/location) - The location where the work was developed.

(year) and (/year) - The year of the work's development.


It is recommended that these tags be used in the order presented above, as they are the standard for the ABNT format. Using them in a different order may result in the parser placing the information incorrectly.



IV.II. HTML exclusive tags


Some tags are exclusive to the HTML export format, therefore they may break the universality of the .mks format. They support creating more interactive and dynamic content, such as the (video) tag and the (audio) tag.

Color Tags


The (color) tag is used to change the color of the text. Its usage is as follows:

(color |#118138)This text is greenish.(/color)

This text is greenish.


Adding an video.


The (video) tag is used to add an video file to the document. Its usage is as follows:

(video | planet.mp4) Video of a Planet. (/video)



Adding an iframe.


The (iframe) tag is used to add an iframe to the document. Its usage is as follows:

(iframe | planet.mp4) Video of a Planet. (/video)




Adding an audio.


The (audio) tag is used to add an audio file to the document. Its usage is as follows:

(audio | https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3)SoundHelix - Song 1(/audio)










Back to Index | GitHub | MIT License | Changelogs

2025 - Miguel Aguiar. Made with 💚 with Haskell.