Skip to content

The complete test document

This is NOPE's kitchen sink. One main document embeds a dozen helper notes and exercises nearly every feature at once: slices, tables, theorems, equations, figures, mermaid, glossary, citations, footnotes, callouts and branding.

Open PDF

Source notes

---
title: NOPE
subtitle: The Test Document
author: MrIwan
date: 2026-05-20
nope-branding: "[[branding-template]]"
bibliography: nope.bib
abstract: "[[abstract]]"
---

# Slice-Embed

This document tests slice embeds **and** wikilink resolution against the target map. The source note is `slice-source.md`.

## Heading-Slice

Expected behavior: only the "Middle Section" including sub-headings A and B will be embedded. The first and third sections must not appear. Additionally, the middle section is an H1 in its own note, but should be rendered as an H2 in the PDF. Embedded notes are shifted by $N$ heading levels, where $N$ is always > 0.

![[slice-source#Middle Section]]

## Block-ID-Slice

Expected behavior: only the single paragraph from the first section marked with `^para-first` will be embedded. The `^para-first` suffix itself should not be visible in the PDF.

![[slice-para#^para-first]]

![[slice-para#^para-second]]

## Fallback for Broken Anchor

Expected behavior: a plain-text notice in the style `[Section not found: slice-source#Does-Not-Exist]`, not the entire note content.

![[slice-source#Does-Not-Exist]]

And for block IDs:

![[slice-source#^block-does-not-exist]]

## Full Embed

For verification: a source note without an anchor, embedded completely once.

![[slice-full]]

# Wikilinks

Expected behavior: each of these links should be clickable in the PDF and jump to the correct anchor. In the LaTeX output, `\hyperref{...}` is used with the registered label.

Note link without anchor: [[slice-source]] — jumps to the beginning of the first embed.

Note link with display alias: [[slice-source|alternative display]] — same jump, different visible text.

Heading link to embedded heading: [[slice-source#Middle Section]] — jumps to the "Middle Section".

Block-ID link: [[slice-para#^para-first]] — jumps to the block-ID paragraph from the first section.

Link to non-embedded block: [[slice-para#^does-not-exist]] — the block ID was not part of any slice embed, so no anchor exists. The link text remains visible, but as plain text instead of a hyperref.

Link to non-embedded note: [[A-Note-We-Did-Not-Embed]] — because the note is never embedded in this document with `![[...]]`, no anchor exists. Thus plain text.

Link to non-existent heading of an embedded note: [[slice-source#Does-Not-Exist]] — the note is embedded, but this heading does not appear in it.

# Obsidian Markup

Tests for `obsidian-inline.lua`. Expectations are described in the comment above each test — only what remains after transformation should be visible in the PDF.

## Comments (`%%...%%`)

Expected behavior: a single inline comment disappears, the rest remains visible.

Before the comment, %%this text is hidden%% and after the comment.

Visible paragraph before block comment.

%%
This paragraph is part of the hidden region.
This one too.
%%

After the hidden region.

## Highlights (`==...==`)

Expected behavior: a single-token highlight becomes LaTeX `\hl{}` and is coloured in the PDF (yellow with the `soul` default).

First ==highlight==, second ==also marked==, third ==end==.

This ==has no closer and should appear as plain text with double equals signs.

This is **important and ==central word== plus rest** in the sentence.

## Lists

Expected behavior: plain Markdown lists render as normal LaTeX `itemize`/`enumerate` blocks — no NOPE-specific syntax needed. Nested items indent one level, ordered items keep their numbering.

Unordered, with a nested level:

- Write the atomic note in Obsidian as usual
- Embed it with `![[Note]]` to pull its content into the document
- Reference it with `[[Note]]` for an auto-numbered cross-reference
    - Works at any nesting depth
    - Bullets stay bullets and the order is preserved

Ordered, describing the export flow:

1. Add the matching `latex-env` frontmatter to the note
2. Provide a `caption:` wherever the environment requires one
3. Export the document to PDF through the Docker pipeline
4. Open the live preview to check the rendered result


And what happens with Checkboxes? 

- [ ] a
- [x] b
- [c] c


\newpage

![[feature-callouts]]

![[feature-figures]]

## Mermaid

![[mermaid-example]]

As shown in [[mermaid-example]], you can also refer to Mermaid environments!

![[feature-glossary]]

![[feature-footnotes]]

![[feature-environments]]

## Tables

![[tables-test]]

![[table-large]]

As shown in [[table-large]].

![[table-large-longtable]]

As shown in [[table-large-longtable]].

\newpage

![[feature-equations]]

![[feature-citations]]

# Unsupported Characters

One symbol per stripped category — after export each symbol disappears (pdflatex can't render it) and a notice reports how many were removed. The labels stay.

- Emoji & pictographs (U+1F000–1FFFF): 😀
- Misc symbols & dingbats (U+2600–27BF): ✅
- Misc symbols & arrows (U+2B00–2BFF): ⭐
- Regional indicator / flag (U+1F1E6–1F1FF): 🇩🇪
- Variation selector (U+FE00–FE0F): ❤️
- Zero-width joiner (U+200D): 👩‍💻
- Combining enclosing keycap (U+20E3): 1️⃣
---
title: Slice-Source
---

# First Section

This is the content of the first section. It should **not** appear in the export during the middle section slice test.

It also contains a paragraph with a block ID. ^para-first

# Middle Section

This is the content of the middle section. If the slice test works correctly, **exactly this section including the sub-headings** should land in the export — the first and third sections must not appear.

## Sub-Heading A

Content under sub-heading A. Belongs to the middle section (level 2 under level 1), so it will be embedded with it.

## Sub-Heading B

Content under sub-heading B. Here too: belongs to the middle section.

# Third Section

This is the content of the third section. It should **not** appear in the export during the middle section slice test.

It also contains a paragraph with a block ID. ^para-third
---
latex-env: theorem
latex-short: Pythagoras
---

In any right triangle with legs $a$ and $b$ and hypotenuse $c$:

$$a^2 + b^2 = c^2$$

It is one of the oldest known theorems in mathematics.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.