doc: allow per-package m4 defs, to override things like version
[ci skip]
This commit is contained in:
		
							parent
							
								
									3f4473639a
								
							
						
					
					
						commit
						bf6acf52ef
					
				
							
								
								
									
										49
									
								
								Shake.hs
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								Shake.hs
									
									
									
									
									
								
							| @ -241,16 +241,17 @@ main = do | ||||
|     -- Generate nroff man pages suitable for man output. | ||||
|     phony "manmanuals" $ need nroffmanuals | ||||
|     nroffmanuals |%> \out -> do -- hledger/hledger.1 | ||||
|       let src = manpageNameToManualName out <.> "m4.md" | ||||
|           lib = "doc/common.m4" | ||||
|           dir = takeDirectory out | ||||
|           tmpl = "doc/manpage.nroff" | ||||
|       let src       = manpageNameToManualName out <.> "m4.md" | ||||
|           commonm4  = "doc/common.m4" | ||||
|           dir       = takeDirectory out | ||||
|           packagem4 = dir </> "defs.m4" | ||||
|           tmpl      = "doc/manpage.nroff" | ||||
|       -- assume all other m4 files in dir are included by this one XXX not true in hledger-lib | ||||
|       deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir </>) <$> S.getDirectoryContents dir | ||||
|       need $ src : lib : tmpl : deps | ||||
|       need $ [src, commonm4, packagem4, tmpl] ++ deps | ||||
|       when (dir=="hledger") $ need commandmds | ||||
|       cmd Shell | ||||
|         "m4 -P -DMAN -I" dir lib src "|" | ||||
|         "m4 -P -DMAN -I" dir commonm4 packagem4 src "|" | ||||
|         pandoc fromsrcmd "-s" "--template" tmpl | ||||
|         "--lua-filter tools/pandoc-drop-html-blocks.lua" | ||||
|         "--lua-filter tools/pandoc-drop-html-inlines.lua" | ||||
| @ -268,15 +269,16 @@ main = do | ||||
|     -- Generate Info manuals suitable for viewing with info. | ||||
|     phony "infomanuals" $ need infomanuals | ||||
|     infomanuals |%> \out -> do -- hledger/hledger.info | ||||
|       let src = out -<.> "m4.md" | ||||
|           lib = "doc/common.m4" | ||||
|           dir = takeDirectory out | ||||
|       let src       = out -<.> "m4.md" | ||||
|           commonm4  = "doc/common.m4" | ||||
|           dir       = takeDirectory out | ||||
|           packagem4 = dir </> "defs.m4" | ||||
|       -- assume all other m4 files in dir are included by this one XXX not true in hledger-lib | ||||
|       deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir </>) <$> S.getDirectoryContents dir | ||||
|       need $ src : lib : deps | ||||
|       need $ [src, commonm4, packagem4] ++ deps | ||||
|       when (dir=="hledger") $ need commandmds | ||||
|       cmd Shell | ||||
|         "m4 -P -I" dir lib src "|" | ||||
|         "m4 -P -I" dir commonm4 packagem4 src "|" | ||||
|         pandoc fromsrcmd | ||||
|         "--lua-filter tools/pandoc-drop-html-blocks.lua" | ||||
|         "--lua-filter tools/pandoc-drop-html-inlines.lua" | ||||
| @ -291,22 +293,23 @@ main = do | ||||
|     -- and pandoc to tweak content. | ||||
|     phony "webmanuals" $ need webmanuals | ||||
|     webmanuals |%> \out -> do -- site/hledger.md | ||||
|       let manpage = manpageUriToName $ dropExtension $ takeFileName out -- hledger | ||||
|           manual  = manpageNameToManualName manpage | ||||
|           dir     = manpageDir manpage | ||||
|           src     = dir </> manual <.> "m4.md" | ||||
|           lib     = "doc/common.m4" | ||||
|           heading = let h = manual | ||||
|                     in if "hledger_" `isPrefixOf` h | ||||
|                        then drop 8 h ++ " format" | ||||
|                        else h | ||||
|       let manpage   = manpageUriToName $ dropExtension $ takeFileName out -- hledger | ||||
|           manual    = manpageNameToManualName manpage | ||||
|           dir       = manpageDir manpage | ||||
|           src       = dir </> manual <.> "m4.md" | ||||
|           commonm4  = "doc/common.m4" | ||||
|           packagem4 = dir </> "defs.m4" | ||||
|           heading   = let h = manual | ||||
|                       in if "hledger_" `isPrefixOf` h | ||||
|                          then drop 8 h ++ " format" | ||||
|                          else h | ||||
|       -- assume all other m4 files in dir are included by this one XXX not true in hledger-lib | ||||
|       deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir </>) <$> S.getDirectoryContents dir | ||||
|       need $ src : lib : deps | ||||
|       need $ [src, commonm4, packagem4] ++ deps | ||||
|       when (manual=="hledger") $ need commandmds | ||||
|       liftIO $ writeFile out $ "# " ++ heading ++ "\n\n" | ||||
|       cmd Shell | ||||
|         "m4 -P -DMAN -DWEB -I" dir lib src "|" | ||||
|         "m4 -P -DMAN -DWEB -I" dir commonm4 packagem4 src "|" | ||||
|         pandoc fromsrcmd towebmd | ||||
|         "--lua-filter tools/pandoc-demote-headers.lua" | ||||
|         ">>" out | ||||
| @ -380,10 +383,8 @@ main = do | ||||
|      | ||||
|     commandtxts |%> \out -> do | ||||
|       let src = out -<.> "md" | ||||
|           -- lib = "doc/common.m4" | ||||
|       need [src] | ||||
|       cmd Shell | ||||
|         -- "m4 -P -DHELP -I" commandsdir lib src "|" | ||||
|         pandoc fromsrcmd src "--lua-filter" "tools/pandoc-dedent-code-blocks.lua" "-t plain" ">" out | ||||
| 
 | ||||
|     -- CHANGELOGS | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| m4_dnl Common m4 macro definitions used in hledger docs (all packages). | ||||
| m4_dnl m4 macro definitions used in all hledger package docs. | ||||
| m4_dnl m4 commands in Shake.hs always load this file first. | ||||
| m4_dnl | ||||
| m4_dnl "m4_dnl" causes the rest of the line to be ignored. | ||||
| m4_dnl | ||||
| @ -8,6 +9,17 @@ m4_dnl | ||||
| m4_dnl _MACRO_ will be the naming convention for our macros | ||||
| m4_define({{_include_}},     m4_defn({{m4_include}})              )m4_dnl | ||||
| m4_dnl | ||||
| m4_dnl These can be defined here or (with higher precedence) in PACKAGE/defs.m4: | ||||
| m4_dnl | ||||
| m4_dnl Author to show in man pages. | ||||
| m4_define({{_author_}}, {{}})m4_dnl | ||||
| m4_dnl | ||||
| m4_dnl Date to show in man pages. Updated by make setdate. | ||||
| m4_define({{_monthyear_}}, {{February 2019}})m4_dnl | ||||
| m4_dnl | ||||
| m4_dnl Program version. Updated by make setversion. | ||||
| m4_define({{_version_}}, {{1.13}})m4_dnl | ||||
| m4_dnl | ||||
| m4_dnl Macros for conditionally including format-specific content | ||||
| m4_dnl $1 is the manual's web slug: hledger, hledger-ui, journal, csv etc. | ||||
| m4_define({{_man_}},         m4_ifdef({{MAN}},{{$1}})             )m4_dnl | ||||
| @ -15,11 +27,6 @@ m4_define({{_web_}},         m4_ifdef({{WEB}},{{$1}})             )m4_dnl | ||||
| m4_define({{_webseparate_}}, m4_ifdef({{WEB && SEPARATE}},{{$1}}) )m4_dnl | ||||
| m4_define({{_webcombined_}}, m4_ifdef({{WEB && COMBINED}},{{$1}}) )m4_dnl | ||||
| m4_dnl | ||||
| m4_dnl Author/date/version macros. These are updated by make setdate, setversion etc. | ||||
| m4_define({{_author_}}, {{}})m4_dnl | ||||
| m4_define({{_monthyear_}}, {{February 2019}})m4_dnl | ||||
| m4_define({{_version_}}, {{1.13}})m4_dnl | ||||
| m4_dnl | ||||
| m4_dnl Links to dev and recent release versions of a manual. | ||||
| m4_dnl The actual links are inserted dynamically by site.js, static generation was much too painful. | ||||
| m4_dnl There should be a " (dev)" suffix here except when generating release docs. | ||||
|  | ||||
							
								
								
									
										3
									
								
								hledger-api/defs.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								hledger-api/defs.m4
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| m4_dnl m4 macro definitions used in this package's docs. | ||||
| m4_dnl | ||||
| m4_define({{_version_}}, {{1.13}})m4_dnl | ||||
							
								
								
									
										3
									
								
								hledger-lib/defs.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								hledger-lib/defs.m4
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| m4_dnl m4 macro definitions used in this package's docs. | ||||
| m4_dnl | ||||
| m4_define({{_version_}}, {{1.13.1}})m4_dnl | ||||
							
								
								
									
										3
									
								
								hledger-ui/defs.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								hledger-ui/defs.m4
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| m4_dnl m4 macro definitions used in this package's docs. | ||||
| m4_dnl | ||||
| m4_define({{_version_}}, {{1.13}})m4_dnl | ||||
							
								
								
									
										3
									
								
								hledger-web/defs.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								hledger-web/defs.m4
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| m4_dnl m4 macro definitions used in this package's docs. | ||||
| m4_dnl | ||||
| m4_define({{_version_}}, {{1.13}})m4_dnl | ||||
							
								
								
									
										3
									
								
								hledger/defs.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								hledger/defs.m4
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| m4_dnl m4 macro definitions used in this package's docs. | ||||
| m4_dnl | ||||
| m4_define({{_version_}}, {{1.13.2}})m4_dnl | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user