Commit Graph

26 Commits

Author SHA1 Message Date
Ludovic Courtès
8fe7c89f0c
doc: Cookbook links to /manual/devel, not /manual.
Since the Cookbook is built from the 'master' branch, it should point to
the manual from that same branch.

* doc/build.scm (guix-mono-node-indexes, guix-split-node-indexes): Link
to /manual/devel when %MANUAL is not "guix".
2020-10-21 19:19:33 +02:00
Ludovic Courtès
d66a4eac44
doc: Produce stylable HTML for @deftp, @deffn, etc.
'makeinfo --help' uses <strong> and <em> for those entries.  Replace
that with CSS classes.

* doc/build.scm (html-manual-identifier-index)[build]: Adjust to handle
rewritten forms of <dt> entries.
* doc/build.scm (syntax-highlighted-html)[build][syntax-highlight]:
Handle <dt> forms and replace them.
[highlight-definition, space?]: New procedures.
2020-10-19 13:28:38 +02:00
Ludovic Courtès
97ce30cc1b
doc: Generate cross-references in code snippets to the Guile manual.
Occurrences of 'list', 'cons', etc. in code snippets now link to the
relevant section of the Guile manual.

* doc/build.scm (guile-manual, %guile-manual-base-url)
(guile-mono-node-indexes, guile-split-node-indexes): New variables.
(for-all-languages, merge-index-alists): New procedures.
<top level>: Rename 'mono-node-indexes' and 'split-node-indexes' to
'guix-mono-node-indexes' and 'guix-split-node-indexes' respectively.
Add 'mono-node-indexes' and 'split-node-indexes' defined as calls to
'merge-index-alists'.
2020-10-17 22:40:17 +02:00
Ludovic Courtès
db1d445357
doc: Allow code snippets in the cookbook to link to the manual.
Until now, only code snippets in the manual itself would contain links
to identifier definitions.  Now snippets in the cookbook also link to
definitions in the manual.

* doc/build.scm (html-manual): Add #:mono-node-indexes and #:multi-node-indexes
and pass it to 'syntax-highlighted-html'.
(pdf+html-manual): Likewise, and pass it to 'html-manual'.
<top level>: Factorize 'version' and 'source'.  Define 'guix-manual',
'mono-node-indexes', and 'split-node-indexes'.  Pass #:mono-node-indexes
and #:split-node-indexes to 'pdf+html-manual'.
2020-10-17 22:40:17 +02:00
Ludovic Courtès
0f7d0743ed
doc: Move manual index creation to a separate derivation.
* doc/build.scm (normalize-language-code, html-manual-identifier-index):
New procedures.
(syntax-highlighted-html): Add #:mono-node-indexes and #:split-node-indexes.
[build](underscore-decode, anchor-id->key, collect-anchors): Remove.
(language+node-anchors, mono-node-anchors, multi-node-anchors): New
variables.
Use them.
2020-10-17 22:40:17 +02:00
Ludovic Courtès
3cd1a7ac51
doc: Remove 'build.scm' from the source of the manual.
That way we no longer have to rebuild the whole manual when fiddling
with 'build.scm'.

* doc/build.scm <top level>: Define 'select?' and pass it to
'pdf+html-manual'.
2020-10-17 22:40:17 +02:00
Ludovic Courtès
fe409700d8
doc: Syntax highlighting now handles @var within @lisp.
* doc/build.scm (syntax-highlighted-html)[build](concatenate-pieces):
Handle @var{name}.
2020-09-04 11:29:51 +02:00
Ludovic Courtès
8c23d7a15e
doc: Remove one use of 'file-append*'.
* doc/build.scm (texinfo-manual-source)[build]: Use 'file-append', not
'file-append*', for 'htmlxref.cnf', to ensure it has the right basename.
2020-05-25 23:00:30 +02:00
Ludovic Courtès
e5b495c18f
doc: Inherit md5.scm fix in custom 'guile-lib' variant.
* doc/build.scm (guile-lib/htmlprag-fixed)[source]: Remove.
[arguments]: Add 'fix-htmlprag' phase.
2020-05-18 15:08:58 +02:00
Björn Höfling
7c65fc378c
doc: Fix building the cookbook.
Fixes <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40803>.
Reported by "operator.name" <operator.name@protonmail.com>.

* doc/build.scm (%languages): Add smaller list for the cookbook.
(syntax-highlighted-html): Adapt regexp for mono-node files to include
the cookbook.
2020-05-02 13:21:42 +02:00
Ludovic Courtès
cb26edc8f6
doc: Include *.json files in the source.
This is a followup to c9f321e52a99dea93fcc099372ea0167150b9aac.

* doc/build.scm (texinfo-manual-source)[build]: Add *.json to #$output.
2020-04-21 23:52:19 +02:00
Ludovic Courtès
deac7bf6ac
doc: Improve anchor collection.
This allows us to catch "operating_002dsystem-1", for instance.

* doc/build.scm (syntax-highlighted-html)[build](anchor-id->key): Drop
"-1" & co. from ID.
2020-04-13 12:28:41 +02:00
Ludovic Courtès
c2480d1042
doc: Avoid invalid 'match' pattern in 'syntax-highlighted-html'.
This is a followup to da9deba13d551e316f5a99a614834efa27ddc7d1.

Last-minute modification of the 'match' pattern would lead to an error:

  "multiple ellipsis patterns not allowed at same level"

* doc/build.scm (syntax-highlighted-html)[build](collect-anchors):
Add 'worthy-entry?' procedure and use it instead of the unsupported
pattern for ('dt ...).
2020-04-13 02:12:08 +02:00
Ludovic Courtès
da9deba13d
doc: Emit hyperlinks in HTML output for @lisp snippets.
This makes it easier to jump to the definition of a procedure or
variable when looking at a code snippet.  There can be false-positive
because scoping rules are ignored, for example, but it should be a good
approximation.

* doc/build.scm (syntax-highlighted-html)[build](highlights->sxml*): Add
'anchors' parameter.  Add clause for ('symbol text).
(syntax-highlight): Add 'anchors' parameter.  Wrap body in named let and
use it in recursive calls.  Pass ANCHORS to 'highlights->sxml*'.
(underscore-decode, anchor-id->key, collect-anchors, html?): New procedures.
(process-file): Add 'anchors' parameter. and honor it.
Rewrite mono-node and multi-node HTML files separately.
2020-04-13 01:21:49 +02:00
Ludovic Courtès
f9e0488c50
doc: Make sure 'htmlxref.cnf' is honored.
Fixes <https://bugs.gnu.org/39060>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* doc/build.scm (html-manual)[build]: Copy 'htmlxref.cnf' to the current
directory so that 'makeinfo' honors it.
2020-01-12 00:19:10 +01:00
Ludovic Courtès
295c6a7e83
doc: Handle right arrows in 'syntax-highlighted-html'.
* doc/build.scm (syntax-highlighted-html)[build](entity->string): Add "rarr".
2019-11-28 13:30:53 +01:00
Ludovic Courtès
208cc522b9
doc: Use the right title in HTML indices for the cookbook.
* doc/build.scm (html-manual-indexes): Add #:title.
[build]: Replace "GNU Guix Reference Manual" by references to TITLE.
2019-10-22 18:32:52 +02:00
Julien Lepiller
2f000f2ef4
doc: More responsive online manual.
* doc/build.scm (%makeinfo-html-options): Add viewport to all generated
html pages for better mobile device support.
2019-10-21 21:17:01 +02:00
Ludovic Courtès
cacb5576cc
doc: Add support for "guix-cookbook.texi" to 'build.scm'.
* doc/build.scm (%manual): New variable.
(html-manual): #:manual now defaults to %MANUAL.
[build]: Define 'language->texi-file-name' and use it.  Filter out items
of LANGUAGES that lack a .texi file.
(pdf-manual, html-manual-indexes, pdf+html-manual): #:manual now
defaults to %MANUAL.
2019-10-21 18:16:16 +02:00
Ludovic Courtès
012c93e916
doc: Support paren matching via CSS hover.
* doc/build.scm (syntax-highlighted-html)[build](pair-open/close)
(highlights->sxml*): New procedures.
(syntax-highlight): Use 'highlights->sxml*'.
2019-09-25 15:46:48 +02:00
Ludovic Courtès
7854bbeb3f
doc: Work around (htmlprag) parser issue.
* doc/build.scm (guile-lib/htmlprag-fixed): New variable.
(syntax-highlighted-html): Use it instead of GUILE-LIB.
2019-09-07 18:42:08 +02:00
Ludovic Courtès
f8c143a713
doc: Highlight Scheme syntax in the HTML output.
* doc/build.scm (syntax-highlighted-html): New procedure.
(html-manual): Use it.
2019-09-07 00:36:34 +02:00
Ludovic Courtès
e3e9c191ed
doc: Add 'images' directory next to HTML pages.
* doc/build.scm (html-manual): Add images/ symlinks.
2019-07-16 10:37:49 +02:00
Ludovic Courtès
e591541d36
doc: Build a top-level index of the manuals.
Suggested by Julien Lepiller.

* doc/build.scm (html-manual-indexes)[build]: Add 'with-extensions'.
(translate): Actually honor DOMAIN.  Add call to 'bindtextdomain' for
ISO-CODES.
(%iso639-languages): New variable.
(language-code->name, top-level-index): New procedures.
Add call to 'write-html' for OUTPUT/index.html.
2019-07-15 12:48:49 +02:00
Ludovic Courtès
21bec78357
doc: Generalize build procedures of HTML indexes.
* doc/build.scm (html-manual-indexes)[build](sxml-index): Generalize;
add a 'title' and a 'body' parameter and honor them.
(language-index): New procedure.
(write-index): Remove.
(write-html): New procedure.
Use 'write-html' and 'language-index'.
2019-07-15 12:48:49 +02:00
Ludovic Courtès
ccadafdcef
build: Add 'doc/build.scm' to build on-line copies of the manual.
* doc/build.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2019-07-07 15:48:17 +02:00