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: Fwd: failure notice


> Thanks you both for thinking about this. Sorry I originally posted to
> the wrong group--I'm still learning my way around. From the looks of
> the project in front of me, my copy of Bob's book is going to be dog-
> eared soon.
>
> I think David is right for my case--I'm chunking down to the third
> section level and I only want the keywords that are actually in the
> current html file. Otherwise I would be messing up the search engines
> by advertising keywords that are not actually present in the file. But
> on re-reading Bob's message, I see that that's already taken care of
> since user.head.content is called with the node being chunked.
>
> I'm pretty sure my head will hurt before it's over, but I'll play
> around with it and step though the code; it looks very close to what
> I'll need to do. Thanks for the inspiration!
> --Tim Arnold
>
> On Sep 23, 2009, at 1:39 PM, David Cramer wrote:
>
>> Tim  may have to worry about chunking and the chunking settings,
>> depending on his situation. Say you chunk everything. If you have a
>> chapter with several subsections, then the first chunk contains the
>> chapter's toc and any content before the first section. You probably
>> don't want that chunk's html page to have all of the indexterms in  
>> the
>> all of the child sections. Or if you stop chunking at a certain  
>> depth,
>> you DO want the section at which you stop chunking to contain  
>> keywords
>> for the indexterms of all its child sections. If he uses <?bjhtml
>> stop-chunking?> to stop chunking at arbitrary places, then that would
>> have to be addressed too.
>>
>> I wanted to do something similar to what Tim is asking for, but  
>> didn't
>> go to the trouble of addressing all those because it made my head
>> hurt.
>>
>> If I recall correctly, the following tries to assemble a keywordset
>> unless there already is a keywordset and gets all the indexterms in
>> the
>> chapter or section but not get any from any child sections. It also
>> removes duplicate index entries.
>>
>> Anyway, perhaps the following can be a starting point or source of
>> inspiration.
>>
>> David
>>
>> <xsl:template name="user.head.content">
>> 	<xsl:call-template name="keywordset"/>
>> </xsl:template>
>>
>> <xsl:template name="keywordset">
>> 	<xsl:if test="not(self::book) and not(self::part) and
>> not(./*/keywordset) and (./*[not(starts-with(local-name(.),'sect'))
>> and
>> not(self::chapter)]//indexterm or ./indexterm)">
>> 	  <xsl:variable name="indexterms">
>> 		<!-- Get all the indexterms in this section/chapter only
>> (i.e. not in child sections -->
>> 		<xsl:copy-of
>> select="./*[not(self::section)]//indexterm/*|./indexterm/*"/>
>> 	  </xsl:variable>
>> 	  <xsl:variable name="indexterms-unique">
>> 		<xsl:for-each
>> select="exslt:node-set($indexterms)/*[not(. = preceding- 
>> sibling::*)]">
>> 		  <xsl:value-of select="normalize-space(.)"/><xsl:if
>> test="not(position() =  last())">, </xsl:if>
>> 		</xsl:for-each>
>> 	  </xsl:variable>
>> 	  <xsl:if test="not($indexterms-unique = '')">
>> 		<meta name="keywords">
>> 		  <xsl:attribute name="content">
>> 			<xsl:value-of select="$indexterms-unique"/>
>> 		  </xsl:attribute>
>> 		</meta>
>> 	  </xsl:if>
>> 	</xsl:if>
>> </xsl:template>
>>
>>> -----Original Message-----
>>> From: Bob Stayton [mailto:bobs@sagehill.net]
>>> Sent: Wednesday, September 23, 2009 11:11 AM
>>> To: DocBook Apps; Tim Arnold
>>> Subject: [docbook-apps] Re: [docbook] automated keywords and  
>>> chunking
>>>
>>> [moving this over to docbook-apps mailing list where
>>> stylesheet issues are discussed]
>>>
>>> By keywords I presume you mean generating <meta
>>> name="keywords"> in the HEAD element of each chunks?  If so,
>>> then you don't have to mess with the chunking machinery, you
>>> can use the placeholder template named 'user.head.content'
>>> that is available for inserting custom content.  See:
>>>
>>> http://www.sagehill.net/docbookxsl/HtmlHead.html
>>>
>>> That template is called with the node being chunked as the
>>> context node, so you should be able to select
>>> descendant::indexterm/primary elements and process them into
>>> the value of the meta element.
>>>
>>> Bob Stayton
>>> Sagehill Enterprises
>>> bobs@sagehill.net
>>>
>>>
>>> ----- Original Message -----
>>> From: "Tim Arnold" <a_jtim@bellsouth.net>
>>> To: <docbook@lists.oasis-open.org>
>>> Sent: Tuesday, September 22, 2009 4:35 PM
>>> Subject: [docbook] automated keywords and chunking
>>>
>>>
>>>> Hi,
>>>> I'm using DocBook 5 and the html chunking stylesheets. I'd like to
>>>> automatically create keywords for each output file that
>>> consist of the
>>>> primary index terms in that file.  I can manage that in
>>> postprocessing
>>>> using Python and lxml, but I wanted to ask here to see if
>>> this has  been
>>>> done before. It seems like something people might like to
>>> do, but  after
>>>> looking at the chunking code and reading about it, it
>>> sounds  like it
>>>> might be pretty complicated to implement.
>>>>
>>>> Any ideas on this?
>>>> thanks,
>>>> --Tim Arnold
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: docbook-unsubscribe@lists.oasis-open.org
>>>> For additional commands, e-mail: docbook-help@lists.oasis-open.org
>>>>
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis- 
>>> open.org
>>> For additional commands, e-mail:
>>> docbook-apps-help@lists.oasis-open.org
>>>
>>>
>



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