Freedombox Static Website Research

Created by Steven Baltakatei Sandoval on 2021-02-17T22:32Z under a CC BY-SA 4.0 license and last updated on 2021-02-18T00:02Z.

Background

I have been investigating other possible methods for publishing content accessible under my reboil.com domain. Currently, this ikiwiki blog is accessible via: https://reboil.com/ikiwiki/blog/ . However, the potential for formatting is not great; I would not use this alone when publishing mathematical equations, for example (i.e. texmacs).

The Freedombox I own and run this blog off of has been great for introducing me to the concepts of securing my own personal webpages served by Apache. It permits me to publish wiki and blog content via Mediawiki or Ikiwiki. Although I am familiar with the wikitext markup of Mediawiki thanks to some time I have spent editing Wikipedia pages, I prefer simpler solutions that don't involve accepting public input in the form of comments or account registration. I just want to be able to publish my own works.

Investigations

I recently investigated how I could use org mode (a note organization application within Emacs) to automatically render HTML pages for serving within an Ikiwiki blog. However, I ultimately decided that none of the org mode plugins for Ikiwiki were suitable for me.

I later investigated the possibility of using a mathematical typesetting program called TeXmacs to render a static website using its own WYSIWYG interface. The disadvantage of authoring webpages in TeXmacs is that authoring the source files (file extension .tm) properly requires running the graphical WYSIWYG interface in order to immediately see the typesetting results. Markdown, by contrast, is a format in which the source is also the text. TeXmacs itself has a static website generator function that takes a source directory full of .tm files and outputs rendered .xhtml files viewable by a web browser; CSS preferences are set in the TeXmacs Preferences settings. Some built-in CSS preferences make the resulting webpage appear quite nice. The disadvantage of this method is that quick authoring of blog posts requires firing up TeXmacs to render new a new .tm source file for each blog post I compose.

I also saw that FreedomBox developers have decided to add Wordpress as an app alongside Ikiwiki as part of their 2021 Roadmap. A discussion on the forum indicates this decision was made due to user feedback that publishing a website on the FreedomBox still requires some technical know-how regarding GNU/Linux file permissions and modifying configuration files via the command line interface through an ssh connection. I'm reminded of my time messing with Ikiwiki's /var/lib/ikiwiki/blog.setup configuration files in order to enable or disable built-in plugins. I am wary of using Wordpress, since popular plugins for it have been a regular source of security breaches according to my time listening to the Security Now podcast I have been following for years.

Proposal

So, for now, I think I will stick to using Ikiwiki for composing simple text-only blog posts in org mode and then converting them to markdown for Ikiwiki to process. However, if ever images or mathematical equations need to be published, I think I will create a static website using TeXmacs and serve it under my reboil.com Freedombox via a root cron job that git pull's a repo containing the TeXmacs site generator output and rsync's select parts of the repository to the FreedomBox's /var/www/html/ directory.

blog seems appropriate for the Ikiwiki site I have since it implies a "log", a stream of ideas that don't necessarily contain essential structured information. However, the TeXmacs pages I make will, by their nature, be capable of much more custom formatting thanks to TeXmac's deep MathML support and pleasant typesetting features (headers, equation numbering, image linking, etc.). Therefore, also calling the TeXmacs static web site a "blog" seems inappropriate. "Notes", "Articles", "Analects", or "Documents" seem more appropriate to describe what TeXmacs produces when rendering source .tm files. I like "Articles", since it invoke the idea of "newspaper articles" or "column articles"; basically, relatively independent parts of a larger typeset publication. This 1913 definition from the Webster dictionary highlights the meaning I'd like to emphasize:

Article \Ar"ti*cle\, n. [F., fr. L. articulus, dim. of artus joint, akin to Gr. ?, fr. a root ar to join, fit. See {Art}, n.]

  1. A distinct portion of an instrument, discourse, literary work, or any other writing, consisting of two or more particulars, or treating of various topics; as, an article in the Constitution. Hence: A clause in a contract, system of regulations, treaty, or the like; a term, condition, or stipulation in a contract; a concise statement; as, articles of agreement. [1913 Webster]

  2. A literary composition, forming an independent portion of a magazine, newspaper, or cyclopedia. [1913 Webster]

Project code update

Here is a set of project codes related to my reboil.com static website.

BK-2020-08: Ikiwiki blog

BK-2020-08-2: Ikiwiki blog binary blobs

BK-2020-08-3: TeXmacs articles

BK-2020-08-4: TeXmacs articles binary blobs

  • Git repository
  • Note: a submodule of the BK-2020-08-3 git repository.

Conclusion

I think I will call my TeXmacs-powered static website articles, as in "articles of a newspaper" or, more ambitiously "articles of an academic journal". I will host it at reboil.com/articles/, probably using a cron job in my Freedombox to automatically rsync article files rendered and committed to a git repository.