aboutsummaryrefslogtreecommitdiff
path: root/_extensions
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-04-19 11:26:11 +0200
committerJonas Smedegaard <dr@jones.dk>2025-04-19 11:26:11 +0200
commit5a7dfaded7d38d764b242b1132fbefb557f3bc21 (patch)
treef7807b81bd5786c01a3eb0f9f41da0fe74f088fa /_extensions
parente546c1924d534961cc1293ea0d878819f9f29a0c (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.yml6
-rw-r--r--_extensions/js/nobreaks/nobreaks.lua20
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