code-srv-test/dita-ot-3.6/plugins/org.dita.base/build_preprocess2_template.xml
2021-03-23 22:38:58 +00:00

441 lines
19 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is part of the DITA Open Toolkit project.
Copyright 2016 Jarno Elovirta
See the accompanying LICENSE file for applicable license.
-->
<project xmlns:dita="http://dita-ot.sourceforge.net"
xmlns:if="ant:if"
xmlns:unless="ant:unless"
name="ditaot-preprocess2">
<target name="preprocess2"
dita:extension="depends org.dita.dost.platform.InsertDependsAction"
description="Preprocess"
dita:depends="{depend.preprocess.pre},
preprocess2.init,
ditaval-merge,
preprocess2.maps,
preprocess2.topics,
map-clean-map,
clean-preprocess,
copy-files2,
{depend.preprocess.post}">
<dirname property="_dita.map.output.dir" file="${dita.output.dir}/${user.input.file}" />
<dirname property="_dita.map.temp.dir" file="${dita.temp.dir}/${user.input.file}" />
<property name="uplevels" value=""/>
<property name="dita.map.output.dir" location="${_dita.map.output.dir}/${uplevels}"/>
</target>
<target name="preprocess2.maps"
depends="map-reader,
map-mapref,
map-branch-filter,
map-keyref,
map-conrefpush,
map-conref,
map-profile"/>
<target name="preprocess2.topics"
depends="topic-reader,
topic-branch-filter,
topic-keyref,
topic-copy-to,
topic-conrefpush,
topic-conref,
topic-profile,
preprocess2.topic-fragment,
topic-chunk,
topic-move-meta-entries,
topic-maplink,
topic-topicpull"/>
<target name="preprocess2-topic"
dita:extension="depends org.dita.dost.platform.InsertDependsAction"
description="Preprocess topic"
dita:depends="{depend.preprocess.pre},
preprocess2.init,
ditaval-merge,
topic-reader,
topic-conrefpush,
topic-conref,
topic-profile,
preprocess2.topic-fragment,
topic-move-meta-entries,
topic-topicpull,
clean-preprocess,
copy-files2,
{depend.preprocess.post}">
<dirname property="_dita.map.output.dir" file="${dita.output.dir}/${user.input.file}" />
<dirname property="_dita.map.temp.dir" file="${dita.temp.dir}/${user.input.file}" />
<property name="uplevels" value=""/>
<property name="dita.map.output.dir" location="${_dita.map.output.dir}/${uplevels}"/>
</target>
<target name="preprocess2.init">
<dita-ot-fail id="DOTA002F">
<condition>
<not><isset property="args.input"/></not>
</condition>
</dita-ot-fail>
<property name="clean-preprocess.use-result-filename" value="true"/>
<basename property="dita.input.filename" file="${args.input}" />
<pathconvert property="dita.map.filename.root">
<path path="${dita.input.filename}"/>
<chainedmapper>
<mapper type="flatten"/>
<mapper type="regexp" from="^(.+)(\..+?)$$" to="\1"/>
</chainedmapper>
</pathconvert>
<property name="dita.topic.filename.root" value="${dita.map.filename.root}"/>
<echo level="info">*****************************************************************</echo>
<echo level="info">* input = ${args.input}</echo>
<echo level="info">* resources = ${args.resources}</echo>
<echo level="info">*****************************************************************</echo>
<echoxml file="${dita.temp.dir}/.job.xml">
<job>
<property name="temp-file-name-scheme">
<string>org.dita.dost.module.reader.HashTempFileScheme</string>
</property>
</job>
</echoxml>
<property name="map.filter-on-parse" value="false"/>
<property name="topic.filter-on-parse" value="true"/>
<condition property="preprocess.map-profile.skip">
<istrue value="${map.filter-on-parse}"/>
</condition>
</target>
<target name="map-reader"
description="Generate lists, debug, and filter input map files">
<pipeline message="Generate maps" taskname="map-reader"
inputmap="${args.input}">
<module class="org.dita.dost.module.reader.MapReaderModule">
<param name="resources" value="${args.resources}" if:set="args.resources"/>
<param name="inputdir" location="${args.input.dir}" if:set="args.input.dir"/>
<param name="ditadir" location="${dita.dir}"/>
<param name="validate" value="${validate}"/>
<param name="generatecopyouter" value="${generate.copy.outer}"/>
<param name="outercontrol" value="${outer.control}"/>
<param name="outputdir" location="${dita.output.dir}"/>
<param name="transtype" value="${transtype}"/>
<param name="gramcache" value="${args.grammar.cache}"/>
<param name="setsystemid" value="${args.xml.systemid.set}"/>
<param name="profiling.enable" value="${map.filter-on-parse}" unless:set="map.filter-on-parse"/>
<param name="generate-debug-attributes" value="${generate-debug-attributes}" if:set="generate-debug-attributes"/>
<param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
<dita:extension id="dita.preprocess.map-reader.param" behavior="org.dita.dost.platform.InsertAction"/>
</module>
</pipeline>
<local name="inputMapPath"/>
<pathconvert property="inputMapPath">
<ditafileset format="ditamap" input="true"/>
</pathconvert>
<condition property="noMap">
<equals arg1="${inputMapPath}" arg2=""/>
</condition>
</target>
<target name="map-mapref"
unless="preprocess.mapref.skip"
description="Resolve mapref in ditamap">
<property name="dita.preprocess.reloadstylesheet.mapref" value="${dita.preprocess.reloadstylesheet}"/>
<dirname property="mapref.workdir" file="${dita.temp.dir}/${user.input.file}" />
<pipeline message="Resolve mapref in ditamap" taskname="mapref">
<module class="org.dita.dost.module.MaprefModule">
<param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mapref.xsl"/>
<ditafileset format="ditamap" input="true"/>
<ditafileset format="ditamap" inputResource="true"/>
<dita:extension id="dita.preprocess.mapref.param" behavior="org.dita.dost.platform.InsertAction"/>
</module>
</pipeline>
</target>
<target name="map-branch-filter"
unless="preprocess.branch-filter.skip"
description="Resolve input map files branch filtering">
<pipeline taskname="branch-filter" message="Filter branches">
<module class="org.dita.dost.module.filter.MapBranchFilterModule"/>
</pipeline>
</target>
<target name="map-keyref"
unless="preprocess.keyref.skip"
description="Resolve input map files keyref">
<pipeline message="Resolve keyref." taskname="keyref">
<module class="org.dita.dost.module.KeyrefModule" parallel="${parallel}">
<ditafileset format="ditamap" input="true"/>
<ditafileset format="ditamap" inputResource="true"/>
<param name="transtype" value="${transtype}"/>
</module>
</pipeline>
<pipeline message="Resolve mapref in ditamap" taskname="mapref">
<module class="org.dita.dost.module.MaprefModule">
<param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mapref.xsl"/>
<ditafileset format="ditamap" input="true"/>
<ditafileset format="ditamap" inputResource="true"/>
<dita:extension id="dita.preprocess.mapref.param" behavior="org.dita.dost.platform.InsertAction"/>
</module>
</pipeline>
</target>
<target name="map-conrefpush"
unless="preprocess.conrefpush.skip"
description="Resolve input map files conref push">
<pipeline message="Resolve conref push." taskname="conref-push">
<module class="org.dita.dost.module.ConrefPushModule">
<ditafileset format="ditamap" input="true"/>
<ditafileset format="ditamap" inputResource="true"/>
</module>
</pipeline>
</target>
<target name="map-conref"
unless="preprocess.conref.skip"
description="Resolve conref in input map files">
<property name="dita.preprocess.reloadstylesheet.conref" value="${dita.preprocess.reloadstylesheet}"/>
<makeurl property="exportfile.url" file="${dita.temp.dir}/export.xml" validate="false"/>
<pipeline message="Resolve conref in input files" taskname="conref">
<xslt basedir="${dita.temp.dir}"
reloadstylesheet="${dita.preprocess.reloadstylesheet.conref}"
style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/map-conref.xsl"
filenameparameter="file-being-processed"
parallel="${parallel}">
<ditafileset format="ditamap" conref="true" input="true"/>
<ditafileset format="ditamap" conref="true" inputResource="true"/>
<param name="EXPORTFILE" expression="${exportfile.url}"/>
<param name="TRANSTYPE" expression="${transtype}"/>
<dita:extension id="dita.preprocess.conref.param" behavior="org.dita.dost.platform.InsertAction"/>
</xslt>
</pipeline>
</target>
<target name="map-profile" depends="map-profile-check"
unless="preprocess.map-profile.skip"
description="Profile input map files">
<pipeline message="Profile filtering." taskname="profile">
<module class="org.dita.dost.module.FilterModule">
<ditafileset format="ditamap" input="true"/>
<ditafileset format="ditamap" inputResource="true"/>
<param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>
<param name="transtype" value="${transtype}"/>
</module>
</pipeline>
</target>
<target name="map-profile-check">
<condition property="preprocess.map-profile.skip">
<istrue value="${map.filter-on-parse}"/>
</condition>
</target>
<target name="topic-reader"
description="Generate file list">
<pipeline message="Generate topics" taskname="topic-reader"
inputmap="${args.input}">
<module class="org.dita.dost.module.reader.TopicReaderModule">
<param name="resources" value="${args.resources}" if:set="args.resources"/>
<param name="inputdir" location="${args.input.dir}" if:set="args.input.dir"/>
<param name="ditadir" location="${dita.dir}"/>
<param name="validate" value="${validate}"/>
<param name="generatecopyouter" value="${generate.copy.outer}"/>
<param name="outercontrol" value="${outer.control}"/>
<param name="onlytopicinmap" value="${onlytopic.in.map}"/>
<param name="crawl" value="${link-crawl}" if:set="link-crawl"/>
<param name="outputdir" location="${dita.output.dir}"/>
<param name="transtype" value="${transtype}"/>
<param name="gramcache" value="${args.grammar.cache}"/>
<param name="setsystemid" value="${args.xml.systemid.set}"/>
<param name="profiling.enable" value="${topic.filter-on-parse}" unless:set="topic.filter-on-parse"/>
<param name="generate-debug-attributes" value="${generate-debug-attributes}" if:set="generate-debug-attributes"/>
<param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
<dita:extension id="dita.preprocess.topic-reader.param" behavior="org.dita.dost.platform.InsertAction"/>
</module>
</pipeline>
</target>
<target name="topic-branch-filter">
<pipeline taskname="branch-filter" message="Filter branches">
<module class="org.dita.dost.module.filter.TopicBranchFilterModule"/>
</pipeline>
</target>
<target name="topic-keyref"
unless="preprocess.keyref.skip"
description="Resolve keyref">
<pipeline message="Resolve keyref." taskname="keyref">
<module class="org.dita.dost.module.KeyrefModule" parallel="${parallel}">
<ditafileset format="dita"/>
<param name="transtype" value="${transtype}"/>
</module>
</pipeline>
</target>
<target name="topic-copy-to">
<pipeline message="Resolve copy-to." taskname="copy-to">
<module class="org.dita.dost.module.CopyToModule">
<param name="force-unique" value="${force-unique}" if:set="force-unique"/>
</module>
</pipeline>
</target>
<target name="topic-conrefpush"
unless="preprocess.conrefpush.skip"
description="Resolve conref push">
<pipeline message="Resolve conref push." taskname="conref-push">
<module class="org.dita.dost.module.ConrefPushModule">
<ditafileset format="dita"/>
<ditafileset format="ditamap"/>
</module>
</pipeline>
</target>
<target name="topic-conref"
unless="preprocess.conref.skip"
description="Resolve conref in input files">
<property name="dita.preprocess.reloadstylesheet.conref" value="${dita.preprocess.reloadstylesheet}"/>
<makeurl property="exportfile.url" file="${dita.temp.dir}/export.xml" validate="false"/>
<pipeline message="Resolve conref in input files" taskname="conref">
<xslt basedir="${dita.temp.dir}"
reloadstylesheet="${dita.preprocess.reloadstylesheet.conref}"
style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/conref.xsl"
filenameparameter="file-being-processed"
parallel="${parallel}">
<ditafileset conref="true" format="dita"/>
<ditafileset conref="true" format="ditamap"/>
<param name="EXPORTFILE" expression="${exportfile.url}"/>
<param name="TRANSTYPE" expression="${transtype}"/>
<dita:extension id="dita.preprocess.conref.param" behavior="org.dita.dost.platform.InsertAction"/>
</xslt>
</pipeline>
</target>
<target name="topic-profile" depends="topic-profile-check"
unless="preprocess.topic-profile.skip"
description="Profile input files">
<pipeline message="Profile filtering." taskname="profile">
<module class="org.dita.dost.module.FilterModule">
<ditafileset format="dita"/>
<param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>
<param name="transtype" value="${transtype}"/>
</module>
</pipeline>
</target>
<target name="topic-profile-check">
<condition property="preprocess.topic-profile.skip">
<istrue value="${topic.filter-on-parse}"/>
</condition>
</target>
<target name="preprocess2.topic-fragment"
description="Normalize same topic fragment identifiers and table column names, and resolve coderef">
<pipeline message="Resolve topic fragment." taskname="preprocess2.topic-fragment">
<sax parallel="${parallel}">
<ditafileset format="dita"/>
<filter class="org.dita.dost.writer.TopicFragmentFilter">
<param name="attributes" value="href"/>
</filter>
<filter class="org.dita.dost.writer.NormalizeTableFilter">
<param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
</filter>
<filter class="org.dita.dost.writer.NormalizeSimpleTableFilter"/>
<filter class="org.dita.dost.writer.CoderefResolver" unless:set="preprocess.coderef.skip"/>
<filter class="org.dita.dost.writer.NormalizeCodeblock" unless:set="preprocess.normalize-codeblock.skip"/>
</sax>
</pipeline>
</target>
<target name="topic-chunk"
unless="preprocess.chunk.skip"
description="Process chunks">
<pipeline message="Process chunks." taskname="chunk">
<module class="org.dita.dost.module.ChunkModule">
<param name="transtype" value="${transtype}"/>
<param name="root-chunk-override" value="${root-chunk-override}" if:set="root-chunk-override"/>
</module>
</pipeline>
</target>
<target name="topic-move-meta-entries"
unless="preprocess.move-meta-entries.skip"
description="Move metadata entries">
<pipeline message="Move metadata entries." taskname="move-meta">
<module class="org.dita.dost.module.MoveMetaModule">
<param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mappull.xsl"/>
<param name="conserve-memory" expression="${conserve-memory}" if:set="conserve-memory"/>
<dita:extension id="dita.preprocess.mappull.param" behavior="org.dita.dost.platform.InsertAction"/>
</module>
</pipeline>
</target>
<target name="topic-maplink"
unless="preprocess.maplink.skip"
description="Find and generate related link information">
<property name="dita.preprocess.reloadstylesheet.maplink" value="${dita.preprocess.reloadstylesheet}"/>
<pipeline message="Move related links" taskname="maplink">
<module class="org.dita.dost.module.MoveLinksModule">
<param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/maplink.xsl"/>
<param name="include.rellinks" expression="${include.rellinks}" if:set="include.rellinks"/>
</module>
</pipeline>
</target>
<target name="topic-topicpull"
unless="preprocess.topicpull.skip"
description="Pull metadata for link and xref element">
<property name="dita.preprocess.reloadstylesheet.topicpull" value="${dita.preprocess.reloadstylesheet}"/>
<pipeline message="Pull metadata for link and xref element" taskname="topicpull">
<xslt basedir="${dita.temp.dir}"
reloadstylesheet="${dita.preprocess.reloadstylesheet.topicpull}"
style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/topicpull.xsl"
parallel="${parallel}">
<ditafileset format="dita" processingRole="normal"/>
<param name="TABLELINK" expression="${args.tablelink.style}" if:set="args.tablelink.style" />
<param name="FIGURELINK" expression="${args.figurelink.style}" if:set="args.figurelink.style" />
<param name="ONLYTOPICINMAP" expression="${onlytopic.in.map}" if:set="onlytopic.in.map"/>
<param name="defaultLanguage" expression="${default.language}"/>
<dita:extension id="dita.preprocess.topicpull.param" behavior="org.dita.dost.platform.InsertAction"/>
</xslt>
</pipeline>
</target>
<target name="map-clean-map"
unless="preprocess.clean-map-check.skip"
description="Clean ditamap">
<property name="dita.preprocess.reloadstylesheet.clean-map" value="${dita.preprocess.reloadstylesheet}"/>
<pipeline message="Clean ditamap" taskname="clean-map">
<xslt basedir="${dita.temp.dir}"
reloadstylesheet="${dita.preprocess.reloadstylesheet.clean-map}"
style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/clean-map.xsl">
<ditafileset format="ditamap"/>
<xmlcatalog refid="dita.catalog"/>
</xslt>
</pipeline>
</target>
<target name="copy-files2" description="Copy files to the output directory"
depends="copy-image2,copy-html,copy-flag"
unless="preprocess.copy-files.skip" />
<target name="copy-image2"
unless="preprocess.copy-image.skip"
description="Copy image files">
<copy todir="${dita.output.dir}" failonerror="false" overwrite="true">
<ditafileset format="image" />
<jobmapper/>
</copy>
</target>
</project>