From 40f6d927cdd11ae7221f57cb542265260ce9de76 Mon Sep 17 00:00:00 2001
From: Yu Cong
Date: Sat, 11 Oct 2025 09:14:33 +0800
Subject: [PATCH] remove haskell filter
---
.ghc.environment.aarch64-darwin-9.4.8 | 6 ------
.ghc.environment.aarch64-darwin-9.6.7 | 6 ------
.vscode/settings.json | 7 +++----
filter.hs | 20 ------------------
input.md | 2 +-
makefile | 5 -----
output.html | 29 +++++++++------------------
7 files changed, 14 insertions(+), 61 deletions(-)
delete mode 100644 .ghc.environment.aarch64-darwin-9.4.8
delete mode 100644 .ghc.environment.aarch64-darwin-9.6.7
delete mode 100755 filter.hs
diff --git a/.ghc.environment.aarch64-darwin-9.4.8 b/.ghc.environment.aarch64-darwin-9.4.8
deleted file mode 100644
index 3eedeb6..0000000
--- a/.ghc.environment.aarch64-darwin-9.4.8
+++ /dev/null
@@ -1,6 +0,0 @@
-clear-package-db
-global-package-db
-package-db /Users/congyu/.cabal/store/ghc-9.4.8/package.db
-package-id base-4.17.2.1
-package-id pndc-typs-1.23.1-53806a08
-package-id text-2.0.2
diff --git a/.ghc.environment.aarch64-darwin-9.6.7 b/.ghc.environment.aarch64-darwin-9.6.7
deleted file mode 100644
index 8751a4a..0000000
--- a/.ghc.environment.aarch64-darwin-9.6.7
+++ /dev/null
@@ -1,6 +0,0 @@
-clear-package-db
-global-package-db
-package-db /Users/congyu/.cabal/store/ghc-9.6.7/package.db
-package-id base-4.18.3.0
-package-id pndc-typs-1.23.1-7d4eff68
-package-id text-2.0.2
diff --git a/.vscode/settings.json b/.vscode/settings.json
index ae4cd54..46d4cf7 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,6 +1,5 @@
{
-"haskell.toolchain": {
- "hls": "2.10.0.0",
- "ghc": "9.6.7"
-}
+"Lua.diagnostics.globals": [
+ "pandoc"
+]
}
\ No newline at end of file
diff --git a/filter.hs b/filter.hs
deleted file mode 100755
index cea63f6..0000000
--- a/filter.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env runhaskell
--- filter.hs
-import Text.Pandoc.JSON
-import qualified Data.Text.IO as TIO
-import qualified Data.Text as T
-
-file2Block :: FilePath -> IO [Block]
-file2Block f = do
- contents <- TIO.readFile f
- return [Plain [Str contents]]
-
-doInclude :: Block -> IO Block
-doInclude cb@(Div (id, classes, namevals) contents) =
- case lookup (T.pack "include") namevals of
- Just f -> Div (id, classes, namevals) <$> file2Block (T.unpack f)
- Nothing -> return cb
-doInclude x = return x
-
-main :: IO ()
-main = toJSONFilter doInclude
\ No newline at end of file
diff --git a/input.md b/input.md
index db59039..f6ea9b7 100644
--- a/input.md
+++ b/input.md
@@ -1,7 +1,7 @@
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce porta mattis neque, quis molestie nunc faucibus vitae. Phasellus vel commodo dolor, at faucibus arcu. Curabitur sit amet magna a neque euismod feugiat non et diam. Aliquam sit amet libero enim. Integer dignissim ullamcorper felis, ac ultrices turpis congue vel. Nulla id tempus orci. Curabitur ac vulputate tellus. Integer fermentum tempor facilisis. Duis egestas luctus tristique. Maecenas vitae arcu sit amet justo feugiat imperdiet. Nunc luctus erat sed ligula convallis hendrerit.
-:::{include="filter.hs , filter.lua , ,"}
+:::{include="README.md , filter.lua , ,"}
:::
diff --git a/makefile b/makefile
index 2047088..01f670a 100644
--- a/makefile
+++ b/makefile
@@ -1,12 +1,7 @@
-.PHONY: filter showAST nofilter
-
nofilter:
pandoc -fmarkdown -thtml input.md > output.html
-hs:
- pandoc -fmarkdown -thtml input.md --filter ./filter.hs > output.html
-
lua:
pandoc -fmarkdown -thtml input.md --lua-filter ./filter.lua > output.html
diff --git a/output.html b/output.html
index 2eab6ac..e724ed7 100644
--- a/output.html
+++ b/output.html
@@ -6,28 +6,19 @@ ullamcorper felis, ac ultrices turpis congue vel. Nulla id tempus orci.
Curabitur ac vulputate tellus. Integer fermentum tempor facilisis. Duis
egestas luctus tristique. Maecenas vitae arcu sit amet justo feugiat
imperdiet. Nunc luctus erat sed ligula convallis hendrerit.
-
-#!/usr/bin/env runhaskell
--- filter.hs
-import Text.Pandoc.JSON
-import qualified Data.Text.IO as TIO
-import qualified Data.Text as T
+
+# Piecewise Readable Filter
-file2Block :: FilePath -> IO [Block]
-file2Block f = do
- contents <- TIO.readFile f
- return [Plain [Str contents]]
+This is a pandoc filter manipulating
+[fenced_divs](https://pandoc.org/MANUAL.html#extension-fenced_divs) in
+pandoc markdown.
-doInclude :: Block -> IO Block
-doInclude cb@(Div (id, classes, namevals) contents) =
- case lookup (T.pack "include") namevals of
- Just f -> Div (id, classes, namevals) <$> file2Block
-(T.unpack f)
- Nothing -> return cb
-doInclude x = return x
+Inspired by [this
+joke](https://www.zhihu.com/question/586807834/answer/2973535981).
+
+useful refs:
+- https://pandoc.org/lua-filters.html
-main :: IO ()
-main = toJSONFilter doInclude
local function words(s)
local res = {}
for part in s:gmatch("[^,]+") do -- split by commas