Goal: Generate man pages and web docs from one source. Current plan: The master docs for each package are now the pandoc-style manpage-markdown files in the package directories - hledger/hledger.1.md, hledger-lib/hledger_journal.5.md, etc. Parts of these will be marked as web-only, and parts as man-only, using divs recognisable by custom pandoc filters. When generating man pages we strip the web-only parts, and all html blocks, inline html and hyperlinks. When generating web docs we strip the man-only parts and apply any other tweaks needed for easy presentation, perhaps combining them into a single web page similar to the old user manual. Shake: This was hard to do with GNU Make, and so I've introduced Shake, which is working very well. Both coexist for now but it's probably time to switch.
		
			
				
	
	
		
			13 lines
		
	
	
		
			291 B
		
	
	
	
		
			Haskell
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
		
			291 B
		
	
	
	
		
			Haskell
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env stack
 | |
| -- stack runghc --package pandoc-types
 | |
| 
 | |
| import Text.Pandoc.Builder
 | |
| import Text.Pandoc.JSON
 | |
| 
 | |
| main :: IO ()
 | |
| main = toJSONFilter removeManonlyBlocks
 | |
| 
 | |
| removeManonlyBlocks :: Block -> Block
 | |
| removeManonlyBlocks (Div ("",["manonly"],[]) _) = Plain []
 | |
| removeManonlyBlocks x = x
 |