1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-10 16:50:43 +02:00
Commit graph

57 commits

Author SHA1 Message Date
Ludovic Courtès
a40cc32ae8
doc: Add links to versions and variants as a drop-down menu.
* doc/build.scm (%latest-guix-version): New variable.
(stylized-html): Add #:latest-version.
[build](menu-item-separator): New variable.
(version-menu-items, input-file-language): New procedures.
(stylized-html, process-html): Add ‘language’ parameter.  Update
callers.

Change-Id: If7cea2410802eec5af1d3c0407d5569250eb15ef
2025-07-09 14:19:04 +02:00
Ludovic Courtès
1691a4458c
doc: Really honor ‘GUIX_WEB_SITE_URL’.
This is useful when testing changes locally, so that CSS links point to
the right place.

* doc/build.scm (%web-site-url): Default to /.
(%manual-css-url): Honor ‘%web-site-url’.

Change-Id: I8d885eba0fb8560dd7da7f21629c716a06c16b1f
2025-07-09 14:17:30 +02:00
Ludovic Courtès
e32c098f5d
doc: Update build machinery for today’s ‘master’.
This updates TeX Live package names to match what’s available in today’s
‘master’ branch since ‘master’ is what is used to build the on-line copy
of the manual.

* doc/build.scm (pdf-manual)[texinfo-profile]: Update TeX Live package
names.

Change-Id: I5db327e1543a1f9a8697bf3b1b65ab50959efdc4
2025-06-16 17:21:25 +02:00
Ludovic Courtès
4ea1538dd7
doc: Use CSS from guix.gnu.org.
This is a followup to commit 7bbc00ccf0315a68509cacd6a85e1ae8ae7f5e5d of
guix/artwork.git.

* doc/build.scm (%manual-css-url): New variable.
(%makeinfo-html-options): Use it instead of www.gnu.org/…/manual.css.
(stylized-html): Likewise for the default #:manual-css-url.

Change-Id: I20bd3866383f8cbb4984993c15dbab483a17f6c9
2025-06-16 17:17:02 +02:00
Christopher Baines
10527dac08
doc: build.scm: Handle (current-source-directory) being #f.
Since this seems to be the case when the devel manual is being built on
bayfront.

* doc/build.scm: Use the current working directory as a fallback
if (current-source-directory) is #f, and log the value of root.

Change-Id: Ic43fd05a4a0822d9efb935069850f0a8cadd80aa
2025-06-16 17:15:40 +02:00
Florian Pelz
aaf86bbe1f
doc: build: Handle when guile source is packed with zstd.
* doc/build.scm (guile-manual): Also include zstd in PATH.

Change-Id: Iff49825fe84121bff777ed45c03fb14af0a0e719
2024-09-05 00:19:07 +02:00
Ludovic Courtès
889fe96307
doc: Repair building non-English website manuals.
Fixes: <https://issues.guix.gnu.org/72257>.

* doc/build.scm (translated-texi-manuals): Copy the code
from (@ (guix self) translate-texi-manuals) rather than importing
it.  This fixes building doc/build.scm at version 1.4.0 with
recent Guix revisions.

Change-Id: Ia23425f824e4a6e619f32a28493b811c0e7c31d5
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2024-07-26 21:41:40 +02:00
Ludovic Courtès
efc8489651
doc: Adjust HTML patterns to correctly process Texinfo 6.8 output.
Prior to ceb5ef8347, (@ (gnu packages
texinfo) texinfo), which is what is used here, was pointing to version 6.7.

* doc/build.scm (html-manual-identifier-index)[build](worthy-entry?):
Adjust patterns for Texinfo 6.8.
(syntax-highlighted-html)[build](syntax-highlight): Likewise.
2023-06-08 23:52:23 +02:00
Ludovic Courtès
0be722a0b5
doc: Build pt_BR manual.
* doc/build.scm (%manual-languages): Add "pt_BR".
2022-11-15 12:16:44 +01:00
Maxim Cournoyer
1cde647cc0
doc: Use a minimal texlive profile in build.scm.
* doc/build.scm (pdf-manual) <texinfo-profile>: New variable.
<PATH>: Define in terms of the above.
<GUIX_TEXMF>: New environment variable.
2022-06-15 17:24:46 -04:00
Ludovic Courtès
b38e053513
doc: Build an empty index if the manual is missing.
That way, the "sk" index for 'guix-manual' is empty, because
'guix-manual' lacks an "sk" translation.

* doc/build.scm (html-manual-identifier-index)[build](html-files):
Gracefully handle 'scandir' returning #f.
2022-04-08 23:59:48 +02:00
Ludovic Courtès
0d0e2165ea
doc: Allow different translations for 'guix-cookbook' and 'guix-manual'.
Previously, 'guix-manual-text-domain' could be passed the cookbook
language list as its second argument.  Thus, it started failing when the
set of cookbook languages was no longer a subset of the manual
languages, starting with commit
93bfd4d9c7, which removed "sk" from
'guix-manual' but kept it for 'guix-cookbook'.

* doc/build.scm (%manual-languages, %cookbook-languages): New
variables.
(%languages): Use them.
(guix-manual-text-domain): Give LANGUAGES a valid default value.
(localization-helper-module): Remove optional argument to
'guix-manual-text-domain'.
2022-04-08 22:56:02 +02:00
Ludovic Courtès
be84fb701b
doc: Publish the Slovak translation of the cookbook.
* doc/build.scm (%languages): Add "sk" for "guix-cookbook" (it's
currently at 57%).
2022-03-02 19:26:16 +01:00
Ludovic Courtès
a27e47f9d1
doc: Normalize language codes in menu URLs.
* doc/build.scm (stylized-html)[build](base-language-url): Add calls to
'normalize'.
2022-01-19 22:07:55 +01:00
Ludovic Courtès
fa580bf3b4
doc: Make the HTML language menu disappear on narrow screens.
* doc/build.scm (stylized-html)[build](navigation-bar): New procedure.
(stylized-html): Use it.
2022-01-19 15:43:25 +01:00
Ludovic Courtès
7eb883b7c2
doc: Add a language menu in the HTML manual.
* doc/build.scm (stylized-html): New procedure.
(html-manual): Use it.
2022-01-18 22:51:08 +01:00
Ludovic Courtès
ee16e4e8da
doc: Factorize 'language-code->native-name'.
* doc/build.scm (localization-helper-module)[content](translate): Add
call to 'setenv' before 'write'.  Remove use of 'with-language'.
(language-code->native-name): New procedure.
(html-manual-indexes)[build](top-level-index): Use it.
2022-01-18 22:51:08 +01:00
Ludovic Courtès
62fc6fdb4c
doc: Extract (localization) module.
* doc/build.scm (localization-helper-module): New procedure.
(html-manual-indexes)[build]: Use it.  Remove use of GUILE-JSON-3.
2022-01-18 18:46:51 +01:00
Ludovic Courtès
560fd99061
doc: Remove now unnecessary workaround.
* doc/build.scm (translated-texi-manuals): Turn into an alias
for (@@ (guix self) translated-texi-manuals).
2022-01-15 23:27:34 +01:00
Ludovic Courtès
1052ae5f03
Merge branch 'master' into core-updates-frozen 2021-12-13 11:49:15 +01:00
Ludovic Courtès
c946e1464d
doc: Handle '&nbsp' when syntax-highlighting HTML.
* doc/build.scm (syntax-highlighted-html)[build](entity->string): Handle "&nbsp".
2021-12-13 11:31:53 +01:00
Efraim Flashner
bc5155b952
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-10-31 14:49:47 +02:00
Ludovic Courtès
45b251fd04
doc: Allow offloading of the expensive derivations.
* doc/build.scm (translated-texi-manuals)
(html-manual, pdf-manual): Pass #:local-build? #f.
2021-10-28 21:30:27 +02:00
Ludovic Courtès
0e47fcced4
Merge branch 'master' into core-updates 2021-07-18 19:50:01 +02:00
Ludovic Courtès
580a031e7d
doc: Build manual translations with 'guile-3.0-latest'.
Fixes <https://bugs.gnu.org/47428>.
Reported by Leo Famulari <leo@famulari.name>.

* doc/build.scm (translated-texi-manuals): Explicitly use 'guile-3.0-latest'.
2021-07-09 17:33:46 +02:00
Marius Bakke
f034264204
Merge branch 'master' into core-updates
Conflicts:
	gnu/local.mk
	gnu/packages/bioinformatics.scm
	gnu/packages/django.scm
	gnu/packages/gtk.scm
	gnu/packages/llvm.scm
	gnu/packages/python-web.scm
	gnu/packages/python.scm
	gnu/packages/tex.scm
	guix/build-system/asdf.scm
	guix/build/emacs-build-system.scm
	guix/profiles.scm
2021-05-09 21:29:46 +02:00
Leo Famulari
46852000c9
doc: Clarify further the distinction between the web-based manuals.
As discussed on #guix IRC, several of us struggle to reliably choose the
right option based on the old labels:

https://logs.guix.gnu.org/guix/2021-04-20.log#182137

* doc/build.scm (html-manual-indexes): Try to distinguish between the
two options more clearly.
2021-04-20 12:48:32 -04:00
Julien Lepiller
fef2f08bc6
doc: Build the French HTML cookbook.
* doc/build.scm (%languages): Add 'fr' cookbook translation.
2021-04-18 16:50:18 +02:00
Efraim Flashner
2aab587f84
Merge remote-tracking branch 'origin/master' into core-updates 2021-03-24 20:50:44 +02:00
Maxim Cournoyer
25db3b2f8b
doc: Remove the guile-lib/htmlprag-fixed package.
This hotfix package is no longer necessary as the ability to parameterize the
way htmlprag tokenizes HTML was added in guile-lib 0.2.7.

* doc/build.scm (guile-lib/htmlprag-fixed): Remove variable.
(html-manual-identifier-index): Replace guile-lib/htmlprag-fixed by guile-lib,
and make set the %strict-tokenizer? parameter to #t.
(syntax-highlighted-html): Likewise.
2021-03-20 15:55:18 -04:00
Maxim Cournoyer
82f5f6b14c
gnu: Replace all uses of texlive-union by texlive-updmap.cfg.
* doc/build.scm (pdf-manual) Replace texlive-union by texlive-updmap.cfg.
* gnu/packages/algebra.scm (pari-gp): Likewise.
* gnu/packages/bioinformatics.scm (discrover, velvet): Likewise.
* gnu/packages/chez.scm (chez-scheme, chez-web, chez-sockets): Likewise.
* gnu/packages/docbook.scm (dblatex): Likewise.
* gnu/packages/emacs-xyz.scm (emacs-auctex): Likewise.
* gnu/packages/engineering.scm (fastcap): Likewise.
* gnu/packages/guile-xyz.scm (emacsy, guile-cv): Likewise.
* gnu/packages/lisp.scm (sbcl): Likewise.
* gnu/packages/maths.scm (octave, hypre): Likewise.
* gnu/packages/music.scm (lilypond): Likewise.
* gnu/packages/plotutils.scm (asymptote): Likewise.
* gnu/packages/python-xyz.scm (python-numpy-documentation)
(python-matplotlib-documentation, python-ipython-documentation)
(python-pypandoc): Likewise.
* gnu/packages/radio.scm (gnuradio, libosmo-dsp): Likewise.
* gnu/packages/scheme.scm (mit-scheme): Likewise.
* gnu/packages/statistics.scm (r-with-tests): Likewise.
* gnu/packages/tex.scm (simple-texlive-package)
(texlive-xmltex, texlive-tiny, texlive-jadetex, teximpatient, lyx): Likewise.
2021-01-29 13:35:47 -05:00
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 c9f321e52a.

* 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 da9deba13d.

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