ABAP Knowledge Base

New Post Guide

Everything you need to write a post for the knowledge base

A post is a single .md file in the posts folder. You write plain text, run one script, and it appears on the site. No HTML, no CMS, no server.

1. The workflow

  1. Copy the template Duplicate posts/_TEMPLATE.md and rename it, for example posts/se16n-tips.md. There is a download button at the bottom of this page.
  2. Write your post Fill in the header, then write the content using the formatting shown below. Any text editor works — Notepad, VS Code, Notepad++.
  3. Run the build Double-click build.bat in the site folder. It regenerates titles.md, downloads any images you linked, and makes the post searchable.
  4. Refresh the browser That's it. Your post is on the home page and in the search.

Naming the file

The file name becomes the address of the post, so keep it short, lowercase and without spaces. posts/st22-dumps.md becomes post.html?p=st22-dumps. Use hyphens instead of spaces. Files starting with an underscore (like _TEMPLATE.md) are ignored by the build, which is handy for drafts.

2. The header block

Every post starts with a few lines of information about the post, followed by one blank line, and then the content. The blank line matters — it tells the build where the header ends.

Title: Analyzing Short Dumps (ST22)
Category: Troubleshooting
Date: 2026-10-13
Tags: ST22, dump, runtime error
Author: K. Kyprianidis

Your first paragraph starts here, after the blank line.
LineRequiredWhat it does
Title:Recommended The heading of the post, the browser tab name, and the title on the cards. If you leave it out, the file name is used instead.
Category:No Groups the post and creates a filter button on the All Posts page. Reuse the existing ones where you can: Debugging, Daily Ops, Performance, Troubleshooting, SAP Logon. Defaults to General.
Date:No Sorts the post. Use 2026-10-13 or 13.10.2026. If you leave it out, the file's last modified date is used.
Tags:No Comma separated extra search keywords — transaction codes, function module names, anything a colleague might type into the search box.
Author:No Shown in small text under the post title.

3. Headings

The number of # characters sets the level. More hashes means a smaller, deeper heading. Always put a space after the hashes.

Do not write a # heading for the post title. The Title: line already produces it. If you do use a single # in the body it is automatically turned into a ## so the page keeps one main heading. Start your sections at ## and use ### for subsections.

4. Text formatting

Use `backticks` for anything you would type into SAP — transaction codes, field names, table names, report names. It makes posts far easier to skim.

5. Lists

Bullet lists use -, numbered lists use 1.. Indent by three spaces to nest one inside the other.

Numbering continues correctly even when you put an image or a paragraph between two steps — write 2. and it stays 2.

Checklists

6. Links

To link to another post, use post.html?p= followed by its file name without the .md. External links open in a new tab automatically.

7. Images

This is the easy part. Paste the link exactly as you copied it — from a GitHub comment, a ticket, anywhere:

![image](https://github.com/user-attachments/assets/da4ab710-f501-457b-8054-0538935979eb)

The text in the square brackets is the description shown if the image cannot be displayed. The link goes in the round brackets.

When you run build.bat, the image is downloaded into the site folder and your link is rewritten automatically to point at the local copy:

![image](data/images/your-post-name/da4ab710-f501-457b-8054-0538935979eb.png)

So the post keeps working with no internet connection, and the screenshot can never disappear on us. Each post gets its own folder under data/images/. You do not have to do anything — just paste the link and build.

Tip

If the download fails — no connection, VPN down — the build warns you and leaves the link alone, so nothing breaks. Just run it again later.

If you already have the image file on your PC, put it in assets/img/ and link it directly: ![Job overview](assets/img/sm37-filter.png)

8. Code

Put three backticks on a line of their own, your code, then three backticks again. ABAP is the default, so you do not need to say so:

For anything that is not ABAP, write the language after the first three backticks: sql, javascript, json, bash. Use text to switch the colouring off — good for SAP messages, job logs and dump output.

9. Note boxes

These are the coloured boxes. Write > [!NOTE] on one line, then your text on the next line, also starting with >. Five types are available — pick the one that matches how badly the reader needs to stop and pay attention.

A > on its own, without [!...], gives you a plain quote box.

10. Tables

Separate the columns with |. The second row of dashes is what makes it a table. The columns do not need to line up in the source.

Add a colon to the dashes to change alignment: ---: right, :---: centre.

11. Dividing lines

12. Before you build

Get the template

new-post.md The template with the header block and every formatting example already in it. Save it into the posts folder, rename it, and start writing.