#
# AsciiDoc source code highlight filter configuration file.
#
# Documented in source-hightlight-filter.txt in AsciiDoc distribution
# ./examples/website/ directory.
#
# HTML outputs require GNU source-highlight (xhtml11, html4 outputs)
# https://www.gnu.org/software/src-highlite/source-highlight.html
#
# or Pygments (xhtml11 outputs):
# https://pygments.org/
#
# GNU source-hightlight is default, define the 'pygments' attribute to  use
# Pygments.
#

########################
# Source block templates
########################
[source-highlight-block]
template::[listingblock]

ifdef::basebackend-html[]
[source-highlight-block]
<a name="{id}"></a>
<p><b>{title}</b></p>
<table{role? class="{role}"} border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td>
{source-highlighter$highlight:}<pre><code>
|
{source-highlighter$highlight:}</code></pre>
</td></tr></table>
endif::basebackend-html[]

ifdef::basebackend-xhtml11,basebackend-html5[]
[source-highlight-block]
<div class="listingblock{role? {role}}">
<a id="{id}"></a>
<div class="title">{caption=}{title}</div>
<div class="content">
{source-highlighter$highlight:}<pre><code>
|
{source-highlighter$highlight:}</code></pre>
</div></div>
endif::basebackend-xhtml11,basebackend-html5[]

# Use DocBook programlisting element.
ifdef::basebackend-docbook[]
[source-highlight-block]
<formalpara{id? id="{id}"}{role? role="{role}"}{reftext? xreflabel="{reftext}"}><title>{title}</title><para>
{title#}<programlisting language="{language}" linenumbering="{src_numbered=unnumbered}"{args? {args}}>
{title%}<programlisting language="{language}"{role? role="{role}"} linenumbering="{src_numbered=unnumbered}"{args? {args}}>
|
</programlisting>
{title#}</para></formalpara>
endif::basebackend-docbook[]

# Source styles template.
ifdef::basebackend-html[]
[source-filter-style]
ifeval::["{source-highlighter}"=="source-highlight"]
source-style=template="source-highlight-block",presubs=(),postsubs=("callouts",),posattrs=("style","language","src_numbered","src_tab"),filter="source-highlight --gen-version -f xhtml -s {language} {src_numbered?--line-number=' '} {src_tab?--tab={src_tab}} {args=}"
endif::[]
ifeval::["{source-highlighter}"=="highlight"]
source-style=template="source-highlight-block",presubs=(),postsubs=("callouts",),posattrs=("style","language","src_numbered","src_tab"),filter="highlight --no-doc --inline-css --out-format=xhtml --syntax={language@python:py:{language}} {src_numbered?--line-number} {src_tab?--tab={src_tab}} --encoding={encoding} {args=}"
endif::[]
ifeval::["{source-highlighter}"=="pygments"]
source-style=template="source-highlight-block",presubs=(),postsubs=("callouts",),posattrs=("style","language","src_numbered"),filter="pygmentize -f html -l {language} {src_numbered?-O linenos=table} {encoding?-O encoding={encoding}} {args=}"
endif::[]
# DEPRECATED: 'pygments' attribute.
ifdef::pygments[]
source-style=template="source-highlight-block",presubs=(),postsubs=("callouts",),posattrs=("style","language","src_numbered"),filter="pygmentize -f html -l {language} {src_numbered?-O linenos=table} {encoding?-O encoding={encoding}} {args=}"
endif::[]
endif::basebackend-html[]

ifdef::basebackend-html4[]
[source-filter-style]
# html4 does not use pygments.
ifeval::["{source-highlighter}"=="source-highlight"]
source-style=template="source-highlight-block",presubs=(),postsubs=("callouts",),posattrs=("style","language","src_numbered","src_tab"),filter="source-highlight --gen-version -f html -s {language} {src_numbered?--line-number=' '} {src_tab?--tab={src_tab}} {args=}"
endif::[]
ifeval::["{source-highlighter}"=="highlight"]
source-style=template="source-highlight-block",presubs=(),postsubs=("callouts",),posattrs=("style","language","src_numbered","src_tab"),filter="highlight --no-doc --inline-css --out-format=html --syntax={language@python:py:{language}} {src_numbered?--line-number} {src_tab?--tab={src_tab}} {args=}"
endif::[]
endif::basebackend-html4[]

ifdef::basebackend-docbook[]
[source-filter-style]
source-style=template="source-highlight-block",presubs=(),postsubs=("specialcharacters","callouts"),posattrs=("style","language","src_numbered","src_tab")
endif::basebackend-docbook[]

#########################
# Source paragraph styles
#########################
[paradef-default]
template::[source-filter-style]

[paradef-literal]
template::[source-filter-style]

#########################
# Source block styles
#########################
[blockdef-open]
template::[source-filter-style]

[blockdef-listing]
template::[source-filter-style]


#
# DEPRECATED: Pre 8.2.7 filter definition.
#

#########################
# Source block definition
#########################
[blockdef-source-highlight]
# The old ^ delimiter is for backward compatibility, may be removed from
# in future versions.
delimiter=(^source~{4,}$)|(^\^{4,}$)
template=source-highlight-block
presubs=none
posattrs=language,src_numbered,src_tab

ifndef::basebackend-docbook[]
postsubs=callouts
# GNU Source Highlight filter.
filter=source-highlight -f {basebackend-xhtml11?xhtml}{basebackend-html4?html} -s {language} {src_numbered?--line-number} {src_tab?--tab={src_tab}}
endif::basebackend-docbook[]

ifdef::basebackend-docbook[]
postsubs=specialcharacters,callouts
# In the case of DocBook just pass the listing through and let the DocBook
# toolchain handle it.
filter=
endif::basebackend-docbook[]

#
# DEPRECATED: End
#
