Age | Commit message (Collapse) | Author |
|
Prefix 'test_' is useless and bloat
|
|
Doesn't work very well
|
|
Set compiled token recipes in the compiler.h file (easier to manage) and
let code handle the rest.
|
|
Similar to previous commit, make it more general and easier to adapt
through generalizing state and algorithms.
|
|
Make it a bit cleaner, uses a switch to setup general variables (tag
strings, lengths, etc) then a general algorithm that is guaranteed to
work for any single character markdown syntax if those variables are set.
|
|
|
|
|
|
|
|
This will check if a given character is a valid plain text token (*, _).
This will allow me to abstract away and assess if some plain text needs
to be further processed
|
|
This algorithm looks for substrings in a big string, attempting to find
the index of the first occurence.
|
|
|
|
When using fgets(), the returned string doesn't have a null terminator
but rather a newline (you use a RET to end input). So I made a little
script portion dedicate to finding the first newline and wholly removing it.
|
|
On converting, I would sometimes get the other tag missing. This was
both on the repl and the tests, and was quite annoying.
Each c-string should end in a null terminator, which I forgot about. So
this commit fixes that by setting the last character pointer on each
branch to the null terminator.
|
|
|
|
|
|
This checks if the first item is a hyphen, then generates a <li> tag
surrounding the content
|
|
This was because it wrote to the null character and thus was
inaccessible (I think).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This routine will handle asterisks and bullet points.
Works by checking characters at each step.
Also has diagnostics by checking for matching characters. If a matching
asterisk, for example, isn't found then present an error and quit.
|
|
|
|
If argc is greater than 1 and the second argument is --test then run tests.
|
|
|
|
Very elementary, doesn't use some massive framework, should just use
asserts and C-lang constructs. Currently one method is present in the
header, test_header_depths.
|
|
compiler.h holds definitions necessary for compiling markdown,
compiler.c the implementations.
Moved implementation of compile_line to compiler.h and compiler.c respectively.
|
|
To make clang format happy, I put continue on the for loop so that it
will have at least one statement.
|
|
Makes more sense as a variable name.
|
|
untag_size, tag_size, etc. These represent the proper sizes and are
easier to mutate.
|
|
This adds the functionality for arbitrary levels of header depth which
will be translated to depth based header tags.
\## -> <h2>
\### -> <h3>
etc
This also introduces a variable 'size_of_content' which presents the
size of the raw string without the header tags as added size.
|
|
|
|
compile_line is the main function which compiles a single line in C.
Similar to the stage of compilation in the python program.
Currently supports header tags
|
|
Looks nice in my editor and is nice to use when writing code. Will be
removed via some simple grepping later if I'm asked lol.
|
|
I'll try implementing my current system with it's current features into C
|