[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r113309: * admin.el (make-manuals): Add the option t
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] trunk r113309: * admin.el (make-manuals): Add the option to only make certain output types. |
Date: |
Sat, 06 Jul 2013 18:28:59 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 113309
revision-id: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2013-07-06 11:28:54 -0700
message:
* admin.el (make-manuals): Add the option to only make certain output types.
(manual-misc-html): Special-case ccmode and efaq.
(manual-html-mono, manual-html-node, manual-pdf, manual-ps):
Move creation of output directory here from make-manuals.
(manual-html-fix-index-2): Avoid dynamic reference to `f'.
modified:
admin/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-2226
admin/admin.el admin.el-20091113204419-o5vbwnq5f7feedwu-2254
=== modified file 'admin/ChangeLog'
--- a/admin/ChangeLog 2013-07-06 02:32:13 +0000
+++ b/admin/ChangeLog 2013-07-06 18:28:54 +0000
@@ -2,6 +2,11 @@
* admin.el (manual-misc-manuals): New function.
(make-manuals): Avoid hard-coding list of misc manuals.
+ Add the option to only make certain type(s) of output.
+ (manual-misc-html): Special-case ccmode and efaq.
+ (manual-html-mono, manual-html-node, manual-pdf, manual-ps):
+ Move creation of output directory here from make-manuals.
+ (manual-html-fix-index-2): Avoid dynamic reference to `f'.
2013-07-05 Glenn Morris <address@hidden>
=== modified file 'admin/admin.el'
--- a/admin/admin.el 2013-07-06 02:32:13 +0000
+++ b/admin/admin.el 2013-07-06 18:28:54 +0000
@@ -209,44 +209,66 @@
"\\(\\\\\\|\\.info\\)" ""
(buffer-substring start (point)))))))
-(defun make-manuals (root)
- "Generate the web manuals for the Emacs webpage."
- (interactive "DEmacs root directory: ")
+(defun make-manuals (root &optional type)
+ "Generate the web manuals for the Emacs webpage.
+Interactively with a prefix argument, prompt for TYPE.
+Optional argument TYPE is type of output (nil means all)."
+ (interactive (let ((root (read-directory-name "Emacs root directory: "
+ source-directory nil t)))
+ (list root
+ (if current-prefix-arg
+ (completing-read
+ "Type: "
+ (append
+ '("misc" "pdf" "ps")
+ (let (res)
+ (dolist (i '("emacs" "elisp" "eintr") res)
+ (dolist (j '("" "-mono" "-node" "-ps" "-pdf"))
+ (push (concat i j) res))))
+ (manual-misc-manuals root)))))))
(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))
(ps-dir (expand-file-name "ps" dest))
- (pdf-dir (expand-file-name "pdf" dest)))
+ (pdf-dir (expand-file-name "pdf" dest))
+ (emacs (expand-file-name "doc/emacs/emacs.texi" root))
+ (elisp (expand-file-name "doc/lispref/elisp.texi" root))
+ (eintr (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root))
+ (misc (manual-misc-manuals root)))
+ ;; TODO this makes it non-continuable.
+ ;; Instead, delete the individual dest directory each time.
(when (file-directory-p dest)
- (if (y-or-n-p (format "Directory %s exists, delete it first?" 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 ps-dir)
- (make-directory pdf-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-pdf texi (expand-file-name "emacs.pdf" pdf-dif))
- (manual-ps texi (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-pdf texi (expand-file-name "elisp.pdf" pdf-dir))
- (manual-ps texi (expand-file-name "elisp.ps" ps-dir)))
- ;; Lisp intro.
- (let ((texi (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root)))
- (manual-html-node texi (expand-file-name "eintr" html-node-dir))
- (manual-html-mono texi (expand-file-name "eintr.html" html-mono-dir))
- (manual-pdf texi (expand-file-name "eintr.pdf" pdf-dir))
- (manual-ps texi (expand-file-name "eintr.ps" ps-dir)))
+ (user-error "Aborted")))
+ (if (member type '(nil "emacs" "emacs-node"))
+ (manual-html-node emacs (expand-file-name "emacs" html-node-dir)))
+ (if (member type '(nil "emacs" "emacs-mono"))
+ (manual-html-mono emacs (expand-file-name "emacs.html" html-mono-dir)))
+ (if (member type '(nil "emacs" "emacs-pdf" "pdf"))
+ (manual-pdf emacs (expand-file-name "emacs.pdf" pdf-dir)))
+ (if (member type '(nil "emacs" "emacs-ps" "ps"))
+ (manual-ps emacs (expand-file-name "emacs.ps" ps-dir)))
+ (if (member type '(nil "elisp" "elisp-node"))
+ (manual-html-node elisp (expand-file-name "elisp" html-node-dir)))
+ (if (member type '(nil "elisp" "elisp-mono"))
+ (manual-html-mono elisp (expand-file-name "elisp.html" html-mono-dir)))
+ (if (member type '(nil "elisp" "elisp-pdf" "pdf"))
+ (manual-pdf elisp (expand-file-name "elisp.pdf" pdf-dir)))
+ (if (member type '(nil "elisp" "elisp-ps" "ps"))
+ (manual-ps elisp (expand-file-name "elisp.ps" ps-dir)))
+ (if (member type '(nil "eintr" "eintr-node"))
+ (manual-html-node eintr (expand-file-name "eintr" html-node-dir)))
+ (if (member type '(nil "eintr" "eintr-node"))
+ (manual-html-mono eintr (expand-file-name "eintr.html" html-mono-dir)))
+ (if (member type '(nil "eintr" "eintr-pdf" "pdf"))
+ (manual-pdf eintr (expand-file-name "eintr.pdf" pdf-dir)))
+ (if (member type '(nil "eintr" "eintr-ps" "ps"))
+ (manual-ps eintr (expand-file-name "eintr.ps" ps-dir)))
;; Misc manuals
- (dolist (manual (manual-misc-manuals root))
- (manual-misc-html manual root html-node-dir html-mono-dir))
+ (dolist (manual misc)
+ (if (member type `(nil ,manual "misc"))
+ (manual-misc-html manual root html-node-dir html-mono-dir)))
(message "Manuals created in %s" dest)))
(defconst manual-doctype-string
@@ -264,7 +286,12 @@
@import url('/s/emacs/manual.css');\n</style>\n")
(defun manual-misc-html (name root html-node-dir html-mono-dir)
- (let ((texi (expand-file-name (format "doc/misc/%s.texi" name) root)))
+ ;; Hack to deal with the cases where .texi creates a different .info.
+ ;; Blech. TODO Why not just rename the .texi files?
+ (let* ((texiname (cond ((equal name "ccmode") "cc-mode")
+ ((equal name "efaq") "faq")
+ (t name)))
+ (texi (expand-file-name (format "doc/misc/%s.texi" texiname) root)))
(manual-html-node texi (expand-file-name name html-node-dir))
(manual-html-mono texi (expand-file-name (concat name ".html")
html-mono-dir))))
@@ -274,6 +301,7 @@
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."
+ (make-directory (or (file-name-directory dest) ".") t)
(call-process "makeinfo" nil nil nil
"-D" "WWW_GNU_ORG"
"-I" (expand-file-name "../emacs"
@@ -300,6 +328,7 @@
the @import directive."
(unless (file-exists-p texi-file)
(error "Manual file %s not found" texi-file))
+ (make-directory dir t)
(call-process "makeinfo" nil nil nil
"-D" "WWW_GNU_ORG"
"-I" (expand-file-name "../emacs"
@@ -336,6 +365,7 @@
(defun manual-pdf (texi-file dest)
"Run texi2pdf on TEXI-FILE, emitting pdf output to DEST."
+ (make-directory (or (file-name-directory dest) ".") t)
(let ((default-directory (file-name-directory texi-file)))
(call-process "texi2pdf" nil nil nil
"-I" "../emacs" "-I" "../misc"
@@ -343,6 +373,7 @@
(defun manual-ps (texi-file dest)
"Generate a PostScript version of TEXI-FILE as DEST."
+ (make-directory (or (file-name-directory dest) ".") t)
(let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi"))
(default-directory (file-name-directory texi-file)))
(call-process "texi2dvi" nil nil nil
@@ -454,7 +485,8 @@
(setq done t))
(t
(if (eobp)
- (error "Parse error in %s" f)) ; f is bound in manual-html-node
+ (error "Parse error in %s"
+ (file-name-nondirectory buffer-file-name)))
(unless open-td
(setq done t))))
(forward-line 1))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r113309: * admin.el (make-manuals): Add the option to only make certain output types.,
Glenn Morris <=