MarkdownBlog is a lightweight php blog software. Its purpose is to provide a easy way to share your thoughts without any database or special setup needed. The content of the website can be provided in easy to use markdown files (*.md) instead of other more complicated solutions.


  • Dynamic setup of your blog or website with simple configuration files but without any need of programming.
  • Support for (remote) markdown and HTML files
  • Easy to build navigation, including the ability to link external sites
  • Different views generated with your markdown or html files:
    • Single pages to show special content like 'Contact' or 'About'.
    • Remote pages to show content hosted on an onther server (e.g. your favourite GitHub project).
    • List of markdown files (the sample usecase of a blog)
    • Grouping of topics in a dynamicly generated dropdown menue.
  • Syntax highlighting for both HTML and markdown
  • Build-in Gallery, including a lazy-load slider
  • Dynamic image resize to minimize network traffic
  • Extended support for blogs
    • Search for categories
    • Display content on several pages to ensure fast loading
  • Mail obfuscation

Quick start

  1. Download and extract the archive into your server's web folder.
  2. Edit your webservers DocumentRoot to point at the projects public folder
  3. Modify the config/general.ini to personalize your website/blog. A sample configuration is provided in the config/general.ini.sample.
  4. Copy your *.md files on the server (e.g. public/content/ and provide their location in the config/config.ini.
  5. Make sure the server has read and execution access to all linked markdown files.
  6. Share your thoughts and enjoy!

You should probably exclude .git and .ini files from being served by your web server. A full example of a Apache configuration can be found in the apache.conf in this repo.

For detailed information see the documentation.


Markdown Blog provides a Dockerfile for a easy installation.

For a test you can follow these steps:

  1. Download
  2. Extract it on your local hard disk and cd into it
  3. docker build -t YOUR_NAME/mdblog .in the MarkdownBlog folder (where YOUR_NAME equals a distinctive string)
  4. Switch to your website folder
  5. docker run -v $(pwd)/:/var/www/html/public/content -v $(pwd)/.config/:/var/www/html/config -p 8080:443 YOUR_NAME/mdblog (where $(pwd) equals the path of your website folder)
  6. You can access your MarkdownBlog via https://localhost:8080/

Note: Debug your PHP in Docker with Intellij/PHPStorm and Xdebug see here

  1. docker run -e XDEBUG_CONFIG="remote_host=YOUR_IP_ADDRESS" -v $(pwd)/:/var/www/html/public/content -v $(pwd)/.config/:/var/www/html/config -p 8080:443 YOUR_NAME/mdblog (where $(pwd) equals the path of your website folder)
  2. In Intellij/PHPStorm go to: Languages & Frameworks > PHP > Debug > DBGp Proxy and set the following settings: Host: YOUR_IP_ADDRESS Port: 9000

Note: This setup is only suited for testing purposes. You Should definitely replace the self signed certificate that is generated in the docker container with a real SSL Cert.

  • Your public key ("domain.pem") and the intermediate Certificates ("intermediate.pem") have to be linked into /etc/ssl/certs.
  • Your private key ("domain.key") has to be linked into etc/ssl/private

Furthermore you might want to add custom CA authorities ("ca-bundle.crt") into the /etc/apache2/ssl.crt folder and export the logs /var/log/httpd.

Build with

SonarQube File Parser PlugIn

This SonarQube PlugIn parses a property file and dynamicly displays the content. It can be useful if you want to display custom configuration parameters in the SonarQube dashboard or so on. You can specify titles for groups, single lines or key value pairs.


A property file like this:

G=This is a title 
K=Key value pairs=Possible
L=Or just a simple lines
L=The strings are not escaped - so you can use your own <em>HTML Code</em> inside
G=This is another title
K=Even cool booleans=true
K=With pictures if you like=false
G=Titles help you to display content well structured
K=My important KPI=1
K=Another important KPI=2
K=Some other stuff i'd like to show=3
K=Followed by some numbers=5

... will be displayed as:

alt text

All seperators or prefixes are configurable so you can change it to fit your needs. E.g. you can change the seperator to any other string to have the possibility to bisplay hyperlinks.

Multiple files

If you like you can display more than one file with this PlugIn. All you need is to store the different files as filename + {number}. This feature might be particularly useful if you want to display some static and some dynamic data in your dashboard.

This configuration allows you to store more than one file. alt text

The PlugIn will now parse the two files named:


Afterwards you can configure the File Parser widget to display a certain file. alt text


Boolean pictures: "Must Have" by Visual Pharm distributed under Creative Commons (Attribution 3.0 Unported)

This PlugIn is free software: You can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The PlugIn is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.