[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#27153: gnu: sicp: Add the HTML version.
From: |
Clément Lassieur |
Subject: |
bug#27153: gnu: sicp: Add the HTML version. |
Date: |
Tue, 30 May 2017 23:05:42 +0200 |
User-agent: |
mu4e 0.9.18; emacs 25.2.1 |
Yesterday, while browsing the Info version of SICP, I came accross an
incomplete figure (Figure 3.1: environments A and B are missing). I
thought the HTML version might be complete and indeed it was. It's
really nice by the way, see http://sarabander.github.io/sicp/. And real
figures are in my opinion more pleasant to study than ASCII art figures.
So I think we should add the HTML version to our package. :-) That
would allow us to use it without Internet access.
I find it much easier to browse the Info manual than the HTML one, so I
wrote this small Elisp snippet to switch from the former to the latter:
--8<---------------cut here---------------start------------->8---
(defun sicp-browse ()
"Ask a browser to load the HTML version of the current node."
(interactive)
(let* ((home (expand-file-name "~"))
(dir (concat "file://" home "/.guix-profile/share/doc/sicp/html/"))
(node Info-current-node)
(pattern
(string-join
'("^\\(?1:[0-9]\\)\.\\(?2:[0-9]\\)\.\\(?3:[0-9]\\)$" ; 4-5-7
"^\\(?1:[0-9]\\)\.\\(?2:[0-9]\\)$" ; 4-5
"^Chapter \\(?1:[0-9]\\)$") ; Chapter 4
"\\|")))
(if (string-match pattern node)
(let ((chapter (match-string 1 node)) ; 4
(section (match-string 2 node)) ; 5
(sub-section (match-string 3 node)) ; 7
base
(anchor ""))
(if section
(setq base (format "%s_002e%s" chapter section))
(setq base (format "Chapter-%s" chapter)))
(when sub-section
(setq anchor (format "#g_t%s_002e%s" base sub-section)))
(browse-url (concat dir base ".xhtml" anchor)))
(error "Node not matched"))))
--8<---------------cut here---------------end--------------->8---
- bug#27153: gnu: sicp: Add the HTML version.,
Clément Lassieur <=