| 1 | ## linkgit: macro |
| 2 | # |
| 3 | # Usage: linkgit:command[manpage-section] |
| 4 | # |
| 5 | # Note, {0} is the manpage section, while {target} is the command. |
| 6 | # |
| 7 | # Show Git link as: <command>(<section>); if section is defined, else just show |
| 8 | # the command. |
| 9 | |
| 10 | [macros] |
| 11 | (?su)[\\]?(?P<name>linkgit):(?P<target>\S*?)\[(?P<attrlist>.*?)\]= |
| 12 | |
| 13 | [attributes] |
| 14 | asterisk=* |
| 15 | plus=+ |
| 16 | caret=^ |
| 17 | startsb=[ |
| 18 | endsb=] |
| 19 | backslash=\ |
| 20 | tilde=~ |
| 21 | apostrophe=' |
| 22 | backtick=` |
| 23 | litdd=-- |
| 24 | manmanual=Git Manual |
| 25 | mansource=Git @GIT_VERSION@ |
| 26 | revdate=@GIT_DATE@ |
| 27 | |
| 28 | ifdef::doctype-book[] |
| 29 | [titles] |
| 30 | underlines="__","==","--","~~","^^" |
| 31 | endif::doctype-book[] |
| 32 | |
| 33 | ifdef::backend-docbook[] |
| 34 | [linkgit-inlinemacro] |
| 35 | ifndef::doctype-book[] |
| 36 | {0%{target}} |
| 37 | {0#<citerefentry>} |
| 38 | {0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>} |
| 39 | {0#</citerefentry>} |
| 40 | endif::doctype-book[] |
| 41 | ifdef::doctype-book[] |
| 42 | <ulink url="{target}.html">{target}{0?({0})}</ulink> |
| 43 | endif::doctype-book[] |
| 44 | |
| 45 | [literal-inlinemacro] |
| 46 | {eval:re.sub(r'(<[-a-zA-Z0-9.]+>)', r'<emphasis>\1</emphasis>', re.sub(r'([\[\s|()>]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@\\\*\/_^\$%]+\.?)+|,)',r'\1<literal>\2</literal>', re.sub(r'(\.\.\.?)([^\]$.])', r'<literal>\1</literal>\2', macros.passthroughs[int(attrs['passtext'][1:-1])] if attrs['passtext'][1:-1].isnumeric() else attrs['passtext'][1:-1])))} |
| 47 | |
| 48 | endif::backend-docbook[] |
| 49 | |
| 50 | ifdef::backend-docbook[] |
| 51 | ifdef::doctype-manpage[] |
| 52 | # The following two small workarounds insert a simple paragraph after screen |
| 53 | [listingblock] |
| 54 | <example><title>{title}</title> |
| 55 | <literallayout class="monospaced"> |
| 56 | | |
| 57 | </literallayout><simpara></simpara> |
| 58 | {title#}</example> |
| 59 | |
| 60 | [verseblock] |
| 61 | <formalpara{id? id="{id}"}><title>{title}</title><para> |
| 62 | {title%}<literallayout{id? id="{id}"}> |
| 63 | {title#}<literallayout> |
| 64 | | |
| 65 | </literallayout> |
| 66 | {title#}</para></formalpara> |
| 67 | {title%}<simpara></simpara> |
| 68 | endif::doctype-manpage[] |
| 69 | endif::backend-docbook[] |
| 70 | |
| 71 | ifdef::backend-xhtml11[] |
| 72 | [attributes] |
| 73 | git-relative-html-prefix= |
| 74 | [linkgit-inlinemacro] |
| 75 | <a href="{git-relative-html-prefix}{target}.html">{target}{0?({0})}</a> |
| 76 | |
| 77 | [literal-inlinemacro] |
| 78 | {eval:re.sub(r'(<[-a-zA-Z0-9.]+>)', r'<em>\1</em>', re.sub(r'([\[\s|()>]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,\\\*\/_^\$]+\.?)+)',r'\1<code>\2</code>', re.sub(r'(\.\.\.?)([^\]$.])', r'<code>\1</code>\2', macros.passthroughs[int(attrs['passtext'][1:-1])] if attrs['passtext'][1:-1].isnumeric() else attrs['passtext'][1:-1])))} |
| 79 | |
| 80 | endif::backend-xhtml11[] |
| 81 | |
| 82 | ifdef::backend-docbook[] |
| 83 | ifdef::doctype-manpage[] |
| 84 | [blockdef-open] |
| 85 | synopsis-style=template="verseparagraph",filter="sed 's!…\\(\\]\\|$\\)!<phrase>\\0</phrase>!g;s!\\([\\[ |()]\\|^\\|\\]\\|>\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|…\\)!\\1<literal>\\2</literal>!g;s!<[-a-zA-Z0-9.]\\+>!<emphasis>\\0</emphasis>!g'" |
| 86 | |
| 87 | [blockdef-listing] |
| 88 | synopsis-style=template="verseparagraph",filter="sed 's!…\\(\\]\\|$\\)!<phrase>\\0</phrase>!g;s!\\([\\[ |()]\\|^\\|\\]\\|>\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|…\\)!\\1<literal>\\2</literal>!g;s!<[-a-zA-Z0-9.]\\+>!<emphasis>\\0</emphasis>!g'" |
| 89 | |
| 90 | [paradef-default] |
| 91 | synopsis-style=template="verseparagraph",filter="sed 's!…\\(\\]\\|$\\)!<phrase>\\0</phrase>!g;s!\\([\\[ |()]\\|^\\|\\]\\|>\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|…\\)!\\1<literal>\\2</literal>!g;s!<[-a-zA-Z0-9.]\\+>!<emphasis>\\0</emphasis>!g'" |
| 92 | endif::doctype-manpage[] |
| 93 | endif::backend-docbook[] |
| 94 | |
| 95 | ifdef::backend-xhtml11[] |
| 96 | [blockdef-open] |
| 97 | synopsis-style=template="verseparagraph",filter="sed 's!…\\(\\]\\|$\\)!<span>\\0</span>!g;s!\\([\\[ |()]\\|^\\|\\]\\|>\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|…\\)!\\1<code>\\2</code>!g;s!<[-a-zA-Z0-9.]\\+>!<em>\\0</em>!g'" |
| 98 | |
| 99 | [blockdef-listing] |
| 100 | synopsis-style=template="verseparagraph",filter="sed 's!…\\(\\]\\|$\\)!<span>\\0</span>!g;s!\\([\\[ |()]\\|^\\|\\]\\|>\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|…\\)!\\1<code>\\2</code>!g;s!<[-a-zA-Z0-9.]\\+>!<em>\\0</em>!g'" |
| 101 | |
| 102 | [paradef-default] |
| 103 | synopsis-style=template="verseparagraph",filter="sed 's!…\\(\\]\\|$\\)!<span>\\0</span>!g;s!\\([\\[ |()]\\|^\\|\\]\\|>\\)\\([-=a-zA-Z0-9:+@,\\/_^\\$.\\\\\\*]\\+\\|…\\)!\\1<code>\\2</code>!g;s!<[-a-zA-Z0-9.]\\+>!<em>\\0</em>!g'" |
| 104 | endif::backend-xhtml11[] |