diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-04-19 11:26:11 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-04-19 11:26:11 +0200 |
commit | 5a7dfaded7d38d764b242b1132fbefb557f3bc21 (patch) | |
tree | f7807b81bd5786c01a3eb0f9f41da0fe74f088fa /_extensions | |
parent | e546c1924d534961cc1293ea0d878819f9f29a0c (diff) |
add filter to avoid linebreak between a number and a unit or quantifier
Diffstat (limited to '_extensions')
-rw-r--r-- | _extensions/js/nobreaks/_extension.yml | 6 | ||||
-rw-r--r-- | _extensions/js/nobreaks/nobreaks.lua | 20 |
2 files changed, 26 insertions, 0 deletions
diff --git a/_extensions/js/nobreaks/_extension.yml b/_extensions/js/nobreaks/_extension.yml new file mode 100644 index 0000000..c25344e --- /dev/null +++ b/_extensions/js/nobreaks/_extension.yml @@ -0,0 +1,6 @@ +title: NoBreaks +author: Jonas Smedegaard +version: 0.0.2 +contributes: + filters: + - nobreaks.lua diff --git a/_extensions/js/nobreaks/nobreaks.lua b/_extensions/js/nobreaks/nobreaks.lua new file mode 100644 index 0000000..dad13d5 --- /dev/null +++ b/_extensions/js/nobreaks/nobreaks.lua @@ -0,0 +1,20 @@ +-- Avoid linebreak between a number and a unit or quantifier + +local non_breaking_space = pandoc.Str("\u{00A0}") + +function Para(el) + for i = 1, #el.content - 1 do + if el.content[i].t == "Space" then + local el_prev = el.content[i - 1] + local el_next = el.content[i + 1] + if el_prev and el_next + and el_prev.t == "Str" and el_next.t == "Str" + and string.match(el_prev.text, "%d$") + and string.match(el_next.text, "^[%a%%§°]") + then + el.content[i] = non_breaking_space + end + end + end + return el +end |