From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: 35517@debbugs.gnu.org
Subject: bug#35517: 27.0.50; Small improvements to HTML mode
Date: Tue, 30 Apr 2019 16:38:33 -0700 [thread overview]
Message-ID: <87wojb5aiu.fsf@ericabrahamsen.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 351 bytes --]
The attached patch provides some small improvements to HTML mode. It
adds `html-div' and `html-span' skeleton commands, and changes the
newline/indent behavior of `html-ordered-list', `html-unordered-list',
`html-list-item', and `html-paragraph'. It also offers "class" and "id"
attributes to most HTML tags in `sgml-attributes'.
Comments welcome!
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Tweaks-to-html-mode.patch --]
[-- Type: text/x-patch, Size: 3306 bytes --]
From 0293d7bb423950264558363e4e3a3d695f323347 Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Tue, 30 Apr 2019 16:00:46 -0700
Subject: [PATCH] Tweaks to html mode
* lisp/textmodes/sgml-mode.el (sgml-attributes): Add the "class" and
"id" attributes when needed.
(html-mode-map): Add the `html-div' and `html-span' commands to the
`html-quick-keys' map.
(html-ordered-list, html-unordered-list, html-paragraph): Use the
"\n" element properly.
(html-div, html-span): New HTML skeletons.
---
lisp/textmodes/sgml-mode.el | 37 ++++++++++++++++++++++++++++---------
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index 9e3be99af1..b0d0ba8536 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -773,8 +773,16 @@ sgml-attributes
(symbolp (car (car alist))))
(setq car (car alist)
alist (cdr alist)))
- (or quiet
- (message "No attributes configured."))
+ (unless (or alist quiet)
+ (message "No attributes configured."))
+ (when alist
+ ;; Add class and id attributes if a) the element has any
+ ;; other attributes configured, and b) they're not already
+ ;; present.
+ (unless (assoc-string "class" alist)
+ (setq alist (cons '("class") alist)))
+ (unless (assoc-string "id" alist)
+ (setq alist (cons '("id") alist))))
(if (stringp (car alist))
(progn
(insert (if (eq (preceding-char) ?\s) "" ?\s)
@@ -1752,6 +1760,7 @@ html-mode-map
(define-key map "\C-c\C-ci" 'html-image)
(when html-quick-keys
(define-key map "\C-c-" 'html-horizontal-rule)
+ (define-key map "\C-cd" 'html-div)
(define-key map "\C-co" 'html-ordered-list)
(define-key map "\C-cu" 'html-unordered-list)
(define-key map "\C-cr" 'html-radio-buttons)
@@ -1759,7 +1768,8 @@ html-mode-map
(define-key map "\C-cl" 'html-list-item)
(define-key map "\C-ch" 'html-href-anchor)
(define-key map "\C-cn" 'html-name-anchor)
- (define-key map "\C-ci" 'html-image))
+ (define-key map "\C-ci" 'html-image)
+ (define-key map "\C-cs" 'html-span))
(define-key map "\C-c\C-s" 'html-autoview-mode)
(define-key map "\C-c\C-v" 'browse-url-of-buffer)
(define-key map [menu-bar html] (cons "HTML" menu-map))
@@ -2446,16 +2456,16 @@ html-line
(define-skeleton html-ordered-list
"HTML ordered list tags."
nil
- "<ol>" \n
+ \n "<ol>" \n
"<li>" _ (if sgml-xml-mode "</li>") \n
- "</ol>")
+ "</ol>" > \n)
(define-skeleton html-unordered-list
"HTML unordered list tags."
nil
- "<ul>" \n
+ \n "<ul>" \n
"<li>" _ (if sgml-xml-mode "</li>") \n
- "</ul>")
+ "</ul>" > \n)
(define-skeleton html-list-item
"HTML list item tag."
@@ -2466,8 +2476,17 @@ html-list-item
(define-skeleton html-paragraph
"HTML paragraph tag."
nil
- (if (bolp) nil ?\n)
- "<p>" _ (if sgml-xml-mode "</p>"))
+ \n "<p>" _ (if sgml-xml-mode "</p>"))
+
+(define-skeleton html-div
+ "HTML div tag."
+ nil
+ "<div>" > \n _ \n "</div>" >)
+
+(define-skeleton html-span
+ "HTML span tag."
+ nil
+ "<span>" > _ "</span>")
(define-skeleton html-checkboxes
"Group of connected checkbox inputs."
--
2.21.0
next reply other threads:[~2019-04-30 23:38 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-30 23:38 Eric Abrahamsen [this message]
2019-05-05 18:38 ` bug#35517: 27.0.50; Small improvements to HTML mode Eric Abrahamsen
2019-06-23 17:16 ` Lars Ingebrigtsen
2019-06-23 17:33 ` Eric Abrahamsen
2019-06-23 17:39 ` Lars Ingebrigtsen
2019-06-23 18:35 ` Eric Abrahamsen
2019-06-23 18:37 ` Lars Ingebrigtsen
2019-06-24 17:21 ` Eric Abrahamsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wojb5aiu.fsf@ericabrahamsen.net \
--to=eric@ericabrahamsen.net \
--cc=35517@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.