emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Feature request: lists with letters


From: Rasmus
Subject: Re: [O] Feature request: lists with letters
Date: Mon, 13 Feb 2017 17:55:23 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Nicolas Goaziou <address@hidden> writes:

> Hello,
>
> Rasmus <address@hidden> writes:
>
>> IOW the problems are all fairly easy to deal with once we've added :style
>> and :class support to more places in ox-html.
>
> Great. Would you, or anyone else, be interested in working on this?

Here's a quick attempt.  Do you want me to push it?

Rasmus

-- 
Bang bang
>From 0760016f2b100f4050e16f5682eca305178f3494 Mon Sep 17 00:00:00 2001
From: Rasmus <address@hidden>
Date: Mon, 13 Feb 2017 17:52:38 +0100
Subject: [PATCH] ox-html: plain list supports arbitrary attributes

* lisp/ox-html.el (org-html-plain-list-type): New defconst.
(org-html-begin-plain-list):
(org-html-plain-list):
(org-html-end-plain-list): Use new defconst and support attributes.
---
 lisp/ox-html.el | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index ef8c9b546..1f3def999 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -449,6 +449,10 @@ You can use `org-html-head' and `org-html-head-extra' to 
add to
 this style.  If you don't want to include this default style,
 customize `org-html-head-include-default-style'.")
 
+(defconst org-html-plain-list-type
+  '(ordered "ol" unordered "ul" descriptive "dl")
+  "Plist of Org and html list types.")
+
 
 ;;; User Configuration Variables
 
@@ -3138,34 +3142,35 @@ the plist used as a communication channel."
 
 ;;;; Plain List
 
-;; FIXME Maybe arg1 is not needed because <li value="20"> already sets
-;; the correct value for the item counter
-(defun org-html-begin-plain-list (type &optional arg1)
+(defun org-html-begin-plain-list (type &optional attributes)
   "Insert the beginning of the HTML list depending on TYPE.
 When ARG1 is a string, use it as the start parameter for ordered
 lists."
-  (pcase type
-    (`ordered
-     (format "<ol class=\"org-ol\"%s>"
-            (if arg1 (format " start=\"%d\"" arg1) "")))
-    (`unordered "<ul class=\"org-ul\">")
-    (`descriptive "<dl class=\"org-dl\">")))
+  (let* ((html-type (plist-get org-html-plain-list-type type))
+        (html-class (format "org-%s" html-type)))
+    (format "<%s %s>"
+           html-type
+           (org-html--make-attribute-string
+            (plist-put attributes :class
+                       (org-trim
+                        (mapconcat 'identity
+                                   (list html-class (plist-get attributes 
:class))
+                                   " ")))))))
 
 (defun org-html-end-plain-list (type)
   "Insert the end of the HTML list depending on TYPE."
-  (pcase type
-    (`ordered "</ol>")
-    (`unordered "</ul>")
-    (`descriptive "</dl>")))
+  (format "</%s>" (plist-get org-html-plain-list-type type)))
 
 (defun org-html-plain-list (plain-list contents _info)
   "Transcode a PLAIN-LIST element from Org to HTML.
 CONTENTS is the contents of the list.  INFO is a plist holding
 contextual information."
-  (let ((type (org-element-property :type plain-list)))
+  (let* ((type (org-element-property :type plain-list))
+        (attributes (org-export-read-attribute :attr_html plain-list)))
     (format "%s\n%s%s"
-           (org-html-begin-plain-list type)
-           contents (org-html-end-plain-list type))))
+           (org-html-begin-plain-list type attributes)
+           contents
+           (org-html-end-plain-list type))))
 
 ;;;; Plain Text
 
-- 
2.11.1


reply via email to

[Prev in Thread] Current Thread [Next in Thread]