Skip to main content

Senior Web Engineer. Open web / music. Remote DJ. Tall Dutch guy. #3million

micro.blog/sander

svandragt

mixcloud.com/cloudseer

 

Generating Atom feeds from your Lektor site

After quickstarting a Lektor site, a next obvious thing to do is to add a feed to the site's blog. Fortunately, Lektor has a growing ecosystem of plugins, one of them creates atom feeds.

Installation of lektor-atom

The plugin to install is lektor-atom, and is installed via the terminal:

lektor plugin add lektor-atom@0.2
lektor build

This adds a reference to the myproject.lektorproject file with the plugin and installs the plugin into the lektor pipeline.

Configure a feed

However, notice that after building the site no feed is generated! This is because no feeds have been setup yet.

Create a configs/atom.ini containing the following lines (full documentation)

[blog]
name = My Blog feed
source_path = /blog
item_model = blog-post
url_path = /blog/feed.xml

Change the url_path to suit your preferences. Trying to build now would result in an error: E blog/feed.xml (RuntimeError: To use absolute URLs you need to configure the URL in the project config.)

To resolve the build process myproject.lektorproject must be updated with two lines within the project section to indicate the site's live URL and an absolute URL style:

[project]
name = My Project
url = https://myproject.com

[packages]
lektor-atom = 0.2

The site can then build and the resulting feed can be accesssed from https://myproject.com/blog/feed.xml.

 

Painless Lektor Setup in Less Than 5 Minutes

Two technologies that I have can really recommend you try out - Lektor and Cloud9 - can be used together to start a static site or blog in a matter of minutes. If you want to try out the power of Lektor without leaving a trace on your machine then follow this quick setup.

Lektor is a flexible and powerful static content management system for building complex and beautiful websites out of flat files — for people who do not want to make a compromise between a CMS and a static blog engine.

Cloud9 combines a powerful online code editor with a full Ubuntu workspace in the cloud.

Because every Cloud9 workspace is also a Docker container, you have full access to a ubuntu system with terminal access. We can use this to install a development Lektor install and work on our static website as follows:

  1. Create a new Cloud9 workspace with the Python template, as Lektor is written in Python.
  2. Delete the ex50 folder
  3. In the bash tab of the new workspace, install lektor by running: curl -sf https://www.getlektor.com/install.sh | sh
  4. Once this completes, start a new project: lektor quickstart
  5. Create a new runner (Run > Run With > New Runner) with the following contents (replace myproject):
    {
    "cmd" : ["lektor", "server", "-p", "8080", "-h", "0.0.0.0"],
    "info" : "Started $project_path",
    "working_dir": "/home/ubuntu/workspace/myproject"
    }
  6. Press the Run button to start the server, and Preview > Preview Running Application to browse the Lektor site.

That's all there is to it, you can continue with the Lektor Quickstart instructions.