This works if your code snippets generate relatively static output. Lately I often need to create animations, often interactive ones. See https://akkartik.name/debugUIs.html, for example.
In my life I've often switched to more manual tools when I notice that the more automated tool causes me to live within certain limitations. Sometimes it has taken me a decade to notice these limitations. Automation matters when I do something tens of times a day. But I publish a blog post once in tens of days. It feels worth some additional work to get a little more control and break out of ruts.
I was in the same boat for many years! Having started using org-mode for my website in 2018 [1] (just add index.org to the path to see the source), it grew into this massive pile of obscure gen and with my limited comfort level with lisp, turned into a scary smelling concoction of dozens of perl/sed/sh scripts that modified the output to fit my needs and have them do something fancy.
But then, really, sat down for about 48 hours on a lonely weekend when everyone was away and wrote a simple static site generator [2] that takes exact same files and produces output that I fully understand e2e, becoming the project I'm most proud of.
There are so many other generators I tried (hugo, jekyll, rails, asciidoctor, org-publish, astro), rolling up your own gives a sense of a stable foundation. Love your website! So clean. One thing that I'm thinking of adding (though I haven't touched my generator that much, I consider it "complete") is the dynamic execution of source code blocks.
I've been using Pandoc for my static site, which I also used for my PhD thesis. I wrote pandoc-plot[0] to render figures in documents like the author does, inspired by Matplotlib's plot-directive[1]. I feel like this feature is a must for technical writing, but getting the details right is tricky!
I write my blog (https://lambdaland.org) entirely in Emacs now. It's Hugo, but I use ox-hugo [1] to convert from org-mode to markdown and Hugo converts it to HTML.
What I like about this: everything else I do is in org-mode anyway, so this fits my brain. I also have some nice org-mode tooling to make things like footnotes, margin notes, etc. look really nice.
A little convoluted, sure, but I've seen worse. :-P
I used Hugo's native `.org` file support for a while. It was… fine. There are some serious issues (for me) that I had with it though. The most salient one is that it didn't convert straight quotes in the source ("") to proper curly-quotes. (“”) I don't remember what else but I'm sure there was more than just that. I've spent a lot of time on the typography of my site and I wanted everything to be as perfect as I could make it.
I started using Hugo's built-in org support, but I found it quite limiting. I can't remember the specifics, but it doesn't support everything you can do with Markdown. So I quickly switched to ox-hugo. They can co-exist though so you can try the native support then switch if you run into the same shortcomings as I did.
What’s the recommendation for the simplest blogging setup to say s3? Req: 0 javascript, simple css, absolutely minimal functions for blogs. My ideal is I open a text file on my Mac in vi, type my thoughts and then save and run some script to publish it and it gets the style and date and index entry automatically.
You can set up any static site generator (like Astro or Hugo) with a pre-made blog template. Then you'll just have to write posts in markdown files and the generator will handle the rest.
(Or you can write a custom template in any of those, they both don't add any JS or anything else to your page by default unless you explicitly add it. I like Astro more since it's basically just HTML with extra features unlike Hugo which uses a separate templating language, but they're all pretty much the same)
You can deploy it automatically and completely for free on platforms like GitHub Pages or Cloudflare Pages, which are pretty easy to set up and will automatically build and deploy new versions of your site on every git push.
Just started my blog[1] as another way to dogfood Tritium. So far works pretty well. My posts are going to be short and simple but since Docx -> HTML conversion is straightforward, I should have more capability as the product improves as a word processor.
I’m trying to make it a bi-weekly, 1-hour exercise but finding things to write about that might be interesting in a short window is kinda tough.
I use Emacs, but not org-mode (or Babel). I feel like tying yourself to {emacs + format} is limiting - the format should be self-justifying - bonus if there is a good mode for Emacs.
Almost everything I write, from programs to SQL to HTML to email, I do in emacs. I’ve tried to get Teams chat working but it just isn’t reliable so I use a browser for that.
Do you have any resources for your sql workflow in emacs? I use eMacs for everything else, but keep going back to dbeaver whenever I write SQL or interact with PostgreSQL. All the tutorials I’ve turned up seem to be doing simple things with small tables, rather than a more complex workflow. I’m sure there are ways to use emacs effectively for SQL but I just can’t find out how.
Heh. I write my blog posts in org mode, and have a way to get Pelican[1] to read them. It doesn't support executing Babel source blocks on export - I should probably add that feature to my package.[2]
have not seen pelican before, but went with zola. IMHO a binary distro is just much cleaner than the pip/uv/npm/yarn approach. And it is fast, and can auto rendered rss/atom.
I started my blog with Pelican before migrating over to Astro. I enjoyed Pelican (Python based static site generator) for the most part but the theme system wasn't to my liking.
I used to use org-mode with hugo but it got annoying, I didn't like how I needed to structure my org files, it kind of forced me into some structure. Now I use Zola with Markdown. I'm losing in power but it's so much simpler tbh.
> Any lightweight markup format (like Markdown or ReStructuredText or whatever) allows for embedding code blocks, but Org, through Babel, can run that code on export, and then display the output in the published document, even when the output is a table or an image.
John Carmack was well-known for keeping his development notes and other thoughts in a .plan file[2][3]
Aside: it saddens me a little how the simple idea of copying files onto a server is so many steps removed from modern "web framework" behemoths. I think some people genuinely don't know about the simpler older ways, and the pros and cons between them.
I blog with emacs using the long-abandoned o-blog generator. Anybody have something better? Using the org-mode exporter, with working org-babel and equations and all that. This article doesn't go into the details.
I wrote this to publish Org docs to S3 - https://github.com/EnigmaCurry/s3-publish.el - I wanted something extremely lightweight, not even wanting to commit things to git like I normally would and waiting for CI to build something. Uploading html directly to S3 means it gets published in <1s from push.
That's neat! For org, if it had an option to generate the HTML file name from slugifying the org file name instead of the salted hash, it could be fantastic for rapid lightweight blogging.
I mean that 2000 lines, I assume, is going to only be that many lines because it will have 20-50k lines of dependencies under it.
It’s not a bad idea to understand the software you use. A matter of where you want to spend your time. Learning about the org-mode internals is also a valid choice.
This works if your code snippets generate relatively static output. Lately I often need to create animations, often interactive ones. See https://akkartik.name/debugUIs.html, for example.
In my life I've often switched to more manual tools when I notice that the more automated tool causes me to live within certain limitations. Sometimes it has taken me a decade to notice these limitations. Automation matters when I do something tens of times a day. But I publish a blog post once in tens of days. It feels worth some additional work to get a little more control and break out of ruts.
I was in the same boat for many years! Having started using org-mode for my website in 2018 [1] (just add index.org to the path to see the source), it grew into this massive pile of obscure gen and with my limited comfort level with lisp, turned into a scary smelling concoction of dozens of perl/sed/sh scripts that modified the output to fit my needs and have them do something fancy.
But then, really, sat down for about 48 hours on a lonely weekend when everyone was away and wrote a simple static site generator [2] that takes exact same files and produces output that I fully understand e2e, becoming the project I'm most proud of.
There are so many other generators I tried (hugo, jekyll, rails, asciidoctor, org-publish, astro), rolling up your own gives a sense of a stable foundation. Love your website! So clean. One thing that I'm thinking of adding (though I haven't touched my generator that much, I consider it "complete") is the dynamic execution of source code blocks.
[1] https://sandyuraz.com
[2] https://github.com/thecsw/darkness
Babel sounds awesome, I should give it a try.
I've been using Pandoc for my static site, which I also used for my PhD thesis. I wrote pandoc-plot[0] to render figures in documents like the author does, inspired by Matplotlib's plot-directive[1]. I feel like this feature is a must for technical writing, but getting the details right is tricky!
[0]: https://github.com/LaurentRDC/pandoc-plot
[1]: https://matplotlib.org/stable/api/sphinxext_plot_directive_a...
I write my blog (https://lambdaland.org) entirely in Emacs now. It's Hugo, but I use ox-hugo [1] to convert from org-mode to markdown and Hugo converts it to HTML.
What I like about this: everything else I do is in org-mode anyway, so this fits my brain. I also have some nice org-mode tooling to make things like footnotes, margin notes, etc. look really nice.
A little convoluted, sure, but I've seen worse. :-P
[1]: https://ox-hugo.scripter.co/
It looks like Hugo also has native .org file support. Does ox-hugo provide functionality over Hugo’s native org file parsing?
I used Hugo's native `.org` file support for a while. It was… fine. There are some serious issues (for me) that I had with it though. The most salient one is that it didn't convert straight quotes in the source ("") to proper curly-quotes. (“”) I don't remember what else but I'm sure there was more than just that. I've spent a lot of time on the typography of my site and I wanted everything to be as perfect as I could make it.
Didn't know that Hugo supports org files. But just one example of added functionality is being able to use one big file with a subtree for each post.
This is a nice feature of ox-hugo. I still use individual files and it's great.
It didn't back when ox-hugo was written.
I started using Hugo's built-in org support, but I found it quite limiting. I can't remember the specifics, but it doesn't support everything you can do with Markdown. So I quickly switched to ox-hugo. They can co-exist though so you can try the native support then switch if you run into the same shortcomings as I did.
^ This. Hugo's support for Markdown is much better than it's support for org-mode. ox-hugo bridges the gap super well.
I've also thought about using ox-hugo! I have (literally) organized my life in plain text, so I keep everything in org files.
You would certainly enjoy using it then. :) It's got great documentation. (As is to be expected with basically any Emacs project.)
Does org-babel work? Do equations work?
Equations: very yes. You have to create some custom short codes. Example of it in action here: https://lambdaland.org/posts/2024-08-06_zkp/
Here's the source for that entire post: https://gist.github.com/ashton314/e63c9ed31c38c421f11d84df1f...
The shortcodes are a little messy, I will admit, but I have a temp.el snippet that expands to the right thing so authoring isn't too bad.
org-babel: I'm not sure. Here's the docs for code block handling in ox-hugo: https://ox-hugo.scripter.co/doc/source-blocks/
FWIW, org's HTML export is about 4000 lines of elisp, and it is pretty well modularized.
https://git.sr.ht/~bzg/org-mode/tree/main/item/lisp/ox-html....
The publish front end is in
https://git.sr.ht/~bzg/org-mode/tree/main/item/lisp/ox.el
and
https://git.sr.ht/~bzg/org-mode/tree/main/item/lisp/ox-publi...
What’s the recommendation for the simplest blogging setup to say s3? Req: 0 javascript, simple css, absolutely minimal functions for blogs. My ideal is I open a text file on my Mac in vi, type my thoughts and then save and run some script to publish it and it gets the style and date and index entry automatically.
You can set up any static site generator (like Astro or Hugo) with a pre-made blog template. Then you'll just have to write posts in markdown files and the generator will handle the rest.
(Or you can write a custom template in any of those, they both don't add any JS or anything else to your page by default unless you explicitly add it. I like Astro more since it's basically just HTML with extra features unlike Hugo which uses a separate templating language, but they're all pretty much the same)
You can deploy it automatically and completely for free on platforms like GitHub Pages or Cloudflare Pages, which are pretty easy to set up and will automatically build and deploy new versions of your site on every git push.
I wrote my own org-mode static generator: https://github.com/facundoolano/jorge
More robust than my previous emacs setup and much lighter than hugo. No fancy babel generation but I don’t really need that.
Just started my blog[1] as another way to dogfood Tritium. So far works pretty well. My posts are going to be short and simple but since Docx -> HTML conversion is straightforward, I should have more capability as the product improves as a word processor.
I’m trying to make it a bi-weekly, 1-hour exercise but finding things to write about that might be interesting in a short window is kinda tough.
[1] https://tritium.legal/blog
I use Emacs, but not org-mode (or Babel). I feel like tying yourself to {emacs + format} is limiting - the format should be self-justifying - bonus if there is a good mode for Emacs.
Almost everything I write, from programs to SQL to HTML to email, I do in emacs. I’ve tried to get Teams chat working but it just isn’t reliable so I use a browser for that.
Do you have any resources for your sql workflow in emacs? I use eMacs for everything else, but keep going back to dbeaver whenever I write SQL or interact with PostgreSQL. All the tutorials I’ve turned up seem to be doing simple things with small tables, rather than a more complex workflow. I’m sure there are ways to use emacs effectively for SQL but I just can’t find out how.
Heh. I write my blog posts in org mode, and have a way to get Pelican[1] to read them. It doesn't support executing Babel source blocks on export - I should probably add that feature to my package.[2]
[1]https://getpelican.com/
[2]https://blog.nawaz.org/posts/2022/Dec/reintroducing-opel-put...
have not seen pelican before, but went with zola. IMHO a binary distro is just much cleaner than the pip/uv/npm/yarn approach. And it is fast, and can auto rendered rss/atom.
I stuck to Pelican because it's Python, and thus easy for me to write plugins.
And of course, it can do Atom/RSS.
I started my blog with Pelican before migrating over to Astro. I enjoyed Pelican (Python based static site generator) for the most part but the theme system wasn't to my liking.
I used to use org-mode with hugo but it got annoying, I didn't like how I needed to structure my org files, it kind of forced me into some structure. Now I use Zola with Markdown. I'm losing in power but it's so much simpler tbh.
If you ever happen to go back, https://ox-hugo.scripter.co/ has a couple different options for supported structures. I use it for https://dylanfitzgerald.net without much issue.
> Any lightweight markup format (like Markdown or ReStructuredText or whatever) allows for embedding code blocks, but Org, through Babel, can run that code on export, and then display the output in the published document, even when the output is a table or an image.
This is what I love about blogging with Quarto.
do people also realize you can blog with .txt files ?
write a txt file, scp then let whatever server serve the files.
Basically the .plan file revived (: [1]
John Carmack was well-known for keeping his development notes and other thoughts in a .plan file[2][3]
Aside: it saddens me a little how the simple idea of copying files onto a server is so many steps removed from modern "web framework" behemoths. I think some people genuinely don't know about the simpler older ways, and the pros and cons between them.
[1] https://unix.stackexchange.com/questions/122782/what-is-plan...
[2] https://garbagecollected.org/2017/10/24/the-carmack-plan/
[3] https://github.com/oliverbenns/john-carmack-plan
Man, he was so productive.
https://github.com/oliverbenns/john-carmack-plan/blob/master...
frag bar
start profile on late frame
fixed relinking bug
improved prediction bounding
change weapon chooses supers first
ammo pictures on status bar
drop pain flash again and bound
tweak armor and spike damages
don't pick up equal armor
ceiling doors don't cause damage
demons crash when jumping
monsters need to use bsp clipping
need to save memory...
Fatal error: NaN impact time from entity
change armor damage
drop weapons
face to face with nailgun does no damage
+pointfile from cmdline doesn't work
conglomerate hunk printing
shoot triggers
missing a Z update on rockets sometimes?
firing after net games
negative scores on frag bar and frag board
world backpack and armor model
weapon bounce down
center look key
check change levels in high res mode
show ammo counts in single player
frag screen
radius damage should open secret doors
five point font on kills
rocket poke into walls
shoot open connected doors
gib bounce sound
I blog with emacs using the long-abandoned o-blog generator. Anybody have something better? Using the org-mode exporter, with working org-babel and equations and all that. This article doesn't go into the details.
> Anybody have something better?
I wrote this to publish Org docs to S3 - https://github.com/EnigmaCurry/s3-publish.el - I wanted something extremely lightweight, not even wanting to commit things to git like I normally would and waiting for CI to build something. Uploading html directly to S3 means it gets published in <1s from push.
o-blog in the parent comment reminded me that I use to use a similarly named SSG called blogofile, and what do you know. Small world.
yes I used to use it too :) I think I've written three or four SSG since then haha.
That's neat! For org, if it had an option to generate the HTML file name from slugifying the org file name instead of the salted hash, it could be fantastic for rapid lightweight blogging.
I never wrote a blog... and it's fine.
I mean that 2000 lines, I assume, is going to only be that many lines because it will have 20-50k lines of dependencies under it.
It’s not a bad idea to understand the software you use. A matter of where you want to spend your time. Learning about the org-mode internals is also a valid choice.
HN and its obsession with org-mode