Commit graph

41 commits

Author SHA1 Message Date
aszlig
1d77dcaed3
nixos/doc: Allow refs from options to the manual
My first attempt to do this was to just use a conditional <refsection/>
in order to not create exact references in the manpage but create the
reference in the HTML manual, as suggested by @edolstra on IRC.

Later I went on to use <olink/> to reference sections of the manual, but
in order to do that, we need to overhaul how we generate the manual and
manpages.

So, that's where we are now:

There is a new derivation called "manual-olinkdb", which is the olinkdb
for the HTML manual, which in turn creates the olinkdb.xml file and the
manual.db. The former contains the targetdoc references and the latter
the specific targetptr elements.

The reason why I included the olinkdb.xml verbatim is that first of all
the DTD is dependent on the Docbook XSL sources and the references
within the olinkdb.xml entities are relative to the current directory.

So using a store path for that would end up searching for the manual.db
directly in /nix/store/manual.db.

Unfortunately, the <olinks/> that end up in the output file are
relative, so for example if you're clicking on one of these within the
PDF, the URL is searched in the current directory.

However, the sections from the olink's text are still valid, so we could
use an alternative URL for that in the future.

The manual doesn't contain any links, so even referencing the relative
URL shouldn't do any harm.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @edolstra
2016-04-11 18:38:04 +02:00
aszlig
64e566a49c
nixos/taskserver: Add module documentation
It's not by any means exhaustive, but we're still going to change the
implementation, so let's just use this as a starting point.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-04-07 14:26:12 +02:00
Pascal Wittmann
8ddfab0cf2 nixos/manpages: enable linebreaking after slashes
Allow linbreaks after slashes in long URLs. The option used
is documented at

   http://docbook.sourceforge.net/release/xsl/current/doc/manpages/man.break.after.slash.html

This commit fixes #4538.
2016-03-19 17:16:59 +01:00
Eelco Dolstra
f3d94cfc23 Revert "Add the tool "nixos-typecheck" that can check an option declaration to:"
This reverts commit cad8957eab. It
breaks NixOps, but more importantly, such major changes to the module
system really need to be reviewed.
2016-03-01 20:52:06 +01:00
Thomas Strobel
cad8957eab Add the tool "nixos-typecheck" that can check an option declaration to:
- Enforce that an option declaration has a "defaultText" if and only if the
   type of the option derives from "package", "packageSet" or "nixpkgsConfig"
   and if a "default" attribute is defined.

 - Enforce that the value of the "example" attribute is wrapped with "literalExample"
   if the type of the option derives from "package", "packageSet" or "nixpkgsConfig".

 - Warn if a "defaultText" is defined in an option declaration if the type of
   the option does not derive from "package", "packageSet" or "nixpkgsConfig".

 - Warn if no "type" is defined in an option declaration.
2016-02-29 01:09:00 +01:00
Eelco Dolstra
d4636fa254 Revert "Add a way to pin a NixOS version within the module system."
This reverts commit a5992ad61b. Motivation:

a5992ad61b (commitcomment-14986820)
2016-02-27 20:48:12 +01:00
Franz Pletz
cd0f14f23e gitlab: Add documentation
Fixes #13303.
2016-02-26 08:56:39 +01:00
aszlig
6fec28e043
nixos-manual: Further simplify stripAnyPrefixes
First of all this fixes an evaluation error I introduced in ae466ba,
which wasn't triggered by any of my own tests against the change because
there are usually no NixOS options that are declared outside of the
<nixpkgs> tree. I renamed the attribute name from "fn" to "fileName"
first and later to "fullPath" but forgot one still occuring "filename".

Thanks to @vcunat for noticing this.

Another thing that he pointed out was that the "stripPrefix" function
can be factored away entirely, because it's very similar to
"removePrefix" in <nixpkgs/lib>.

Unfortunately we can't use "removePrefix" as is, because we need to
account for the final shlash.

So instead of removing it twice and/or retaining "stripPrefix", let's
append a shlash on every "prefixesToStrip" and we can use "removePrefix"
as is.

Tested with:

taalo-build nixos/release.nix -A tests.installer.simple.x86_64-linux

And:

w3m -dump "$(
  nix-build nixos/release.nix -A manual.x86_64-linux
)/share/doc/nixos/options.html"

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @vcunat
2016-01-29 20:14:11 +01:00
aszlig
ae466ba15c
nixos-manual: Simplify stripping prefixes
Let's use a simple (unflipped) fold and break out the actual core
stripPrefix function from stripAnyPrefixes (I personally love
point-less^H^H^H^Hfree style but if I'd be anal I'd even go further and
factor away the "fn:").

Also, let's use path as a better name for "fn" (filename), because
that's what it is and also cannot be confused with "fn" meaning
"function".

We now toString all of the prefixes, so there shouldn't be any need to
implicily toString the extraSources anymore.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-01-29 16:33:19 +01:00
aszlig
a581f72f22
nixos-manual: Fix stripping declaration prefixes
Regression introduced by e6cd147ae7.

This broke all of the installer tests, because they needed to rebuild
the manual within the test machine, while it only has a closure of the
already pre-built system in place.

The problem here was just that the order of the arguments got mixed up
in stripAnyPrefixes, so it was actually trying to strip the path off the
prefix, not the other way around.

So in the end no prefix was stripped at all, so we ended up having full
store paths in the manual, which in turn caused the build within the VM
to fail, because the prefixes differed.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-01-29 16:33:19 +01:00
Ryan Artecona
e6cd147ae7 nixos manual: allow options from nix packages 2016-01-22 14:22:12 -05:00
Franz Pletz
1685b9d06e nixos/acme: Add module documentation 2015-12-12 16:06:53 +01:00
Nicolas B. Pierron
a5992ad61b Add a way to pin a NixOS version within the module system.
This modification add a way to re-evaluate the module system with a
different version of NixOS, or with a different set of arguments.
2015-11-19 20:58:45 +00:00
Eelco Dolstra
5b8dae8ef3 Prevent future store path references in the manual 2015-09-24 11:51:26 +02:00
Vladimír Čunát
9bd0bac311 nixos/manualPDF: use new texlive instead of tetex
This includes updating dblatex and crafting ~100 MB TeX package set
to make our manual compile.
2015-09-23 21:14:16 +02:00
Eelco Dolstra
1a03de173b Move release notes to an appendix and a separate chunk 2015-07-22 16:21:32 +02:00
Eelco Dolstra
48a25dc899 Manual: Reduce chunking
Fixes #7607.
2015-07-22 16:21:32 +02:00
Domen Kožar
79a51b0cf3 Add Type information into manual and manpages, fixes #4600 2015-01-04 15:41:32 +01:00
Eelco Dolstra
b89c06722f options.json: Filter out "visible" and "internal" attributes 2014-11-17 15:17:40 +01:00
Eelco Dolstra
44d14e2264 options.json: Export as an object rather than a list
This makes it easier to look up options by name.
2014-11-17 15:17:39 +01:00
Eelco Dolstra
8b79cc00bf Manual: Don't depend on the JSON options 2014-11-17 15:17:39 +01:00
Eelco Dolstra
32fa5ee2c5 Manual: Fix build product 2014-09-10 15:03:59 +02:00
Michael Fellinger
33aaa7ac54 fix location of options.xml 2014-09-09 13:43:23 +02:00
Nicolas Pierron
79411db08b Export options.json & options.xml for building tools for NixOS. 2014-09-07 18:39:24 +02:00
Eelco Dolstra
41788255ab Manual: Start of module-specific documentation 2014-08-27 12:24:44 +02:00
Eelco Dolstra
c72fdf4f48 Manual: Tweak 2014-08-26 15:13:21 +02:00
Eelco Dolstra
81f2749012 Manual: Chunk into separate pages 2014-08-25 19:08:31 +02:00
Eelco Dolstra
b1ce3cc172 Manual: Handle XML files in subdirectories 2014-08-25 14:33:33 +02:00
Eelco Dolstra
7a09c6018d Manual: Generate PDF
Issue NixOS/nixos#237.
2014-08-09 16:33:12 +02:00
Eelco Dolstra
40f7b0f9df Another attempt to eradicate ensureDir
See c556a6ea46.
2014-06-30 14:56:10 +02:00
Eelco Dolstra
a7d31fe449 Handle <nixpkgs> being a symlink
Fixes #1898.
2014-06-13 16:48:49 +02:00
Eelco Dolstra
9ef07d859b Include the NixOS version in the manual
In particular, this will make it clear what version of the manual is
shown at http://nixos.org/nixos/manual/.
2013-11-01 16:47:29 +01:00
Eelco Dolstra
b5cfb8c120 Put the manual in the NixOS channel 2013-10-24 20:06:02 +02:00
Eelco Dolstra
d49f141a79 Manual: When building from the channel, link to the exact Git revision 2013-10-24 02:03:10 +02:00
Eelco Dolstra
8166b12f0c Manual: Check that we don't depend on the Nixpkgs location 2013-10-23 20:08:23 +02:00
Eelco Dolstra
0def73f390 Manual: Don't depend on the absolute path of modules
This ensures that the manual has the same store path regardless of the
directory in which Nixpkgs is stored, and thus can be fetched from the
channel.
2013-10-23 20:08:22 +02:00
Eelco Dolstra
ec0911ce7f Manual: Don't show obsolete/deprecated options 2013-10-23 20:08:21 +02:00
Eelco Dolstra
29014a47fb Allow options to be marked as "internal"
This means they're not for end users.  Currently they're filtered from
the manual, but we could include them in a separate section.
2013-10-23 20:08:21 +02:00
Eelco Dolstra
441dcd68d8 Get rid of special-casing of system.path in the manual generation 2013-10-23 20:08:21 +02:00
Eelco Dolstra
04690da3bd Rename newOptionAttrSetToDocList -> optionAttrSetToDocList 2013-10-17 14:09:05 +02:00
Eelco Dolstra
5c1f8cbc70 Move all of NixOS to nixos/ in preparation of the repository merge 2013-10-10 13:28:20 +02:00
Renamed from doc/manual/default.nix (Browse further)