build_preprocess2.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. <?xml version="1.0" encoding="UTF-8"?><!--
  2. This file is part of the DITA Open Toolkit project.
  3. Copyright 2016 Jarno Elovirta
  4. See the accompanying LICENSE file for applicable license.
  5. --><project xmlns:dita="http://dita-ot.sourceforge.net" xmlns:if="ant:if" xmlns:unless="ant:unless" name="ditaot-preprocess2">
  6. <target name="preprocess2" description="Preprocess" depends="preprocess2.init,ditaval-merge,preprocess2.maps,preprocess2.topics,map-clean-map,clean-preprocess,copy-files2">
  7. <dirname property="_dita.map.output.dir" file="${dita.output.dir}/${user.input.file}"/>
  8. <dirname property="_dita.map.temp.dir" file="${dita.temp.dir}/${user.input.file}"/>
  9. <condition property="uplevels" value="">
  10. <not><isset property="uplevels"/></not>
  11. </condition>
  12. <property name="dita.map.output.dir" location="${_dita.map.output.dir}/${uplevels}"/>
  13. <!-- Deprecated since 2.4 -->
  14. <property name="user.input.file.listfile" value="usr.input.file.list"/>
  15. </target>
  16. <target name="preprocess2.maps" depends="map-reader, map-mapref, map-branch-filter, map-keyref, map-conrefpush, map-conref, map-profile"/>
  17. <target name="preprocess2.topics" depends="topic-reader, topic-branch-filter, topic-keyref, topic-copy-to, topic-conrefpush, topic-conref, topic-profile, topic-fragment, topic-chunk, topic-move-meta-entries, topic-maplink, topic-topicpull"/>
  18. <target name="preprocess2-topic" description="Preprocess topic" depends="preprocess2.init,ditaval-merge,topic-reader,topic-conrefpush,topic-conref,topic-profile,topic-fragment,topic-move-meta-entries,topic-topicpull,clean-preprocess,copy-files2">
  19. <dirname property="_dita.map.output.dir" file="${dita.output.dir}/${user.input.file}"/>
  20. <dirname property="_dita.map.temp.dir" file="${dita.temp.dir}/${user.input.file}"/>
  21. <condition property="uplevels" value="">
  22. <not><isset property="uplevels"/></not>
  23. </condition>
  24. <property name="dita.map.output.dir" location="${_dita.map.output.dir}/${uplevels}"/>
  25. <!-- Deprecated since 2.4 -->
  26. <property name="user.input.file.listfile" value="usr.input.file.list"/>
  27. </target>
  28. <target name="preprocess2.init">
  29. <dita-ot-fail id="DOTA002F">
  30. <condition>
  31. <not><isset property="args.input"/></not>
  32. </condition>
  33. </dita-ot-fail>
  34. <basename property="dita.input.filename" file="${args.input}"/>
  35. <pathconvert property="dita.map.filename.root">
  36. <path path="${dita.input.filename}"/>
  37. <chainedmapper>
  38. <mapper type="flatten"/>
  39. <mapper type="regexp" from="^(.+)(\..+?)$$" to="\1"/>
  40. </chainedmapper>
  41. </pathconvert>
  42. <property name="dita.topic.filename.root" value="${dita.map.filename.root}"/>
  43. <echo level="info">*****************************************************************</echo>
  44. <echo level="info">* input = ${args.input}</echo>
  45. <echo level="info">*****************************************************************</echo>
  46. <echoxml file="${dita.temp.dir}/.job.xml">
  47. <job>
  48. <property name="temp-file-name-scheme">
  49. <string>org.dita.dost.module.GenMapAndTopicListModule$HashTempFileScheme</string>
  50. </property>
  51. </job>
  52. </echoxml>
  53. <property name="map.filter-on-parse" value="false"/>
  54. <property name="topic.filter-on-parse" value="true"/>
  55. <condition property="preprocess.map-profile.skip">
  56. <istrue value="${map.filter-on-parse}"/>
  57. </condition>
  58. </target>
  59. <target name="map-reader" description="Generate lists, debug, and filter input map files">
  60. <pipeline message="Generate list." taskname="map-reader" inputmap="${args.input}">
  61. <module class="org.dita.dost.module.reader.MapReaderModule">
  62. <param name="inputdir" location="${args.input.dir}" if:set="args.input.dir"/>
  63. <param name="ditadir" location="${dita.dir}"/>
  64. <!--<param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>-->
  65. <param name="validate" value="${validate}"/>
  66. <param name="generatecopyouter" value="${generate.copy.outer}"/>
  67. <param name="outercontrol" value="${outer.control}"/>
  68. <!--param name="onlytopicinmap" value="${onlytopic.in.map}"/-->
  69. <!--<param name="crawl" value="${link-crawl}"/>-->
  70. <param name="outputdir" location="${dita.output.dir}"/>
  71. <param name="transtype" value="${transtype}"/>
  72. <param name="gramcache" value="${args.grammar.cache}"/>
  73. <param name="setsystemid" value="${args.xml.systemid.set}"/>
  74. <param name="profiling.enable" value="${map.filter-on-parse}" unless:set="map.filter-on-parse"/>
  75. <param name="generate-debug-attributes" value="${generate-debug-attributes}" if:set="generate-debug-attributes"/>
  76. <param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
  77. </module>
  78. </pipeline>
  79. <!-- TODO replace with direct resource collection availability test -->
  80. <job-helper file="fullditamap.list" property="fullditamaplist"/>
  81. <property name="fullditamapfile" value="fullditamap.list"/>
  82. <condition property="noMap">
  83. <length file="${dita.temp.dir}/${fullditamapfile}" length="0"/>
  84. </condition>
  85. <delete file="${dita.temp.dir}/${fullditamapfile}"/>
  86. </target>
  87. <target name="map-mapref" unless="preprocess.mapref.skip" description="Resolve mapref in ditamap">
  88. <condition property="dita.preprocess.reloadstylesheet.mapref" value="${dita.preprocess.reloadstylesheet}">
  89. <not><isset property="dita.preprocess.reloadstylesheet.mapref"/></not>
  90. </condition>
  91. <dirname property="mapref.workdir" file="${dita.temp.dir}/${user.input.file}"/>
  92. <pipeline message="Resolve mapref in ditamap" taskname="mapref">
  93. <module class="org.dita.dost.module.MaprefModule">
  94. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mapref.xsl"/>
  95. <ditafileset format="ditamap"/>
  96. </module>
  97. </pipeline>
  98. </target>
  99. <target name="map-branch-filter" unless="preprocess.branch-filter.skip" description="Resolve input map files branch filtering">
  100. <pipeline taskname="branch-filter" message="Filter branches">
  101. <module class="org.dita.dost.module.filter.MapBranchFilterModule"/>
  102. </pipeline>
  103. </target>
  104. <target name="map-keyref" unless="preprocess.keyref.skip" description="Resolve input map files keyref">
  105. <pipeline message="Resolve keyref." taskname="keyref">
  106. <module class="org.dita.dost.module.KeyrefModule">
  107. <ditafileset format="ditamap"/>
  108. <param name="transtype" value="${transtype}"/>
  109. </module>
  110. </pipeline>
  111. <pipeline message="Resolve mapref in ditamap" taskname="mapref">
  112. <module class="org.dita.dost.module.MaprefModule">
  113. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mapref.xsl"/>
  114. <ditafileset format="ditamap"/>
  115. </module>
  116. </pipeline>
  117. </target>
  118. <target name="map-conrefpush" unless="preprocess.conrefpush.skip" description="Resolve input map files conref push">
  119. <pipeline message="Resolve conref push." taskname="conref-push">
  120. <module class="org.dita.dost.module.ConrefPushModule">
  121. <ditafileset format="ditamap"/>
  122. </module>
  123. </pipeline>
  124. </target>
  125. <target name="map-conref" unless="preprocess.conref.skip" description="Resolve conref in input map files">
  126. <condition property="dita.preprocess.reloadstylesheet.conref" value="${dita.preprocess.reloadstylesheet}">
  127. <not><isset property="dita.preprocess.reloadstylesheet.conref"/></not>
  128. </condition>
  129. <makeurl property="exportfile.url" file="${dita.temp.dir}/export.xml" validate="false"/>
  130. <pipeline message="Resolve conref in input files" taskname="conref">
  131. <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">
  132. <ditafileset format="ditamap" conref="true"/>
  133. <param name="EXPORTFILE" expression="${exportfile.url}"/>
  134. <param name="TRANSTYPE" expression="${transtype}"/>
  135. <xmlcatalog refid="dita.catalog"/>
  136. </xslt>
  137. </pipeline>
  138. </target>
  139. <target name="map-profile" depends="map-profile-check" unless="preprocess.map-profile.skip" description="Profile input map files">
  140. <pipeline message="Profile filtering." taskname="profile">
  141. <module class="org.dita.dost.module.FilterModule">
  142. <ditafileset format="ditamap"/>
  143. <param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>
  144. <param name="transtype" value="${transtype}"/>
  145. </module>
  146. </pipeline>
  147. </target>
  148. <target name="map-profile-check">
  149. <condition property="preprocess.map-profile.skip">
  150. <istrue value="${map.filter-on-parse}"/>
  151. </condition>
  152. </target>
  153. <target name="topic-reader" description="Generate file list">
  154. <pipeline message="Generate list." taskname="topic-reader" inputmap="${args.input}">
  155. <module class="org.dita.dost.module.reader.TopicReaderModule">
  156. <param name="inputdir" location="${args.input.dir}" if:set="args.input.dir"/>
  157. <param name="ditadir" location="${dita.dir}"/>
  158. <!--<param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>-->
  159. <param name="validate" value="${validate}"/>
  160. <param name="generatecopyouter" value="${generate.copy.outer}"/>
  161. <param name="outercontrol" value="${outer.control}"/>
  162. <param name="onlytopicinmap" value="${onlytopic.in.map}"/>
  163. <param name="crawl" value="${link-crawl}" if:set="link-crawl"/>
  164. <param name="outputdir" location="${dita.output.dir}"/>
  165. <param name="transtype" value="${transtype}"/>
  166. <param name="gramcache" value="${args.grammar.cache}"/>
  167. <param name="setsystemid" value="${args.xml.systemid.set}"/>
  168. <param name="profiling.enable" value="${topic.filter-on-parse}" unless:set="topic.filter-on-parse"/>
  169. <param name="generate-debug-attributes" value="${generate-debug-attributes}" if:set="generate-debug-attributes"/>
  170. <param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
  171. <!-- Not needed for topics -->
  172. <!--param name="force-unique" value="${force-unique}" if:set="force-unique"/-->
  173. </module>
  174. </pipeline>
  175. </target>
  176. <target name="topic-branch-filter">
  177. <pipeline taskname="branch-filter" message="Filter branches">
  178. <module class="org.dita.dost.module.filter.TopicBranchFilterModule"/>
  179. </pipeline>
  180. </target>
  181. <target name="topic-keyref" unless="preprocess.keyref.skip" description="Resolve keyref">
  182. <pipeline message="Resolve keyref." taskname="keyref">
  183. <module class="org.dita.dost.module.KeyrefModule">
  184. <ditafileset format="dita"/>
  185. <param name="transtype" value="${transtype}"/>
  186. </module>
  187. </pipeline>
  188. </target>
  189. <target name="topic-copy-to">
  190. <pipeline message="Resolve copy-to." taskname="copy-to">
  191. <module class="org.dita.dost.module.CopyToModule">
  192. <param name="force-unique" value="${force-unique}" if:set="force-unique"/>
  193. </module>
  194. </pipeline>
  195. </target>
  196. <target name="topic-conrefpush" unless="preprocess.conrefpush.skip" description="Resolve conref push">
  197. <pipeline message="Resolve conref push." taskname="conref-push">
  198. <module class="org.dita.dost.module.ConrefPushModule">
  199. <ditafileset format="dita"/>
  200. <ditafileset format="ditamap"/>
  201. </module>
  202. </pipeline>
  203. </target>
  204. <target name="topic-conref" unless="preprocess.conref.skip" description="Resolve conref in input files">
  205. <condition property="dita.preprocess.reloadstylesheet.conref" value="${dita.preprocess.reloadstylesheet}">
  206. <not><isset property="dita.preprocess.reloadstylesheet.conref"/></not>
  207. </condition>
  208. <makeurl property="exportfile.url" file="${dita.temp.dir}/export.xml" validate="false"/>
  209. <pipeline message="Resolve conref in input files" taskname="conref">
  210. <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">
  211. <ditafileset conref="true" format="dita"/>
  212. <ditafileset conref="true" format="ditamap"/>
  213. <param name="EXPORTFILE" expression="${exportfile.url}"/>
  214. <param name="TRANSTYPE" expression="${transtype}"/>
  215. <xmlcatalog refid="dita.catalog"/>
  216. </xslt>
  217. </pipeline>
  218. </target>
  219. <target name="topic-profile" depends="topic-profile-check" unless="preprocess.topic-profile.skip" description="Profile input files">
  220. <pipeline message="Profile filtering." taskname="profile">
  221. <module class="org.dita.dost.module.FilterModule">
  222. <ditafileset format="dita"/>
  223. <param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>
  224. <param name="transtype" value="${transtype}"/>
  225. </module>
  226. </pipeline>
  227. </target>
  228. <target name="topic-profile-check">
  229. <condition property="preprocess.topic-profile.skip">
  230. <istrue value="${topic.filter-on-parse}"/>
  231. </condition>
  232. </target>
  233. <target name="topic-fragment" description="Normalize same topic fragment identifiers and table column names, and resolve coderef">
  234. <pipeline message="Resolve topic fragment." taskname="topic-fragment">
  235. <sax>
  236. <ditafileset format="dita"/>
  237. <filter class="org.dita.dost.writer.TopicFragmentFilter">
  238. <param name="attributes" value="href"/>
  239. </filter>
  240. <filter class="org.dita.dost.writer.NormalizeTableFilter">
  241. <param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
  242. </filter>
  243. <filter class="org.dita.dost.writer.CoderefResolver" unless:set="preprocess.coderef.skip"/>
  244. <filter class="org.dita.dost.writer.NormalizeCodeblock" unless:set="preprocess.normalize-codeblock.skip"/>
  245. </sax>
  246. </pipeline>
  247. </target>
  248. <target name="topic-chunk" unless="preprocess.chunk.skip" description="Process chunks">
  249. <pipeline message="Process chunks." taskname="chunk">
  250. <module class="org.dita.dost.module.ChunkModule">
  251. <param name="transtype" value="${transtype}"/>
  252. <param name="root-chunk-override" value="${root-chunk-override}" if:set="root-chunk-override"/>
  253. </module>
  254. </pipeline>
  255. </target>
  256. <target name="topic-move-meta-entries" unless="preprocess.move-meta-entries.skip" description="Move metadata entries">
  257. <pipeline message="Move metadata entries." taskname="move-meta">
  258. <module class="org.dita.dost.module.MoveMetaModule">
  259. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mappull.xsl"/>
  260. <param name="conserve-memory" expression="${conserve-memory}" if:set="conserve-memory"/>
  261. </module>
  262. </pipeline>
  263. </target>
  264. <target name="topic-maplink" unless="preprocess.maplink.skip" description="Find and generate related link information">
  265. <condition property="dita.preprocess.reloadstylesheet.maplink" value="${dita.preprocess.reloadstylesheet}">
  266. <not><isset property="dita.preprocess.reloadstylesheet.maplink"/></not>
  267. </condition>
  268. <pipeline message="Move related links" taskname="maplink">
  269. <module class="org.dita.dost.module.MoveLinksModule">
  270. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/maplink.xsl"/>
  271. <param name="include.rellinks" expression="${include.rellinks}" if:set="include.rellinks"/>
  272. <!--dita:extension id="dita.preprocess.maplink.param" behavior="org.dita.dost.platform.InsertAction"/-->
  273. </module>
  274. </pipeline>
  275. </target>
  276. <target name="topic-topicpull" unless="preprocess.topicpull.skip" description="Pull metadata for link and xref element">
  277. <condition property="dita.preprocess.reloadstylesheet.topicpull" value="${dita.preprocess.reloadstylesheet}">
  278. <not><isset property="dita.preprocess.reloadstylesheet.topicpull"/></not>
  279. </condition>
  280. <pipeline message="Pull metadata for link and xref element" taskname="topicpull">
  281. <xslt basedir="${dita.temp.dir}" reloadstylesheet="${dita.preprocess.reloadstylesheet.topicpull}" style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/topicpull.xsl">
  282. <ditafileset format="dita" processingRole="normal"/>
  283. <param name="TABLELINK" expression="${args.tablelink.style}" if:set="args.tablelink.style"/>
  284. <param name="FIGURELINK" expression="${args.figurelink.style}" if:set="args.figurelink.style"/>
  285. <param name="ONLYTOPICINMAP" expression="${onlytopic.in.map}" if:set="onlytopic.in.map"/>
  286. <param name="defaultLanguage" expression="${default.language}"/>
  287. <xmlcatalog refid="dita.catalog"/>
  288. </xslt>
  289. </pipeline>
  290. </target>
  291. <target name="map-clean-map" unless="preprocess.clean-map-check.skip" description="Clean ditamap">
  292. <condition property="dita.preprocess.reloadstylesheet.clean-map" value="${dita.preprocess.reloadstylesheet}">
  293. <not><isset property="dita.preprocess.reloadstylesheet.clean-map"/></not>
  294. </condition>
  295. <pipeline message="Clean ditamap" taskname="clean-map">
  296. <xslt basedir="${dita.temp.dir}" reloadstylesheet="${dita.preprocess.reloadstylesheet.clean-map}" style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/clean-map.xsl">
  297. <ditafileset format="ditamap"/>
  298. <xmlcatalog refid="dita.catalog"/>
  299. </xslt>
  300. </pipeline>
  301. </target>
  302. <target name="copy-files2" description="Copy files to the output directory" depends="copy-image2,copy-html,copy-flag" unless="preprocess.copy-files.skip"/>
  303. <target name="copy-image2" unless="preprocess.copy-image.skip" description="Copy image files">
  304. <copy todir="${dita.output.dir}" failonerror="false">
  305. <ditafileset format="image"/>
  306. </copy>
  307. </target>
  308. </project>