sigline is a plain-text format for notes. You write in your text editor as normal. When a line needs to mean something specific — a warning, a code block, a list item — you start it with a single special character. That character is called the sigil. Everything else is just prose.
sigline files can be converted to semantic HTML or other structured formats.
File extension: .sl ·
Encoding: UTF-8 · Line endings: LF
Put a short header at the very top of your file to describe the document — its title, the date you wrote it, and any tags you want for searching later. Write one label per line, then leave a blank line and start your document.
title: Backup Rotation Policy date: 2026-06-22 tags: ops, resilience # First section starts here...
Start a section with one, two, or three # characters
followed by a space and your title. One # is a main
section. Two is a subsection inside it. Three is a sub-subsection.
Three levels is the maximum.
# Installing the Tool ## On Linux ### Using the package manager
Use this to open a section with one or two sentences that tell the
reader what it covers — like a short abstract. Every line in the
lead starts with >. A blank line ends it.
# Backup Strategy > This section covers how backups are rotated, > how long they are kept, and what to do when > storage runs out. Full explanation continues here...
Just write. No special character needed. A blank line starts a new paragraph. This is the default — most of your note will look like this.
This is the first paragraph. Write as much as you like across as many lines as you want. A blank line starts the next paragraph.
Use this for anything the reader must not skip — data loss, security
problems, irreversible actions. Every line in the block starts with
!. A blank line ends the block.
! Do not run this as root. ! It will overwrite /etc without asking. ! There is no undo.
Use this for helpful extras — tips, reminders, things worth knowing
but not dangerous. Every line starts with ~. Use
! when something can go wrong; use ~ for
everything softer than that.
~ You can skip this step if the tool is already installed. ~ Run `which myprogram` to check.
Use this when you are quoting someone else's exact words — a
specification, a manual, a book. It makes clear that the words
are not your own. Every line of the quote starts with |.
According to POSIX: | If the pathname begins with two successive slashes, | the behaviour is implementation-defined.
Use a hyphen and a space for a bulleted list. Use a number, a period, and a space for a numbered list. A blank line ends the list.
Things to check before deploying: - All tests are passing - Configuration file is present - Disk space is sufficient Steps to restore from backup: 1. Stop the service 2. Copy the backup file 3. Restart the service
Use this to explain what words mean — for glossaries, option
descriptions, or any term that needs a definition. Put the term,
then ::, then the meaning. Everything goes on one line.
Definitions can be stacked without a blank line between them.
errno :: Error code set by the system when an operation fails. stdin :: Standard input stream, usually the keyboard. inode :: Data structure that stores information about a file.
Use this to show code or commands exactly as they should be typed or read. Write three backticks and the language name to open, and three backticks alone on their own line to close. Everything inside is kept exactly as you wrote it — indentation, blank lines, special characters included.
```sh find /var/log -name "*.log" -mtime +30 -delete ``` ```ocaml let greet name = Printf.printf "Hello, %s\n" name ```
Use this to show what appears on screen after running a command —
terminal output, log lines, error messages. This is different from
code: it is what the system printed, not something the
reader types. Use the word output as the tag.
```output total 48 drwxr-xr-x 5 sergiy staff 160 Jun 22 09:00 . -rw-r--r-- 1 sergiy staff 42 Jun 21 14:00 config.toml ```
Use this to leave notes for yourself that should never appear in any
output — reminders, questions, unfinished sections. Start the line
with %%.
%% TODO: double-check the retention numbers below. %% This section needs a second pass before publishing.
Write URLs directly in your text. They are converted to clickable links automatically. No special syntax is needed.
Full documentation at https://codeberg.org/duras/sigline
The converter checks a small set of rules. Most problems produce a warning and a sensible fallback. One produces an error and stops.
| Condition | Severity | What happens |
|---|---|---|
| #### or deeper heading | error | conversion stops |
| Second > block in same section | warning | treated as a plain paragraph |
| > block outside any section | warning | treated as a plain paragraph |