build_preprocess_template.xml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. <?xml version="1.0"?>
  2. <!--
  3. This file is part of the DITA Open Toolkit project.
  4. Copyright 2006 IBM Corporation
  5. See the accompanying LICENSE file for applicable license.
  6. -->
  7. <project xmlns:dita="http://dita-ot.sourceforge.net"
  8. xmlns:if="ant:if"
  9. xmlns:unless="ant:unless"
  10. name="ditaot-preprocess">
  11. <!-- Set to "true" if you get out-of-memory errors during preprocess
  12. while processing very large (thousands of files) document sets. -->
  13. <condition property="dita.preprocess.reloadstylesheet" value="${conserve-memory}">
  14. <and>
  15. <not><isset property="dita.preprocess.reloadstylesheet"/></not>
  16. <isset property="conserve-memory"/>
  17. </and>
  18. </condition>
  19. <target name="preprocess"
  20. dita:depends="{depend.preprocess.pre},
  21. preprocess.init,
  22. ditaval-merge,
  23. gen-list,
  24. debug-filter,
  25. mapref,
  26. branch-filter,
  27. keyref,
  28. copy-to,
  29. conrefpush,
  30. conref,
  31. profile,
  32. topic-fragment,
  33. chunk,
  34. move-meta-entries,
  35. maplink,
  36. topicpull,
  37. clean-map,
  38. copy-files,
  39. {depend.preprocess.post}"
  40. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  41. description="Preprocessing ended" />
  42. <target name="preprocess.init">
  43. <dita-ot-fail id="DOTA002F">
  44. <condition>
  45. <not><isset property="args.input"/></not>
  46. </condition>
  47. </dita-ot-fail>
  48. <basename property="dita.input.filename" file="${args.input}" />
  49. <pathconvert property="dita.map.filename.root">
  50. <path path="${dita.input.filename}"/>
  51. <chainedmapper>
  52. <mapper type="flatten"/>
  53. <mapper type="regexp" from="^(.+)(\..+?)$$" to="\1"/>
  54. </chainedmapper>
  55. </pathconvert>
  56. <property name="dita.topic.filename.root" value="${dita.map.filename.root}"/>
  57. <echo level="info">*****************************************************************</echo>
  58. <echo level="info">* input = ${args.input}</echo>
  59. <echo level="info">*****************************************************************</echo>
  60. </target>
  61. <!-- clean-temp
  62. Remove anything in the ${dita.temp.dir} directory before starting. -->
  63. <target name="clean-temp" unless="clean-temp.skip"
  64. dita:depends="{depend.preprocess.clean-temp.pre}"
  65. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  66. description="Clean temp directory">
  67. <delete includeemptydirs="true" failonerror="no">
  68. <fileset dir="${dita.temp.dir}"/>
  69. </delete>
  70. </target>
  71. <target name="ditaval-merge"
  72. dita:depends="{depend.preprocess.ditaval-merge.pre}"
  73. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  74. description="Merge DITAVAL files into temporary file">
  75. <pipeline message="Preprocess and merge ditavals" taskname="ditaval-merge" if:set="args.filter">
  76. <module class="org.dita.dost.module.MergeDitavalModule">
  77. <param name="ditaval" value="${args.filter}"/>
  78. <param name="ditadir" location="${dita.dir}"/>
  79. </module>
  80. </pipeline>
  81. </target>
  82. <!-- gen-list
  83. Create the manifest files listing which files are referenced by the input file (even indirectly). -->
  84. <target name="gen-list"
  85. dita:depends="{depend.preprocess.gen-list.pre}"
  86. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  87. unless="preprocess.gen-list.skip"
  88. description="Generate file list">
  89. <pipeline message="Generate list." taskname="gen-list"
  90. inputmap="${args.input}">
  91. <module class="org.dita.dost.module.GenMapAndTopicListModule">
  92. <param name="inputdir" location="${args.input.dir}" if:set="args.input.dir"/>
  93. <param name="ditadir" location="${dita.dir}"/>
  94. <param name="validate" value="${validate}"/>
  95. <param name="generatecopyouter" value="${generate.copy.outer}"/>
  96. <param name="outercontrol" value="${outer.control}"/>
  97. <param name="onlytopicinmap" value="${onlytopic.in.map}"/>
  98. <param name="crawl" value="${link-crawl}" if:set="link-crawl"/>
  99. <param name="outputdir" location="${dita.output.dir}"/>
  100. <param name="transtype" value="${transtype}"/>
  101. <param name="gramcache" value="${args.grammar.cache}"/>
  102. <param name="setsystemid" value="${args.xml.systemid.set}"/>
  103. <param name="profiling.enable" value="${filter-on-parse}" unless:set="filter-on-parse"/>
  104. <param name="generate-debug-attributes" value="${generate-debug-attributes}" if:set="generate-debug-attributes"/>
  105. <param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
  106. </module>
  107. </pipeline>
  108. </target>
  109. <!-- debug-filter
  110. Copy input files to ${dita.temp.dir} tree.
  111. While copying, populate default attributes like @class,
  112. add @xtrf and @xtrc and filter out elements according to valfile, if any. -->
  113. <target name="debug-filter"
  114. dita:depends="{depend.preprocess.debug-filter.pre}"
  115. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  116. unless="preprocess.debug-filter.skip"
  117. description="Debug and filter input files" >
  118. <pipeline message="Debug and filtering." taskname="filter">
  119. <module class="org.dita.dost.module.DebugAndFilterModule">
  120. <param name="ditadir" location="${dita.dir}"/>
  121. <param name="validate" value="${validate}"/>
  122. <param name="transtype" value="${transtype}"/>
  123. <param name="gramcache" value="${args.grammar.cache}"/>
  124. <param name="setsystemid" value="${args.xml.systemid.set}"/>
  125. <param name="profiling.enable" value="${filter-on-parse}" unless:set="filter-on-parse"/>
  126. <param name="generate-debug-attributes" value="${generate-debug-attributes}" if:set="generate-debug-attributes"/>
  127. <param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
  128. <dita:extension id="dita.preprocess.debug-filter.param" behavior="org.dita.dost.platform.InsertAction"/>
  129. </module>
  130. </pipeline>
  131. <!-- generate list files -->
  132. <job-helper file="canditopics.list" property="canditopicslist"/>
  133. <job-helper file="conref.list" property="conreflist"/>
  134. <job-helper file="conreftargets.list" property="conreftargetslist"/>
  135. <job-helper file="copytosource.list" property="copytosourcelist"/>
  136. <job-helper file="fullditamap.list" property="fullditamaplist"/>
  137. <job-helper file="fullditamapandtopic.list" property="fullditamapandtopiclist"/>
  138. <job-helper file="fullditatopic.list" property="fullditatopiclist"/>
  139. <job-helper file="hrefditatopic.list" property="hrefditatopiclist"/>
  140. <job-helper file="hreftargets.list" property="hreftargetslist"/>
  141. <!-- Deprecated since 2.1 -->
  142. <job-helper file="html.list" property="htmllist"/>
  143. <!-- Deprecated since 2.1 -->
  144. <job-helper file="image.list" property="imagelist"/>
  145. <job-helper file="outditafiles.list" property="outditafileslist"/>
  146. <job-helper file="resourceonly.list" property="resourceonlylist"/>
  147. <job-helper file="resourceonly.list" property="resourceonlylist"/>
  148. <job-helper file="subjectscheme.list" property="subjectschemelist"/>
  149. <job-helper file="subtargets.list" property="subtargetslist"/>
  150. <job-helper file="user.input.file.list" property="user.input.file"/>
  151. <job-property dir="${dita.temp.dir}"/>
  152. <property name="outditafilesfile" value="outditafiles.list"/>
  153. <property name="fullditamapandtopicfile" value="fullditamapandtopic.list"/>
  154. <property name="fullditatopicfile" value="fullditatopic.list"/>
  155. <property name="fullditamapfile" value="fullditamap.list"/>
  156. <property name="hrefditatopicfile" value="hrefditatopic.list"/>
  157. <!-- Deprecated since 2.3 -->
  158. <property name="conreffile" value="conref.list"/>
  159. <!-- Deprecated since 2.1 -->
  160. <property name="imagefile" value="image.list"/>
  161. <!-- Deprecated since 2.1 -->
  162. <property name="htmlfile" value="html.list"/>
  163. <property name="hreftargetsfile" value="hreftargets.list"/>
  164. <property name="canditopicsfile" value="canditopics.list"/>
  165. <property name="subjectschemefile" value="subjectscheme.list"/>
  166. <property name="conreftargetsfile" value="conreftargets.list"/>
  167. <property name="copytosourcefile" value="copytosource.list"/>
  168. <property name="subtargetsfile" value="subtargets.list"/>
  169. <property name="resourceonlyfile" value="resourceonly.list"/>
  170. <dirname property="_dita.map.output.dir" file="${dita.output.dir}/${user.input.file}" />
  171. <dirname property="_dita.map.temp.dir" file="${dita.temp.dir}/${user.input.file}" />
  172. <property name="dita.map.output.dir" location="${_dita.map.output.dir}/${uplevels}"/>
  173. <condition property="noMap">
  174. <length file="${dita.temp.dir}/${fullditamapfile}" length="0"/>
  175. </condition>
  176. </target>
  177. <!-- profile -->
  178. <target name="profile" depends="profile-check"
  179. unless="preprocess.profile.skip"
  180. description="Profile input files">
  181. <pipeline message="Profile filtering." taskname="profile"
  182. inputmap="${args.input}">
  183. <module class="org.dita.dost.module.FilterModule">
  184. <ditafileset format="dita"/>
  185. <ditafileset format="ditamap"/>
  186. <!--param name="ditadir" location="${dita.dir}"/-->
  187. <param name="ditaval" location="${dita.input.valfile}" if:set="dita.input.valfile"/>
  188. <!--param name="inputdir" location="${args.input.dir}" if:set="args.input.dir"/-->
  189. <!--param name="outputdir" location="${dita.output.dir}"/-->
  190. <!--param name="setsystemid" value="${args.xml.systemid.set}"/-->
  191. <param name="transtype" value="${transtype}"/>
  192. </module>
  193. </pipeline>
  194. <!-- update list files -->
  195. <job-helper file="fullditatopic.list" property="fullditatopiclist"/>
  196. <job-helper file="fullditamap.list" property="fullditamaplist"/>
  197. <job-helper file="fullditamapandtopic.list" property="fullditamapandtopiclist"/>
  198. <job-helper file="resourceonly.list" property="resourceonlylist"/>
  199. <job-helper file="copytosource.list" property="copytosourcelist"/>
  200. <job-property dir="${dita.temp.dir}"/>
  201. <condition property="noTopic">
  202. <length file="${dita.temp.dir}/${fullditatopicfile}" length="0"/>
  203. </condition>
  204. </target>
  205. <target name="profile-check">
  206. <condition property="preprocess.profile.skip">
  207. <!--not>
  208. <isset property="dita.input.valfile"/>
  209. </not-->
  210. <istrue value="${filter-on-parse}"/>
  211. </condition>
  212. </target>
  213. <target name="branch-filter">
  214. <pipeline taskname="branch-filter" message="Filter branches">
  215. <module class="org.dita.dost.module.BranchFilterModule"/>
  216. </pipeline>
  217. </target>
  218. <!-- conref push
  219. Push information to the specified target -->
  220. <target name="conrefpush"
  221. dita:depends="{depend.preprocess.conrefpush.pre}"
  222. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  223. unless="preprocess.conrefpush.skip"
  224. description="Resolve conref push">
  225. <pipeline message="Resolve conref push." taskname="conref-push">
  226. <module class="org.dita.dost.module.ConrefPushModule">
  227. <ditafileset format="dita"/>
  228. <ditafileset format="ditamap"/>
  229. </module>
  230. </pipeline>
  231. <job-helper file="conref.list" property="conreflist"/>
  232. </target>
  233. <!-- move-meta-entries
  234. Push information from <topicmeta> in the map into the corresponding topics and
  235. pull metadata (such as navtitle) into the map from the referenced topics. -->
  236. <target name="move-meta-entries"
  237. dita:depends="{depend.preprocess.move-meta-entries.pre}"
  238. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  239. unless="preprocess.move-meta-entries.skip"
  240. description="Move metadata entries">
  241. <pipeline message="Move metadata entries." taskname="move-meta"
  242. inputmap="${user.input.file}">
  243. <module class="org.dita.dost.module.MoveMetaModule">
  244. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mappull.xsl"/>
  245. <param name="conserve-memory" expression="${conserve-memory}" if:set="conserve-memory"/>
  246. <dita:extension id="dita.preprocess.mappull.param" behavior="org.dita.dost.platform.InsertAction"/>
  247. </module>
  248. </pipeline>
  249. </target>
  250. <!-- conref
  251. Pull elements referenced by conref into their correct place. -->
  252. <target name="conref"
  253. dita:depends="{depend.preprocess.conref.pre},conref-check"
  254. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  255. unless="preprocess.conref.skip"
  256. description="Resolve conref in input files">
  257. <condition property="dita.preprocess.reloadstylesheet.conref" value="${dita.preprocess.reloadstylesheet}">
  258. <not><isset property="dita.preprocess.reloadstylesheet.conref"/></not>
  259. </condition>
  260. <makeurl property="exportfile.url" file="${dita.temp.dir}/export.xml" validate="false"/>
  261. <pipeline message="Resolve conref in input files" taskname="conref">
  262. <xslt basedir="${dita.temp.dir}"
  263. reloadstylesheet="${dita.preprocess.reloadstylesheet.conref}"
  264. style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/conref.xsl" filenameparameter="file-being-processed">
  265. <ditafileset conref="true"/>
  266. <param name="EXPORTFILE" expression="${exportfile.url}"/>
  267. <param name="TRANSTYPE" expression="${transtype}"/>
  268. <dita:extension id="dita.preprocess.conref.param" behavior="org.dita.dost.platform.InsertAction"/>
  269. <xmlcatalog refid="dita.catalog"/>
  270. </xslt>
  271. </pipeline>
  272. </target>
  273. <!-- Deprecated since 2.3 -->
  274. <target name="conref-check">
  275. </target>
  276. <target name="topic-fragment"
  277. dita:depends="{depend.preprocess.coderef.pre}"
  278. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  279. description="Normalize same topic fragment identifiers and table column names, and resolve coderef">
  280. <pipeline message="Resolve topic fragment." taskname="topic-fragment">
  281. <sax format="dita">
  282. <filter class="org.dita.dost.writer.TopicFragmentFilter">
  283. <param name="attributes" value="href"/>
  284. </filter>
  285. <filter class="org.dita.dost.writer.NormalizeTableFilter">
  286. <param name="processing-mode" value="${processing-mode}" if:set="processing-mode"/>
  287. </filter>
  288. <filter class="org.dita.dost.writer.CoderefResolver" unless:set="preprocess.coderef.skip"/>
  289. <filter class="org.dita.dost.writer.NormalizeCodeblock" unless:set="preprocess.normalize-codeblock.skip"/>
  290. </sax>
  291. </pipeline>
  292. </target>
  293. <!-- coderef -->
  294. <!-- Deprecated since 2.3 -->
  295. <target name="coderef"
  296. unless="preprocess.coderef.skip"
  297. description="Resolve coderef in input files">
  298. <echo level="warn">WARN: Coderef target has been merged with topic-fragment and is deprecated.</echo>
  299. </target>
  300. <!-- mapref
  301. Produce a logical super-map from the map references
  302. (topicref with format="ditamap") in the input map. -->
  303. <target name="mapref"
  304. dita:depends="{depend.preprocess.mapref.pre},mapref-check"
  305. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  306. unless="preprocess.mapref.skip"
  307. description="Resolve mapref in ditamap">
  308. <condition property="dita.preprocess.reloadstylesheet.mapref" value="${dita.preprocess.reloadstylesheet}">
  309. <not><isset property="dita.preprocess.reloadstylesheet.mapref"/></not>
  310. </condition>
  311. <dirname property="mapref.workdir" file="${dita.temp.dir}/${user.input.file}" />
  312. <pipeline message="Resolve mapref in ditamap" taskname="mapref">
  313. <module class="org.dita.dost.module.MaprefModule">
  314. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mapref.xsl"/>
  315. <ditafileset format="ditamap"/>
  316. <dita:extension id="dita.preprocess.mapref.param" behavior="org.dita.dost.platform.InsertAction"/>
  317. </module>
  318. </pipeline>
  319. </target>
  320. <target name="mapref-check">
  321. <condition property="preprocess.mapref.skip">
  322. <isset property="noMap"/>
  323. </condition>
  324. </target>
  325. <!-- keyref
  326. Resolve keyref using key definition in ditamap-->
  327. <target name="keyref"
  328. dita:depends="{depend.preprocess.keyref.pre}"
  329. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  330. unless="preprocess.keyref.skip"
  331. description="Resolve keyref">
  332. <pipeline message="Resolve keyref." taskname="keyref">
  333. <module class="org.dita.dost.module.KeyrefModule">
  334. <param name="transtype" value="${transtype}"/>
  335. </module>
  336. </pipeline>
  337. <pipeline message="Resolve mapref in ditamap" taskname="mapref">
  338. <xslt basedir="${dita.temp.dir}"
  339. reloadstylesheet="${dita.preprocess.reloadstylesheet.mapref}"
  340. style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/mapref.xsl"
  341. filenameparameter="file-being-processed">
  342. <ditafileset format="ditamap"/>
  343. <param name="TRANSTYPE" expression="${transtype}" />
  344. <param name="child-topicref-warning" expression="false"/>
  345. <param name="keep-submap-href" expression="false"/>
  346. <dita:extension id="dita.preprocess.mapref.param" behavior="org.dita.dost.platform.InsertAction"/>
  347. <xmlcatalog refid="dita.catalog"/>
  348. </xslt>
  349. </pipeline>
  350. </target>
  351. <target name="copy-to">
  352. <pipeline message="Resolve copy-to." taskname="copy-to">
  353. <module class="org.dita.dost.module.CopyToModule">
  354. <param name="force-unique" value="${force-unique}" if:set="force-unique"/>
  355. </module>
  356. </pipeline>
  357. </target>
  358. <!-- mappull
  359. Pull metadata (such as navtitle) into the map from the referenced topics. -->
  360. <!-- Deprecated in 2.2 -->
  361. <target name="mappull"
  362. dita:depends="{depend.preprocess.mappull.pre},mappull-check"
  363. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  364. unless="preprocess.mappull.skip"
  365. description="Pull the navtitle and topicmeta from topics to ditamap">
  366. <echo level="warn">WARN: Mappull target has been merged with move-meta-entries and is deprecated.</echo>
  367. </target>
  368. <!-- Deprecated in 2.2 -->
  369. <target name="mappull-check">
  370. <condition property="preprocess.mappull.skip">
  371. <isset property="noMap"/>
  372. </condition>
  373. </target>
  374. <!-- chunk
  375. Assemble virtual supertopics based on chunk attribute in map. -->
  376. <target name="chunk"
  377. dita:depends="{depend.preprocess.chunk.pre},chunk-check"
  378. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  379. unless="preprocess.chunk.skip"
  380. description="Process chunks">
  381. <pipeline message="Process chunks." taskname="chunk"
  382. inputmap="${user.input.file}">
  383. <module class="org.dita.dost.module.ChunkModule">
  384. <param name="transtype" value="${transtype}"/>
  385. <param name="root-chunk-override" value="${root-chunk-override}" if:set="root-chunk-override"/>
  386. </module>
  387. </pipeline>
  388. <job-helper file="fullditatopic.list" property="fullditatopiclist"/>
  389. <job-helper file="fullditamap.list" property="fullditamaplist"/>
  390. <job-helper file="fullditamapandtopic.list" property="fullditamapandtopiclist"/>
  391. <job-helper file="resourceonly.list" property="resourceonlylist"/>
  392. <job-helper file="copytosource.list" property="copytosourcelist"/>
  393. <job-property dir="${dita.temp.dir}"/>
  394. <condition property="noTopic">
  395. <length file="${dita.temp.dir}/${fullditatopicfile}" length="0"/>
  396. </condition>
  397. </target>
  398. <target name="chunk-check">
  399. <condition property="preprocess.chunk.skip">
  400. <isset property="noMap"/>
  401. </condition>
  402. </target>
  403. <!-- maplink
  404. Collect all links from maps and push them into topics. -->
  405. <target name="maplink"
  406. dita:depends="{depend.preprocess.maplink.pre},maplink-check"
  407. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  408. unless="preprocess.maplink.skip"
  409. description="Find and generate related link information">
  410. <condition property="dita.preprocess.reloadstylesheet.maplink" value="${dita.preprocess.reloadstylesheet}">
  411. <not><isset property="dita.preprocess.reloadstylesheet.maplink"/></not>
  412. </condition>
  413. <pipeline message="Move related links" taskname="maplink"
  414. inputmap="${user.input.file}">
  415. <module class="org.dita.dost.module.MoveLinksModule">
  416. <param name="style" location="${dita.plugin.org.dita.base.dir}/xsl/preprocess/maplink.xsl"/>
  417. <param name="include.rellinks" expression="${include.rellinks}" if:set="include.rellinks"/>
  418. <!--dita:extension id="dita.preprocess.maplink.param" behavior="org.dita.dost.platform.InsertAction"/-->
  419. </module>
  420. </pipeline>
  421. </target>
  422. <target name="maplink-check">
  423. <condition property="preprocess.maplink.skip">
  424. <isset property="noMap"/>
  425. </condition>
  426. </target>
  427. <!-- topicpull
  428. Populate link text for links within topics (xref, link). -->
  429. <target name="topicpull"
  430. dita:depends="{depend.preprocess.topicpull.pre},topicpull-check"
  431. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  432. unless="preprocess.topicpull.skip"
  433. description="Pull metadata for link and xref element">
  434. <condition property="dita.preprocess.reloadstylesheet.topicpull" value="${dita.preprocess.reloadstylesheet}">
  435. <not><isset property="dita.preprocess.reloadstylesheet.topicpull"/></not>
  436. </condition>
  437. <pipeline message="Pull metadata for link and xref element" taskname="topicpull">
  438. <xslt basedir="${dita.temp.dir}"
  439. reloadstylesheet="${dita.preprocess.reloadstylesheet.topicpull}"
  440. style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/topicpull.xsl">
  441. <ditafileset format="dita" processingRole="normal"/>
  442. <param name="TABLELINK" expression="${args.tablelink.style}" if:set="args.tablelink.style" />
  443. <param name="FIGURELINK" expression="${args.figurelink.style}" if:set="args.figurelink.style" />
  444. <param name="ONLYTOPICINMAP" expression="${onlytopic.in.map}" if:set="onlytopic.in.map"/>
  445. <!-- Deprecated since 2.5 -->
  446. <param name="defaultLanguage" expression="${default.language}"/>
  447. <param name="remove-broken-links" expression="${remove-broken-links}" if:set="remove-broken-links"/>
  448. <dita:extension id="dita.preprocess.topicpull.param" behavior="org.dita.dost.platform.InsertAction"/>
  449. <xmlcatalog refid="dita.catalog"/>
  450. </xslt>
  451. </pipeline>
  452. </target>
  453. <target name="topicpull-check">
  454. <condition property="preprocess.topicpull.skip">
  455. <isset property="noTopic"/>
  456. </condition>
  457. </target>
  458. <!-- Clean maps from processing time -->
  459. <target name="clean-map"
  460. depends="clean-map-check"
  461. unless="preprocess.clean-map-check.skip"
  462. description="Clean ditamap">
  463. <condition property="dita.preprocess.reloadstylesheet.clean-map" value="${dita.preprocess.reloadstylesheet}">
  464. <not><isset property="dita.preprocess.reloadstylesheet.clean-map"/></not>
  465. </condition>
  466. <pipeline message="Clean ditamap" taskname="clean-map">
  467. <xslt basedir="${dita.temp.dir}"
  468. reloadstylesheet="${dita.preprocess.reloadstylesheet.clean-map}"
  469. style="${dita.plugin.org.dita.base.dir}/xsl/preprocess/clean-map.xsl">
  470. <ditafileset format="ditamap"/>
  471. <xmlcatalog refid="dita.catalog"/>
  472. </xslt>
  473. </pipeline>
  474. </target>
  475. <target name="clean-map-check">
  476. <condition property="preprocess.clean-map-check.skip">
  477. <isset property="noMap"/>
  478. </condition>
  479. </target>
  480. <!-- Clean tempory files at the end of preprocess -->
  481. <target name="clean-preprocess"
  482. unless="preprocess.clean-preprocess.skip"
  483. description="Clean preprocess">
  484. <property name="clean-preprocess.use-result-filename" value="true"/>
  485. <pipeline message="Clean preprocess" taskname="clean-preprocess">
  486. <param name="use-result-filename" value="${clean-preprocess.use-result-filename}" if:set="clean-preprocess.use-result-filename"/>
  487. <module class="org.dita.dost.module.CleanPreprocessModule"/>
  488. </pipeline>
  489. <job-helper file="canditopics.list" property="canditopicslist"/>
  490. <job-helper file="conref.list" property="conreflist"/>
  491. <job-helper file="conreftargets.list" property="conreftargetslist"/>
  492. <job-helper file="copytosource.list" property="copytosourcelist"/>
  493. <job-helper file="fullditamap.list" property="fullditamaplist"/>
  494. <job-helper file="fullditamapandtopic.list" property="fullditamapandtopiclist"/>
  495. <job-helper file="fullditatopic.list" property="fullditatopiclist"/>
  496. <job-helper file="hrefditatopic.list" property="hrefditatopiclist"/>
  497. <job-helper file="hreftargets.list" property="hreftargetslist"/>
  498. <!-- Deprecated since 2.1 -->
  499. <job-helper file="html.list" property="htmllist"/>
  500. <!-- Deprecated since 2.1 -->
  501. <job-helper file="image.list" property="imagelist"/>
  502. <job-helper file="outditafiles.list" property="outditafileslist"/>
  503. <job-helper file="resourceonly.list" property="resourceonlylist"/>
  504. <job-helper file="resourceonly.list" property="resourceonlylist"/>
  505. <job-helper file="subjectscheme.list" property="subjectschemelist"/>
  506. <job-helper file="subtargets.list" property="subtargetslist"/>
  507. <job-helper file="user.input.file.list" property="user.input.file"/>
  508. <job-helper file="usr.input.file.list" property="user.input.file"/>
  509. <job-property dir="${dita.temp.dir}"/>
  510. </target>
  511. <!-- copy-files
  512. Copy files to the output directory. -->
  513. <target name="copy-files"
  514. dita:depends="{depend.preprocess.copy-files.pre},copy-image,copy-html,copy-flag"
  515. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  516. unless="preprocess.copy-files.skip" />
  517. <target name="copy-image"
  518. unless="preprocess.copy-image.skip"
  519. dita:depends="{depend.preprocess.copy-image.pre}"
  520. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  521. description="Copy image files">
  522. <condition property="copy-image.todir" value="${_dita.map.output.dir}/${uplevels}" else="${dita.output.dir}">
  523. <equals arg1="${generate.copy.outer}" arg2="1"/>
  524. </condition>
  525. <copy todir="${copy-image.todir}" failonerror="false">
  526. <ditafileset format="image" />
  527. </copy>
  528. </target>
  529. <target name="copy-html"
  530. dita:depends="{depend.preprocess.copy-html.pre}"
  531. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  532. unless="preprocess.copy-html.skip"
  533. description="Copy html files">
  534. <condition property="copy-html.todir" value="${_dita.map.output.dir}/${uplevels}" else="${dita.output.dir}">
  535. <equals arg1="${generate.copy.outer}" arg2="1"/>
  536. </condition>
  537. <copy todir="${copy-html.todir}" failonerror="false">
  538. <ditafileset>
  539. <excludes format="dita"/>
  540. <excludes format="ditamap"/>
  541. <excludes format="ditaval"/>
  542. <excludes format="image"/>
  543. <excludes format="coderef"/>
  544. </ditafileset>
  545. </copy>
  546. </target>
  547. <target name="copy-flag"
  548. dita:depends="{depend.preprocess.copy-flag.pre},copy-flag-check"
  549. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  550. unless="preprocess.copy-flag.skip"
  551. description="Copy flag files">
  552. <property name="flagimagefile" value="flagimage.list"/>
  553. <job-helper file="flagimage.list" property="flagimagelist"/>
  554. <dita-ot-copy todir="${dita.output.dir}" includesfile="${dita.temp.dir}/${flagimagefile}" relativepaths="${relflagimagelist}" />
  555. </target>
  556. <target name="copy-flag-check">
  557. <condition property="preprocess.copy-flag.skip">
  558. <or>
  559. <isset property="preprocess.copy-files.skip"/>
  560. <not><isset property="dita.input.valfile"/></not>
  561. </or>
  562. </condition>
  563. </target>
  564. <!-- Deprecated since 2.1 -->
  565. <target name="copy-subsidiary"
  566. dita:depends="{depend.preprocess.copy-subsidiary.pre},copy-subsidiary-check"
  567. dita:extension="depends org.dita.dost.platform.InsertDependsAction"
  568. unless="preprocess.copy-subsidiary.skip"
  569. description="Copy subsidiary files">
  570. <dita-ot-echo id="DOTX070W"><param name="1" value="copy-subsidiary"/></dita-ot-echo>
  571. <copy todir="${dita.temp.dir}">
  572. <fileset dir="${user.input.dir}" includesfile="${dita.temp.dir}/${subtargetsfile}"/>
  573. </copy>
  574. </target>
  575. <!-- Deprecated since 2.1 -->
  576. <target name="copy-subsidiary-check">
  577. <dita-ot-echo id="DOTX070W"><param name="1" value="copy-subsidiary-check"/></dita-ot-echo>
  578. <condition property="preprocess.copy-subsidiary.skip">
  579. <or>
  580. <isset property="preprocess.copy-files.skip"/>
  581. <length file="${dita.temp.dir}/${subtargetsfile}" length="0"/>
  582. </or>
  583. </condition>
  584. </target>
  585. </project>