Skip to content

Commit

Permalink
Merge pull request #131 from metanorma/issue/130
Browse files Browse the repository at this point in the history
output-documents and output-schemas added for documents mode, #130
  • Loading branch information
Intelligent2013 authored Dec 22, 2023
2 parents 383a919 + ac53bf2 commit 2c29440
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 30 deletions.
56 changes: 28 additions & 28 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ You will need the `maven` build tool and `make`.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <XML-FileName>
java -Xss5m -jar target/stepmod2mn-1.33.jar <XML-FileName>
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar data/resource_docs/draughting_elements/resource.xml
java -Xss5m -jar target/stepmod2mn-1.33.jar data/resource_docs/draughting_elements/resource.xml
----

NOTE: resulted AsciiDoc found in data/resource_docs/draughting_elements/document.adoc
Expand All @@ -34,28 +34,28 @@ NOTE: resulted AsciiDoc found in data/resource_docs/draughting_elements/document

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <XML-FileName> [--output <AsciiDoc-FileName>]
java -Xss5m -jar target/stepmod2mn-1.33.jar <XML-FileName> [--output <AsciiDoc-FileName>]
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar data/resource_docs/draughting_elements/resource.xml --output result_dir/draughting_elements/document.adoc
java -Xss5m -jar target/stepmod2mn-1.33.jar data/resource_docs/draughting_elements/resource.xml --output result_dir/draughting_elements/document.adoc
----

=== Convert all resource.xml and module.xml in the specified folder and sub-folders into the Metanorma AsciiDoc format:

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Input-folder>
java -Xss5m -jar target/stepmod2mn-1.33.jar <Input-folder>
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar data/
java -Xss5m -jar target/stepmod2mn-1.33.jar data/
----

NOTE: the result AsciiDocs will be saved in the folder with the source resource.xml and module.xml files.
Expand All @@ -65,57 +65,57 @@ NOTE: the result AsciiDocs will be saved in the folder with the source resource.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Input-folder> [--output <Output-folder>]
java -Xss5m -jar target/stepmod2mn-1.33.jar <Input-folder> [--output <Output-folder>]
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar data/ --output documents/
java -Xss5m -jar target/stepmod2mn-1.33.jar data/ --output documents/
----


=== Convert all resource.xml and module.xml in the specified folder and sub-folders into the Metanorma AsciiDoc format, except specified documents:

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Input-folder> [--exclude <documents list>]
java -Xss5m -jar target/stepmod2mn-1.33.jar <Input-folder> [--exclude <documents list>]
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar data/ --exclude "machining_features"
java -Xss5m -jar target/stepmod2mn-1.33.jar data/ --exclude "machining_features"
----

=== Convert only specified documents resource.xml and module.xml in the specified folder and sub-folders into the Metanorma AsciiDoc format:

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Input-folder> [--include-only <documents list>]
java -Xss5m -jar target/stepmod2mn-1.33.jar <Input-folder> [--include-only <documents list>]
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar data/ --include-only "fundamentals_of_product_description_and_support kinematics"
java -Xss5m -jar target/stepmod2mn-1.33.jar data/ --include-only "fundamentals_of_product_description_and_support kinematics"
----

=== Generate Metanorma collection files (metanorma.yml and collection.yml) for the documents specified in the publication index xml file in the tags 'resource_docs' and 'modules':

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Publication-Index-XML-FileName>
java -Xss5m -jar target/stepmod2mn-1.33.jar <Publication-Index-XML-FileName>
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar publication/part1000/CR_PMI_5/publication_index.xml
java -Xss5m -jar target/stepmod2mn-1.33.jar publication/part1000/CR_PMI_5/publication_index.xml
----

NOTE: the Metanorma collection files .yml will be saved in the 3 level up folder (usually, source repository's root folder).
Expand All @@ -125,14 +125,14 @@ and save them into the output folder:

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Publication-Index-XML-FileName> [--output <Output-folder>]
java -Xss5m -jar target/stepmod2mn-1.33.jar <Publication-Index-XML-FileName> [--output <Output-folder>]
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar iso-10303-srl/iso-10303-stepmod-wg12/publication/part1000/CR_PMI_5/publication_index.xml --output iso-10303-srl/
java -Xss5m -jar target/stepmod2mn-1.33.jar iso-10303-srl/iso-10303-stepmod-wg12/publication/part1000/CR_PMI_5/publication_index.xml --output iso-10303-srl/
----

NOTE: the output folder should contains the folder with the generated .adoc (usually, 'documents'). You can specify this folder obviously by the parameter '--input-documents':
Expand All @@ -141,7 +141,7 @@ e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar iso-10303-srl/iso-10303-stepmod-wg12/publication/part1000/CR_PMI_5/publication_index.xml --output iso-10303-srl/CR_PMI_5 --input-documents iso-10303-srl/documents
java -Xss5m -jar target/stepmod2mn-1.33.jar iso-10303-srl/iso-10303-stepmod-wg12/publication/part1000/CR_PMI_5/publication_index.xml --output iso-10303-srl/CR_PMI_5 --input-documents iso-10303-srl/documents
----

NOTE: the Metanorma collection files (.yml) will be saved in the folder 'iso-10303-srl/CR_PMI_5' and the references point to the documents in the folder iso-10303-srl/documents.
Expand All @@ -151,14 +151,14 @@ NOTE: the Metanorma collection files (.yml) will be saved in the folder 'iso-103

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar <Publication-Index-XML-FileName> [--type <resource_docs or modules>]
java -Xss5m -jar target/stepmod2mn-1.33.jar <Publication-Index-XML-FileName> [--type <resource_docs or modules>]
----

e.g.

[source,sh]
----
java -Xss5m -jar target/stepmod2mn-1.32.jar publication/part1000/CR_PMI_5/publication_index.xml --type resource_docs
java -Xss5m -jar target/stepmod2mn-1.33.jar publication/part1000/CR_PMI_5/publication_index.xml --type resource_docs
----

NOTE: the Metanorma collection file 'metanorma.yml' will be saved in the 3 level up folder (usually, source repository's root folder).
Expand All @@ -168,42 +168,42 @@ NOTE: the Metanorma collection file 'metanorma.yml' will be saved in the 3 level

[source,sh]
----
java -jar target/stepmod2mn-1.32.jar <start folder to process xml maps files> --svg
java -jar target/stepmod2mn-1.33.jar <start folder to process xml maps files> --svg
----

e.g.

[source,sh]
----
java -jar target/stepmod2mn-1.32.jar data/resources --svg
java -jar target/stepmod2mn-1.33.jar data/resources --svg
----

=== Generate SVG images for the XML in the specified folder and sub-folders, and save them in the output folder:

[source,sh]
----
java -jar target/stepmod2mn-1.32.jar <start folder to process xml maps files> --svg [--output <Output-folder>]
java -jar target/stepmod2mn-1.33.jar <start folder to process xml maps files> --svg [--output <Output-folder>]
----

e.g.

[source,sh]
----
java -jar target/stepmod2mn-1.32.jar data/resources --svg --output schemas/
java -jar target/stepmod2mn-1.33.jar data/resources --svg --output schemas/
----

=== Generate SVG image for Express Imagemap XML and Image:

[source,sh]
----
java -jar stepmod2mn-1.32.jar --xml <Express Imagemap XML file path> --image <Image file name> [--svg <resulted SVG map file or folder>]
java -jar stepmod2mn-1.33.jar --xml <Express Imagemap XML file path> --image <Image file name> [--svg <resulted SVG map file or folder>]
----

e.g.

[source,sh]
----
java -jar stepmod2mn-1.32.jar --xml data\resource_docs\fundamentals_of_product_description_and_support\schema_diagexpg1.xml --image schema_diagexpg1.gif --svg schema_diagexpg1.svg
java -jar stepmod2mn-1.33.jar --xml data\resource_docs\fundamentals_of_product_description_and_support\schema_diagexpg1.xml --image schema_diagexpg1.gif --svg schema_diagexpg1.svg
----


Expand All @@ -223,7 +223,7 @@ Update version in `pom.xml`, e.g.:
----
<groupId>org.metanorma</groupId>
<artifactId>stepmod2mn</artifactId>
<version>1.32</version>
<version>1.33</version>
<name>STEPmod XML to Metanorma AsciiDoc converter</name>
----

Expand All @@ -234,8 +234,8 @@ Tag the same version in Git:

[source,xml]
----
git tag v1.32
git push origin v1.32
git tag v1.33
git push origin v1.33
----

Then the corresponding GitHub release will be automatically created at:
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.metanorma</groupId>
<artifactId>stepmod2mn</artifactId>
<version>1.32</version>
<version>1.33</version>
<name>STEPmod XML to Metanorma AsciiDoc converter</name>
<packaging>jar</packaging>
<url>https://www.metanorma.org</url>
Expand Down
31 changes: 30 additions & 1 deletion src/main/java/org/metanorma/stepmod2mn.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
*/
public class stepmod2mn {

static final String CMD = "java -Xss5m -jar stepmod2mn.jar <resource or module or publication index xml file> [options -o, -v, -b <path> -t <type> -e <documents list> -inc <documents list>]";
static final String CMD = "java -Xss5m -jar stepmod2mn.jar <resource or module or publication index xml file> [options -o, -od, -os -v, -b <path> -t <type> -e <documents list> -inc <documents list>]";
static final String CMD_SVGscope1 = "java -jar stepmod2mn.jar <start folder to process xml maps files> --svg";
static final String CMD_SVGscope2 = "java -jar stepmod2mn.jar <start folder to process xml maps files> --output-documents --output-schemas --svg";
static final String CMD_SVG = "java -jar stepmod2mn.jar --xml <Express Imagemap XML file path> --image <Image file name> [--svg <resulted SVG map file or folder>] [-v]";
Expand Down Expand Up @@ -148,6 +148,18 @@ public class stepmod2mn {
.hasArg()
.required(false)
.build());
addOption(Option.builder("od")
.longOpt("output-documents")
.desc("output directory for documents")
.hasArg()
.required(false)
.build());
addOption(Option.builder("os")
.longOpt("output-schemas")
.desc("output directory for schemas")
.hasArg()
.required(false)
.build());
addOption(Option.builder("b")
.longOpt("boilerplatepath")
.desc("path to boilerplate text storage folder")
Expand Down Expand Up @@ -370,6 +382,11 @@ private static void runoptions(String[] args) throws ParseException {
String outputPathSchemas = "";
if (cmd.hasOption("output")) {
argOutputPath = cmd.getOptionValue("output");
}
if (cmd.hasOption("output-documents")) {
argOutputPath = cmd.getOptionValue("output-documents");
}
if (!argOutputPath.isEmpty()) {
String outPath_normalized = argOutputPath;
if (outPath_normalized.startsWith("./") || outPath_normalized.startsWith(".\\")) {
outPath_normalized = outPath_normalized.substring(2);
Expand All @@ -381,6 +398,18 @@ private static void runoptions(String[] args) throws ParseException {
Path schemasPath = Paths.get(new File(argOutputPath).getParent(), "schemas");
// create 'schemas' folder at the same level as output folder (for instance 'documents')
outputPathSchemas = schemasPath.toString();
}

if (cmd.hasOption("output-schemas")) {
outputPathSchemas = cmd.getOptionValue("output-schemas");
String outputPathSchemas_normalized = outputPathSchemas;
if (outputPathSchemas_normalized.startsWith("./") || outputPathSchemas_normalized.startsWith(".\\")) {
outputPathSchemas_normalized = outputPathSchemas_normalized.substring(2);
}
File fXMLout = new File(outputPathSchemas_normalized);
outputPathSchemas = fXMLout.getAbsoluteFile().toString();
}
if (!outputPathSchemas.isEmpty()) {
new File(outputPathSchemas).mkdirs();
}

Expand Down

0 comments on commit 2c29440

Please sign in to comment.