2014-06-05 Michal Nazarewicz <mina86@mina86.com>
+ * textmodes/tildify.el (tildify-string-alist)
+ (tildify-ignored-environments-alist): Add `nxml-mode' to the list
+ of supported modes since `xml-mode' is no longer a thing but just
+ an alias to the former. Also include comments and insides of tags
+ in `tildify-ignored-environments-alist' for XML modes. Finally,
+ since XML does not define “ ”[1], use a numeric reference for
+ a no-break space (namely “ ”)
+
+ [1] XML specification defines only a handful of predefined entities.
+ The list is at <http://www.w3.org/TR/REC-xml/#sec-predefined-ent>
+ and includes only <, >, &, ' and " (meaning <,
+ >, &, ' and " respectively). This is in contrast to HTML and even
+ XHTML which defined a whole bunch of entities including “ ”.
+
* textmodes/tildify.el (tildify-pattern-alist)
(tildify-string-alist, tildify-ignored-environments-alist):
Improve defcustom's types by adding more tags explaining what each
(tex-mode . latex-mode)
(plain-tex-mode . latex-mode)
(sgml-mode . " ")
- (xml-mode . sgml-mode)
(html-mode . sgml-mode)
+ (xml-mode . " ") ; XML does not define use numeric reference
+ (nxml-mode . xml-mode)
(t . " "))
"Alist specifying what is a hard space in the current major mode.
("<! *--" . "-- *>")
("<" . ">"))
(sgml-mode . html-mode)
+ (xml-mode
+ ("<! *--" . "-- *>")
+ ("<" . ">"))
+ (nxml-mode . xml-mode)
(t nil))
"Alist specifying ignored structured text environments.
Parts of text defined in this alist are skipped without performing hard space
2014-06-05 Michal Nazarewicz <mina86@mina86.com>
+ * automated/tildify-tests.el (tildify-test--example-html): Add support
+ for generating XML code, so that…
+ (tildify-test-xml) …test can be added to check handling of XML
+ documents.
+
* automated/tildify-tests.el (tildify-test-find-env-group-index-bug):
New test checking end-regex building when multiple environment pairs
use integers to refer to capture groups.
"consectetur adipiscing elit."))
-(defun tildify-test--example-html (sentence &optional with-nbsp)
+(defun tildify-test--example-html (sentence &optional with-nbsp is-xml)
"Return an example HTML code.
SENTENCE is placed where spaces should not be replaced with hard spaces, and
WITH-NBSP is placed where spaces should be replaced with hard spaces. If the
-latter is missing, SENTENCE will be used in all placeholder positions."
+latter is missing, SENTENCE will be used in all placeholder positions.
+If IS-XML is non-nil, <pre> tag is not treated specially."
(let ((with-nbsp (or with-nbsp sentence)))
(concat "<p>" with-nbsp "</p>\n"
- "<pre>" sentence "</pre>\n"
+ "<pre>" (if is-xml with-nbsp sentence) "</pre>\n"
"<! -- " sentence " -- >\n"
"<p>" with-nbsp "</p>\n"
"<" sentence ">\n")))
(tildify-test--example-html sentence sentence)
(tildify-test--example-html sentence with-nbsp))))
+(ert-deftest tildify-test-xml ()
+ "Tests tildification in an XML document"
+ (let* ((sentence (tildify-test--example-sentence " "))
+ (with-nbsp (tildify-test--example-sentence " ")))
+ (tildify-test--test '(nxml-mode)
+ (tildify-test--example-html sentence sentence t)
+ (tildify-test--example-html sentence with-nbsp t))))
+
(defun tildify-test--example-tex (sentence &optional with-nbsp)
"Return an example (La)Tex code.