You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
anonymous 10d9ab9c6b add makefile someone made 8 months ago
Makefile add makefile someone made 8 months ago
README.md add documentation note, fix minor compilation error 9 months ago
namac.c add makefile someone made 8 months ago

README.md

NAMAC, the Nano Markdown Compiler

Its main purpose is to convert "nano markdown" (a custom form of markdown) into XHTML. It also has HTML5 support since the only real difference is how you write and the headers, although I'm not sure why you wouldn't just use XHTML seeing as it is both stricter and more well supported.

    $ namac --help
	Usage: namac [args] [file1] [file2] [file3] [...]
	Converts .nama markdown files, according to the syntax, to HTML5 .html or XHTML 1.0 Strict .xhtml files and lists them in a "directory.(x)html".
	Options:
       --help, --h or --?: displays this.
       --version or --v: displays the version number.
       --manual-directory or --manual_directory: resets to the directory.html according to the files just compiled, according to the order listed in the arguments.
       --append-directory or --append_directory: appends to an existing directory.html.
       --alphabetize-directory or --alphabetize_directory:  alphabetizes an already existing or commanded to exist directory.html.
       --html5: set output file to be HTML5.
       --xhtml: set output file to be XHTML 1.0 Strict.
       --outpute: Print out and write without the header or <body>.
       --template: Takes template file and puts directory where {directory} is and content where {content} is.

Quickstart

So, the most basic "namac" file would be something like this:

    title: first test
	content {
        case(hello) {
            text {
                I exist!
            }
        }
	}

You could then save this as test.nama and run namac --xhtml test.nama, it will then convert it to XHTML. To set a CSS script you could do namac --xhtml --style whatever.css test.nama.

Now let's take a look at those basic components:

The 1st line, title: first test, sets the <title> for the XHTML, it's rather self-explanatory.

The 2nd line content { essentially opens the body of the document, it's analogous to <body> in XHTML.

The 3rd line case(hello) { opens a "case" and sets its title line to be "hello".

The 4th line text { opens a thing inside the case where you would usually write text, it is supposed to display as a rectangle of sorts.

The 5th line I exist! is just text that you would write. This could also be XHTML or whatever, since it would transfer over, so it would say <i>I exist!</i>. Also, it is automatically surrounded with <p> and </p> in XHTML, which can be turned off with !nlp ("!" meaning opposite or "no", new line paragraph).

Lines 6-8 are just closing curly brackets ending each element (ie </div>).

Now let's go ahead and use the full power of namac to make something!

First, let's define a template file:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
            <head>
                    <meta http-equiv="Content-type" content="application/xhtml+xml;charset=utf-8"/>
                    {title}
                    <link rel="stylesheet" href="whatever.css"/>
                </head>
            <body>
                            <div class="directory_nav">
                                    <h3><i>Test</i></h3>
                                    {directory}
                            </div>
                            {content}
                            <a href="namac/index.xhtml">Powered by NAMAC!</a>
                    </body>
	</html>

This is essentially an XHTML file, but with 3 placeholders.

{title}, which is where the title goes.

{directory}, which we will define in a moment.

And finally {content} which you can guess (it's everything from the .nama file).

Second, let's define an example directory:

    somefile
	howto
	stuff/index

These will all have .xhtml appended to them assuming --xhtml is specified. Obviously, they go where {directory} goes in the template file.

Thirdly, let us define a webography file. Webography is essentially bibliography and can be used as such:

    T: smthiread
	L: https://example.com/whatever.xhtml
	N: Something I Read
	D: 2019

	T: anthrthngiread
	L: https://example.com/sowhat.xhtml
	N: Another Thing I Read
	D: 2020

T: means title (should be something quick to type), L: is link/url, N: is name (of the document/thing/source), D: is date.

Finally, our .nama file:

    title: first test
	!nlp
	content {
            case(hello)(https://example.com) {
                    text {
                            <b>I exist!</b>${smthiread}${anthrthngiread}
                            <br/>
                            I use {https://example.com}{example} as an example a lot.
                            {img/someimg.ff}{A random image in the farbfeld format}
                    }
                    sources {
                            {footnotes}
                    }
            }
	}

Compile this with namac --xhtml --template test.nama.

Let's go over what's new. First off in case(hello)(https://example.com) { there is a link, which makes the title clickable. Note: if the case title has spaces in it, the ID will have it's spaces replaced with underscores (this is for XHTML adherence).

In <b>I exist!</b>${smthiread}${anthrthngiread} the <b>I exist!</b> part is just XHTML, the ${smthiread}${anthrthngiread} part references the listings inside the webography file. They show up as [1] and [2] (<sup><a href="#s1">[1]</a></sup><sup><a href="#s2">[2]</a></sup> in XHTML), and are listed in {footnotes}.

The <br/>, which is just straight up XHTML.

{https://example.com}{example} is a link with an optional name after it, {https://example.com} would display just the link without a set name.

{img/someimg.ff}{A random image in the farbfeld format} just like the link, except it's an image, as denoted be img/ (so yeah, you gotta have an img dir for this to work).

sources { is another element opener.

{footnotes} is where references are listed, for example "1. Something I Read, 2019 https://example.com/whatever.xhtml" (<li id="s1" value="1">Something I Read, 2019 <a href="https://example.com/whatever.xhtml">https://example.com/whatever.xhtml</a></li> in XHTML).

Hopefully this (ironically written in Markdown, not Nano Markdown) guide helps you in using NAMAC. Or at least is useful to me as reference later, lol!