From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/101611 Path: news.gmane.org!.POSTED!not-for-mail From: Mike O'Connor Newsgroups: gmane.comp.tex.context Subject: XML to ConTeXt: converting date attribute from ISO date Date: Wed, 15 Aug 2018 18:27:32 +0800 Message-ID: <16FB1586-A34F-488F-807C-4D4C15826261@gmail.com> References: <60D682CA-6264-492A-8DC5-171F28B341D0@gmail.com> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Content-Type: multipart/mixed; boundary="===============4096447536551142211==" X-Trace: blaine.gmane.org 1534328763 9353 195.159.176.226 (15 Aug 2018 10:26:03 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 15 Aug 2018 10:26:03 +0000 (UTC) To: ntg-context@ntg.nl Original-X-From: ntg-context-bounces@ntg.nl Wed Aug 15 12:25:59 2018 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fpt02-0002Ku-OI for gctc-ntg-context-518@m.gmane.org; Wed, 15 Aug 2018 12:25:58 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 12E3A50C4B; Wed, 15 Aug 2018 12:27:53 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G7OpAmWE4h7j; Wed, 15 Aug 2018 12:27:52 +0200 (CEST) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 3A43C50C4C; Wed, 15 Aug 2018 12:27:52 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id DAB9A50C4C for ; Wed, 15 Aug 2018 12:27:50 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1tX37zqbpjCP for ; Wed, 15 Aug 2018 12:27:50 +0200 (CEST) Original-Received: from mail-pl0-f52.google.com (mail-pl0-f52.google.com [209.85.160.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id BFAD450C4B for ; Wed, 15 Aug 2018 12:27:39 +0200 (CEST) Original-Received: by mail-pl0-f52.google.com with SMTP id s17-v6so319630plp.7 for ; Wed, 15 Aug 2018 03:27:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:date:references:to:in-reply-to:message-id; bh=4AEz0ag74DKkhxS1yBvSqMgkHOHCzE+Tcqvq8hwDJDA=; b=aqFIsCL8ynopw74t41gKgL1bg96LYjJITkDXe7Q9041GP/7/HKzhANUFbLN4Ftm42s RnPQcRfy5ZNdimVKPQ/ufQP1usoFPIQi4B2FOQTlBdwk7Xnhz2xauRdcFqidLTyc5E6R U8F9xOoka4fVAr/nvKgJB+uIDxuSu11Btt2wqyc8SEPCUhVNyKPj7Va1U9XQg3HYWlrs Mqm3ziZJGaDHUP8NbkvcWsXhvEoziKFyfI2xDOlApyvy7o0+qmuhJlUWzBz2W0vGa8+Z zXAAseqdRh3N0TnllDdcDfecxtIiE/Jpb28B90la1xgV7SBNnWkXWNDuq+zfSJWWA99W 7anA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:date:references:to :in-reply-to:message-id; bh=4AEz0ag74DKkhxS1yBvSqMgkHOHCzE+Tcqvq8hwDJDA=; b=t91RSsmqAaq0CPsrmJZOc4VmjSPTM6ZjsLSZiHYdwpgoWCKgDleClFmBuQmjzc2/YT Fbp3sRQ/bR4PKMLOk2ski2y4pf7jSlbERQGdoEmEtVPCzXAO77zc/YnparAkogMRY4AP wAAOL5l1ZQGcLY34B6IC71qRXzcSRPa7J5+nVIsDrz6gYV1KBkeZ6fAhnSZ8EPPLh7fF dsfpNbyrX4qxYDKdvNiahWJv/Pe2XEILIVIGRg8BkJDihV5PgtGP3EmeFkF7IgNdn9j9 vXVRp94N9NiooUfbu8oXU3dxyrk1mEyteWWOPtZscNI1KrMXCMVtoDC4dqeu6iaKGQ/O lEHw== X-Gm-Message-State: AOUpUlG1wKsX/k38TLOg4IX7d3RxWSH4cBzj3TwVUKHE/mZYwKRB25Gr siMHEMf3qYioZ4I1sJUubDYH318d X-Google-Smtp-Source: AA+uWPyZb1Vr31LUhkhSRs6MNtiM1YFiOdEqjY8/zb1HY5FW88InEanviQC7IQSWm3vo+r9cZtgRrQ== X-Received: by 2002:a17:902:d68d:: with SMTP id v13-v6mr23859037ply.278.1534328857886; Wed, 15 Aug 2018 03:27:37 -0700 (PDT) Original-Received: from [192.168.0.5] (n175-38-0-235.per2.wa.optusnet.com.au. [175.38.0.235]) by smtp.gmail.com with ESMTPSA id f19-v6sm36198927pfd.147.2018.08.15.03.27.35 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Aug 2018 03:27:37 -0700 (PDT) In-Reply-To: <60D682CA-6264-492A-8DC5-171F28B341D0@gmail.com> X-Mailer: Apple Mail (2.3445.9.1) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.16 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.org gmane.comp.tex.context:101611 Archived-At: --===============4096447536551142211== Content-Type: multipart/alternative; boundary="Apple-Mail=_3CBA2833-74FD-4BD6-BAF2-900F6B3E8C16" --Apple-Mail=_3CBA2833-74FD-4BD6-BAF2-900F6B3E8C16 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 G=E2=80=99Day, Having a first go at converting TEI XML to ConTeXt. =20 Steep learning curve, but easier (for me) than XSLT, and first results = were amazing. Using = http://www.pragma-ade.com/general/manuals/xml-mkiv.pdf = as a guide. Currently stuck on converting an ISO format date (eg. 1908-01-10) into = something more readable (eg. 10 January 1908) in the output. I presume = I should create a function (?luacode) that can take any ISO value and = output the readable form. The following works but seems to me = inefficient. Grateful for any pointers. Mike Here is my MWE: \startbuffer[demo]
10.I.08 19 Mar '08
\stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{date}{xml:date} \stopxmlsetups =20 \xmlregistersetup{xml:initialize} \startxmlsetups xml:date =09 \xmldoifelse {#1}{.[@type=3D'divDate']} { \def\docdate{\ctxlua{ local tyear =3D = string.sub('\xmlatt{#1}{when-iso}',1,4) local tmonth =3D = string.sub('\xmlatt{#1}{when-iso}',6,7) local tday =3D = string.sub('\xmlatt{#1}{when-iso}',9,10) context.date{d =3D tday, m =3D tmonth, y =3D = tyear} }} =09 \docdate[day,month,year] =3D Document Date \par } { \def\docdate{\ctxlua{ local tyear =3D = string.sub('\xmlatt{#1}{when-iso}',1,4) local tmonth =3D = string.sub('\xmlatt{#1}{when-iso}',6,7) local tday =3D = string.sub('\xmlatt{#1}{when-iso}',9,10) context.date{d =3D tday, m =3D tmonth, y =3D = tyear} }} =20 =20 \docdate[day,month,year] =3D Event Date\par } \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext= --Apple-Mail=_3CBA2833-74FD-4BD6-BAF2-900F6B3E8C16 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8
G=E2=80=99Day,

Having a first go at = converting TEI XML to ConTeXt.  

Steep learning curve, but easier (for = me) than XSLT, and first results were amazing.  Using http://www.pragma-ade.com/general/manuals/xml-mkiv.pdf = ;as a guide.

Currently stuck on converting an ISO format date (eg. = 1908-01-10) into something more readable (eg. 10 January 1908) in the = output.  I presume I should create a function (?luacode) that can = take any ISO value and output the readable form.  The following = works but seems to me inefficient.

Grateful for any pointers.

Mike

Here is my = MWE:

\startbuffer[demo]
<TEI>
    <text>
    =     <body>
      =       <div type=3D"letter">
                = <opener>
          =           <date when-iso=3D"1908-01-10" = type=3D"divDate">10.I.08</date>
  =               = </opener>
          =       <closer>
    =             <date when-iso=3D"1908-03-19" = type=3D"secondDate">19 Mar '08</date>
 =               = </closer>
          =   </div>
        = </body>
    </text>
</TEI>
\stopbuffer

\startxmlsetups = xml:initialize
= \xmlsetsetup{#1}{date}{xml:date}
\stopxmlsetups
  =   
\xmlregistersetup{xml:initialize}

\startxmlsetups xml:date
=
\xmldoifelse = {#1}{.[@type=3D'divDate']} {
= \def\docdate{\ctxlua{
= local tyear =3D string.sub('\xmlatt{#1}{when-iso}',1,4)
= local tmonth =3D = string.sub('\xmlatt{#1}{when-iso}',6,7)
= local tday =3D string.sub('\xmlatt{#1}{when-iso}',9,10)
= context.date{d =3D tday, m =3D tmonth, y =3D = tyear}
}}
=
    \docdate[day,month,year] =3D = Document Date \par
    } {
= \def\docdate{\ctxlua{
= local tyear =3D string.sub('\xmlatt{#1}{when-iso}',1,4)
= local tmonth =3D = string.sub('\xmlatt{#1}{when-iso}',6,7)
= local tday =3D string.sub('\xmlatt{#1}{when-iso}',9,10)
= context.date{d =3D tday, m =3D tmonth, y =3D = tyear}
}}   =  
    
    \docdate[day,month,year] =3D = Event Date\par
}
\stopxmlsetups

\starttext
= \xmlprocessbuffer{main}{demo}{}
\stoptext
= --Apple-Mail=_3CBA2833-74FD-4BD6-BAF2-900F6B3E8C16-- --===============4096447536551142211== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5v cmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCndpa2kgICAgIDogaHR0cDovL2NvbnRleHRn YXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f --===============4096447536551142211==--