- update asciidoctor - improve transforming xooki source into asciidoc source
Project: http://git-wip-us.apache.org/repos/asf/ant-ivy/repo Commit: http://git-wip-us.apache.org/repos/asf/ant-ivy/commit/1760b262 Tree: http://git-wip-us.apache.org/repos/asf/ant-ivy/tree/1760b262 Diff: http://git-wip-us.apache.org/repos/asf/ant-ivy/diff/1760b262 Branch: refs/heads/xooki2asciidoc Commit: 1760b262c2d99d7803184e471116478ef18ff4c8 Parents: 3d72f1d Author: Nicolas LaleveÌe <[email protected]> Authored: Thu May 25 14:55:24 2017 +0200 Committer: Nicolas LaleveÌe <[email protected]> Committed: Thu May 25 14:55:24 2017 +0200 ---------------------------------------------------------------------- build-release.xml | 36 +++++++--------- doc/xooki2asciidoc/xooki2asciidoc.js | 70 +++++++++++++++++++++++++++---- 2 files changed, 75 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/1760b262/build-release.xml ---------------------------------------------------------------------- diff --git a/build-release.xml b/build-release.xml index 7e3fc23..65c13c5 100644 --- a/build-release.xml +++ b/build-release.xml @@ -63,8 +63,8 @@ </sequential> </macrodef> - <target name="generate-tutorial-output" depends="jar, generate-doc-init"> - <property name="output.dir" value="${build.dir}/output" /> + <target name="generate-tutorial-output" depends="jar" unless="skip.generate-tutorial-output"> + <property name="output.dir" value="${basedir}/asciidoc/tutorial/log" /> <delete dir="${output.dir}" /> <mkdir dir="${output.dir}" /> @@ -164,35 +164,27 @@ <replace dir="${output.dir}" token="-f build.xml " value="" /> <replace dir="${output.dir}" token="${ivy.revision}" value="working@apache" /> - <copy todir="${doc.tmp.dir}/tutorial/log"> - <fileset dir="${output.dir}" /> - </copy> - </target> - - <target name="generate-doc-init" depends="release-version"> - <!-- copy documentation to temp dir to replace version tokens --> - <property name="doc.tmp.dir" value="${build.dir}/tempdoc" /> - <mkdir dir="${doc.tmp.dir}" /> - <copy todir="${doc.tmp.dir}" preservelastmodified="true" overwrite="true"> - <fileset dir="${doc.src.dir}" /> - <filterset> - <filter token="version" value="${build.version}"/> - </filterset> - </copy> </target> - <target name="generate-doc" depends="init-ivy,generate-doc-init,generate-tutorial-output"> + <target name="generate-doc" depends="init-ivy"> <ivy:cachepath pathid="asciidoctor.path"> - <dependency org="org.asciidoctor" name="asciidoctor-ant" rev="1.5.0" /> + <dependency org="org.asciidoctor" name="asciidoctor-ant" rev="1.5.4" /> </ivy:cachepath> <taskdef uri="antlib:org.asciidoctor.ant" resource="org/asciidoctor/ant/antlib.xml" classpathref="asciidoctor.path" /> - <asciidoctor:convert sourceDirectory="${doc.tmp.dir}" outputDirectory="${doc.build.dir}" backend="xhtml5" templateDir="${doc.src.dir}/templates" preserveDirectories="true"> - <attribute key="basedir" value="${doc.tmp.dir}" /> + <asciidoctor:convert sourceDirectory="${doc.src.dir}" outputDirectory="${doc.build.dir}" backend="xhtml5" templateDir="${doc.src.dir}/templates" preserveDirectories="true"> + <attribute key="basedir" value="${doc.src.dir}" /> <attribute key="imagesdir" value="" /> </asciidoctor:convert> + <!-- the basedir seems to fuck up the path to the output directory, let's fix that manually > + <delete dir="${doc.build.dir}" /> + <mkdir dir="${doc.build.dir}" /> + <copy todir="${doc.build.dir}"> + <fileset dir="${doc.src.dir}/${doc.build.dir}" /> + </copy--> + <!-- copy static resources --> <copy todir="${doc.build.dir}"> <fileset dir="${doc.src.dir}" includes="images/**,style/**,samples/**,js/**,ivy.xsd" /> - <fileset dir="${doc.tmp.dir}" includes="tutorial/log/multi-project-general-publishall.txt" /> + <fileset dir="${doc.src.dir}" includes="tutorial/log/multi-project-general-publishall.txt" /> </copy> </target> http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/1760b262/doc/xooki2asciidoc/xooki2asciidoc.js ---------------------------------------------------------------------- diff --git a/doc/xooki2asciidoc/xooki2asciidoc.js b/doc/xooki2asciidoc/xooki2asciidoc.js index d9ed69a..27fb62f 100644 --- a/doc/xooki2asciidoc/xooki2asciidoc.js +++ b/doc/xooki2asciidoc/xooki2asciidoc.js @@ -353,7 +353,8 @@ xooki.string = { // empty match are not allowed return null; } - + + print('matched!\n'); //print('matched !' + str.substring(openResult.begin, closeResult.end) + '\n'); var children = []; @@ -805,7 +806,7 @@ xooki.input = { from = 0; while (codeSection != null) { processedSection = "\n[source]\n----\n" - + input.substring(codeSection.innerStart, codeSection.innerEnd) + + input.substring(codeSection.innerStart, codeSection.innerEnd).replace(/</g, "LOWER_THAN_IN_CODE").replace(/>/g, "GREATER_THAN_IN_CODE") + "\n----\n\n"; input = input.substring(0, codeSection.outerStart) + processedSection @@ -895,6 +896,29 @@ xooki.input = { s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"tip"[^>]*>'), new RegExp('</div>'), from); } + print('search postit\n') + s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"postit"[^>]*>'), new RegExp('</div>')); + from = 0; + while (s != null) { + processedSection = "\n[NOTE]\n====\n" + input.substring(s.innerStart, s.innerEnd) + "\n====\n"; + input = input.substring(0, s.outerStart) + processedSection + input.substring(s.outerEnd); + from = s.outerStart + processedSection.length; + s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"tip"[^>]*>'), new RegExp('</div>'), from); + } + + print('search shell\n') + s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"shell"[^>]*>'), new RegExp('</div>')); + from = 0; + while (s != null) { + processedSection = "\n[source,shell]\n----\n" + + input.substring(s.innerStart, s.innerEnd).replace(/<pre>/g, "").replace(/<\/pre>/g, "") + + "\n----\n\n"; + print("processedSection='" + processedSection + "'") + input = input.substring(0, s.outerStart) + processedSection + input.substring(s.outerEnd); + from = s.outerStart + processedSection.length; + s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"shell"[^>]*>'), new RegExp('</div>'), from); + } + print('search step\n') s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"step"[^>]*>'), new RegExp('</div>')); from = 0; @@ -905,26 +929,27 @@ xooki.input = { s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"step"[^>]*>'), new RegExp('</div>'), from); } - print('search shell\n') - s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"shell"[^>]*>'), new RegExp('</div>')); + print('search ivy-file\n') + s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"ivy-file"[^>]*>'), new RegExp('</div>')); from = 0; while (s != null) { processedSection = input.substring(s.innerStart, s.innerEnd); input = input.substring(0, s.outerStart) + processedSection + input.substring(s.outerEnd); from = s.outerStart + processedSection.length; - s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"shell"[^>]*>'), new RegExp('</div>'), from); + s = xooki.string.findSection(input, new RegExp('<div\\s*class\\s*=\\s*"ivy-file"[^>]*>'), new RegExp('</div>'), from); } print('search img\n') - s = xooki.string.find(input, new RegExp('<img\\s*src\\s*=\\s*\\"([^\\"]*)\\"\\s*/>')); + s = xooki.string.find(input, new RegExp('<img\\s*(.*)\\s*/>')); from = 0; while (s != null) { - processedSection = " image:" + s.matcher[1] + "[]" + imgSrc = s.matcher[1].replace(new RegExp('^.*src\\s*=\\s*\\"([^\\"]*)\\".*$'), "$1") + processedSection = "image::" + imgSrc + "[]" input = input.substring(0, s.begin) + processedSection + input.substring(s.end); from = s.begin + processedSection.length; - s = xooki.string.find(input, new RegExp('<img\\s*src\\s*=\\s*\\"([^\\"]*)\\"\\s*/>'), from); + s = xooki.string.find(input, new RegExp('<img\\s*(.*)\\s*/>'), from); } print('search img title\n') @@ -1208,6 +1233,15 @@ xooki.input = { if (!first) { start = lastEnd; betweenliContent = input.substring(lastEnd, sli.outerStart); + iSpace = 0 + while (iSpace < betweenliContent.length && (betweenliContent.charAt(iSpace) == ' ' || betweenliContent.charAt(iSpace) == '\t')) { + iSpace++; + } + if (betweenliContent.charAt(iSpace) == "\n") { + betweenliContent = " +" + betweenliContent; + } else { + betweenliContent = " +\n" + betweenliContent; + } } processedSection = betweenliContent + "\n" + innerindent + input.substring(sli.innerStart, sli.innerEnd).replace(/\\s/, ' '); input = input.substring(0, start) @@ -1223,7 +1257,19 @@ xooki.input = { print(input.substring(from, from + 100)); return input; } - input = input.substring(0, s.begin) + input.substring(s.end); + + afterLastContent = input.substring(lastEnd, s.begin); + iSpace = 0 + while (iSpace < afterLastContent.length && (afterLastContent.charAt(iSpace) == ' ' || afterLastContent.charAt(iSpace) == '\t')) { + iSpace++; + } + if (afterLastContent.charAt(iSpace) == "\n") { + afterLastContent = " +" + afterLastContent; + } else { + afterLastContent = " +\n" + afterLastContent; + } + + input = input.substring(0, lastEnd) + afterLastContent + input.substring(s.end); from = s.begin; return htmllisttag(input, from, indent); } @@ -1312,6 +1358,12 @@ xooki.input = { print("found=" + (s != null) + "\n") } + input = input.replace(/LOWER_THAN_IN_CODE/g, "<").replace(/GREATER_THAN_IN_CODE/g, ">") + + input = input.replace(/include::..\/..\/tutorial/g, "include::asciidoc/tutorial") + input = input.replace(/include::..\/tutorial/g, "include::asciidoc/tutorial") + input = input.replace(/include::tutorial/g, "include::asciidoc/tutorial") + return input; }, },
