From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/109741 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mojca Miklavec Newsgroups: gmane.comp.tex.context Subject: Adding syntax highlighting when typesetting from xml (asciidoc/docbook) Date: Mon, 30 Nov 2020 21:08:03 +0100 Message-ID: Reply-To: mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000f1eda905b558918b" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38887"; mail-complaints-to="usenet@ciao.gmane.io" To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Nov 30 21:16:45 2020 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane-mx.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kjpbJ-000A1n-GX for gctc-ntg-context-518@m.gmane-mx.org; Mon, 30 Nov 2020 21:16:45 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id A1A941AA5B1; Mon, 30 Nov 2020 21:08:17 +0100 (CET) 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 ShlMZWPnx1Wg; Mon, 30 Nov 2020 21:08:16 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id BDA271AA85D; Mon, 30 Nov 2020 21:08:16 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 279141AA85B for ; Mon, 30 Nov 2020 21:08:16 +0100 (CET) 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 meLbMbfCG4Ui for ; Mon, 30 Nov 2020 21:08:14 +0100 (CET) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.221.50; helo=mail-wr1-f50.google.com; envelope-from=mojca.miklavec.lists@gmail.com; receiver= Original-Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id 693431AA5B1 for ; Mon, 30 Nov 2020 21:08:14 +0100 (CET) Original-Received: by mail-wr1-f50.google.com with SMTP id t4so17878263wrr.12 for ; Mon, 30 Nov 2020 12:08:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=PtniqGEr48JFTAnowcgwObF1OEw5q/VRYZfTOyEjyNE=; b=fBYIcvLkKmSRzo4Yj1KAQ3SOEaO9Asv8hP6gMQJvUF6GEcEGXSwFVsV0SwZX4yValX 5JHHdCp8MdQJJJ1Er52DetHWtLFlFqkQ/btUTYze2UXYK84iPgcoZISviON9aod7kpIM DpZkARn6uRj07Baaz2cKH04EGH+8IWKtexs5apNezN8s6Az29gVIyZkybC+sBVmCCQIT EUXcsrcn62YVgzr6AfWCfyEow9TVt2923yfzgAFFOVAdoo17mUigOahjLCwy/EqON1wq PjPGeicdttbdXDpuBSykUNzgatjPKM6vCxBZYH0IcqSUHDPG43218abSwov0VKNWIJfx rXPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=PtniqGEr48JFTAnowcgwObF1OEw5q/VRYZfTOyEjyNE=; b=VBekdOosOrNBGpvG+OAMYerWoecTEYPd62D643l2/L23CuK5hUI5O28juJFADjGvqt RqIuK3O8s/wXSrtsNOKJ3f03NNCRd1PoWdY/hQGihxodatkatpJ1RSRQG6hGMmc+KOHo GI9L2TmyxFDoPK/iyLGlI52i+B8qOIBokj12qiVUQJw/Q0lTMrs/CKAV0iUd6q8FJUtR ahiz0EQWjAM4LjVgKExMsWI9bpmwM0ZJ/MJCrjX/tVQfKojFT6XE68TqmpxXuh4yECns vmGU5WgR98Wz+BzrxA/Wve3DqGCwbPpKuNo7SueeMlyckhoVMdJI9NWNx6WNfr6jnExd XiqA== X-Gm-Message-State: AOAM531eGDHeXb0qqxGauXgBNNKAMymDqRasPL/X8qWcN9QyZfgOZLQ1 s55CzFyft8ORnFGm/RGf5qbiorBw+E2FvjeYqQOiXfyxWjY= X-Google-Smtp-Source: ABdhPJziJ46E6t1p8UqJyvKtnW2mW9La3L8fvvPAJe1nx443mOXQNLvfGXtOUecIfpoPiMdhXCo0zBhb7s7pKacU16E= X-Received: by 2002:a5d:5604:: with SMTP id l4mr29806333wrv.127.1606766893844; Mon, 30 Nov 2020 12:08:13 -0800 (PST) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 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.io gmane.comp.tex.context:109741 Archived-At: --000000000000f1eda905b558918b Content-Type: text/plain; charset="UTF-8" Hi, A while ago Hans provided an example of typesetting a document from a docbook source. I'm attaching an over-simplified version of the initial module (a somewhat more complete version exists, but it still needs lots of work) and a minimum working example with XML. I'm not sure how to extend the xml parser to support typesetting from something like this:
Hello World in C and ConTeXt #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } \starttext Hello world! \stoptext
Maybe using the vim module would be the right approach here (since the built-in parser only has support for a limited set of languages), but I'm not exactly sure about the implementation to achieve that goal. I started with \startxmlsetups xml:programlisting \dontleavehmode \startframedtext[background=color,backgroundcolor=lightgray] \obeylines \tt \xmlflush{#1} \stopframedtext \stopxmlsetups but something more is needed to properly handle new lines and to properly pass the text to vim, for example. Any hints welcome. Thank you, Mojca --000000000000f1eda905b558918b Content-Type: text/xml; charset="US-ASCII"; name="test-syntax-highlighting.xml" Content-Disposition: attachment; filename="test-syntax-highlighting.xml" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ki4z3rkb0 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPD9hc2NpaWRvYy10b2M/Pgo8 P2FzY2lpZG9jLW51bWJlcmVkPz4KPGFydGljbGUgeG1sbnM9Imh0dHA6Ly9kb2Nib29rLm9yZy9u cy9kb2Nib29rIiB4bWxuczp4bD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lv bj0iNS4wIiB4bWw6bGFuZz0iZW4iPgo8aW5mbz4KPHRpdGxlPlN5bnRheCBoaWdobGlnaHRpbmcg d2l0aCBBc2NpaURvYzwvdGl0bGU+CjxkYXRlPjIwMjAtMTEtMzA8L2RhdGU+CjwvaW5mbz4KPHNl Y3Rpb24geG1sOmlkPSJfaGVsbG9fd29ybGRfaW5fYyI+Cjx0aXRsZT5IZWxsbyBXb3JsZCBpbiBD PC90aXRsZT4KPHByb2dyYW1saXN0aW5nIGxhbmd1YWdlPSJjcHAiIGxpbmVudW1iZXJpbmc9InVu bnVtYmVyZWQiPiNpbmNsdWRlICZsdDtzdGRpby5oJmd0OwoKaW50IG1haW4oKQp7CiAgICBwcmlu dGYoIkhlbGxvLCBXb3JsZCFcbiIpOwogICAgcmV0dXJuIDA7Cn08L3Byb2dyYW1saXN0aW5nPgo8 cHJvZ3JhbWxpc3RpbmcgbGFuZ3VhZ2U9ImNvbnRleHQiIGxpbmVudW1iZXJpbmc9Im51bWJlcmVk Ij5cc3RhcnR0ZXh0CkhlbGxvIHdvcmxkIQpcc3RvcHRleHQ8L3Byb2dyYW1saXN0aW5nPgo8L3Nl Y3Rpb24+CjwvYXJ0aWNsZT4= --000000000000f1eda905b558918b Content-Type: application/octet-stream; name="test-syntax-highlighting.tex" Content-Disposition: attachment; filename="test-syntax-highlighting.tex" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ki4z44r72 XHVzZW1vZHVsZVthc2NpaWRvYy1iYXNpY10NCg0KXHN0YXJ0dGV4dA0KXHhtbHByb2Nlc3NmaWxl e21haW59e3Rlc3Qtc3ludGF4LWhpZ2hsaWdodGluZy54bWx9e30NClxzdG9wdGV4dA0K --000000000000f1eda905b558918b Content-Type: application/octet-stream; name="m-asciidoc-basic.tex" Content-Disposition: attachment; filename="m-asciidoc-basic.tex" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ki4z9i5a2 JSBcZW5hYmxldHJhY2tlcnNbY29udGV4dCpdDQoNClx1c2Vtb2R1bGVbY2Fsc10NCg0KXHN0YXJ0 eG1sc2V0dXBzIHhtbDp3aGF0ZXZlcjphDQogICAgXHhtbHNldHNldHVwIHsjMX0gew0KICAgICAg ICBhcnRpY2xlfA0KICAgICAgICBzZWN0aW9ufA0KICAgICAgICBzaW1wYXJhfA0KICAgICAgICBp dGVtaXplZGxpc3R8b3JkZXJlZGxpc3R8bGlzdGl0ZW18DQogICAgICAgIGVtcGhhc2lzfGd1aWJ1 dHRvbnwNCiAgICAgICAgbGl0ZXJhbHxwcm9ncmFtbGlzdGluZ3wNCiAgICAgICAgc3VwZXJzY3Jp cHR8c3Vic2NyaXB0fA0KICAgICAgICBlcXVhdGlvbnxpbmxpbmVlcXVhdGlvbnwNCiAgICAgICAg ZmlndXJlfG1lZGlhb2JqZWN0fGluZm9ybWFsZmlndXJlDQogICAgfSB7eG1sOip9DQogICAgXHht bHNldHNldHVwIHsjMX0gew0KICAgICAgICBpbWFnZW9iamVjdC9pbWFnZWRhdGENCiAgICB9IHt4 bWw6aW1hZ2V9DQogICAgXHhtbHNldHNldHVwIHsjMX0gew0KICAgICAgICBpbWFnZW9iamVjdA0K ICAgIH0geyt9DQogICAgXHhtbHNldGZ1bmN0aW9uIHsjMX0ge3RhYmxlfSB7bW9kdWxlZGF0YS5j YWxzLnRhYmxlfQ0KXHN0b3B4bWxzZXR1cHMNCg0KXHhtbHJlZ2lzdGVyZG9jdW1lbnRzZXR1cHtt YWlufXt4bWw6d2hhdGV2ZXI6YX0NCg0KXHN0YXJ0eG1sc2V0dXBzIHhtbDphcnRpY2xlDQogICAg XHN0YXJ0Ym9keW1hdHRlcg0KICAgICAgICBceG1sZmlsdGVyeyMxfXsvc2VjdGlvbi9jb21tYW5k KHhtbDpzZWN0aW9uKX0NCiAgICBcc3RvcGJvZHltYXR0ZXINClxzdG9weG1sc2V0dXBzDQoNClxz dGFydHhtbHNldHVwcyB4bWw6c2VjdGlvbg0KICAgIFxzdGFydHNlY3Rpb25sZXZlbFt0aXRsZT17 XHhtbHRleHR7IzF9ey90aXRsZX19XQ0KICAgICAgICBceG1sYWxseyMxfXsvIXRpdGxlfQ0KICAg ICAgICAlXHhtbGFsbHsjMX17fQ0KICAgIFxzdG9wc2VjdGlvbmxldmVsDQpcc3RvcHhtbHNldHVw cw0KDQpcc3RhcnR4bWxzZXR1cHMgeG1sOnNpbXBhcmENCiAgICBceG1sZmx1c2h7IzF9XHBhcg0K XHN0b3B4bWxzZXR1cHMNCg0KXHN0YXJ0eG1sc2V0dXBzIHhtbDppdGVtaXplZGxpc3QNCiAgICBc c3RhcnRpdGVtaXplDQogICAgICAgIFx4bWxmbHVzaHsjMX0NCiAgICBcc3RvcGl0ZW1pemUNClxz dG9weG1sc2V0dXBzDQoNClxkZWZpbmVpdGVtZ3JvdXBbb3JkZXJlZF0NClxzZXR1cGl0ZW1ncm91 cFtvcmRlcmVkXVsxXVtzeW1ib2w9bl0NClxzZXR1cGl0ZW1ncm91cFtvcmRlcmVkXVsyXVtzeW1i b2w9YV0NClxzZXR1cGl0ZW1ncm91cFtvcmRlcmVkXVszXVtzeW1ib2w9aV0NCg0KXHN0YXJ0eG1s c2V0dXBzIHhtbDpvcmRlcmVkbGlzdA0KICAgIFxzdGFydGl0ZW1ncm91cFtvcmRlcmVkXQ0KICAg ICAgICBceG1sZmx1c2h7IzF9DQogICAgXHN0b3BpdGVtZ3JvdXANClxzdG9weG1sc2V0dXBzDQoN ClxzdGFydHhtbHNldHVwcyB4bWw6bGlzdGl0ZW0NCiAgICBcc3RhcnRpdGVtDQogICAgICAgIFx4 bWxmbHVzaHsjMX0NCiAgICBcc3RvcGl0ZW0NClxzdG9weG1sc2V0dXBzDQoNClx4bWxtYXB2YWx1 ZXtlbXBoYXNpc317c3Ryb25nfXtcYmZ9DQpceG1sbWFwdmFsdWV7ZW1waGFzaXN9e25vcm1hbH17 XGVtfQ0KDQpcc3RhcnR4bWxzZXR1cHMgeG1sOmVtcGhhc2lzDQogICAgXGRvbnRsZWF2ZWhtb2Rl DQogICAgXHN0YXJ0DQogICAgXHhtbHZhbHVle2VtcGhhc2lzfXtceG1sYXR0ZGVmeyMxfXtyb2xl fXtub3JtYWx9fXtub3JtYWx9DQogICAgXHhtbGZsdXNoeyMxfQ0KICAgIFxzdG9wDQpcc3RvcHht bHNldHVwcw0KDQpcc3RhcnR4bWxzZXR1cHMgeG1sOmxpdGVyYWwNCiAgICBcZG9udGxlYXZlaG1v ZGUNCiAgICBcc3RhcnQNCiAgICBcdHQNCiAgICBceG1sZmx1c2h7IzF9DQogICAgXHN0b3ANClxz dG9weG1sc2V0dXBzDQoNClxzdGFydHhtbHNldHVwcyB4bWw6cHJvZ3JhbWxpc3RpbmcNCiAgICBc ZG9udGxlYXZlaG1vZGUNCiAgICBcc3RhcnRmcmFtZWR0ZXh0W2JhY2tncm91bmQ9Y29sb3IsYmFj a2dyb3VuZGNvbG9yPWxpZ2h0Z3JheV0NCiAgICBcb2JleWxpbmVzDQogICAgXHR0DQogICAgXHht bGZsdXNoeyMxfQ0KICAgIFxzdG9wZnJhbWVkdGV4dA0KXHN0b3B4bWxzZXR1cHMNCg0KXHN0YXJ0 bHVhY29kZQ0KICAgIGZ1bmN0aW9uIHhtbC5maW5hbGl6ZXJzLnRleC5jZGF0YXRvY29udGV4dChj KQ0KICAgICAgICBjb250ZXh0KHhtbC5jZGF0YShjWzFdKSkNCiAgICBlbmQNClxzdG9wbHVhY29k ZQ0KDQpcc2V0dXBib2R5Zm9udA0KICAgIFtkZWphdnUsMTBwdF0NCg0KXHNldHVwbGF5b3V0DQog ICAgW21pZGRsZV0NCg0KXHNldHVwd2hpdGVzcGFjZQ0KICAgIFtiaWddDQo= --000000000000f1eda905b558918b Content-Type: application/octet-stream; name="test-syntax-highlighting.adoc" Content-Disposition: attachment; filename="test-syntax-highlighting.adoc" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ki4z9nfy3 PSBTeW50YXggaGlnaGxpZ2h0aW5nIHdpdGggQXNjaWlEb2MNCjpzb3VyY2UtaGlnaGxpZ2h0ZXI6 IHB5Z21lbnRzDQoNCj09IEhlbGxvIFdvcmxkIGluIEMgYW5kIENvblRlWHQNCg0KW3NvdXJjZSxj cHBdDQotLS0tDQojaW5jbHVkZSA8c3RkaW8uaD4NCg0KaW50IG1haW4oKQ0Kew0KICAgIHByaW50 ZigiSGVsbG8sIFdvcmxkIVxuIik7DQogICAgcmV0dXJuIDA7DQp9DQotLS0tDQoNCltzb3VyY2Us Y29udGV4dCxsaW5lbnVtc10NCi0tLS0NClxzdGFydHRleHQNCkhlbGxvIHdvcmxkIQ0KXHN0b3B0 ZXh0DQotLS0tDQo= --000000000000f1eda905b558918b 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 X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCg== --000000000000f1eda905b558918b--