De staalkaart
Elk element van de Markdown-pipeline van deze site treedt op deze pagina één keer op: inline-markeringen, wikilinks, tabellen die kaarten worden, callouts in drie schrijfwijzen, wiskunde, codeframes, diagrammen, emoji-shortcodes, GFM-extra's — en ook de leestijd in de strook hierboven komt uit de pipeline. Dat de pagina überhaupt bouwt ís de demonstratie: de poortwachter wijst elke misvormde schrijfwijze uit de lijst aan het slot af, dus wat je ziet is wat het dialect accepteert. Twee schakelaars die deze site uit laat — de nummeringspreset sections en het subpad-voorvoegsel base — staan beschreven in de gids.
§1.1Inline-markeringen
De nadrukparser is CJK-vriendelijk: vet sluit zelfs tegen Chinese leestekens aan — **报文。**同时 rendert als 报文。同时, niet als letterlijke sterretjes. Cursief, doorhalen en inline code werken zoals je gewend bent; met de schakelaar gemoji rendert een shortcode als :sparkles: als ✨. Tekens binnen inline code doen aan geen enkele parsing mee, dus backticks zijn de veilige manier om syntaxis te tonen: **, $…$ en > [!note] verschijnen allemaal letterlijk. Wil je een sterretje in lopende tekst laten zien, escape het dan — *zoals hier* blijft gewoon staan.
§1.2Wikilinks
Met de schakelaar wikilinks aan worden [[dubbele-blokhaken]]-links opgelost tegen de notitiecollectie, zoals een wiki dat hoort te doen: op id (design-tokens — vanuit een Nederlandse spiegelnotitie landt zo'n link eerst op de spiegel in dezelfde taal en pas daarna op het Engelse origineel), op alias (boundaries bereikt de notitie met id three-way-split) en met een label (de aan-de-slag-gids). Een doel dat nergens toe leidt, rendert als een gemarkeerde dode link in plaats van de build te breken — en de CLI check-wikilinks van de engine rapporteert hem in CI, waar linkrot thuishoort.
§1.3Tabellen: scrollen als het breed is, kaarten als het smal is
Een tabel met zes of meer kolommen hoort in een smalle container één rij per kaart te hervormen, in plaats van elke cel tot twee tekens samen te persen. Deze tabel met zeven kolommen is tegelijk het spiekbriefje van de callout-varianten én een live test van die hervorming (knijp het venster tot telefoonbreedte):
| Variant | Class | Trefwoorden in de citaatsyntaxis | Rand | Ondergrond | Standaardtitel | Typisch gebruik |
|---|---|---|---|---|---|---|
| note | callout | note info | 赭 oker --color-accent3 | wiskundegrond --color-math-bg | Note | neutrale kanttekeningen |
| intuition | callout intuition | tip intuition hint | 黛 teal --color-accent2 | wiskundegrond | Intuition | analogieën die intuïtie opbouwen |
| warn | callout warn | warn warning caution danger | 石 gebrand oranje --color-accent | 8% accentmenging | Warning | waarschuwing vóór riskante stappen |
| system | callout system | important system | 紫 violet --color-accent4 | 8% violetmenging | Important | conventies op systeemniveau |
| abstract | callout abstract | abstract summary quote | vale inkt --color-ink-faint | zacht oppervlak --color-bg-soft | Abstract | samenvattingen aan het begin van een hoofdstuk |
| bad | callout bad | (alleen rauwe HTML) | 石 gebrand oranje | 10% accentmenging | — | vastgelegde fouten, verworpen ontwerpen |
De standaardtitels zijn Engels; een site vervangt de hele set via de optie calloutLabels van siteMarkdown, bijvoorbeeld calloutLabels: { tip: 'Intuïtie', warn: 'Waarschuwing' }. Een titel die in de citaatsyntaxis zelf staat (> [!tip] Mijn titel) wint altijd.
§2.1Callouts: drie schrijfwijzen
Ten eerste de Obsidian/GitHub-citaatsyntaxis (beschikbaar met callouts: true, werkt ook in kale Markdown-bestanden):
De vouwmarkering van Obsidian wordt gerespecteerd — > [!note]- rendert ingevouwen, > [!note]+ open:
Een ingevouwen notitie
Klik op de titel om haar te openen. Ingevouwen callouts renderen als <details> met de titel als hun <summary>.
Ten tweede het pakketcomponent in MDX (astro-inkstone/components/Callout.astro, per pad geïmporteerd). Zonder title toont het het standaardlabel van de variant, hetzelfde dat de citaatsyntaxis gebruikt:
Ten derde rauwe HTML, alle zes varianten in één keer (één-op-één met de .callout-regels van base.css):
.callout-class is precies dit.§2.2Wiskunde
Inline-formules staan gewoon in de tekst: de optische diepte leest als . Display-wiskunde gebruikt de drieregelige vorm ($$ op eigen regels) — de poortwachter wijst de éénregelige vorm af, die anders geruisloos als kleine inline-formule zou renderen:
De formulegrond is met opzet een ander papier dan dat van de lopende tekst, en wisselt mee met het thema. Escape trouwens dollarprijzen in lopende tekst: deze koffie kost $3.
§3.1Codeframes
Een codeblok met title="…" krijgt een titelbalk met de bestandsnaam; de kopieerknop in de hoek is site-breed. Regelannotaties [!code ++] / [!code --] renderen als diff-gronden:
def build_pipeline(opts):
plugins = [remark_math]
plugins = [remark_gemoji, remark_math]
return assemble(plugins, guard=opts.guard)Een frame met de markering collapse begint ingevouwen en neemt pas ruimte in zodra je het opent — precies goed voor lange configuratiebestanden:
inkstone.example.yamlExpandCollapse
site:
markdown:
numbering: chapters
math: true
codeFrame: true
mermaid: true
callouts: true
wikilinks: true
styles:
- astro-inkstone/styles/tokens.css
- astro-inkstone/styles/base.cssDe highlighting voor beide thema's komt van shiki, dat beide kleursets tegelijk uitschrijft; base.css kiest er op één plek één via data-theme — geen touwtrekken om specificiteit.
§3.2Mermaid-diagrammen
Een ```mermaid-blok laat bij het bouwen alleen een plaatshouder achter; de renderer wordt dynamisch geladen, uitsluitend op pagina's die een diagram dragen (pagina's zonder betalen niets), en rendert opnieuw wanneer het thema omschakelt:
flowchart LR A["astro-inkbrush<br/>engine: bewerken / dialect / poortwachter"] --> C["jouw site<br/>identiteit / routing / deploy"] B["astro-inkstone<br/>papier: tokens / stijlen / pipeline"] --> C A -. één gedeeld dialect .-> B
§3.3GFM-extra's
Taaklijsten en voetnoten liften mee met GFM:
- tokens geïmporteerd
- base.css geïmporteerd
- identiteitspalet overschreven
Een bewering die een bron verdient, krijgt een voetnoot.1
§4.1Wat de poortwachter op deze pagina afwijst
Dat deze pagina bouwt, is zelf het bewijs dat alles hierboven welgevormd is. De volgende schrijfwijzen zouden de build ter plekke laten stranden (probeer er één, dan npm run build):
- een nadrukmarkering die geen paar kan vormen, zoals een
**die aan het eind van een regel open blijft staan; - éénregelig
$$x$$(gebruik de drieregelige vorm); - handgenummerde koppen — de kop van deze sectie schrijven als
## 9. Wat de poortwachter…zou botsen met de nummering die de build zelf aanbrengt, en wordt aangemerkt; - MDX dat je proza-accolades evalueert:
{0,1,2,3}zou als alleen3renderen, dus de poortwachter eist de ge-escapete vorm {0,1,2,3}; - een formule die KaTeX niet kan renderen (de poortwachter rendert elke formule opnieuw in strikte modus, in plaats van rode fouttekst te laten uitvaren).
Footnotes
-
Voetnoten renderen onderaan de pagina met teruglinks, opgemaakt door de inhoudslaag. ↩