This manual explains how to install, configure and use Nocterra. For the background of the project, see the history of Nocterra.
Nocterra is a general-purpose, freedom-respecting Content Management System that helps you build comprehensive websites with a focus on speed, privacy, security, and accessibility.
Installing Nocterra basically comes down to downloading the latest Nocterra release and unpacking the files contained within the archive to the document root directory of your web server or hosting plan.
Please see the installation guide.
The built-in storage engines are the locale_prefix_menu, locale_prefix and locale_directory storage engines. The default is locale_prefix.
The locale_prefix is the most basic storage engine, best suited for smaller websites. The contents of the pages of your website are stored in the data/
directory. Each page is stored in a single file, bearing the name of the URL with slashes converted into underscores _ and prefixed by the language code.
Note: Nocterra is designed to represent special characters like spaces, dollar and pound signs as minus signs -.
data/en_
data/en_about
data/en_menu
data/en_menu_todays-special
data/es_
data/es_sobre
data/es_menu
data/es_menu_especial-de-hoy
data/nl_
data/nl_over
data/nl_menu
data/nl_menu_specialiteit-van-de-dag
The above could be the pages for a multilingual restaurant website. Containing a home page stored in the files data/en_, data/es_ and data/nl_ served at https://www.example.com/
, https://www.example.es/
and https://www.example.nl/
.
An “About our restaurant” page data/en_about, data/es_sobre and data/nl_over served at https://www.example.com/about
, https://www.example.es/sobre
and https://www.example.nl/over
.
A page for the restaurant's menu data/en_menu, data/es_menu and data/nl_menu served at https://www.example.com/menu
, https://www.example.es/menu
and https://www.example.nl/menu
.
A page for the restaurant's daily special data/en_menu_todays-special, data/es_menu_especial-de-hoy and data/nl_menu_specialiteit-van-de-dag served at https://www.example.com/menu/todays-special
, https://www.example.es/menu/especial-de-hoy
and https://www.example.nl/menu/specialiteit-van-de-dag
.
Each entry in the storage engine, a regular file for the locale_prefix, contains the HTML for the page body. The page body hereby is defined not the HTML <BODY> element, but the actual semantic body of a website i.e. it's textual content as headings, paragraphs and images. Each entry can also contain PHP code fragments to dynamically generate content and/or call Nocterra API functions.
<?php
setTitle('About my website');
addKeywords('john doe, bespoke clothing, new york city');
?><H3>Welcome to my website</H3>
<P>I'm a bespoke tailor in New York City. I make clothing especially tailored to you.…
Nocterra provides a powerful link generation method. It generates cross-domain multilingual links. It is aware of the entries in the menu configuration to provide human-readable SEO-optimized URLs to pages with metadata. This way you don't have to track the URLs for each page on your website in each language. It provides SEO information like canonical URLs and signals like noindex. Which you can control from a central location.
During the link generation, links to local resources such as images and scripts are detected automatically. To improve user experience and SEO, URLs to these resources are timestamped. Doing this browsers, bots and social media platforms are allowed to cache the resources for a long period of time, while the user sees the new or updated versions when visiting your website.
chapter1.
donate.
foopage in the current language.
foopage in Dutch.
foopage instructing the browser to jump to the anchor
far.
barsubpage in the current language.
barsubpage in Swedish.
barpage instructing the browser to jump to the anchor
far.
Iconimageset in the page.
bouncy ballJavaScript in the page.