Julia Blogging Workflow

I am working on a couple blog posts right now, and I was hoping to get some insight from the many wonderful Julia bloggers about how you put together a post.

I’d love to know:

  1. What tool do you use for turning text into HTML? (Franklin, Weave, Pluto, etc.)
  2. Where do you host it? (Personal GitHub.io, Julia Bloggers, Forem)

For my purposes, I’d love to write mostly in Markdown, be able to evaluate code examples and display results, and keep the infrastructure piece as simple as possible (I’m not a regular blogger, so the cost won’t be amortized very well over many posts).

I’ve currently explored –

  • Forem: Basically no infrastructure cost, but I’d have to manually execute code and then paste in the results (right?).
  • Weave: Produces basically what I want, but there are no advanced Markdown features like foldable “hidden” sections, footnotes, etc. I’d need to host it in GitHub or a personal website.
  • Franklin: Checks lots of the boxes, but more of a learning curve for setting up the project in the right away. Same hosting as Weave.

My ideal would be if Weave.jl would output Markdown with the evaluation results, and then, I could just copy that into Forem, but I’m hoping that the community can help me find an even better solution :slight_smile:

1 Like

2 more options:

4 Likes

Ah! I forgot about Quarto. I looked at it, but stopped when I realized I needed to install more software. Not actually against it, but figured I’d check out the other options before trying to add another tool!

I was pleasantly surprised at how easy it is to set up a Franklin project. Do give it a try, the documentation is really nice

2 Likes

I switched to quarto some time back (GitHub - jkrumbiegel/jkrumbiegel.github.io), one thing I liked vs. Franklin was the “freeze” feature. Basically, my blog posts (while based on local environments, so in principle reproducible) are not guaranteed to be buildable in the future. Maybe some external web resources I used will be gone then, or they are about internals of specific Julia versions where it would be annoying having to build blog post A with Julia v1.5.3, B with v1.6.2, and so one. So the tool just stores some json representation of the output and I can adjust the styling of the website etc. later while keeping all that intact. So I build a blog post locally, freeze it and then push that to github pages. I found real continuous deployment for sporadic posts every couple of months unsustainable.

3 Likes