xsl-list
[Top] [All Lists]

Re: [xsl] Grouping by letters but keep symbols together

2019-01-25 11:41:11
Interesting !

Thanks for information, Eliot.

Christophe

Le 25/01/2019 à 17:03, Eliot Kimber ekimber(_at_)contrext(_dot_)com a écrit :
In addition, the DITA Community i18n project on GitHub 
(https://github.com/dita-community/org.dita-community.i18n) provides 
general-purpose Saxon extensions and XSLT 2+ support for locale-aware grouping, 
sorting, word and line breaking, and text size approximation. (The code was 
originally developed to do generation of paginated EPUBs in a number of 
languages, thus the need for locale-aware word and line breaking as well as 
text size approximation in addition to sorting and grouping.)

While the code was developed for use with DITA docs it's not DITA-specific. The 
current Java extensions are only bound to Saxon 9.1 because I didn't have 
client funding to also do the Saxon 9.6+ integration. It shouldn't be that hard 
but it's not something I've been able to pursue.

This project includes dictionary-based Simplified Chinese features by 
integrating an open-source Simplified Chinese dictionary.

Cheers,

E.
--
Eliot Kimber
http://contrext.com
On 1/25/19, 9:32 AM, "Eliot Kimber ekimber(_at_)contrext(_dot_)com" 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

     Beyond all these suggestions, I always create functions that return 
grouping and sort  keys as the logic could be much more sophisticated, 
especially if you bring in locale-aware processing.
Cheers, E.
     --
     Eliot Kimber
     http://contrext.com
On 1/25/19, 9:07 AM, "Graydon graydon(_at_)marost(_dot_)ca" <xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote: On Fri, Jan 25, 2019 at 02:44:50PM -0000, Rick Quatro rick(_at_)rickquatro(_dot_)com scripsit:
         >    I am creating a glossary and I want to group entries under each 
letter of
         >    the alphabet. I am using this and it is working fine:
         [snip]
         >    However, I want to group entries that start with a symbol or 
number all
         >    together under one group. I am not sure what to use for the 
group-by
         >    attribute so that letters are separate from each other and all of 
the
         >    non-letter characters are in the same group. Any suggestions 
would be
         >    appreciated. Thank you very much.
I'd use a Unicode character category match for this: <xsl:for-each-group select="glossentry"
            
group-by="(substring(upper-case(glossterm),1,1)[matches(.,'\p{Lu}')],'NON-LETTER-GROUP')[1]">
             <topicref navtitle="{current-grouping-key()}" toc="no">
                 ...
             </topicref>
         </xsl:for-each-group>
What you put in for "NON-LETTER-GROUP" might depend on where or how
         you're sorting the glossary entries.
-- Graydon

--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>