Skip to content

Commit

Permalink
Use ditafileset element instead of old list files #70
Browse files Browse the repository at this point in the history
  • Loading branch information
jelovirt committed May 8, 2020
1 parent 06bd28f commit bf81d11
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 74 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Expand Up @@ -5,15 +5,15 @@ sourceCompatibility = 1.8
targetCompatibility = 1.8

group = 'com.elovirta.dita'
version = "2.3.2"
version = "2.4.0"

repositories {
mavenCentral()
jcenter()
}

dependencies {
compile group: "org.dita-ot", name: "dost", version: "[2.1,)"
compile group: "org.dita-ot", name: "dost", version: "[3.4,)"
compile group: "com.vladsch.flexmark", name: "flexmark-all", version: "0.50.18"
compile group: 'nu.validator.htmlparser', name: 'htmlparser', version: '1.4'
testCompile group: 'junit', name: 'junit', version: '4.12'
Expand Down
221 changes: 149 additions & 72 deletions src/main/build-markdown_template.xml
Expand Up @@ -2,77 +2,43 @@
<project xmlns:dita="http://dita-ot.sourceforge.net"
xmlns:if="ant:if">

<target name="dita2markdown"
depends="build-init,
preprocess,
markdown.init,
markdown.topic,
markdown.map"/>

<target name="markdown.init">
<condition property="out.ext" value=".md">
<not>
<isset property="out.ext" />
</not>
</condition>
<property name="out.ext" value=".md"/>
<local name="markdown.type.prefix"/>
<condition property="markdown.type.prefix" value="_${markdown.type}" else="">
<isset property="markdown.type"/>
</condition>
<condition property="args.xsl" value="${dita.plugin.org.lwdita.dir}/xsl/dita2markdown${markdown.type.prefix}.xsl">
<not>
<isset property="args.xsl" />
</not>
</condition>
<property name="args.xsl" value="${dita.plugin.org.lwdita.dir}/xsl/dita2markdown${markdown.type.prefix}.xsl"/>
<makeurl file="${dita.input.valfile}" property="dita.input.valfile.url" validate="no"/>
<!-- Set to "true" if you get out-of-memory errors during preprocess
while processing very large (thousands of files) document sets. -->
<condition property="dita.markdown.reloadstylesheet" value="false">
<not><isset property="dita.markdown.reloadstylesheet"/></not>
</condition>
</target>

<target name="markdown_github.init">
<property name="markdown.type" value="github"/>
<property name="dita.markdown.reloadstylesheet" value="false"/>
</target>

<target name="markdown_gitbook.init" depends="markdown_github.init">
<condition property="args.markdown.toc.xsl" value="${dita.plugin.org.lwdita.dir}/xsl/map2markdown-cover_gitbook.xsl">
<not>
<isset property="args.markdown.toc.xsl" />
</not>
</condition>
<condition property="args.markdown.toc" value="SUMMARY">
<not>
<isset property="args.markdown.toc" />
</not>
</condition>
<condition property="args.rellinks" value="nofamily">
<not>
<isset property="args.rellinks" />
</not>
</condition>
</target>

<target name="dita2markdown"
depends="build-init,
preprocess,
markdown.init,
dita.topics.markdown.common,
dita.inner.topics.markdown.common,
dita.map.markdown.init,
dita.map.markdown.toc,
dita.out.map.markdown.toc"/>

<target name="dita2markdown_github" depends="markdown_github.init, dita2markdown"/>

<target name="dita2markdown_gitbook" depends="markdown_gitbook.init, dita2markdown"/>
<!-- Map -->

<target name="dita.map.markdown.init" unless="noMap">
<condition property="args.markdown.toc.xsl" value="${dita.plugin.org.lwdita.dir}/xsl/map2markdown-cover.xsl">
<not>
<isset property="args.markdown.toc.xsl" />
</not>
</condition>
<condition property="args.markdown.toc" value="index">
<not>
<isset property="args.markdown.toc" />
</not>
<target name="markdown.map"
depends="markdown.map.init,
markdown.map.toc"
unless="noMap"/>

<target name="markdown.map.init" unless="noMap">
<property name="args.markdown.toc.xsl" value="${dita.plugin.org.lwdita.dir}/xsl/map2markdown-cover.xsl"/>
<property name="args.markdown.toc" value="index"/>
<property name="markdown.toc.generate" value="true"/>
<condition property="_markdown.toc.skip" value="true">
<or>
<isset property="noMap"/>
<isfalse value="${markdown.toc.generate}"/>
</or>
</condition>
</target>

<!--
<target name="dita.map.markdown.toc"
unless="noMap" if="old.transform"
description="Build Markdown TOC file">
Expand Down Expand Up @@ -108,10 +74,51 @@
<xmlcatalog refid="dita.catalog"/>
</xslt>
</target>
-->

<target name="markdown.map.toc" unless="_markdown.toc.skip" description="Build Markdown TOC file">
<markdown.map>
<dita:extension id="dita.conductor.markdown.toc.param" behavior="org.dita.dost.platform.InsertAction"/>
</markdown.map>
</target>

<macrodef name="markdown.map">
<element name="params" optional="true" implicit="true"/>
<sequential>
<local name="markdown.toc.output.dir"/>
<condition property="markdown.toc.output.dir" value="${dita.output.dir}" else="${_dita.map.output.dir}">
<isset property="inner.transform"/>
</condition>
<pipeline message="Convert DITA map to Markdown" taskname="xslt">
<xslt destdir="${markdown.toc.output.dir}"
style="${args.markdown.toc.xsl}">
<ditafileset input="true" format="ditamap"/>
<param name="FILTERFILE" expression="${dita.input.valfile.url}" if:set="dita.input.valfile"/>
<param name="OUTEXT" expression="${out.ext}" if:set="out.ext"/>
<param name="contenttarget" expression="${args.markdown.contenttarget}" if:set="args.markdown.contenttarget"/>
<param name="CSS" expression="${args.css.file}" if:set="args.css.file"/>
<param name="CSSPATH" expression="${user.csspath}" if:set="user.csspath"/>
<param name="OUTPUTCLASS" expression="${args.markdown.toc.class}" if:set="args.markdown.toc.class"/>
<params/>
<mapper type="merge" to="${args.markdown.toc}${out.ext}"/>
<xmlcatalog refid="dita.catalog"/>
</xslt>
</pipeline>
</sequential>
</macrodef>

<!--requirement 3, old solution-->

<target name="dita.topics.markdown.common" unless="noTopic" if="old.transform">
<!-- Topics -->

<target name="markdown.topic"
depends="markdown.topics.common,
markdown.topics.common.inner"/>

<target name="markdown.topics.common" unless="noTopic" if="old.transform">
<markdown.topics>
<dita:extension id="dita.conductor.markdown.param" behavior="org.dita.dost.platform.InsertAction"/>
<mapper classname="org.dita.dost.ant.types.JobMapper" to="${out.ext}"/>
</markdown.topics>
<!--
<xslt basedir="${dita.temp.dir}"
destdir="${output.dir}" includesfile="${dita.temp.dir}${file.separator}${fullditatopicfile}"
reloadstylesheet="${dita.markdown.reloadstylesheet}"
Expand All @@ -134,15 +141,18 @@
<param name="BASEDIR" expression="${basedir}"/>
<param name="OUTPUTDIR" expression="${output.dir}"/>
<param name="DBG" expression="${args.debug}" if:set="args.debug"/>
<!--dita:extension id="dita.conductor.markdown.param" behavior="org.dita.dost.platform.InsertAction"/-->
<!- -dita:extension id="dita.conductor.markdown.param" behavior="org.dita.dost.platform.InsertAction"/- ->
<xmlcatalog refid="dita.catalog"/>
</xslt>
-->
</target>

<!--To generate&copy inner files-->
<!--requirement 1,2-->

<target name="dita.inner.topics.markdown.common" unless="noTopic" if="inner.transform">

<target name="markdown.topics.common.inner" unless="noTopic" if="inner.transform">
<markdown.topics>
<!--dita:extension id="dita.conductor.markdown.param" behavior="org.dita.dost.platform.InsertAction"/-->
<mapper classname="org.dita.dost.ant.types.JobMapper" to="${out.ext}"/>
</markdown.topics>
<!--
<xslt basedir="${dita.temp.dir}"
destdir="${output.dir}" includesfile="${dita.temp.dir}${file.separator}${fullditatopicfile}"
reloadstylesheet="${dita.markdown.reloadstylesheet}"
Expand All @@ -165,13 +175,80 @@
<param name="BASEDIR" expression="${basedir}"/>
<param name="OUTPUTDIR" expression="${output.dir}"/>
<param name="DBG" expression="${args.debug}" if:set="args.debug"/>
<!--dita:extension id="dita.conductor.markdown.param" behavior="org.dita.dost.platform.InsertAction"/-->
<!--New,To generate&copy all dita files in the inputmap.dir, not all files in dita.temp.dir -->
<!- -dita:extension id="dita.conductor.markdown.param" behavior="org.dita.dost.platform.InsertAction"/- ->
<!- -New,To generate&copy all dita files in the inputmap.dir, not all files in dita.temp.dir - ->
<mapper type="regexp"
from="^(${tempdirToinputmapdir.relative.value})(.*?)(\.(\w+))$$"
to="\2${out.ext}"/>
<xmlcatalog refid="dita.catalog"/>
</xslt>
-->
</target>

<macrodef name="markdown.topics">
<element name="params" optional="true" implicit="true"/>
<sequential>
<pipeline message="Convert DITA topic to Markdown" taskname="xslt">
<xslt destdir="${dita.output.dir}"
reloadstylesheet="${dita.markdown.reloadstylesheet}"
extension="${out.ext}"
style="${args.xsl}"
filenameparameter="FILENAME"
filedirparameter="FILEDIR">
<ditafileset format="dita" processingRole="normal"/>
<param name="FILTERFILE" expression="${dita.input.valfile.url}" if:set="dita.input.valfile"/>
<param name="CSS" expression="${args.css.file}" if:set="args.css.file"/>
<param name="CSSPATH" expression="${user.csspath}" if:set="user.csspath"/>
<param name="HDF" expression="${args.hdf}" if:set="args.hdf"/>
<param name="HDR" expression="${args.hdr}" if:set="args.hdr"/>
<param name="FTR" expression="${args.ftr}" if:set="args.ftr"/>
<param name="DRAFT" expression="${args.draft}" if:set="args.draft"/>
<param name="ARTLBL" expression="${args.artlbl}" if:set="args.artlbl"/>
<param name="GENERATE-TASK-LABELS" expression="${args.gen.task.lbl}" if:set="args.gen.task.lbl"/>
<param name="PRESERVE-DITA-CLASS" expression="${args.markdown.classattr}" if:set="args.markdown.classattr"/>
<param name="NOPARENTLINK" expression="${args.hide.parent.link}" if:set="args.hide.parent.link"/>
<param name="include.rellinks" expression="${include.rellinks}"/>
<param name="INDEXSHOW" expression="${args.indexshow}" if:set="args.indexshow"/>
<param name="genDefMeta" expression="${args.gen.default.meta}" if:set="args.gen.default.meta"/>
<param name="OUTEXT" expression="${out.ext}" if:set="out.ext"/>
<param name="BASEDIR" expression="${dita.dir}"/>
<param name="OUTPUTDIR" expression="${dita.output.dir}"/>
<param name="defaultLanguage" expression="${default.language}"/>
<params/>
<xmlcatalog refid="dita.catalog"/>
</xslt>
</pipeline>
</sequential>
</macrodef>

<!-- GitBook -->

<target name="dita2markdown_gitbook" depends="markdown_gitbook.init, dita2markdown"/>

<target name="markdown_gitbook.init" depends="markdown_github.init">
<condition property="args.markdown.toc.xsl" value="${dita.plugin.org.lwdita.dir}/xsl/map2markdown-cover_gitbook.xsl">
<not>
<isset property="args.markdown.toc.xsl" />
</not>
</condition>
<condition property="args.markdown.toc" value="SUMMARY">
<not>
<isset property="args.markdown.toc" />
</not>
</condition>
<condition property="args.rellinks" value="nofamily">
<not>
<isset property="args.rellinks" />
</not>
</condition>
</target>

<!-- GFM -->

<target name="dita2markdown_github" depends="markdown_github.init, dita2markdown"/>

<target name="markdown_github.init">
<property name="markdown.type" value="github"/>
</target>

</project>

0 comments on commit bf81d11

Please sign in to comment.