remove haskell filter
This commit is contained in:
		
							
								
								
									
										29
									
								
								output.html
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								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.</p>
 | 
			
		||||
<div data-include="filter.hs , filter.lua , ,">
 | 
			
		||||
#!/usr/bin/env runhaskell
 | 
			
		||||
-- filter.hs
 | 
			
		||||
import Text.Pandoc.JSON
 | 
			
		||||
import qualified Data.Text.IO as TIO
 | 
			
		||||
import qualified Data.Text as T
 | 
			
		||||
<div data-include="README.md , filter.lua , ,">
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user