OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] qanda tags with propagate.style


Hi David,
Yes, qandaentry is handled in a special way because qandaset is output in an HTML layout table, so each qandaentry becomes two row (tr) elements in HTML output, one for the question and one for the answer.  In each row, the label is put in the first column and the paragraphs in the second. A table layout is used so that the width of the first column can adjust to fit the label, which can be long if labels are customized.
 
If you peek in the xhtml/qandaset.xsl, you can see that the template that matches on "qandaentry" just does an xsl:apply-templates.  The templates matching on "question" and "answer" each create its row.  So your customization just needs to be modified a bit, so it matches on the child elements:
 
<xsl:template match="qandaentry[@audience='instructoronly']/*]"
              mode="class.value">
  <xsl:value-of select="'instructoronly'"/>
</xsl:template>
That will add the class value to the <tr> elements for the question and answer.
 
*But* there is one more thing that must be done.  It seems that not all of the qandaset templates have been updated to apply the template using mode="class.value".  The question template does, but the answer template does not.  I'll fix that in SVN, but for now you would need to customize the template matching on "answer".  Copy that template and change this line from:
 
   <tr class="{local-name(.)}">
 
to
 
  <tr>
    <xsl:apply-templates select="." mode="class.attribute"/>
Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
 
 
----- Original Message -----
From: David Link
Sent: Friday, March 18, 2011 2:32 PM
Subject: [docbook-apps] qanda tags with propagate.style

Hi

Regarding qandaentry tags -- Is there a way to preserve audience="instructoronly" information in the HTML?

Example:

<qandaentry xml:id="ball-ch01_qs01_qd01_qa02" audience="instructoronly">
    <question>
        <para xml:id="ball-ch01_qs01_p02">Give an example of matter in each phase: solid, liquid, or gas.</para>
    </question>
    <answer>
        <para xml:id="ball-ch01_qs01_p03">solid: wood; liquid: water in a pond; gas: air in the atmosphere (answers will vary)</para>
    </answer>
</qandaentry>                                 

Explaination:

We are using audience='instructoronly' on every other qandaentry so that we can conditionally remove them from output via styling (via styling to maintain label numbering)

We are doing this with in prince for the pdf, and that is working fine.

But for the HTML the xhtml/docbook.xsl transforms does not propaget the 'instructoronly' as a div with class='instructoronly'

I tried

<xsl:template match="qandaentry[@audience='instructoronly']"
              mode="class.value">
  <xsl:value-of select="'instructoronly'"/>
</xsl:template>

But that doesn't seem to work.  I believe because it is rendered into an html table.

Can anyone suggest away to maintain the audience='instructoronly' in the HTML ?
 
Thank you very much.
David Link
New York


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]