mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
emacs docs: rstdoc.el: consistent single quote conversions
With text-quoting-style 'grave keeps "'" and "`" quotes unaltered for further processing done by this code (regardless of locale...). The tools that read the reStructuredText markup generated can do their styling instead. Added temporary conversions of ' and ` to \001 and \002 so that 's and `s outside of `...' and `...` are converted separately ('s restored back to ' and `s converted to \`). Both `...' and `...` are finally "converted" to `...` (not ``...``). https://docutils.sourceforge.io/docs/user/rst/quickref.html documents that as `interpreted text`: "The rendering and meaning of interpreted text is domain- or application-dependent. It can be used for things like index entries or explicit descriptive markup (like program identifiers)." Which looks pretty much right.
This commit is contained in:
parent
45193bab16
commit
bdb6956afd
1 changed files with 9 additions and 5 deletions
|
@ -40,6 +40,7 @@
|
|||
"Write docstrings from IN-FILE to OUT-FILE."
|
||||
(load-file in-file)
|
||||
(let* ((definitions (cdr (assoc (expand-file-name in-file) load-history)))
|
||||
(text-quoting-style 'grave)
|
||||
(doc-hash (make-hash-table :test 'eq)))
|
||||
(mapc
|
||||
(lambda (elt)
|
||||
|
@ -65,11 +66,14 @@
|
|||
(insert "\n"))
|
||||
|
||||
(defvar rst--escape-alist
|
||||
'(("\\\\='" . "\\\\'")
|
||||
("\\([^\\]\\)'" . "\\1`")
|
||||
("^[[:space:]\t]*$" . "|br|")
|
||||
("^[[:space:]\t]" . "|indent| "))
|
||||
"List of (regex . replacement) pairs.")
|
||||
'( ("\\\\='" . "\001")
|
||||
("`\\([^\n`']*\\)[`']" . "\002\\1\002") ;; good enough for now...
|
||||
("`" . "\\\\`")
|
||||
("\001" . "'")
|
||||
("\002" . "`")
|
||||
("^[[:space:]]*$" . "|br|")
|
||||
("^[[:space:]]" . "|indent| "))
|
||||
"list of (regex . replacement) pairs")
|
||||
|
||||
(defun rstdoc--rst-quote-string (str)
|
||||
(with-temp-buffer
|
||||
|
|
Loading…
Reference in a new issue