build_preprocess_template.xml 27 KB

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