1. Introduction¶
For an outline of basic Sandpoints features see article⁄About this infrastructure: Sandpoints. Here is an overview:
- Sandpoints is a module/theme for www⁄Hugo.
- Hugo is a static website builder.
- Static websites serve a client a fixed HTML page according to a CSS and/or JavaScript files. Static websites require no dynamic processing or customizations to be performed by a server.
- Thus, static websites are lightweight, robust, fast, and given that they are simple HTML, they are resilient to technological updates.
- Static websites are also portable, meaning they can be stored, copied, and run via a USB stick.
- Content in Hugo and Sandpoints is managed with Markdown files.
- Markdown is an open specification for plain-text human readable files.
- Markdown files can be opened and edited by any text editor.
- Markdown formatting syntax is simple and quite easy to learn (see also article⁄Markdown formatting guide).
- Since they are plain-text, they are extremely lightweight (this file is 6KB).
- They can easily serve distributed collaboration through version control (i.e. www⁄Git).
- They can be rendered to many other formats with tools such as www⁄Pandoc (e.g. to pdf, docx, etc.), which can also compile bibliographic references.
- Sandpoints add functionalities to Hugo projects pertaining to open and collaborative publishing.
- It features a particular ontology that follows a §⁄triadic hierarchy.
- It features extended hypertext functionalities that allow for non-linear content traversal, such as browsing entries by type, keywords, or §⁄backlinks.
- All the content is open and listed at the ⁄sitemap (see also §⁄sitemap).
- It allows for entries or groups of entries to be exported into interactive and printable PDFs (see §⁄generate printable PDFs and article⁄Print and Cite).
- It offers integration with a project-specific portable ⁄library (described in article⁄Library management).
2. Content organization¶
Content in Sandpoints is formatted in Markdown files, which are organized in subdirectories within the directory /root/content/
.
Each subdirectory inside content/
is named after and corresponds to a specific content type.
This project features the following content types (and subdirectories):
Type/directory | Description |
---|---|
journal |
parent item |
issue |
child of journal |
article |
child of issue |
editor |
associated with issue |
contributor |
associated with article |
print |
used for generating PDFs from other content types |
3. Ontology¶
Sandpoints supports a triadic hierarchy. This follows that content is organized, or parented according to a tree structure with a depth of three (entities). This project follows the scheme journal>issue>article
(other examples to visualize this content are book>chapter>section
, and ship>deck>room
).
Journal
└── Issue
└── Article
-Editor
-Contributor
-Print
This ontology follows that:
- a
journal
item serves as a parent, - which can have multiple
issues
, and - each
issue
can have multiplearticles
.
Furthermore:
- each
issue
is associated witheditors
, and - each
article
is associated withcontributors
.
Lastly, print
items are used to enable printing of any of the above elements (e.g. article
, issue
, or the whole journal
).
Note that the names of the basic triad elements are arbitrary. However:
- they have to correspond to content folders (as in
content/issue/
), - they have to exist in the theme’s dictionary which pairs singular and plural versions of the item name, as in
"article" : "articles"
. This dictionary is located at:root/_vendor/.../data/sandpointsnamegraph.json
4. Parenting and associating content¶
For parenting and associating items see the Content creation guide⦚article:int-contentnot found.
5. Sitemap¶
Sandpoints projects feature a ⁄sitemap, that lists all published content (all content that is not marked as draft). The sitemap is at the root URL of any given project.
6. Backlinks¶
The concept of backlinks was described in early speculations that informed hypertext (i.e. by Vannevar Bush and later Ted Nelson), but were not implemented the WWW. According to these ideas, hyperlinks are bi-directional, which follows that a hyperlink is visible both in the document that features a link and also at the target document where the link is pointing to. The latter is a backlink. By this scheme, any document knows which other documents point to it. The same concept is used by search engine algorithms, such as ‘page rank’ by Google, that function by creating an index of how many webpages link to a specific target website – or how many backlinks a given webpage has.
Sandpoints allows backlinks for selected items. These can be set at the config file, at the sandpointsMentionedIn
array (see §⁄Sandpoints config file).

This will create a link to the target-article
but it will also create a backlink – a mention of this link inside the target-article
.
A link from this article to some other one, at the latter article will generate a backlink that would appear at the top right of the page (mentioned in this-article
).

Backlinks (as well as external and internal hyperlinks) are catalogued at ⁄urls.
7. Generate printable PDFs¶
Sandpoint can generate printable and interactive PDFs for single entries, groups of entries (as in issues), and for all content. For PDFs containing more than one entry, Sandpoints will dynamically generate a table of contents.
To browse printable content, look for material with the ‘print’ prefix in the ⁄sitemap. To create a print version for a given entry see the Content creation guide⦚article:int-contentnot found. See also article⁄Save PDFs and Cite.
8. Sandpoints project file structure¶
The root folder of the project contains the following files and folders.
Folder/ or File | Description |
---|---|
_vendor/ |
the folder containing the Sandpoints theme. |
content/ |
the folder with all content (Markdown files) organized in subfolders corresponding to and named after content types. |
archetypes/ |
a folder containing templates per type for generating new content. |
static/ |
the folder containing static files (images, etc.). |
public/ |
a folder containing the build of the site (generated via the command hugo ). |
resources/ |
a folder populated dynamically by Hugo. |
data/books/catalog.json |
the library catalogue. |
config.toml |
the configuration file of the website project. |
go.mod |
text file required for upgrading the Sandpoints theme. |
go.sum |
text file that logs upgrade information. |
PUBLISH.trigger.md |
Git hook for automatically building the website via commit message |
.git/ |
standard Git folder – a hidden folder with data from local version control. |
.gitignore |
standard Gitignore file – a text file that dictates which files or folders to ignore from (Git) version control and backup. |
readme.md |
standard Git repository readme file. |
9. Sandpoints config file¶
Each Sandpoints project has a TOML config file at:
rootFolder/config.toml
This is a plain-text file, that can be edited with a general text editor.
Key elements of the config file include:
- Project title
title = "Game Design Knowledge & Practice Journal?"
- Project home
sandpointsHome = "journal/jgdr.md"
- Description:
description = "Journal Description..."
- Which content types to have backlink mentions (see section §⁄backlinks):
sandpointsMentionedIn = ["contributor", "article" ]
10. Notes¶
- For an extended description of Sandpoints see www⁄Sandpoints Portfolio (sandpoints.org), which includes descriptions of its implementation in different projects, and related bibliography.
- www⁄Sandoints (Gitea project repository).
- See also Graziano, Valeria, Marcell Mars, and Medak Tomislav. ‘Learning from #Syllabus’. In State Machines: Reflections and Actions at the Edge of Digital Citizenship, Finance, and Art, edited by Yiannis Colakides, Marc Garrrett, and Inte Gloerich. Amsterdam: Institute of Network Cultures, 2019. www⁄http://www.statemachines.eu/books/state-machines-reflections-and-actions-at-the-edge-of-digital-citizenship-finance-and-art/.