Skip to main content

Markdown-based static site generator

Project description

Gemerald

A markdown-based static site generator for HTTP and Gemini. Inspired by Hugo. Written in Python.

Try it out

This repository provides an example project for you to play around. You can try to build it with just a few commands

pip install gemerald
gemerald example
ls -la example-build

Gemerald markdown

We use specific subset of markdown with some extensions. Here is features currently supported:

Markdown features currently working

  • Normal text
  • Headings # - ######
  • Ordered lists
  • Unordered lists
  • Bold
  • Italics
  • Quotes
  • Nested lists
  • Code snippets
  • Tables
  • Inline code snippets
  • Links
  • Images

Markdown features that wont be supported

  • Inline links - All links must be placed on separate lines

Extra markdown features

  • Authors for quotes
  • Raw .html snippets
  • Raw .gmi snippets
  • Metadata headers

SSG features

  • Templating
  • Blog templating (one template for multiple files)
  • Listings
  • Auto copyright date
  • Images rescaling in build time
  • Image cache
  • Git integration for edit log

Output formats

  • Plaintext
  • HTML
  • Gemini markup
  • Markdown (Yes! Markdown from Markdown)
  • RSS feed
  • Atom feed

Project Guide

Compatibility

  • Python 3.12

Basic directory structure

To start building your site you will need 3 directories:

  • templates
  • static
  • content

static directory will hold all your assets for the website. This catalog will be copied to every output format under the path /static. Please put your images there.

content directory contains all your markdown files. These will be translated into output formats. It can contain subfolders. Subfolders will apear in output ass well.

templates is a directory that contains only other subdirectories. All subdirectories must be named just like needed output formats. As an example, if you need to produce HTML output, all your HTML templates will be placed under templates/html.

Config files

Each format's template directory must contain additional file named config.yaml. This file contains all configuration for given format. This is a list of mandatory keys that need to be present:

  • enabled (boolean) - Prevent output for given format by setting this to false.

Templating

Blog entires

Who uses it?

  • wilmhit.pw (not yet)
  • hspoz.pl (If they will be willing to)
  • Your website

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemerald-0.1.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gemerald-0.1-py2.py3-none-any.whl (33.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file gemerald-0.1.tar.gz.

File metadata

  • Download URL: gemerald-0.1.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for gemerald-0.1.tar.gz
Algorithm Hash digest
SHA256 92ef6c06b1451f1b51736f4eecd43d7529ebd8f79ce6d841c56d38763bb9e187
MD5 ddf52650d94647e24884324789d5b107
BLAKE2b-256 8e4af8af55974176fb2a09174a6fdeb1f90e355d7033cea0eab7ee12bab029f3

See more details on using hashes here.

File details

Details for the file gemerald-0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: gemerald-0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 33.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for gemerald-0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 87b1fadc4539950a8ddaebdf12c97dbad84b79e450a96436a4905a7db6a34a6e
MD5 582af3179fa2aaf7d122dd9e6ce635f2
BLAKE2b-256 52907870da1a88904448f7b65e3beb63ab85993f69938ecf403e1d92ee47a99e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page