diff options
| author | Guilhem Moulin <guilhem@fripost.org> | 2019-11-13 17:33:15 +0100 | 
|---|---|---|
| committer | Guilhem Moulin <guilhem@fripost.org> | 2019-11-13 17:47:11 +0100 | 
| commit | cf99cc234d1b0b0a55ae83c06eacdf7ba1e973c6 (patch) | |
| tree | 4400ea20fe8800d118e848126638f1448d500198 | |
| parent | 1be03491746552ac1c5111049268dfc7b67889c1 (diff) | |
Makefile: factor out jq script for roff generation.
| -rw-r--r-- | Makefile | 27 | ||||
| -rwxr-xr-x | pandoc2man.jq | 28 | 
2 files changed, 29 insertions, 26 deletions
| @@ -5,32 +5,7 @@ manual: $(MANUALS)  # upper case the headers and remove the links  $(MANUALS): %: %.md -	@pandoc -f markdown -t json -- "$<" | \ -	jq "                                                                        \ -	    def fixheaders:                                                         \ -	        if .t == \"Header\" then                                            \ -	            .c[2][] |= (if .t == \"Str\" then .c |= ascii_upcase else . end)\ -	        else                                                                \ -	            .                                                               \ -	        end;                                                                \ -	    def fixlinks:                                                           \ -	        if type == \"object\" then                                          \ -	            if .t == \"Link\" then                                          \ -	                if .c[2][0][0:7] == \"mailto:\" then . else .c[1][] end     \ -	            else                                                            \ -	                map_values(fixlinks)                                        \ -	            end                                                             \ -	        else if type == \"array\" then                                      \ -	                map(fixlinks)                                               \ -	            else                                                            \ -	                .                                                           \ -	            end                                                             \ -	        end;                                                                \ -	    { \"pandoc-api-version\"                                                \ -	    , meta                                                                  \ -	    , blocks: .blocks | map(fixheaders) | map(fixlinks)                     \ -	    }" | \ -	pandoc -s -f json -t man+smart -o "$@" +	pandoc -f markdown -t json -- "$<" | ./pandoc2man.jq | pandoc -s -f json -t man+smart -o "$@"  test:  	@./tests/run-all diff --git a/pandoc2man.jq b/pandoc2man.jq new file mode 100755 index 0000000..69802a5 --- /dev/null +++ b/pandoc2man.jq @@ -0,0 +1,28 @@ +#!/usr/bin/jq -f + +def fixheaders: +    if .t == "Header" then +        .c[2][] |= (if .t == "Str" then .c |= ascii_upcase else . end) +    else +        . +    end; + +def fixlinks: +    if type == "object" then +        if .t == "Link" then +            if .c[2][0][0:7] == "mailto:" then . else .c[1][] end +        else +            map_values(fixlinks) +        end +    else if type == "array" then +            map(fixlinks) +        else +            . +        end +    end; + +{ +    "pandoc-api-version" +  , meta +  , blocks: .blocks | map(fixheaders | fixlinks) +} | 
