X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/9d05d1ba20797a7478a7ed68ff88452cb4f8c4c8..8d9101d850b5ad006ce41a231f294ea6de93986a:/admin/admin.el
diff --git a/admin/admin.el b/admin/admin.el
index 717bfee702..70958ce1a7 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -212,6 +212,236 @@ Root must be the root of an Emacs source tree."
"\\\\def\\\\year{")
"\\([0-9]\\{4\\}\\)}.+%.+copyright year"))))))
+;;; Various bits of magic for generating the web manuals
+
+(defun make-manuals (root)
+ "Generate the web manuals for the Emacs webpage."
+ (interactive "DEmacs root directory: ")
+ (let* ((dest (expand-file-name "manual" root))
+ (html-node-dir (expand-file-name "html_node" dest))
+ (html-mono-dir (expand-file-name "html_mono" dest))
+ (txt-dir (expand-file-name "text" dest))
+ (dvi-dir (expand-file-name "dvi" dest))
+ (ps-dir (expand-file-name "ps" dest)))
+ (when (file-directory-p dest)
+ (if (y-or-n-p (format "Directory %s exists, delete it first?" dest))
+ (delete-directory dest t)
+ (error "Aborted")))
+ (make-directory dest)
+ (make-directory html-node-dir)
+ (make-directory html-mono-dir)
+ (make-directory txt-dir)
+ (make-directory dvi-dir)
+ (make-directory ps-dir)
+ ;; Emacs manual
+ (let ((texi (expand-file-name "doc/emacs/emacs.texi" root)))
+ (manual-html-node texi (expand-file-name "emacs" html-node-dir))
+ (manual-html-mono texi (expand-file-name "emacs.html" html-mono-dir))
+ (manual-txt texi (expand-file-name "emacs.txt" txt-dir))
+ (manual-pdf texi (expand-file-name "emacs.pdf" dest))
+ (manual-dvi texi (expand-file-name "emacs.dvi" dvi-dir)
+ (expand-file-name "emacs.ps" ps-dir)))
+ ;; Lisp manual
+ (let ((texi (expand-file-name "doc/lispref/elisp.texi" root)))
+ (manual-html-node texi (expand-file-name "elisp" html-node-dir))
+ (manual-html-mono texi (expand-file-name "elisp.html" html-mono-dir))
+ (manual-txt texi (expand-file-name "elisp.txt" txt-dir))
+ (manual-pdf texi (expand-file-name "elisp.pdf" dest))
+ (manual-dvi texi (expand-file-name "elisp.dvi" dvi-dir)
+ (expand-file-name "elisp.ps" ps-dir)))
+ (message "Manuals created in %s" dest)))
+
+(defconst manual-doctype-string
+ "\n\n")
+
+(defconst manual-meta-string
+ "
+
+
+
+\n\n")
+
+(defconst manual-style-string "\n")
+
+(defun manual-html-mono (texi-file dest)
+ "Run Makeinfo on TEXI-FILE, emitting mono HTML output to DEST.
+This function also edits the HTML files so that they validate as
+HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
+the @import directive."
+ (call-process "makeinfo" nil nil nil
+ "--html" "--no-split" texi-file "-o" dest)
+ (with-temp-buffer
+ (insert-file-contents dest)
+ (setq buffer-file-name dest)
+ (manual-html-fix-headers)
+ (manual-html-fix-index-1)
+ (manual-html-fix-index-2 t)
+ (manual-html-fix-node-div)
+ (goto-char (point-max))
+ (re-search-backward "