nilFM
design and programming portfolio of Derek Stevens: drkste@zoho.com

Ayanami Shell CMS

Ayanami CMS is the backend of this website. It is a static site generator and content management system that aims to make it easy to keep a simple website up to date.

ayanami init screen
You run it from the serverside, after logging in via SSH. This offloads security concerns from the script itself, letting it do what it's meant to do: generate the website.

ayanami action choice
It leads you through an interactive session, selecting the page of the website to edit, and then whether to post something new, edit an existing post, or rebuild the page and/or the media library from an updated template.

If you post something new, the script leads you through the motions, asking for a title, a linked file (as many as you want if you just want to dump some images), and then giving control to your editor of choice to create the main content for the post. Depending on the type of file you link, the post will use a different template to hilight the filetype (ie, music or video player, vertical image gallery, file download with image preview). If you don't link a file in that step, you can still embed files in the main post content with HTML tags (as I'm doing with this post).

ayanami database screen
If you choose to edit a post, you are met with the database for that page. It will paginate with the same number of posts per page as the webpage itself (a setting in Ayanami's config.sh). You can paginate forward, return to the first page, exit back to initialization, or choose a post to edit.

In editing a post, you cannot change the template type or number of files linked, but you can change the title, URL of linked files, and the post body. You can also delete a post.

ayanami HTML builder
After finalizing a new or edited post, builds the permalink for it (called "islands"), and then builds the page itself, taking care of pagination based on the setting in config.sh.

The media library (formerly called the "archive") is a simple HTTP fileserver interface which lists files in the directories given in the "librarydirs" variable in the configuration. Here, I use it to host my mixes and digital art, and to mirror some of my videos.