Package: madblog
madblogThis project provides a minimal blogging platform based on Markdown files.DemosThis project powers the following blogs:PlatypushMy personal blogInstallation$pythonsetup.pyinstallUsage# The application will listen on port 8000 and it will# serve the current folder$madblogusage: 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)ConfigurationThe application will look for aconfig.yamlfile in the current directory if none was
specified through the-ccommand-line option. The structure is the following:title:Blog titledescription:Blog descriptionlink: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# Enable/disable the short RSS feed (default: false)short_feed:falsecategories:-category1-category2-category3Markdown filesArticles are Markdown files stored undermarkdown. 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)If nomarkdownfolder exists in the base directory, then the base directory itself will be treated as a root for
Markdown files.FoldersYou can organize Markdown files in folders. If multiple folders are present, pages on the home will be grouped by
folders.ImagesImages are stored underimg. You can reference them in your articles through the following syntax:![image description](/img/image.png)You can also drop yourfavicon.icounder this folder.LaTeX supportLaTeX support is built-in as long as you have thelatexexecutable 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 syndacationRSS feeds for the blog are provided under the/rssURL.By default, the whole HTML-rendered content of an article is returned underrss.channel.item.description.If you only want to include the short description of an article in the feed, use/rss?shortinstead.If you want the short feed (i.e. without the fully rendered article as a
description) to be always returned, then you can specifyshort_feed=truein
your configuration.