From thangalin@gmail.com Sun Nov 26 11:27:18 2023 From: Thangalin To: ntg-context@ntg.nl Subject: [NTG-context] Converting XHTML captions to ConTeXt captions Date: Sun, 26 Nov 2023 03:27:02 -0800 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4050569527227822973==" --===============4050569527227822973== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I'd like to capture a caption and apply it to the block-level element that immediately follows. In the MWE, is there a more "ConTeXt way" to accomplish the task of adding captions to tables, figures, blockquotes, etc? % SOT \startbuffer[demo]

Caption 1

table 1 with caption
table 2 without caption

Caption 3

table 3 with caption
\stopbuffer \startxmlsetups xml:demo \xmlsetsetup{\xmldocument}{*}{-} \xmlsetsetup{\xmldocument}{a|p|body|table}{xml:*} \xmlsetsetup{\xmldocument}{span[@class='caption']}{xml:span} \define\CaptionText{} \define\AnchorXref{} \stopxmlsetups \startxmlsetups xml:span \define\CaptionText{\xmlflush{#1}} \stopxmlsetups \startxmlsetups xml:a \define\AnchorXref{\xmlatt{#1}{data-type}-\xmlatt{#1}{name}} \stopxmlsetups \startxmlsetups xml:body \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\par \stopxmlsetups \startxmlsetups xml:table \blank \doifelsetext{\CaptionText}{% \startplacetable[ title={\ignorespaces\CaptionText{}\removeunwantedspaces.}, reference={\AnchorXref} ] \define\CaptionText{} \define\AnchorXref{} }{ \startplacetable } \startembeddedxtable \startxtablebody[body] \startxrow \startxcell \xmlflush{#1} \stopxcell \stopxrow \stopxtablebody \stopembeddedxtable \stopplacetable \blank \stopxmlsetups \xmlregistersetup{xml:demo} \starttext \xmlprocessbuffer{demo}{demo}{} \stoptext % EOT --===============4050569527227822973== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+PGRpdj5JJiMzOTtkIGxpa2UgdG8gY2FwdHVyZSBhIGNhcHRpb24gYW5k IGFwcGx5IGl0IHRvIHRoZSBibG9jay1sZXZlbCBlbGVtZW50IHRoYXQgaW1tZWRpYXRlbHkgZm9s bG93cy4gSW4gdGhlIE1XRSwgaXMgdGhlcmUgYSBtb3JlICZxdW90O0NvblRlWHQgd2F5JnF1b3Q7 IHRvIGFjY29tcGxpc2ggdGhlIHRhc2sgb2YgYWRkaW5nIGNhcHRpb25zIHRvIHRhYmxlcywgZmln dXJlcywgYmxvY2txdW90ZXMsIGV0Yz88L2Rpdj48ZGl2Pjxicj48L2Rpdj4lIFNPVDxicj5cc3Rh cnRidWZmZXJbZGVtb108YnI+Jmx0O2JvZHkmZ3Q7PGJyPiZsdDtwJmd0OyZsdDtzcGFuIGNsYXNz PSZxdW90O2NhcHRpb24mcXVvdDsmZ3Q7Q2FwdGlvbiAxICZsdDthIGRhdGEtdHlwZT0mcXVvdDt0 YmwmcXVvdDsgbmFtZT0mcXVvdDtsYmwtMSZxdW90Oy8mZ3Q7Jmx0Oy9zcGFuJmd0OyZsdDsvcCZn dDs8YnI+Jmx0O3RhYmxlJmd0O3RhYmxlIDEgd2l0aCBjYXB0aW9uJmx0Oy90YWJsZSZndDs8YnI+ Jmx0O3RhYmxlJmd0O3RhYmxlIDIgd2l0aG91dCBjYXB0aW9uJmx0Oy90YWJsZSZndDs8YnI+Jmx0 O3AmZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7Y2FwdGlvbiZxdW90OyZndDtDYXB0aW9uIDMgJmx0 O2EgZGF0YS10eXBlPSZxdW90O3RibCZxdW90OyBuYW1lPSZxdW90O2xibC0yJnF1b3Q7LyZndDsm bHQ7L3NwYW4mZ3Q7Jmx0Oy9wJmd0Ozxicj4mbHQ7dGFibGUmZ3Q7dGFibGUgMyB3aXRoIGNhcHRp b24mbHQ7L3RhYmxlJmd0Ozxicj4mbHQ7L2JvZHkmZ3Q7PGJyPlxzdG9wYnVmZmVyPGJyPjxicj5c c3RhcnR4bWxzZXR1cHMgeG1sOmRlbW88YnI+wqAgXHhtbHNldHNldHVwe1x4bWxkb2N1bWVudH17 Kn17LX08YnI+wqAgXHhtbHNldHNldHVwe1x4bWxkb2N1bWVudH17YXxwfGJvZHl8dGFibGV9e3ht bDoqfTxicj7CoCBceG1sc2V0c2V0dXB7XHhtbGRvY3VtZW50fXtzcGFuW0BjbGFzcz0mIzM5O2Nh cHRpb24mIzM5O119e3htbDpzcGFufTxicj48YnI+wqAgXGRlZmluZVxDYXB0aW9uVGV4dHt9PGJy PsKgIFxkZWZpbmVcQW5jaG9yWHJlZnt9PGJyPlxzdG9weG1sc2V0dXBzPGJyPjxicj5cc3RhcnR4 bWxzZXR1cHMgeG1sOnNwYW48YnI+wqAgXGRlZmluZVxDYXB0aW9uVGV4dHtceG1sZmx1c2h7IzF9 fTxicj5cc3RvcHhtbHNldHVwczxicj48YnI+XHN0YXJ0eG1sc2V0dXBzIHhtbDphPGJyPsKgIFxk ZWZpbmVcQW5jaG9yWHJlZntceG1sYXR0eyMxfXtkYXRhLXR5cGV9LVx4bWxhdHR7IzF9e25hbWV9 fTxicj5cc3RvcHhtbHNldHVwczxicj48YnI+XHN0YXJ0eG1sc2V0dXBzIHhtbDpib2R5IFx4bWxm bHVzaHsjMX0gXHN0b3B4bWxzZXR1cHM8YnI+XHN0YXJ0eG1sc2V0dXBzIHhtbDpwIFx4bWxmbHVz aHsjMX1ccGFyIFxzdG9weG1sc2V0dXBzPGJyPlxzdGFydHhtbHNldHVwcyB4bWw6dGFibGU8YnI+ wqAgXGJsYW5rPGJyPsKgIFxkb2lmZWxzZXRleHR7XENhcHRpb25UZXh0fXslPGJyPsKgIMKgIFxz dGFydHBsYWNldGFibGVbPGJyPsKgIMKgIMKgIHRpdGxlPXtcaWdub3Jlc3BhY2VzXENhcHRpb25U ZXh0e31ccmVtb3ZldW53YW50ZWRzcGFjZXMufSw8YnI+wqAgwqAgwqAgcmVmZXJlbmNlPXtcQW5j aG9yWHJlZn08YnI+wqAgwqAgXTxicj48YnI+wqAgwqAgXGRlZmluZVxDYXB0aW9uVGV4dHt9PGJy PsKgIMKgIFxkZWZpbmVcQW5jaG9yWHJlZnt9PGJyPsKgIH17PGJyPsKgIMKgIFxzdGFydHBsYWNl dGFibGU8YnI+wqAgfTxicj48YnI+wqAgwqAgXHN0YXJ0ZW1iZWRkZWR4dGFibGU8YnI+wqAgwqAg wqAgXHN0YXJ0eHRhYmxlYm9keVtib2R5XTxicj7CoCDCoCDCoCDCoCBcc3RhcnR4cm93PGJyPsKg IMKgIMKgIMKgIMKgIFxzdGFydHhjZWxsPGJyPsKgIMKgIMKgIMKgIMKgIMKgIFx4bWxmbHVzaHsj MX08YnI+wqAgwqAgwqAgwqAgwqAgXHN0b3B4Y2VsbDxicj7CoCDCoCDCoCDCoCBcc3RvcHhyb3c8 YnI+wqAgwqAgwqAgXHN0b3B4dGFibGVib2R5PGJyPsKgIMKgIFxzdG9wZW1iZWRkZWR4dGFibGU8 YnI+wqAgXHN0b3BwbGFjZXRhYmxlPGJyPsKgIFxibGFuazxicj5cc3RvcHhtbHNldHVwczxicj48 YnI+XHhtbHJlZ2lzdGVyc2V0dXB7eG1sOmRlbW99PGJyPjxicj5cc3RhcnR0ZXh0PGJyPsKgIFx4 bWxwcm9jZXNzYnVmZmVye2RlbW99e2RlbW99e308YnI+XHN0b3B0ZXh0PGJyPiUgRU9UPGJyPjwv ZGl2Pgo= --===============4050569527227822973==--