From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kaushal Modi Subject: Re: RFC: Proposal for an Org Special Block for ox-html Date: Fri, 25 May 2018 12:38:39 -0400 Message-ID: References: <87o9h56jdl.fsf@gmail.com> <87lgc87vf1.fsf@gmail.com> <87in7c7tye.fsf@gmail.com> <87d0xj7r79.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000049a18c056d0a67ae" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fMFk2-0004uG-2d for emacs-orgmode@gnu.org; Fri, 25 May 2018 12:38:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fMFjz-0006bq-9b for emacs-orgmode@gnu.org; Fri, 25 May 2018 12:38:56 -0400 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:51639) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fMFjz-0006bF-01 for emacs-orgmode@gnu.org; Fri, 25 May 2018 12:38:55 -0400 Received: by mail-wm0-x229.google.com with SMTP id j4-v6so16022638wme.1 for ; Fri, 25 May 2018 09:38:54 -0700 (PDT) In-Reply-To: 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-org list --00000000000049a18c056d0a67ae Content-Type: text/plain; charset="UTF-8" Hi Aaron, I really appreciate your feedback. That helped fine-tune my implementation of details/summary. I now moved that code to the ox-blackfriday library when I have this in org-blackfriday-special-block: It's basically QOL code: 1. Wraps the "details" portion in "

..

". 2. Accepts only ":open t" as a "true condition" to keep the details widget open by default. Detecting that inserts just "open" in the "details" element. So ":open nil" or ":open foo" would not result in inserting any open attr at all. The modified contents and attr-str in the below snippet are later used as: (format "<%s%s>\n%s\n" block-type attr-str contents block-type) ((string= block-type "details") (setq contents (let* ((str1 (concat contents "\n

")) (str2 (replace-regexp-in-string "\\(?:.\\|\n\\)*" "\\&\n

" str1)) (has-summary (not (string= str1 str2)))) (unless has-summary (setq str2 (concat "

" str1))) str2)) ;; Insert the "open" attribute only if user has ":open t" in ;; "#+attr_html". (when (org-string-nw-p attr-str) (when (string-match "\\(?1:open\\(?2:=\"\\(?3:t\\)\"\\)\\)" attr-str) (if (match-string 3 attr-str) ;if attr-str contains `open="t"' (setq attr-str (replace-match "" nil nil attr-str 2)) (setq attr-str (replace-match "" nil nil attr-str 1)))))) -- Kaushal Modi --00000000000049a18c056d0a67ae Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj5IaSBBYXJvbiw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pkkg cmVhbGx5IGFwcHJlY2lhdGUgeW91ciBmZWVkYmFjay4gVGhhdCBoZWxwZWQgZmluZS10dW5lIG15 IGltcGxlbWVudGF0aW9uIG9mIGRldGFpbHMvc3VtbWFyeS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2Pkkgbm93IG1vdmVkIHRoYXQgY29kZSB0byB0aGUgb3gtYmxhY2tmcmlkYXkgbGlicmFyeSB3 aGVuIEkgaGF2ZSB0aGlzIGluIG9yZy1ibGFja2ZyaWRheS1zcGVjaWFsLWJsb2NrOjwvZGl2Pjxk aXY+PGJyPjwvZGl2PjxkaXY+SXQmIzM5O3MgYmFzaWNhbGx5IFFPTCBjb2RlOjwvZGl2PjxkaXY+ PGJyPjwvZGl2PjxkaXY+MS4gV3JhcHMgdGhlICZxdW90O2RldGFpbHMmcXVvdDsgcG9ydGlvbiBp biAmcXVvdDsmbHQ7cCBjbGFzcz0mcXVvdDtkZXRhaWxzJnF1b3Q7Jmd0OyAuLiAmbHQ7L3AmZ3Q7 JnF1b3Q7LjwvZGl2PjxkaXY+Mi4gQWNjZXB0cyBvbmx5ICZxdW90OzpvcGVuIHQmcXVvdDsgYXMg YSAmcXVvdDt0cnVlIGNvbmRpdGlvbiZxdW90OyB0byBrZWVwIHRoZSBkZXRhaWxzIHdpZGdldCBv cGVuIGJ5IGRlZmF1bHQuIERldGVjdGluZyB0aGF0IGluc2VydHMganVzdCAmcXVvdDtvcGVuJnF1 b3Q7IGluIHRoZSAmcXVvdDtkZXRhaWxzJnF1b3Q7IGVsZW1lbnQuIFNvICZxdW90OzpvcGVuIG5p bCZxdW90OyBvciAmcXVvdDs6b3BlbiBmb28mcXVvdDsgd291bGQgbm90IHJlc3VsdCBpbiBpbnNl cnRpbmcgYW55IG9wZW4gYXR0ciBhdCBhbGwuPGJyPjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48YnI+ PC9kaXY+PGRpdj5UaGUgbW9kaWZpZWQgY29udGVudHMgYW5kIGF0dHItc3RyIGluIHRoZSBiZWxv dyBzbmlwcGV0IGFyZSBsYXRlciB1c2VkIGFzOiAoZm9ybWF0ICZxdW90OyZsdDslcyVzJmd0O1xu JXNcbiZsdDsvJXMmZ3Q7JnF1b3Q7PGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBi bG9jay10eXBlIGF0dHItc3RyIGNvbnRlbnRzIGJsb2NrLXR5cGUpPC9kaXY+PGRpdj48YnI+PC9k aXY+PGRpdj7CoMKgwqDCoMKgwqDCoMKgICgoc3RyaW5nPSBibG9jay10eXBlICZxdW90O2RldGFp bHMmcXVvdDspPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCAoc2V0cSBjb250ZW50czxicj7CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxldCogKChzdHIxIChjb25jYXQgY29udGVudHMgJnF1 b3Q7XG4mbHQ7L3AmZ3Q7JnF1b3Q7KSk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKHN0cjIgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZzxicj7CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZxdW90 OyZsdDtzdW1tYXJ5Jmd0O1xcKD86LlxcfFxuXFwpKiZsdDsvc3VtbWFyeSZndDsmcXVvdDs8YnI+ wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAmcXVvdDtcXCZhbXA7XG4mbHQ7cCBjbGFzcz1cJnF1b3Q7ZGV0YWlsc1wmcXVvdDsmZ3Q7JnF1 b3Q7PGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc3RyMSkpPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChoYXMtc3VtbWFyeSAobm90IChzdHJpbmc9IHN0cjEgc3RyMikpKSk8YnI+wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodW5sZXNzIGhhcy1zdW1tYXJ5PGJyPsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZXRxIHN0cjIgKGNvbmNhdCAmcXVv dDsmbHQ7cCBjbGFzcz1cJnF1b3Q7ZGV0YWlsc1wmcXVvdDsmZ3Q7JnF1b3Q7IHN0cjEpKSk8YnI+ wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHIyKSk8YnI+wqDCoMKgwqDCoMKg wqDCoMKgIDs7IEluc2VydCB0aGUgJnF1b3Q7b3BlbiZxdW90OyBhdHRyaWJ1dGUgb25seSBpZiB1 c2VyIGhhcyAmcXVvdDs6b3BlbiB0JnF1b3Q7IGluPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCA7OyAm cXVvdDsjK2F0dHJfaHRtbCZxdW90Oy48YnI+wqDCoMKgwqDCoMKgwqDCoMKgICh3aGVuIChvcmct c3RyaW5nLW53LXAgYXR0ci1zdHIpPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHdoZW4gKHN0 cmluZy1tYXRjaCAmcXVvdDtcXCg/MTpvcGVuXFwoPzI6PVwmcXVvdDtcXCg/Mzp0XFwpXCZxdW90 O1xcKVxcKSZxdW90OyBhdHRyLXN0cik8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGlm IChtYXRjaC1zdHJpbmcgMyBhdHRyLXN0cikgO2lmIGF0dHItc3RyIGNvbnRhaW5zIGBvcGVuPSZx dW90O3QmcXVvdDsmIzM5Ozxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChz ZXRxIGF0dHItc3RyIChyZXBsYWNlLW1hdGNoICZxdW90OyZxdW90OyBuaWwgbmlsIGF0dHItc3Ry IDIpKTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNldHEgYXR0ci1zdHIgKHJl cGxhY2UtbWF0Y2ggJnF1b3Q7JnF1b3Q7IG5pbCBuaWwgYXR0ci1zdHIgMSkpKSkpKTwvZGl2Pjxk aXY+PGJyPjwvZGl2PjwvZGl2Pi0tIDxicj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfc2ln bmF0dXJlIiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJlIj48cCBkaXI9Imx0ciI+S2F1 c2hhbCBNb2RpPC9wPg0KPC9kaXY+DQo= --00000000000049a18c056d0a67ae--