annotate lisp/textmodes/sgml-mode.el @ 24468:381eed7518c2

(ispell-dictionary-alist-1): Shorten autoloaded line. (ispell-dictionary-alist-2): Likewise. (ispell-dictionary-alist-3, ispell-dictionary-alist-4): New vars. (ispell-dictionary-alist-5, ispell-dictionary-alist-6): New vars. (ispell-dictionary-alist): Build from six pieces, not just two.
author Karl Heuer <kwzh@gnu.org>
date Wed, 10 Mar 1999 08:46:28 +0000
parents 9ef31386cb47
children d2a4359531e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1 ;;; sgml-mode.el --- SGML- and HTML-editing modes
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2
20922
3ae81bc17b19 (sgml-mode-common): Downcase key for
Dave Love <fx@gnu.org>
parents: 20394
diff changeset
3 ;; Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
844
bf829a2d63b4 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 828
diff changeset
4
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
5 ;; Author: James Clark <jjc@jclark.com>
23869
8d2bb5d1416a Update comment.
Karl Heuer <kwzh@gnu.org>
parents: 23726
diff changeset
6 ;; Adapted-By: ESR, Daniel Pfeiffer <occitan@esperanto.org>,
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
7 ;; F.Potorti@cnuce.cnr.it
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
8 ;; Keywords: wp, hypermedia, comm, languages
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
9
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
11
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
12244
ac7375e60931 Update GPL to version 2.
Karl Heuer <kwzh@gnu.org>
parents: 3366
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
15 ;; any later version.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
16
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
20 ;; GNU General Public License for more details.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
21
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14168
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14168
diff changeset
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14168
diff changeset
25 ;; Boston, MA 02111-1307, USA.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
26
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
27 ;;; Commentary:
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
28
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
29 ;; Configurable major mode for editing document in the SGML standard general
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
30 ;; markup language. As an example contains a mode for editing the derived
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
31 ;; HTML hypertext markup language.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
32
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
33 ;;; Code:
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
34
23726
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
35 (eval-when-compile (require 'skeleton))
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
36
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
37 (defgroup sgml nil
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
38 "SGML editing mode"
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
39 :group 'languages)
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
40
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
41 (defcustom sgml-transformation 'identity
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
42 "*Default value for `skeleton-transformation' (which see) in SGML mode."
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
43 :type 'function
17530
9fb83ef40566 (sgml-transformation): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 17500
diff changeset
44 :group 'sgml)
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
45
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
46 (put 'sgml-transformation 'variable-interactive
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
47 "aTransformation function: ")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
48
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
49 ;; As long as Emacs' syntax can't be complemented with predicates to context
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
50 ;; sensitively confirm the syntax of characters, we have to live with this
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
51 ;; kludgy kind of tradeoff.
16404
0cdf66e69ad8 (sgml-specials): Delete `-' from the list.
Richard M. Stallman <rms@gnu.org>
parents: 15867
diff changeset
52 (defvar sgml-specials '(?\")
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
53 "List of characters that have a special meaning for SGML mode.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
54 This list is used when first loading the sgml-mode library.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
55 The supported characters and potential disadvantages are:
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
56
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
57 ?\\\" Makes \" in text start a string.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
58 ?' Makes ' in text start a string.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
59 ?- Makes -- in text start a comment.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
60
22319
18b5b2445726 (sgml-font-lock-keywords-1): Add -. as
Dave Love <fx@gnu.org>
parents: 22222
diff changeset
61 When only one of ?\\\" or ?' are included, \"'\" or '\"', as can be found in
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
62 DTDs, start a string. To partially avoid this problem this also makes these
16404
0cdf66e69ad8 (sgml-specials): Delete `-' from the list.
Richard M. Stallman <rms@gnu.org>
parents: 15867
diff changeset
63 self insert as named entities depending on `sgml-quick-keys'.
0cdf66e69ad8 (sgml-specials): Delete `-' from the list.
Richard M. Stallman <rms@gnu.org>
parents: 15867
diff changeset
64
0cdf66e69ad8 (sgml-specials): Delete `-' from the list.
Richard M. Stallman <rms@gnu.org>
parents: 15867
diff changeset
65 Including ?- has the problem of affecting dashes that have nothing to do
0cdf66e69ad8 (sgml-specials): Delete `-' from the list.
Richard M. Stallman <rms@gnu.org>
parents: 15867
diff changeset
66 with comments, so we normally turn it off.")
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
67
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
68 (defvar sgml-quick-keys nil
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
69 "Use <, >, &, SPC and `sgml-specials' keys \"electrically\" when non-nil.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
70 This takes effect when first loading the sgml-mode library.")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
71
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
72
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
73 (defvar sgml-mode-map
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
74 (let ((map (list 'keymap (make-vector 256 nil)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
75 (menu-map (make-sparse-keymap "SGML")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
76 (define-key map "\t" 'indent-relative-maybe)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
77 (define-key map "\C-c\C-i" 'sgml-tags-invisible)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
78 (define-key map "/" 'sgml-slash)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
79 (define-key map "\C-c\C-n" 'sgml-name-char)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
80 (define-key map "\C-c\C-t" 'sgml-tag)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
81 (define-key map "\C-c\C-a" 'sgml-attributes)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
82 (define-key map "\C-c\C-b" 'sgml-skip-tag-backward)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
83 (define-key map [?\C-c left] 'sgml-skip-tag-backward)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
84 (define-key map "\C-c\C-f" 'sgml-skip-tag-forward)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
85 (define-key map [?\C-c right] 'sgml-skip-tag-forward)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
86 (define-key map "\C-c\C-d" 'sgml-delete-tag)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
87 (define-key map "\C-c\^?" 'sgml-delete-tag)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
88 (define-key map "\C-c?" 'sgml-tag-help)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
89 (define-key map "\C-c8" 'sgml-name-8bit-mode)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
90 (define-key map "\C-c\C-v" 'sgml-validate)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
91 (if sgml-quick-keys
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
92 (progn
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
93 (define-key map "&" 'sgml-name-char)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
94 (define-key map "<" 'sgml-tag)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
95 (define-key map " " 'sgml-auto-attributes)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
96 (define-key map ">" 'sgml-maybe-end-tag)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
97 (if (memq ?\" sgml-specials)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
98 (define-key map "\"" 'sgml-name-self))
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
99 (if (memq ?' sgml-specials)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
100 (define-key map "'" 'sgml-name-self))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
101 (let ((c 127)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
102 (map (nth 1 map)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
103 (while (< (setq c (1+ c)) 256)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
104 (aset map c 'sgml-maybe-name-self)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
105 (define-key map [menu-bar sgml] (cons "SGML" menu-map))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
106 (define-key menu-map [sgml-validate] '("Validate" . sgml-validate))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
107 (define-key menu-map [sgml-name-8bit-mode]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
108 '("Toggle 8 Bit Insertion" . sgml-name-8bit-mode))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
109 (define-key menu-map [sgml-tags-invisible]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
110 '("Toggle Tag Visibility" . sgml-tags-invisible))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
111 (define-key menu-map [sgml-tag-help]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
112 '("Describe Tag" . sgml-tag-help))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
113 (define-key menu-map [sgml-delete-tag]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
114 '("Delete Tag" . sgml-delete-tag))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
115 (define-key menu-map [sgml-skip-tag-forward]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
116 '("Forward Tag" . sgml-skip-tag-forward))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
117 (define-key menu-map [sgml-skip-tag-backward]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
118 '("Backward Tag" . sgml-skip-tag-backward))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
119 (define-key menu-map [sgml-attributes]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
120 '("Insert Attributes" . sgml-attributes))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
121 (define-key menu-map [sgml-tag] '("Insert Tag" . sgml-tag))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
122 map)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
123 "Keymap for SGML mode. See also `sgml-specials'.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
124
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
125
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
126 (defvar sgml-mode-syntax-table
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
127 (let ((table (copy-syntax-table text-mode-syntax-table)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
128 (modify-syntax-entry ?< "(>" table)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
129 (modify-syntax-entry ?> ")<" table)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
130 (if (memq ?- sgml-specials)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
131 (modify-syntax-entry ?- "_ 1234" table))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
132 (if (memq ?\" sgml-specials)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
133 (modify-syntax-entry ?\" "\"\"" table))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
134 (if (memq ?' sgml-specials)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
135 (modify-syntax-entry ?\' "\"'" table))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
136 table)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
137 "Syntax table used in SGML mode. See also `sgml-specials'.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
138
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
139
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
140 (defcustom sgml-name-8bit-mode nil
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
141 "*When non-nil, insert 8 bit characters with their names."
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
142 :type 'boolean
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
143 :group 'sgml)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
144
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
145 (defvar sgml-char-names
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
146 [nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
147 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
148 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
149 nil nil nil nil nil nil nil nil
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
150 "nbsp" "excl" "quot" "num" "dollar" "percnt" "amp" "apos"
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
151 "lpar" "rpar" "ast" "plus" "comma" "hyphen" "period" "sol"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
152 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
153 nil nil "colon" "semi" "lt" "eq" "gt" "quest"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
154 "commat" nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
155 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
156 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
157 nil nil nil "lsqb" nil "rsqb" "uarr" "lowbar"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
158 "lsquo" nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
159 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
160 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
161 nil nil nil "lcub" "verbar" "rcub" "tilde" nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
162 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
163 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
164 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
165 nil nil nil nil nil nil nil nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
166 "nbsp" "iexcl" "cent" "pound" "curren" "yen" "brvbar" "sect"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
167 "uml" "copy" "ordf" "laquo" "not" "shy" "reg" "macr"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
168 "ring" "plusmn" "sup2" "sup3" "acute" "micro" "para" "middot"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
169 "cedil" "sup1" "ordm" "raquo" "frac14" "half" "frac34" "iquest"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
170 "Agrave" "Aacute" "Acirc" "Atilde" "Auml" "Aring" "AElig" "Ccedil"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
171 "Egrave" "Eacute" "Ecirc" "Euml" "Igrave" "Iacute" "Icirc" "Iuml"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
172 "ETH" "Ntilde" "Ograve" "Oacute" "Ocirc" "Otilde" "Ouml" nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
173 "Oslash" "Ugrave" "Uacute" "Ucirc" "Uuml" "Yacute" "THORN" "szlig"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
174 "agrave" "aacute" "acirc" "atilde" "auml" "aring" "aelig" "ccedil"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
175 "egrave" "eacute" "ecirc" "euml" "igrave" "iacute" "icirc" "iuml"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
176 "eth" "ntilde" "ograve" "oacute" "ocirc" "otilde" "ouml" "divide"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
177 "oslash" "ugrave" "uacute" "ucirc" "uuml" "yacute" "thorn" "yuml"]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
178 "Vector of symbolic character names without `&' and `;'.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
179
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
180
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
181 ;; sgmls is a free SGML parser available from
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
182 ;; ftp.uu.net:pub/text-processing/sgml
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
183 ;; Its error messages can be parsed by next-error.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
184 ;; The -s option suppresses output.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
185
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
186 (defcustom sgml-validate-command "sgmls -s"
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
187 "*The command to validate an SGML document.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
188 The file name of current buffer file name will be appended to this,
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
189 separated by a space."
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
190 :type 'string
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
191 :group 'sgml)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
192
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
193 (defvar sgml-saved-validate-command nil
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
194 "The command last used to validate in this buffer.")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
195
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
196
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
197 ;;; I doubt that null end tags are used much for large elements,
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
198 ;;; so use a small distance here.
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
199 (defcustom sgml-slash-distance 1000
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
200 "*If non-nil, is the maximum distance to search for matching `/'."
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
201 :type '(choice (const nil) integer)
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
202 :group 'sgml)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
203
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
204 (defconst sgml-start-tag-regex
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
205 "<[A-Za-z]\\([-.A-Za-z0-9= \n\t]\\|\"[^\"]*\"\\|'[^']*'\\)*"
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
206 "Regular expression that matches a non-empty start tag.
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
207 Any terminating `>' or `/' is not matched.")
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
208
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
209
21780
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
210 ;; internal
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
211 (defconst sgml-font-lock-keywords-1
23726
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
212 '(("<\\([!?][a-z][-.a-z0-9]*\\)" 1 font-lock-keyword-face)
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
213 ("<\\(/?[a-z][-.a-z0-9]*\\)" 1 font-lock-function-name-face)
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
214 ("[&%][a-z][-.a-z0-9]*;?" . font-lock-variable-name-face)
22319
18b5b2445726 (sgml-font-lock-keywords-1): Add -. as
Dave Love <fx@gnu.org>
parents: 22222
diff changeset
215 ("<! *--.*-- *>" . font-lock-comment-face)))
21780
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
216
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
217 (defconst sgml-font-lock-keywords-2 ())
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
218
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
219 ;; for font-lock, but must be defvar'ed after
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
220 ;; sgml-font-lock-keywords-1 and sgml-font-lock-keywords-2 above
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
221 (defvar sgml-font-lock-keywords sgml-font-lock-keywords-1
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
222 "*Rules for highlighting SGML code. See also `sgml-tag-face-alist'.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
223
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
224 ;; internal
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
225 (defvar sgml-face-tag-alist ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
226 "Alist of face and tag name for facemenu.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
227
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
228 (defvar sgml-tag-face-alist ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
229 "Tag names and face or list of faces to fontify with when invisible.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
230 When `font-lock-maximum-decoration' is 1 this is always used for fontifying.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
231 When more these are fontified together with `sgml-font-lock-keywords'.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
232
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
233
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
234 (defvar sgml-display-text ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
235 "Tag names as lowercase symbols, and display string when invisible.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
236
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
237 ;; internal
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
238 (defvar sgml-tags-invisible nil)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
239
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
240
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
241 (defcustom sgml-tag-alist
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
242 '(("![" ("ignore" t) ("include" t))
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
243 ("!attlist")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
244 ("!doctype")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
245 ("!element")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
246 ("!entity"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
247 "*Alist of tag names for completing read and insertion rules.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
248 This alist is made up as
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
249
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
250 ((\"tag\" . TAGRULE)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
251 ...)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
252
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
253 TAGRULE is a list of optionally `t' (no endtag) or `\\n' (separate endtag by
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
254 newlines) or a skeleton with `nil', `t' or `\\n' in place of the interactor
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
255 followed by an ATTRIBUTERULE (for an always present attribute) or an
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
256 attribute alist.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
257
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
258 The attribute alist is made up as
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
259
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
260 ((\"attribute\" . ATTRIBUTERULE)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
261 ...)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
262
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
263 ATTRIBUTERULE is a list of optionally `t' (no value when no input) followed by
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
264 an optional alist of possible values."
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
265 :type '(repeat (cons (string :tag "Tag Name")
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
266 (repeat :tag "Tag Rule" sexp)))
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
267 :group 'sgml)
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
268
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
269 (defcustom sgml-tag-help
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
270 '(("!" . "Empty declaration for comment")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
271 ("![" . "Embed declarations with parser directive")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
272 ("!attlist" . "Tag attributes declaration")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
273 ("!doctype" . "Document type (DTD) declaration")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
274 ("!element" . "Tag declaration")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
275 ("!entity" . "Entity (macro) declaration"))
17432
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
276 "*Alist of tag name and short description."
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
277 :type '(repeat (cons (string :tag "Tag Name")
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
278 (string :tag "Description")))
5d2e0051fe39 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 17309
diff changeset
279 :group 'sgml)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
280
23726
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
281 (defvar v2) ; free for skeleton
ca83df619ee6 Require skeleton when compiling.
Dave Love <fx@gnu.org>
parents: 23652
diff changeset
282
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
283 (defun sgml-mode-common (sgml-tag-face-alist sgml-display-text)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
284 "Common code for setting up `sgml-mode' and derived modes.
21780
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
285 SGML-TAG-FACE-ALIST is used for calculating `sgml-font-lock-keywords-2'.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
286 SGML-DISPLAY-TEXT sets up alternate text for when tags are invisible (see
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
287 varables of same name)."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
288 (setq local-abbrev-table text-mode-abbrev-table)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
289 (set-syntax-table sgml-mode-syntax-table)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
290 (make-local-variable 'indent-line-function)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
291 (make-local-variable 'paragraph-start)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
292 (make-local-variable 'paragraph-separate)
21971
23bf812d4937 (sgml-mode-common): Make local binding from adaptive-fill-regexp.
Richard M. Stallman <rms@gnu.org>
parents: 21780
diff changeset
293 (make-local-variable 'adaptive-fill-regexp)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
294 (make-local-variable 'sgml-saved-validate-command)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
295 (make-local-variable 'comment-start)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
296 (make-local-variable 'comment-end)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
297 (make-local-variable 'comment-indent-function)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
298 (make-local-variable 'comment-start-skip)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
299 (make-local-variable 'comment-indent-function)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
300 (make-local-variable 'sgml-tags-invisible)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
301 (make-local-variable 'skeleton-transformation)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
302 (make-local-variable 'skeleton-further-elements)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
303 (make-local-variable 'skeleton-end-hook)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
304 (make-local-variable 'font-lock-defaults)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
305 (make-local-variable 'sgml-font-lock-keywords-1)
21780
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
306 (make-local-variable 'sgml-font-lock-keywords-2)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
307 (make-local-variable 'facemenu-add-face-function)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
308 (make-local-variable 'facemenu-end-add-face)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
309 ;;(make-local-variable 'facemenu-remove-face-function)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
310 (and sgml-tag-face-alist
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
311 (not (assq 1 sgml-tag-face-alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
312 (nconc sgml-tag-face-alist
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
313 `((1 (,(concat "<\\("
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
314 (mapconcat 'car sgml-tag-face-alist "\\|")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
315 "\\)\\([ \t].+\\)?>\\(.+\\)</\\1>")
20922
3ae81bc17b19 (sgml-mode-common): Downcase key for
Dave Love <fx@gnu.org>
parents: 20394
diff changeset
316 3 (cdr (assoc (downcase (match-string 1))
3ae81bc17b19 (sgml-mode-common): Downcase key for
Dave Love <fx@gnu.org>
parents: 20394
diff changeset
317 ',sgml-tag-face-alist)))))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
318 (setq indent-line-function 'indent-relative-maybe
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
319 ;; A start or end tag by itself on a line separates a paragraph.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
320 ;; This is desirable because SGML discards a newline that appears
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
321 ;; immediately after a start tag or immediately before an end tag.
19483
51345fa7e08b (sgml-mode-common): Set paragraph-start like paragraph-separate.
Richard M. Stallman <rms@gnu.org>
parents: 17551
diff changeset
322 paragraph-separate "[ \t]*$\\|\
51345fa7e08b (sgml-mode-common): Set paragraph-start like paragraph-separate.
Richard M. Stallman <rms@gnu.org>
parents: 17551
diff changeset
323 \[ \t]*</?\\([A-Za-z]\\([-.A-Za-z0-9= \t\n]\\|\"[^\"]*\"\\|'[^']*'\\)*\\)?>$"
51345fa7e08b (sgml-mode-common): Set paragraph-start like paragraph-separate.
Richard M. Stallman <rms@gnu.org>
parents: 17551
diff changeset
324 paragraph-start "[ \t]*$\\|\
51345fa7e08b (sgml-mode-common): Set paragraph-start like paragraph-separate.
Richard M. Stallman <rms@gnu.org>
parents: 17551
diff changeset
325 \[ \t]*</?\\([A-Za-z]\\([-.A-Za-z0-9= \t\n]\\|\"[^\"]*\"\\|'[^']*'\\)*\\)?>$"
51345fa7e08b (sgml-mode-common): Set paragraph-start like paragraph-separate.
Richard M. Stallman <rms@gnu.org>
parents: 17551
diff changeset
326 adaptive-fill-regexp "[ \t]*"
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
327 comment-start "<!-- "
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
328 comment-end " -->"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
329 comment-indent-function 'sgml-comment-indent
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
330 ;; This will allow existing comments within declarations to be
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
331 ;; recognized.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
332 comment-start-skip "--[ \t]*"
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
333 skeleton-transformation sgml-transformation
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
334 skeleton-further-elements '((completion-ignore-case t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
335 skeleton-end-hook (lambda ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
336 (or (eolp)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
337 (not (or (eq v2 '\n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
338 (eq (car-safe v2) '\n)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
339 (newline-and-indent)))
21780
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
340 sgml-font-lock-keywords-2 (append
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
341 sgml-font-lock-keywords-1
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
342 (cdr (assq 1 sgml-tag-face-alist)))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
343 font-lock-defaults '((sgml-font-lock-keywords
21780
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
344 sgml-font-lock-keywords-1
5dc3fe7cd300 (sgml-font-lock-keywords-1): Copy initialization from sgml-font-lock-keywords.
Richard M. Stallman <rms@gnu.org>
parents: 20922
diff changeset
345 sgml-font-lock-keywords-2)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
346 nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
347 t)
17433
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
348 facemenu-add-face-function 'sgml-mode-facemenu-add-face-function)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
349 (while sgml-display-text
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
350 (put (car (car sgml-display-text)) 'before-string
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
351 (cdr (car sgml-display-text)))
22772
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
352 (setq sgml-display-text (cdr sgml-display-text))))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
353
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
354
17433
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
355 (defun sgml-mode-facemenu-add-face-function (face end)
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
356 (if (setq face (cdr (assq face sgml-face-tag-alist)))
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
357 (progn
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
358 (setq face (funcall skeleton-transformation face))
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
359 (setq facemenu-end-add-face (concat "</" face ">"))
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
360 (concat "<" face ">"))
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
361 (error "Face not configured for %s mode." mode-name)))
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
362
7df65491ab5f (sgml-mode-facemenu-add-face-function): New function.
Richard M. Stallman <rms@gnu.org>
parents: 17432
diff changeset
363
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
364 ;;;###autoload
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
365 (defun sgml-mode (&optional function)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
366 "Major mode for editing SGML documents.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
367 Makes > match <. Makes / blink matching /.
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
368 Keys <, &, SPC within <>, \" and ' can be electric depending on
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
369 `sgml-quick-keys'.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
370
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
371 An argument of N to a tag-inserting command means to wrap it around
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
372 the next N words. In Transient Mark mode, when the mark is active,
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
373 N defaults to -1, which means to wrap it around the current region.
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
374
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
375 If you like upcased tags, put (setq sgml-transformation 'upcase) in
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
376 your `.emacs' file.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
377
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
378 Use \\[sgml-validate] to validate your document with an SGML parser.
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
379
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
380 Do \\[describe-variable] sgml- SPC to see available variables.
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
381 Do \\[describe-key] on the following bindings to discover what they do.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
382 \\{sgml-mode-map}"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
383 (interactive)
22772
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
384 (kill-all-local-variables)
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
385 (setq mode-name "SGML"
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
386 major-mode 'sgml-mode)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
387 (sgml-mode-common sgml-tag-face-alist sgml-display-text)
20394
dad8223e709d (sgml-mode): Set imenu-generic-expression.
Karl Heuer <kwzh@gnu.org>
parents: 19483
diff changeset
388 ;; Set imenu-generic-expression here, rather than in sgml-mode-common,
dad8223e709d (sgml-mode): Set imenu-generic-expression.
Karl Heuer <kwzh@gnu.org>
parents: 19483
diff changeset
389 ;; because this definition probably is not useful in HTML mode.
dad8223e709d (sgml-mode): Set imenu-generic-expression.
Karl Heuer <kwzh@gnu.org>
parents: 19483
diff changeset
390 (make-local-variable 'imenu-generic-expression)
dad8223e709d (sgml-mode): Set imenu-generic-expression.
Karl Heuer <kwzh@gnu.org>
parents: 19483
diff changeset
391 (setq imenu-generic-expression
dad8223e709d (sgml-mode): Set imenu-generic-expression.
Karl Heuer <kwzh@gnu.org>
parents: 19483
diff changeset
392 "<!\\(element\\|entity\\)[ \t\n]+%?[ \t\n]*\\([A-Za-z][-A-Za-z.0-9]*\\)")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
393 (use-local-map sgml-mode-map)
22772
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
394 (run-hooks 'text-mode-hook 'sgml-mode-hook))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
395
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
396
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
397 (defun sgml-comment-indent ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
398 (if (and (looking-at "--")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
399 (not (and (eq (preceding-char) ?!)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
400 (eq (char-after (- (point) 2)) ?<))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
401 (progn
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
402 (skip-chars-backward " \t")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
403 (max comment-column (1+ (current-column))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
404 0))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
405
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
406
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
407
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
408 (defun sgml-slash (arg)
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
409 "Insert `/' and display any previous matching `/'.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
410 Two `/'s are treated as matching if the first `/' ends a net-enabling
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
411 start tag, and the second `/' is the corresponding null end tag."
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
412 (interactive "p")
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
413 (insert-char ?/ arg)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
414 (if (> arg 0)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
415 (let ((oldpos (point))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
416 (blinkpos)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
417 (level 0))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
418 (save-excursion
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
419 (save-restriction
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
420 (if sgml-slash-distance
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
421 (narrow-to-region (max (point-min)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
422 (- (point) sgml-slash-distance))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
423 oldpos))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
424 (if (and (re-search-backward sgml-start-tag-regex (point-min) t)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
425 (eq (match-end 0) (1- oldpos)))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
426 ()
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
427 (goto-char (1- oldpos))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
428 (while (and (not blinkpos)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
429 (search-backward "/" (point-min) t))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
430 (let ((tagend (save-excursion
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
431 (if (re-search-backward sgml-start-tag-regex
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
432 (point-min) t)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
433 (match-end 0)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
434 nil))))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
435 (if (eq tagend (point))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
436 (if (eq level 0)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
437 (setq blinkpos (point))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
438 (setq level (1- level)))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
439 (setq level (1+ level)))))))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
440 (if blinkpos
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
441 (progn
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
442 (goto-char blinkpos)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
443 (if (pos-visible-in-window-p)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
444 (sit-for 1)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
445 (message "Matches %s"
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
446 (buffer-substring (progn
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
447 (beginning-of-line)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
448 (point))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
449 (1+ blinkpos))))))))))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
450
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
451
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
452 (defun sgml-name-char (&optional char)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
453 "Insert a symbolic character name according to `sgml-char-names'.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
454 8 bit chars may be inserted with the meta key as in M-SPC for no break space,
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
455 or M-- for a soft hyphen."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
456 (interactive "*")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
457 (insert ?&)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
458 (or char
17500
e8d7c7e2acab (sgml-name-char): Ask user with a prompt.
Richard M. Stallman <rms@gnu.org>
parents: 17491
diff changeset
459 (setq char (read-quoted-char "Enter char or octal number")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
460 (delete-backward-char 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
461 (insert char)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
462 (undo-boundary)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
463 (delete-backward-char 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
464 (insert ?&
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
465 (or (aref sgml-char-names char)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
466 (format "#%d" char))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
467 ?\;))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
468
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
469
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
470 (defun sgml-name-self ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
471 "Insert a symbolic character name according to `sgml-char-names'."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
472 (interactive "*")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
473 (sgml-name-char last-command-char))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
474
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
475
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
476 (defun sgml-maybe-name-self ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
477 "Insert a symbolic character name according to `sgml-char-names'."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
478 (interactive "*")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
479 (if sgml-name-8bit-mode
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
480 (sgml-name-char last-command-char)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
481 (self-insert-command 1)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
482
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
483
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
484 (defun sgml-name-8bit-mode ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
485 "Toggle insertion of 8 bit characters."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
486 (interactive)
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
487 (setq sgml-name-8bit-mode (not sgml-name-8bit-mode))
23652
42bf6553a2e9 (html-mode): Doc fix.
Andreas Schwab <schwab@suse.de>
parents: 22772
diff changeset
488 (message "sgml name 8 bit mode is now %s"
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
489 (if sgml-name-8bit-mode "ON" "OFF")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
490
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
491
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
492 ;; When an element of a skeleton is a string "str", it is passed
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
493 ;; through skeleton-transformation and inserted. If "str" is to be
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
494 ;; inserted literally, one should obtain it as the return value of a
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
495 ;; function, e.g. (identity "str").
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
496
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
497 (define-skeleton sgml-tag
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
498 "Prompt for a tag and insert it, optionally with attributes.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
499 Completion and configuration are done according to `sgml-tag-alist'.
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
500 If you like tags and attributes in uppercase do \\[set-variable]
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
501 skeleton-transformation RET upcase RET, or put this in your `.emacs':
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
502 (setq sgml-transformation 'upcase)"
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
503 (funcall skeleton-transformation
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
504 (completing-read "Tag: " sgml-tag-alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
505 ?< (setq v1 (eval str)) |
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
506 (("") -1 '(undo-boundary) (identity "&lt;")) | ; see comment above
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
507 (("") '(setq v2 (sgml-attributes v1 t)) ?>
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
508 (if (string= "![" v1)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
509 (prog1 '(("") " [ " _ " ]]")
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
510 (backward-char))
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
511 (if (or (eq v2 t)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
512 (string-match "^[/!?]" v1))
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
513 ()
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
514 (if (symbolp v2)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
515 '(("") v2 _ v2 "</" v1 ?>)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
516 (if (eq (car v2) t)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
517 (cons '("") (cdr v2))
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
518 (append '(("") (car v2))
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
519 (cdr v2)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
520 '(resume: (car v2) _ "</" v1 ?>))))))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
521
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
522 (autoload 'skeleton-read "skeleton")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
523
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
524 (defun sgml-attributes (tag &optional quiet)
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
525 "When at top level of a tag, interactively insert attributes.
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
526
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
527 Completion and configuration of TAG are done according to `sgml-tag-alist'.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
528 If QUIET, do not print a message when there are no attributes for TAG."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
529 (interactive (list (save-excursion (sgml-beginning-of-tag t))))
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
530 (or (stringp tag) (error "Wrong context for adding attribute"))
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
531 (if tag
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
532 (let ((completion-ignore-case t)
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
533 (alist (cdr (assoc (downcase tag) sgml-tag-alist)))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
534 car attribute i)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
535 (if (or (symbolp (car alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
536 (symbolp (car (car alist))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
537 (setq car (car alist)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
538 alist (cdr alist)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
539 (or quiet
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
540 (message "No attributes configured."))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
541 (if (stringp (car alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
542 (progn
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
543 (insert (if (eq (preceding-char) ? ) "" ? )
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
544 (funcall skeleton-transformation (car alist)))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
545 (sgml-value alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
546 (setq i (length alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
547 (while (> i 0)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
548 (insert ? )
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
549 (insert (funcall skeleton-transformation
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
550 (setq attribute
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
551 (skeleton-read '(completing-read
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
552 "Attribute: "
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
553 alist)))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
554 (if (string= "" attribute)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
555 (setq i 0)
20922
3ae81bc17b19 (sgml-mode-common): Downcase key for
Dave Love <fx@gnu.org>
parents: 20394
diff changeset
556 (sgml-value (assoc (downcase attribute) alist))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
557 (setq i (1- i))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
558 (if (eq (preceding-char) ? )
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
559 (delete-backward-char 1)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
560 car)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
561
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
562 (defun sgml-auto-attributes (arg)
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
563 "Self insert the character typed; at top level of tag, prompt for attributes.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
564 With prefix argument, only self insert."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
565 (interactive "*P")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
566 (let ((point (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
567 tag)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
568 (if (or arg
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
569 (not sgml-tag-alist) ; no message when nothing configured
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
570 (symbolp (setq tag (save-excursion (sgml-beginning-of-tag t))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
571 (eq (aref tag 0) ?/))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
572 (self-insert-command (prefix-numeric-value arg))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
573 (sgml-attributes tag)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
574 (setq last-command-char ? )
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
575 (or (> (point) point)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
576 (self-insert-command 1)))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
577
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
578
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
579 (defun sgml-tag-help (&optional tag)
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
580 "Display description of tag TAG. If TAG is omitted, use the tag at point."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
581 (interactive)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
582 (or tag
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
583 (save-excursion
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
584 (if (eq (following-char) ?<)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
585 (forward-char))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
586 (setq tag (sgml-beginning-of-tag))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
587 (or (stringp tag)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
588 (error "No tag selected"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
589 (setq tag (downcase tag))
14328
5d0e329a44d8 (sgml-tag-help): Pass proper format string to message.
Karl Heuer <kwzh@gnu.org>
parents: 14270
diff changeset
590 (message "%s"
20922
3ae81bc17b19 (sgml-mode-common): Downcase key for
Dave Love <fx@gnu.org>
parents: 20394
diff changeset
591 (or (cdr (assoc (downcase tag) sgml-tag-help))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
592 (and (eq (aref tag 0) ?/)
20922
3ae81bc17b19 (sgml-mode-common): Downcase key for
Dave Love <fx@gnu.org>
parents: 20394
diff changeset
593 (cdr (assoc (downcase (substring tag 1)) sgml-tag-help)))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
594 "No description available")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
595
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
596
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
597 (defun sgml-maybe-end-tag ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
598 "Name self unless in position to end a tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
599 (interactive)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
600 (or (condition-case nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
601 (save-excursion (up-list -1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
602 (error
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
603 (sgml-name-self)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
604 t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
605 (condition-case nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
606 (progn
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
607 (save-excursion (up-list 1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
608 (sgml-name-self))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
609 (error (self-insert-command 1)))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
610
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
611
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
612 (defun sgml-skip-tag-backward (arg)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
613 "Skip to beginning of tag or matching opening tag if present.
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
614 With prefix argument ARG, repeat this ARG times."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
615 (interactive "p")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
616 (while (>= arg 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
617 (search-backward "<" nil t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
618 (if (looking-at "</\\([^ \n\t>]+\\)")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
619 ;; end tag, skip any nested pairs
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
620 (let ((case-fold-search t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
621 (re (concat "</?" (regexp-quote (match-string 1)))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
622 (while (and (re-search-backward re nil t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
623 (eq (char-after (1+ (point))) ?/))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
624 (forward-char 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
625 (sgml-skip-tag-backward 1))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
626 (setq arg (1- arg))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
627
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
628 (defun sgml-skip-tag-forward (arg &optional return)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
629 "Skip to end of tag or matching closing tag if present.
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
630 With prefix argument ARG, repeat this ARG times.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
631 Return t iff after a closing tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
632 (interactive "p")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
633 (setq return t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
634 (while (>= arg 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
635 (skip-chars-forward "^<>")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
636 (if (eq (following-char) ?>)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
637 (up-list -1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
638 (if (looking-at "<\\([^/ \n\t>]+\\)")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
639 ;; start tag, skip any nested same pairs _and_ closing tag
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
640 (let ((case-fold-search t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
641 (re (concat "</?" (regexp-quote (match-string 1))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
642 point close)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
643 (forward-list 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
644 (setq point (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
645 (while (and (re-search-forward re nil t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
646 (not (setq close
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
647 (eq (char-after (1+ (match-beginning 0))) ?/)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
648 (not (up-list -1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
649 (sgml-skip-tag-forward 1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
650 (setq close nil))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
651 (if close
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
652 (up-list 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
653 (goto-char point)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
654 (setq return)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
655 (forward-list 1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
656 (setq arg (1- arg)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
657 return)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
658
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
659 (defun sgml-delete-tag (arg)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
660 "Delete tag on or after cursor, and matching closing or opening tag.
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
661 With prefix argument ARG, repeat this ARG times."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
662 (interactive "p")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
663 (while (>= arg 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
664 (save-excursion
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
665 (let* (close open)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
666 (if (looking-at "[ \t\n]*<")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
667 ;; just before tag
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
668 (if (eq (char-after (match-end 0)) ?/)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
669 ;; closing tag
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
670 (progn
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
671 (setq close (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
672 (goto-char (match-end 0))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
673 ;; on tag?
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
674 (or (save-excursion (setq close (sgml-beginning-of-tag)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
675 close (and (stringp close)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
676 (eq (aref close 0) ?/)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
677 (point))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
678 ;; not on closing tag
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
679 (let ((point (point)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
680 (sgml-skip-tag-backward 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
681 (if (or (not (eq (following-char) ?<))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
682 (save-excursion
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
683 (forward-list 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
684 (<= (point) point)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
685 (error "Not on or before tag")))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
686 (if close
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
687 (progn
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
688 (sgml-skip-tag-backward 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
689 (setq open (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
690 (goto-char close)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
691 (kill-sexp 1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
692 (setq open (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
693 (sgml-skip-tag-forward 1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
694 (backward-list)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
695 (forward-char)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
696 (if (eq (aref (sgml-beginning-of-tag) 0) ?/)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
697 (kill-sexp 1)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
698 (goto-char open)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
699 (kill-sexp 1)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
700 (setq arg (1- arg))))
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
701
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
702 ;; Put read-only last to enable setting this even when read-only enabled.
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
703 (or (get 'sgml-tag 'invisible)
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
704 (setplist 'sgml-tag
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
705 (append '(invisible t
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
706 intangible t
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
707 point-entered sgml-point-entered
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
708 rear-nonsticky t
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
709 read-only t)
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
710 (symbol-plist 'sgml-tag))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
711
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
712 (defun sgml-tags-invisible (arg)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
713 "Toggle visibility of existing tags."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
714 (interactive "P")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
715 (let ((modified (buffer-modified-p))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
716 (inhibit-read-only t)
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
717 ;; This is needed in case font lock gets called,
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
718 ;; since it moves point and might call sgml-point-entered.
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
719 (inhibit-point-motion-hooks t)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
720 symbol)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
721 (save-excursion
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
722 (goto-char (point-min))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
723 (if (setq sgml-tags-invisible
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
724 (if arg
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
725 (>= (prefix-numeric-value arg) 0)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
726 (not sgml-tags-invisible)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
727 (while (re-search-forward "<\\([!/?A-Za-z][-A-Za-z0-9]*\\)"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
728 nil t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
729 (setq symbol (intern-soft (downcase (match-string 1))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
730 (goto-char (match-beginning 0))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
731 (and (get symbol 'before-string)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
732 (not (overlays-at (point)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
733 (overlay-put (make-overlay (point)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
734 (match-beginning 1))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
735 'category symbol))
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
736 (put-text-property (point)
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
737 (progn (forward-list) (point))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
738 'category 'sgml-tag))
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
739 (let ((pos (point)))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
740 (while (< (setq pos (next-overlay-change pos)) (point-max))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
741 (delete-overlay (car (overlays-at pos)))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
742 (remove-text-properties (point-min) (point-max)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
743 '(category sgml-tag intangible t))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
744 (set-buffer-modified-p modified)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
745 (run-hooks 'sgml-tags-invisible-hook)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
746 (message "")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
747
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
748 (defun sgml-point-entered (x y)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
749 ;; Show preceding or following hidden tag, depending of cursor direction.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
750 (let ((inhibit-point-motion-hooks t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
751 (save-excursion
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
752 (message "Invisible tag: %s"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
753 (buffer-substring
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
754 (point)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
755 (if (or (and (> x y)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
756 (not (eq (following-char) ?<)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
757 (and (< x y)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
758 (eq (preceding-char) ?>)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
759 (backward-list)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
760 (forward-list)))))))
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
761
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
762 (autoload 'compile-internal "compile")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
763
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
764 (defun sgml-validate (command)
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
765 "Validate an SGML document.
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
766 Runs COMMAND, a shell command, in a separate process asynchronously
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
767 with output going to the buffer `*compilation*'.
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
768 You can then use the command \\[next-error] to find the next error message
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
769 and move to the line in the SGML document that caused it."
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
770 (interactive
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
771 (list (read-string "Validate command: "
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
772 (or sgml-saved-validate-command
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
773 (concat sgml-validate-command
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
774 " "
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
775 (let ((name (buffer-file-name)))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
776 (and name
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
777 (file-name-nondirectory name))))))))
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
778 (setq sgml-saved-validate-command command)
23970
d1d08f461c9c (sgml-validate): Ask whether to save only
Richard M. Stallman <rms@gnu.org>
parents: 23869
diff changeset
779 (save-some-buffers (not compilation-ask-about-save) nil)
3121
8cf203c42bee (sgml-validate): compile1 renamed to compile-internal.
Richard M. Stallman <rms@gnu.org>
parents: 2315
diff changeset
780 (compile-internal command "No more errors"))
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
781
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
782
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
783 (defun sgml-beginning-of-tag (&optional top-level)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
784 "Skip to beginning of tag and return its name.
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
785 If this can't be done, return t."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
786 (or (if top-level
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
787 (condition-case nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
788 (up-list -1)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
789 (error t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
790 (>= (point)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
791 (if (search-backward "<" nil t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
792 (save-excursion
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
793 (forward-list)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
794 (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
795 0)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
796 (if (looking-at "<[!?/]?[[A-Za-z][A-Za-z0-9]*")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
797 (buffer-substring-no-properties
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
798 (1+ (point))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
799 (match-end 0))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
800 t)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
801
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
802 (defun sgml-value (alist)
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
803 "Interactively insert value taken from attributerule ALIST.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
804 See `sgml-tag-alist' for info about attributerules.."
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
805 (setq alist (cdr alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
806 (if (stringp (car alist))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
807 (insert "=\"" (car alist) ?\")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
808 (if (eq (car alist) t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
809 (if (cdr alist)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
810 (progn
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
811 (insert "=\"")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
812 (setq alist (skeleton-read '(completing-read
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
813 "Value: " (cdr alist))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
814 (if (string< "" alist)
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
815 (insert alist ?\")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
816 (delete-backward-char 2))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
817 (insert "=\"")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
818 (if alist
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
819 (insert (skeleton-read '(completing-read "Value: " alist))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
820 (insert ?\"))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
821
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
822 (provide 'sgml-mode)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
823
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
824 (defvar html-quick-keys sgml-quick-keys
14377
2e6bd1a2712a Whitespace fix.
Richard M. Stallman <rms@gnu.org>
parents: 14328
diff changeset
825 "Use C-c X combinations for quick insertion of frequent tags when non-nil.
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
826 This defaults to `sgml-quick-keys'.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
827 This takes effect when first loading the library.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
828
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
829 (defvar html-mode-map
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
830 (let ((map (nconc (make-sparse-keymap) sgml-mode-map))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
831 (menu-map (make-sparse-keymap "HTML")))
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
832 (define-key map "\C-c6" 'html-headline-6)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
833 (define-key map "\C-c5" 'html-headline-5)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
834 (define-key map "\C-c4" 'html-headline-4)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
835 (define-key map "\C-c3" 'html-headline-3)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
836 (define-key map "\C-c2" 'html-headline-2)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
837 (define-key map "\C-c1" 'html-headline-1)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
838 (define-key map "\C-c\r" 'html-paragraph)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
839 (define-key map "\C-c\n" 'html-line)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
840 (define-key map "\C-c\C-c-" 'html-horizontal-rule)
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
841 (define-key map "\C-c\C-co" 'html-ordered-list)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
842 (define-key map "\C-c\C-cu" 'html-unordered-list)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
843 (define-key map "\C-c\C-cr" 'html-radio-buttons)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
844 (define-key map "\C-c\C-cc" 'html-checkboxes)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
845 (define-key map "\C-c\C-cl" 'html-list-item)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
846 (define-key map "\C-c\C-ch" 'html-href-anchor)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
847 (define-key map "\C-c\C-cn" 'html-name-anchor)
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
848 (define-key map "\C-c\C-ci" 'html-image)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
849 (if html-quick-keys
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
850 (progn
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
851 (define-key map "\C-c-" 'html-horizontal-rule)
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
852 (define-key map "\C-co" 'html-ordered-list)
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
853 (define-key map "\C-cu" 'html-unordered-list)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
854 (define-key map "\C-cr" 'html-radio-buttons)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
855 (define-key map "\C-cc" 'html-checkboxes)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
856 (define-key map "\C-cl" 'html-list-item)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
857 (define-key map "\C-ch" 'html-href-anchor)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
858 (define-key map "\C-cn" 'html-name-anchor)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
859 (define-key map "\C-ci" 'html-image)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
860 (define-key map "\C-c\C-s" 'html-autoview-mode)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
861 (define-key map "\C-c\C-v" 'browse-url-of-buffer)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
862 (define-key map [menu-bar html] (cons "HTML" menu-map))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
863 (define-key menu-map [html-autoview-mode]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
864 '("Toggle Autoviewing" . html-autoview-mode))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
865 (define-key menu-map [browse-url-of-buffer]
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
866 '("View Buffer Contents" . browse-url-of-buffer))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
867 (define-key menu-map [nil] '("--"))
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
868 ;;(define-key menu-map "6" '("Heading 6" . html-headline-6))
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
869 ;;(define-key menu-map "5" '("Heading 5" . html-headline-5))
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
870 ;;(define-key menu-map "4" '("Heading 4" . html-headline-4))
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
871 (define-key menu-map "3" '("Heading 3" . html-headline-3))
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
872 (define-key menu-map "2" '("Heading 2" . html-headline-2))
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
873 (define-key menu-map "1" '("Heading 1" . html-headline-1))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
874 (define-key menu-map "l" '("Radio Buttons" . html-radio-buttons))
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
875 (define-key menu-map "c" '("Checkboxes" . html-checkboxes))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
876 (define-key menu-map "l" '("List Item" . html-list-item))
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
877 (define-key menu-map "u" '("Unordered List" . html-unordered-list))
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
878 (define-key menu-map "o" '("Ordered List" . html-ordered-list))
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
879 (define-key menu-map "-" '("Horizontal Rule" . html-horizontal-rule))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
880 (define-key menu-map "\n" '("Line Break" . html-line))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
881 (define-key menu-map "\r" '("Paragraph" . html-paragraph))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
882 (define-key menu-map "i" '("Image" . html-image))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
883 (define-key menu-map "h" '("Href Anchor" . html-href-anchor))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
884 (define-key menu-map "n" '("Name Anchor" . html-name-anchor))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
885 map)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
886 "Keymap for commands for use in HTML mode.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
887
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
888
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
889 (defvar html-face-tag-alist
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
890 '((bold . "b")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
891 (italic . "i")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
892 (underline . "u")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
893 (modeline . "rev"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
894 "Value of `sgml-face-tag-alist' for HTML mode.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
895
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
896 (defvar html-tag-face-alist
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
897 '(("b" . bold)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
898 ("big" . bold)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
899 ("blink" . highlight)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
900 ("cite" . italic)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
901 ("em" . italic)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
902 ("h1" bold underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
903 ("h2" bold-italic underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
904 ("h3" italic underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
905 ("h4" . underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
906 ("h5" . underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
907 ("h6" . underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
908 ("i" . italic)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
909 ("rev" . modeline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
910 ("s" . underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
911 ("small" . default)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
912 ("strong" . bold)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
913 ("title" bold underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
914 ("tt" . default)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
915 ("u" . underline)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
916 ("var" . italic))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
917 "Value of `sgml-tag-face-alist' for HTML mode.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
918
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
919
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
920 (defvar html-display-text
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
921 '((img . "[/]")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
922 (hr . "----------")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
923 (li . "o "))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
924 "Value of `sgml-display-text' for HTML mode.")
22629
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
925
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
926 ;; should code exactly HTML 3 here when that is finished
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
927 (defvar html-tag-alist
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
928 (let* ((1-7 '(("1") ("2") ("3") ("4") ("5") ("6") ("7")))
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
929 (1-9 '(,@1-7 ("8") ("9")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
930 (align '(("align" ("left") ("center") ("right"))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
931 (valign '(("top") ("middle") ("bottom") ("baseline")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
932 (rel '(("next") ("previous") ("parent") ("subdocument") ("made")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
933 (href '("href" ("ftp:") ("file:") ("finger:") ("gopher:") ("http:")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
934 ("mailto:") ("news:") ("rlogin:") ("telnet:") ("tn3270:")
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
935 ("wais:") ("/cgi-bin/")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
936 (name '("name"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
937 (link `(,href
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
938 ("rel" ,@rel)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
939 ("rev" ,@rel)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
940 ("title")))
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
941 (list '((nil \n ( "List item: "
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
942 "<li>" str \n))))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
943 (cell `(t
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
944 ,align
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
945 ("valign" ,@valign)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
946 ("colspan" ,@1-9)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
947 ("rowspan" ,@1-9)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
948 ("nowrap" t))))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
949 ;; put ,-expressions first, else byte-compile chokes (as of V19.29)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
950 ;; and like this it's more efficient anyway
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
951 `(("a" ,name ,@link)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
952 ("base" t ,@href)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
953 ("dir" ,@list)
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
954 ("font" nil "size" ("-1") ("+1") ("-2") ("+2") ,@1-7)
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
955 ("form" (\n _ \n "<input type=\"submit\" value=\"\">")
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
956 ("action" ,@(cdr href)) ("method" ("get") ("post")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
957 ("h1" ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
958 ("h2" ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
959 ("h3" ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
960 ("h4" ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
961 ("h5" ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
962 ("h6" ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
963 ("hr" t ("size" ,@1-9) ("width") ("noshade" t) ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
964 ("img" t ("align" ,@valign ("texttop") ("absmiddle") ("absbottom"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
965 ("src") ("alt") ("width" "1") ("height" "1")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
966 ("border" "1") ("vspace" "1") ("hspace" "1") ("ismap" t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
967 ("input" t ("size" ,@1-9) ("maxlength" ,@1-9) ("checked" t) ,name
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
968 ("type" ("text") ("password") ("checkbox") ("radio")
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
969 ("submit") ("reset"))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
970 ("value"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
971 ("link" t ,@link)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
972 ("menu" ,@list)
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
973 ("ol" ,@list ("type" ("A") ("a") ("I") ("i") ("1")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
974 ("p" t ,@align)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
975 ("select" (nil \n
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
976 ("Text: "
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
977 "<option>" str \n))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
978 ,name ("size" ,@1-9) ("multiple" t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
979 ("table" (nil \n
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
980 ((completing-read "Cell kind: " '(("td") ("th"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
981 nil t "t")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
982 "<tr><" str ?> _ \n))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
983 ("border" t ,@1-9) ("width" "10") ("cellpadding"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
984 ("td" ,@cell)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
985 ("textarea" ,name ("rows" ,@1-9) ("cols" ,@1-9))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
986 ("th" ,@cell)
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
987 ("ul" ,@list ("type" ("disc") ("circle") ("square")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
988
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
989 ,@sgml-tag-alist
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
990
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
991 ("abbrev")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
992 ("acronym")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
993 ("address")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
994 ("array" (nil \n
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
995 ("Item: " "<item>" str \n))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
996 "align")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
997 ("au")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
998 ("b")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
999 ("big")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1000 ("blink")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1001 ("blockquote" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1002 ("body" \n ("background" ".gif") ("bgcolor" "#") ("text" "#")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1003 ("link" "#") ("alink" "#") ("vlink" "#"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1004 ("box" (nil _ "<over>" _))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1005 ("br" t ("clear" ("left") ("right")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1006 ("caption" ("valign" ("top") ("bottom")))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1007 ("center" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1008 ("cite")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1009 ("code" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1010 ("dd" t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1011 ("del")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1012 ("dfn")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1013 ("dl" (nil \n
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1014 ( "Term: "
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1015 "<dt>" str "<dd>" _ \n)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1016 ("dt" (t _ "<dd>"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1017 ("em")
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
1018 ;("fn" "id" "fn") ; ???
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1019 ("head" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1020 ("html" (\n
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1021 "<head>\n"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1022 "<title>" (setq str (read-input "Title: ")) "</title>\n"
24413
e2c5b1571392 (html-tag-alist): Add /head and /body to the "html" template.
Richard M. Stallman <rms@gnu.org>
parents: 23970
diff changeset
1023 "</head>\n"
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1024 "<body>\n<h1>" str "</h1>\n" _
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1025 "\n<address>\n<a href=\"mailto:"
14518
5b2bc060c90d (html-tag-alist): within the <ADDRESS> tag
Richard M. Stallman <rms@gnu.org>
parents: 14377
diff changeset
1026 user-mail-address
24413
e2c5b1571392 (html-tag-alist): Add /head and /body to the "html" template.
Richard M. Stallman <rms@gnu.org>
parents: 23970
diff changeset
1027 "\">" (user-full-name) "</a>\n</address>\n"
e2c5b1571392 (html-tag-alist): Add /head and /body to the "html" template.
Richard M. Stallman <rms@gnu.org>
parents: 23970
diff changeset
1028 "</body>"
e2c5b1571392 (html-tag-alist): Add /head and /body to the "html" template.
Richard M. Stallman <rms@gnu.org>
parents: 23970
diff changeset
1029 ))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1030 ("i")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1031 ("ins")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1032 ("isindex" t ("action") ("prompt"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1033 ("kbd")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1034 ("lang")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1035 ("li" t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1036 ("math" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1037 ("nobr")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1038 ("option" t ("value") ("label") ("selected" t))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1039 ("over" t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1040 ("person")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1041 ("pre" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1042 ("q")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1043 ("rev")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1044 ("s")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1045 ("samp")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1046 ("small")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1047 ("strong")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1048 ("sub")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1049 ("sup")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1050 ("title")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1051 ("tr" t)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1052 ("tt")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1053 ("u")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1054 ("var")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1055 ("wbr" t)))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1056 "*Value of `sgml-tag-alist' for HTML mode.")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1057
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1058 (defvar html-tag-help
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1059 `(,@sgml-tag-help
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1060 ("a" . "Anchor of point or link elsewhere")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1061 ("abbrev" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1062 ("acronym" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1063 ("address" . "Formatted mail address")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1064 ("array" . "Math array")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1065 ("au" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1066 ("b" . "Bold face")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1067 ("base" . "Base address for URLs")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1068 ("big" . "Font size")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1069 ("blink" . "Blinking text")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1070 ("blockquote" . "Indented quotation")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1071 ("body" . "Document body")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1072 ("box" . "Math fraction")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1073 ("br" . "Line break")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1074 ("caption" . "Table caption")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1075 ("center" . "Centered text")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1076 ("changed" . "Change bars")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1077 ("cite" . "Citation of a document")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1078 ("code" . "Formatted source code")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1079 ("dd" . "Definition of term")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1080 ("del" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1081 ("dfn" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1082 ("dir" . "Directory list (obsolete)")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1083 ("dl" . "Definition list")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1084 ("dt" . "Term to be definined")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1085 ("em" . "Emphasised")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1086 ("embed" . "Embedded data in foreign format")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1087 ("fig" . "Figure")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1088 ("figa" . "Figure anchor")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1089 ("figd" . "Figure description")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1090 ("figt" . "Figure text")
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
1091 ;("fn" . "?") ; ???
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1092 ("font" . "Font size")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1093 ("form" . "Form with input fields")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1094 ("group" . "Document grouping")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1095 ("h1" . "Most important section headline")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1096 ("h2" . "Important section headline")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1097 ("h3" . "Section headline")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1098 ("h4" . "Minor section headline")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1099 ("h5" . "Unimportant section headline")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1100 ("h6" . "Least important section headline")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1101 ("head" . "Document header")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1102 ("hr" . "Horizontal rule")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1103 ("html" . "HTML Document")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1104 ("i" . "Italic face")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1105 ("img" . "Graphic image")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1106 ("input" . "Form input field")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1107 ("ins" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1108 ("isindex" . "Input field for index search")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1109 ("kbd" . "Keybard example face")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1110 ("lang" . "Natural language")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1111 ("li" . "List item")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1112 ("link" . "Link relationship")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1113 ("math" . "Math formula")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1114 ("menu" . "Menu list (obsolete)")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1115 ("mh" . "Form mail header")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1116 ("nextid" . "Allocate new id")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1117 ("nobr" . "Text without line break")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1118 ("ol" . "Ordered list")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1119 ("option" . "Selection list item")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1120 ("over" . "Math fraction rule")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1121 ("p" . "Paragraph start")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1122 ("panel" . "Floating panel")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1123 ("person" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1124 ("pre" . "Preformatted fixed width text")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1125 ("q" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1126 ("rev" . "Reverse video")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1127 ("s" . "?")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1128 ("samp" . "Sample text")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1129 ("select" . "Selection list")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1130 ("small" . "Font size")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1131 ("sp" . "Nobreak space")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1132 ("strong" . "Standout text")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1133 ("sub" . "Subscript")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1134 ("sup" . "Superscript")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1135 ("table" . "Table with rows and columns")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1136 ("tb" . "Table vertical break")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1137 ("td" . "Table data cell")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1138 ("textarea" . "Form multiline edit area")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1139 ("th" . "Table header cell")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1140 ("title" . "Document title")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1141 ("tr" . "Table row separator")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1142 ("tt" . "Typewriter face")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1143 ("u" . "Underlined text")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1144 ("ul" . "Unordered list")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1145 ("var" . "Math variable face")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1146 ("wbr" . "Enable <br> within <nobr>"))
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1147 "*Value of `sgml-tag-help' for HTML mode.")
22629
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1148
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1149 ;;;###autoload
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1150 (defun html-mode ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1151 "Major mode based on SGML mode for editing HTML documents.
23652
42bf6553a2e9 (html-mode): Doc fix.
Andreas Schwab <schwab@suse.de>
parents: 22772
diff changeset
1152 This allows inserting skeleton constructs used in hypertext documents with
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1153 completion. See below for an introduction to HTML. Use
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1154 \\[browse-url-of-buffer] to see how this comes out. See also `sgml-mode' on
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1155 which this is based.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1156
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1157 Do \\[describe-variable] html- SPC and \\[describe-variable] sgml- SPC to see available variables.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1158
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1159 To write fairly well formatted pages you only need to know few things. Most
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1160 browsers have a function to read the source code of the page being seen, so
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1161 you can imitate various tricks. Here's a very short HTML primer which you
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1162 can also view with a browser to see what happens:
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1163
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1164 <title>A Title Describing Contents</title> should be on every page. Pages can
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1165 have <h1>Very Major Headlines</h1> through <h6>Very Minor Headlines</h6>
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1166 <hr> Parts can be separated with horizontal rules.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1167
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1168 <p>Paragraphs only need an opening tag. Line breaks and multiple spaces are
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1169 ignored unless the text is <pre>preformatted.</pre> Text can be marked as
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1170 <b>bold</b>, <i>italic</i> or <u>underlined</u> using the normal M-g or
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1171 Edit/Text Properties/Face commands.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1172
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1173 Pages can have <a name=\"SOMENAME\">named points</a> and can link other points
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1174 to them with <a href=\"#SOMENAME\">see also somename</a>. In the same way <a
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1175 href=\"URL\">see also URL</a> where URL is a filename relative to current
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
1176 directory, or absolute as in `http://www.cs.indiana.edu/elisp/w3/docs.html'.
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1177
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1178 Images in many formats can be inlined with <img src=\"URL\">.
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1179
17551
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
1180 If you mainly create your own documents, `sgml-specials' might be
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
1181 interesting. But note that some HTML 2 browsers can't handle `&apos;'.
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
1182 To work around that, do:
2738b57e4704 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 17545
diff changeset
1183 (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?' nil))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1184
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1185 \\{html-mode-map}"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1186 (interactive)
22772
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
1187 (kill-all-local-variables)
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
1188 (setq mode-name "HTML"
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
1189 major-mode 'html-mode)
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1190 (sgml-mode-common html-tag-face-alist html-display-text)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1191 (use-local-map html-mode-map)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1192 (make-local-variable 'sgml-tag-alist)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1193 (make-local-variable 'sgml-face-tag-alist)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1194 (make-local-variable 'sgml-tag-help)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1195 (make-local-variable 'outline-regexp)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1196 (make-local-variable 'outline-heading-end-regexp)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1197 (make-local-variable 'outline-level)
16914
4b79df16b939 (html-mode): Locally set sentence-end.
Richard M. Stallman <rms@gnu.org>
parents: 16404
diff changeset
1198 (make-local-variable 'sentence-end)
4b79df16b939 (html-mode): Locally set sentence-end.
Richard M. Stallman <rms@gnu.org>
parents: 16404
diff changeset
1199 (setq sentence-end
24463
9ef31386cb47 (html-mode): Use sentence-end-double-space when setting sentence-end.
Dave Love <fx@gnu.org>
parents: 24413
diff changeset
1200 (if sentence-end-double-space
9ef31386cb47 (html-mode): Use sentence-end-double-space when setting sentence-end.
Dave Love <fx@gnu.org>
parents: 24413
diff changeset
1201 "[.?!][]\"')}]*\\(<[^>]*>\\)*\\($\\| $\\|\t\\| \\)[ \t\n]*"
9ef31386cb47 (html-mode): Use sentence-end-double-space when setting sentence-end.
Dave Love <fx@gnu.org>
parents: 24413
diff changeset
1202
9ef31386cb47 (html-mode): Use sentence-end-double-space when setting sentence-end.
Dave Love <fx@gnu.org>
parents: 24413
diff changeset
1203 "[.?!][]\"')}]*\\(<[^>]*>\\)*\\($\\| \\|\t\\)[ \t\n]*"))
22772
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
1204 (setq sgml-tag-alist html-tag-alist
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1205 sgml-face-tag-alist html-face-tag-alist
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1206 sgml-tag-help html-tag-help
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1207 outline-regexp "^.*<[Hh][1-6]\\>"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1208 outline-heading-end-regexp "</[Hh][1-6]>"
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1209 outline-level (lambda ()
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1210 (char-after (1- (match-end 0)))))
22629
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1211 (setq imenu-create-index-function 'html-imenu-index)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1212 (make-local-variable 'imenu-sort-function)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1213 (setq imenu-sort-function nil) ; sorting the menu defeats the purpose
22772
3dc5c3a4f1f8 (sgml-mode): Call kill-local-variables
Richard M. Stallman <rms@gnu.org>
parents: 22629
diff changeset
1214 (run-hooks 'text-mode-hook 'sgml-mode-hook 'html-mode-hook))
22629
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1215
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1216 (defvar html-imenu-regexp
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1217 "\\s-*<h\\([1-9]\\)[^\n<>]*>\\(<[^\n<>]*>\\)*\\s-*\\([^\n<>]*\\)"
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1218 "*A regular expression matching a head line to be added to the menu.
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1219 The first `match-string' should be a number from 1-9.
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1220 The second `match-string' matches extra tags and is ignored.
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1221 The third `match-string' will be the used in the menu.")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1222
22629
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1223 (defun html-imenu-index ()
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1224 "Return an table of contents for an HTML buffer for use with Imenu."
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1225 (let (toc-index)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1226 (save-excursion
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1227 (goto-char (point-min))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1228 (while (re-search-forward html-imenu-regexp nil t)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1229 (setq toc-index
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1230 (cons (cons (concat (make-string
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1231 (* 2 (1- (string-to-number (match-string 1))))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1232 ?\ )
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1233 (match-string 3))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1234 (save-excursion (beginning-of-line) (point)))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1235 toc-index))))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1236 (nreverse toc-index)))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1237
22629
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1238 (defun html-autoview-mode (&optional arg)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1239 "Toggle automatic viewing via `html-viewer' upon saving buffer.
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1240 With positive prefix ARG always turns viewing on, with negative ARG always off.
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1241 Can be used as a value for `html-mode-hook'."
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1242 (interactive "P")
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1243 (if (setq arg (if arg
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1244 (< (prefix-numeric-value arg) 0)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1245 (and (boundp 'after-save-hook)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1246 (memq 'browse-url-of-buffer after-save-hook))))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1247 (setq after-save-hook (delq 'browse-url-of-buffer after-save-hook))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1248 (make-local-hook 'after-save-hook)
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1249 (add-hook 'after-save-hook 'browse-url-of-buffer nil t))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1250 (message "Autoviewing turned %s."
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1251 (if arg "off" "on")))
5d51b13e0d1f (html-imenu-regexp): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 22319
diff changeset
1252
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1253 (define-skeleton html-href-anchor
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1254 "HTML anchor tag with href attribute."
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1255 "URL: "
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1256 '(setq input "http:")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1257 "<a href=\"" str "\">" _ "</a>")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1258
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1259 (define-skeleton html-name-anchor
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1260 "HTML anchor tag with name attribute."
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1261 "Name: "
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1262 "<a name=\"" str "\">" _ "</a>")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1263
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1264 (define-skeleton html-headline-1
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1265 "HTML level 1 headline tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1266 nil
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1267 "<h1>" _ "</h1>")
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1268
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1269 (define-skeleton html-headline-2
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1270 "HTML level 2 headline tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1271 nil
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1272 "<h2>" _ "</h2>")
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1273
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1274 (define-skeleton html-headline-3
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1275 "HTML level 3 headline tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1276 nil
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1277 "<h3>" _ "</h3>")
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1278
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1279 (define-skeleton html-headline-4
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1280 "HTML level 4 headline tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1281 nil
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1282 "<h4>" _ "</h4>")
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1283
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1284 (define-skeleton html-headline-5
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1285 "HTML level 5 headline tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1286 nil
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1287 "<h5>" _ "</h5>")
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1288
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1289 (define-skeleton html-headline-6
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1290 "HTML level 6 headline tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1291 nil
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1292 "<h6>" _ "</h6>")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1293
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1294 (define-skeleton html-horizontal-rule
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1295 "HTML horizontal rule tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1296 nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1297 "<hr>" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1298
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1299 (define-skeleton html-image
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1300 "HTML image tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1301 nil
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1302 "<img src=\"" _ "\">")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1303
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1304 (define-skeleton html-line
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1305 "HTML line break tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1306 nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1307 "<br>" \n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1308
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1309 (define-skeleton html-ordered-list
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1310 "HTML ordered list tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1311 nil
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1312 "<ol>" \n
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1313 "<li>" _ \n
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1314 "</ol>")
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1315
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1316 (define-skeleton html-unordered-list
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1317 "HTML unordered list tags."
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1318 nil
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1319 "<ul>" \n
15437
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1320 "<li>" _ \n
43b1f8a3af53 (html-list): Definition deleted.
Richard M. Stallman <rms@gnu.org>
parents: 14518
diff changeset
1321 "</ul>")
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1322
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1323 (define-skeleton html-list-item
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1324 "HTML list item tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1325 nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1326 (if (bolp) nil '\n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1327 "<li>")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1328
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1329 (define-skeleton html-paragraph
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1330 "HTML paragraph tag."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1331 nil
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1332 (if (bolp) nil ?\n)
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1333 \n "<p>")
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1334
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1335 (define-skeleton html-checkboxes
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1336 "Group of connected checkbox inputs."
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1337 nil
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1338 '(setq v1 nil
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1339 v2 nil)
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1340 ("Value: "
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
1341 "<input type=\"" (identity "checkbox") ; see comment above about identity
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1342 "\" name=\"" (or v1 (setq v1 (skeleton-read "Name: ")))
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1343 "\" value=\"" str ?\"
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1344 (if (y-or-n-p "Set \"checked\" attribute? ")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1345 (funcall skeleton-transformation " checked")) ">"
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1346 (skeleton-read "Text: " (capitalize str))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1347 (or v2 (setq v2 (if (y-or-n-p "Newline after text? ")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1348 (funcall skeleton-transformation "<br>")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1349 "")))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1350 \n))
14270
15c3d6255a1c (sgml-quick-keys): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1351
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1352 (define-skeleton html-radio-buttons
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1353 "Group of connected radio button inputs."
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1354 nil
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1355 '(setq v1 nil
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1356 v2 (cons nil nil))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1357 ("Value: "
17545
c67787f92aea (sgml-value): Use 'identity as default value.
Richard M. Stallman <rms@gnu.org>
parents: 17530
diff changeset
1358 "<input type=\"" (identity "radio") ; see comment above about identity
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1359 "\" name=\"" (or (car v2) (setcar v2 (skeleton-read "Name: ")))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1360 "\" value=\"" str ?\"
17491
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1361 (if (and (not v1) (setq v1 (y-or-n-p "Set \"checked\" attribute? ")))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1362 (funcall skeleton-transformation " checked") ">")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1363 (skeleton-read "Text: " (capitalize str))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1364 (or (cdr v2) (setcdr v2 (if (y-or-n-p "Newline after text? ")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1365 (funcall skeleton-transformation "<br>")
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1366 "")))
4c6505ca34a7 (sgml-value): Don't perform the skeleton-transformation
Richard M. Stallman <rms@gnu.org>
parents: 17433
diff changeset
1367 \n))
14159
93175ed23e01 Also load for .sgm and .dtd files.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
1368
809
8a0066235d56 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1369 ;;; sgml-mode.el ends here