From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nik Clayton Subject: PATCHES: Wrap code in , add an attribute for line number value Date: Tue, 4 Jun 2019 15:56:25 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000007b1dba058a7fd9fd" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:59557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hY9vd-0005K2-Py for emacs-orgmode@gnu.org; Tue, 04 Jun 2019 09:56:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hY9vc-0007We-Tw for emacs-orgmode@gnu.org; Tue, 04 Jun 2019 09:56:41 -0400 Received: from mail-it1-x129.google.com ([2607:f8b0:4864:20::129]:40785) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hY9vc-0007Vk-CC for emacs-orgmode@gnu.org; Tue, 04 Jun 2019 09:56:40 -0400 Received: by mail-it1-x129.google.com with SMTP id h11so207961itf.5 for ; Tue, 04 Jun 2019 06:56:39 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode --0000000000007b1dba058a7fd9fd Content-Type: multipart/alternative; boundary="0000000000007b1db6058a7fd9fb" --0000000000007b1db6058a7fd9fb Content-Type: text/plain; charset="UTF-8" Hi, Attached are two TINYCHANGE patches that provide an alternative way of displaying line numbers in generated HTML output. The current approach hardcodes a span containing preformated text. It's non-trivial to move this in the displayed output or adjust the formatting. The content is also part of the selectable part of the page, so if you copy/paste code from an ORG -> HTML file you get the line numbers as well. The first patch just wraps each line of code in a element. The second patch extends this to include the line number of that element as a special data- attribute. The value of this can be accessed in CSS to display the line number, format it in interesting ways, etc, while keeping it non-selectable, so that copy/pasting the code ignores the line numbers. N --0000000000007b1db6058a7fd9fb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Attached are two TINYCHA= NGE patches that provide an alternative way of displaying line numbers in g= enerated HTML output.

The current approach hardcod= es a span containing preformated text. It's non-trivial to move this in= the displayed output or adjust the formatting. The content is also part of= the selectable part of the page, so if you copy/paste code from an ORG -&g= t; HTML file you get the line numbers as well.

The= first patch just wraps each line of code in a <code> element. The se= cond patch extends this to include the line number of that element as a spe= cial data- attribute. The value of this can be accessed in CSS to display t= he line number, format it in interesting ways, etc, while keeping it non-se= lectable, so that copy/pasting the code ignores the line numbers.

N
--0000000000007b1db6058a7fd9fb-- --0000000000007b1dba058a7fd9fd Content-Type: application/octet-stream; name="0001-ox-html.el-Wrap-each-line-of-a-source-block-in-a-cod.patch" Content-Disposition: attachment; filename="0001-ox-html.el-Wrap-each-line-of-a-source-block-in-a-cod.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwhv8i070 RnJvbSAzY2MxYmVhOWE5MmNkNjZiYzk1YTczODI2NDQ2Nzk5MTRjMzBiMzEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWsgQ2xheXRvbiA8bmlrQG5nby5vcmcudWs+CkRhdGU6IFR1 ZSwgNCBKdW4gMjAxOSAxMTo1Nzo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBveC1odG1s LmVsOiBXcmFwIGVhY2ggbGluZSBvZiBhIHNvdXJjZSBibG9jayBpbiBhIGNvZGUKIGVsZW1lbnQK CiogbGlzcC9veC1odG1sLmVsIChvcmctaHRtbC1kby1mb3JtYXQtY29kZSk6IFdyYXAgZWFjaCBs aW5lIG9mIGEgc291cmNlIGJsb2NrCmluIGEgY29kZSBlbGVtZW50LgoKVGhpcyBtYWtlcyBpdCBz dHJhaWdodGZvcndhcmQgdG8gYWRkIGN1c3RvbSBkZWNvcmF0aW9ucyB0byBlYWNoIGxpbmUKdXNp bmcgQ1NTIDpiZWZvcmUgYW5kIDphZnRlciBwcm9wZXJ0aWVzLgoKVElOWUNIQU5HRQotLS0KIGxp c3Avb3gtaHRtbC5lbCB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpc3Avb3gtaHRtbC5lbCBiL2xpc3Avb3gtaHRtbC5l bAppbmRleCA0ZTdmZjVjMTAuLjE1NzkwNWVkNiAxMDA2NDQKLS0tIGEvbGlzcC9veC1odG1sLmVs CisrKyBiL2xpc3Avb3gtaHRtbC5lbApAQCAtMjI1NSw3ICsyMjU1LDcgQEAgbGluZSBvZiBjb2Rl LiIKIAkJKGZvcm1hdCAiPHNwYW4gY2xhc3M9XCJsaW5lbnJcIj4lczwvc3Bhbj4iCiAJCQkoZm9y bWF0IG51bS1mbXQgbGluZS1udW0pKSkKIAkgICAgICA7OyBUcmFuc2NvZGVkIHNyYyBsaW5lLgot CSAgICAgIGxvYworCSAgICAgIChmb3JtYXQgIjxjb2RlPiVzPC9jb2RlPiIgbG9jKQogCSAgICAg IDs7IEFkZCBsYWJlbCwgaWYgbmVlZGVkLgogCSAgICAgICh3aGVuIChhbmQgcmVmIHJldGFpbi1s YWJlbHMpIChmb3JtYXQgIiAoJXMpIiByZWYpKSkpCiAgICAgICAgOzsgTWFyayB0cmFuc2NvZGVk IGxpbmUgYXMgYW4gYW5jaG9yLCBpZiBuZWVkZWQuCi0tIAoyLjIxLjAud2luZG93cy4xCgo= --0000000000007b1dba058a7fd9fd Content-Type: application/octet-stream; name="0002-ox-html.el-Include-the-line-number-as-a-data-attribu.patch" Content-Disposition: attachment; filename="0002-ox-html.el-Include-the-line-number-as-a-data-attribu.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwhv8i0h1 RnJvbSBlNzk0YzBiNGM4ODVmYWY2NmViYTgwNTU3MDBmMzJiYzdiY2IyMTIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWsgQ2xheXRvbiA8bmlrQG5nby5vcmcudWs+CkRhdGU6IFR1 ZSwgNCBKdW4gMjAxOSAxMjo0MToyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBveC1odG1s LmVsOiBJbmNsdWRlIHRoZSBsaW5lIG51bWJlciBhcyBhIGRhdGEgYXR0cmlidXRlCgoqIGxpc3Av b3gtaHRtbC5lbCAob3JnLWh0bWwtZG8tZm9ybWF0LWNvZGUpOiBJZiBsaW5lIG51bWJlcnMgYXJl IGVuYWJsZWQKdGhlbiBpbmNsdWRlIGEgZGF0YS1veC1odG1sLWxpbmVuciBhdHRyaWJ1dGUgdGhh dCBjb250YWlucyB0aGlzIGxpbmUncwpsaW5lIG51bWJlci4KClRoaXMgYWxsb3dzIHlvdSB0byBo YXZlIG1vcmUgY29udHJvbCBvdmVyIGxpbmUgbnVtYmVyIGZvcm1hdHRpbmcgYW5kCnBsYWNlbWVu dC4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgQ1NTIGhpZGVzIHRoZSBzcGFuIHRoYXQgY29u dGFpbnMKdGhlIGxpbmUgbnVtYmVyLCBhbmQgdXNlcyBhIENTUyA6YmVmb3JlIHByb3BlcnR5IHRv IHBvc2l0aW9uIGFuZCBmb3JtYXQKdGhlIGxpbmUgbnVtYmVyIHdpdGggYSBib3JkZXIgaW5zdGVh ZCBvZiBhIHNlbWktY29sb24gc2VwYXJhdGluZyBjb250ZW50CmFuZCBsaW5lIG51bWJlci4KCnNw YW4ubGluZW5yIHsgZGlzcGxheTogbm9uZTsgfQoKY29kZVtkYXRhLW94LWh0bWwtbGluZW5yXTpi ZWZvcmUgewogIGNvbnRlbnQ6IGF0dHIoZGF0YS1veC1odG1sLWxpbmVucik7CiAgZGlzcGxheTog aW5saW5lLWJsb2NrOwogIGJvcmRlci1yaWdodDogMXB4IHNvbGlkOwogIHdpZHRoOiAxcmVtOwog IHRleHQtYWxpZ246IHJpZ2h0Owp9CgpUSU5ZQ0hBTkdFCi0tLQogbGlzcC9veC1odG1sLmVsIHwg NiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9saXNwL294LWh0bWwuZWwgYi9saXNwL294LWh0bWwuZWwKaW5kZXggMTU3 OTA1ZWQ2Li5mMWMwNmUwNjkgMTAwNjQ0Ci0tLSBhL2xpc3Avb3gtaHRtbC5lbAorKysgYi9saXNw L294LWh0bWwuZWwKQEAgLTIyNTUsNyArMjI1NSwxMSBAQCBsaW5lIG9mIGNvZGUuIgogCQkoZm9y bWF0ICI8c3BhbiBjbGFzcz1cImxpbmVuclwiPiVzPC9zcGFuPiIKIAkJCShmb3JtYXQgbnVtLWZt dCBsaW5lLW51bSkpKQogCSAgICAgIDs7IFRyYW5zY29kZWQgc3JjIGxpbmUuCi0JICAgICAgKGZv cm1hdCAiPGNvZGU+JXM8L2NvZGU+IiBsb2MpCisJICAgICAgKGZvcm1hdCAiPGNvZGUlcz4lczwv Y29kZT4iCisgICAgICAgICAgICAgICAgICAgICAgKGlmIG51bS1zdGFydAorICAgICAgICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0ICIgZGF0YS1veC1odG1sLWxpbmVucj1cIiVzXCIiIGxpbmUt bnVtKQorICAgICAgICAgICAgICAgICAgICAgICAgIiIpCisgICAgICAgICAgICAgICAgICAgICAg bG9jKQogCSAgICAgIDs7IEFkZCBsYWJlbCwgaWYgbmVlZGVkLgogCSAgICAgICh3aGVuIChhbmQg cmVmIHJldGFpbi1sYWJlbHMpIChmb3JtYXQgIiAoJXMpIiByZWYpKSkpCiAgICAgICAgOzsgTWFy ayB0cmFuc2NvZGVkIGxpbmUgYXMgYW4gYW5jaG9yLCBpZiBuZWVkZWQuCi0tIAoyLjIxLjAud2lu ZG93cy4xCgo= --0000000000007b1dba058a7fd9fd--