git.m455.casa

m455.casa

clone url: git://git.m455.casa/m455.casa


posts/yet-another-website-generator.txt

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