summaryrefslogtreecommitdiff
path: root/filters/wordcount.lua
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-06-30 12:34:56 +0100
committerJoe Carstairs <me@joeac.net>2026-06-30 12:36:19 +0100
commit3513c8d066dac595f92ed12dd37da9cbd51cc186 (patch)
treea7816e1008c4c2fe4e8cb9a4411f7e31d061e6c7 /filters/wordcount.lua
parent39f62e8405e2585ef87a69cad0a4f246d4cac880 (diff)
uses pandoc wordcount lua-filter and no-refs build via latex for more
accurate word-counts
Diffstat (limited to 'filters/wordcount.lua')
-rw-r--r--filters/wordcount.lua28
1 files changed, 28 insertions, 0 deletions
diff --git a/filters/wordcount.lua b/filters/wordcount.lua
new file mode 100644
index 0000000..587f45d
--- /dev/null
+++ b/filters/wordcount.lua
@@ -0,0 +1,28 @@
+-- counts words in a document
+
+words = 0
+
+wordcount = {
+ Str = function(el)
+ -- we don't count a word if it's entirely punctuation:
+ if el.text:match("%P") then
+ words = words + 1
+ end
+ end,
+
+ Code = function(el)
+ _,n = el.text:gsub("%S+","")
+ words = words + n
+ end,
+
+ CodeBlock = function(el)
+ _,n = el.text:gsub("%S+","")
+ words = words + n
+ end
+}
+
+function Pandoc(el)
+ pandoc.walk_block(pandoc.Div(el.blocks), wordcount)
+ print(words)
+ os.exit(0)
+end