diff --git a/README.md b/README.md
index f751843a..8a1ff6f9 100644
--- a/README.md
+++ b/README.md
@@ -120,7 +120,7 @@ Format in place:
Pipe through stdin (for editor integration):
- cat draft.org | snapper --format org
+ cat draft.org | snapper --native --format org
The CLI uses pandoc (auto FFI, then CLI) when an FFI writer or `pandoc` on `PATH` is available.
Otherwise it keeps the native line parsers (no error).
@@ -226,8 +226,8 @@ Configuration guide (org source in-tree): `docs/orgmode/howto/mcp-integration.or
| Plaintext |
-everything else |
-(none; all text treated as prose) |
+.txt |
+(none; all text treated as prose). Unknown extensions are refused unless --format is set |
@@ -313,7 +313,7 @@ The WebAssembly add-in source and sideloading instructions live in `editors/word
Auto-format on commit, transparent to collaborators:
- git config filter.snapper.clean "snapper --format org"
+ git config filter.snapper.clean "snapper --native --format org"
git config filter.snapper.smudge cat
Then add to `.gitattributes`:
diff --git a/docs/locale/is/LC_MESSAGES/changelog.po b/docs/locale/is/LC_MESSAGES/changelog.po
index 548b6df4..6322dbd8 100644
--- a/docs/locale/is/LC_MESSAGES/changelog.po
+++ b/docs/locale/is/LC_MESSAGES/changelog.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:14-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: is \n"
@@ -42,105 +42,653 @@ msgstr ""
msgid "Unreleased (main)"
msgstr ""
-#: ../../../CHANGELOG.md:6 ../../../CHANGELOG.md:16 ../../../CHANGELOG.md:40
-#: ../../../CHANGELOG.md:67 ../../../CHANGELOG.md:89 ../../../CHANGELOG.md:106
-#: ../../../CHANGELOG.md:122 ../../../CHANGELOG.md:137
-#: ../../../CHANGELOG.md:147 ../../../CHANGELOG.md:153
+#: ../../../CHANGELOG.md:9
+msgid "v0.11.2 - 2026-09-11"
+msgstr ""
+
+#: ../../../CHANGELOG.md:10 ../../../CHANGELOG.md:136 ../../../CHANGELOG.md:154
+#: ../../../CHANGELOG.md:178 ../../../CHANGELOG.md:205
+#: ../../../CHANGELOG.md:227 ../../../CHANGELOG.md:244
+#: ../../../CHANGELOG.md:260 ../../../CHANGELOG.md:275
+#: ../../../CHANGELOG.md:285 ../../../CHANGELOG.md:291
msgid "Bug Fixes"
msgstr ""
-#: ../../../CHANGELOG.md:7
+#: ../../../CHANGELOG.md:11
+msgid "(**latex**) treat sagetex sageverbatim family as code (#301)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:12
+msgid "(**latex**) treat filecontentsdef leftover sibling envs as code (#300)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:13
+msgid "(**latex**) treat fvextra VerbatimBuffer as code (#296)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:14
+msgid "(**latex**) treat fvextra VerbEnv as code (#293) (#297)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:15
+msgid "(**latex**) treat filecontentsdef env as code (#295)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:16
+msgid "(**latex**) treat tcolorbox verbatim write envs as code (#290)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:17
+msgid "(**latex**) treat pythontex pylab envs as verbatim (#278) (#289)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:18
+msgid "(**latex**) treat moreverb listing envs as code (#288)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:19
+msgid "(**latex**) treat pythontex sympy envs as verbatim (#277) (#287)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:20
+msgid "(**latex**) treat pythontex starred py envs as verbatim (#276) (#286)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:21
+msgid "(**latex**) treat minted-star env as code (#284)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:22
+msgid "(**latex**) tokenize fancyvrb SaveVerb like Verb (#275) (#283)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:23
+msgid "(**latex**) treat pythontex pygments env as verbatim (#282)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:24
+msgid "(**latex**) treat pythontex pyblock pyverbatim pyconsole as code (#257)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:25
+msgid "(**latex**) treat moreverb verbatimtab as code (#256)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:26
+msgid "(**latex**) treat fvextra VerbatimWrite as code (#255)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:27
+msgid "(**latex**) treat tcolorbox tcblisting-star as code (#254)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:28
+msgid "(**latex**) tokenize fancyvrb Verb and Verb* like verb (#253)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:29
+msgid "(**latex**) tokenize minted mintinline and mint like lstinline (#252)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:30
+msgid "(**latex**) treat fancyvrb Verbatim-star envs as code (#251)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:31
+msgid "(**latex**) treat spverbatim and spverb as verbatim (#242)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:32
+msgid "(**latex**) treat listings lstlisting* as code (#238)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:33
msgid ""
-"(**sentence**) a period immediately before markup closers only starts a new "
-"sentence when the next token is a capital letter (or a quote then a "
-"capital), so plaintext `.`` \"` is not split"
+"(**latex**) treat alltt as code so listing bodies do not reflow as prose "
+"(#236)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:34
+msgid "(**latex**) treat fancyvrb SaveVerbatim and VerbatimOut as code (#224)"
msgstr ""
-#: ../../../CHANGELOG.md:8
+#: ../../../CHANGELOG.md:35
+msgid "(**latex**) treat fancyvrb BVerbatim and LVerbatim as code (#223)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:36
msgid ""
-"(**rst**) list continuation paragraphs after a blank keep their hanging "
-"indent, so a two-space second sentence is not outdented to column 0"
+"(**latex**) treat IEEEeqnarray xltabular and math-star as structure (#187)"
msgstr ""
-#: ../../../CHANGELOG.md:9
+#: ../../../CHANGELOG.md:37
+msgid ""
+"(**latex**) treat NiceTabular listabla and spreadtab as structure (#188)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:38
+msgid "(**latex**) reflow figure and table caption long arguments (#156)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:39
+msgid "(**latex**) treat tikzcd axis and pgfpicture as structure (#152)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:40
+msgid "(**latex**) treat optional section short title as Structure (#150)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:41
+msgid "(**latex**) treat Verbatim boxedverbatim and tcblisting as code (#147)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:42
+msgid "(**latex**) treat mid-line display math opener as Structure (#124)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:43
+msgid "(**latex**) keep comment env and iffalse as raw (#116)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:44
+msgid "(**latex**) treat dollar-dollar display math as Structure (#115)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:45
msgid ""
-"(**rst**) definition lists (flush term plus indented definition) stay "
-"structure, so the term is not glued onto the definition line"
+"(**latex**) treat tree-sitter and latexindent math/table envs as structure "
+"(#114)"
msgstr ""
-#: ../../../CHANGELOG.md:10
+#: ../../../CHANGELOG.md:46
+msgid "(**latex**) treat filecontents and trivia envs as code (#113)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:47
+msgid "(**latex**) hang enumerate item continuation sentences (#78)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:48
msgid ""
-"(**rst**) simple tables (`===== =====` column borders) stay structure, so "
-"header and body rows are not glued onto one line"
+"(**markdown**) treat dest-on-next-line link references as Structure (#202)"
msgstr ""
-#: ../../../CHANGELOG.md:11
+#: ../../../CHANGELOG.md:49
msgid ""
-"(**ci**) `scripts/install_cargo_dist.sh` hashes with `shasum`/`openssl` when "
-"`sha256sum` is missing and finds `dist.exe` at the zip root (Windows cargo-"
-"dist layout)"
+"(**markdown**) treat link-reference and footnote definitions as Structure "
+"(#190)"
msgstr ""
-#: ../../../CHANGELOG.md:15
+#: ../../../CHANGELOG.md:50
+msgid "(**markdown**) treat 0-3 space ATX headings as Structure (#189)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:51
+msgid "(**markdown**) treat CommonMark > with optional space as a quote (#155)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:52
+msgid "(**markdown**) treat CommonMark thematic breaks as Structure (#149)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:53
+msgid ""
+"(**markdown**) keep GFM tables without flanking pipes as structure (#140)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:54
+msgid "(**markdown**) keep list items open across blank indent (#137)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:55
+msgid "(**markdown**) treat $$ display math as Structure (#123)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:56
+msgid "(**markdown**) treat CommonMark HTML blocks as Structure (#122)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:57
+msgid "(**markdown**) treat CommonMark indented code as Code (#121)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:58
+msgid "(**markdown**) treat quoted fences as Code (#119)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:59
+msgid "(**md**) treat ordered start != 1 as setext title text (#271)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:60
+msgid ""
+"(**md**) reject list setext underlines shallower than the open item hang "
+"(#270)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:61
+msgid ""
+"(**md**) count every quote marker so matching > > setext promotes (#269)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:62
+msgid "(**md**) do not treat 4-space > - as a quoted list opener (#268)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:63
+msgid "(**md**) count nested quote markers after 0-3 spaces (#267)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:64
+msgid ""
+"(**md**) reject list setext underlines shallower than the item hang (#265)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:65
+msgid "(**md**) promote only the open paragraph for setext titles (#228)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:66
+msgid "(**md**) keep definition list terms and : markers as structure (#225)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:67
+msgid "(**md**) keep GFM alert type markers as structure (#222)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:68
+msgid ""
+"(**md**) close YAML front matter on ... and keep blank --- as a break (#217)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:69
+msgid "(**md**) cap ordered list markers at 9 digits (#191)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:70
+msgid "(**md**) keep same-line 0. A. opener with its sentence (#184)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:71
+msgid "(**md**) keep sentence break after punct inside link tails (#201)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:72
+msgid "(**org**) keep two-sentence verse lines as one physical line (#285)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:73
+msgid "(**org**) keep timestamps atomic across interior punctuation (#264)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:74
+msgid "(**org**) keep inline src_ and call_ atomic (#240)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:75
+msgid "(**org**) treat \\\\ at EOL as an org-element line break (#239)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:76
+msgid "(**org**) keep inline footnote references atomic (#237)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:77
+msgid "(**org**) keep macros atomic across interior punctuation (#229)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:78
+msgid "(**org**) keep radio and angle targets atomic (#226)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:79
+msgid "(**org**) hang and reflow #+CAPTION values (#221)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:80
+msgid "(**org**) treat footnote definitions as hung prose (#199)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:81
+msgid "(**org**) reflow special-block interiors as prose (#197)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:82
+msgid "(**org**) stop file: token swallowing sentence punct (#185)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:83
+msgid "(**org**) treat #+BEGIN: dynamic blocks as Structure (#178) (#195)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:84
+msgid "(**org**) require space or EOL after hash comments (#194)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:85
+msgid "(**org**) treat [cite...] as an atomic inline token (#153)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:86
+msgid "(**org**) treat indented star lists as list items (#148)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:87
+msgid "(**org**) treat planning and clock lines as Structure (#145)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:88
+msgid "(**org**) classify same-line display math and latex env (#141)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:89
+msgid "(**org**) treat quote/verse/center as structure plus inner prose (#139)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:90
+msgid "(**org**) classify drawers, fixed-width, and rules (#128)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:91
+msgid "(**org**) treat $$ display math as Structure (#120)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:92
+msgid "(**org**) close greater blocks by matching NAME (#117)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:93
+msgid "(**reflow**) hang RST enumerated item continuations (#74)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:94
+msgid "(**rst**) keep substitution references atomic (#241)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:95
+msgid "(**rst**) hang and reflow admonition and figure bodies (#219)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:96
+msgid ""
+"(**rst**) keep substitution references out of leftover table rows (#218)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:97
+msgid "(**rst**) keep consecutive Jinja statements on their own lines (#216)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:98
+msgid "(**rst**) treat footnotes and citations as hung prose (#193)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:99
+msgid "(**rst**) keep two-space list hang inside open inline literals (#164)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:100
+msgid "(**rst**) keep line blocks out of the grid-table arm (#192)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:101
+msgid "(**rst**) keep two-space list hang inside open quotes (#160)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:102
+msgid "(**rst**) blank closes comments so later indent is a hung quote (#198)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:103
+msgid "(**rst**) treat suffix role closer as sentence end (#183)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:104
+msgid "(**rst**) keep compact list-like prose as one paragraph (#163)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:105
+msgid "(**rst**) keep two-space bullet marker hang width (#162)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:106
+msgid "(**rst**) keep definition hang after nested directives (#165)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:107
+msgid "(**rst**) keep two-space list hang inside open parentheses (#161)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:108
+msgid "(**rst**) keep nested list continuation hang at inner width (#154)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:109
+msgid "(**rst**) keep two-space list hang after abbreviations (#158)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:110
+msgid "(**rst**) keep over-indented list continuation as a definition (#159)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:111
+msgid "(**rst**) hang list sentences after a :role:` continuation (#157)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:112
+msgid ""
+"(**rst**) treat full Docutils adornment charset as section underline (#151)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:113
+msgid "(**rst**) scan simple tables to the matching-width closer (#146)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:114
+msgid "(**rst**) treat anonymous hyperlink targets as structure (#144)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:115
+msgid "(**rst**) treat quoted literal blocks as structure (#142)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:116
+msgid "(**rst**) treat doctest blocks as structure (#138)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:117
+msgid "(**rst**) hang alpha, roman, and paren enumerators (#136)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:118
+msgid "(**rst**) treat option lists as structure plus hung prose (#127)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:119
+msgid "(**rst**) treat role closer as sentence end (#76)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:120
+msgid "(**rst**) keep block quote indent (#75)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:121
+msgid "(**rst**) keep section adornments on their own line (#73)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:122
+msgid "(**rst**) keep two-space code-block bodies indented (#72)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:123
+msgid "(**sentence**) peel shortest closer before quote-capital (#272)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:124
+msgid "(**sentence**) keep markdown reference links atomic (#227)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:125
+msgid ""
+"(**sentence**) split same-line lowercase proper noun after period (#186)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:126
+msgid "(**sentence**) do not split bang inside markdown code (#118)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:127
+msgid "(**sentence**) keep break before lowercase proper noun (#77)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:128
+msgid "Continuous Integration"
+msgstr ""
+
+#: ../../../CHANGELOG.md:129
+msgid "(**docs**) do not serialize PR builds on the pages lock (#200)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:131
+msgid "v0.11.1 - 2026-09-09"
+msgstr ""
+
+#: ../../../CHANGELOG.md:132 ../../../CHANGELOG.md:166
+#: ../../../CHANGELOG.md:216 ../../../CHANGELOG.md:230
+#: ../../../CHANGELOG.md:239 ../../../CHANGELOG.md:268
+msgid "Features"
+msgstr ""
+
+#: ../../../CHANGELOG.md:133
+msgid "(**cli**) default to pandoc when a writer is available (#68)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:134
+msgid "(**pandoc**) keep RST comments and snapper pragmas on write (#67)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:135
+msgid "(**pandoc**) write reflowed AST through pandoc writer (#56)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:137
+msgid "(**ci**) install cargo-dist on Windows and macOS ARM (#42)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:138
+msgid "(**markdown**) keep indented inner fences as code body (#55)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:139
+msgid "(**pandoc**) write in-process when FFI exports a writer (#63)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:140
+msgid ""
+"(**pandoc**) refuse comments and snapper pragmas instead of dropping them "
+"(#62)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:141
+msgid "(**rst**) join compact list hangs into one prose region (#66)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:142
+msgid "(**rst**) keep two-space directive bodies as structure (#54)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:143
+msgid "(**rst**) keep comment bodies as structure (#52)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:144
+msgid "(**rst**) keep list continuation paragraph hang (#51)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:145
+msgid "(**rst**) keep definition lists as structure (#50)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:146
+msgid "(**rst**) keep simple tables as structure (#49)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:147
+msgid "(**sentence**) markup closer-split needs a real next sentence (#53)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:148 ../../../CHANGELOG.md:191
+#: ../../../CHANGELOG.md:232 ../../../CHANGELOG.md:248
+#: ../../../CHANGELOG.md:277
+msgid "Documentation"
+msgstr ""
+
+#: ../../../CHANGELOG.md:149
+msgid "(**i18n**) regenerate gettext catalogs for v0.11 docs (#69)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:150 ../../../CHANGELOG.md:262
+msgid "Tests"
+msgstr ""
+
+#: ../../../CHANGELOG.md:151
+msgid "(**pandoc**) keep wasm and editors on native parsers (#64)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:153
msgid "v0.11.0 - 2026-09-08"
msgstr ""
-#: ../../../CHANGELOG.md:17
+#: ../../../CHANGELOG.md:155
msgid ""
"(**mcp**) `#[tool_handler]` implements `list_tools` / `call_tool`; "
"`initialize` advertises tools and names the server `snapper` instead of the "
"empty `rmcp` default"
msgstr ""
-#: ../../../CHANGELOG.md:18
+#: ../../../CHANGELOG.md:156
msgid ""
"(**vscode**) `vscode-languageclient` is a runtime dependency only, so `vsce "
"package` ships the module the extension `require`s"
msgstr ""
-#: ../../../CHANGELOG.md:19
+#: ../../../CHANGELOG.md:157
msgid ""
"(**vscode**) `out/extension.js` is an esbuild bundle (`vscode` stays "
"external); the VSIX no longer needs `node_modules` at runtime"
msgstr ""
-#: ../../../CHANGELOG.md:20
+#: ../../../CHANGELOG.md:158
msgid ""
"(**ci**) release and nvim workflows install cargo-dist from a sha256-pinned "
"archive and Rust via `dtolnay/rust-toolchain`; they no longer pipe rustup.sh "
"or cargo-dist-installer.sh into `sh`"
msgstr ""
-#: ../../../CHANGELOG.md:21
+#: ../../../CHANGELOG.md:159
msgid ""
"(**sentence**) a period immediately before Markdown/Org closers (`**`, `*`, "
"backticks, `](url)`) is a sentence end, so `**Bold sentence.** Next` splits "
"and a hand break survives the next run"
msgstr ""
-#: ../../../CHANGELOG.md:22
+#: ../../../CHANGELOG.md:160
msgid ""
"(**latex**) `% snapper:no-preamble` and chapter files with no `\\"
"\\begin{document}` / `\\\\documentclass` are body; class and package files "
"stay preamble"
msgstr ""
-#: ../../../CHANGELOG.md:23
+#: ../../../CHANGELOG.md:161
msgid ""
"(**rst**) adjacent `*`, `-`, `+`, `1.`, and `#.` list items stay separate "
"regions, so compact lists are not glued onto one line"
msgstr ""
-#: ../../../CHANGELOG.md:27
+#: ../../../CHANGELOG.md:165
msgid "v0.10.0 - 2026-08-10"
msgstr ""
-#: ../../../CHANGELOG.md:28 ../../../CHANGELOG.md:78 ../../../CHANGELOG.md:92
-#: ../../../CHANGELOG.md:101 ../../../CHANGELOG.md:130
-msgid "Features"
-msgstr ""
-
-#: ../../../CHANGELOG.md:29
+#: ../../../CHANGELOG.md:167
msgid ""
"(**latex**) `[latex].verbatim_envs` / `structure_envs` / `verbatim_commands` "
"in `.snapperrc.toml` add names to the built-in lists (minted/lstlisting/"
@@ -149,7 +697,7 @@ msgid ""
"split. No regex `other:` key"
msgstr ""
-#: ../../../CHANGELOG.md:30
+#: ../../../CHANGELOG.md:168
msgid ""
"(**reflow**) `--clause-breaks` / `clause_breaks` with `max_width = 0` "
"inserts a newline after every independent-clause mark (`,`, `;`, `:`, em "
@@ -159,7 +707,7 @@ msgid ""
"the same mode"
msgstr ""
-#: ../../../CHANGELOG.md:31
+#: ../../../CHANGELOG.md:169
msgid ""
"(**cli** / **check**) `--check --output-format json|sarif` emits 1-indexed "
"`fused` / `wrap` / `long` diagnostics with excerpts; `long` is advisory "
@@ -168,33 +716,33 @@ msgid ""
"`invocations[0].workingDirectory`)"
msgstr ""
-#: ../../../CHANGELOG.md:32
+#: ../../../CHANGELOG.md:170
msgid ""
"(**mcp**) `mcp` is a default feature, so published `snapper` / `snapper-fmt` "
"binaries include the stdio server; agents should call it (or the CLI) "
"instead of applying sembr/skills by hand"
msgstr ""
-#: ../../../CHANGELOG.md:33
+#: ../../../CHANGELOG.md:171
msgid ""
"(**mcp**) `format_text` accepts `clause_breaks`, `range` (`start`/`end`, 1-"
"indexed inclusive), and `max_width` (default 0)"
msgstr ""
-#: ../../../CHANGELOG.md:34
+#: ../../../CHANGELOG.md:172
msgid ""
"(**mcp**) `check_formatting` accepts `clause_breaks` (default false) and "
"returns `would_reformat` identical to CLI `--check`, plus the same line "
"diagnostics"
msgstr ""
-#: ../../../CHANGELOG.md:35
+#: ../../../CHANGELOG.md:173
msgid ""
"(**safety**) native parsers record source byte ranges and splice reflowed "
"prose into the original document; Structure/Code/Blank are input slices"
msgstr ""
-#: ../../../CHANGELOG.md:36
+#: ../../../CHANGELOG.md:174
msgid ""
"(**safety**) `format_text` runs to a byte fixpoint (cap 4, including A/B "
"cycles) or returns the original; a format-local oracle (region-kind + slice "
@@ -202,33 +750,33 @@ msgid ""
"original"
msgstr ""
-#: ../../../CHANGELOG.md:37
+#: ../../../CHANGELOG.md:175
msgid ""
"(**safety**) `format_bytes` refuses invalid UTF-8 with `InvalidUtf8Error`; "
"`--use-pandoc` refuses (`PandocCannotSplice`) because the AST has no source "
"offsets"
msgstr ""
-#: ../../../CHANGELOG.md:38
+#: ../../../CHANGELOG.md:176
msgid ""
"(**safety**) property tests and a `cargo fuzz` target (fixture corpus) drive "
"`format_text` per format with the backstops off"
msgstr ""
-#: ../../../CHANGELOG.md:39
+#: ../../../CHANGELOG.md:177
msgid ""
"(**code-block**) comment reflow copies non-comment lines as original slices; "
"only comment spans are rewritten"
msgstr ""
-#: ../../../CHANGELOG.md:41
+#: ../../../CHANGELOG.md:179
msgid ""
"(**latex**) render oracle and `--check` payloads honor `[latex]` extras, so "
"a configured `\\\\Verb!%!` is not a comment and production backstops no "
"longer revert the file"
msgstr ""
-#: ../../../CHANGELOG.md:42
+#: ../../../CHANGELOG.md:180
msgid ""
"(**latex**) tokenize `\\\\verb` / `\\\\lstinline` (optional `[...]`) before "
"split so inner `%` is not a comment and inner `.!?` do not split; unmatched "
@@ -241,19 +789,19 @@ msgid ""
"`print(\\\"%\\\")` still close"
msgstr ""
-#: ../../../CHANGELOG.md:43
+#: ../../../CHANGELOG.md:181
msgid ""
"(**check**) fused and long run on the parser prose payload, so `1. Hello "
"world.` and `See Fig. 1. % TODO cite` are not false fused"
msgstr ""
-#: ../../../CHANGELOG.md:44
+#: ../../../CHANGELOG.md:182
msgid ""
"(**reflow**) splice keeps the trailing space before a mid-line TeX `%` "
"comment so that line stays one source line"
msgstr ""
-#: ../../../CHANGELOG.md:45
+#: ../../../CHANGELOG.md:183
msgid ""
"(**reflow**) `--max-width` keeps links, images, inline code, autolinks, "
"`$math$`, and Org `[[...]]` on one line (overlong token may sit alone; no "
@@ -269,47 +817,47 @@ msgid ""
"splice does not return the original"
msgstr ""
-#: ../../../CHANGELOG.md:46
+#: ../../../CHANGELOG.md:184
msgid ""
"(**reflow**) list continuation sentences hang at the marker width so Org "
"rejoins the item on reparse; Markdown quotes repeat the `>` prefix (`> "
"One.` / `> Two.`, nested `> >`)"
msgstr ""
-#: ../../../CHANGELOG.md:47
+#: ../../../CHANGELOG.md:185
msgid ""
"(**latex**) a trailing `%` eats the newline (TeX nospace join), so `foo%\\"
"\\nbar` is no longer emitted as `foo% bar` (which comments out `bar`); mid-"
"line `%` comments leave prose"
msgstr ""
-#: ../../../CHANGELOG.md:48
+#: ../../../CHANGELOG.md:186
msgid ""
"(**sentence**) `w.r.t.` is a multi-word abbreviation; `\\\\(...\\\\)` and `$"
"$...$$` stay atomic like `$...$`"
msgstr ""
-#: ../../../CHANGELOG.md:49
+#: ../../../CHANGELOG.md:187
msgid ""
"(**cli**) unknown source extensions (`.rs`, `.py`, no extension) are refused "
"unless `--format` is explicit; `.txt` remains plaintext"
msgstr ""
-#: ../../../CHANGELOG.md:50
+#: ../../../CHANGELOG.md:188
msgid ""
"(**org** / **sentence**) verbatim and inline-code spans pair to the first "
"closer that satisfies Org's border and post rules, so an `=` or `~` inside "
"the span no longer orphans the real closer onto the next line"
msgstr ""
-#: ../../../CHANGELOG.md:51
+#: ../../../CHANGELOG.md:189
msgid ""
"(**sentence**) CommonMark `*`/`**` and GFM `~~` pair by flanking rules, so "
"`**the end. Still bold**` stays one sentence while `**complex**. Equity` may "
"split after the closer"
msgstr ""
-#: ../../../CHANGELOG.md:52
+#: ../../../CHANGELOG.md:190
msgid ""
"(**markdown**) `>` is kept on each reflowed content line (including "
"`max_width` wraps; prefix counts toward width); two-space and backslash hard "
@@ -318,70 +866,65 @@ msgid ""
"(`` still works)"
msgstr ""
-#: ../../../CHANGELOG.md:53 ../../../CHANGELOG.md:94 ../../../CHANGELOG.md:110
-#: ../../../CHANGELOG.md:139
-msgid "Documentation"
-msgstr ""
-
-#: ../../../CHANGELOG.md:54
+#: ../../../CHANGELOG.md:192
msgid ""
"README distinguishes snapper from admk/sembr and sembr/skills; crate "
"keywords include `sembr` and `markdown`"
msgstr ""
-#: ../../../CHANGELOG.md:55
+#: ../../../CHANGELOG.md:193
msgid ""
"(**markdown** / **sentence**) inline code delimited by two or more backticks "
"can contain a shorter backtick run"
msgstr ""
-#: ../../../CHANGELOG.md:56
+#: ../../../CHANGELOG.md:194
msgid ""
"(**code-block**) a block-comment closer inside a string no longer ends the "
"comment; quote-sequence closers (`\"\"\"`) still match naively so Python "
"docstrings reflow"
msgstr ""
-#: ../../../CHANGELOG.md:57
+#: ../../../CHANGELOG.md:195
msgid ""
"(**sentence**) abbreviation merge does not invent a space before LaTeX `~` "
"(so `Eq.~\\ref{}` stays attached once org `~code~` pairing no longer "
"swallows that tilde)"
msgstr ""
-#: ../../../CHANGELOG.md:58
+#: ../../../CHANGELOG.md:196
msgid ""
"(**sentence**) restore wrapped placeholders from the outside in, so a "
"markdown-link regex match that contains a paired-span token cannot leak "
"`\\x00PHn\\x00` into output"
msgstr ""
-#: ../../../CHANGELOG.md:59 ../../../CHANGELOG.md:71 ../../../CHANGELOG.md:81
-#: ../../../CHANGELOG.md:116
+#: ../../../CHANGELOG.md:197 ../../../CHANGELOG.md:209
+#: ../../../CHANGELOG.md:219 ../../../CHANGELOG.md:254
msgid "Notes"
msgstr ""
-#: ../../../CHANGELOG.md:60
+#: ../../../CHANGELOG.md:198
msgid ""
"Native `format_text` refuses `--use-pandoc` (`PandocCannotSplice`); splice "
"needs source offsets the AST does not carry"
msgstr ""
-#: ../../../CHANGELOG.md:61
+#: ../../../CHANGELOG.md:199
msgid ""
"`--clause-breaks` with the default `max_width = 0` is SemBr rule 5 (break at "
"existing whitespace after clause punct); `max_width > 0` still wrap-prefers"
msgstr ""
-#: ../../../CHANGELOG.md:62
+#: ../../../CHANGELOG.md:200
msgid "Published binaries include the MCP server (`mcp` is a default feature)"
msgstr ""
-#: ../../../CHANGELOG.md:66
+#: ../../../CHANGELOG.md:204
msgid "v0.9.1 - 2026-08-04"
msgstr ""
-#: ../../../CHANGELOG.md:68
+#: ../../../CHANGELOG.md:206
msgid ""
"(**reflow**) clause breaks only engage when a sentence exceeds `max_width` "
"and only at whitespace after the punctuation; v0.9.0 split at every clause "
@@ -389,104 +932,104 @@ msgid ""
"em dashes), which inserted spaces into rendered output"
msgstr ""
-#: ../../../CHANGELOG.md:69
+#: ../../../CHANGELOG.md:207
msgid "(**cli**) `--color auto` honors the `NO_COLOR` environment variable"
msgstr ""
-#: ../../../CHANGELOG.md:70
+#: ../../../CHANGELOG.md:208
msgid ""
"(**neural**) nnsplit model loads are serialized process-wide; concurrent "
"first-use construction could read a partially downloaded model"
msgstr ""
-#: ../../../CHANGELOG.md:72
+#: ../../../CHANGELOG.md:210
msgid ""
"v0.9.1 supersedes v0.9.0 on every channel; do not use v0.9.0 with `--clause-"
"breaks`"
msgstr ""
-#: ../../../CHANGELOG.md:73
+#: ../../../CHANGELOG.md:211
msgid ""
"`RELEASING.md` documents the release channels and recovery rules; `scripts/"
"check_release_ready.sh` gates version parity, tag hygiene, and the conda "
"sha256"
msgstr ""
-#: ../../../CHANGELOG.md:77
+#: ../../../CHANGELOG.md:215
msgid "v0.9.0 - 2026-08-04"
msgstr ""
-#: ../../../CHANGELOG.md:79
+#: ../../../CHANGELOG.md:217
msgid ""
"(**cli** / **diff**) global `--color auto|always|never` for top-level `--"
"diff`, `sdiff`, and `git-diff`; shared ANSI styling for headers, hunks, "
"additions, and removals (closes #6)"
msgstr ""
-#: ../../../CHANGELOG.md:80
+#: ../../../CHANGELOG.md:218
msgid ""
"(**reflow**) `--clause-breaks` / `clause_breaks` config: prefer soft breaks "
"after independent-clause punctuation (comma, semicolon, colon, em dash) "
"under `max_width` (closes #7)"
msgstr ""
-#: ../../../CHANGELOG.md:82
+#: ../../../CHANGELOG.md:220
msgid "Subcommand `--no-color` remains as an alias for `--color never`"
msgstr ""
-#: ../../../CHANGELOG.md:83
+#: ../../../CHANGELOG.md:221
msgid "`--color auto` honors the `NO_COLOR` environment variable"
msgstr ""
-#: ../../../CHANGELOG.md:84
+#: ../../../CHANGELOG.md:222
msgid ""
"Clause breaks only apply to sentences that exceed `max_width`, and only at "
"whitespace after the punctuation; tokens such as `1,000`, `10:30`, URLs, and "
"`--flags` never split"
msgstr ""
-#: ../../../CHANGELOG.md:88
+#: ../../../CHANGELOG.md:226
msgid "v0.8.1 - 2026-07-20"
msgstr ""
-#: ../../../CHANGELOG.md:90
+#: ../../../CHANGELOG.md:228
msgid ""
"(**pre-commit**) ship a real `id: snapper` hook (`snapper --in-place`) with "
"extension-based `files` matching; drop leftover SemBr `id`/`entry` and "
"invalid identify type `org`"
msgstr ""
-#: ../../../CHANGELOG.md:91
+#: ../../../CHANGELOG.md:229
msgid ""
"(**lockfile**) CI asserts `Cargo.toml` package version equals the `snapper-"
"fmt` entry in `Cargo.lock` and that `cargo metadata --locked` succeeds "
"(catches the 0.7.9 tag skew)"
msgstr ""
-#: ../../../CHANGELOG.md:93
+#: ../../../CHANGELOG.md:231
msgid ""
"(**cli**) install `snapper-fmt` as a second binary name (same program as "
"`snapper`) so hosts that already own openSUSE's `snapper` can call the "
"formatter without PATH surgery"
msgstr ""
-#: ../../../CHANGELOG.md:95
+#: ../../../CHANGELOG.md:233
msgid ""
"Installation: name collision with openSUSE snapper; prefer `snapper-fmt` on "
"those systems"
msgstr ""
-#: ../../../CHANGELOG.md:96
+#: ../../../CHANGELOG.md:234
msgid ""
"Pre-commit section: which extensions the hook matches and that Rust is "
"required to build it"
msgstr ""
-#: ../../../CHANGELOG.md:100
+#: ../../../CHANGELOG.md:238
msgid "v0.8.0 - 2026-07-20"
msgstr ""
-#: ../../../CHANGELOG.md:102
+#: ../../../CHANGELOG.md:240
msgid ""
"(**pandoc**) optional `--use-pandoc` path: parse with pandoc (CLI JSON or in-"
"process FFI), classify regions from AST node kinds, reflow only prose "
@@ -494,20 +1037,20 @@ msgid ""
"islands) preserved"
msgstr ""
-#: ../../../CHANGELOG.md:103
+#: ../../../CHANGELOG.md:241
msgid ""
"(**pandoc**) `--pandoc-backend auto|ffi|cli` (default auto: prefer warm FFI "
"when available, else CLI); explicit `ffi` fails closed if the library is "
"missing"
msgstr ""
-#: ../../../CHANGELOG.md:104
+#: ../../../CHANGELOG.md:242
msgid ""
"(**pandoc**) content-addressed AST cache (`SNAPPER_PANDOC_CACHE` / "
"`SNAPPER_PANDOC_CACHE_DIR`)"
msgstr ""
-#: ../../../CHANGELOG.md:105
+#: ../../../CHANGELOG.md:243
msgid ""
"(**pandoc-colink**) opt-in Cargo feature: absorb `libsnapper_pandoc.a` from "
"`native/snapper-pandoc/build-static.sh` (`ghc -staticlib`) into one "
@@ -515,43 +1058,43 @@ msgid ""
"graph; **not** enabled by default (default/cargo-dist remain GHC-free)"
msgstr ""
-#: ../../../CHANGELOG.md:107
+#: ../../../CHANGELOG.md:245
msgid ""
"(**org** / **latex**) keep full headline and sectioning lines as Structure "
"(do not reflow multi-sentence titles; no orphan title lines without stars / "
"mid-brace splits)"
msgstr ""
-#: ../../../CHANGELOG.md:108
+#: ../../../CHANGELOG.md:246
msgid ""
"(**markdown**) keep setext headings (title + `=`/`-` underline) as Structure "
"so multi-sentence titles do not reflow and underlines are not glued onto "
"title text"
msgstr ""
-#: ../../../CHANGELOG.md:109
+#: ../../../CHANGELOG.md:247
msgid ""
"(**ci**) exclude `pandoc-colink` from WASM feature matrix (`--all-features` "
"panic without static archive); colink still fail-closed in main CI"
msgstr ""
-#: ../../../CHANGELOG.md:111
+#: ../../../CHANGELOG.md:249
msgid ""
"Native flib README: static archive vs shared dlopen; howto orgmode pandoc "
"backend; UPX is optional packer only (not used in release)"
msgstr ""
-#: ../../../CHANGELOG.md:112
+#: ../../../CHANGELOG.md:250
msgid ""
"Formats reference: Org headlines, LaTeX sectioning, Markdown ATX and setext "
"headings are full Structure lines"
msgstr ""
-#: ../../../CHANGELOG.md:113 ../../../CHANGELOG.md:141
+#: ../../../CHANGELOG.md:251 ../../../CHANGELOG.md:279
msgid "Tests / CI"
msgstr ""
-#: ../../../CHANGELOG.md:114
+#: ../../../CHANGELOG.md:252
msgid ""
"AST fixture tests (JSON on disk) run without pandoc binary; live CLI/FFI "
"parity tests skip cleanly when neither is installed; CI asserts colink "
@@ -559,112 +1102,108 @@ msgid ""
"without GHC"
msgstr ""
-#: ../../../CHANGELOG.md:115
+#: ../../../CHANGELOG.md:253
msgid ""
"Unit and format_text coverage for multi-sentence Org headlines, LaTeX "
"`\\section{...}` titles, and Markdown setext"
msgstr ""
-#: ../../../CHANGELOG.md:117
+#: ../../../CHANGELOG.md:255
msgid ""
"Plain release binaries stay ~16 MiB class; static-colink builds are larger "
"(~64 MiB class on linux) and optional for multi-format in-process use"
msgstr ""
-#: ../../../CHANGELOG.md:121
+#: ../../../CHANGELOG.md:259
msgid "v0.7.9 - 2026-07-07"
msgstr ""
-#: ../../../CHANGELOG.md:123
+#: ../../../CHANGELOG.md:261
msgid ""
"(**markdown**) keep ATX headings as a single Structure line (do not reflow "
"titles after `### 1.` or mid-heading periods; fixes orphan `### N.` lines, "
"snapper-25kc)"
msgstr ""
-#: ../../../CHANGELOG.md:124
-msgid "Tests"
-msgstr ""
-
-#: ../../../CHANGELOG.md:125
+#: ../../../CHANGELOG.md:263
msgid ""
"Unit and integration coverage for numbered ATX headings with inline code"
msgstr ""
-#: ../../../CHANGELOG.md:129
+#: ../../../CHANGELOG.md:267
msgid "v0.7.8 - 2026-06-27"
msgstr ""
-#: ../../../CHANGELOG.md:131
+#: ../../../CHANGELOG.md:269
msgid ""
"(**wasm** / **word**) local `wasm-pack` build of `packages/snapper-wasm` and "
"Word add-in `dist/` for sideload; VS Code extension published **0.7.8** to "
"Marketplace"
msgstr ""
-#: ../../../CHANGELOG.md:132
+#: ../../../CHANGELOG.md:270
msgid ""
"(**parser**) `Region::Code` for Org/Markdown/LaTeX/RST source blocks; `[code."
"]` comment reflow and optional `--format-code`"
msgstr ""
-#: ../../../CHANGELOG.md:133
+#: ../../../CHANGELOG.md:271
msgid ""
"(**sentence**) delimiter-span post-pipeline (quotes, parens, brackets); "
"shared by rules and `--neural`"
msgstr ""
-#: ../../../CHANGELOG.md:134
+#: ../../../CHANGELOG.md:272
msgid ""
"(**sentence**) neural path protects inline tokens (links, emphasis, …) "
"before the model, then restores and refines"
msgstr ""
-#: ../../../CHANGELOG.md:135
+#: ../../../CHANGELOG.md:273
msgid ""
"(**cli**) multi-file splitter reuse (one build per format/lang/neural/extras "
"key); parallel multi-file always"
msgstr ""
-#: ../../../CHANGELOG.md:136
+#: ../../../CHANGELOG.md:274
msgid ""
"(**reflow**) parallel region reflow for large documents (`cli` feature, ≥32 "
"regions)"
msgstr ""
-#: ../../../CHANGELOG.md:138
+#: ../../../CHANGELOG.md:276
msgid ""
"(**org** / **sentence**) trailing `>` on headings; org emphasis not pseudo-"
"headlines; space-safe segment glue after neural cuts"
msgstr ""
-#: ../../../CHANGELOG.md:140
+#: ../../../CHANGELOG.md:278
msgid ""
"Span policy in formats reference; README/pre-commit pin **v0.7.8**; MCP/site/"
"VS Code code-block accuracy"
msgstr ""
-#: ../../../CHANGELOG.md:142
+#: ../../../CHANGELOG.md:280
msgid ""
"`sentence_delim_props` matrix + proptest; multi-format and code-comment span "
"tests; CI dogfood `snapper --check` on docs/examples"
msgstr ""
-#: ../../../CHANGELOG.md:146
+#: ../../../CHANGELOG.md:284
msgid "v0.7.7 - 2026-04-11"
msgstr ""
-#: ../../../CHANGELOG.md:148
+#: ../../../CHANGELOG.md:286
msgid ""
"(**config**) honor project config across cli and watch - (5f5179d) - "
"*HaoZeke*"
msgstr ""
-#: ../../../CHANGELOG.md:152
+#: ../../../CHANGELOG.md:290
msgid "v0.7.6 - 2026-04-09"
msgstr ""
-#: ../../../CHANGELOG.md:154
+#: ../../../CHANGELOG.md:292
msgid ""
"(**markdown**) join list-item continuation lines before sentence splitting - "
"(8e45528) - *HaoZeke*"
diff --git a/docs/locale/is/LC_MESSAGES/contributing/index.po b/docs/locale/is/LC_MESSAGES/contributing/index.po
index 4fc912cc..7785614c 100644
--- a/docs/locale/is/LC_MESSAGES/contributing/index.po
+++ b/docs/locale/is/LC_MESSAGES/contributing/index.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: is \n"
@@ -51,106 +51,121 @@ msgstr "Sjálfsprófun (staðfesta að öll skjöl standist sníðmótun):"
msgid "Project structure"
msgstr "Verkefnisbygging"
-#: ../../source/contributing/index.rst:99
+#: ../../source/contributing/index.rst:100
msgid "Commit conventions"
msgstr "Innleggjavenjur"
-#: ../../source/contributing/index.rst:101
+#: ../../source/contributing/index.rst:102
msgid ""
"Commits follow conventional commits, managed by ``cocogitto`` (``cog``):"
msgstr "Innlegg fylgja stöðluðum innleggjum, stýrt af ``cocogitto`` (``cog``):"
-#: ../../source/contributing/index.rst:103
+#: ../../source/contributing/index.rst:104
msgid "``feat:``"
msgstr "``feat:``"
-#: ../../source/contributing/index.rst:104
+#: ../../source/contributing/index.rst:105
msgid "new features"
msgstr "nýir eiginleikar"
-#: ../../source/contributing/index.rst:106
+#: ../../source/contributing/index.rst:107
msgid "``fix:``"
msgstr "``fix:``"
-#: ../../source/contributing/index.rst:107
+#: ../../source/contributing/index.rst:108
msgid "bug fixes"
msgstr "villuleiðréttingar"
-#: ../../source/contributing/index.rst:109
+#: ../../source/contributing/index.rst:110
msgid "``doc:``"
msgstr "``doc:``"
-#: ../../source/contributing/index.rst:110
+#: ../../source/contributing/index.rst:111
msgid "documentation changes"
msgstr "breytingar á skjölun"
-#: ../../source/contributing/index.rst:112
+#: ../../source/contributing/index.rst:113
msgid "``chore:``"
msgstr "``chore:``"
-#: ../../source/contributing/index.rst:113
+#: ../../source/contributing/index.rst:114
msgid "maintenance, dependency bumps"
msgstr "viðhald, uppfærsla á háðum pökkum"
-#: ../../source/contributing/index.rst:115
+#: ../../source/contributing/index.rst:116
msgid "``tst:``"
msgstr "``tst:``"
-#: ../../source/contributing/index.rst:116
+#: ../../source/contributing/index.rst:117
msgid "test changes"
msgstr "breytingar á prófunum"
-#: ../../source/contributing/index.rst:118
+#: ../../source/contributing/index.rst:119
msgid "``bld:``"
msgstr "``bld:``"
-#: ../../source/contributing/index.rst:119
+#: ../../source/contributing/index.rst:120
msgid "build system changes"
msgstr "breytingar á byggingarkerfi"
-#: ../../source/contributing/index.rst:124
+#: ../../source/contributing/index.rst:125
msgid "Building documentation"
msgstr "Byggja skjölun"
-#: ../../source/contributing/index.rst:130
+#: ../../source/contributing/index.rst:131
+msgid ""
+"That exports org to RST, refreshes the Icelandic and Polish gettext "
+"catalogs, and builds HTML for ``en``, ``is``, and ``pl``. RST, ``.pot``, "
+"``.mo``, and ``docs/build/`` are gitignored. When org reference text changes "
+"(especially ``formats.org``), commit the updated ``docs/locale/**/*.po`` "
+"files so the next Pages build does not keep v0.11 msgids."
+msgstr ""
+"Það flytur org yfir í RST, endurnýjar íslensku og pólsku "
+"gettext-skrárnar og byggir HTML fyrir ``en``, ``is`` og ``pl``. RST, "
+"``.pot``, ``.mo`` og ``docs/build/`` eru hunsuð af git. Þegar "
+"org-tilvísunartexti breytist (sérstaklega ``formats.org``) skaltu "
+"committa uppfærðu ``docs/locale/**/*.po`` skrárnar svo næsta "
+"Pages-bygging haldi ekki v0.11 msgid-um."
+
+#: ../../source/contributing/index.rst:135
msgid "Or manually:"
msgstr "Eða handvirkt:"
-#: ../../source/contributing/index.rst:140
+#: ../../source/contributing/index.rst:147
msgid "Adding a new format parser"
msgstr "Bæta við nýjum sniðþáttara"
-#: ../../source/contributing/index.rst:142
+#: ../../source/contributing/index.rst:149
msgid ""
"Create ``src/parser/yourformat.rs`` implementing the ``FormatParser`` trait"
msgstr ""
"Búðu til ``src/parser/yourformat.rs`` sem útfærir ``FormatParser`` "
"eiginleikann"
-#: ../../source/contributing/index.rst:144
+#: ../../source/contributing/index.rst:151
msgid "Add the variant to ``Format`` enum in ``src/format.rs``"
msgstr "Bættu afbrigðinu við ``Format`` upptalninguna í ``src/format.rs``"
-#: ../../source/contributing/index.rst:146
+#: ../../source/contributing/index.rst:153
msgid "Wire it into ``format_text()`` in ``src/lib.rs``"
msgstr "Tengdu það inn í ``format_text()`` í ``src/lib.rs``"
-#: ../../source/contributing/index.rst:148
+#: ../../source/contributing/index.rst:155
#, fuzzy
msgid "Add extension mapping in ``Format::recognized_from_extension()``"
msgstr "Bættu við skráarendingarvörpun í ``Format::from_path()``"
-#: ../../source/contributing/index.rst:150
+#: ../../source/contributing/index.rst:157
msgid ""
"Add fixture pair in ``tests/fixtures/`` (``sample.fmt`` + ``expected.fmt``)"
msgstr ""
"Bættu við prófunargögnum í ``tests/fixtures/`` (``sample.fmt`` + "
"``expected.fmt``)"
-#: ../../source/contributing/index.rst:152
+#: ../../source/contributing/index.rst:159
msgid "Add integration tests in ``tests/integration.rs``"
msgstr "Bættu við samþættingarprófunum í ``tests/integration.rs``"
-#: ../../source/contributing/index.rst:154
+#: ../../source/contributing/index.rst:161
msgid "Document in ``docs/orgmode/reference/formats.org``"
msgstr "Skjalaðu í ``docs/orgmode/reference/formats.org``"
diff --git a/docs/locale/is/LC_MESSAGES/reference/abbreviations.po b/docs/locale/is/LC_MESSAGES/reference/abbreviations.po
index 8aa08d98..24c7edf8 100644
--- a/docs/locale/is/LC_MESSAGES/reference/abbreviations.po
+++ b/docs/locale/is/LC_MESSAGES/reference/abbreviations.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: is \n"
@@ -203,25 +203,54 @@ msgid "Org links: ``[[https://example.com][Ex. Site]]``"
msgstr "Org tenglar: ``[[https://example.com][Ex. Site]]``"
#: ../../source/reference/abbreviations.rst:131
-msgid "LaTeX math: ``$x = 3.14$``"
-msgstr "LaTeX stærðfræði: ``$x = 3.14$``"
+msgid "Org macros: ``{{{cite(Smith. 2020)}}}``, ``{{{title}}}``"
+msgstr ""
#: ../../source/reference/abbreviations.rst:133
-msgid "LaTeX commands: ``\\cite{smith.2024}``"
-msgstr "LaTeX skipanir: ``\\cite{smith.2024}``"
+msgid ""
+"Org radio / angle targets: ``<<>>``, ``<>``"
+msgstr ""
#: ../../source/reference/abbreviations.rst:135
-msgid "Markdown links: ``[Example Inc.](url)``"
-msgstr "Markdown tenglar: ``[Example Inc.](url)``"
+msgid ""
+"Org inline footnotes: ``[fn:: the Fourier. transform]``, ``[fn:note: the "
+"Fourier. transform]``"
+msgstr ""
#: ../../source/reference/abbreviations.rst:137
+msgid ""
+"RST substitution references: ``|fig. 1|``, ``|version|``, ``|name|_``, ``|"
+"name|__``"
+msgstr ""
+
+#: ../../source/reference/abbreviations.rst:139
+msgid ""
+"LaTeX math: ``$x = 3.14$``, ``\\( x = 1. \\)``, ``\\(\\alpha. \\beta\\)``"
+msgstr ""
+
+#: ../../source/reference/abbreviations.rst:141
+#, fuzzy
+msgid "LaTeX commands: ``\\cite{smith.2024}``, ``\\sqrt[2]{a. b}``"
+msgstr "LaTeX skipanir: ``\\cite{smith.2024}``"
+
+#: ../../source/reference/abbreviations.rst:143
+#, fuzzy
+msgid ""
+"Markdown links: ``[Example Inc.](url)``, ``[the Fourier. transform][wiki]``"
+msgstr "Markdown tenglar: ``[Example Inc.](url)``"
+
+#: ../../source/reference/abbreviations.rst:145
msgid "Inline code: ``~std.io.Read~``,"
msgstr "Innleiður kóði: ``~std.io.Read~``,"
-#: ../../source/reference/abbreviations.rst:139
+#: ../../source/reference/abbreviations.rst:147
msgid ""
"These tokens get replaced with safe placeholders before sentence detection "
"and restored afterward."
msgstr ""
"Þessi tákn eru skipt út fyrir örugg staðhaldstákn áður en setningargreining "
"fer fram og endurheimast síðan."
+
+#~ msgid "LaTeX math: ``$x = 3.14$``"
+#~ msgstr "LaTeX stærðfræði: ``$x = 3.14$``"
diff --git a/docs/locale/is/LC_MESSAGES/reference/config.po b/docs/locale/is/LC_MESSAGES/reference/config.po
index a7d315ea..41872fc6 100644
--- a/docs/locale/is/LC_MESSAGES/reference/config.po
+++ b/docs/locale/is/LC_MESSAGES/reference/config.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: is \n"
@@ -192,43 +192,175 @@ msgstr ""
#: ../../source/reference/config.rst:171
msgid ""
"String array of environment names treated like ``minted`` / ``lstlisting`` / "
-"``verbatim`` (``Region::Code``, no reflow). Built-in: ``minted``, "
-"``lstlisting``, ``verbatim``. Adding ``Verbatim`` (fancyvrb) stops reflow of "
-"that environment."
+"``verbatim`` / ``comment`` (``Region::Code``, no reflow). Built-in: "
+"``minted`` / ``minted*``, ``lstlisting`` / ``lstlisting*``, ``verbatim``, "
+"``comment``, Overleaf ``Verbatim`` / ``boxedverbatim`` / ``tcblisting`` / "
+"``tcblisting*`` / ``codeexample`` / ``tcbverbatimwrite`` / "
+"``tcbwritetemp`` / leftover ``tcboutputlisting`` / ``tcbexternal`` / "
+"``dispExample`` / ``dispExample*`` / ``dispListing`` / ``dispListing*``, "
+"fancyvrb ``BVerbatim`` / ``BVerbatim*`` / ``LVerbatim`` / ``LVerbatim*`` / "
+"``Verbatim*`` / ``SaveVerbatim`` / ``VerbatimOut`` / fvextra "
+"``VerbatimWrite`` / ``VerbatimBuffer`` / ``VerbEnv``, verbments.sty "
+"``pyglist``, texments.sty / pygmentex.sty ``pygmented``, moreverb "
+"``verbatimtab`` / ``verbatimwrite`` / ``listing`` / ``listingcont`` / "
+"``listing*`` / ``listingcont*``, leftover sverb.sty ``verbwrite`` / "
+"``ignore`` / ``demo`` / ``demo*``, standard ``alltt``, spverbatim.sty "
+"``spverbatim``, piton.sty ``Piton``, latexindent ``filecontents`` / "
+"``filecontents*``, filecontentsdef.sty ``filecontentsdef`` / "
+"``filecontentsgdef`` / ``filecontentsdefmacro`` / "
+"``filecontentsgdefmacro`` / ``filecontentshere`` and starred twins "
+"``filecontentsdef*`` / ``filecontentsgdef*`` / ``filecontentshere*``, "
+"scontents.sty ``scontents`` / ``verbatimsc``, tree-sitter-latex "
+"``sagesilent`` / ``sageblock``, sagetex.sty ``sageverbatim`` / "
+"``sageexample`` / ``sagecommandline``, pythontex.sty ``pycode`` / "
+"``pycode*`` / ``pyblock`` / ``pyblock*`` / ``pyverbatim`` / "
+"``pyverbatim*`` / ``pyconsole`` / ``pyconsole*`` / ``pygments`` / "
+"``sympycode`` / ``sympyblock`` / ``sympyverbatim`` / ``sympyconsole`` / "
+"``pylabcode`` / ``pylabblock`` / ``pylabverbatim`` / ``pylabconsole`` and "
+"starred twins, leftover default-family ``pyconcode`` / ``pyconverbatim`` / "
+"``pysub`` / ``pyconsub`` / ``sympyconcode`` / ``sympyconverbatim`` / "
+"``sympysub`` / ``sympyconsub`` / ``pylabconcode`` / ``pylabconverbatim`` / "
+"``pylabsub`` / ``pylabconsub`` / ``pythontexcustomcode``, option-family "
+"``usefamily`` leftovers (``rubycode`` representative; ruby / rb / julia / "
+"juliacon / jl / matlab / octave / bash / sage / rust / rs / R / Rcon / "
+"perl / pl / perlsix / psix / javascript / js), pythonhighlight.sty "
+"``python``, pyluatex.sty ``pythonq`` / ``pythonrepl``, showexpl.sty "
+"``LTXexample``, luamplib.dtx ``mplibcode``, luacode.sty leftover "
+"``luaexec``, and codehigh.sty ``codehigh`` / ``demohigh`` / ``codehigh*`` / "
+"``demohigh*``."
+msgstr ""
+
+#: ../../source/reference/config.rst:175
+msgid "Adding an unlisted name stops reflow of that environment."
msgstr ""
-#: ../../source/reference/config.rst:178
+#: ../../source/reference/config.rst:180
msgid "structure\\ :sub:`envs`\\ (latex)"
msgstr ""
-#: ../../source/reference/config.rst:180
+#: ../../source/reference/config.rst:182
msgid ""
-"String array of environment names treated like ``equation`` / ``figure`` "
+"String array of environment names treated like ``equation`` "
"(``Region::Structure``, no reflow). Built-in: the ``NON_PROSE_ENVS`` list "
-"(equation, align, figure, table, tabular, tikzpicture, and starred variants, "
-"plus the built-in code envs). Adding ``algorithm`` or ``comment`` stops "
-"reflow of those environments."
+"(equation, align, tabular, tikzpicture, and starred variants, plus the built-"
+"in code envs). Figure/table chrome stays Structure; the ``\\caption`` long "
+"argument is Prose. Adding ``algorithm`` stops reflow of that environment."
msgstr ""
-#: ../../source/reference/config.rst:187
+#: ../../source/reference/config.rst:190
msgid "verbatim\\ :sub:`commands`\\ (latex)"
msgstr ""
-#: ../../source/reference/config.rst:189
+#: ../../source/reference/config.rst:192
msgid ""
"String array of extra command names tokenized like the built-in verb command "
"before sentence split. The next character after the name is the delimiter. "
-"Built-in names are ``verb`` and ``lstinline``; ``lstinline`` still accepts "
-"optional ``[...]`` and ``{...}``. Adding ``Verb`` (fancyvrb) keeps that "
-"command's delimited body atomic and treats an inner ``%`` as content, not a "
-"comment."
-msgstr ""
-
-#: ../../source/reference/config.rst:197
+"Built-in names are leftover ``verb`` / ``verb*``, leftover ``lstinline``, "
+"``lstinputlisting``, leftover ``spverb``, leftover ``mintinline``, "
+"``inputminted``, leftover ``mint``, leftover fancyvrb ``Verb`` / ``Verb*`` / "
+"leftover ``SaveVerb`` / leftover ``UseVerb`` / leftover ``UseVerbatim`` / "
+"leftover ``LUseVerbatim`` / leftover ``BUseVerbatim`` / leftover fvextra "
+"``EscVerb`` / leftover fvextra ``VerbatimInsertBuffer`` / "
+"``VerbatimClearBuffer`` / ``InsertBuffer`` / ``IterateBuffer`` / leftover "
+"fancyvrb ``DefineShortVerb`` / ``UndefineShortVerb`` / ``VerbatimInput`` / "
+"``BVerbatimInput`` / ``LVerbatimInput``, piton.sty leftover ``\\piton`` / "
+"``\\PitonInputFile`` / ``\\PitonInputFileT`` / ``\\PitonInputFileF`` / "
+"``\\PitonInputFileTF``, tools/verbatim.sty ``\\verbatiminput``, tcolorbox "
+"``\\tcbinputlisting``, pythontex.sty ``\\inputpy`` / ``\\inputpycon`` / "
+"leftover inline ``\\py`` / ``\\pyc`` / ``\\pys`` / ``\\pyb`` / ``\\pyv`` / "
+"``\\pycon`` and twins / ``\\sympy`` / ``\\pylab`` and twins / leftover "
+"usefamily ``\\ruby`` / ``\\rb`` / ``\\julia`` / ``\\jl`` / ``\\matlab`` / "
+"``\\octave`` / ``\\bash`` / ``\\sage`` / ``\\rust`` / ``\\rs`` / ``\\R`` / "
+"``\\perl`` / ``\\pl`` / ``\\perlsix`` / ``\\psix`` / ``\\javascript`` / "
+"``\\js`` and twins / ``\\inputpygments`` / ``\\pygment`` / leftover "
+"``\\pythontexcustomc``, pythonhighlight.sty ``\\inputpython`` / "
+"``\\inputpythonfile`` / leftover ``\\pyth``, catchfilebetweentags.sty "
+"``\\CatchFileBetweenTags`` / ``\\CatchFileBetweenDelims`` / "
+"``\\ExecuteMetaData``, catchfile.sty leftover ``\\CatchFileDef`` / "
+"``\\CatchFileEdef``, moreverb ``\\listinginput`` / leftover "
+"``\\listingcont`` / leftover ``\\verbatimtabinput`` / "
+"``\\verbatimtabinput*`` / leftover ``\\verbatimwrite`` / "
+"``\\verbatimwrite*``, sagetex ``\\sageinput`` / leftover inline "
+"``\\sageplot`` / ``\\sagestr``, scontents leftover ``\\Scontents`` / "
+"``\\Scontents*`` / ``\\typestored`` / ``\\getstored`` / ``\\mergesc`` / "
+"``\\meaningsc`` / ``\\foreachsc``; ``lstinline`` still accepts optional "
+"``[...]`` and ``{...}``. ``verb`` / ``verb*`` / ``lstinline`` / ``spverb`` "
+"take a delimiter or, for ``lstinline``, optional ``[...]`` then a delimiter "
+"or ``{...}``; following flush prose stays on its own line. ``mintinline`` / "
+"``mint`` take optional ``[...]``, a ``{lang}`` argument, then a delimiter or "
+"``{...}`` body; following flush prose stays on its own line. "
+"``\\inputminted`` takes the same optional ``[...]`` and ``{lang}`` then a "
+"required ``{filename}``; following flush prose stays on its own line. "
+"``SaveVerb`` takes optional ``[...]``, a ``{name}`` argument, then the same "
+"delimiter body as ``Verb``; following flush prose stays on its own line. "
+"``UseVerb`` / ``UseVerb*`` take optional ``[...]`` then a required ``{name}"
+"``; ``UseVerbatim`` / ``LUseVerbatim`` / ``BUseVerbatim`` take optional "
+"``[...]`` then a required ``{name}``; following flush prose stays on its own "
+"line. leftover ``\\DefineShortVerb`` takes optional ``[...]`` then a ``{char}"
+"``; leftover ``\\UndefineShortVerb`` takes a ``{char}``; following flush "
+"prose stays on its own line. ``Verb`` takes a delimiter like ``verb``; "
+"``EscVerb`` takes a delimiter or ``{code}``; following flush prose stays on "
+"its own line. ``\\VerbatimInsertBuffer`` / ``\\InsertBuffer`` take optional "
+"``[...]``; ``\\VerbatimClearBuffer`` takes no args; ``\\IterateBuffer`` "
+"takes optional ``[...]`` then a required ``{cmd}``; following flush prose "
+"stays on its own line. ``\\piton|...|`` is verb-like (interior ``.!?%`` stay "
+"one token); ``\\piton{...}`` stays one token via the generic command "
+"argument; following flush prose stays on its own line. ``\\lstinputlisting`` "
+"takes optional ``[...]`` then a required ``{filename}``; following flush "
+"prose stays on its own line. ``\\VerbatimInput`` / ``\\BVerbatimInput`` / "
+"``\\LVerbatimInput`` take optional ``[...]`` then a required ``{filename}``; "
+"following flush prose stays on its own line. ``\\verbatiminput`` / "
+"``\\verbatiminput*`` take a required ``{filename}``; following flush prose "
+"stays on its own line. ``\\PitonInputFile`` takes optional ``<...>``, "
+"optional ``[...]``, then a required ``{filename}``; following flush prose "
+"stays on its own line. ``\\PitonInputFileT`` / ``\\PitonInputFileF`` take "
+"the same optional args then ``{file}`` and one extra required brace; "
+"``\\PitonInputFileTF`` takes two extra braces; following flush prose stays "
+"on its own line. ``\\tcbinputlisting`` takes one required ``{keyval}`` "
+"group; following flush prose stays on its own line. ``\\inputpy`` / "
+"``\\inputpycon`` take optional ``[...]`` then a required ``{filename}``; "
+"following flush prose stays on its own line. ``\\py`` / ``\\pyc`` / "
+"``\\pys`` / ``\\pyb`` / ``\\pyv`` / ``\\pycon`` and twins / ``\\sympy`` / "
+"``\\pylab`` and twins take optional ``[...]`` then a delimiter or ``{body}"
+"``; following flush prose stays on its own line. ``\\inputpygments`` takes "
+"optional ``[...]``, ``{lang}``, then a required ``{filename}``; "
+"``\\pygment`` takes ``{lang}`` then a delimiter or ``{code}`` body; "
+"following flush prose stays on its own line. ``\\inputpython`` takes "
+"required ``{file}`` ``{first}`` ``{last}``; ``\\inputpythonfile`` takes "
+"required ``{file}`` then optional ``[first]`` ``[last]``; following flush "
+"prose stays on its own line. ``\\pyth`` takes a delimiter or ``{code}`` "
+"body; following flush prose stays on its own line. "
+"``\\CatchFileBetweenTags`` takes ``{macro}`` ``{file}`` ``{tag}``; "
+"``\\CatchFileBetweenDelims`` takes ``{macro}`` ``{file}`` ``{start}`` ``{end}"
+"``; ``\\ExecuteMetaData`` takes optional ``[file]`` then ``{tag}``; "
+"following flush prose stays on its own line. ``\\CatchFileDef`` / "
+"``\\CatchFileEdef`` take ``{macro}`` ``{file}`` ``{setup}``; following flush "
+"prose stays on its own line. ``\\listinginput`` takes optional "
+"``[interval]`` then required ``{start}`` and ``{filename}``; following flush "
+"prose stays on its own line. leftover ``\\listingcont`` takes no args; "
+"following flush prose stays on its own line. ``\\verbatimtabinput`` / "
+"``\\verbatimtabinput*`` take optional ``[tabwidth]`` then a required "
+"``{filename}``; following flush prose stays on its own line. "
+"``\\verbatimwrite`` / ``\\verbatimwrite*`` take a required ``{filename}``; "
+"following flush prose stays on its own line. ``\\sageinput`` takes optional "
+"``[...]`` then a required ``{filename}``; following flush prose stays on its "
+"own line. ``\\sageplot`` takes optional ``[ltx opts]`` ``[fmt]`` then a "
+"required ``{graphics}``; ``\\sagestr`` takes a required ``{code}``; "
+"following flush prose stays on its own line. ``\\pythontexcustomc`` takes "
+"optional ``[begin|end]``, a required ``{type}``, then a delimiter or ``{code}"
+"`` body; following flush prose stays on its own line. ``\\Scontents`` / "
+"``\\Scontents*`` take optional ``[...]`` then a standard or verbatim arg; "
+"``\\typestored`` / ``\\getstored`` / ``\\mergesc`` / ``\\meaningsc`` / "
+"``\\foreachsc`` take optional ``[...]`` then a required ``{seq}``; following "
+"flush prose stays on its own line. Adding another name keeps that command's "
+"delimited body atomic and treats an inner ``%`` as content, not a comment."
+msgstr ""
+
+#: ../../source/reference/config.rst:230
msgid "Code-block sections (``[code.]``)"
msgstr ""
-#: ../../source/reference/config.rst:199
+#: ../../source/reference/config.rst:232
msgid ""
"Each ``[code.]`` table configures how fenced or delimited source "
"blocks for that language are handled. ``snapper init`` writes seed entries "
@@ -236,57 +368,57 @@ msgid ""
"``html``, ``javascript``)."
msgstr ""
-#: ../../source/reference/config.rst:205
+#: ../../source/reference/config.rst:238
msgid "line\\ :sub:`comment`"
msgstr ""
-#: ../../source/reference/config.rst:207
+#: ../../source/reference/config.rst:240
msgid ""
"String. Marker for single-line comments (for example ``\"//\"`` or "
"``\"#\"``). Comment text after the marker is reflowed with the sentence "
"splitter; the marker and indentation are preserved."
msgstr ""
-#: ../../source/reference/config.rst:211
+#: ../../source/reference/config.rst:244
msgid ""
"A marker that repeats or decorates this one keeps its written form, so ``///"
"`` and ``//!`` survive a split instead of collapsing to ``//``. A ``#!`` "
"shebang is left alone."
msgstr ""
-#: ../../source/reference/config.rst:214
+#: ../../source/reference/config.rst:247
msgid ""
"Where a grammar backs the language (see `grammar-backed-languages`_), the "
"reflow also reaches a comment that follows code on the same line, aligning "
"continuation sentences under the comment:"
msgstr ""
-#: ../../source/reference/config.rst:221
+#: ../../source/reference/config.rst:254
msgid ""
"Without a grammar the marker must open the line. That rule keeps the ``//`` "
"inside ``\"// not a comment.\"`` out of the reflow."
msgstr ""
-#: ../../source/reference/config.rst:227
+#: ../../source/reference/config.rst:260
msgid "block\\ :sub:`comment`"
msgstr ""
-#: ../../source/reference/config.rst:229
+#: ../../source/reference/config.rst:262
msgid ""
"String array of length two: open and close markers (for example ``[\"/*\", "
"\"*/\"]``). One-line and multi-line block comments are reflowed as prose "
"between the markers."
msgstr ""
-#: ../../source/reference/config.rst:235
+#: ../../source/reference/config.rst:268
msgid "string\\ :sub:`delims`"
msgstr ""
-#: ../../source/reference/config.rst:237
+#: ../../source/reference/config.rst:270
msgid "String array of quote characters. Defaults to ``[\"\\\"\", \"'\"]``."
msgstr ""
-#: ../../source/reference/config.rst:240
+#: ../../source/reference/config.rst:273
msgid ""
"Without a grammar, quoting is the only thing separating a comment marker "
"from the same characters inside a literal: a marker that trails code "
@@ -296,46 +428,46 @@ msgid ""
"marker after it goes unreflowed rather than mangled."
msgstr ""
-#: ../../source/reference/config.rst:243
+#: ../../source/reference/config.rst:276
msgid ""
"Grammar-backed languages ignore this field; the parse already knows which "
"bytes belong to a string."
msgstr ""
-#: ../../source/reference/config.rst:248
+#: ../../source/reference/config.rst:281
msgid "escape"
msgstr ""
-#: ../../source/reference/config.rst:250
+#: ../../source/reference/config.rst:283
msgid ""
"String holding one character that escapes the next inside a string literal. "
"Defaults to a backslash."
msgstr ""
-#: ../../source/reference/config.rst:256
+#: ../../source/reference/config.rst:289
#, fuzzy
msgid "formatter"
msgstr "format"
-#: ../../source/reference/config.rst:258
+#: ../../source/reference/config.rst:291
msgid ""
"String array treated as argv for ``std::process::Command``. Only runs when "
"the CLI flag ``--format-code`` is set. Missing binaries, non-zero exits, and "
"a ~30s watchdog timeout each leave the reflowed body in place (non-fatal)."
msgstr ""
-#: ../../source/reference/config.rst:262
+#: ../../source/reference/config.rst:295
msgid ""
"If a language has no ``[code.]`` entry (or the fence has no language), "
"the block body passes through unchanged aside from normal trailing-newline "
"preservation."
msgstr ""
-#: ../../source/reference/config.rst:267
+#: ../../source/reference/config.rst:300
msgid "Grammar-backed languages"
msgstr ""
-#: ../../source/reference/config.rst:269
+#: ../../source/reference/config.rst:302
msgid ""
"The ``treesitter`` feature, on by default, parses code blocks in ``rust``, "
"``python``, ``javascript``, ``c``, ``cpp``, ``go``, ``bash`` and ``html`` to "
@@ -343,38 +475,38 @@ msgid ""
"``js``, ``sh``."
msgstr ""
-#: ../../source/reference/config.rst:272
+#: ../../source/reference/config.rst:305
msgid ""
"A build feature governs this, not a config field, and a ``[code.]`` "
"entry remains required. The grammar decides which bytes form a comment; the "
"entry supplies the markers used to re-emit it."
msgstr ""
-#: ../../source/reference/config.rst:275
+#: ../../source/reference/config.rst:308
msgid ""
"Two builds carry no grammars and fall back to the scanner for every language:"
msgstr ""
-#: ../../source/reference/config.rst:277
+#: ../../source/reference/config.rst:310
msgid ""
"``wasm32-unknown-unknown``, the target behind the Obsidian and Word "
"integrations, where the C runtime and its grammars would need a ``wasm`` "
"libc."
msgstr ""
-#: ../../source/reference/config.rst:279
+#: ../../source/reference/config.rst:312
msgid ""
"Any build configured with ``--no-default-features`` that does not opt back "
"in."
msgstr ""
-#: ../../source/reference/config.rst:281
+#: ../../source/reference/config.rst:314
msgid ""
"The VS Code extension runs the CLI rather than the wasm build, so it has "
"grammars."
msgstr ""
-#: ../../source/reference/config.rst:283
+#: ../../source/reference/config.rst:316
msgid ""
"The scanner reads `field-string-delims`_ to find trailing comments on its "
"own, so both engines agree on ordinary code. A grammar still wins on raw "
@@ -382,7 +514,7 @@ msgid ""
"counting alone gives the wrong answer."
msgstr ""
-#: ../../source/reference/config.rst:286
+#: ../../source/reference/config.rst:319
msgid ""
"Block comments stay on the scanner. A close marker inside a string does not "
"end the comment, so ``let s = \"*/\";`` in a ``/* ... */`` block stays in "
@@ -391,11 +523,11 @@ msgid ""
"reflow."
msgstr ""
-#: ../../source/reference/config.rst:293
+#: ../../source/reference/config.rst:326
msgid "Precedence"
msgstr "Forgangur"
-#: ../../source/reference/config.rst:295
+#: ../../source/reference/config.rst:328
msgid ""
"CLI flags override config file values. Per-format sections override top-"
"level config values. Config file values override ``.editorconfig`` values. "
diff --git a/docs/locale/is/LC_MESSAGES/reference/formats.po b/docs/locale/is/LC_MESSAGES/reference/formats.po
index 9549dfa0..377ff1c4 100644
--- a/docs/locale/is/LC_MESSAGES/reference/formats.po
+++ b/docs/locale/is/LC_MESSAGES/reference/formats.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:18-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: is \n"
@@ -37,9 +37,9 @@ msgstr ""
msgid "Org-mode (``--format org``)"
msgstr "Org-mode (``--format org``)"
-#: ../../source/reference/formats.rst:20 ../../source/reference/formats.rst:97
-#: ../../source/reference/formats.rst:141
-#: ../../source/reference/formats.rst:204
+#: ../../source/reference/formats.rst:20 ../../source/reference/formats.rst:136
+#: ../../source/reference/formats.rst:273
+#: ../../source/reference/formats.rst:355
msgid "Structure regions (preserved)"
msgstr "Uppbyggingarsvæði (varðveitt)"
@@ -49,382 +49,898 @@ msgid "Non-source ``#+BEGIN_*`` ..."
msgstr "``#+BEGIN_*`` ..."
#: ../../source/reference/formats.rst:24
-#, fuzzy
-msgid "``#+END_*`` blocks (example, quote, etc.)"
-msgstr "``#+END_*`` blokkir (frumkóði, dæmi, tilvitnun, o.fl.)"
+msgid ""
+"``#+END_*`` fences, and the bodies of literal blocks (example, export, "
+"comment, verse). An unmatched ``#+BEGIN_EXPORT`` is a paragraph (org-element "
+"export-block-parser)"
+msgstr ""
#: ../../source/reference/formats.rst:26
+msgid ""
+"Dynamic blocks (``#+BEGIN: NAME`` ... ``#+END:``), including the generated "
+"body"
+msgstr ""
+
+#: ../../source/reference/formats.rst:28
+msgid ""
+"Quote, center, and special-block (NOTE and other unknown NAME) open/close "
+"lines"
+msgstr ""
+
+#: ../../source/reference/formats.rst:30
+msgid ""
+"Verse-block body (org-element verse-lines; leftover opaque walker, GitHub "
+"#395)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:32
+msgid "Special-block interiors (NOTE, ABSTRACT, WARNING, ...) reflow as prose"
+msgstr ""
+
+#: ../../source/reference/formats.rst:34
msgid "``:PROPERTIES:`` ..."
msgstr "``:PROPERTIES:`` ..."
-#: ../../source/reference/formats.rst:28
+#: ../../source/reference/formats.rst:36
msgid "``:END:`` drawers"
msgstr "``:END:`` skúffur"
-#: ../../source/reference/formats.rst:30
-msgid "``#+KEYWORD:`` directives (TITLE, AUTHOR, DATE, OPTIONS, etc.)"
+#: ../../source/reference/formats.rst:38
+#, fuzzy
+msgid ""
+"``#+KEYWORD:`` directives (TITLE, AUTHOR, DATE, OPTIONS, NAME, "
+"ATTR\\ :sub:`\\*`\\, etc.); ``#+CAPTION:`` / ``#+CAPTION[short]:`` opener "
+"only"
msgstr "``#+KEYWORD:`` lýsiorð (TITLE, AUTHOR, DATE, OPTIONS, o.fl.)"
-#: ../../source/reference/formats.rst:32
+#: ../../source/reference/formats.rst:40
+msgid "Standalone bracket-link lines (``[[file:plot.png]]``)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:42
msgid "Table rows (lines starting with ``|``)"
msgstr "Töflulínur (línur sem byrja á ``|``)"
-#: ../../source/reference/formats.rst:34
+#: ../../source/reference/formats.rst:44
msgid "Comment lines (starting with ``#`` but not ``#+`` )"
msgstr "Athugasemdarlínur (byrja á ``#`` en ekki ``#+`` )"
-#: ../../source/reference/formats.rst:36
+#: ../../source/reference/formats.rst:46
+msgid "Column-0 diary-sexp lines (``%%(...)``; org-element-diary-sexp-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:48
msgid "Full headline lines (stars, optional TODO keyword, and title text)"
msgstr ""
-#: ../../source/reference/formats.rst:38
+#: ../../source/reference/formats.rst:50
#, fuzzy
msgid ""
"List item markers (``-``, ``+``, ``1.``); continuation sentences hang at the "
"marker width"
msgstr "Listaatriðamerki (``-``, ``+``, ``1.``)"
-#: ../../source/reference/formats.rst:40
+#: ../../source/reference/formats.rst:52
msgid ""
"LaTeX environments (``\\begin{equation}`` ... ``\\end{equation}``, "
-"``\\begin{align}``, etc.)"
+"``\\begin{align}``, etc.). An unmatched ``\\begin{env}`` is a paragraph (org-"
+"element latex-environment-parser)"
msgstr ""
-#: ../../source/reference/formats.rst:42
+#: ../../source/reference/formats.rst:54
#, fuzzy
msgid "Display math (``\\[`` ... ``\\]``)"
msgstr "Sýnistærðfræði: ``\\[...\\]``"
-#: ../../source/reference/formats.rst:44
-msgid "Inline export snippets (``@@latex:\\newpage@@``, ``@@html:
@@``)"
+#: ../../source/reference/formats.rst:56
+msgid ""
+"Line breaks (org-element-line-break-parser: ``\\\\`` plus optional spaces or "
+"tabs at end of line)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:58
+msgid ""
+"A line that is only an export snippet (``@@latex:\\newpage@@``). Trailing "
+"prose after the closer stays Prose."
msgstr ""
-#: ../../source/reference/formats.rst:49
+#: ../../source/reference/formats.rst:63
msgid "Code regions (``#+BEGIN_SRC`` ... ``#+END_SRC``)"
msgstr ""
-#: ../../source/reference/formats.rst:51
+#: ../../source/reference/formats.rst:65
+msgid ""
+"An unmatched ``#+BEGIN_SRC`` is a paragraph (org-element src-block-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:67
msgid "Header and footer lines are structure"
msgstr ""
-#: ../../source/reference/formats.rst:53
+#: ../../source/reference/formats.rst:69
msgid "Body non-comment lines pass through verbatim"
msgstr ""
-#: ../../source/reference/formats.rst:55
+#: ../../source/reference/formats.rst:71
msgid ""
"Body comment lines reflow at sentence boundaries when the language has "
"``line_comment`` and/or ``block_comment`` under ``[code.]``"
msgstr ""
-#: ../../source/reference/formats.rst:57
+#: ../../source/reference/formats.rst:73
msgid ""
"With ``--format-code``, optional ``formatter`` argv runs on the body "
"(graceful fallback on failure)"
msgstr ""
-#: ../../source/reference/formats.rst:62 ../../source/reference/formats.rst:129
-#: ../../source/reference/formats.rst:173
-#: ../../source/reference/formats.rst:230
+#: ../../source/reference/formats.rst:78 ../../source/reference/formats.rst:259
+#: ../../source/reference/formats.rst:320
+#: ../../source/reference/formats.rst:388
msgid "Prose regions (reflowed)"
msgstr "Textasvæði (endurflætt)"
-#: ../../source/reference/formats.rst:64 ../../source/reference/formats.rst:175
+#: ../../source/reference/formats.rst:80 ../../source/reference/formats.rst:322
msgid "Paragraph text"
msgstr "Málsgreinatexti"
-#: ../../source/reference/formats.rst:66
+#: ../../source/reference/formats.rst:82
msgid ""
"List item text (after the marker); continuation sentences hang at the marker "
"width so Org rejoins the item"
msgstr ""
-#: ../../source/reference/formats.rst:71 ../../source/reference/formats.rst:184
+#: ../../source/reference/formats.rst:84
+msgid "Quote, center, and special-block inner text"
+msgstr ""
+
+#: ../../source/reference/formats.rst:86
+msgid ""
+"``#+CAPTION:`` value (org-element-parsed-keywords); continuation sentences "
+"hang at the opener width. Dual ``#+CAPTION[short]:`` keeps the short title "
+"on the opener"
+msgstr ""
+
+#: ../../source/reference/formats.rst:92 ../../source/reference/formats.rst:335
+#: ../../source/reference/formats.rst:397
msgid "Inline tokens (kept atomic)"
msgstr "Innleidd tákn (haldin óbrotin)"
-#: ../../source/reference/formats.rst:73
+#: ../../source/reference/formats.rst:94
msgid "These tokens within prose are not split across lines:"
msgstr "Þessum táknum innan texta er ekki skipt á milli lína:"
-#: ../../source/reference/formats.rst:75
+#: ../../source/reference/formats.rst:96
msgid "Links: ``[[url][description]]``"
msgstr "Tenglar: ``[[url][description]]``"
-#: ../../source/reference/formats.rst:77
+#: ../../source/reference/formats.rst:98
+msgid ""
+"Angular links: ```` (org-link-angle-re; spaces allowed)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:100
msgid "Emphasis: ``\\*bold*``, ``/italic/``, ``_underline_``, ``+strike+``"
msgstr ""
-#: ../../source/reference/formats.rst:79
+#: ../../source/reference/formats.rst:102
msgid "Inline code: ``~code~``, ``==verbatim==``"
msgstr "Innleiður kóði: ``~code~``, ``==verbatim==``"
-#: ../../source/reference/formats.rst:81
+#: ../../source/reference/formats.rst:104
msgid ""
"A ``~code~`` or ``==verbatim==`` span may contain the marker character; "
"pairing matches pandoc's org reader, so ``x = 1`` stays one span"
msgstr ""
-#: ../../source/reference/formats.rst:83
+#: ../../source/reference/formats.rst:106
msgid ""
"Markdown inline code: a run of ``n`` backticks closes on the next run of the "
"same length (CommonMark / pandoc), so a double span can hold a single "
"backtick"
msgstr ""
-#: ../../source/reference/formats.rst:85
-msgid "Inline export snippets: ``@@backend:value@@``"
+#: ../../source/reference/formats.rst:108
+msgid ""
+"Inline export snippets: ``@@backend:value@@`` (org-element-export-snippet-"
+"parser; backend ``[-A-Za-z0-9]+`` so ``html5`` and hyphen names stay one "
+"token)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:110
+msgid "Radio targets: ``<<>>`` (org-element-radio-target-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:112
+msgid "Angle targets: ``<>`` (org-element-target-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:114
+msgid ""
+"Macros: ``{{{name}}}`` / ``{{{name(args)}}}`` (org-element-macro-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:116
+msgid ""
+"Inline source: ``src_lang{...}`` / ``src_lang[headers]{...}`` (org-element-"
+"inline-src-block-parser; ``\\``, optional "
+"``[...]``, then a ``{filename}``; a flush following sentence stays on its "
+"own line ``\\PitonInputFileT`` / ``\\PitonInputFileF`` take the same "
+"optional args then ``{file}`` and one extra required brace; "
+"``\\PitonInputFileTF`` takes two extra braces; a flush following sentence "
+"stays on its own line ``\\tcbinputlisting`` takes one required ``{keyval}`` "
+"group; a flush following sentence stays on its own line ``\\inputpy`` / "
+"``\\inputpycon`` take optional ``[...]`` then a ``{filename}``; a flush "
+"following sentence stays on its own line ``\\py`` / ``\\pyc`` / ``\\pys`` / "
+"``\\pyb`` / ``\\pyv`` / ``\\pycon`` and twins / ``\\sympy`` / ``\\pylab`` "
+"and twins take optional ``[...]`` then a delimiter or ``{body}``; a flush "
+"following sentence stays on its own line ``\\inputpygments`` takes optional "
+"``[...]``, ``{lang}``, then a ``{filename}``; ``\\pygment`` takes ``{lang}`` "
+"then a delimiter or ``{code}`` body; a flush following sentence stays on its "
+"own line ``\\inputpython`` takes ``{file}`` ``{first}`` ``{last}``; "
+"``\\inputpythonfile`` takes ``{file}`` then optional ``[first]`` ``[last]``; "
+"a flush following sentence stays on its own line ``\\pyth`` takes a "
+"delimiter or ``{code}`` body; a flush following sentence stays on its own "
+"line ``\\CatchFileBetweenTags`` takes ``{macro}`` ``{file}`` ``{tag}``; "
+"``\\CatchFileBetweenDelims`` takes ``{macro}`` ``{file}`` ``{start}`` ``{end}"
+"``; ``\\ExecuteMetaData`` takes optional ``[file]`` then ``{tag}``; a flush "
+"following sentence stays on its own line leftover ``\\CatchFileDef`` / "
+"``\\CatchFileEdef`` take ``{macro}`` ``{file}`` ``{setup}``; a flush "
+"following sentence stays on its own line ``\\listinginput`` takes optional "
+"``[interval]`` then ``{start}`` and ``{filename}``; a flush following "
+"sentence stays on its own line leftover ``\\listingcont`` takes no args; a "
+"flush following sentence stays on its own line leftover "
+"``\\verbatimtabinput`` / ``\\verbatimtabinput*`` take optional "
+"``[tabwidth]`` then a ``{filename}``; a flush following sentence stays on "
+"its own line leftover ``\\verbatimwrite`` / ``\\verbatimwrite*`` take a "
+"``{filename}``; a flush following sentence stays on its own line "
+"``\\sageinput`` takes optional ``[...]`` then a ``{filename}``; a flush "
+"following sentence stays on its own line ``\\sageplot`` takes optional "
+"``[ltx opts]`` ``[fmt]`` then a ``{graphics}``; ``\\sagestr`` takes a "
+"``{code}``; a flush following sentence stays on its own line "
+"``\\pythontexcustomc`` takes optional ``[begin|end]``, a required ``{type}"
+"``, then a delimiter or ``{code}`` body; a flush following sentence stays on "
+"its own line ``\\Scontents`` / ``\\Scontents*`` take optional ``[...]`` then "
+"a standard or verbatim arg; ``\\typestored`` / ``\\getstored`` / "
+"``\\mergesc`` / ``\\meaningsc`` / ``\\foreachsc`` take optional ``[...]`` "
+"then a ``{seq}``; a flush following sentence stays on its own line"
msgstr ""
-#: ../../source/reference/formats.rst:131
+#: ../../source/reference/formats.rst:261
msgid "Body text between structural elements"
msgstr "Meginmálstexti á milli uppbyggingareininga"
-#: ../../source/reference/formats.rst:136
+#: ../../source/reference/formats.rst:263
+msgid ""
+"``\\caption{...}`` long argument inside figure/table (tree-sitter caption "
+"curly\\ :sub:`group`\\)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:268
msgid "Markdown (``--format markdown``)"
msgstr "Markdown (``--format markdown``)"
-#: ../../source/reference/formats.rst:143
+#: ../../source/reference/formats.rst:275
msgid "Front matter (``---`` or ``+++`` delimited at file start)"
msgstr "Framefni (``---`` eða ``+++`` afmarkað í byrjun skráar)"
-#: ../../source/reference/formats.rst:145
+#: ../../source/reference/formats.rst:277
msgid "Full ATX heading lines (``#`` … ``######`` including title text)"
msgstr ""
-#: ../../source/reference/formats.rst:147
+#: ../../source/reference/formats.rst:279
+msgid "Empty ATX headings (a mark line with no title text) stay Structure"
+msgstr "Tómar ATX-fyrirsagnir (merkilína án titiltexta) haldast Structure"
+
+#: ../../source/reference/formats.rst:281
msgid "Setext headings (title line plus ``====`` or ------ underline)"
msgstr ""
-#: ../../source/reference/formats.rst:149
+#: ../../source/reference/formats.rst:283
#, fuzzy
msgid ""
"List item markers (``-``, ``\\*``, ``+``, ``1.``); continuation sentences "
"hang at the marker width"
msgstr "Listaatriðamerki (``-``, ``\\*``, ``+``, ``1.``)"
-#: ../../source/reference/formats.rst:151
+#: ../../source/reference/formats.rst:285
+msgid "Empty list markers (including quoted) stay Structure"
+msgstr "Tóm listamerki (einnig í tilvitnun) haldast Structure"
+
+#: ../../source/reference/formats.rst:287
+msgid ""
+"Definition-list terms and ``: = markers (pulldown "
+"=ENABLE_DEFINITION_LIST``); the body hangs at the marker width"
+msgstr ""
+
+#: ../../source/reference/formats.rst:289
msgid ""
"Blockquote markers (``>`` / nested => > =); continuation sentences repeat "
"the quote prefix"
msgstr ""
-#: ../../source/reference/formats.rst:153
+#: ../../source/reference/formats.rst:291
+msgid ""
+"GFM alert type markers (``[!NOTE]`` / ``[!TIP]`` / ``[!WARNING]`` / ``[!"
+"CAUTION]`` / ``[!IMPORTANT]``); the body hangs and splits like a quote"
+msgstr ""
+
+#: ../../source/reference/formats.rst:293
+msgid ""
+"Link-reference definitions (``[label]: dest``); the destination may sit on "
+"the next line. A definition that sits inside a paragraph stays Prose"
+msgstr ""
+"Skilgreiningar á tenglatilvísunum (``[label]: dest``); áfangastaðurinn "
+"má vera á næstu línu. Skilgreining inni í málsgrein helst Prose"
+
+#: ../../source/reference/formats.rst:296
+msgid ""
+"GFM footnote definitions (``[^label]:``); the marker is Structure and the "
+"body hangs"
+msgstr ""
+"GFM-neðanmálsgreinar (``[^label]:``); merkið er Structure og meginmálið "
+"hangir"
+
+#: ../../source/reference/formats.rst:298
msgid "Hard line breaks (two trailing spaces, or a trailing backslash)"
msgstr ""
-#: ../../source/reference/formats.rst:155
+#: ../../source/reference/formats.rst:300
msgid ""
"HTML comments (````, including multiline); ```` remain pragmas"
msgstr ""
-#: ../../source/reference/formats.rst:157
+#: ../../source/reference/formats.rst:302
+msgid ""
+"Closed type-6 and type-7 HTML blocks end at the matching close tag; "
+"following prose stays Prose"
+msgstr ""
+"Lokaðar type-6 og type-7 HTML-blokkir enda á samsvarandi lokunartaggi; "
+"prósi á eftir helst Prose"
+
+#: ../../source/reference/formats.rst:304
msgid "Pipe tables"
msgstr ""
-#: ../../source/reference/formats.rst:162
+#: ../../source/reference/formats.rst:309
#, fuzzy
msgid "Code regions (fenced ``````` / ``~~~``)"
msgstr "Afgirtar kóðablokkir (``````` eða ``~~~``)"
-#: ../../source/reference/formats.rst:164
+#: ../../source/reference/formats.rst:311
msgid "Opening and closing fence lines are structure"
msgstr ""
-#: ../../source/reference/formats.rst:166
+#: ../../source/reference/formats.rst:313
msgid "Indented fence bodies preserve indentation on reflowed comment lines"
msgstr ""
-#: ../../source/reference/formats.rst:168
+#: ../../source/reference/formats.rst:315
msgid ""
"Language from the fence info string selects ``[code.]``; unknown or "
"missing lang passes the body through unchanged (unless ``--format-code`` is "
"not applicable without a formatter entry)"
msgstr ""
-#: ../../source/reference/formats.rst:177
+#: ../../source/reference/formats.rst:324
msgid ""
"List item text (after the marker); continuation sentences hang at the marker "
"width"
msgstr ""
-#: ../../source/reference/formats.rst:179
+#: ../../source/reference/formats.rst:326
+#, fuzzy
+msgid ""
+"Definition-list body (after the =: = marker); continuation sentences hang at "
+"the marker width"
+msgstr "Listaatriðamerki (``-``, ``+``, ``1.``)"
+
+#: ../../source/reference/formats.rst:328
+msgid ""
+"GFM footnote-definition body (after ``[^label]:``); continuation sentences "
+"hang at the marker width"
+msgstr ""
+"Meginmál GFM-neðanmálsgreinar (eftir ``[^label]:``); framhaldssetningar "
+"hanga á breidd merkisins"
+
+#: ../../source/reference/formats.rst:330
msgid ""
"Blockquote inner text (after the ``>`` marker); continuation sentences "
"repeat the quote prefix"
msgstr ""
-#: ../../source/reference/formats.rst:186
+#: ../../source/reference/formats.rst:337
msgid ""
"Emphasis: ``\\*em*``, ``\\*\\*strong**`` (CommonMark flanking; a period "
"inside the span does not split)"
msgstr ""
-#: ../../source/reference/formats.rst:188
+#: ../../source/reference/formats.rst:339
msgid "Strikethrough: ``~~strike~~`` (GFM)"
msgstr ""
-#: ../../source/reference/formats.rst:190
+#: ../../source/reference/formats.rst:341
msgid ""
"Inline code: a run of ``n`` backticks closes on the next run of the same "
"length"
msgstr ""
-#: ../../source/reference/formats.rst:192
+#: ../../source/reference/formats.rst:343
msgid "Links and images: ``[text](url)``, ````"
msgstr ""
-#: ../../source/reference/formats.rst:194
+#: ../../source/reference/formats.rst:345
msgid "Inline math: ``$...$`` / ``$$...$$``"
msgstr ""
-#: ../../source/reference/formats.rst:199
+#: ../../source/reference/formats.rst:350
#, fuzzy
msgid "reStructuredText (``--format rst``)"
msgstr "LaTeX (``--format latex``)"
-#: ../../source/reference/formats.rst:206
+#: ../../source/reference/formats.rst:357
msgid ""
-"Non-code directives (``.. math::``, ``.. image::``, etc.) and their indented "
-"bodies"
+"Non-code opaque directives (``.. math::``, ``.. image::``, ``.. raw::``, "
+"``.. include::``, ``.. csv-table::``) and their indented bodies"
msgstr ""
-#: ../../source/reference/formats.rst:208
-msgid "Literal blocks (text after ``::`` with indented content)"
+#: ../../source/reference/formats.rst:359
+msgid ""
+"Container directive openers (``.. note::``, ``.. warning::``, ``.. "
+"figure::``, ``.. topic::``, ``.. sidebar::``, ``.. container::``, leftover "
+"``.. parsed-literal::``, ``.. epigraph::``, ``.. highlights::``, ``.. pull-"
+"quote::``, ``.. compound::``, ``.. header::``, ``.. footer::``) and their "
+"``:option:`` fields; the indented body is prose"
msgstr ""
-#: ../../source/reference/formats.rst:210
+#: ../../source/reference/formats.rst:361
+msgid ""
+"Same-line body after ``::`` on those containers, leftover ``.. parsed-"
+"literal::``, ``.. header::``, ``.. footer::``, ``.. |name| replace::``, and "
+"``.. meta::`` fields hangs and splits. Flush bibliographic fields close a "
+"meta leftover"
+msgstr ""
+"Meginmál á sömu línu eftir ``::`` á þessum ílátum, leftover ``.. "
+"parsed-literal::``, ``.. header::``, ``.. footer::``, ``.. |name| "
+"replace::`` og ``.. meta::`` svæði hangir og klofna. Jafnsett "
+"bókfræðisvæði loka meta leftover"
+
+#: ../../source/reference/formats.rst:364
+msgid ""
+"Literal blocks (text after ``::`` with indented or line-prefix-quoted "
+"content)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:366
msgid "Section titles and underlines (``===``, ``-----``, etc.)"
msgstr ""
-#: ../../source/reference/formats.rst:212
+#: ../../source/reference/formats.rst:368
msgid "Field lists (``:Author:``, ``:Date:``, etc.)"
msgstr ""
-#: ../../source/reference/formats.rst:214
+#: ../../source/reference/formats.rst:370
+msgid ""
+"Empty list items, empty doctest openers, and empty field-list markers at EOL "
+"stay Structure"
+msgstr ""
+"Tóm listaatriði, tómir doctest-opnarar og tóm field-list merki við EOL "
+"haldast Structure"
+
+#: ../../source/reference/formats.rst:372
msgid "Comments (``..`` without a directive)"
msgstr ""
-#: ../../source/reference/formats.rst:216
+#: ../../source/reference/formats.rst:374
#, fuzzy
msgid "Grid and simple tables (lines starting with ``|`` or ``+``)"
msgstr "Töflulínur (línur sem byrja á ``|``)"
-#: ../../source/reference/formats.rst:221
+#: ../../source/reference/formats.rst:379
msgid "Code regions (``.. code-block:: LANG``)"
msgstr ""
-#: ../../source/reference/formats.rst:223
+#: ../../source/reference/formats.rst:381
msgid "Directive line and trailing blank handling stay structure"
msgstr ""
-#: ../../source/reference/formats.rst:225
+#: ../../source/reference/formats.rst:383
msgid ""
"Indented body uses the language token for ``[code.]`` comment reflow "
"and optional ``--format-code``"
msgstr ""
-#: ../../source/reference/formats.rst:232
+#: ../../source/reference/formats.rst:390
#, fuzzy
msgid "Paragraph text between structural elements"
msgstr "Meginmálstexti á milli uppbyggingareininga"
-#: ../../source/reference/formats.rst:237
+#: ../../source/reference/formats.rst:392
+msgid ""
+"Indented bodies of container directives (admonitions, figure captions, "
+"topic, sidebar, container, leftover parsed-literal, epigraph, highlights, "
+"pull-quote, compound, header, footer); hang spaces stay structure"
+msgstr ""
+
+#: ../../source/reference/formats.rst:399
+msgid ""
+"Substitution references: ``|fig. 1|`` / ``|version|`` / ``|name|_`` / ``|"
+"name|__`` (Docutils Inliner.substitution\\ :sub:`ref`\\). Interior "
+"punctuation is not a sentence or wrap boundary. The use stays Prose, not "
+"Structure (line-block is ``|`` plus space or EOL)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:406
#, fuzzy
msgid "Auto-detection"
msgstr "Setningargreining"
-#: ../../source/reference/formats.rst:239
+#: ../../source/reference/formats.rst:408
msgid "Extensions: ``.rst``, ``.rest``"
msgstr ""
-#: ../../source/reference/formats.rst:244
+#: ../../source/reference/formats.rst:413
msgid "Plaintext (``--format plaintext``)"
msgstr "Ósniðinn texti (``--format plaintext``)"
-#: ../../source/reference/formats.rst:246
+#: ../../source/reference/formats.rst:415
msgid "Everything is prose. Blank lines are preserved as paragraph separators."
msgstr "Allt er texti. Auðar línur eru varðveittar sem málsgreinaskil."
-#: ../../source/reference/formats.rst:252
+#: ../../source/reference/formats.rst:421
msgid "Sentence Detection"
msgstr "Setningargreining"
-#: ../../source/reference/formats.rst:254
+#: ../../source/reference/formats.rst:423
msgid ""
"``snapper`` uses Unicode UAX #29 sentence boundary detection as a baseline "
"(or optional ``--neural`` / nnsplit), then applies the same post-pipeline: "
@@ -432,66 +948,68 @@ msgid ""
"[]{}`` spans are not fractured."
msgstr ""
-#: ../../source/reference/formats.rst:259
+#: ../../source/reference/formats.rst:428
msgid "Delimiter-span policy (residual cases)"
msgstr ""
-#: ../../source/reference/formats.rst:261
+#: ../../source/reference/formats.rst:430
msgid ""
-"Balanced ASCII/curly/guillemet quotes, LaTeX ````…''``, and ``()[]{}`` must "
-"not gain a semantic line break mid-span (see ``tests/"
+"Balanced ASCII/curly/guillemet quotes, LaTeX double-backtick quotes, and ``()"
+"[]{}`` must not gain a semantic line break mid-span (see ``tests/"
"sentence_delim_props.rs``)."
msgstr ""
-#: ../../source/reference/formats.rst:263
+#: ../../source/reference/formats.rst:432
msgid ""
"Unclosed ``\"`` (or open ``‘`` without ``’``) glues the rest of the "
"paragraph; snapper does not invent closers."
msgstr ""
-#: ../../source/reference/formats.rst:265
+#: ../../source/reference/formats.rst:434
msgid ""
"Nested semantic ASCII quotes (``say \"hi\" now`` with an inner pair) remain "
"toggle-ambiguous; prefer typographic quotes or escapes in source."
msgstr ""
-#: ../../source/reference/formats.rst:267
+#: ../../source/reference/formats.rst:436
msgid ""
"Apostrophes in contractions (``don't``, ``it's``) are not treated as "
"dialogue openers."
msgstr ""
-#: ../../source/reference/formats.rst:269
-msgid "Markdown fences (```````) are not treated as LaTeX `````` openers."
+#: ../../source/reference/formats.rst:438
+msgid ""
+"Markdown fences (three backticks) are not treated as LaTeX double-backtick "
+"openers."
msgstr ""
-#: ../../source/reference/formats.rst:271
+#: ../../source/reference/formats.rst:440
msgid ""
"``--neural`` runs the same abbreviation + span post-pipeline after the model "
"proposes cuts (English papers can still prefer the rules path for fully "
"offline, deterministic CI)."
msgstr ""
-#: ../../source/reference/formats.rst:273
+#: ../../source/reference/formats.rst:442
#, fuzzy
msgid "``snapper`` merges false splits caused by known abbreviations:"
msgstr ""
"``snapper`` notar Unicode UAX #29 setningarmarkaskil sem grunn og sameinar "
"síðan rangar skiptingar sem stafa af þekktum skammstöfunum:"
-#: ../../source/reference/formats.rst:278
+#: ../../source/reference/formats.rst:447
msgid "Titles"
msgstr "Titlar"
-#: ../../source/reference/formats.rst:280
+#: ../../source/reference/formats.rst:449
msgid "Mr., Mrs., Ms., Dr., Prof., Sr., Jr., St., Rev., Gen., etc."
msgstr "Mr., Mrs., Ms., Dr., Prof., Sr., Jr., St., Rev., Gen., o.fl."
-#: ../../source/reference/formats.rst:285
+#: ../../source/reference/formats.rst:454
msgid "Academic"
msgstr "Fræðilegt"
-#: ../../source/reference/formats.rst:287
+#: ../../source/reference/formats.rst:456
msgid ""
"Fig., Figs., Eq., Eqs., Ref., Refs., Tab., Sec., Ch., Vol., No., Thm., Lem., "
"Prop., Def., Cor., Rem., Ex."
@@ -499,35 +1017,35 @@ msgstr ""
"Fig., Figs., Eq., Eqs., Ref., Refs., Tab., Sec., Ch., Vol., No., Thm., Lem., "
"Prop., Def., Cor., Rem., Ex."
-#: ../../source/reference/formats.rst:292
+#: ../../source/reference/formats.rst:461
msgid "Latin"
msgstr "Latneskt"
-#: ../../source/reference/formats.rst:294
+#: ../../source/reference/formats.rst:463
msgid "e.g., i.e., et al., cf., etc., viz., ibid., ca., approx."
msgstr "e.g., i.e., et al., cf., etc., viz., ibid., ca., approx."
-#: ../../source/reference/formats.rst:299
+#: ../../source/reference/formats.rst:468
msgid "Single initials"
msgstr "Stakir upphafsstafir"
-#: ../../source/reference/formats.rst:301
+#: ../../source/reference/formats.rst:470
msgid "A., B., C., ... Z."
msgstr "A., B., C., ... Z."
-#: ../../source/reference/formats.rst:307
+#: ../../source/reference/formats.rst:476
msgid "Date and time"
msgstr "Dagsetning og tími"
-#: ../../source/reference/formats.rst:309
+#: ../../source/reference/formats.rst:478
msgid "Jan., Feb., ..., Dec., Mon., Tue., ..., Sun., a.m., p.m."
msgstr "Jan., Feb., ..., Dec., Mon., Tue., ..., Sun., a.m., p.m."
-#: ../../source/reference/formats.rst:314
+#: ../../source/reference/formats.rst:483
msgid "Quoted and parenthesized punctuation"
msgstr ""
-#: ../../source/reference/formats.rst:316
+#: ../../source/reference/formats.rst:485
msgid ""
"Sentence punctuation inside quotes or parentheses does not trigger a false "
"split when the next word starts lowercase. For example, ``He said \"wow!\" "
@@ -559,3 +1077,6 @@ msgstr ""
#~ msgid "Heading text (after the marker)"
#~ msgstr "Fyrirsagnartexti (á eftir merkinu)"
+
+#~ msgid "``#+END_*`` blocks (example, quote, etc.)"
+#~ msgstr "``#+END_*`` blokkir (frumkóði, dæmi, tilvitnun, o.fl.)"
diff --git a/docs/locale/pl/LC_MESSAGES/changelog.po b/docs/locale/pl/LC_MESSAGES/changelog.po
index 75bb6474..84a15ea5 100644
--- a/docs/locale/pl/LC_MESSAGES/changelog.po
+++ b/docs/locale/pl/LC_MESSAGES/changelog.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:14-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: pl \n"
@@ -43,105 +43,653 @@ msgstr ""
msgid "Unreleased (main)"
msgstr ""
-#: ../../../CHANGELOG.md:6 ../../../CHANGELOG.md:16 ../../../CHANGELOG.md:40
-#: ../../../CHANGELOG.md:67 ../../../CHANGELOG.md:89 ../../../CHANGELOG.md:106
-#: ../../../CHANGELOG.md:122 ../../../CHANGELOG.md:137
-#: ../../../CHANGELOG.md:147 ../../../CHANGELOG.md:153
+#: ../../../CHANGELOG.md:9
+msgid "v0.11.2 - 2026-09-11"
+msgstr ""
+
+#: ../../../CHANGELOG.md:10 ../../../CHANGELOG.md:136 ../../../CHANGELOG.md:154
+#: ../../../CHANGELOG.md:178 ../../../CHANGELOG.md:205
+#: ../../../CHANGELOG.md:227 ../../../CHANGELOG.md:244
+#: ../../../CHANGELOG.md:260 ../../../CHANGELOG.md:275
+#: ../../../CHANGELOG.md:285 ../../../CHANGELOG.md:291
msgid "Bug Fixes"
msgstr ""
-#: ../../../CHANGELOG.md:7
+#: ../../../CHANGELOG.md:11
+msgid "(**latex**) treat sagetex sageverbatim family as code (#301)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:12
+msgid "(**latex**) treat filecontentsdef leftover sibling envs as code (#300)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:13
+msgid "(**latex**) treat fvextra VerbatimBuffer as code (#296)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:14
+msgid "(**latex**) treat fvextra VerbEnv as code (#293) (#297)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:15
+msgid "(**latex**) treat filecontentsdef env as code (#295)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:16
+msgid "(**latex**) treat tcolorbox verbatim write envs as code (#290)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:17
+msgid "(**latex**) treat pythontex pylab envs as verbatim (#278) (#289)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:18
+msgid "(**latex**) treat moreverb listing envs as code (#288)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:19
+msgid "(**latex**) treat pythontex sympy envs as verbatim (#277) (#287)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:20
+msgid "(**latex**) treat pythontex starred py envs as verbatim (#276) (#286)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:21
+msgid "(**latex**) treat minted-star env as code (#284)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:22
+msgid "(**latex**) tokenize fancyvrb SaveVerb like Verb (#275) (#283)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:23
+msgid "(**latex**) treat pythontex pygments env as verbatim (#282)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:24
+msgid "(**latex**) treat pythontex pyblock pyverbatim pyconsole as code (#257)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:25
+msgid "(**latex**) treat moreverb verbatimtab as code (#256)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:26
+msgid "(**latex**) treat fvextra VerbatimWrite as code (#255)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:27
+msgid "(**latex**) treat tcolorbox tcblisting-star as code (#254)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:28
+msgid "(**latex**) tokenize fancyvrb Verb and Verb* like verb (#253)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:29
+msgid "(**latex**) tokenize minted mintinline and mint like lstinline (#252)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:30
+msgid "(**latex**) treat fancyvrb Verbatim-star envs as code (#251)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:31
+msgid "(**latex**) treat spverbatim and spverb as verbatim (#242)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:32
+msgid "(**latex**) treat listings lstlisting* as code (#238)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:33
msgid ""
-"(**sentence**) a period immediately before markup closers only starts a new "
-"sentence when the next token is a capital letter (or a quote then a "
-"capital), so plaintext `.`` \"` is not split"
+"(**latex**) treat alltt as code so listing bodies do not reflow as prose "
+"(#236)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:34
+msgid "(**latex**) treat fancyvrb SaveVerbatim and VerbatimOut as code (#224)"
msgstr ""
-#: ../../../CHANGELOG.md:8
+#: ../../../CHANGELOG.md:35
+msgid "(**latex**) treat fancyvrb BVerbatim and LVerbatim as code (#223)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:36
msgid ""
-"(**rst**) list continuation paragraphs after a blank keep their hanging "
-"indent, so a two-space second sentence is not outdented to column 0"
+"(**latex**) treat IEEEeqnarray xltabular and math-star as structure (#187)"
msgstr ""
-#: ../../../CHANGELOG.md:9
+#: ../../../CHANGELOG.md:37
+msgid ""
+"(**latex**) treat NiceTabular listabla and spreadtab as structure (#188)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:38
+msgid "(**latex**) reflow figure and table caption long arguments (#156)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:39
+msgid "(**latex**) treat tikzcd axis and pgfpicture as structure (#152)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:40
+msgid "(**latex**) treat optional section short title as Structure (#150)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:41
+msgid "(**latex**) treat Verbatim boxedverbatim and tcblisting as code (#147)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:42
+msgid "(**latex**) treat mid-line display math opener as Structure (#124)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:43
+msgid "(**latex**) keep comment env and iffalse as raw (#116)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:44
+msgid "(**latex**) treat dollar-dollar display math as Structure (#115)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:45
msgid ""
-"(**rst**) definition lists (flush term plus indented definition) stay "
-"structure, so the term is not glued onto the definition line"
+"(**latex**) treat tree-sitter and latexindent math/table envs as structure "
+"(#114)"
msgstr ""
-#: ../../../CHANGELOG.md:10
+#: ../../../CHANGELOG.md:46
+msgid "(**latex**) treat filecontents and trivia envs as code (#113)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:47
+msgid "(**latex**) hang enumerate item continuation sentences (#78)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:48
msgid ""
-"(**rst**) simple tables (`===== =====` column borders) stay structure, so "
-"header and body rows are not glued onto one line"
+"(**markdown**) treat dest-on-next-line link references as Structure (#202)"
msgstr ""
-#: ../../../CHANGELOG.md:11
+#: ../../../CHANGELOG.md:49
msgid ""
-"(**ci**) `scripts/install_cargo_dist.sh` hashes with `shasum`/`openssl` when "
-"`sha256sum` is missing and finds `dist.exe` at the zip root (Windows cargo-"
-"dist layout)"
+"(**markdown**) treat link-reference and footnote definitions as Structure "
+"(#190)"
msgstr ""
-#: ../../../CHANGELOG.md:15
+#: ../../../CHANGELOG.md:50
+msgid "(**markdown**) treat 0-3 space ATX headings as Structure (#189)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:51
+msgid "(**markdown**) treat CommonMark > with optional space as a quote (#155)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:52
+msgid "(**markdown**) treat CommonMark thematic breaks as Structure (#149)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:53
+msgid ""
+"(**markdown**) keep GFM tables without flanking pipes as structure (#140)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:54
+msgid "(**markdown**) keep list items open across blank indent (#137)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:55
+msgid "(**markdown**) treat $$ display math as Structure (#123)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:56
+msgid "(**markdown**) treat CommonMark HTML blocks as Structure (#122)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:57
+msgid "(**markdown**) treat CommonMark indented code as Code (#121)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:58
+msgid "(**markdown**) treat quoted fences as Code (#119)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:59
+msgid "(**md**) treat ordered start != 1 as setext title text (#271)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:60
+msgid ""
+"(**md**) reject list setext underlines shallower than the open item hang "
+"(#270)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:61
+msgid ""
+"(**md**) count every quote marker so matching > > setext promotes (#269)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:62
+msgid "(**md**) do not treat 4-space > - as a quoted list opener (#268)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:63
+msgid "(**md**) count nested quote markers after 0-3 spaces (#267)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:64
+msgid ""
+"(**md**) reject list setext underlines shallower than the item hang (#265)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:65
+msgid "(**md**) promote only the open paragraph for setext titles (#228)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:66
+msgid "(**md**) keep definition list terms and : markers as structure (#225)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:67
+msgid "(**md**) keep GFM alert type markers as structure (#222)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:68
+msgid ""
+"(**md**) close YAML front matter on ... and keep blank --- as a break (#217)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:69
+msgid "(**md**) cap ordered list markers at 9 digits (#191)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:70
+msgid "(**md**) keep same-line 0. A. opener with its sentence (#184)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:71
+msgid "(**md**) keep sentence break after punct inside link tails (#201)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:72
+msgid "(**org**) keep two-sentence verse lines as one physical line (#285)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:73
+msgid "(**org**) keep timestamps atomic across interior punctuation (#264)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:74
+msgid "(**org**) keep inline src_ and call_ atomic (#240)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:75
+msgid "(**org**) treat \\\\ at EOL as an org-element line break (#239)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:76
+msgid "(**org**) keep inline footnote references atomic (#237)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:77
+msgid "(**org**) keep macros atomic across interior punctuation (#229)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:78
+msgid "(**org**) keep radio and angle targets atomic (#226)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:79
+msgid "(**org**) hang and reflow #+CAPTION values (#221)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:80
+msgid "(**org**) treat footnote definitions as hung prose (#199)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:81
+msgid "(**org**) reflow special-block interiors as prose (#197)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:82
+msgid "(**org**) stop file: token swallowing sentence punct (#185)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:83
+msgid "(**org**) treat #+BEGIN: dynamic blocks as Structure (#178) (#195)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:84
+msgid "(**org**) require space or EOL after hash comments (#194)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:85
+msgid "(**org**) treat [cite...] as an atomic inline token (#153)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:86
+msgid "(**org**) treat indented star lists as list items (#148)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:87
+msgid "(**org**) treat planning and clock lines as Structure (#145)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:88
+msgid "(**org**) classify same-line display math and latex env (#141)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:89
+msgid "(**org**) treat quote/verse/center as structure plus inner prose (#139)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:90
+msgid "(**org**) classify drawers, fixed-width, and rules (#128)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:91
+msgid "(**org**) treat $$ display math as Structure (#120)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:92
+msgid "(**org**) close greater blocks by matching NAME (#117)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:93
+msgid "(**reflow**) hang RST enumerated item continuations (#74)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:94
+msgid "(**rst**) keep substitution references atomic (#241)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:95
+msgid "(**rst**) hang and reflow admonition and figure bodies (#219)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:96
+msgid ""
+"(**rst**) keep substitution references out of leftover table rows (#218)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:97
+msgid "(**rst**) keep consecutive Jinja statements on their own lines (#216)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:98
+msgid "(**rst**) treat footnotes and citations as hung prose (#193)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:99
+msgid "(**rst**) keep two-space list hang inside open inline literals (#164)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:100
+msgid "(**rst**) keep line blocks out of the grid-table arm (#192)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:101
+msgid "(**rst**) keep two-space list hang inside open quotes (#160)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:102
+msgid "(**rst**) blank closes comments so later indent is a hung quote (#198)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:103
+msgid "(**rst**) treat suffix role closer as sentence end (#183)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:104
+msgid "(**rst**) keep compact list-like prose as one paragraph (#163)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:105
+msgid "(**rst**) keep two-space bullet marker hang width (#162)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:106
+msgid "(**rst**) keep definition hang after nested directives (#165)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:107
+msgid "(**rst**) keep two-space list hang inside open parentheses (#161)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:108
+msgid "(**rst**) keep nested list continuation hang at inner width (#154)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:109
+msgid "(**rst**) keep two-space list hang after abbreviations (#158)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:110
+msgid "(**rst**) keep over-indented list continuation as a definition (#159)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:111
+msgid "(**rst**) hang list sentences after a :role:` continuation (#157)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:112
+msgid ""
+"(**rst**) treat full Docutils adornment charset as section underline (#151)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:113
+msgid "(**rst**) scan simple tables to the matching-width closer (#146)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:114
+msgid "(**rst**) treat anonymous hyperlink targets as structure (#144)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:115
+msgid "(**rst**) treat quoted literal blocks as structure (#142)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:116
+msgid "(**rst**) treat doctest blocks as structure (#138)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:117
+msgid "(**rst**) hang alpha, roman, and paren enumerators (#136)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:118
+msgid "(**rst**) treat option lists as structure plus hung prose (#127)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:119
+msgid "(**rst**) treat role closer as sentence end (#76)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:120
+msgid "(**rst**) keep block quote indent (#75)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:121
+msgid "(**rst**) keep section adornments on their own line (#73)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:122
+msgid "(**rst**) keep two-space code-block bodies indented (#72)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:123
+msgid "(**sentence**) peel shortest closer before quote-capital (#272)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:124
+msgid "(**sentence**) keep markdown reference links atomic (#227)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:125
+msgid ""
+"(**sentence**) split same-line lowercase proper noun after period (#186)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:126
+msgid "(**sentence**) do not split bang inside markdown code (#118)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:127
+msgid "(**sentence**) keep break before lowercase proper noun (#77)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:128
+msgid "Continuous Integration"
+msgstr ""
+
+#: ../../../CHANGELOG.md:129
+msgid "(**docs**) do not serialize PR builds on the pages lock (#200)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:131
+msgid "v0.11.1 - 2026-09-09"
+msgstr ""
+
+#: ../../../CHANGELOG.md:132 ../../../CHANGELOG.md:166
+#: ../../../CHANGELOG.md:216 ../../../CHANGELOG.md:230
+#: ../../../CHANGELOG.md:239 ../../../CHANGELOG.md:268
+msgid "Features"
+msgstr ""
+
+#: ../../../CHANGELOG.md:133
+msgid "(**cli**) default to pandoc when a writer is available (#68)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:134
+msgid "(**pandoc**) keep RST comments and snapper pragmas on write (#67)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:135
+msgid "(**pandoc**) write reflowed AST through pandoc writer (#56)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:137
+msgid "(**ci**) install cargo-dist on Windows and macOS ARM (#42)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:138
+msgid "(**markdown**) keep indented inner fences as code body (#55)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:139
+msgid "(**pandoc**) write in-process when FFI exports a writer (#63)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:140
+msgid ""
+"(**pandoc**) refuse comments and snapper pragmas instead of dropping them "
+"(#62)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:141
+msgid "(**rst**) join compact list hangs into one prose region (#66)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:142
+msgid "(**rst**) keep two-space directive bodies as structure (#54)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:143
+msgid "(**rst**) keep comment bodies as structure (#52)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:144
+msgid "(**rst**) keep list continuation paragraph hang (#51)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:145
+msgid "(**rst**) keep definition lists as structure (#50)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:146
+msgid "(**rst**) keep simple tables as structure (#49)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:147
+msgid "(**sentence**) markup closer-split needs a real next sentence (#53)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:148 ../../../CHANGELOG.md:191
+#: ../../../CHANGELOG.md:232 ../../../CHANGELOG.md:248
+#: ../../../CHANGELOG.md:277
+msgid "Documentation"
+msgstr ""
+
+#: ../../../CHANGELOG.md:149
+msgid "(**i18n**) regenerate gettext catalogs for v0.11 docs (#69)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:150 ../../../CHANGELOG.md:262
+msgid "Tests"
+msgstr ""
+
+#: ../../../CHANGELOG.md:151
+msgid "(**pandoc**) keep wasm and editors on native parsers (#64)"
+msgstr ""
+
+#: ../../../CHANGELOG.md:153
msgid "v0.11.0 - 2026-09-08"
msgstr ""
-#: ../../../CHANGELOG.md:17
+#: ../../../CHANGELOG.md:155
msgid ""
"(**mcp**) `#[tool_handler]` implements `list_tools` / `call_tool`; "
"`initialize` advertises tools and names the server `snapper` instead of the "
"empty `rmcp` default"
msgstr ""
-#: ../../../CHANGELOG.md:18
+#: ../../../CHANGELOG.md:156
msgid ""
"(**vscode**) `vscode-languageclient` is a runtime dependency only, so `vsce "
"package` ships the module the extension `require`s"
msgstr ""
-#: ../../../CHANGELOG.md:19
+#: ../../../CHANGELOG.md:157
msgid ""
"(**vscode**) `out/extension.js` is an esbuild bundle (`vscode` stays "
"external); the VSIX no longer needs `node_modules` at runtime"
msgstr ""
-#: ../../../CHANGELOG.md:20
+#: ../../../CHANGELOG.md:158
msgid ""
"(**ci**) release and nvim workflows install cargo-dist from a sha256-pinned "
"archive and Rust via `dtolnay/rust-toolchain`; they no longer pipe rustup.sh "
"or cargo-dist-installer.sh into `sh`"
msgstr ""
-#: ../../../CHANGELOG.md:21
+#: ../../../CHANGELOG.md:159
msgid ""
"(**sentence**) a period immediately before Markdown/Org closers (`**`, `*`, "
"backticks, `](url)`) is a sentence end, so `**Bold sentence.** Next` splits "
"and a hand break survives the next run"
msgstr ""
-#: ../../../CHANGELOG.md:22
+#: ../../../CHANGELOG.md:160
msgid ""
"(**latex**) `% snapper:no-preamble` and chapter files with no `\\"
"\\begin{document}` / `\\\\documentclass` are body; class and package files "
"stay preamble"
msgstr ""
-#: ../../../CHANGELOG.md:23
+#: ../../../CHANGELOG.md:161
msgid ""
"(**rst**) adjacent `*`, `-`, `+`, `1.`, and `#.` list items stay separate "
"regions, so compact lists are not glued onto one line"
msgstr ""
-#: ../../../CHANGELOG.md:27
+#: ../../../CHANGELOG.md:165
msgid "v0.10.0 - 2026-08-10"
msgstr ""
-#: ../../../CHANGELOG.md:28 ../../../CHANGELOG.md:78 ../../../CHANGELOG.md:92
-#: ../../../CHANGELOG.md:101 ../../../CHANGELOG.md:130
-msgid "Features"
-msgstr ""
-
-#: ../../../CHANGELOG.md:29
+#: ../../../CHANGELOG.md:167
msgid ""
"(**latex**) `[latex].verbatim_envs` / `structure_envs` / `verbatim_commands` "
"in `.snapperrc.toml` add names to the built-in lists (minted/lstlisting/"
@@ -150,7 +698,7 @@ msgid ""
"split. No regex `other:` key"
msgstr ""
-#: ../../../CHANGELOG.md:30
+#: ../../../CHANGELOG.md:168
msgid ""
"(**reflow**) `--clause-breaks` / `clause_breaks` with `max_width = 0` "
"inserts a newline after every independent-clause mark (`,`, `;`, `:`, em "
@@ -160,7 +708,7 @@ msgid ""
"the same mode"
msgstr ""
-#: ../../../CHANGELOG.md:31
+#: ../../../CHANGELOG.md:169
msgid ""
"(**cli** / **check**) `--check --output-format json|sarif` emits 1-indexed "
"`fused` / `wrap` / `long` diagnostics with excerpts; `long` is advisory "
@@ -169,33 +717,33 @@ msgid ""
"`invocations[0].workingDirectory`)"
msgstr ""
-#: ../../../CHANGELOG.md:32
+#: ../../../CHANGELOG.md:170
msgid ""
"(**mcp**) `mcp` is a default feature, so published `snapper` / `snapper-fmt` "
"binaries include the stdio server; agents should call it (or the CLI) "
"instead of applying sembr/skills by hand"
msgstr ""
-#: ../../../CHANGELOG.md:33
+#: ../../../CHANGELOG.md:171
msgid ""
"(**mcp**) `format_text` accepts `clause_breaks`, `range` (`start`/`end`, 1-"
"indexed inclusive), and `max_width` (default 0)"
msgstr ""
-#: ../../../CHANGELOG.md:34
+#: ../../../CHANGELOG.md:172
msgid ""
"(**mcp**) `check_formatting` accepts `clause_breaks` (default false) and "
"returns `would_reformat` identical to CLI `--check`, plus the same line "
"diagnostics"
msgstr ""
-#: ../../../CHANGELOG.md:35
+#: ../../../CHANGELOG.md:173
msgid ""
"(**safety**) native parsers record source byte ranges and splice reflowed "
"prose into the original document; Structure/Code/Blank are input slices"
msgstr ""
-#: ../../../CHANGELOG.md:36
+#: ../../../CHANGELOG.md:174
msgid ""
"(**safety**) `format_text` runs to a byte fixpoint (cap 4, including A/B "
"cycles) or returns the original; a format-local oracle (region-kind + slice "
@@ -203,33 +751,33 @@ msgid ""
"original"
msgstr ""
-#: ../../../CHANGELOG.md:37
+#: ../../../CHANGELOG.md:175
msgid ""
"(**safety**) `format_bytes` refuses invalid UTF-8 with `InvalidUtf8Error`; "
"`--use-pandoc` refuses (`PandocCannotSplice`) because the AST has no source "
"offsets"
msgstr ""
-#: ../../../CHANGELOG.md:38
+#: ../../../CHANGELOG.md:176
msgid ""
"(**safety**) property tests and a `cargo fuzz` target (fixture corpus) drive "
"`format_text` per format with the backstops off"
msgstr ""
-#: ../../../CHANGELOG.md:39
+#: ../../../CHANGELOG.md:177
msgid ""
"(**code-block**) comment reflow copies non-comment lines as original slices; "
"only comment spans are rewritten"
msgstr ""
-#: ../../../CHANGELOG.md:41
+#: ../../../CHANGELOG.md:179
msgid ""
"(**latex**) render oracle and `--check` payloads honor `[latex]` extras, so "
"a configured `\\\\Verb!%!` is not a comment and production backstops no "
"longer revert the file"
msgstr ""
-#: ../../../CHANGELOG.md:42
+#: ../../../CHANGELOG.md:180
msgid ""
"(**latex**) tokenize `\\\\verb` / `\\\\lstinline` (optional `[...]`) before "
"split so inner `%` is not a comment and inner `.!?` do not split; unmatched "
@@ -242,19 +790,19 @@ msgid ""
"`print(\\\"%\\\")` still close"
msgstr ""
-#: ../../../CHANGELOG.md:43
+#: ../../../CHANGELOG.md:181
msgid ""
"(**check**) fused and long run on the parser prose payload, so `1. Hello "
"world.` and `See Fig. 1. % TODO cite` are not false fused"
msgstr ""
-#: ../../../CHANGELOG.md:44
+#: ../../../CHANGELOG.md:182
msgid ""
"(**reflow**) splice keeps the trailing space before a mid-line TeX `%` "
"comment so that line stays one source line"
msgstr ""
-#: ../../../CHANGELOG.md:45
+#: ../../../CHANGELOG.md:183
msgid ""
"(**reflow**) `--max-width` keeps links, images, inline code, autolinks, "
"`$math$`, and Org `[[...]]` on one line (overlong token may sit alone; no "
@@ -270,47 +818,47 @@ msgid ""
"splice does not return the original"
msgstr ""
-#: ../../../CHANGELOG.md:46
+#: ../../../CHANGELOG.md:184
msgid ""
"(**reflow**) list continuation sentences hang at the marker width so Org "
"rejoins the item on reparse; Markdown quotes repeat the `>` prefix (`> "
"One.` / `> Two.`, nested `> >`)"
msgstr ""
-#: ../../../CHANGELOG.md:47
+#: ../../../CHANGELOG.md:185
msgid ""
"(**latex**) a trailing `%` eats the newline (TeX nospace join), so `foo%\\"
"\\nbar` is no longer emitted as `foo% bar` (which comments out `bar`); mid-"
"line `%` comments leave prose"
msgstr ""
-#: ../../../CHANGELOG.md:48
+#: ../../../CHANGELOG.md:186
msgid ""
"(**sentence**) `w.r.t.` is a multi-word abbreviation; `\\\\(...\\\\)` and `$"
"$...$$` stay atomic like `$...$`"
msgstr ""
-#: ../../../CHANGELOG.md:49
+#: ../../../CHANGELOG.md:187
msgid ""
"(**cli**) unknown source extensions (`.rs`, `.py`, no extension) are refused "
"unless `--format` is explicit; `.txt` remains plaintext"
msgstr ""
-#: ../../../CHANGELOG.md:50
+#: ../../../CHANGELOG.md:188
msgid ""
"(**org** / **sentence**) verbatim and inline-code spans pair to the first "
"closer that satisfies Org's border and post rules, so an `=` or `~` inside "
"the span no longer orphans the real closer onto the next line"
msgstr ""
-#: ../../../CHANGELOG.md:51
+#: ../../../CHANGELOG.md:189
msgid ""
"(**sentence**) CommonMark `*`/`**` and GFM `~~` pair by flanking rules, so "
"`**the end. Still bold**` stays one sentence while `**complex**. Equity` may "
"split after the closer"
msgstr ""
-#: ../../../CHANGELOG.md:52
+#: ../../../CHANGELOG.md:190
msgid ""
"(**markdown**) `>` is kept on each reflowed content line (including "
"`max_width` wraps; prefix counts toward width); two-space and backslash hard "
@@ -319,70 +867,65 @@ msgid ""
"(`` still works)"
msgstr ""
-#: ../../../CHANGELOG.md:53 ../../../CHANGELOG.md:94 ../../../CHANGELOG.md:110
-#: ../../../CHANGELOG.md:139
-msgid "Documentation"
-msgstr ""
-
-#: ../../../CHANGELOG.md:54
+#: ../../../CHANGELOG.md:192
msgid ""
"README distinguishes snapper from admk/sembr and sembr/skills; crate "
"keywords include `sembr` and `markdown`"
msgstr ""
-#: ../../../CHANGELOG.md:55
+#: ../../../CHANGELOG.md:193
msgid ""
"(**markdown** / **sentence**) inline code delimited by two or more backticks "
"can contain a shorter backtick run"
msgstr ""
-#: ../../../CHANGELOG.md:56
+#: ../../../CHANGELOG.md:194
msgid ""
"(**code-block**) a block-comment closer inside a string no longer ends the "
"comment; quote-sequence closers (`\"\"\"`) still match naively so Python "
"docstrings reflow"
msgstr ""
-#: ../../../CHANGELOG.md:57
+#: ../../../CHANGELOG.md:195
msgid ""
"(**sentence**) abbreviation merge does not invent a space before LaTeX `~` "
"(so `Eq.~\\ref{}` stays attached once org `~code~` pairing no longer "
"swallows that tilde)"
msgstr ""
-#: ../../../CHANGELOG.md:58
+#: ../../../CHANGELOG.md:196
msgid ""
"(**sentence**) restore wrapped placeholders from the outside in, so a "
"markdown-link regex match that contains a paired-span token cannot leak "
"`\\x00PHn\\x00` into output"
msgstr ""
-#: ../../../CHANGELOG.md:59 ../../../CHANGELOG.md:71 ../../../CHANGELOG.md:81
-#: ../../../CHANGELOG.md:116
+#: ../../../CHANGELOG.md:197 ../../../CHANGELOG.md:209
+#: ../../../CHANGELOG.md:219 ../../../CHANGELOG.md:254
msgid "Notes"
msgstr ""
-#: ../../../CHANGELOG.md:60
+#: ../../../CHANGELOG.md:198
msgid ""
"Native `format_text` refuses `--use-pandoc` (`PandocCannotSplice`); splice "
"needs source offsets the AST does not carry"
msgstr ""
-#: ../../../CHANGELOG.md:61
+#: ../../../CHANGELOG.md:199
msgid ""
"`--clause-breaks` with the default `max_width = 0` is SemBr rule 5 (break at "
"existing whitespace after clause punct); `max_width > 0` still wrap-prefers"
msgstr ""
-#: ../../../CHANGELOG.md:62
+#: ../../../CHANGELOG.md:200
msgid "Published binaries include the MCP server (`mcp` is a default feature)"
msgstr ""
-#: ../../../CHANGELOG.md:66
+#: ../../../CHANGELOG.md:204
msgid "v0.9.1 - 2026-08-04"
msgstr ""
-#: ../../../CHANGELOG.md:68
+#: ../../../CHANGELOG.md:206
msgid ""
"(**reflow**) clause breaks only engage when a sentence exceeds `max_width` "
"and only at whitespace after the punctuation; v0.9.0 split at every clause "
@@ -390,104 +933,104 @@ msgid ""
"em dashes), which inserted spaces into rendered output"
msgstr ""
-#: ../../../CHANGELOG.md:69
+#: ../../../CHANGELOG.md:207
msgid "(**cli**) `--color auto` honors the `NO_COLOR` environment variable"
msgstr ""
-#: ../../../CHANGELOG.md:70
+#: ../../../CHANGELOG.md:208
msgid ""
"(**neural**) nnsplit model loads are serialized process-wide; concurrent "
"first-use construction could read a partially downloaded model"
msgstr ""
-#: ../../../CHANGELOG.md:72
+#: ../../../CHANGELOG.md:210
msgid ""
"v0.9.1 supersedes v0.9.0 on every channel; do not use v0.9.0 with `--clause-"
"breaks`"
msgstr ""
-#: ../../../CHANGELOG.md:73
+#: ../../../CHANGELOG.md:211
msgid ""
"`RELEASING.md` documents the release channels and recovery rules; `scripts/"
"check_release_ready.sh` gates version parity, tag hygiene, and the conda "
"sha256"
msgstr ""
-#: ../../../CHANGELOG.md:77
+#: ../../../CHANGELOG.md:215
msgid "v0.9.0 - 2026-08-04"
msgstr ""
-#: ../../../CHANGELOG.md:79
+#: ../../../CHANGELOG.md:217
msgid ""
"(**cli** / **diff**) global `--color auto|always|never` for top-level `--"
"diff`, `sdiff`, and `git-diff`; shared ANSI styling for headers, hunks, "
"additions, and removals (closes #6)"
msgstr ""
-#: ../../../CHANGELOG.md:80
+#: ../../../CHANGELOG.md:218
msgid ""
"(**reflow**) `--clause-breaks` / `clause_breaks` config: prefer soft breaks "
"after independent-clause punctuation (comma, semicolon, colon, em dash) "
"under `max_width` (closes #7)"
msgstr ""
-#: ../../../CHANGELOG.md:82
+#: ../../../CHANGELOG.md:220
msgid "Subcommand `--no-color` remains as an alias for `--color never`"
msgstr ""
-#: ../../../CHANGELOG.md:83
+#: ../../../CHANGELOG.md:221
msgid "`--color auto` honors the `NO_COLOR` environment variable"
msgstr ""
-#: ../../../CHANGELOG.md:84
+#: ../../../CHANGELOG.md:222
msgid ""
"Clause breaks only apply to sentences that exceed `max_width`, and only at "
"whitespace after the punctuation; tokens such as `1,000`, `10:30`, URLs, and "
"`--flags` never split"
msgstr ""
-#: ../../../CHANGELOG.md:88
+#: ../../../CHANGELOG.md:226
msgid "v0.8.1 - 2026-07-20"
msgstr ""
-#: ../../../CHANGELOG.md:90
+#: ../../../CHANGELOG.md:228
msgid ""
"(**pre-commit**) ship a real `id: snapper` hook (`snapper --in-place`) with "
"extension-based `files` matching; drop leftover SemBr `id`/`entry` and "
"invalid identify type `org`"
msgstr ""
-#: ../../../CHANGELOG.md:91
+#: ../../../CHANGELOG.md:229
msgid ""
"(**lockfile**) CI asserts `Cargo.toml` package version equals the `snapper-"
"fmt` entry in `Cargo.lock` and that `cargo metadata --locked` succeeds "
"(catches the 0.7.9 tag skew)"
msgstr ""
-#: ../../../CHANGELOG.md:93
+#: ../../../CHANGELOG.md:231
msgid ""
"(**cli**) install `snapper-fmt` as a second binary name (same program as "
"`snapper`) so hosts that already own openSUSE's `snapper` can call the "
"formatter without PATH surgery"
msgstr ""
-#: ../../../CHANGELOG.md:95
+#: ../../../CHANGELOG.md:233
msgid ""
"Installation: name collision with openSUSE snapper; prefer `snapper-fmt` on "
"those systems"
msgstr ""
-#: ../../../CHANGELOG.md:96
+#: ../../../CHANGELOG.md:234
msgid ""
"Pre-commit section: which extensions the hook matches and that Rust is "
"required to build it"
msgstr ""
-#: ../../../CHANGELOG.md:100
+#: ../../../CHANGELOG.md:238
msgid "v0.8.0 - 2026-07-20"
msgstr ""
-#: ../../../CHANGELOG.md:102
+#: ../../../CHANGELOG.md:240
msgid ""
"(**pandoc**) optional `--use-pandoc` path: parse with pandoc (CLI JSON or in-"
"process FFI), classify regions from AST node kinds, reflow only prose "
@@ -495,20 +1038,20 @@ msgid ""
"islands) preserved"
msgstr ""
-#: ../../../CHANGELOG.md:103
+#: ../../../CHANGELOG.md:241
msgid ""
"(**pandoc**) `--pandoc-backend auto|ffi|cli` (default auto: prefer warm FFI "
"when available, else CLI); explicit `ffi` fails closed if the library is "
"missing"
msgstr ""
-#: ../../../CHANGELOG.md:104
+#: ../../../CHANGELOG.md:242
msgid ""
"(**pandoc**) content-addressed AST cache (`SNAPPER_PANDOC_CACHE` / "
"`SNAPPER_PANDOC_CACHE_DIR`)"
msgstr ""
-#: ../../../CHANGELOG.md:105
+#: ../../../CHANGELOG.md:243
msgid ""
"(**pandoc-colink**) opt-in Cargo feature: absorb `libsnapper_pandoc.a` from "
"`native/snapper-pandoc/build-static.sh` (`ghc -staticlib`) into one "
@@ -516,43 +1059,43 @@ msgid ""
"graph; **not** enabled by default (default/cargo-dist remain GHC-free)"
msgstr ""
-#: ../../../CHANGELOG.md:107
+#: ../../../CHANGELOG.md:245
msgid ""
"(**org** / **latex**) keep full headline and sectioning lines as Structure "
"(do not reflow multi-sentence titles; no orphan title lines without stars / "
"mid-brace splits)"
msgstr ""
-#: ../../../CHANGELOG.md:108
+#: ../../../CHANGELOG.md:246
msgid ""
"(**markdown**) keep setext headings (title + `=`/`-` underline) as Structure "
"so multi-sentence titles do not reflow and underlines are not glued onto "
"title text"
msgstr ""
-#: ../../../CHANGELOG.md:109
+#: ../../../CHANGELOG.md:247
msgid ""
"(**ci**) exclude `pandoc-colink` from WASM feature matrix (`--all-features` "
"panic without static archive); colink still fail-closed in main CI"
msgstr ""
-#: ../../../CHANGELOG.md:111
+#: ../../../CHANGELOG.md:249
msgid ""
"Native flib README: static archive vs shared dlopen; howto orgmode pandoc "
"backend; UPX is optional packer only (not used in release)"
msgstr ""
-#: ../../../CHANGELOG.md:112
+#: ../../../CHANGELOG.md:250
msgid ""
"Formats reference: Org headlines, LaTeX sectioning, Markdown ATX and setext "
"headings are full Structure lines"
msgstr ""
-#: ../../../CHANGELOG.md:113 ../../../CHANGELOG.md:141
+#: ../../../CHANGELOG.md:251 ../../../CHANGELOG.md:279
msgid "Tests / CI"
msgstr ""
-#: ../../../CHANGELOG.md:114
+#: ../../../CHANGELOG.md:252
msgid ""
"AST fixture tests (JSON on disk) run without pandoc binary; live CLI/FFI "
"parity tests skip cleanly when neither is installed; CI asserts colink "
@@ -560,112 +1103,108 @@ msgid ""
"without GHC"
msgstr ""
-#: ../../../CHANGELOG.md:115
+#: ../../../CHANGELOG.md:253
msgid ""
"Unit and format_text coverage for multi-sentence Org headlines, LaTeX "
"`\\section{...}` titles, and Markdown setext"
msgstr ""
-#: ../../../CHANGELOG.md:117
+#: ../../../CHANGELOG.md:255
msgid ""
"Plain release binaries stay ~16 MiB class; static-colink builds are larger "
"(~64 MiB class on linux) and optional for multi-format in-process use"
msgstr ""
-#: ../../../CHANGELOG.md:121
+#: ../../../CHANGELOG.md:259
msgid "v0.7.9 - 2026-07-07"
msgstr ""
-#: ../../../CHANGELOG.md:123
+#: ../../../CHANGELOG.md:261
msgid ""
"(**markdown**) keep ATX headings as a single Structure line (do not reflow "
"titles after `### 1.` or mid-heading periods; fixes orphan `### N.` lines, "
"snapper-25kc)"
msgstr ""
-#: ../../../CHANGELOG.md:124
-msgid "Tests"
-msgstr ""
-
-#: ../../../CHANGELOG.md:125
+#: ../../../CHANGELOG.md:263
msgid ""
"Unit and integration coverage for numbered ATX headings with inline code"
msgstr ""
-#: ../../../CHANGELOG.md:129
+#: ../../../CHANGELOG.md:267
msgid "v0.7.8 - 2026-06-27"
msgstr ""
-#: ../../../CHANGELOG.md:131
+#: ../../../CHANGELOG.md:269
msgid ""
"(**wasm** / **word**) local `wasm-pack` build of `packages/snapper-wasm` and "
"Word add-in `dist/` for sideload; VS Code extension published **0.7.8** to "
"Marketplace"
msgstr ""
-#: ../../../CHANGELOG.md:132
+#: ../../../CHANGELOG.md:270
msgid ""
"(**parser**) `Region::Code` for Org/Markdown/LaTeX/RST source blocks; `[code."
"]` comment reflow and optional `--format-code`"
msgstr ""
-#: ../../../CHANGELOG.md:133
+#: ../../../CHANGELOG.md:271
msgid ""
"(**sentence**) delimiter-span post-pipeline (quotes, parens, brackets); "
"shared by rules and `--neural`"
msgstr ""
-#: ../../../CHANGELOG.md:134
+#: ../../../CHANGELOG.md:272
msgid ""
"(**sentence**) neural path protects inline tokens (links, emphasis, …) "
"before the model, then restores and refines"
msgstr ""
-#: ../../../CHANGELOG.md:135
+#: ../../../CHANGELOG.md:273
msgid ""
"(**cli**) multi-file splitter reuse (one build per format/lang/neural/extras "
"key); parallel multi-file always"
msgstr ""
-#: ../../../CHANGELOG.md:136
+#: ../../../CHANGELOG.md:274
msgid ""
"(**reflow**) parallel region reflow for large documents (`cli` feature, ≥32 "
"regions)"
msgstr ""
-#: ../../../CHANGELOG.md:138
+#: ../../../CHANGELOG.md:276
msgid ""
"(**org** / **sentence**) trailing `>` on headings; org emphasis not pseudo-"
"headlines; space-safe segment glue after neural cuts"
msgstr ""
-#: ../../../CHANGELOG.md:140
+#: ../../../CHANGELOG.md:278
msgid ""
"Span policy in formats reference; README/pre-commit pin **v0.7.8**; MCP/site/"
"VS Code code-block accuracy"
msgstr ""
-#: ../../../CHANGELOG.md:142
+#: ../../../CHANGELOG.md:280
msgid ""
"`sentence_delim_props` matrix + proptest; multi-format and code-comment span "
"tests; CI dogfood `snapper --check` on docs/examples"
msgstr ""
-#: ../../../CHANGELOG.md:146
+#: ../../../CHANGELOG.md:284
msgid "v0.7.7 - 2026-04-11"
msgstr ""
-#: ../../../CHANGELOG.md:148
+#: ../../../CHANGELOG.md:286
msgid ""
"(**config**) honor project config across cli and watch - (5f5179d) - "
"*HaoZeke*"
msgstr ""
-#: ../../../CHANGELOG.md:152
+#: ../../../CHANGELOG.md:290
msgid "v0.7.6 - 2026-04-09"
msgstr ""
-#: ../../../CHANGELOG.md:154
+#: ../../../CHANGELOG.md:292
msgid ""
"(**markdown**) join list-item continuation lines before sentence splitting - "
"(8e45528) - *HaoZeke*"
diff --git a/docs/locale/pl/LC_MESSAGES/contributing/index.po b/docs/locale/pl/LC_MESSAGES/contributing/index.po
index 930658a7..a0bd608b 100644
--- a/docs/locale/pl/LC_MESSAGES/contributing/index.po
+++ b/docs/locale/pl/LC_MESSAGES/contributing/index.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: pl \n"
@@ -52,107 +52,122 @@ msgstr "Sprawdzenie dogfood (weryfikacja formatowania całej dokumentacji):"
msgid "Project structure"
msgstr "Struktura projektu"
-#: ../../source/contributing/index.rst:99
+#: ../../source/contributing/index.rst:100
msgid "Commit conventions"
msgstr "Konwencje commitów"
-#: ../../source/contributing/index.rst:101
+#: ../../source/contributing/index.rst:102
msgid ""
"Commits follow conventional commits, managed by ``cocogitto`` (``cog``):"
msgstr ""
"Commity stosują konwencję conventional commits, zarządzaną przez "
"``cocogitto`` (``cog``):"
-#: ../../source/contributing/index.rst:103
+#: ../../source/contributing/index.rst:104
msgid "``feat:``"
msgstr "``feat:``"
-#: ../../source/contributing/index.rst:104
+#: ../../source/contributing/index.rst:105
msgid "new features"
msgstr "nowe funkcjonalności"
-#: ../../source/contributing/index.rst:106
+#: ../../source/contributing/index.rst:107
msgid "``fix:``"
msgstr "``fix:``"
-#: ../../source/contributing/index.rst:107
+#: ../../source/contributing/index.rst:108
msgid "bug fixes"
msgstr "poprawki błędów"
-#: ../../source/contributing/index.rst:109
+#: ../../source/contributing/index.rst:110
msgid "``doc:``"
msgstr "``doc:``"
-#: ../../source/contributing/index.rst:110
+#: ../../source/contributing/index.rst:111
msgid "documentation changes"
msgstr "zmiany w dokumentacji"
-#: ../../source/contributing/index.rst:112
+#: ../../source/contributing/index.rst:113
msgid "``chore:``"
msgstr "``chore:``"
-#: ../../source/contributing/index.rst:113
+#: ../../source/contributing/index.rst:114
msgid "maintenance, dependency bumps"
msgstr "utrzymanie, aktualizacje zależności"
-#: ../../source/contributing/index.rst:115
+#: ../../source/contributing/index.rst:116
msgid "``tst:``"
msgstr "``tst:``"
-#: ../../source/contributing/index.rst:116
+#: ../../source/contributing/index.rst:117
msgid "test changes"
msgstr "zmiany w testach"
-#: ../../source/contributing/index.rst:118
+#: ../../source/contributing/index.rst:119
msgid "``bld:``"
msgstr "``bld:``"
-#: ../../source/contributing/index.rst:119
+#: ../../source/contributing/index.rst:120
msgid "build system changes"
msgstr "zmiany w systemie budowania"
-#: ../../source/contributing/index.rst:124
+#: ../../source/contributing/index.rst:125
msgid "Building documentation"
msgstr "Budowanie dokumentacji"
-#: ../../source/contributing/index.rst:130
+#: ../../source/contributing/index.rst:131
+msgid ""
+"That exports org to RST, refreshes the Icelandic and Polish gettext "
+"catalogs, and builds HTML for ``en``, ``is``, and ``pl``. RST, ``.pot``, "
+"``.mo``, and ``docs/build/`` are gitignored. When org reference text changes "
+"(especially ``formats.org``), commit the updated ``docs/locale/**/*.po`` "
+"files so the next Pages build does not keep v0.11 msgids."
+msgstr ""
+"To eksportuje org do RST, odświeża islandzkie i polskie katalogi "
+"gettext i buduje HTML dla ``en``, ``is`` i ``pl``. RST, ``.pot``, "
+"``.mo`` oraz ``docs/build/`` są ignorowane przez git. Gdy zmienia się "
+"tekst org w dokumentacji (szczególnie ``formats.org``), zatwierdź "
+"zaktualizowane pliki ``docs/locale/**/*.po``, żeby kolejna kompilacja "
+"Pages nie trzymała msgid z v0.11."
+
+#: ../../source/contributing/index.rst:135
msgid "Or manually:"
msgstr "Lub ręcznie:"
-#: ../../source/contributing/index.rst:140
+#: ../../source/contributing/index.rst:147
msgid "Adding a new format parser"
msgstr "Dodawanie nowego parsera formatu"
-#: ../../source/contributing/index.rst:142
+#: ../../source/contributing/index.rst:149
msgid ""
"Create ``src/parser/yourformat.rs`` implementing the ``FormatParser`` trait"
msgstr ""
"Utwórz ``src/parser/yourformat.rs`` implementujący cechę ``FormatParser``"
-#: ../../source/contributing/index.rst:144
+#: ../../source/contributing/index.rst:151
msgid "Add the variant to ``Format`` enum in ``src/format.rs``"
msgstr "Dodaj wariant do enuma ``Format`` w ``src/format.rs``"
-#: ../../source/contributing/index.rst:146
+#: ../../source/contributing/index.rst:153
msgid "Wire it into ``format_text()`` in ``src/lib.rs``"
msgstr "Podłącz go do ``format_text()`` w ``src/lib.rs``"
-#: ../../source/contributing/index.rst:148
+#: ../../source/contributing/index.rst:155
#, fuzzy
msgid "Add extension mapping in ``Format::recognized_from_extension()``"
msgstr "Dodaj mapowanie rozszerzeń w ``Format::from_path()``"
-#: ../../source/contributing/index.rst:150
+#: ../../source/contributing/index.rst:157
msgid ""
"Add fixture pair in ``tests/fixtures/`` (``sample.fmt`` + ``expected.fmt``)"
msgstr ""
"Dodaj parę plików testowych w ``tests/fixtures/`` (``sample.fmt`` + "
"``expected.fmt``)"
-#: ../../source/contributing/index.rst:152
+#: ../../source/contributing/index.rst:159
msgid "Add integration tests in ``tests/integration.rs``"
msgstr "Dodaj testy integracyjne w ``tests/integration.rs``"
-#: ../../source/contributing/index.rst:154
+#: ../../source/contributing/index.rst:161
msgid "Document in ``docs/orgmode/reference/formats.org``"
msgstr "Udokumentuj w ``docs/orgmode/reference/formats.org``"
diff --git a/docs/locale/pl/LC_MESSAGES/reference/abbreviations.po b/docs/locale/pl/LC_MESSAGES/reference/abbreviations.po
index 7abefab6..56e8ec8e 100644
--- a/docs/locale/pl/LC_MESSAGES/reference/abbreviations.po
+++ b/docs/locale/pl/LC_MESSAGES/reference/abbreviations.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: pl \n"
@@ -204,25 +204,54 @@ msgid "Org links: ``[[https://example.com][Ex. Site]]``"
msgstr "Linki Org: ``[[https://example.com][Ex. Site]]``"
#: ../../source/reference/abbreviations.rst:131
-msgid "LaTeX math: ``$x = 3.14$``"
-msgstr "Wzory LaTeX: ``$x = 3.14$``"
+msgid "Org macros: ``{{{cite(Smith. 2020)}}}``, ``{{{title}}}``"
+msgstr ""
#: ../../source/reference/abbreviations.rst:133
-msgid "LaTeX commands: ``\\cite{smith.2024}``"
-msgstr "Polecenia LaTeX: ``\\cite{smith.2024}``"
+msgid ""
+"Org radio / angle targets: ``<<>>``, ``<>``"
+msgstr ""
#: ../../source/reference/abbreviations.rst:135
-msgid "Markdown links: ``[Example Inc.](url)``"
-msgstr "Linki Markdown: ``[Example Inc.](url)``"
+msgid ""
+"Org inline footnotes: ``[fn:: the Fourier. transform]``, ``[fn:note: the "
+"Fourier. transform]``"
+msgstr ""
#: ../../source/reference/abbreviations.rst:137
+msgid ""
+"RST substitution references: ``|fig. 1|``, ``|version|``, ``|name|_``, ``|"
+"name|__``"
+msgstr ""
+
+#: ../../source/reference/abbreviations.rst:139
+msgid ""
+"LaTeX math: ``$x = 3.14$``, ``\\( x = 1. \\)``, ``\\(\\alpha. \\beta\\)``"
+msgstr ""
+
+#: ../../source/reference/abbreviations.rst:141
+#, fuzzy
+msgid "LaTeX commands: ``\\cite{smith.2024}``, ``\\sqrt[2]{a. b}``"
+msgstr "Polecenia LaTeX: ``\\cite{smith.2024}``"
+
+#: ../../source/reference/abbreviations.rst:143
+#, fuzzy
+msgid ""
+"Markdown links: ``[Example Inc.](url)``, ``[the Fourier. transform][wiki]``"
+msgstr "Linki Markdown: ``[Example Inc.](url)``"
+
+#: ../../source/reference/abbreviations.rst:145
msgid "Inline code: ``~std.io.Read~``,"
msgstr "Kod inline: ``~std.io.Read~``,"
-#: ../../source/reference/abbreviations.rst:139
+#: ../../source/reference/abbreviations.rst:147
msgid ""
"These tokens get replaced with safe placeholders before sentence detection "
"and restored afterward."
msgstr ""
"Tokeny te są zastępowane bezpiecznymi symbolami zastępczymi przed wykryciem "
"zdań i przywracane po zakończeniu."
+
+#~ msgid "LaTeX math: ``$x = 3.14$``"
+#~ msgstr "Wzory LaTeX: ``$x = 3.14$``"
diff --git a/docs/locale/pl/LC_MESSAGES/reference/config.po b/docs/locale/pl/LC_MESSAGES/reference/config.po
index 0a1b2a73..8932d103 100644
--- a/docs/locale/pl/LC_MESSAGES/reference/config.po
+++ b/docs/locale/pl/LC_MESSAGES/reference/config.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:13-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: pl \n"
@@ -195,43 +195,175 @@ msgstr ""
#: ../../source/reference/config.rst:171
msgid ""
"String array of environment names treated like ``minted`` / ``lstlisting`` / "
-"``verbatim`` (``Region::Code``, no reflow). Built-in: ``minted``, "
-"``lstlisting``, ``verbatim``. Adding ``Verbatim`` (fancyvrb) stops reflow of "
-"that environment."
+"``verbatim`` / ``comment`` (``Region::Code``, no reflow). Built-in: "
+"``minted`` / ``minted*``, ``lstlisting`` / ``lstlisting*``, ``verbatim``, "
+"``comment``, Overleaf ``Verbatim`` / ``boxedverbatim`` / ``tcblisting`` / "
+"``tcblisting*`` / ``codeexample`` / ``tcbverbatimwrite`` / "
+"``tcbwritetemp`` / leftover ``tcboutputlisting`` / ``tcbexternal`` / "
+"``dispExample`` / ``dispExample*`` / ``dispListing`` / ``dispListing*``, "
+"fancyvrb ``BVerbatim`` / ``BVerbatim*`` / ``LVerbatim`` / ``LVerbatim*`` / "
+"``Verbatim*`` / ``SaveVerbatim`` / ``VerbatimOut`` / fvextra "
+"``VerbatimWrite`` / ``VerbatimBuffer`` / ``VerbEnv``, verbments.sty "
+"``pyglist``, texments.sty / pygmentex.sty ``pygmented``, moreverb "
+"``verbatimtab`` / ``verbatimwrite`` / ``listing`` / ``listingcont`` / "
+"``listing*`` / ``listingcont*``, leftover sverb.sty ``verbwrite`` / "
+"``ignore`` / ``demo`` / ``demo*``, standard ``alltt``, spverbatim.sty "
+"``spverbatim``, piton.sty ``Piton``, latexindent ``filecontents`` / "
+"``filecontents*``, filecontentsdef.sty ``filecontentsdef`` / "
+"``filecontentsgdef`` / ``filecontentsdefmacro`` / "
+"``filecontentsgdefmacro`` / ``filecontentshere`` and starred twins "
+"``filecontentsdef*`` / ``filecontentsgdef*`` / ``filecontentshere*``, "
+"scontents.sty ``scontents`` / ``verbatimsc``, tree-sitter-latex "
+"``sagesilent`` / ``sageblock``, sagetex.sty ``sageverbatim`` / "
+"``sageexample`` / ``sagecommandline``, pythontex.sty ``pycode`` / "
+"``pycode*`` / ``pyblock`` / ``pyblock*`` / ``pyverbatim`` / "
+"``pyverbatim*`` / ``pyconsole`` / ``pyconsole*`` / ``pygments`` / "
+"``sympycode`` / ``sympyblock`` / ``sympyverbatim`` / ``sympyconsole`` / "
+"``pylabcode`` / ``pylabblock`` / ``pylabverbatim`` / ``pylabconsole`` and "
+"starred twins, leftover default-family ``pyconcode`` / ``pyconverbatim`` / "
+"``pysub`` / ``pyconsub`` / ``sympyconcode`` / ``sympyconverbatim`` / "
+"``sympysub`` / ``sympyconsub`` / ``pylabconcode`` / ``pylabconverbatim`` / "
+"``pylabsub`` / ``pylabconsub`` / ``pythontexcustomcode``, option-family "
+"``usefamily`` leftovers (``rubycode`` representative; ruby / rb / julia / "
+"juliacon / jl / matlab / octave / bash / sage / rust / rs / R / Rcon / "
+"perl / pl / perlsix / psix / javascript / js), pythonhighlight.sty "
+"``python``, pyluatex.sty ``pythonq`` / ``pythonrepl``, showexpl.sty "
+"``LTXexample``, luamplib.dtx ``mplibcode``, luacode.sty leftover "
+"``luaexec``, and codehigh.sty ``codehigh`` / ``demohigh`` / ``codehigh*`` / "
+"``demohigh*``."
+msgstr ""
+
+#: ../../source/reference/config.rst:175
+msgid "Adding an unlisted name stops reflow of that environment."
msgstr ""
-#: ../../source/reference/config.rst:178
+#: ../../source/reference/config.rst:180
msgid "structure\\ :sub:`envs`\\ (latex)"
msgstr ""
-#: ../../source/reference/config.rst:180
+#: ../../source/reference/config.rst:182
msgid ""
-"String array of environment names treated like ``equation`` / ``figure`` "
+"String array of environment names treated like ``equation`` "
"(``Region::Structure``, no reflow). Built-in: the ``NON_PROSE_ENVS`` list "
-"(equation, align, figure, table, tabular, tikzpicture, and starred variants, "
-"plus the built-in code envs). Adding ``algorithm`` or ``comment`` stops "
-"reflow of those environments."
+"(equation, align, tabular, tikzpicture, and starred variants, plus the built-"
+"in code envs). Figure/table chrome stays Structure; the ``\\caption`` long "
+"argument is Prose. Adding ``algorithm`` stops reflow of that environment."
msgstr ""
-#: ../../source/reference/config.rst:187
+#: ../../source/reference/config.rst:190
msgid "verbatim\\ :sub:`commands`\\ (latex)"
msgstr ""
-#: ../../source/reference/config.rst:189
+#: ../../source/reference/config.rst:192
msgid ""
"String array of extra command names tokenized like the built-in verb command "
"before sentence split. The next character after the name is the delimiter. "
-"Built-in names are ``verb`` and ``lstinline``; ``lstinline`` still accepts "
-"optional ``[...]`` and ``{...}``. Adding ``Verb`` (fancyvrb) keeps that "
-"command's delimited body atomic and treats an inner ``%`` as content, not a "
-"comment."
-msgstr ""
-
-#: ../../source/reference/config.rst:197
+"Built-in names are leftover ``verb`` / ``verb*``, leftover ``lstinline``, "
+"``lstinputlisting``, leftover ``spverb``, leftover ``mintinline``, "
+"``inputminted``, leftover ``mint``, leftover fancyvrb ``Verb`` / ``Verb*`` / "
+"leftover ``SaveVerb`` / leftover ``UseVerb`` / leftover ``UseVerbatim`` / "
+"leftover ``LUseVerbatim`` / leftover ``BUseVerbatim`` / leftover fvextra "
+"``EscVerb`` / leftover fvextra ``VerbatimInsertBuffer`` / "
+"``VerbatimClearBuffer`` / ``InsertBuffer`` / ``IterateBuffer`` / leftover "
+"fancyvrb ``DefineShortVerb`` / ``UndefineShortVerb`` / ``VerbatimInput`` / "
+"``BVerbatimInput`` / ``LVerbatimInput``, piton.sty leftover ``\\piton`` / "
+"``\\PitonInputFile`` / ``\\PitonInputFileT`` / ``\\PitonInputFileF`` / "
+"``\\PitonInputFileTF``, tools/verbatim.sty ``\\verbatiminput``, tcolorbox "
+"``\\tcbinputlisting``, pythontex.sty ``\\inputpy`` / ``\\inputpycon`` / "
+"leftover inline ``\\py`` / ``\\pyc`` / ``\\pys`` / ``\\pyb`` / ``\\pyv`` / "
+"``\\pycon`` and twins / ``\\sympy`` / ``\\pylab`` and twins / leftover "
+"usefamily ``\\ruby`` / ``\\rb`` / ``\\julia`` / ``\\jl`` / ``\\matlab`` / "
+"``\\octave`` / ``\\bash`` / ``\\sage`` / ``\\rust`` / ``\\rs`` / ``\\R`` / "
+"``\\perl`` / ``\\pl`` / ``\\perlsix`` / ``\\psix`` / ``\\javascript`` / "
+"``\\js`` and twins / ``\\inputpygments`` / ``\\pygment`` / leftover "
+"``\\pythontexcustomc``, pythonhighlight.sty ``\\inputpython`` / "
+"``\\inputpythonfile`` / leftover ``\\pyth``, catchfilebetweentags.sty "
+"``\\CatchFileBetweenTags`` / ``\\CatchFileBetweenDelims`` / "
+"``\\ExecuteMetaData``, catchfile.sty leftover ``\\CatchFileDef`` / "
+"``\\CatchFileEdef``, moreverb ``\\listinginput`` / leftover "
+"``\\listingcont`` / leftover ``\\verbatimtabinput`` / "
+"``\\verbatimtabinput*`` / leftover ``\\verbatimwrite`` / "
+"``\\verbatimwrite*``, sagetex ``\\sageinput`` / leftover inline "
+"``\\sageplot`` / ``\\sagestr``, scontents leftover ``\\Scontents`` / "
+"``\\Scontents*`` / ``\\typestored`` / ``\\getstored`` / ``\\mergesc`` / "
+"``\\meaningsc`` / ``\\foreachsc``; ``lstinline`` still accepts optional "
+"``[...]`` and ``{...}``. ``verb`` / ``verb*`` / ``lstinline`` / ``spverb`` "
+"take a delimiter or, for ``lstinline``, optional ``[...]`` then a delimiter "
+"or ``{...}``; following flush prose stays on its own line. ``mintinline`` / "
+"``mint`` take optional ``[...]``, a ``{lang}`` argument, then a delimiter or "
+"``{...}`` body; following flush prose stays on its own line. "
+"``\\inputminted`` takes the same optional ``[...]`` and ``{lang}`` then a "
+"required ``{filename}``; following flush prose stays on its own line. "
+"``SaveVerb`` takes optional ``[...]``, a ``{name}`` argument, then the same "
+"delimiter body as ``Verb``; following flush prose stays on its own line. "
+"``UseVerb`` / ``UseVerb*`` take optional ``[...]`` then a required ``{name}"
+"``; ``UseVerbatim`` / ``LUseVerbatim`` / ``BUseVerbatim`` take optional "
+"``[...]`` then a required ``{name}``; following flush prose stays on its own "
+"line. leftover ``\\DefineShortVerb`` takes optional ``[...]`` then a ``{char}"
+"``; leftover ``\\UndefineShortVerb`` takes a ``{char}``; following flush "
+"prose stays on its own line. ``Verb`` takes a delimiter like ``verb``; "
+"``EscVerb`` takes a delimiter or ``{code}``; following flush prose stays on "
+"its own line. ``\\VerbatimInsertBuffer`` / ``\\InsertBuffer`` take optional "
+"``[...]``; ``\\VerbatimClearBuffer`` takes no args; ``\\IterateBuffer`` "
+"takes optional ``[...]`` then a required ``{cmd}``; following flush prose "
+"stays on its own line. ``\\piton|...|`` is verb-like (interior ``.!?%`` stay "
+"one token); ``\\piton{...}`` stays one token via the generic command "
+"argument; following flush prose stays on its own line. ``\\lstinputlisting`` "
+"takes optional ``[...]`` then a required ``{filename}``; following flush "
+"prose stays on its own line. ``\\VerbatimInput`` / ``\\BVerbatimInput`` / "
+"``\\LVerbatimInput`` take optional ``[...]`` then a required ``{filename}``; "
+"following flush prose stays on its own line. ``\\verbatiminput`` / "
+"``\\verbatiminput*`` take a required ``{filename}``; following flush prose "
+"stays on its own line. ``\\PitonInputFile`` takes optional ``<...>``, "
+"optional ``[...]``, then a required ``{filename}``; following flush prose "
+"stays on its own line. ``\\PitonInputFileT`` / ``\\PitonInputFileF`` take "
+"the same optional args then ``{file}`` and one extra required brace; "
+"``\\PitonInputFileTF`` takes two extra braces; following flush prose stays "
+"on its own line. ``\\tcbinputlisting`` takes one required ``{keyval}`` "
+"group; following flush prose stays on its own line. ``\\inputpy`` / "
+"``\\inputpycon`` take optional ``[...]`` then a required ``{filename}``; "
+"following flush prose stays on its own line. ``\\py`` / ``\\pyc`` / "
+"``\\pys`` / ``\\pyb`` / ``\\pyv`` / ``\\pycon`` and twins / ``\\sympy`` / "
+"``\\pylab`` and twins take optional ``[...]`` then a delimiter or ``{body}"
+"``; following flush prose stays on its own line. ``\\inputpygments`` takes "
+"optional ``[...]``, ``{lang}``, then a required ``{filename}``; "
+"``\\pygment`` takes ``{lang}`` then a delimiter or ``{code}`` body; "
+"following flush prose stays on its own line. ``\\inputpython`` takes "
+"required ``{file}`` ``{first}`` ``{last}``; ``\\inputpythonfile`` takes "
+"required ``{file}`` then optional ``[first]`` ``[last]``; following flush "
+"prose stays on its own line. ``\\pyth`` takes a delimiter or ``{code}`` "
+"body; following flush prose stays on its own line. "
+"``\\CatchFileBetweenTags`` takes ``{macro}`` ``{file}`` ``{tag}``; "
+"``\\CatchFileBetweenDelims`` takes ``{macro}`` ``{file}`` ``{start}`` ``{end}"
+"``; ``\\ExecuteMetaData`` takes optional ``[file]`` then ``{tag}``; "
+"following flush prose stays on its own line. ``\\CatchFileDef`` / "
+"``\\CatchFileEdef`` take ``{macro}`` ``{file}`` ``{setup}``; following flush "
+"prose stays on its own line. ``\\listinginput`` takes optional "
+"``[interval]`` then required ``{start}`` and ``{filename}``; following flush "
+"prose stays on its own line. leftover ``\\listingcont`` takes no args; "
+"following flush prose stays on its own line. ``\\verbatimtabinput`` / "
+"``\\verbatimtabinput*`` take optional ``[tabwidth]`` then a required "
+"``{filename}``; following flush prose stays on its own line. "
+"``\\verbatimwrite`` / ``\\verbatimwrite*`` take a required ``{filename}``; "
+"following flush prose stays on its own line. ``\\sageinput`` takes optional "
+"``[...]`` then a required ``{filename}``; following flush prose stays on its "
+"own line. ``\\sageplot`` takes optional ``[ltx opts]`` ``[fmt]`` then a "
+"required ``{graphics}``; ``\\sagestr`` takes a required ``{code}``; "
+"following flush prose stays on its own line. ``\\pythontexcustomc`` takes "
+"optional ``[begin|end]``, a required ``{type}``, then a delimiter or ``{code}"
+"`` body; following flush prose stays on its own line. ``\\Scontents`` / "
+"``\\Scontents*`` take optional ``[...]`` then a standard or verbatim arg; "
+"``\\typestored`` / ``\\getstored`` / ``\\mergesc`` / ``\\meaningsc`` / "
+"``\\foreachsc`` take optional ``[...]`` then a required ``{seq}``; following "
+"flush prose stays on its own line. Adding another name keeps that command's "
+"delimited body atomic and treats an inner ``%`` as content, not a comment."
+msgstr ""
+
+#: ../../source/reference/config.rst:230
msgid "Code-block sections (``[code.]``)"
msgstr ""
-#: ../../source/reference/config.rst:199
+#: ../../source/reference/config.rst:232
msgid ""
"Each ``[code.]`` table configures how fenced or delimited source "
"blocks for that language are handled. ``snapper init`` writes seed entries "
@@ -239,57 +371,57 @@ msgid ""
"``html``, ``javascript``)."
msgstr ""
-#: ../../source/reference/config.rst:205
+#: ../../source/reference/config.rst:238
msgid "line\\ :sub:`comment`"
msgstr ""
-#: ../../source/reference/config.rst:207
+#: ../../source/reference/config.rst:240
msgid ""
"String. Marker for single-line comments (for example ``\"//\"`` or "
"``\"#\"``). Comment text after the marker is reflowed with the sentence "
"splitter; the marker and indentation are preserved."
msgstr ""
-#: ../../source/reference/config.rst:211
+#: ../../source/reference/config.rst:244
msgid ""
"A marker that repeats or decorates this one keeps its written form, so ``///"
"`` and ``//!`` survive a split instead of collapsing to ``//``. A ``#!`` "
"shebang is left alone."
msgstr ""
-#: ../../source/reference/config.rst:214
+#: ../../source/reference/config.rst:247
msgid ""
"Where a grammar backs the language (see `grammar-backed-languages`_), the "
"reflow also reaches a comment that follows code on the same line, aligning "
"continuation sentences under the comment:"
msgstr ""
-#: ../../source/reference/config.rst:221
+#: ../../source/reference/config.rst:254
msgid ""
"Without a grammar the marker must open the line. That rule keeps the ``//`` "
"inside ``\"// not a comment.\"`` out of the reflow."
msgstr ""
-#: ../../source/reference/config.rst:227
+#: ../../source/reference/config.rst:260
msgid "block\\ :sub:`comment`"
msgstr ""
-#: ../../source/reference/config.rst:229
+#: ../../source/reference/config.rst:262
msgid ""
"String array of length two: open and close markers (for example ``[\"/*\", "
"\"*/\"]``). One-line and multi-line block comments are reflowed as prose "
"between the markers."
msgstr ""
-#: ../../source/reference/config.rst:235
+#: ../../source/reference/config.rst:268
msgid "string\\ :sub:`delims`"
msgstr ""
-#: ../../source/reference/config.rst:237
+#: ../../source/reference/config.rst:270
msgid "String array of quote characters. Defaults to ``[\"\\\"\", \"'\"]``."
msgstr ""
-#: ../../source/reference/config.rst:240
+#: ../../source/reference/config.rst:273
msgid ""
"Without a grammar, quoting is the only thing separating a comment marker "
"from the same characters inside a literal: a marker that trails code "
@@ -299,46 +431,46 @@ msgid ""
"marker after it goes unreflowed rather than mangled."
msgstr ""
-#: ../../source/reference/config.rst:243
+#: ../../source/reference/config.rst:276
msgid ""
"Grammar-backed languages ignore this field; the parse already knows which "
"bytes belong to a string."
msgstr ""
-#: ../../source/reference/config.rst:248
+#: ../../source/reference/config.rst:281
msgid "escape"
msgstr ""
-#: ../../source/reference/config.rst:250
+#: ../../source/reference/config.rst:283
msgid ""
"String holding one character that escapes the next inside a string literal. "
"Defaults to a backslash."
msgstr ""
-#: ../../source/reference/config.rst:256
+#: ../../source/reference/config.rst:289
#, fuzzy
msgid "formatter"
msgstr "format"
-#: ../../source/reference/config.rst:258
+#: ../../source/reference/config.rst:291
msgid ""
"String array treated as argv for ``std::process::Command``. Only runs when "
"the CLI flag ``--format-code`` is set. Missing binaries, non-zero exits, and "
"a ~30s watchdog timeout each leave the reflowed body in place (non-fatal)."
msgstr ""
-#: ../../source/reference/config.rst:262
+#: ../../source/reference/config.rst:295
msgid ""
"If a language has no ``[code.]`` entry (or the fence has no language), "
"the block body passes through unchanged aside from normal trailing-newline "
"preservation."
msgstr ""
-#: ../../source/reference/config.rst:267
+#: ../../source/reference/config.rst:300
msgid "Grammar-backed languages"
msgstr ""
-#: ../../source/reference/config.rst:269
+#: ../../source/reference/config.rst:302
msgid ""
"The ``treesitter`` feature, on by default, parses code blocks in ``rust``, "
"``python``, ``javascript``, ``c``, ``cpp``, ``go``, ``bash`` and ``html`` to "
@@ -346,38 +478,38 @@ msgid ""
"``js``, ``sh``."
msgstr ""
-#: ../../source/reference/config.rst:272
+#: ../../source/reference/config.rst:305
msgid ""
"A build feature governs this, not a config field, and a ``[code.]`` "
"entry remains required. The grammar decides which bytes form a comment; the "
"entry supplies the markers used to re-emit it."
msgstr ""
-#: ../../source/reference/config.rst:275
+#: ../../source/reference/config.rst:308
msgid ""
"Two builds carry no grammars and fall back to the scanner for every language:"
msgstr ""
-#: ../../source/reference/config.rst:277
+#: ../../source/reference/config.rst:310
msgid ""
"``wasm32-unknown-unknown``, the target behind the Obsidian and Word "
"integrations, where the C runtime and its grammars would need a ``wasm`` "
"libc."
msgstr ""
-#: ../../source/reference/config.rst:279
+#: ../../source/reference/config.rst:312
msgid ""
"Any build configured with ``--no-default-features`` that does not opt back "
"in."
msgstr ""
-#: ../../source/reference/config.rst:281
+#: ../../source/reference/config.rst:314
msgid ""
"The VS Code extension runs the CLI rather than the wasm build, so it has "
"grammars."
msgstr ""
-#: ../../source/reference/config.rst:283
+#: ../../source/reference/config.rst:316
msgid ""
"The scanner reads `field-string-delims`_ to find trailing comments on its "
"own, so both engines agree on ordinary code. A grammar still wins on raw "
@@ -385,7 +517,7 @@ msgid ""
"counting alone gives the wrong answer."
msgstr ""
-#: ../../source/reference/config.rst:286
+#: ../../source/reference/config.rst:319
msgid ""
"Block comments stay on the scanner. A close marker inside a string does not "
"end the comment, so ``let s = \"*/\";`` in a ``/* ... */`` block stays in "
@@ -394,11 +526,11 @@ msgid ""
"reflow."
msgstr ""
-#: ../../source/reference/config.rst:293
+#: ../../source/reference/config.rst:326
msgid "Precedence"
msgstr "Kolejność priorytetów"
-#: ../../source/reference/config.rst:295
+#: ../../source/reference/config.rst:328
msgid ""
"CLI flags override config file values. Per-format sections override top-"
"level config values. Config file values override ``.editorconfig`` values. "
diff --git a/docs/locale/pl/LC_MESSAGES/reference/formats.po b/docs/locale/pl/LC_MESSAGES/reference/formats.po
index 228919c6..b6ba2cca 100644
--- a/docs/locale/pl/LC_MESSAGES/reference/formats.po
+++ b/docs/locale/pl/LC_MESSAGES/reference/formats.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: snapper \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-09-09 10:12-0500\n"
+"POT-Creation-Date: 2026-09-14 02:18-0500\n"
"PO-Revision-Date: 2026-03-27 23:00+0100\n"
"Last-Translator: Rohit Goswami \n"
"Language-Team: pl \n"
@@ -38,9 +38,9 @@ msgstr ""
msgid "Org-mode (``--format org``)"
msgstr "Org-mode (``--format org``)"
-#: ../../source/reference/formats.rst:20 ../../source/reference/formats.rst:97
-#: ../../source/reference/formats.rst:141
-#: ../../source/reference/formats.rst:204
+#: ../../source/reference/formats.rst:20 ../../source/reference/formats.rst:136
+#: ../../source/reference/formats.rst:273
+#: ../../source/reference/formats.rst:355
msgid "Structure regions (preserved)"
msgstr "Regiony strukturalne (zachowane)"
@@ -50,384 +50,902 @@ msgid "Non-source ``#+BEGIN_*`` ..."
msgstr "``#+BEGIN_*`` ..."
#: ../../source/reference/formats.rst:24
-#, fuzzy
-msgid "``#+END_*`` blocks (example, quote, etc.)"
-msgstr "bloki ``#+END_*`` (source, example, quote itp.)"
+msgid ""
+"``#+END_*`` fences, and the bodies of literal blocks (example, export, "
+"comment, verse). An unmatched ``#+BEGIN_EXPORT`` is a paragraph (org-element "
+"export-block-parser)"
+msgstr ""
#: ../../source/reference/formats.rst:26
+msgid ""
+"Dynamic blocks (``#+BEGIN: NAME`` ... ``#+END:``), including the generated "
+"body"
+msgstr ""
+
+#: ../../source/reference/formats.rst:28
+msgid ""
+"Quote, center, and special-block (NOTE and other unknown NAME) open/close "
+"lines"
+msgstr ""
+
+#: ../../source/reference/formats.rst:30
+msgid ""
+"Verse-block body (org-element verse-lines; leftover opaque walker, GitHub "
+"#395)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:32
+msgid "Special-block interiors (NOTE, ABSTRACT, WARNING, ...) reflow as prose"
+msgstr ""
+
+#: ../../source/reference/formats.rst:34
msgid "``:PROPERTIES:`` ..."
msgstr "``:PROPERTIES:`` ..."
-#: ../../source/reference/formats.rst:28
+#: ../../source/reference/formats.rst:36
msgid "``:END:`` drawers"
msgstr "szuflady ``:END:``"
-#: ../../source/reference/formats.rst:30
-msgid "``#+KEYWORD:`` directives (TITLE, AUTHOR, DATE, OPTIONS, etc.)"
+#: ../../source/reference/formats.rst:38
+#, fuzzy
+msgid ""
+"``#+KEYWORD:`` directives (TITLE, AUTHOR, DATE, OPTIONS, NAME, "
+"ATTR\\ :sub:`\\*`\\, etc.); ``#+CAPTION:`` / ``#+CAPTION[short]:`` opener "
+"only"
msgstr "dyrektywy ``#+KEYWORD:`` (TITLE, AUTHOR, DATE, OPTIONS itp.)"
-#: ../../source/reference/formats.rst:32
+#: ../../source/reference/formats.rst:40
+msgid "Standalone bracket-link lines (``[[file:plot.png]]``)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:42
msgid "Table rows (lines starting with ``|``)"
msgstr "Wiersze tabeli (linie zaczynające się od ``|``)"
-#: ../../source/reference/formats.rst:34
+#: ../../source/reference/formats.rst:44
msgid "Comment lines (starting with ``#`` but not ``#+`` )"
msgstr "Linie komentarzy (zaczynające się od ``#``, ale nie ``#+``)"
-#: ../../source/reference/formats.rst:36
+#: ../../source/reference/formats.rst:46
+msgid "Column-0 diary-sexp lines (``%%(...)``; org-element-diary-sexp-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:48
msgid "Full headline lines (stars, optional TODO keyword, and title text)"
msgstr ""
-#: ../../source/reference/formats.rst:38
+#: ../../source/reference/formats.rst:50
#, fuzzy
msgid ""
"List item markers (``-``, ``+``, ``1.``); continuation sentences hang at the "
"marker width"
msgstr "Znaczniki elementów listy (``-``, ``+``, ``1.``)"
-#: ../../source/reference/formats.rst:40
+#: ../../source/reference/formats.rst:52
msgid ""
"LaTeX environments (``\\begin{equation}`` ... ``\\end{equation}``, "
-"``\\begin{align}``, etc.)"
+"``\\begin{align}``, etc.). An unmatched ``\\begin{env}`` is a paragraph (org-"
+"element latex-environment-parser)"
msgstr ""
-#: ../../source/reference/formats.rst:42
+#: ../../source/reference/formats.rst:54
#, fuzzy
msgid "Display math (``\\[`` ... ``\\]``)"
msgstr "Wzory wyświetlane: ``\\[...\\]``"
-#: ../../source/reference/formats.rst:44
-msgid "Inline export snippets (``@@latex:\\newpage@@``, ``@@html:
@@``)"
+#: ../../source/reference/formats.rst:56
+msgid ""
+"Line breaks (org-element-line-break-parser: ``\\\\`` plus optional spaces or "
+"tabs at end of line)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:58
+msgid ""
+"A line that is only an export snippet (``@@latex:\\newpage@@``). Trailing "
+"prose after the closer stays Prose."
msgstr ""
-#: ../../source/reference/formats.rst:49
+#: ../../source/reference/formats.rst:63
msgid "Code regions (``#+BEGIN_SRC`` ... ``#+END_SRC``)"
msgstr ""
-#: ../../source/reference/formats.rst:51
+#: ../../source/reference/formats.rst:65
+msgid ""
+"An unmatched ``#+BEGIN_SRC`` is a paragraph (org-element src-block-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:67
msgid "Header and footer lines are structure"
msgstr ""
-#: ../../source/reference/formats.rst:53
+#: ../../source/reference/formats.rst:69
msgid "Body non-comment lines pass through verbatim"
msgstr ""
-#: ../../source/reference/formats.rst:55
+#: ../../source/reference/formats.rst:71
msgid ""
"Body comment lines reflow at sentence boundaries when the language has "
"``line_comment`` and/or ``block_comment`` under ``[code.]``"
msgstr ""
-#: ../../source/reference/formats.rst:57
+#: ../../source/reference/formats.rst:73
msgid ""
"With ``--format-code``, optional ``formatter`` argv runs on the body "
"(graceful fallback on failure)"
msgstr ""
-#: ../../source/reference/formats.rst:62 ../../source/reference/formats.rst:129
-#: ../../source/reference/formats.rst:173
-#: ../../source/reference/formats.rst:230
+#: ../../source/reference/formats.rst:78 ../../source/reference/formats.rst:259
+#: ../../source/reference/formats.rst:320
+#: ../../source/reference/formats.rst:388
msgid "Prose regions (reflowed)"
msgstr "Regiony prozy (przeformatowywane)"
-#: ../../source/reference/formats.rst:64 ../../source/reference/formats.rst:175
+#: ../../source/reference/formats.rst:80 ../../source/reference/formats.rst:322
msgid "Paragraph text"
msgstr "Tekst akapitowy"
-#: ../../source/reference/formats.rst:66
+#: ../../source/reference/formats.rst:82
msgid ""
"List item text (after the marker); continuation sentences hang at the marker "
"width so Org rejoins the item"
msgstr ""
-#: ../../source/reference/formats.rst:71 ../../source/reference/formats.rst:184
+#: ../../source/reference/formats.rst:84
+msgid "Quote, center, and special-block inner text"
+msgstr ""
+
+#: ../../source/reference/formats.rst:86
+msgid ""
+"``#+CAPTION:`` value (org-element-parsed-keywords); continuation sentences "
+"hang at the opener width. Dual ``#+CAPTION[short]:`` keeps the short title "
+"on the opener"
+msgstr ""
+
+#: ../../source/reference/formats.rst:92 ../../source/reference/formats.rst:335
+#: ../../source/reference/formats.rst:397
msgid "Inline tokens (kept atomic)"
msgstr "Tokeny inline (zachowane jako niepodzielne)"
-#: ../../source/reference/formats.rst:73
+#: ../../source/reference/formats.rst:94
msgid "These tokens within prose are not split across lines:"
msgstr "Te tokeny wewnątrz prozy nie są dzielone między liniami:"
-#: ../../source/reference/formats.rst:75
+#: ../../source/reference/formats.rst:96
msgid "Links: ``[[url][description]]``"
msgstr "Linki: ``[[url][opis]]``"
-#: ../../source/reference/formats.rst:77
+#: ../../source/reference/formats.rst:98
+msgid ""
+"Angular links: ```` (org-link-angle-re; spaces allowed)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:100
msgid "Emphasis: ``\\*bold*``, ``/italic/``, ``_underline_``, ``+strike+``"
msgstr ""
-#: ../../source/reference/formats.rst:79
+#: ../../source/reference/formats.rst:102
msgid "Inline code: ``~code~``, ``==verbatim==``"
msgstr "Kod inline: ``~code~``, ``==verbatim==``"
-#: ../../source/reference/formats.rst:81
+#: ../../source/reference/formats.rst:104
msgid ""
"A ``~code~`` or ``==verbatim==`` span may contain the marker character; "
"pairing matches pandoc's org reader, so ``x = 1`` stays one span"
msgstr ""
-#: ../../source/reference/formats.rst:83
+#: ../../source/reference/formats.rst:106
msgid ""
"Markdown inline code: a run of ``n`` backticks closes on the next run of the "
"same length (CommonMark / pandoc), so a double span can hold a single "
"backtick"
msgstr ""
-#: ../../source/reference/formats.rst:85
-msgid "Inline export snippets: ``@@backend:value@@``"
+#: ../../source/reference/formats.rst:108
+msgid ""
+"Inline export snippets: ``@@backend:value@@`` (org-element-export-snippet-"
+"parser; backend ``[-A-Za-z0-9]+`` so ``html5`` and hyphen names stay one "
+"token)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:110
+msgid "Radio targets: ``<<>>`` (org-element-radio-target-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:112
+msgid "Angle targets: ``<>`` (org-element-target-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:114
+msgid ""
+"Macros: ``{{{name}}}`` / ``{{{name(args)}}}`` (org-element-macro-parser)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:116
+msgid ""
+"Inline source: ``src_lang{...}`` / ``src_lang[headers]{...}`` (org-element-"
+"inline-src-block-parser; ``\\``, optional "
+"``[...]``, then a ``{filename}``; a flush following sentence stays on its "
+"own line ``\\PitonInputFileT`` / ``\\PitonInputFileF`` take the same "
+"optional args then ``{file}`` and one extra required brace; "
+"``\\PitonInputFileTF`` takes two extra braces; a flush following sentence "
+"stays on its own line ``\\tcbinputlisting`` takes one required ``{keyval}`` "
+"group; a flush following sentence stays on its own line ``\\inputpy`` / "
+"``\\inputpycon`` take optional ``[...]`` then a ``{filename}``; a flush "
+"following sentence stays on its own line ``\\py`` / ``\\pyc`` / ``\\pys`` / "
+"``\\pyb`` / ``\\pyv`` / ``\\pycon`` and twins / ``\\sympy`` / ``\\pylab`` "
+"and twins take optional ``[...]`` then a delimiter or ``{body}``; a flush "
+"following sentence stays on its own line ``\\inputpygments`` takes optional "
+"``[...]``, ``{lang}``, then a ``{filename}``; ``\\pygment`` takes ``{lang}`` "
+"then a delimiter or ``{code}`` body; a flush following sentence stays on its "
+"own line ``\\inputpython`` takes ``{file}`` ``{first}`` ``{last}``; "
+"``\\inputpythonfile`` takes ``{file}`` then optional ``[first]`` ``[last]``; "
+"a flush following sentence stays on its own line ``\\pyth`` takes a "
+"delimiter or ``{code}`` body; a flush following sentence stays on its own "
+"line ``\\CatchFileBetweenTags`` takes ``{macro}`` ``{file}`` ``{tag}``; "
+"``\\CatchFileBetweenDelims`` takes ``{macro}`` ``{file}`` ``{start}`` ``{end}"
+"``; ``\\ExecuteMetaData`` takes optional ``[file]`` then ``{tag}``; a flush "
+"following sentence stays on its own line leftover ``\\CatchFileDef`` / "
+"``\\CatchFileEdef`` take ``{macro}`` ``{file}`` ``{setup}``; a flush "
+"following sentence stays on its own line ``\\listinginput`` takes optional "
+"``[interval]`` then ``{start}`` and ``{filename}``; a flush following "
+"sentence stays on its own line leftover ``\\listingcont`` takes no args; a "
+"flush following sentence stays on its own line leftover "
+"``\\verbatimtabinput`` / ``\\verbatimtabinput*`` take optional "
+"``[tabwidth]`` then a ``{filename}``; a flush following sentence stays on "
+"its own line leftover ``\\verbatimwrite`` / ``\\verbatimwrite*`` take a "
+"``{filename}``; a flush following sentence stays on its own line "
+"``\\sageinput`` takes optional ``[...]`` then a ``{filename}``; a flush "
+"following sentence stays on its own line ``\\sageplot`` takes optional "
+"``[ltx opts]`` ``[fmt]`` then a ``{graphics}``; ``\\sagestr`` takes a "
+"``{code}``; a flush following sentence stays on its own line "
+"``\\pythontexcustomc`` takes optional ``[begin|end]``, a required ``{type}"
+"``, then a delimiter or ``{code}`` body; a flush following sentence stays on "
+"its own line ``\\Scontents`` / ``\\Scontents*`` take optional ``[...]`` then "
+"a standard or verbatim arg; ``\\typestored`` / ``\\getstored`` / "
+"``\\mergesc`` / ``\\meaningsc`` / ``\\foreachsc`` take optional ``[...]`` "
+"then a ``{seq}``; a flush following sentence stays on its own line"
msgstr ""
-#: ../../source/reference/formats.rst:131
+#: ../../source/reference/formats.rst:261
msgid "Body text between structural elements"
msgstr "Tekst główny pomiędzy elementami strukturalnymi"
-#: ../../source/reference/formats.rst:136
+#: ../../source/reference/formats.rst:263
+msgid ""
+"``\\caption{...}`` long argument inside figure/table (tree-sitter caption "
+"curly\\ :sub:`group`\\)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:268
msgid "Markdown (``--format markdown``)"
msgstr "Markdown (``--format markdown``)"
-#: ../../source/reference/formats.rst:143
+#: ../../source/reference/formats.rst:275
msgid "Front matter (``---`` or ``+++`` delimited at file start)"
msgstr "Front matter (``---`` lub ``+++`` na początku pliku)"
-#: ../../source/reference/formats.rst:145
+#: ../../source/reference/formats.rst:277
msgid "Full ATX heading lines (``#`` … ``######`` including title text)"
msgstr ""
-#: ../../source/reference/formats.rst:147
+#: ../../source/reference/formats.rst:279
+msgid "Empty ATX headings (a mark line with no title text) stay Structure"
+msgstr ""
+"Puste nagłówki ATX (linia znacznika bez tekstu tytułu) pozostają "
+"Structure"
+
+#: ../../source/reference/formats.rst:281
msgid "Setext headings (title line plus ``====`` or ------ underline)"
msgstr ""
-#: ../../source/reference/formats.rst:149
+#: ../../source/reference/formats.rst:283
#, fuzzy
msgid ""
"List item markers (``-``, ``\\*``, ``+``, ``1.``); continuation sentences "
"hang at the marker width"
msgstr "Znaczniki elementów listy (``-``, ``\\*``, ``+``, ``1.``)"
-#: ../../source/reference/formats.rst:151
+#: ../../source/reference/formats.rst:285
+msgid "Empty list markers (including quoted) stay Structure"
+msgstr "Puste znaczniki listy (także w cytacie) pozostają Structure"
+
+#: ../../source/reference/formats.rst:287
+msgid ""
+"Definition-list terms and ``: = markers (pulldown "
+"=ENABLE_DEFINITION_LIST``); the body hangs at the marker width"
+msgstr ""
+
+#: ../../source/reference/formats.rst:289
msgid ""
"Blockquote markers (``>`` / nested => > =); continuation sentences repeat "
"the quote prefix"
msgstr ""
-#: ../../source/reference/formats.rst:153
+#: ../../source/reference/formats.rst:291
+msgid ""
+"GFM alert type markers (``[!NOTE]`` / ``[!TIP]`` / ``[!WARNING]`` / ``[!"
+"CAUTION]`` / ``[!IMPORTANT]``); the body hangs and splits like a quote"
+msgstr ""
+
+#: ../../source/reference/formats.rst:293
+msgid ""
+"Link-reference definitions (``[label]: dest``); the destination may sit on "
+"the next line. A definition that sits inside a paragraph stays Prose"
+msgstr ""
+"Definicje odwołań do łączy (``[label]: dest``); cel może być w "
+"następnej linii. Definicja wewnątrz akapitu pozostaje Prose"
+
+#: ../../source/reference/formats.rst:296
+msgid ""
+"GFM footnote definitions (``[^label]:``); the marker is Structure and the "
+"body hangs"
+msgstr ""
+"Definicje przypisów GFM (``[^label]:``); znacznik jest Structure, a "
+"treść wisi"
+
+#: ../../source/reference/formats.rst:298
msgid "Hard line breaks (two trailing spaces, or a trailing backslash)"
msgstr ""
-#: ../../source/reference/formats.rst:155
+#: ../../source/reference/formats.rst:300
msgid ""
"HTML comments (````, including multiline); ```` remain pragmas"
msgstr ""
-#: ../../source/reference/formats.rst:157
+#: ../../source/reference/formats.rst:302
+msgid ""
+"Closed type-6 and type-7 HTML blocks end at the matching close tag; "
+"following prose stays Prose"
+msgstr ""
+"Zamknięte bloki HTML typu 6 i 7 kończą się na pasującym tagu "
+"zamykającym; następująca proza pozostaje Prose"
+
+#: ../../source/reference/formats.rst:304
msgid "Pipe tables"
msgstr ""
-#: ../../source/reference/formats.rst:162
+#: ../../source/reference/formats.rst:309
#, fuzzy
msgid "Code regions (fenced ``````` / ``~~~``)"
msgstr "Ogrodzone bloki kodu (``````` lub ``~~~``)"
-#: ../../source/reference/formats.rst:164
+#: ../../source/reference/formats.rst:311
msgid "Opening and closing fence lines are structure"
msgstr ""
-#: ../../source/reference/formats.rst:166
+#: ../../source/reference/formats.rst:313
msgid "Indented fence bodies preserve indentation on reflowed comment lines"
msgstr ""
-#: ../../source/reference/formats.rst:168
+#: ../../source/reference/formats.rst:315
msgid ""
"Language from the fence info string selects ``[code.]``; unknown or "
"missing lang passes the body through unchanged (unless ``--format-code`` is "
"not applicable without a formatter entry)"
msgstr ""
-#: ../../source/reference/formats.rst:177
+#: ../../source/reference/formats.rst:324
msgid ""
"List item text (after the marker); continuation sentences hang at the marker "
"width"
msgstr ""
-#: ../../source/reference/formats.rst:179
+#: ../../source/reference/formats.rst:326
+#, fuzzy
+msgid ""
+"Definition-list body (after the =: = marker); continuation sentences hang at "
+"the marker width"
+msgstr "Znaczniki elementów listy (``-``, ``+``, ``1.``)"
+
+#: ../../source/reference/formats.rst:328
+msgid ""
+"GFM footnote-definition body (after ``[^label]:``); continuation sentences "
+"hang at the marker width"
+msgstr ""
+"Treść definicji przypisu GFM (po ``[^label]:``); kolejne zdania wiszą "
+"na szerokości znacznika"
+
+#: ../../source/reference/formats.rst:330
msgid ""
"Blockquote inner text (after the ``>`` marker); continuation sentences "
"repeat the quote prefix"
msgstr ""
-#: ../../source/reference/formats.rst:186
+#: ../../source/reference/formats.rst:337
msgid ""
"Emphasis: ``\\*em*``, ``\\*\\*strong**`` (CommonMark flanking; a period "
"inside the span does not split)"
msgstr ""
-#: ../../source/reference/formats.rst:188
+#: ../../source/reference/formats.rst:339
msgid "Strikethrough: ``~~strike~~`` (GFM)"
msgstr ""
-#: ../../source/reference/formats.rst:190
+#: ../../source/reference/formats.rst:341
msgid ""
"Inline code: a run of ``n`` backticks closes on the next run of the same "
"length"
msgstr ""
-#: ../../source/reference/formats.rst:192
+#: ../../source/reference/formats.rst:343
msgid "Links and images: ``[text](url)``, ````"
msgstr ""
-#: ../../source/reference/formats.rst:194
+#: ../../source/reference/formats.rst:345
msgid "Inline math: ``$...$`` / ``$$...$$``"
msgstr ""
-#: ../../source/reference/formats.rst:199
+#: ../../source/reference/formats.rst:350
#, fuzzy
msgid "reStructuredText (``--format rst``)"
msgstr "LaTeX (``--format latex``)"
-#: ../../source/reference/formats.rst:206
+#: ../../source/reference/formats.rst:357
msgid ""
-"Non-code directives (``.. math::``, ``.. image::``, etc.) and their indented "
-"bodies"
+"Non-code opaque directives (``.. math::``, ``.. image::``, ``.. raw::``, "
+"``.. include::``, ``.. csv-table::``) and their indented bodies"
msgstr ""
-#: ../../source/reference/formats.rst:208
-msgid "Literal blocks (text after ``::`` with indented content)"
+#: ../../source/reference/formats.rst:359
+msgid ""
+"Container directive openers (``.. note::``, ``.. warning::``, ``.. "
+"figure::``, ``.. topic::``, ``.. sidebar::``, ``.. container::``, leftover "
+"``.. parsed-literal::``, ``.. epigraph::``, ``.. highlights::``, ``.. pull-"
+"quote::``, ``.. compound::``, ``.. header::``, ``.. footer::``) and their "
+"``:option:`` fields; the indented body is prose"
msgstr ""
-#: ../../source/reference/formats.rst:210
+#: ../../source/reference/formats.rst:361
+msgid ""
+"Same-line body after ``::`` on those containers, leftover ``.. parsed-"
+"literal::``, ``.. header::``, ``.. footer::``, ``.. |name| replace::``, and "
+"``.. meta::`` fields hangs and splits. Flush bibliographic fields close a "
+"meta leftover"
+msgstr ""
+"Treść w tej samej linii po ``::`` na tych kontenerach, leftover ``.. "
+"parsed-literal::``, ``.. header::``, ``.. footer::``, ``.. |name| "
+"replace::`` oraz pola ``.. meta::`` wisi i dzieli się. Wyrównane pola "
+"bibliograficzne zamykają leftover meta"
+
+#: ../../source/reference/formats.rst:364
+msgid ""
+"Literal blocks (text after ``::`` with indented or line-prefix-quoted "
+"content)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:366
msgid "Section titles and underlines (``===``, ``-----``, etc.)"
msgstr ""
-#: ../../source/reference/formats.rst:212
+#: ../../source/reference/formats.rst:368
msgid "Field lists (``:Author:``, ``:Date:``, etc.)"
msgstr ""
-#: ../../source/reference/formats.rst:214
+#: ../../source/reference/formats.rst:370
+msgid ""
+"Empty list items, empty doctest openers, and empty field-list markers at EOL "
+"stay Structure"
+msgstr ""
+"Puste elementy listy, puste otwarcia doctest i puste znaczniki "
+"field-list na EOL pozostają Structure"
+
+#: ../../source/reference/formats.rst:372
msgid "Comments (``..`` without a directive)"
msgstr ""
-#: ../../source/reference/formats.rst:216
+#: ../../source/reference/formats.rst:374
#, fuzzy
msgid "Grid and simple tables (lines starting with ``|`` or ``+``)"
msgstr "Wiersze tabeli (linie zaczynające się od ``|``)"
-#: ../../source/reference/formats.rst:221
+#: ../../source/reference/formats.rst:379
msgid "Code regions (``.. code-block:: LANG``)"
msgstr ""
-#: ../../source/reference/formats.rst:223
+#: ../../source/reference/formats.rst:381
msgid "Directive line and trailing blank handling stay structure"
msgstr ""
-#: ../../source/reference/formats.rst:225
+#: ../../source/reference/formats.rst:383
msgid ""
"Indented body uses the language token for ``[code.]`` comment reflow "
"and optional ``--format-code``"
msgstr ""
-#: ../../source/reference/formats.rst:232
+#: ../../source/reference/formats.rst:390
#, fuzzy
msgid "Paragraph text between structural elements"
msgstr "Tekst główny pomiędzy elementami strukturalnymi"
-#: ../../source/reference/formats.rst:237
+#: ../../source/reference/formats.rst:392
+msgid ""
+"Indented bodies of container directives (admonitions, figure captions, "
+"topic, sidebar, container, leftover parsed-literal, epigraph, highlights, "
+"pull-quote, compound, header, footer); hang spaces stay structure"
+msgstr ""
+
+#: ../../source/reference/formats.rst:399
+msgid ""
+"Substitution references: ``|fig. 1|`` / ``|version|`` / ``|name|_`` / ``|"
+"name|__`` (Docutils Inliner.substitution\\ :sub:`ref`\\). Interior "
+"punctuation is not a sentence or wrap boundary. The use stays Prose, not "
+"Structure (line-block is ``|`` plus space or EOL)"
+msgstr ""
+
+#: ../../source/reference/formats.rst:406
#, fuzzy
msgid "Auto-detection"
msgstr "Wykrywanie zdań"
-#: ../../source/reference/formats.rst:239
+#: ../../source/reference/formats.rst:408
msgid "Extensions: ``.rst``, ``.rest``"
msgstr ""
-#: ../../source/reference/formats.rst:244
+#: ../../source/reference/formats.rst:413
msgid "Plaintext (``--format plaintext``)"
msgstr "Zwykły tekst (``--format plaintext``)"
-#: ../../source/reference/formats.rst:246
+#: ../../source/reference/formats.rst:415
msgid "Everything is prose. Blank lines are preserved as paragraph separators."
msgstr ""
"Całość traktowana jako proza. Puste linie są zachowane jako separatory "
"akapitów."
-#: ../../source/reference/formats.rst:252
+#: ../../source/reference/formats.rst:421
msgid "Sentence Detection"
msgstr "Wykrywanie zdań"
-#: ../../source/reference/formats.rst:254
+#: ../../source/reference/formats.rst:423
msgid ""
"``snapper`` uses Unicode UAX #29 sentence boundary detection as a baseline "
"(or optional ``--neural`` / nnsplit), then applies the same post-pipeline: "
@@ -435,66 +953,68 @@ msgid ""
"[]{}`` spans are not fractured."
msgstr ""
-#: ../../source/reference/formats.rst:259
+#: ../../source/reference/formats.rst:428
msgid "Delimiter-span policy (residual cases)"
msgstr ""
-#: ../../source/reference/formats.rst:261
+#: ../../source/reference/formats.rst:430
msgid ""
-"Balanced ASCII/curly/guillemet quotes, LaTeX ````…''``, and ``()[]{}`` must "
-"not gain a semantic line break mid-span (see ``tests/"
+"Balanced ASCII/curly/guillemet quotes, LaTeX double-backtick quotes, and ``()"
+"[]{}`` must not gain a semantic line break mid-span (see ``tests/"
"sentence_delim_props.rs``)."
msgstr ""
-#: ../../source/reference/formats.rst:263
+#: ../../source/reference/formats.rst:432
msgid ""
"Unclosed ``\"`` (or open ``‘`` without ``’``) glues the rest of the "
"paragraph; snapper does not invent closers."
msgstr ""
-#: ../../source/reference/formats.rst:265
+#: ../../source/reference/formats.rst:434
msgid ""
"Nested semantic ASCII quotes (``say \"hi\" now`` with an inner pair) remain "
"toggle-ambiguous; prefer typographic quotes or escapes in source."
msgstr ""
-#: ../../source/reference/formats.rst:267
+#: ../../source/reference/formats.rst:436
msgid ""
"Apostrophes in contractions (``don't``, ``it's``) are not treated as "
"dialogue openers."
msgstr ""
-#: ../../source/reference/formats.rst:269
-msgid "Markdown fences (```````) are not treated as LaTeX `````` openers."
+#: ../../source/reference/formats.rst:438
+msgid ""
+"Markdown fences (three backticks) are not treated as LaTeX double-backtick "
+"openers."
msgstr ""
-#: ../../source/reference/formats.rst:271
+#: ../../source/reference/formats.rst:440
msgid ""
"``--neural`` runs the same abbreviation + span post-pipeline after the model "
"proposes cuts (English papers can still prefer the rules path for fully "
"offline, deterministic CI)."
msgstr ""
-#: ../../source/reference/formats.rst:273
+#: ../../source/reference/formats.rst:442
#, fuzzy
msgid "``snapper`` merges false splits caused by known abbreviations:"
msgstr ""
"``snapper`` używa wykrywania granic zdań Unicode UAX #29 jako punktu "
"wyjścia, a następnie łączy fałszywe podziały spowodowane znanymi skrótami:"
-#: ../../source/reference/formats.rst:278
+#: ../../source/reference/formats.rst:447
msgid "Titles"
msgstr "Tytuły"
-#: ../../source/reference/formats.rst:280
+#: ../../source/reference/formats.rst:449
msgid "Mr., Mrs., Ms., Dr., Prof., Sr., Jr., St., Rev., Gen., etc."
msgstr "Mr., Mrs., Ms., Dr., Prof., Sr., Jr., St., Rev., Gen. itp."
-#: ../../source/reference/formats.rst:285
+#: ../../source/reference/formats.rst:454
msgid "Academic"
msgstr "Naukowe"
-#: ../../source/reference/formats.rst:287
+#: ../../source/reference/formats.rst:456
msgid ""
"Fig., Figs., Eq., Eqs., Ref., Refs., Tab., Sec., Ch., Vol., No., Thm., Lem., "
"Prop., Def., Cor., Rem., Ex."
@@ -502,35 +1022,35 @@ msgstr ""
"Fig., Figs., Eq., Eqs., Ref., Refs., Tab., Sec., Ch., Vol., No., Thm., Lem., "
"Prop., Def., Cor., Rem., Ex."
-#: ../../source/reference/formats.rst:292
+#: ../../source/reference/formats.rst:461
msgid "Latin"
msgstr "Łacińskie"
-#: ../../source/reference/formats.rst:294
+#: ../../source/reference/formats.rst:463
msgid "e.g., i.e., et al., cf., etc., viz., ibid., ca., approx."
msgstr "e.g., i.e., et al., cf., etc., viz., ibid., ca., approx."
-#: ../../source/reference/formats.rst:299
+#: ../../source/reference/formats.rst:468
msgid "Single initials"
msgstr "Pojedyncze inicjały"
-#: ../../source/reference/formats.rst:301
+#: ../../source/reference/formats.rst:470
msgid "A., B., C., ... Z."
msgstr "A., B., C., ... Z."
-#: ../../source/reference/formats.rst:307
+#: ../../source/reference/formats.rst:476
msgid "Date and time"
msgstr "Data i czas"
-#: ../../source/reference/formats.rst:309
+#: ../../source/reference/formats.rst:478
msgid "Jan., Feb., ..., Dec., Mon., Tue., ..., Sun., a.m., p.m."
msgstr "Jan., Feb., ..., Dec., Mon., Tue., ..., Sun., a.m., p.m."
-#: ../../source/reference/formats.rst:314
+#: ../../source/reference/formats.rst:483
msgid "Quoted and parenthesized punctuation"
msgstr ""
-#: ../../source/reference/formats.rst:316
+#: ../../source/reference/formats.rst:485
msgid ""
"Sentence punctuation inside quotes or parentheses does not trigger a false "
"split when the next word starts lowercase. For example, ``He said \"wow!\" "
@@ -563,3 +1083,6 @@ msgstr ""
#~ msgid "Heading text (after the marker)"
#~ msgstr "Tekst nagłówka (po znaczniku)"
+
+#~ msgid "``#+END_*`` blocks (example, quote, etc.)"
+#~ msgstr "bloki ``#+END_*`` (source, example, quote itp.)"
diff --git a/docs/orgmode/contributing/index.org b/docs/orgmode/contributing/index.org
index ea21e466..cffa63af 100644
--- a/docs/orgmode/contributing/index.org
+++ b/docs/orgmode/contributing/index.org
@@ -45,7 +45,8 @@ pixi run -e dev dogfood
src/
main.rs -- Entry point, CLI dispatch, subcommand routing
lib.rs -- Public API: format_text(), FormatConfig, build_splitter()
- cli.rs -- Clap derive CLI + subcommands (init, sdiff, git-diff, watch, lsp)
+ cli.rs -- Clap derive CLI + subcommands (init, sdiff, git-diff, watch, lsp, mcp)
+ mcp.rs -- MCP stdio server (format_text, detect_format, check_formatting, split_sentences)
config.rs -- .snapperrc.toml serde-based config with per-format sections
format.rs -- Format enum + auto-detection from extension
diff.rs -- Unified diff output for --diff mode
@@ -85,7 +86,8 @@ vale/
site/ -- Landing page (static HTML)
docs/
orgmode/ -- Documentation source (org-mode)
- source/ -- Sphinx config + templates
+ source/ -- Sphinx config + templates (exported RST is gitignored)
+ locale/is, locale/pl -- Gettext catalogs (commit the =.po= files)
export.el -- Batch org -> RST exporter
#+end_example
@@ -112,10 +114,16 @@ Commits follow conventional commits, managed by =cocogitto= (=cog=):
pixi run -e docs docbld
#+end_src
+That exports org to RST, refreshes the Icelandic and Polish gettext catalogs, and builds HTML for =en=, =is=, and =pl=.
+RST, =.pot=, =.mo=, and =docs/build/= are gitignored.
+When org reference text changes (especially =formats.org=), commit the updated =docs/locale/**/*.po= files so the next Pages build does not keep v0.11 msgids.
+
Or manually:
#+begin_src bash
emacs --batch -l docs/export.el
+sphinx-build -b gettext docs/source docs/locale/pot
+sphinx-intl update -p docs/locale/pot -l is -l pl -d docs/locale
sphinx-build docs/source docs/build -b html
#+end_src
diff --git a/docs/orgmode/faq/index.org b/docs/orgmode/faq/index.org
index da84ed30..b668f7d7 100644
--- a/docs/orgmode/faq/index.org
+++ b/docs/orgmode/faq/index.org
@@ -54,7 +54,7 @@ The Unicode UAX #29 sentence boundary algorithm works across all languages.
Enable with =--neural --lang de=.
Models download on first use (~4MB, cached).
-The rule-based approach handles most academic text well and runs 18x faster.
+The rule-based approach handles most academic text well and runs about 40x faster than neural (~5ms vs ~200ms per file; see the neural-detection howto).
Use neural for languages where abbreviation rules fall short (Chinese, Turkish, etc.).
* Why does =snapper= conflict with openSUSE?
@@ -80,11 +80,7 @@ use snapper_fmt::format::Format;
let config = FormatConfig {
format: Format::Org,
- max_width: 0,
- use_neural: false,
- neural_lang: "en".to_string(),
- neural_model_path: None,
- extra_abbreviations: vec![],
+ ..Default::default()
};
let output = format_text(input, &config).unwrap();
#+end_src
diff --git a/docs/orgmode/howto/editor-integration.org b/docs/orgmode/howto/editor-integration.org
index af432500..335a789f 100644
--- a/docs/orgmode/howto/editor-integration.org
+++ b/docs/orgmode/howto/editor-integration.org
@@ -10,14 +10,16 @@
#+begin_src elisp
(with-eval-after-load 'apheleia
- (push '(snapper . ("snapper" "--native" "--format" "org")) apheleia-formatters)
- (push '(org-mode . snapper) apheleia-mode-alist)
- ;; Add for other formats:
- (push '(latex-mode . snapper) apheleia-mode-alist)
- (push '(markdown-mode . snapper) apheleia-mode-alist))
+ (push '(snapper-org . ("snapper" "--native" "--format" "org")) apheleia-formatters)
+ (push '(snapper-latex . ("snapper" "--native" "--format" "latex")) apheleia-formatters)
+ (push '(snapper-md . ("snapper" "--native" "--format" "markdown")) apheleia-formatters)
+ (push '(org-mode . snapper-org) apheleia-mode-alist)
+ (push '(latex-mode . snapper-latex) apheleia-mode-alist)
+ (push '(markdown-mode . snapper-md) apheleia-mode-alist))
#+end_src
-The =--format= flag auto-detects from the file extension, so you can omit it if your files have standard extensions.
+=--format= does not auto-detect from the buffer name.
+Each mode must pass the matching format token (=org=, =latex=, =markdown=, =rst=, =plaintext=).
* Vim / Neovim
:PROPERTIES:
@@ -41,7 +43,7 @@ require("conform").setup({
formatters = {
snapper = {
command = "snapper",
- args = { "--native", "--format", "$FILETYPE" },
+ args = { "--native", "--stdin-filepath", "$FILENAME" },
stdin = true,
},
},
@@ -49,6 +51,7 @@ require("conform").setup({
org = { "snapper" },
tex = { "snapper" },
markdown = { "snapper" },
+ rst = { "snapper" },
},
})
#+end_src
diff --git a/docs/orgmode/howto/git-filter.org b/docs/orgmode/howto/git-filter.org
index 65117a84..500b0b57 100644
--- a/docs/orgmode/howto/git-filter.org
+++ b/docs/orgmode/howto/git-filter.org
@@ -17,7 +17,7 @@ This makes semantic line breaks transparent to collaborators who do not use snap
Configure the filter in your local git config:
#+begin_src bash
-git config filter.snapper.clean "snapper --format org"
+git config filter.snapper.clean "snapper --native --format org"
git config filter.snapper.smudge cat
#+end_src
@@ -33,10 +33,11 @@ Add to your repository's =.gitattributes=:
#+begin_src text
*.org filter=snapper
-*.tex filter=snapper
-*.md filter=snapper
#+end_src
+Do not attach this =--format org= filter to =*.tex= or =*.md=.
+Those extensions need their own clean command (see per-format filters below).
+
Commit =.gitattributes= to share with collaborators.
The filter only activates for people who have configured it locally.
@@ -48,10 +49,10 @@ The filter only activates for people who have configured it locally.
If you need different settings per format:
#+begin_src bash
-git config filter.snapper-org.clean "snapper --format org"
+git config filter.snapper-org.clean "snapper --native --format org"
git config filter.snapper-org.smudge cat
-git config filter.snapper-tex.clean "snapper --format latex"
+git config filter.snapper-tex.clean "snapper --native --format latex"
git config filter.snapper-tex.smudge cat
#+end_src
diff --git a/docs/orgmode/howto/pragmas.org b/docs/orgmode/howto/pragmas.org
index ece4cb8e..df3f1d60 100644
--- a/docs/orgmode/howto/pragmas.org
+++ b/docs/orgmode/howto/pragmas.org
@@ -73,6 +73,25 @@ be reformatted.
More prose that gets reformatted.
#+end_src
+** reStructuredText
+:PROPERTIES:
+:CUSTOM_ID: syntax-rst
+:END:
+
+A bare line (the same payload as plaintext).
+A =..= comment is /not/ stripped, so =.. snapper:off= is not a pragma.
+
+#+begin_src rst
+Some prose that gets reformatted normally.
+
+snapper:off
+This text will not
+be reformatted.
+snapper:on
+
+More prose that gets reformatted.
+#+end_src
+
** Plaintext
:PROPERTIES:
:CUSTOM_ID: syntax-plaintext
diff --git a/docs/orgmode/reference/cli.org b/docs/orgmode/reference/cli.org
index 7fac0d3e..2eed746a 100644
--- a/docs/orgmode/reference/cli.org
+++ b/docs/orgmode/reference/cli.org
@@ -231,6 +231,15 @@ Print help message.
Print version.
+*** =--color =
+:PROPERTIES:
+:CUSTOM_ID: opt-color
+:END:
+
+When to color =--diff= / =sdiff= / =git-diff= output: =auto= (default), =always=, or =never=.
+Global.
+=sdiff= and =git-diff= also accept =--no-color= as an alias for =--color never=.
+
** Subcommands
:PROPERTIES:
:CUSTOM_ID: subcommands
@@ -269,7 +278,7 @@ Exits with code 1 if differences found.
Sentence-level diff against a git ref.
Default ref: =HEAD=.
-If no files specified, diffs all changed prose files (=.org=, =.tex=, =.md=).
+If no files specified, diffs all changed recognized prose files (=.org=, =.tex=, =.latex=, =.md=, =.markdown=, =.rst=, =.rest=, =.txt=).
Uses =git show REF:path= to retrieve the old version.
*** =snapper watch =
@@ -290,6 +299,15 @@ Start the Language Server Protocol server on stdin/stdout.
Provides document formatting, range formatting, and diagnostics (flags lines with multiple sentences).
Works with any LSP-compatible editor (Neovim, Emacs eglot, VS Code, Helix).
+*** =snapper mcp=
+:PROPERTIES:
+:CUSTOM_ID: cmd-mcp
+:END:
+
+Start the MCP server on stdin/stdout.
+Tools: =format_text=, =detect_format=, =check_formatting=, =split_sentences=.
+Published binaries include this server (=mcp= is a default Cargo feature).
+
** Exit codes
:PROPERTIES:
:CUSTOM_ID: exit-codes
diff --git a/docs/orgmode/reference/formats.org b/docs/orgmode/reference/formats.org
index a18a04d8..315ae668 100644
--- a/docs/orgmode/reference/formats.org
+++ b/docs/orgmode/reference/formats.org
@@ -186,13 +186,19 @@ These tokens within prose are not split across lines:
:END:
- Front matter (=---= or =+++= delimited at file start)
- Full ATX heading lines (=#= … =######= including title text)
+- Empty ATX headings (a mark line with no title text) stay Structure
- Setext headings (title line plus ====== or ------ underline)
- List item markers (=-=, =*=, =+=, =1.=); continuation sentences hang at the marker width
+- Empty list markers (including quoted) stay Structure
- Definition-list terms and =: = markers (pulldown =ENABLE_DEFINITION_LIST=); the body hangs at the marker width
- Blockquote markers (=>= / nested => > =); continuation sentences repeat the quote prefix
- GFM alert type markers (=[!NOTE]= / =[!TIP]= / =[!WARNING]= / =[!CAUTION]= / =[!IMPORTANT]=); the body hangs and splits like a quote
+- Link-reference definitions (=[label]: dest=); the destination may sit on the next line.
+ A definition that sits inside a paragraph stays Prose
+- GFM footnote definitions (=[^label]:=); the marker is Structure and the body hangs
- Hard line breaks (two trailing spaces, or a trailing backslash)
- HTML comments (==, including multiline); == / == remain pragmas
+- Closed type-6 and type-7 HTML blocks end at the matching close tag; following prose stays Prose
- Pipe tables
*** Code regions (fenced =```= / =~~~=)
@@ -210,6 +216,7 @@ These tokens within prose are not split across lines:
- Paragraph text
- List item text (after the marker); continuation sentences hang at the marker width
- Definition-list body (after the =: = marker); continuation sentences hang at the marker width
+- GFM footnote-definition body (after =[^label]:=); continuation sentences hang at the marker width
- Blockquote inner text (after the =>= marker); continuation sentences repeat the quote prefix
*** Inline tokens (kept atomic)
@@ -232,10 +239,13 @@ These tokens within prose are not split across lines:
:CUSTOM_ID: rst-structure
:END:
- Non-code opaque directives (=.. math::=, =.. image::=, =.. raw::=, =.. include::=, =.. csv-table::=) and their indented bodies
-- Container directive openers (=.. note::=, =.. warning::=, =.. figure::=, =.. topic::=, =.. sidebar::=, =.. container::=, leftover =.. parsed-literal::=, =.. epigraph::=, =.. highlights::=, =.. pull-quote::=, =.. compound::=) and their =:option:= fields; the indented body is prose
+- Container directive openers (=.. note::=, =.. warning::=, =.. figure::=, =.. topic::=, =.. sidebar::=, =.. container::=, leftover =.. parsed-literal::=, =.. epigraph::=, =.. highlights::=, =.. pull-quote::=, =.. compound::=, =.. header::=, =.. footer::=) and their =:option:= fields; the indented body is prose
+- Same-line body after =::= on those containers, leftover =.. parsed-literal::=, =.. header::=, =.. footer::=, =.. |name| replace::=, and =.. meta::= fields hangs and splits.
+ Flush bibliographic fields close a meta leftover
- Literal blocks (text after =::= with indented or line-prefix-quoted content)
- Section titles and underlines (=====, =-----=, etc.)
- Field lists (=:Author:=, =:Date:=, etc.)
+- Empty list items, empty doctest openers, and empty field-list markers at EOL stay Structure
- Comments (=..= without a directive)
- Grid and simple tables (lines starting with =|= or =+=)
@@ -286,11 +296,11 @@ Blank lines are preserved as paragraph separators.
:PROPERTIES:
:CUSTOM_ID: delimiter-span-policy
:END:
-- Balanced ASCII/curly/guillemet quotes, LaTeX =``…''=, and =()[]{}= must not gain a semantic line break mid-span (see =tests/sentence_delim_props.rs=).
+- Balanced ASCII/curly/guillemet quotes, LaTeX double-backtick quotes, and =()[]{}= must not gain a semantic line break mid-span (see =tests/sentence_delim_props.rs=).
- Unclosed ="= (or open =‘= without =’=) glues the rest of the paragraph; snapper does not invent closers.
- Nested semantic ASCII quotes (=say "hi" now= with an inner pair) remain toggle-ambiguous; prefer typographic quotes or escapes in source.
- Apostrophes in contractions (=don't=, =it's=) are not treated as dialogue openers.
-- Markdown fences (=```=) are not treated as LaTeX =``= openers.
+- Markdown fences (three backticks) are not treated as LaTeX double-backtick openers.
- =--neural= runs the same abbreviation + span post-pipeline after the model proposes cuts (English papers can still prefer the rules path for fully offline, deterministic CI).
~snapper~ merges false splits caused by known abbreviations:
diff --git a/docs/orgmode/tutorials/quickstart.org b/docs/orgmode/tutorials/quickstart.org
index b1c8b809..a6aa6d93 100644
--- a/docs/orgmode/tutorials/quickstart.org
+++ b/docs/orgmode/tutorials/quickstart.org
@@ -118,7 +118,10 @@ Source blocks are code regions: fences stay fixed and configured language commen
- =.org= -- Org-mode
- =.tex=, =.latex= -- LaTeX
- =.md=, =.markdown= -- Markdown
-- Everything else -- plaintext
+- =.rst=, =.rest= -- reStructuredText
+- =.txt= -- plaintext
+
+Unknown extensions (=.rs=, =.py=, no extension) are refused unless =--format= is explicit.
Override with =--format=:
diff --git a/docs/source/cli-reference.md b/docs/source/cli-reference.md
index 5cb8deb9..ea73778d 100644
--- a/docs/source/cli-reference.md
+++ b/docs/source/cli-reference.md
@@ -70,6 +70,11 @@ Semantic line break formatter
* `--format-code` — Pipe each code block's body through the per-language formatter configured under `[code..formatter]` in `.snapperrc.toml`. The formatter runs after the in-block comment reflow. Missing binaries, non-zero exits, and timeouts surface as stderr diagnostics; snapper still exits 0
Default value: `false`
+* `--color ` — When to color `--diff` / `sdiff` / `git-diff` output: `auto` (default), `always`, or `never`. Global. `sdiff` and `git-diff` also accept `--no-color` as an alias for `--color never`
+
+ Default value: `auto`
+
+ Possible values: `auto`, `always`, `never`
diff --git a/editors/nvim/README.md b/editors/nvim/README.md
index 02214032..85e6fad2 100644
--- a/editors/nvim/README.md
+++ b/editors/nvim/README.md
@@ -26,7 +26,7 @@ Neovim plugin for [snapper](https://github.com/TurtleTech-ehf/snapper) - the sem
dependencies = {
"stevearc/conform.nvim", -- Optional: for conform integration
},
- ft = { "org", "tex", "markdown", "rst", "plaintex" },
+ ft = { "org", "tex", "markdown", "rst" },
config = function()
vim.opt.runtimepath:append(
vim.fn.stdpath("data") .. "/lazy/snapper/editors/nvim"
@@ -61,7 +61,7 @@ require("snapper").setup({
timeout_ms = 1000,
async = false,
},
- filetypes = { "org", "tex", "markdown", "rst", "plaintext" }, -- Supported filetypes
+ filetypes = { "org", "tex", "markdown", "rst" }, -- Neovim filetypes the LSP starts on
keymaps = { -- Set to nil to disable keymaps
format = "sf", -- Format buffer
format_range = "sF", -- Format selection
@@ -96,15 +96,21 @@ require("conform").setup({
})
```
-### With nvim-lspconfig
+### Manual LSP (no nvim-lspconfig snapper config)
-The snapper LSP server can also be configured manually with nvim-lspconfig:
+nvim-lspconfig does not ship a `snapper` server.
+Start it with `vim.lsp.start`:
```lua
-require("lspconfig").snapper.setup({
- cmd = { "snapper", "lsp" },
- filetypes = { "org", "tex", "markdown", "rst" },
- root_dir = require("lspconfig").util.root_pattern(".snapperrc.toml", ".git"),
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = { "org", "tex", "markdown", "rst" },
+ callback = function()
+ vim.lsp.start({
+ name = "snapper",
+ cmd = { "snapper", "lsp" },
+ root_dir = vim.fs.root(0, { ".snapperrc.toml", ".git" }),
+ })
+ end,
})
```
diff --git a/editors/nvim/doc/snapper.txt b/editors/nvim/doc/snapper.txt
index 341312fb..f7d8333d 100644
--- a/editors/nvim/doc/snapper.txt
+++ b/editors/nvim/doc/snapper.txt
@@ -17,8 +17,8 @@ License |snapper-license|
INTRODUCTION *snapper-intro*
snapper.nvim provides integration with snapper, a semantic line break formatter
-for prose documents. It supports Org mode, LaTeX, Markdown, reStructuredText,
-and plain text files.
+for prose documents. It supports Org mode, LaTeX, Markdown, and
+reStructuredText (Neovim filetypes org, tex, markdown, rst).
Features:
- Full LSP integration for formatting, diagnostics, and code actions
@@ -41,7 +41,7 @@ lazy.nvim:
dependencies = {
"stevearc/conform.nvim", -- optional
},
- ft = { "org", "tex", "markdown", "rst", "plaintex" },
+ ft = { "org", "tex", "markdown", "rst" },
config = function()
vim.opt.runtimepath:append(
vim.fn.stdpath("data") .. "/lazy/snapper/editors/nvim"
@@ -64,9 +64,9 @@ vim-plug:
==============================================================================
USAGE *snapper-usage*
-After installation and setup, snapper will automatically format supported
-filetypes when you open them. You can use the provided commands or keymaps
-to format manually.
+After installation and setup, the snapper LSP starts on supported
+filetypes. Format-on-save is off by default (`format_on_save = false`).
+Use the provided commands or keymaps to format manually.
==============================================================================
CONFIGURATION *snapper-config*
@@ -82,7 +82,7 @@ To configure snapper, call the setup function with options:
timeout_ms = 1000,
async = false,
},
- filetypes = { "org", "tex", "markdown", "rst", "plaintext" },
+ filetypes = { "org", "tex", "markdown", "rst" },
keymaps = {
format = "sf", -- Format buffer
format_range = "sF", -- Format selection
diff --git a/editors/nvim/lua/snapper/config.lua b/editors/nvim/lua/snapper/config.lua
index 31b37139..0f01d328 100644
--- a/editors/nvim/lua/snapper/config.lua
+++ b/editors/nvim/lua/snapper/config.lua
@@ -10,7 +10,7 @@ M.defaults = {
timeout_ms = 1000,
async = false,
},
- filetypes = { "org", "tex", "markdown", "rst", "plaintext" },
+ filetypes = { "org", "tex", "markdown", "rst" },
keymaps = {
format = "sf", -- Format buffer
format_range = "sF", -- Format selection
diff --git a/editors/nvim/tests/snapper_spec.lua b/editors/nvim/tests/snapper_spec.lua
index e0ef8cc9..85007426 100644
--- a/editors/nvim/tests/snapper_spec.lua
+++ b/editors/nvim/tests/snapper_spec.lua
@@ -34,7 +34,7 @@ describe('snapper', function()
assert.is_true(defaults.autostart)
assert.is_false(defaults.format_on_save)
assert.is_true(defaults.conform_integration)
- assert.are.same({ "org", "tex", "markdown", "rst", "plaintext" }, defaults.filetypes)
+ assert.are.same({ "org", "tex", "markdown", "rst" }, defaults.filetypes)
end)
it('should merge user config with defaults', function()
diff --git a/editors/vim/autoload/snapper.vim b/editors/vim/autoload/snapper.vim
index 7dcb6f8b..819617a0 100644
--- a/editors/vim/autoload/snapper.vim
+++ b/editors/vim/autoload/snapper.vim
@@ -46,5 +46,5 @@ function! snapper#info()
echo 'Snapper Info:'
echo ' Binary: available'
echo ' Version: ' . trim(version_output)
- echo ' Supported formats: org, tex, markdown, rst, plaintex'
+ echo ' Supported formats: org, latex, markdown, rst, plaintext'
endfunction
\ No newline at end of file
diff --git a/editors/vim/doc/snapper.txt b/editors/vim/doc/snapper.txt
index 46e322f0..ac8653da 100644
--- a/editors/vim/doc/snapper.txt
+++ b/editors/vim/doc/snapper.txt
@@ -70,7 +70,8 @@ The plugin automatically sets formatprg for supported filetypes:
- tex: snapper --native --format latex
- markdown: snapper --native --format markdown
- rst: snapper --native --format rst
-- plaintex: snapper --native --format plaintex
+- plaintex: snapper --native --format latex
+- text: snapper --native --format plaintext
This enables formatting with gq operator in normal mode.
diff --git a/editors/vim/plugin/snapper.vim b/editors/vim/plugin/snapper.vim
index f3f1dd60..383a8c9f 100644
--- a/editors/vim/plugin/snapper.vim
+++ b/editors/vim/plugin/snapper.vim
@@ -20,5 +20,6 @@ augroup snapper
autocmd FileType tex setlocal formatprg=snapper\ --native\ --format\ latex
autocmd FileType markdown setlocal formatprg=snapper\ --native\ --format\ markdown
autocmd FileType rst setlocal formatprg=snapper\ --native\ --format\ rst
- autocmd FileType plaintex setlocal formatprg=snapper\ --native\ --format\ plaintex
+ autocmd FileType plaintex setlocal formatprg=snapper\ --native\ --format\ latex
+ autocmd FileType text setlocal formatprg=snapper\ --native\ --format\ plaintext
augroup END
\ No newline at end of file
diff --git a/editors/vscode/README.md b/editors/vscode/README.md
index 684f87a8..64a11321 100644
--- a/editors/vscode/README.md
+++ b/editors/vscode/README.md
@@ -1,6 +1,9 @@
# snapper - Semantic Line Breaks
-Requires **snapper** CLI **0.11.4+** on your PATH (or set `snapper.path`). Install: `cargo install snapper-fmt` or the [release installer](https://github.com/TurtleTech-ehf/snapper/releases/tag/v0.11.4).
+Requires the **snapper** / **snapper-fmt** CLI **0.11.4+** on your PATH (or set `snapper.path`).
+The crate is `snapper-fmt`; installers ship both names.
+If [openSUSE snapper](https://github.com/openSUSE/snapper) already owns `/usr/bin/snapper`, call `snapper-fmt` or set `snapper.path`.
+Install: `cargo install snapper-fmt` or the [release installer](https://github.com/TurtleTech-ehf/snapper/releases/tag/v0.11.4).
Format prose so each sentence occupies its own line, producing clean git diffs for collaborative writing.
diff --git a/editors/word/README.md b/editors/word/README.md
index 9192e4dc..7d6fe841 100644
--- a/editors/word/README.md
+++ b/editors/word/README.md
@@ -34,7 +34,7 @@ CI builds the Word add-in in `.github/workflows/wasm.yml` (`build-word` job).
## Relationship to the CLI
-Word uses the **plaintext** format path in WASM. For Org/LaTeX fidelity, prefer the CLI or VS Code extension (LSP). Delimiter-span and abbreviation behavior matches snapper **0.8.1** as exposed by the WASM API.
+Word uses the **plaintext** format path in WASM. For Org/LaTeX fidelity, prefer the CLI or VS Code extension (LSP). Delimiter-span and abbreviation behavior matches the current WASM API (requires snapper **0.11.4+**).
## License
diff --git a/readme_src.org b/readme_src.org
index fe7de429..0a047043 100644
--- a/readme_src.org
+++ b/readme_src.org
@@ -85,7 +85,7 @@ snapper --in-place paper.org
#+end_src
Pipe through stdin (for editor integration):
#+begin_src bash
-cat draft.org | snapper --format org
+cat draft.org | snapper --native --format org
#+end_src
The CLI uses pandoc (auto FFI, then CLI) when an FFI writer or =pandoc= on =PATH= is available.
Otherwise it keeps the native line parsers (no error).
@@ -150,7 +150,7 @@ Configuration guide (org source in-tree): =docs/orgmode/howto/mcp-integration.or
| LaTeX | =.tex=, =.latex= | Preamble, math; minted and lstlisting comment reflow; Piton / =\piton= |
| Markdown | =.md=, =.markdown= | Front matter, HTML; fenced blocks comment reflow when configured |
| RST | =.rst= | Directives, literals; =.. code-block::= comment reflow |
-| Plaintext | everything else | (none; all text treated as prose) |
+| Plaintext | =.txt= | (none; all text treated as prose). Unknown extensions are refused unless =--format= is set |
** Pre-commit hook
:PROPERTIES:
:CUSTOM_ID: pre-commit-hook
@@ -224,7 +224,7 @@ The WebAssembly add-in source and sideloading instructions live in =editors/word
:END:
Auto-format on commit, transparent to collaborators:
#+begin_src bash
-git config filter.snapper.clean "snapper --format org"
+git config filter.snapper.clean "snapper --native --format org"
git config filter.snapper.smudge cat
#+end_src
Then add to =.gitattributes=: