Profile Picture

Jombik.com

Blog

New Markdown-Based Blog

January 1, 2026 Ondrej Jombik

This is a new version of my blog. The previous one was at blog.nepto.sk and I will gradually move articles from there here.

For the past 20 years, databases have been the holy grail for storing dynamic content. All blogs I have seen had their articles stored in a database. This is not a bad approach, but in practice it is somewhat impractical.

Blog content is not very dynamic. It changes at the beginning, then usually just sits unchanged. Also, writing through a web interface is not comfortable for me. I find WYSIWYG editors particularly difficult to work with.

Therefore, instead of the traditional database-driven approach, I decided to build my blog using Markdown files.

Why Markdown Files?

Here are few practical reasons:

  • Fast and simple - Editing with all the features that the Vim editor offers
  • Version control friendly - Posts are plain text files, easy to version
  • Easy writing - Clear document structure, no design issues
  • AI friendly - Large language models (LLMs) understand Markdown format exceptionally well

Markdown Guide

Since Markdown is relatively new to me, I have prepared an overview with examples of all common formatting options in this post.

Headings

Creating headings using # symbols:

# H1 Heading
## H2 Heading
### H3 Heading

Text Formatting

  • Bold text using **bold** or __bold__
  • Italic text using *italic* or _italic_
  • Bold and italic using ***text***
  • Strikethrough using ~~text~~

Lists

Unordered Lists

  • Item 1
  • Item 2
    • Sub-item 2.1
    • Sub-item 2.2
  • Item 3

Ordered Lists

  1. First item
  2. Second item
  3. Third item

Task Lists

  • [ ] Unchecked task
  • [x] Checked task
  • [ ] Another task

Links and Images

Links

Creating links is simple:

Visit my training section

Image with Caption

Here is an example of inserting an image with a caption:

Nepto.sk website logo Figure: Logo from my old Nepto.sk website

Alternative text is supported as well.

Code

Inline code: const blog = new Blog();

Code blocks:

<?php
function getBlogPosts($lang) {
    return Blog::getAllPosts($lang);
}
// JavaScript example
const posts = await fetch('/blog/api/posts');
const data = await posts.json();

Blockquotes

This is a blockquote. It can span multiple lines.

— Author Name

Tables

Feature Supported
Markdown Yes
Images Yes
Bilingual Yes

Horizontal Rule


Conclusion

I hope I will never need this guide. After all, Markdown is quite simple. But if I do need it, it is right here:)