Dear Parlour, I Updated My Website

Introduction

This letter was sent to my parlour mailing list on April 24th, 2019. It's about my recent changes to my website.

This document was written by me, emsenn, and is released for the benefit of the public under the terms included in the "License" supplement. It was made possible with financial contributions from humans like you. Please direct comments to my public inbox or, if necessary, my personal email.

This document was written as a piece of correspondence to a certain person or community, and should be read in that light.

This document was written when the events it discusses were contemporary. Information in it may now be incorrect, and opinions presented may be out of date.

Dear Parlour, I Updated My Website

It's been a while since I sent my last message to this mailing list. My apologies - my new job as a property manager took up more time than expected, and I tinkered too much with my computer so was unable to easily draft something new to write.

Yesterday I worked out those kinks and updated my personal website for the first time since late-January. (There's still a lot to update, but it's progress.) In this letter I'm going to just talk about the site for a bit - how it's laid out, and how it's made.

I received a lot of feedback about my homepage as soon as I started sharing it. In case it changes, at the moment it is a brief paragraph introducing myself, followed by a list of pages and subdirectories (and subpages), followed by an index.

It's funny how an index, like what books have, looks so out of place on a website's index page. Of course, part of why my index looks exceptionally silly is that it also includes all the indexed terms and entries from my fantasy canon, so has entries about the fictional region of the Farsteppes listed right next to entries about the real company Facebook. But, consequence of the site being made for myself, first.

This index page, and all the documents, are generated by Org-mode's publishing features, from my org directory that looks something like this:

~/org/
     |src/
     .   |eli.org
     .   |index.org
     .   |mit-license.org
     .   |theindex.org
     .   |theindex.inc
     .   |sitemap.org
     .   |...
     .   |dear-parlour-i-updated-my-website.org
     |templates/
     .         |setupfile0.org
     .         |setupfile-base.org
     .         |setupfile-css-simple.org
     |pub/
         |index.html
         |theindex.html
         |sitemap.html
         |...
         |dear-parlour-i-updated-my-website.html

The homepage - pub/index.html - is generated from src/index.org, which well, I'll just show you:

#+SETUPFILE: ./default-setup.inc
#+TITLE: emsenn's Documents and Resources
#+EXPORT_FILE_NAME: ../pub/index
#+INDEX: index!"emsenn's Documents and Resources"
* Introduction
My name is */emsenn/* and I'm a writer and developer. This website is
a repository of my work. It is in early development; it is messy and
hard to navigate. I apologize. Below is a alphabetical list of pages
and subdirectories, followed by an index of terms.
* Sitemap
#+INCLUDE: "./sitemap.org" :only-contents t
* Index
*/Note:/* This index contains every term indexed in every project, and
so is very long, and sometimes entries are confusing because they
assume you're viewing them in the context of the project.
#+INCLUDE: "./theindex.org" :only-contents t

The line beginning with #+SETUPFILE specifies the file ~/org/templates/setupfile0.org - here's what that looks like:


As you can see, it includes two source files itself, setupfile-base.org and setupfile-css-simple.org. Here's what those look like. First, setupfile-base.org:


Then, setupfile-css-simple.org:


Most of my website's CSS is coming from the Ox-html defaults - that's what Org-mode uses to turn org files into HTML.


So, the index page is some basic configuration, some CSS, then the title, an introduction, and then it goes on to include sitemap.org and theindex.org. Both of those are long files, so I'll just say, sitemap.org is a list of links to the website's pages and subdirectories, and theindex.org includes theindex.inc, which has headlines for every letter, followed by a list of indexed terms with links to their relevant entries.

So, that's it for the homepage. Now let's look at a random document - like this one.

So this document starts the same way index.org does, with lines similar to the following.

#+SETUPFILE: ~/org/templates/setupfile0.org
#+TITLE: Dear Parlour, I Updated My Website
#+EXPORT_FILE_NAME: ../pub/dear-parlour-i-updated-my-website
#+INDEX: letter!by audience!to my parlour!"Dear Parlour, I Updated My Website"

Most of my documents start with an "Introduction" section which provides contextual information for the document. The "Introduction" section usually starts with a few sentences explaining the intent of the document, and are then followed by some standardized disclaimers about the document. To make that easier for myself, I've made up a source document just for that purpose - eli.org, "Editorial and License Information." Sections from that file are included as needed to provide context for the document - the file has quite a few sections.

For example, in this document, I include two sections: #eli, "Editorial and License Information" itself, and #document-context-correspondence, "Document Context: Correspondence."

The former discloses that I wrote the document and release it under the license attached, and the latter discloses that the document was originally written for a specific audience, and should be read in that context.

Under the "Introduction" section is a section containing the document itself. Finally, there's a "Supplements" section which, among other things, includes the mit-license.org file; the MIT License, which is what this document is released under.

So that's an explanation of how my documents look, on the source side: mostly just the document, but with some other stuff included to reduce how often I need to repeat myself.

In order to turn those org files into the HTML files in pub/, I run the command =org-publish-project, publishing the personal-website project.

This recursively looks through the src/ directory and exports each org-file into an HTML file in the pub/ directory. It then generates sitemap.org and index.org, and exports those as HTML files as well, into the pub/ directory.

From there, I run the command neocities push from inside the pub/ dir, which updates emsenn.net, which uses the host Neocities.org.

That's it - how I updated my website. I hope y'all like it. My next steps are just cleaning up the files that are already there, making sure they have proper listings in the index, but then I'll be looking to tweak the documents more; adding navigation, for example. I'm also going to be giving some thought to how to generate more modern website content, like a page outlining my recent activity.

Supplements

Contribute

This document was made possible with contributions from humans like you. Thank you! I currently accept contributions through the following platforms:

If there is another service through which you'd like to contribute, please send an email. Please note that in accordance with my personal directives #003 and #018, I release all useful information I create for free, so financial contributions do not entitle you to access to any "exclusive content."

License

Copyright 2019 emsenn

Permission is hereby granted, free of charge, to any person obtaining a copy of this document and associated media files (the "Document"), to deal in the Doftware without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Doftware, and to permit persons to whom the Doftware is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The Document is provided "as is," without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, or noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort, or otherwise, arising from, out of or in connection with the Document or the use or other dealings in the Document.

Author: emsenn

Created: 2019-05-01 Wed 11:49

Validate