Sora README

created Apr 10, 2018 - updated Oct 24, 2018

Sora is a web-based static site generator. Posts can be created and updated through the web browser. The app creates static HTML files that readers access.

Sora is built with the Lua programming language. Sora is based upon my Wren web publishing app that was created with Perl.

Test site: http://sora.soupmode.com.

Brief Description

Longer Description

Sora is a web-based, static site, blog tool that does not use a database.

Sora requires the user to create most of the functions that would be automatically created in most "normal" web publishing apps.

For example, the homepage is not automatically generated. The index.html files that are located in the root directory and in sub-directories get created and updated like a regular article post.

The same applies to archives and tag-related pages. My other web publishing apps automatically support hashtag searches. Not Sora. The Sora author must create the hashtag links the HTML pages for each tag. And the author must add the link to the post to each tag-related page.

It's a slower way to produce content, which may mean staying more focused and writing when having something important to create, instead of saving and commenting on every link encountered. And I like the freedom of a blank canvas with minimal constraints.

Sora posts can be created and updated through a web browser on a desktop/laptop or on a mobile device.

Sora has an API, which can be accessed with command prompt utilities or curl. The Sora API doc describes how to use it.

To-Do: I need to enable the API to support "Preview" when access has no authentication. Preview will return the formatted post, which could be saved on a local hard drive.

When logging into a Sora site, it uses a no-password login mechanism. The author submits an email address, and the login activation link is emailed to the address listed within the Sora YAML configuration file. The app uses MailGun to send these emails.

With Sora, text can be formatted using Markdown and HTML commands.

In recent years, I've tried to minimize the formatting that I do for a web article. Keep it simple. And Markdown satisfies my needs, nearly all of the time.

When Sora creates a new post, Sora automatically generates a sidefile page called hfeed.html that is an HTML feed or h-feed page, based upon Microformats usage, suggested by the IndieWeb, specifically h-entry.

One or two feed readers, built by IndieWeb advocates, support consuming content syndicated by RSS, Atom, maybe JSON Feed, and h-feed.

If a website organizes content from youngest to oldest, which can be the homepage or a sidefile page that supports h-entry Microformats, then that HTML page can be submitted as the feed page to readers that support h-feed.

Instead of creating RSS, Atom, or JSON feed pages, a website only has to add Microformats to its already existing HTML stream page, which is the hompage for many blog sites. But at the moment, feed reader support for h-feed is limited.

For search, Google and/or DuckDuckGo can be used, but I rely mainly on Sora's simple, built-in search mechanism. At the moment, the search forms are manually setup by creating an HTML page like any other article. The Sora User Guide doc contains the HTML code that can be used for a search page. I should make this its own template.

When logged into Sora through a web browser, the author enters the commands in the URL after the site's domain name.


In nature, a Sora is a water bird that inhabits marshes. It's more often heard than seen. It vocalizes loudly, but it remains secretive, hiding in the vegetation. Occasionally, I see one wade through shallow water, along the boardwalk at Magee Marsh Wildlife Area.

http://www.audubon.org/field-guide/bird/sora

https://www.allaboutbirds.org/guide/Sora/

#sora