# Goal

A markup language that makes writing unknown things fast and confident.

# Idea

An opinionated successor to Markdown that focuses on semantics instead of presentation.

The file describes meaning. The renderer decides how that meaning is displayed.

# Core Primitives

| Syntax | Dimension  | Meaning                             |
| ------ | ---------- | ----------------------------------- |
| `#n`   | Hierarchy  | Level `n` in the document structure |
| `!n`   | Importance | Importance level `n`                |
| `>n`   | Quote      | Quote depth `n`                     |
| `@n`   | Confidence | Confidence level `n`                |

If no number is provided, `n = 1`.

Examples:

- `!` = `!1`
- `#` = `#1`
- `@` = `@1`
- `>` = `>1`

# Example

```text
#2 Computer Science

! I love PCs

@-2 They are going to replace humans one day

> Love is truth

#1 Science
```

Possible Markdown rendering:

```markdown
# Science

## Computer Science

==I love PCs==

~~They are going to replace humans one day~~

> Love is truth
```

This rendering is only an example. The original semantics are preserved regardless of how they are displayed.

# Combining Primitives

Primitives can be combined by placing them directly next to each other.

Example:

```text
@-2!>2 A slightly important statement I believe is wrong, quoted inside another quote.
```

Meaning:

- Confidence: -2
- Importance: 1
- Quote depth: 2

# Inline Scopes

Modifiers can be changed inline.

A modifier without a number is level 1.

A modifier followed by `-` pops one level from that modifier's stack.

Example:

```text
!2@3 important trusted but @- important !5 more important !- 2 important and !- normal
```

Interpretation:

1. Importance 2, Confidence 3
2. Pop Confidence
3. Push Importance 5
4. Pop back to Importance 2
5. Pop back to normal

# Design Principle

Do not describe how text should look.

Describe:

- how important it is
- how trustworthy it is
- where it belongs
- whether it is a quote

The renderer decides how those concepts are displayed.

## ===test=== **123**

#1 test
#2 test \2
@2 test
testt
-----
