Date   

Re: profile problems

Radu Coravu
 

Hi,

Adding below some links to past webinars about using CSS to style the WebHelp Responsive and PDF outputs obtained from DITA XML content in Oxygen.

Creating Custom Publishing Templates for WebHelp and PDF Output:

https://www.oxygenxml.com/events/2018/webinar_creating_custom_publishing_templates_for_webhelp_and_pdf_output.html

Introducing the Oxygen Publishing Engine for DITA:

https://www.oxygenxml.com/events/2020/webinar_introducing_the_oxygen_publishing_engine_for_dita.html

Fine Tune Your DITA PDF Output Using CSS:

https://www.oxygenxml.com/events/2020/webinar_fine_tune_your_dita_pdf_outputs_using_oxygen_publishing_engine.html

I hope this helps.

Regards,

Radu

Radu Coravu
Oxygen XML Editor
On 1/1/21 18:02, Kristen James Eberlein wrote:

Happy New Year; I'm glad that I was able to start 2021 by being helpful!

Regarding the <keyword> element ... The element certainly can contain PCDATA (text), but in your scenario, where you are using key referencing, that is not necessary. If you were using @conref or @conkeyref, then the referenced element would contain content, for example, <keyword id="accountType">checking</keyword>.

Oxygen is going to create an element with both a start and end tag, if it thinks that you will insert content into the element. The following markup has identical meanings:

<keyword keyref="accountType"/>
<keyword keyref="accountType"></keyword>

Regarding DITA training ... Comtech Services Inc has a course on "Advanced Reuse Strategies". I think LearningDITA also has a course on reuse.

Regarding formatting DITA-OT output to match a company style guide ... You can specify a CSS file as a parameter to an Oxygen transformation scenario. To handle making changes to PDF generated using XSL-FO, you'll need to create a custom DITA-OT plug-in. For this I recommend the following documentation:

  • Eliot Kimber, DITA for Practitioners Volume 1 (useful for information about creating DITA-OT plug-ins)
  • Leigh White, DITA for Print (useful for information about creating DITA-OT plug-ins for PDF)
  • DITA-OT documentation: https://www.dita-ot.org/dev/

Oxygen has ships a PDF transformation that uses CSS, BTW.

Very best of luck with learning DITA and getting a job.

Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
OASIS Distinguished Contributor
Principal consultant, Eberlein Consulting LLC
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)


On 1/1/2021 10:15 AM, Aaron Mehl via groups.io wrote:
Wow!
Thanks,
I  see that I  need to rethink what I want to accomplish.
But I see now how profiling works.

By formal Dita training, what do you mean? learningdita? OR a paid course?
I am for the most part  doing OK with the basics, but the advanced issues such as profiling and linking are causing me problems. I couldn't find well written concise explanations for when I can, or should do profiling. The tutorials and videos I used, listed the different options and only showed how to do them. I need the rationale for why and also when. Which you also touched on.

Your analysis of what I wanted to accomplish was right on. I understood that I could write one topic and generate two.

One thing I didn't get till I saw it in your example, the keyword tag is one single tag. Oxygen made it a double tag, so I instinctively put text between the opening and closing tag. Must I change this or will it be changed during publishing?

If you have training suggestions I would appreciate them.
I also need to know how to make the output in Oxygen conform to a style guide.
I guess that involves CSS or XSL-Fo, in docbook there was an easy way to do modify the output for html and pdf. 
I think because I am using a gui program I am missing something here.
In docbook I just opened up the xsl or css and made my changes there.

I am currently unemployed and a huge amount of people told me that having Dita knowledge and practical application will help me get employed.

Thanks so much for answering me.
Next week I will apply what you taught me.
:)
Aaron


 

On Friday, January 1, 2021, 07:11:21 AM EST, Kristen James Eberlein <kris@...> wrote:


Hi, Aaron.

If I understand correctly, your requirements are as follows:

Requirements

You want to author a single DITA task topic that you can use to generate two versions of output:

  • Creating a checking account
  • Creating a savings account

The content in the task topic has the following variations:

  • Type of account (checking versus savings)
  • Wording in the user interface, leading to different screen captures

DITA mechanisms for handling content reuse

DITA has multiple mechanisms for handling content reuse:

  • Content referencing (@conref)
  • Conditional processing using a DITAVAL file
  • Key referencing (@keyref)
  • Content key referencing (@conkeyref)
  • Key scopes
  • Branch filtering (using the DITAVALref domain)

Branch filtering and key scopes were designed to address the use case of using DITA topics multiple times within a single publication, with different content in the generated output of the topics. (You don't mention this, but I suspect this is what you want to do.)

Information architecture choices

Getting ROI from DITA always requires sound information design and architecture. Here, I would ask the following questions:

  • Do you really need two generated topics? Could this be handled with a single topic ("Creating an account") which could cover both scenarios?
  • Do you need a DITA topic for each scenario? This might be the case if you have elaborate metadata requirements or other business requirements.
  • Will you be localizing (translating) the DITA source? Remember that inflection in non-English languages can cause differences in articles

For the purpose of this exercise, we will assume that you want to author a single DITA topic that can be used to generate two versions of output (and you are not worried about localization). For this goal, you could use either key referencing or conditional processing; I'll show how this can be done using key references.

Reuse using key referencing

Author the content using the following markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In a DITA map, create the following key definitions:

<keydef keys="accountType">
  <topicmeta>
    <linktext>checking</linktext>
  </topicmeta>
</keydef>

<keydef keys="creatingAccount" href="creatingCheckingAccount.png" format="png">
  <topicmeta>
    <linktext>Alternate text for the image goes here</linktext>
  </topicmeta>
</keydef>

Obviously, you'd need to modify the key definitions when you process to generate the "Creating a savings account" output.

Reuse using key references and key scopes

If you want both versions of the topics ("Creating a checking account" and "Creating a savings account" in the same publication, you'll need to use key scopes.

Author the content using the (same as above) markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In the DITA map where you create the publication navigation, you'll also define key scopes and specify the values for the key references:

      <!-- Generate output for "Creating a checking account" --> 
      <topicgroup keyscope="checkingAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>checking</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingCheckingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a checking account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>

      <!-- Generate output for "Creating a savings account" --> 
      <topicgroup keyscope="savingsAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>savings</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingSavingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a savings account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>


I hope that this helps. I'd suggest that getting some formal DITA training might be of benefit.

Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
OASIS Distinguished Contributor
Principal consultant, Eberlein Consulting LLC
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)


On 12/27/2020 5:26 PM, Aaron Mehl via groups.io wrote:
Hi all, 
I am new to the group, and Dita.
I am documenting KMyMoney and have two similar tasks.
One is creating a checking account and the other is creating a savings account.
The text is nearly the same. I need to make the words checking and savings conditional.
I need a way to also make the screen captures conditional.
That said, and I hope done, I need to know how to generate the two task when publishing/transforming the xml to xhtml and pdf.

I have seen docs provided by my editor (Oxygen) and some videos, but I still can't seem to make heads or tails out of profiling.
This is a draft the Dita task file.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="creatingacheckingaccount">
    <title>Creating a <keyword>Checking</keyword> Account</title>
    <shortdesc>A <keyword>Checking</keyword> account in KMyMoney contains the same information as the same account in
        your bank. </shortdesc>
    <taskbody>
        <context>You just created an institution.<p>To create a <keyword>checking</keyword> account in the
                instituion:</p></context>
        <steps>
            <step>
                <cmd>Choose <uicontrol>Accounts</uicontrol> in the <uicontrol>View
                        Selector</uicontrol>pane</cmd>
                <stepresult>The institution you created is listed in the <uicontrol>Account
                        View</uicontrol>pane.</stepresult>
            </step>
            <step>
                <cmd>Click on the <uicontrol>New Account</uicontrol>icon on the
                        <uicontrol>toolbar</uicontrol>.</cmd>
                <stepresult>The <uicontrol>New Account </uicontrol>wizard appears.</stepresult>
            </step>
            <step>
                <cmd>Choose your instituiton from the dropdown list.</cmd>
            </step>
            <step>
                <cmd>Enter your account number.</cmd>
            </step>
            <step>
                <cmd>Click <uicontrol>Next</uicontrol>.</cmd>
                <stepresult>The Account window appears.</stepresult>
            </step>
        </steps>
    </taskbody>
</task>


Thanks
Aaron


  


Re: AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

bvigneshwaran21@...
 

Dear Leigh,
Thank you so much for taking time to analyze my results and providing your valuable insights. I shall try as per your suggestion.


Re: AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

Leigh White
 

Without seeing the whole plugin, it's difficult to say exactly where to look. You say that you're following the instructions in DITA For Print 1.8 (thank you, by the way) but you seem to be using the 2.0 version of the DITA OT. This could be one issue. There are significant differences between the 1.8 version of the org.dita.pdf2 plugin and the 2.x version, so be careful there.

Both the 1.8.5 and 2.5.4 versions of the PDF plugin transform booktitle alt into an fo:block by default (in front-matter.xsl):

<xsl:template match="*[contains(@class, ' bookmap/booktitlealt ')]" priority="2">
    <fo:block xsl:use-attribute-sets="__frontmatter__subtitle">
        <xsl:apply-templates/>
    </fo:block>
</xsl:template>

It looks like you changed that fo:block to fo:inline, perhaps to keep it inline with the main title? If so, you'll need to go about it another way. You can change this template to fo:inline, but then you'll need to apply that template within the mainbooktitle fo:block (assuming that's what you're doing) so that the booktitlealt becomes part of the mainbooktitle block.

For troubleshooting, when you just don't have a clue, there is always the sledgehammer method, where you comment out everything you think *could* be the problem and uncomment each thing one by one until the problem reoccurs. Be careful doing this because sometimes you can't comment out just one thing because other things depend on it, so you might have to comment out a group of things together. But in your case, I would bet the problem is in front-matter.xsl.

Good luck,
Leigh


Re: Using DITA with contextual help #CCMS #mixed-content

john.kirkilis@...
 

Hi Chris,

What is the subset of DITA elements you allow to be in a piece of such micro-content? Bold, italic, lists, images, or just straight text? We also have a requirement to generate JSON output that can be consumed by a web app and rendered by the app itself, using either Metadata seqrch or a brute force unique id mapping for each item in the app UI for which micro-content should be shown.

John


Re: AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

bvigneshwaran21@...
 

Dear All,

Thank you so much for your expert suggestions. With your help I found the tag causing the problem, which I have posted below. When I deleted this element from the bookmap, the output is generated. However, I am trying to understand why this element is causing an issue in my plugin.
<booktitlealt>Tasks and what they can do</booktitlealt>

The following is an excerpt from topic.fo file generated by org.dita.pdf2 plugin
<fo:block-container text-align="center"><fo:block font-size="22pt" font-weight="bold" line-height="140%" space-before="80mm" space-before.conditionality="retain" line-height-shift-adjustment="disregard-shifts" font-family="Helvetica, Arial Unicode MS">
<fo:block><fo:inline border-left-width="0pt" border-right-width="0pt">Retro Tools</fo:inline></fo:block>
<fo:block><fo:inline border-left-width="0pt" border-right-width="0pt">Product tasks</fo:inline></fo:block></fo:block>
<fo:block font-size="18pt" font-weight="bold" line-height="140%" line-height-shift-adjustment="disregard-shifts" font-family="Helvetica, Arial Unicode MS">Tasks and what they can do</fo:block>
<fo:block font-size="11pt" font-weight="bold" line-height="normal" space-before="36pt" line-height-shift-adjustment="disregard-shifts" font-family="Helvetica, Arial Unicode MS"/></fo:block-container>

The following is an excerpt of topic.fo file generated by my plugin:
<fo:block-container text-align="center"><fo:block font-size="22pt" font-weight="bold" line-height="140%" space-before="80mm" space-before.conditionality="retain" line-height-shift-adjustment="disregard-shifts" font-family="Cambria">
<fo:block><fo:inline border-left-width="0pt" border-right-width="0pt">Retro Tools</fo:inline></fo:block>
<fo:block><fo:inline border-left-width="0pt" border-right-width="0pt">Product tasks</fo:inline></fo:block></fo:block>
<fo:inline border-left-width="0pt" border-right-width="0pt">Tasks and what they can do</fo:inline>
<fo:block font-size="11pt" font-weight="bold" line-height="normal" space-before="36pt" line-height-shift-adjustment="disregard-shifts" font-family="Trebuchet MS, Helvetica, Arial Unicode MS"/></fo:block-container>

When i compare both, I see that the <fo:block> element is not wrapped around the text in my plugin.
Now my question is how do I debug (where to see) and troubleshoot this issue. I tried looking in to front-matter.attr.xsl and front-matter.xsl. But I am unable to find the cause. Could you please suggest as to where I need to look and what i need to look for. There are certain xsl files attached for your kind reference. Your suggestions are much appreciated and will aid me in my learning.

Thank you.


Re: AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

Toshihiko Makita
 

You are generating fo:inline as the child of fo:block-container in the following portion of topic.fo.

      <fo:block-container text-align="center">
        <fo:block font-size="22pt" font-weight="bold" line-height="140%" space-before="80mm"
          space-before.conditionality="retain" line-height-shift-adjustment="disregard-shifts"
          font-family="Cambria">
          <fo:block>
            <fo:inline border-left-width="0pt" border-right-width="0pt">Retro Tools</fo:inline>
          </fo:block>
          <fo:block>
            <fo:inline border-left-width="0pt" border-right-width="0pt">Product tasks</fo:inline>
          </fo:block>
        </fo:block>
        <fo:inline border-left-width="0pt" border-right-width="0pt">Tasks and what they can
          do</fo:inline>
        <fo:block font-size="11pt" font-weight="bold" line-height="normal" space-before="36pt"
          line-height-shift-adjustment="disregard-shifts"
          font-family="Trebuchet MS, Helvetica, Arial Unicode MS"/>
      </fo:block-container>

The content model of fo:block-container is "(%block)+". You should not fo:inline as the child of fo:block-container.

https://www.w3.org/TR/xsl11/#fo_block-container

If generating fo:block-container is the right coding, change generating fo:inline to generate fo:block instead.

Hope this helps.

Regards,
-- 
/*----------------------------------------------------------------------- 
 Toshihiko Makita
 Development Group. Antenna House, Inc. Ina Branch
 Web site:
 http://www.antenna.co.jp/
 http://www.antennahouse.com/
 ------------------------------------------------------------------------*/ 


 


Re: AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

Nicholas Mucks
 

We had a similar issue in our DITA-OT 2.3.3 PDF customization plugin. It related to the template for minitoc on chapter pages not having a correct parent in some circumstances. 

I’d perform a global search for “fo:inline” or “fo:block-container” in your plugin to make sure they’re all correct. You might not see a syntax error if you’re applying the inline block in a different template than the block container. You probably just need a block element in between them. 

Take care,
- Nick

Sent from mobile

On Jan 1, 2021, at 7:12 AM, Radu Coravu <radu_coravu@...> wrote:



Hi,

I see that the XSL-FO file contains an fo:inline element inside an fo:block-container element:

<fo:block-container text-align="center">...<fo:inline border-left-width="0pt" border-right-width="0pt">Tasks and what they can do</fo:inline>....</fo:block-container>

It's hard to tell what the problem is without seeing your custom plugin but maybe one of your XSLT customizations which overrides the book title generation outputs that inline element instead of wrapping it in an fo:block element.


Regards,

Radu

Radu Coravu
Oxygen XML Editor
On 1/1/21 14:29, bvigneshwaran21@... wrote:
Dear All,

  • I have created a plugin by referring to the book (Dita for Print v1.8). I had installed Dita v2.0 Full and Easy Install Version.
  • I did not face any issues in customizing the plugin and generating PDF for normal maps.
  • However, when I try generating output for bookmap, I get an error "AntTask: Error Rendering Fo File, fo:inline is not a valid child of fo:block container." All my attempts to find the cause of the error have been futile.
Infact when I tried generating pdf for bookmap using the default pdf plugin (org.dita.pdf2) the PDF is generated. But only in the case of the customized plugin this issue occurs.
Could anyone please help me understand my mistake. Please help me. I am unable to proceed further with my learning because of this. I have attached two files:
  1. Error message screenshot
  2. Topic.fo file
If any further information is required, please let me know. 








Re: profile problems

Kristen James Eberlein
 

Happy New Year; I'm glad that I was able to start 2021 by being helpful!

Regarding the <keyword> element ... The element certainly can contain PCDATA (text), but in your scenario, where you are using key referencing, that is not necessary. If you were using @conref or @conkeyref, then the referenced element would contain content, for example, <keyword id="accountType">checking</keyword>.

Oxygen is going to create an element with both a start and end tag, if it thinks that you will insert content into the element. The following markup has identical meanings:

<keyword keyref="accountType"/>
<keyword keyref="accountType"></keyword>

Regarding DITA training ... Comtech Services Inc has a course on "Advanced Reuse Strategies". I think LearningDITA also has a course on reuse.

Regarding formatting DITA-OT output to match a company style guide ... You can specify a CSS file as a parameter to an Oxygen transformation scenario. To handle making changes to PDF generated using XSL-FO, you'll need to create a custom DITA-OT plug-in. For this I recommend the following documentation:

  • Eliot Kimber, DITA for Practitioners Volume 1 (useful for information about creating DITA-OT plug-ins)
  • Leigh White, DITA for Print (useful for information about creating DITA-OT plug-ins for PDF)
  • DITA-OT documentation: https://www.dita-ot.org/dev/

Oxygen has ships a PDF transformation that uses CSS, BTW.

Very best of luck with learning DITA and getting a job.

Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
OASIS Distinguished Contributor
Principal consultant, Eberlein Consulting LLC
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)


On 1/1/2021 10:15 AM, Aaron Mehl via groups.io wrote:
Wow!
Thanks,
I  see that I  need to rethink what I want to accomplish.
But I see now how profiling works.

By formal Dita training, what do you mean? learningdita? OR a paid course?
I am for the most part  doing OK with the basics, but the advanced issues such as profiling and linking are causing me problems. I couldn't find well written concise explanations for when I can, or should do profiling. The tutorials and videos I used, listed the different options and only showed how to do them. I need the rationale for why and also when. Which you also touched on.

Your analysis of what I wanted to accomplish was right on. I understood that I could write one topic and generate two.

One thing I didn't get till I saw it in your example, the keyword tag is one single tag. Oxygen made it a double tag, so I instinctively put text between the opening and closing tag. Must I change this or will it be changed during publishing?

If you have training suggestions I would appreciate them.
I also need to know how to make the output in Oxygen conform to a style guide.
I guess that involves CSS or XSL-Fo, in docbook there was an easy way to do modify the output for html and pdf. 
I think because I am using a gui program I am missing something here.
In docbook I just opened up the xsl or css and made my changes there.

I am currently unemployed and a huge amount of people told me that having Dita knowledge and practical application will help me get employed.

Thanks so much for answering me.
Next week I will apply what you taught me.
:)
Aaron


 

On Friday, January 1, 2021, 07:11:21 AM EST, Kristen James Eberlein <kris@...> wrote:


Hi, Aaron.

If I understand correctly, your requirements are as follows:

Requirements

You want to author a single DITA task topic that you can use to generate two versions of output:

  • Creating a checking account
  • Creating a savings account

The content in the task topic has the following variations:

  • Type of account (checking versus savings)
  • Wording in the user interface, leading to different screen captures

DITA mechanisms for handling content reuse

DITA has multiple mechanisms for handling content reuse:

  • Content referencing (@conref)
  • Conditional processing using a DITAVAL file
  • Key referencing (@keyref)
  • Content key referencing (@conkeyref)
  • Key scopes
  • Branch filtering (using the DITAVALref domain)

Branch filtering and key scopes were designed to address the use case of using DITA topics multiple times within a single publication, with different content in the generated output of the topics. (You don't mention this, but I suspect this is what you want to do.)

Information architecture choices

Getting ROI from DITA always requires sound information design and architecture. Here, I would ask the following questions:

  • Do you really need two generated topics? Could this be handled with a single topic ("Creating an account") which could cover both scenarios?
  • Do you need a DITA topic for each scenario? This might be the case if you have elaborate metadata requirements or other business requirements.
  • Will you be localizing (translating) the DITA source? Remember that inflection in non-English languages can cause differences in articles

For the purpose of this exercise, we will assume that you want to author a single DITA topic that can be used to generate two versions of output (and you are not worried about localization). For this goal, you could use either key referencing or conditional processing; I'll show how this can be done using key references.

Reuse using key referencing

Author the content using the following markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In a DITA map, create the following key definitions:

<keydef keys="accountType">
  <topicmeta>
    <linktext>checking</linktext>
  </topicmeta>
</keydef>

<keydef keys="creatingAccount" href="creatingCheckingAccount.png" format="png">
  <topicmeta>
    <linktext>Alternate text for the image goes here</linktext>
  </topicmeta>
</keydef>

Obviously, you'd need to modify the key definitions when you process to generate the "Creating a savings account" output.

Reuse using key references and key scopes

If you want both versions of the topics ("Creating a checking account" and "Creating a savings account" in the same publication, you'll need to use key scopes.

Author the content using the (same as above) markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In the DITA map where you create the publication navigation, you'll also define key scopes and specify the values for the key references:

      <!-- Generate output for "Creating a checking account" --> 
      <topicgroup keyscope="checkingAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>checking</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingCheckingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a checking account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>

      <!-- Generate output for "Creating a savings account" --> 
      <topicgroup keyscope="savingsAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>savings</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingSavingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a savings account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>


I hope that this helps. I'd suggest that getting some formal DITA training might be of benefit.

Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
OASIS Distinguished Contributor
Principal consultant, Eberlein Consulting LLC
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)


On 12/27/2020 5:26 PM, Aaron Mehl via groups.io wrote:
Hi all, 
I am new to the group, and Dita.
I am documenting KMyMoney and have two similar tasks.
One is creating a checking account and the other is creating a savings account.
The text is nearly the same. I need to make the words checking and savings conditional.
I need a way to also make the screen captures conditional.
That said, and I hope done, I need to know how to generate the two task when publishing/transforming the xml to xhtml and pdf.

I have seen docs provided by my editor (Oxygen) and some videos, but I still can't seem to make heads or tails out of profiling.
This is a draft the Dita task file.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="creatingacheckingaccount">
    <title>Creating a <keyword>Checking</keyword> Account</title>
    <shortdesc>A <keyword>Checking</keyword> account in KMyMoney contains the same information as the same account in
        your bank. </shortdesc>
    <taskbody>
        <context>You just created an institution.<p>To create a <keyword>checking</keyword> account in the
                instituion:</p></context>
        <steps>
            <step>
                <cmd>Choose <uicontrol>Accounts</uicontrol> in the <uicontrol>View
                        Selector</uicontrol>pane</cmd>
                <stepresult>The institution you created is listed in the <uicontrol>Account
                        View</uicontrol>pane.</stepresult>
            </step>
            <step>
                <cmd>Click on the <uicontrol>New Account</uicontrol>icon on the
                        <uicontrol>toolbar</uicontrol>.</cmd>
                <stepresult>The <uicontrol>New Account </uicontrol>wizard appears.</stepresult>
            </step>
            <step>
                <cmd>Choose your instituiton from the dropdown list.</cmd>
            </step>
            <step>
                <cmd>Enter your account number.</cmd>
            </step>
            <step>
                <cmd>Click <uicontrol>Next</uicontrol>.</cmd>
                <stepresult>The Account window appears.</stepresult>
            </step>
        </steps>
    </taskbody>
</task>


Thanks
Aaron


Re: profile problems

Aaron Mehl
 

Wow!
Thanks,
I  see that I  need to rethink what I want to accomplish.
But I see now how profiling works.

By formal Dita training, what do you mean? learningdita? OR a paid course?
I am for the most part  doing OK with the basics, but the advanced issues such as profiling and linking are causing me problems. I couldn't find well written concise explanations for when I can, or should do profiling. The tutorials and videos I used, listed the different options and only showed how to do them. I need the rationale for why and also when. Which you also touched on.

Your analysis of what I wanted to accomplish was right on. I understood that I could write one topic and generate two.

One thing I didn't get till I saw it in your example, the keyword tag is one single tag. Oxygen made it a double tag, so I instinctively put text between the opening and closing tag. Must I change this or will it be changed during publishing?

If you have training suggestions I would appreciate them.
I also need to know how to make the output in Oxygen conform to a style guide.
I guess that involves CSS or XSL-Fo, in docbook there was an easy way to do modify the output for html and pdf. 
I think because I am using a gui program I am missing something here.
In docbook I just opened up the xsl or css and made my changes there.

I am currently unemployed and a huge amount of people told me that having Dita knowledge and practical application will help me get employed.

Thanks so much for answering me.
Next week I will apply what you taught me.
:)
Aaron


 

On Friday, January 1, 2021, 07:11:21 AM EST, Kristen James Eberlein <kris@...> wrote:


Hi, Aaron.

If I understand correctly, your requirements are as follows:

Requirements

You want to author a single DITA task topic that you can use to generate two versions of output:

  • Creating a checking account
  • Creating a savings account

The content in the task topic has the following variations:

  • Type of account (checking versus savings)
  • Wording in the user interface, leading to different screen captures

DITA mechanisms for handling content reuse

DITA has multiple mechanisms for handling content reuse:

  • Content referencing (@conref)
  • Conditional processing using a DITAVAL file
  • Key referencing (@keyref)
  • Content key referencing (@conkeyref)
  • Key scopes
  • Branch filtering (using the DITAVALref domain)

Branch filtering and key scopes were designed to address the use case of using DITA topics multiple times within a single publication, with different content in the generated output of the topics. (You don't mention this, but I suspect this is what you want to do.)

Information architecture choices

Getting ROI from DITA always requires sound information design and architecture. Here, I would ask the following questions:

  • Do you really need two generated topics? Could this be handled with a single topic ("Creating an account") which could cover both scenarios?
  • Do you need a DITA topic for each scenario? This might be the case if you have elaborate metadata requirements or other business requirements.
  • Will you be localizing (translating) the DITA source? Remember that inflection in non-English languages can cause differences in articles

For the purpose of this exercise, we will assume that you want to author a single DITA topic that can be used to generate two versions of output (and you are not worried about localization). For this goal, you could use either key referencing or conditional processing; I'll show how this can be done using key references.

Reuse using key referencing

Author the content using the following markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In a DITA map, create the following key definitions:

<keydef keys="accountType">
  <topicmeta>
    <linktext>checking</linktext>
  </topicmeta>
</keydef>

<keydef keys="creatingAccount" href="creatingCheckingAccount.png" format="png">
  <topicmeta>
    <linktext>Alternate text for the image goes here</linktext>
  </topicmeta>
</keydef>

Obviously, you'd need to modify the key definitions when you process to generate the "Creating a savings account" output.

Reuse using key references and key scopes

If you want both versions of the topics ("Creating a checking account" and "Creating a savings account" in the same publication, you'll need to use key scopes.

Author the content using the (same as above) markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In the DITA map where you create the publication navigation, you'll also define key scopes and specify the values for the key references:

      <!-- Generate output for "Creating a checking account" --> 
      <topicgroup keyscope="checkingAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>checking</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingCheckingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a checking account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>

      <!-- Generate output for "Creating a savings account" --> 
      <topicgroup keyscope="savingsAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>savings</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingSavingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a savings account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>


I hope that this helps. I'd suggest that getting some formal DITA training might be of benefit.

Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
OASIS Distinguished Contributor
Principal consultant, Eberlein Consulting LLC
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)


On 12/27/2020 5:26 PM, Aaron Mehl via groups.io wrote:
Hi all, 
I am new to the group, and Dita.
I am documenting KMyMoney and have two similar tasks.
One is creating a checking account and the other is creating a savings account.
The text is nearly the same. I need to make the words checking and savings conditional.
I need a way to also make the screen captures conditional.
That said, and I hope done, I need to know how to generate the two task when publishing/transforming the xml to xhtml and pdf.

I have seen docs provided by my editor (Oxygen) and some videos, but I still can't seem to make heads or tails out of profiling.
This is a draft the Dita task file.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="creatingacheckingaccount">
    <title>Creating a <keyword>Checking</keyword> Account</title>
    <shortdesc>A <keyword>Checking</keyword> account in KMyMoney contains the same information as the same account in
        your bank. </shortdesc>
    <taskbody>
        <context>You just created an institution.<p>To create a <keyword>checking</keyword> account in the
                instituion:</p></context>
        <steps>
            <step>
                <cmd>Choose <uicontrol>Accounts</uicontrol> in the <uicontrol>View
                        Selector</uicontrol>pane</cmd>
                <stepresult>The institution you created is listed in the <uicontrol>Account
                        View</uicontrol>pane.</stepresult>
            </step>
            <step>
                <cmd>Click on the <uicontrol>New Account</uicontrol>icon on the
                        <uicontrol>toolbar</uicontrol>.</cmd>
                <stepresult>The <uicontrol>New Account </uicontrol>wizard appears.</stepresult>
            </step>
            <step>
                <cmd>Choose your instituiton from the dropdown list.</cmd>
            </step>
            <step>
                <cmd>Enter your account number.</cmd>
            </step>
            <step>
                <cmd>Click <uicontrol>Next</uicontrol>.</cmd>
                <stepresult>The Account window appears.</stepresult>
            </step>
        </steps>
    </taskbody>
</task>


Thanks
Aaron


Re: AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

Radu Coravu
 

Hi,

I see that the XSL-FO file contains an fo:inline element inside an fo:block-container element:

<fo:block-container text-align="center">...<fo:inline border-left-width="0pt" border-right-width="0pt">Tasks and what they can do</fo:inline>....</fo:block-container>

It's hard to tell what the problem is without seeing your custom plugin but maybe one of your XSLT customizations which overrides the book title generation outputs that inline element instead of wrapping it in an fo:block element.


Regards,

Radu

Radu Coravu
Oxygen XML Editor
On 1/1/21 14:29, bvigneshwaran21@... wrote:
Dear All,

  • I have created a plugin by referring to the book (Dita for Print v1.8). I had installed Dita v2.0 Full and Easy Install Version.
  • I did not face any issues in customizing the plugin and generating PDF for normal maps.
  • However, when I try generating output for bookmap, I get an error "AntTask: Error Rendering Fo File, fo:inline is not a valid child of fo:block container." All my attempts to find the cause of the error have been futile.
Infact when I tried generating pdf for bookmap using the default pdf plugin (org.dita.pdf2) the PDF is generated. But only in the case of the customized plugin this issue occurs.
Could anyone please help me understand my mistake. Please help me. I am unable to proceed further with my learning because of this. I have attached two files:
  1. Error message screenshot
  2. Topic.fo file
If any further information is required, please let me know. 

  


AntTask: Error Rendering Fo File Error when Generating PDF for Bookmap #bookmap #PDF #DITA-OT

bvigneshwaran21@...
 

Dear All,

  • I have created a plugin by referring to the book (Dita for Print v1.8). I had installed Dita v2.0 Full and Easy Install Version.
  • I did not face any issues in customizing the plugin and generating PDF for normal maps.
  • However, when I try generating output for bookmap, I get an error "AntTask: Error Rendering Fo File, fo:inline is not a valid child of fo:block container." All my attempts to find the cause of the error have been futile.
Infact when I tried generating pdf for bookmap using the default pdf plugin (org.dita.pdf2) the PDF is generated. But only in the case of the customized plugin this issue occurs.
Could anyone please help me understand my mistake. Please help me. I am unable to proceed further with my learning because of this. I have attached two files:
  1. Error message screenshot
  2. Topic.fo file
If any further information is required, please let me know. 


Re: profile problems

Kristen James Eberlein
 

Hi, Aaron.

If I understand correctly, your requirements are as follows:

Requirements

You want to author a single DITA task topic that you can use to generate two versions of output:

  • Creating a checking account
  • Creating a savings account

The content in the task topic has the following variations:

  • Type of account (checking versus savings)
  • Wording in the user interface, leading to different screen captures

DITA mechanisms for handling content reuse

DITA has multiple mechanisms for handling content reuse:

  • Content referencing (@conref)
  • Conditional processing using a DITAVAL file
  • Key referencing (@keyref)
  • Content key referencing (@conkeyref)
  • Key scopes
  • Branch filtering (using the DITAVALref domain)

Branch filtering and key scopes were designed to address the use case of using DITA topics multiple times within a single publication, with different content in the generated output of the topics. (You don't mention this, but I suspect this is what you want to do.)

Information architecture choices

Getting ROI from DITA always requires sound information design and architecture. Here, I would ask the following questions:

  • Do you really need two generated topics? Could this be handled with a single topic ("Creating an account") which could cover both scenarios?
  • Do you need a DITA topic for each scenario? This might be the case if you have elaborate metadata requirements or other business requirements.
  • Will you be localizing (translating) the DITA source? Remember that inflection in non-English languages can cause differences in articles

For the purpose of this exercise, we will assume that you want to author a single DITA topic that can be used to generate two versions of output (and you are not worried about localization). For this goal, you could use either key referencing or conditional processing; I'll show how this can be done using key references.

Reuse using key referencing

Author the content using the following markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In a DITA map, create the following key definitions:

<keydef keys="accountType">
  <topicmeta>
    <linktext>checking</linktext>
  </topicmeta>
</keydef>

<keydef keys="creatingAccount" href="creatingCheckingAccount.png" format="png">
  <topicmeta>
    <linktext>Alternate text for the image goes here</linktext>
  </topicmeta>
</keydef>

Obviously, you'd need to modify the key definitions when you process to generate the "Creating a savings account" output.

Reuse using key references and key scopes

If you want both versions of the topics ("Creating a checking account" and "Creating a savings account" in the same publication, you'll need to use key scopes.

Author the content using the (same as above) markup for keywords and images:

  • <keyword keyref="accountType"/>
  • <image keyref="creatingAccount"/>

In the DITA map where you create the publication navigation, you'll also define key scopes and specify the values for the key references:

      <!-- Generate output for "Creating a checking account" --> 
      <topicgroup keyscope="checkingAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>checking</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingCheckingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a checking account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>

      <!-- Generate output for "Creating a savings account" --> 
      <topicgroup keyscope="savingsAccount">
            <keydef keys="accountType">
                <topicmeta>
                    <linktext>savings</linktext>
                </topicmeta>
            </keydef>
            <keydef keys="creatingAccount" format="png" href="creatingSavingAccount.png">
                <topicmeta>
                    <linktext>Screen capture of the user interface window shown when creating a savings account</linktext>
                </topicmeta>
            </keydef>
            <topicref href="creatingAccount.dita"/>
        </topicgroup>


I hope that this helps. I'd suggest that getting some formal DITA training might be of benefit.

Best,
Kris

Kristen James Eberlein
Chair, OASIS DITA Technical Committee
OASIS Distinguished Contributor
Principal consultant, Eberlein Consulting LLC
www.eberleinconsulting.com
+1 919 622-1501; kriseberlein (skype)


On 12/27/2020 5:26 PM, Aaron Mehl via groups.io wrote:
Hi all, 
I am new to the group, and Dita.
I am documenting KMyMoney and have two similar tasks.
One is creating a checking account and the other is creating a savings account.
The text is nearly the same. I need to make the words checking and savings conditional.
I need a way to also make the screen captures conditional.
That said, and I hope done, I need to know how to generate the two task when publishing/transforming the xml to xhtml and pdf.

I have seen docs provided by my editor (Oxygen) and some videos, but I still can't seem to make heads or tails out of profiling.
This is a draft the Dita task file.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="creatingacheckingaccount">
    <title>Creating a <keyword>Checking</keyword> Account</title>
    <shortdesc>A <keyword>Checking</keyword> account in KMyMoney contains the same information as the same account in
        your bank. </shortdesc>
    <taskbody>
        <context>You just created an institution.<p>To create a <keyword>checking</keyword> account in the
                instituion:</p></context>
        <steps>
            <step>
                <cmd>Choose <uicontrol>Accounts</uicontrol> in the <uicontrol>View
                        Selector</uicontrol>pane</cmd>
                <stepresult>The institution you created is listed in the <uicontrol>Account
                        View</uicontrol>pane.</stepresult>
            </step>
            <step>
                <cmd>Click on the <uicontrol>New Account</uicontrol>icon on the
                        <uicontrol>toolbar</uicontrol>.</cmd>
                <stepresult>The <uicontrol>New Account </uicontrol>wizard appears.</stepresult>
            </step>
            <step>
                <cmd>Choose your instituiton from the dropdown list.</cmd>
            </step>
            <step>
                <cmd>Enter your account number.</cmd>
            </step>
            <step>
                <cmd>Click <uicontrol>Next</uicontrol>.</cmd>
                <stepresult>The Account window appears.</stepresult>
            </step>
        </steps>
    </taskbody>
</task>


Thanks
Aaron


Re: Create ZIPs of output

Nicholas Mucks
 

Hi Aliza,
Wow — beautiful. Thanks a lot.  Works fine!

Take care,
- Nick

Sent from mobile

On Dec 28, 2020, at 10:30 AM, Aliza Merzel <alizam@...> wrote:



Hi,

 

You can create your own transtype, which calls (for example) html5 or pdf and afterwards has a target that zips up the output.

 

<target name="create.zip">
       
<zip file="${output.dir}/bundle.zip">
           
<zipfileset dir="${output.dir}">
               
<include name=”*.*"/>
           
</zipfileset>

       
</zip>
   
</target>

 

 

Aliza

 

 

Aliza Merzel

Senior Developer and XML Specialist

Phone: +972 8-976-0323

Email: alizam@...

 

Connect with us:  

   
<image002.jpg>
  
<image003.png>

 

<image004.png>

 

From: main@dita-users.groups.io [mailto:main@dita-users.groups.io] On Behalf Of Nicholas Mucks via groups.io
Sent: Monday, December 28, 2020 8:16 PM
To: dita-users@groups.io
Subject: [dita-users] Create ZIPs of output

 

Hello!

 

Has anyone created zip outputs from DITA-OT plugins? I’d like to create X number of zip files of a normalized DITA package based on a runtime parameter value. I’m currently doing this in a script after the DITA-OT, but it would be cool to bake this logic into the transform.

 

Thanks for any suggestions!

 

Take care,

- Nick

 

Sent from mobile


Re: Using DITA with contextual help #CCMS #mixed-content

despopoulos_chriss
 

We have implemented our own version of this.  Short story...  You can transform DITA topics to JSON, and pass those to bootstrap tours.  We add metadata to the DITA that describes where the given content will attach to the GUI, transform to JSON, and load it on request.

Long Story:
We implemented a system that transforms our DITA on the fly -- you choose the XSLT to pass to it with each request.  So one request is to get a topic and transform it to JSON. 

We have restrictions on the topic that this can work for -- you can't just pass any DITA and expect it to work. You need chunks that are small enough and focused so they can be meaningful in a walk-through tour.  You also need metadata to describe the GUI URL to display and to give CSS selectors that identify the specific GUI item that you are talking about.  Typically I suppose you would use specialization, but we're lazy.  We just know which topics are set up.  We use the procedural list, where each step is another balloon in the tour.  But we also use the same topic in our online help and our PDF.  True single-sourcing.

The tour is implemented using bootstrap.  That's a JS lib for GUI objects and widgets.  It wants an array of JSON, so we transform the procedural list into that.  Our GUI developers implemented it so it can display in the GUI.  When you request a tour, you specify the topic file to load, plus the XSLT for TopicToJson.  Once it's in place, it just works.  I prefer this to using a SaaS hosted by some other party...  You can modify it if you need, and there's no monthly fee.

You could always do the transforms at build time, rather than real-time.  We do real-time for a number of reasons.  One advantage is that we ship the same source for OEM products, or for releases with different feature sets.  We just filter the content appropriately at request time.  All the book-keeping is stored in the source itself, rather than relying on different build switches and storing the output in different repositories, etc.  For us that's way more agile...

Maybe another approach would be to look at something like WalkMe and see if it can import content.  Then just figure out what you need to transform your DITA into so it can import it.  I see that WalkMe does support CSV...

https://support.walkme.com/knowledge-base/incoming-csv-integration/

So...  You could possibly transform your DITA to the CSV and load that.  But all this is just speculation.  I have no experience!


profile problems

Aaron Mehl
 

Hi all, 
I am new to the group, and Dita.
I am documenting KMyMoney and have two similar tasks.
One is creating a checking account and the other is creating a savings account.
The text is nearly the same. I need to make the words checking and savings conditional.
I need a way to also make the screen captures conditional.
That said, and I hope done, I need to know how to generate the two task when publishing/transforming the xml to xhtml and pdf.

I have seen docs provided by my editor (Oxygen) and some videos, but I still can't seem to make heads or tails out of profiling.
This is a draft the Dita task file.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="creatingacheckingaccount">
    <title>Creating a <keyword>Checking</keyword> Account</title>
    <shortdesc>A <keyword>Checking</keyword> account in KMyMoney contains the same information as the same account in
        your bank. </shortdesc>
    <taskbody>
        <context>You just created an institution.<p>To create a <keyword>checking</keyword> account in the
                instituion:</p></context>
        <steps>
            <step>
                <cmd>Choose <uicontrol>Accounts</uicontrol> in the <uicontrol>View
                        Selector</uicontrol>pane</cmd>
                <stepresult>The institution you created is listed in the <uicontrol>Account
                        View</uicontrol>pane.</stepresult>
            </step>
            <step>
                <cmd>Click on the <uicontrol>New Account</uicontrol>icon on the
                        <uicontrol>toolbar</uicontrol>.</cmd>
                <stepresult>The <uicontrol>New Account </uicontrol>wizard appears.</stepresult>
            </step>
            <step>
                <cmd>Choose your instituiton from the dropdown list.</cmd>
            </step>
            <step>
                <cmd>Enter your account number.</cmd>
            </step>
            <step>
                <cmd>Click <uicontrol>Next</uicontrol>.</cmd>
                <stepresult>The Account window appears.</stepresult>
            </step>
        </steps>
    </taskbody>
</task>


Thanks
Aaron


Using DITA with contextual help #CCMS #mixed-content

cnunn@...
 

Does anyone know of a contextual help application (such as WalkMe) that allows for integration of DITA topics?


Re: New DITA-OT 3.6 release available for download! #DITA-OT

Radu Coravu
 

Hi Chris,

Thanks for sharing your obtained publishing times.

Using DITA OT 3.6 with "store-type=memory" I did not find any significant improvement running on Mac OS but I did find a big improvement when running on Windows (for the Oxygen Users Manual which is about 2000 topics published to HTML 5 I had a decrease in publishing times from 236 to approx 177 seconds).

So even if you have a fast SSD storage device (and I have one both on Mac and on Windows) it depends on how fast the operating system accesses files, maybe on Windows the Windows Defender might also slow down things when working with the local disk.

For "parallel=true" I did not find any significant speed improvement on either Mac or Windows, so probably similar to your 5% improvement.

Regards,

Radu

Radu Coravu
Oxygen XML Editor
On 12/29/20 22:31, Chris Papademetrious wrote:

Wow, this is quite an impressive release!

I compared this release against the 3.5.4 release by running an html5 transformation on 89 books in our deliverable set.

  • With default options, this release is consistently almost twice as fast (1.9X).
  • The -Dstore-type=memory option made no appreciable difference, probably because I'm running on a fast local disk. This option is likely meant for running on a shared NFS volume over a network.
  • The -Dparallel=true option yielded an additional 5% runtime improvement; I confess I was hoping for more!

Here are the results of the linux time command on a transformation with/without -Dparallel=true:

% time ./dita-ot-3.6/bin/dita -i dita-digital/dita/icvrefman.ditamap -f html5 -o oo
177.620u 10.915s 1:48.15 174.3%
% time ./dita-ot-3.6/bin/dita -i dita-digital/dita/icvrefman.ditamap -f html5 -o oo -Dparallel=true
242.156u 12.990s 1:26.75 294.1%

There was definitely more parallel processing going on (green), but the decrease in wall clock time was less dramatic (yellow)

But heck, with default improvements like this, who needs more?

 - Chris

  


Re: New DITA-OT 3.6 release available for download! #DITA-OT

Chris Papademetrious
 

Wow, this is quite an impressive release!

I compared this release against the 3.5.4 release by running an html5 transformation on 89 books in our deliverable set.

  • With default options, this release is consistently almost twice as fast (1.9X).
  • The -Dstore-type=memory option made no appreciable difference, probably because I'm running on a fast local disk. This option is likely meant for running on a shared NFS volume over a network.
  • The -Dparallel=true option yielded an additional 5% runtime improvement; I confess I was hoping for more!

Here are the results of the linux time command on a transformation with/without -Dparallel=true:

% time ./dita-ot-3.6/bin/dita -i dita-digital/dita/icvrefman.ditamap -f html5 -o oo
177.620u 10.915s 1:48.15 174.3%
% time ./dita-ot-3.6/bin/dita -i dita-digital/dita/icvrefman.ditamap -f html5 -o oo -Dparallel=true
242.156u 12.990s 1:26.75 294.1%

There was definitely more parallel processing going on (green), but the decrease in wall clock time was less dramatic (yellow)

But heck, with default improvements like this, who needs more?

 - Chris


Re: Create ZIPs of output

Aliza Merzel
 

Hi,

 

You can create your own transtype, which calls (for example) html5 or pdf and afterwards has a target that zips up the output.

 

<target name="create.zip">
       
<zip file="${output.dir}/bundle.zip">
           
<zipfileset dir="${output.dir}">
               
<include name=”*.*"/>
           
</zipfileset>

       
</zip>
   
</target>

 

 

Aliza

 

 

Aliza Merzel

Senior Developer and XML Specialist

Phone: +972 8-976-0323

Email: alizam@...

 

Connect with us:  twitter.png   linked-in.png  youtube.png

 

Logo-for-email-signatures - smaller

 

From: main@dita-users.groups.io [mailto:main@dita-users.groups.io] On Behalf Of Nicholas Mucks via groups.io
Sent: Monday, December 28, 2020 8:16 PM
To: dita-users@groups.io
Subject: [dita-users] Create ZIPs of output

 

Hello!

 

Has anyone created zip outputs from DITA-OT plugins? I’d like to create X number of zip files of a normalized DITA package based on a runtime parameter value. I’m currently doing this in a script after the DITA-OT, but it would be cool to bake this logic into the transform.

 

Thanks for any suggestions!

 

Take care,

- Nick

 

Sent from mobile


Create ZIPs of output

Nicholas Mucks
 

Hello!

Has anyone created zip outputs from DITA-OT plugins? I’d like to create X number of zip files of a normalized DITA package based on a runtime parameter value. I’m currently doing this in a script after the DITA-OT, but it would be cool to bake this logic into the transform.

Thanks for any suggestions!

Take care,
- Nick

Sent from mobile

381 - 400 of 46295