yet another website generator!
2023-02-01 00:18
woa, it's late as fuck. didn't realize the time. anyway, i've been working on another website generator because my lol project felt too... "for general use". i admit this thought was triggered after chatting with some friends on tilde.town about how they refound that spark of joy you get when you first start programming by programming for personal use, rather than for a large, general user base.
i think what makes it fun, for me, is that i don't focus so much on nice code. i'm just hyper focused on having fun programming, and making things do stuff. i think i started getting into writing for a general audience because i probably subconsciously cared about what other people thought of my code, but now i'd rather focus on fun, rather than face, since this is a hobby i do that makes me happy afterall. programming for fun, and not for face, kind of feels more like painting, rather than sitting down at a table and writing an entire blueprint for a wood working project or something. i don't do wood work, but it felt like a decent analogy? haha.
some bonuses that arose out of this project also came up:
- my rss feed now provides the content from my blog
-
the links in my rss feed get converted from
/some/link
tohttps://m455.casa/some/link
, so rss feed readers don't try to open the local link. i'm sure most readers know how to convert the links, but it was a fun regex exercise. - this is probably the biggest one, and i definitely want to do a write-up of how it works, but i now use both my own very unthought out markup language, and a parser that takes the markup language and converts it into html!
regarding the markup language as being unthought out, i guess it was more of a
"how can i make a markup language as easy to parse as possible" haha. an aspect
of this can be found in how i parse the syntax for links. originally, i wanted
the link syntax to be [link title here|link url here]
, but since i'm doing a
line-by-line and then character-by-character parsing approach, i had to keep the
order of the link title and link url in the same order that they occur in html,
which is link url first, and then link title later lmao.
this is also why my ordered and unordered lists need to keep each list element
on one line, because i'm not in the mood to implement multi-line list elements
lol. it results in really long lines in the middle of a nicely formatted 80
character-width text file, but whatever lol. hmmm after typing that last
sentence, and adding that last link, i guess the same goes for links too, you
can't split them across multiple lines, which result in random fingers of text
jolting out from the nicely formatted text :big_shrug:
.
i've also decided to only use included modules in chicken scheme, instead of external ones for fun... uh. i guess i do include the utf8 egg, but whatever, that's because chicken scheme developers are still working on making chicken scheme utf8 aware by default, so let's pretend the utf8 egg is included haha.
because i've decided to only use included modules, i've replaced my spiffy egg dependency with a makefile command that spins up python's built-in http server for previewing changes.
i was able to remove my lowdown egg dependency as well, because i'm using my own markup language and parser, so that was pretty sweet too.
anyway, i'm super stoked that i'm using both my own markup language, markup parser, and that i've made my website generator more personal.
long live the personal web and personal computing!
oh, uhhh if you want to view the source of my new website generating tools, just
look at the files under the src
directory in
this git repository.