Comment by aadv1k
About 2 years back I began working on a very simple markdown compiler, it was “immediate” in that it would consume markdown and immediately spit html. That project turned into a whole static site generator called Kevlar — https://github.com/aadv1k/kevlar
Entirely built from scratch in C without any dependencies. Now I wrote this code when I was 16, so many memory leaks and generally issues that I wanted to rectify and begin using third project for my own blog (currently old version is used — https://aadvikpandey.com)
The Kevlar v3 (https://github.com/aadv1k/kevlar/tree/kevlar-v3) here is all that it includes; more spec compliant markdown AST-based parsing; A better .ini config parser (right now it’s literally strtok on ‘=‘ and generally very hacky) as well as name spacing; more powerful templating tags like IF, FOR with lisp-like configuration
Of course staying true to the spirit of “from scratch” :)
Honestly I did scope creeped a little since I mainly wanted to fix a memory leaks issue in the markdown compiler lol; anyway I will share it once it gets completed on hacker news :)
> Entirely built from scratch in C without any dependencies. Now I wrote this code when I was 16
Very few young folk are learning C; I think it is commendable that you are.
You code doesn't seem very strongly structured (to be expected, TBH) but much better than any learner would see.
What resources did you use to start learning C? I ask because it looks to me that those resources covered "how to program in C" but not so much design and structure.
Here's two links (my own blog) to get you started on one or two common C patterns designed to minimise bugs:
https://www.lelanthran.com/chap9/content.html
https://www.lelanthran.com/chap13/content.html