A minimal platform for Markdown-based blogs
Project description
madblog
This project provides a minimal blogging platform based on Markdown files.
Demos
This project powers the following blogs:
Installation
$ python setup.py install
Usage
# The application will listen on port 8000 and it will
# serve the current folder
$ madblog
usage: madblog [-h] [--config CONFIG] [--host HOST] [--port PORT] [--debug] [dir]
Serve a Markdown folder as a web blog.
The folder should have the following structure:
.
-> config.yaml [recommended]
-> markdown
-> article-1.md
-> article-2.md
-> ...
-> img [recommended]
-> favicon.ico
-> icon.png
-> image-1.png
-> image-2.png
-> ...
positional arguments:
dir Base path for the blog (default: current directory)
options:
-h, --help show this help message and exit
--config CONFIG Path to a configuration file (default: config.yaml in the blog root directory)
--host HOST Bind host/address
--port PORT Bind port (default: 8000)
--debug Enable debug mode (default: False)
Configuration
The application will look for a config.yaml
file in the current directory if none was
specified through the -c
command-line option. The structure is the following:
title: Blog title
description: Blog description
link: https://link.to.your.blog
# Use home_link if you have a different home/portal address
# than your blog, otherwise it's the same as `link`
home_link: https://link.to.home
# Path/URL to the logo (default: /img/icon.png)
logo: /path/or/url/here
# Blog language (for the RSS feed)
language: en-US
# Show/hide the header (default: true)
header: true
categories:
- category1
- category2
- category3
Markdown files
Articles are Markdown files stored under pages
. For an article to be correctly rendered,
you need to start the Markdown file with the following metadata header:
[//]: # (title: Title of the article)
[//]: # (description: Short description of the content)
[//]: # (image: /img/some-header-image.png)
[//]: # (author: Author Name <email@author.me>)
[//]: # (published: 2022-01-01)
Images
Images are stored under img
. You can reference them in your articles through the following syntax:
![image description](/img/image.png)
You can also drop your favicon.ico
under this folder.
LaTeX support
LaTeX support is built-in as long as you have the latex
executable installed on your server.
Syntax for inline LaTeX:
And we can therefore prove that \( c^2 = a^2 + b^2 \)
Syntax for LaTeX expression on a new line:
$$
c^2 = a^2 + b^2
$$
RSS syndacation
RSS feeds for the blog are provided under the /rss
URL.
By default, the whole HTML-rendered content of an article is returned under rss.channel.item.description
.
If you only want to include the short description of an article in the feed, use /rss?short
instead.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file madblog-0.1.11.tar.gz
.
File metadata
- Download URL: madblog-0.1.11.tar.gz
- Upload date:
- Size: 367.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68612e004250193498cfd5525c4f0f8fc00cb0c4f23893bcc06851747492d32f |
|
MD5 | b7b4940318b936725210eb88758bfd2c |
|
BLAKE2b-256 | e76f22885b15cee778e95d6dc305367d634d17e7936903e30918b6601df9333d |