nixos/*: md-convert options with unordered lists

mostly no rendering changes. some lists (like simplelist) don't have an
exact translation to markdown, so we use a comma-separated list of
literals instead.
This commit is contained in:
pennae 2022-08-29 23:34:22 +02:00
parent 1013069f52
commit c915b915b5
19 changed files with 197 additions and 370 deletions

View file

@ -77,24 +77,21 @@ in
environment.memoryAllocator.provider = mkOption { environment.memoryAllocator.provider = mkOption {
type = types.enum ([ "libc" ] ++ attrNames providers); type = types.enum ([ "libc" ] ++ attrNames providers);
default = "libc"; default = "libc";
description = '' description = lib.mdDoc ''
The system-wide memory allocator. The system-wide memory allocator.
Briefly, the system-wide memory allocator providers are: Briefly, the system-wide memory allocator providers are:
<itemizedlist>
<listitem><para><literal>libc</literal>: the standard allocator provided by libc</para></listitem>
${toString (mapAttrsToList
(name: value: "<listitem><para><literal>${name}</literal>: ${value.description}</para></listitem>")
providers)}
</itemizedlist>
<warning> - `libc`: the standard allocator provided by libc
<para> ${concatStringsSep "\n" (mapAttrsToList
(name: value: "- `${name}`: ${replaceStrings [ "\n" ] [ " " ] value.description}")
providers)}
::: {.warning}
Selecting an alternative allocator (i.e., anything other than Selecting an alternative allocator (i.e., anything other than
<literal>libc</literal>) may result in instability, data loss, `libc`) may result in instability, data loss,
and/or service failure. and/or service failure.
</para> :::
</warning>
''; '';
}; };
}; };

View file

@ -61,30 +61,20 @@ in
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
example = "status"; example = "status";
description = '' description = lib.mdDoc ''
The name of the column or an SQL expression that indicates the status of The name of the column or an SQL expression that indicates the status of
the user. The status is expressed by the combination of two bitfields the user. The status is expressed by the combination of two bitfields
shown below: shown below:
<itemizedlist> - `bit 0 (0x01)`:
<listitem> if flagged, `pam_mysql` deems the account to be expired and
<para> returns `PAM_ACCT_EXPIRED`. That is, the account is supposed
<literal>bit 0 (0x01)</literal>: to no longer be available. Note this doesn't mean that `pam_mysql`
if flagged, <literal>pam_mysql</literal> deems the account to be expired and rejects further authentication operations.
returns <literal>PAM_ACCT_EXPIRED</literal>. That is, the account is supposed - `bit 1 (0x02)`:
to no longer be available. Note this doesn't mean that <literal>pam_mysql</literal> if flagged, `pam_mysql` deems the authentication token
rejects further authentication operations. (password) to be expired and returns `PAM_NEW_AUTHTOK_REQD`.
</para> This ends up requiring that the user enter a new password.
</listitem>
<listitem>
<para>
<literal>bit 1 (0x02)</literal>:
if flagged, <literal>pam_mysql</literal> deems the authentication token
(password) to be expired and returns <literal>PAM_NEW_AUTHTOK_REQD</literal>.
This ends up requiring that the user enter a new password.
</para>
</listitem>
</itemizedlist>
''; '';
}; };
passwordCrypt = mkOption { passwordCrypt = mkOption {
@ -101,74 +91,32 @@ in
"8" "sha512" "8" "sha512"
"9" "sha256" "9" "sha256"
]; ];
description = '' description = lib.mdDoc ''
The method to encrypt the user's password: The method to encrypt the user's password:
<itemizedlist> - `0` (or `"plain"`):
<listitem> No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
<para> - `1` (or `"Y"`):
<literal>0</literal> (or <literal>"plain"</literal>): Use crypt(3) function.
No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED. - `2` (or `"mysql"`):
</para> Use the MySQL PASSWORD() function. It is possible that the encryption function used
</listitem> by `pam_mysql` is different from that of the MySQL server, as
<listitem> `pam_mysql` uses the function defined in MySQL's C-client API
<para> instead of using PASSWORD() SQL function in the query.
<literal>1</literal> (or <literal>"Y"</literal>): - `3` (or `"md5"`):
Use crypt(3) function. Use plain hex MD5.
</para> - `4` (or `"sha1"`):
</listitem> Use plain hex SHA1.
<listitem> - `5` (or `"drupal7"`):
<para> Use Drupal7 salted passwords.
<literal>2</literal> (or <literal>"mysql"</literal>): - `6` (or `"joomla15"`):
Use the MySQL PASSWORD() function. It is possible that the encryption function used Use Joomla15 salted passwords.
by <literal>pam_mysql</literal> is different from that of the MySQL server, as - `7` (or `"ssha"`):
<literal>pam_mysql</literal> uses the function defined in MySQL's C-client API Use ssha hashed passwords.
instead of using PASSWORD() SQL function in the query. - `8` (or `"sha512"`):
</para> Use sha512 hashed passwords.
</listitem> - `9` (or `"sha256"`):
<listitem> Use sha256 hashed passwords.
<para>
<literal>3</literal> (or <literal>"md5"</literal>):
Use plain hex MD5.
</para>
</listitem>
<listitem>
<para>
<literal>4</literal> (or <literal>"sha1"</literal>):
Use plain hex SHA1.
</para>
</listitem>
<listitem>
<para>
<literal>5</literal> (or <literal>"drupal7"</literal>):
Use Drupal7 salted passwords.
</para>
</listitem>
<listitem>
<para>
<literal>6</literal> (or <literal>"joomla15"</literal>):
Use Joomla15 salted passwords.
</para>
</listitem>
<listitem>
<para>
<literal>7</literal> (or <literal>"ssha"</literal>):
Use ssha hashed passwords.
</para>
</listitem>
<listitem>
<para>
<literal>8</literal> (or <literal>"sha512"</literal>):
Use sha512 hashed passwords.
</para>
</listitem>
<listitem>
<para>
<literal>9</literal> (or <literal>"sha256"</literal>):
Use sha256 hashed passwords.
</para>
</listitem>
</itemizedlist>
''; '';
}; };
cryptDefault = mkOption { cryptDefault = mkOption {

View file

@ -32,22 +32,20 @@ in
type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]); type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]);
default = null; default = null;
example = "fcitx"; example = "fcitx";
description = '' description = lib.mdDoc ''
Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices. Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
Input methods are specially used to input Chinese, Japanese and Korean characters. Input methods are specially used to input Chinese, Japanese and Korean characters.
Currently the following input methods are available in NixOS: Currently the following input methods are available in NixOS:
<itemizedlist> - ibus: The intelligent input bus, extra input engines can be added using `i18n.inputMethod.ibus.engines`.
<listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem> - fcitx: A customizable lightweight input method, extra input engines can be added using `i18n.inputMethod.fcitx.engines`.
<listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem> - fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using `i18n.inputMethod.fcitx5.addons`.
<listitem><para>fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using <literal>i18n.inputMethod.fcitx5.addons</literal>.</para></listitem> - nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.
<listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem> - uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.
<listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem> - hime: An extremely easy-to-use input method framework.
<listitem><para>hime: An extremely easy-to-use input method framework.</para></listitem> - kime: Koream IME.
<listitem><para>kime: Koream IME.</para></listitem>
</itemizedlist>
''; '';
}; };

View file

@ -226,15 +226,14 @@ in
nixos.enable = mkOption { nixos.enable = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;
description = '' description = lib.mdDoc ''
Whether to install NixOS's own documentation. Whether to install NixOS's own documentation.
<itemizedlist>
<listitem><para>This includes man pages like - This includes man pages like
<citerefentry><refentrytitle>configuration.nix</refentrytitle><manvolnum>5</manvolnum></citerefentry> if <option>documentation.man.enable</option> is {manpage}`configuration.nix(5)` if {option}`documentation.man.enable` is
set.</para></listitem> set.
<listitem><para>This includes the HTML manual and the <command>nixos-help</command> command if - This includes the HTML manual and the {command}`nixos-help` command if
<option>documentation.doc.enable</option> is set.</para></listitem> {option}`documentation.doc.enable` is set.
</itemizedlist>
''; '';
}; };

View file

@ -576,13 +576,12 @@ let
ocspMustStaple = mkOption { ocspMustStaple = mkOption {
type = types.bool; type = types.bool;
inherit (defaultAndText "ocspMustStaple" false) default defaultText; inherit (defaultAndText "ocspMustStaple" false) default defaultText;
description = '' description = lib.mdDoc ''
Turns on the OCSP Must-Staple TLS extension. Turns on the OCSP Must-Staple TLS extension.
Make sure you know what you're doing! See: Make sure you know what you're doing! See:
<itemizedlist>
<listitem><para><link xlink:href="https://blog.apnic.net/2019/01/15/is-the-web-ready-for-ocsp-must-staple/"/></para></listitem> - <https://blog.apnic.net/2019/01/15/is-the-web-ready-for-ocsp-must-staple/>
<listitem><para><link xlink:href="https://blog.hboeck.de/archives/886-The-Problem-with-OCSP-Stapling-and-Must-Staple-and-why-Certificate-Revocation-is-still-broken.html"/></para></listitem> - <https://blog.hboeck.de/archives/886-The-Problem-with-OCSP-Stapling-and-Must-Staple-and-why-Certificate-Revocation-is-still-broken.html>
</itemizedlist>
''; '';
}; };

View file

@ -76,21 +76,11 @@ in {
tctiEnvironment = { tctiEnvironment = {
enable = lib.mkOption { enable = lib.mkOption {
description = '' description = lib.mdDoc ''
Set common TCTI environment variables to the specified value. Set common TCTI environment variables to the specified value.
The variables are The variables are
<itemizedlist> - `TPM2TOOLS_TCTI`
<listitem> - `TPM2_PKCS11_TCTI`
<para>
<literal>TPM2TOOLS_TCTI</literal>
</para>
</listitem>
<listitem>
<para>
<literal>TPM2_PKCS11_TCTI</literal>
</para>
</listitem>
</itemizedlist>
''; '';
type = lib.types.bool; type = lib.types.bool;
default = false; default = false;

View file

@ -13,15 +13,13 @@ in with lib; {
defaultText = literalExpression "pkgs.meshcentral"; defaultText = literalExpression "pkgs.meshcentral";
}; };
settings = mkOption { settings = mkOption {
description = '' description = lib.mdDoc ''
Settings for MeshCentral. Refer to upstream documentation for details: Settings for MeshCentral. Refer to upstream documentation for details:
<itemizedlist> - [JSON Schema definition](https://github.com/Ylianst/MeshCentral/blob/master/meshcentral-config-schema.json)
<listitem><para><link xlink:href="https://github.com/Ylianst/MeshCentral/blob/master/meshcentral-config-schema.json">JSON Schema definition</link></para></listitem> - [simple sample configuration](https://github.com/Ylianst/MeshCentral/blob/master/sample-config.json)
<listitem><para><link xlink:href="https://github.com/Ylianst/MeshCentral/blob/master/sample-config.json">simple sample configuration</link></para></listitem> - [complex sample configuration](https://github.com/Ylianst/MeshCentral/blob/master/sample-config-advanced.json)
<listitem><para><link xlink:href="https://github.com/Ylianst/MeshCentral/blob/master/sample-config-advanced.json">complex sample configuration</link></para></listitem> - [Old homepage with documentation link](https://www.meshcommander.com/meshcentral2)
<listitem><para><link xlink:href="https://www.meshcommander.com/meshcentral2">Old homepage) with documentation link</link></para></listitem>
</itemizedlist>
''; '';
type = types.submodule { type = types.submodule {
freeformType = configFormat.type; freeformType = configFormat.type;

View file

@ -39,7 +39,7 @@ in
enableWattsUpPro = mkOption { enableWattsUpPro = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = '' description = lib.mdDoc ''
Enable the Watts Up Pro device. Enable the Watts Up Pro device.
The Watts Up Pro contains a generic FTDI USB device without a specific The Watts Up Pro contains a generic FTDI USB device without a specific
@ -49,10 +49,8 @@ in
The generic FTDI device is known to also be used on: The generic FTDI device is known to also be used on:
<itemizedlist> - Sparkfun FT232 breakout board
<listitem><para>Sparkfun FT232 breakout board</para></listitem> - Parallax Propeller
<listitem><para>Parallax Propeller</para></listitem>
</itemizedlist>
''; '';
}; };

View file

@ -62,18 +62,16 @@ in {
mode = mkOption { mode = mkOption {
default = "default"; default = "default";
type = types.enum [ "default" "reusable" "clustered" ]; type = types.enum [ "default" "reusable" "clustered" ];
description = '' description = lib.mdDoc ''
Rendering mode of <literal>grafana-image-renderer</literal>: Rendering mode of `grafana-image-renderer`:
<itemizedlist>
<listitem><para><literal>default:</literal> Creates on browser-instance - `default:` Creates on browser-instance
per rendering request.</para></listitem> per rendering request.
<listitem><para><literal>reusable:</literal> One browser instance - `reusable:` One browser instance
will be started and reused for each rendering request.</para></listitem> will be started and reused for each rendering request.
<listitem><para><literal>clustered:</literal> allows to precisely - `clustered:` allows to precisely
configure how many browser-instances are supposed to be used. The values configure how many browser-instances are supposed to be used. The values
for that mode can be declared in <literal>rendering.clustering</literal>. for that mode can be declared in `rendering.clustering`.
</para></listitem>
</itemizedlist>
''; '';
}; };
args = mkOption { args = mkOption {

View file

@ -55,35 +55,17 @@ in {
"udppm" "udppm"
]; ];
example = "proxy"; example = "proxy";
description = '' description = lib.mdDoc ''
Service type. The following values are valid: Service type. The following values are valid:
<itemizedlist> - `"proxy"`: HTTP/HTTPS proxy (default port 3128).
<listitem><para> - `"socks"`: SOCKS 4/4.5/5 proxy (default port 1080).
<literal>"proxy"</literal>: HTTP/HTTPS proxy (default port 3128). - `"pop3p"`: POP3 proxy (default port 110).
</para></listitem> - `"ftppr"`: FTP proxy (default port 21).
<listitem><para> - `"admin"`: Web interface (default port 80).
<literal>"socks"</literal>: SOCKS 4/4.5/5 proxy (default port 1080). - `"dnspr"`: Caching DNS proxy (default port 53).
</para></listitem> - `"tcppm"`: TCP portmapper.
<listitem><para> - `"udppm"`: UDP portmapper.
<literal>"pop3p"</literal>: POP3 proxy (default port 110).
</para></listitem>
<listitem><para>
<literal>"ftppr"</literal>: FTP proxy (default port 21).
</para></listitem>
<listitem><para>
<literal>"admin"</literal>: Web interface (default port 80).
</para></listitem>
<listitem><para>
<literal>"dnspr"</literal>: Caching DNS proxy (default port 53).
</para></listitem>
<listitem><para>
<literal>"tcppm"</literal>: TCP portmapper.
</para></listitem>
<listitem><para>
<literal>"udppm"</literal>: UDP portmapper.
</para></listitem>
</itemizedlist>
''; '';
}; };
bindAddress = mkOption { bindAddress = mkOption {
@ -113,24 +95,16 @@ in {
auth = mkOption { auth = mkOption {
type = types.listOf (types.enum [ "none" "iponly" "strong" ]); type = types.listOf (types.enum [ "none" "iponly" "strong" ]);
example = [ "iponly" "strong" ]; example = [ "iponly" "strong" ];
description = '' description = lib.mdDoc ''
Authentication type. The following values are valid: Authentication type. The following values are valid:
<itemizedlist> - `"none"`: disables both authentication and authorization. You can not use ACLs.
<listitem><para> - `"iponly"`: specifies no authentication. ACLs authorization is used.
<literal>"none"</literal>: disables both authentication and authorization. You can not use ACLs. - `"strong"`: authentication by username/password. If user is not registered their access is denied regardless of ACLs.
</para></listitem>
<listitem><para>
<literal>"iponly"</literal>: specifies no authentication. ACLs authorization is used.
</para></listitem>
<listitem><para>
<literal>"strong"</literal>: authentication by username/password. If user is not registered their access is denied regardless of ACLs.
</para></listitem>
</itemizedlist>
Double authentication is possible, e.g. Double authentication is possible, e.g.
<programlisting> ```
{ {
auth = [ "iponly" "strong" ]; auth = [ "iponly" "strong" ];
acl = [ acl = [
@ -144,7 +118,7 @@ in {
} }
]; ];
} }
</programlisting> ```
In this example strong username authentication is not required to access 192.168.0.0/16. In this example strong username authentication is not required to access 192.168.0.0/16.
''; '';
}; };
@ -154,17 +128,11 @@ in {
rule = mkOption { rule = mkOption {
type = types.enum [ "allow" "deny" ]; type = types.enum [ "allow" "deny" ];
example = "allow"; example = "allow";
description = '' description = lib.mdDoc ''
ACL rule. The following values are valid: ACL rule. The following values are valid:
<itemizedlist> - `"allow"`: connections allowed.
<listitem><para> - `"deny"`: connections not allowed.
<literal>"allow"</literal>: connections allowed.
</para></listitem>
<listitem><para>
<literal>"deny"</literal>: connections not allowed.
</para></listitem>
</itemizedlist>
''; '';
}; };
users = mkOption { users = mkOption {

View file

@ -213,30 +213,24 @@ let
example = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name" example = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"
"10.0.3.4&255.255.0.0 BLOCKED" "10.0.3.4&255.255.0.0 BLOCKED"
]; ];
description = '' description = lib.mdDoc ''
Listed primary servers are allowed to notify this secondary server. Listed primary servers are allowed to notify this secondary server.
Format: <literal>&lt;ip&gt; &lt;key-name | NOKEY | BLOCKED&gt;</literal> Format: `<ip> <key-name | NOKEY | BLOCKED>`
<literal>&lt;ip&gt;</literal> either a plain IPv4/IPv6 address or range. `<ip>` either a plain IPv4/IPv6 address or range.
Valid patters for ranges: Valid patters for ranges:
<itemizedlist> * `10.0.0.0/24`: via subnet size
<listitem><para><literal>10.0.0.0/24</literal>: via subnet size</para></listitem> * `10.0.0.0&255.255.255.0`: via subnet mask
<listitem><para><literal>10.0.0.0&amp;255.255.255.0</literal>: via subnet mask</para></listitem> * `10.0.0.1-10.0.0.254`: via range
<listitem><para><literal>10.0.0.1-10.0.0.254</literal>: via range</para></listitem>
</itemizedlist>
A optional port number could be added with a '@': A optional port number could be added with a '@':
<itemizedlist> * `2001:1234::1@1234`
<listitem><para><literal>2001:1234::1@1234</literal></para></listitem>
</itemizedlist>
<literal>&lt;key-name | NOKEY | BLOCKED&gt;</literal> `<key-name | NOKEY | BLOCKED>`
<itemizedlist> * `<key-name>` will use the specified TSIG key
<listitem><para><literal>&lt;key-name&gt;</literal> will use the specified TSIG key</para></listitem> * `NOKEY` no TSIG signature is required
<listitem><para><literal>NOKEY</literal> no TSIG signature is required</para></listitem> * `BLOCKED`notifies from non-listed or blocked IPs will be ignored
<listitem><para><literal>BLOCKED</literal>notifies from non-listed or blocked IPs will be ignored</para></listitem>
</itemizedlist>
''; '';
}; };
@ -350,19 +344,17 @@ let
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
example = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ]; example = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
description = '' description = lib.mdDoc ''
This primary server will notify all given secondary servers about This primary server will notify all given secondary servers about
zone changes. zone changes.
Format: <literal>&lt;ip&gt; &lt;key-name | NOKEY&gt;</literal> Format: `<ip> <key-name | NOKEY>`
<literal>&lt;ip&gt;</literal> a plain IPv4/IPv6 address with on optional port number (ip@port) `<ip>` a plain IPv4/IPv6 address with on optional port number (ip@port)
<literal>&lt;key-name | NOKEY&gt;</literal> `<key-name | NOKEY>`
<itemizedlist> - `<key-name>` sign notifies with the specified key
<listitem><para><literal>&lt;key-name&gt;</literal> sign notifies with the specified key</para></listitem> - `NOKEY` don't sign notifies
<listitem><para><literal>NOKEY</literal> don't sign notifies</para></listitem>
</itemizedlist>
''; '';
}; };

View file

@ -85,37 +85,24 @@ in {
dbtype = mkOption { dbtype = mkOption {
type = types.enum [ "mysql" "percona" "mariadb" "postgresql" "sqlserver" ]; type = types.enum [ "mysql" "percona" "mariadb" "postgresql" "sqlserver" ];
default = "postgresql"; default = "postgresql";
description = '' description = lib.mdDoc ''
Specify the database provider: Specify the database provider: `mysql`, `percona`, `mariadb`, `postgresql`, `sqlserver`
<simplelist type='inline'>
<member><literal>mysql</literal></member>
<member><literal>percona</literal></member>
<member><literal>mariadb</literal></member>
<member><literal>postgresql</literal></member>
<member><literal>sqlserver</literal></member>
</simplelist>
''; '';
}; };
db = mkOption { db = mkOption {
type = types.str; type = types.str;
description = '' description = lib.mdDoc ''
Database specific connection string for example: Database specific connection string for example:
<itemizedlist> - MySQL/Percona/MariaDB:
<listitem><para>MySQL/Percona/MariaDB: `user:password@tcp(host:3306)/documize`
<literal>user:password@tcp(host:3306)/documize</literal> - MySQLv8+:
</para></listitem> `user:password@tcp(host:3306)/documize?allowNativePasswords=true`
<listitem><para>MySQLv8+: - PostgreSQL:
<literal>user:password@tcp(host:3306)/documize?allowNativePasswords=true</literal> `host=localhost port=5432 dbname=documize user=admin password=secret sslmode=disable`
</para></listitem> - MSSQL:
<listitem><para>PostgreSQL: `sqlserver://username:password@localhost:1433?database=Documize` or
<literal>host=localhost port=5432 dbname=documize user=admin password=secret sslmode=disable</literal> `sqlserver://sa@localhost/SQLExpress?database=Documize`
</para></listitem>
<listitem><para>MSSQL:
<literal>sqlserver://username:password@localhost:1433?database=Documize</literal> or
<literal>sqlserver://sa@localhost/SQLExpress?database=Documize</literal>
</para></listitem>
</itemizedlist>
''; '';
}; };

View file

@ -533,25 +533,23 @@ in {
The nextcloud-occ program preconfigured to target this Nextcloud instance. The nextcloud-occ program preconfigured to target this Nextcloud instance.
''; '';
}; };
globalProfiles = mkEnableOption "global profiles" // { globalProfiles = mkEnableOption (lib.mdDoc "global profiles") // {
description = '' description = lib.mdDoc ''
Makes user-profiles globally available under <literal>nextcloud.tld/u/user.name</literal>. Makes user-profiles globally available under `nextcloud.tld/u/user.name`.
Even though it's enabled by default in Nextcloud, it must be explicitly enabled Even though it's enabled by default in Nextcloud, it must be explicitly enabled
here because it has the side-effect that personal information is even accessible to here because it has the side-effect that personal information is even accessible to
unauthenticated users by default. unauthenticated users by default.
By default, the following properties are set to Show to everyone By default, the following properties are set to Show to everyone
if this flag is enabled: if this flag is enabled:
<itemizedlist> - About
<listitem><para>About</para></listitem> - Full name
<listitem><para>Full name</para></listitem> - Headline
<listitem><para>Headline</para></listitem> - Organisation
<listitem><para>Organisation</para></listitem> - Profile picture
<listitem><para>Profile picture</para></listitem> - Role
<listitem><para>Role</para></listitem> - Twitter
<listitem><para>Twitter</para></listitem> - Website
<listitem><para>Website</para></listitem>
</itemizedlist>
Only has an effect in Nextcloud 23 and later. Only has an effect in Nextcloud 23 and later.
''; '';

View file

@ -93,17 +93,15 @@ in {
}; };
}; };
}; };
description = '' description = lib.mdDoc ''
Settings to configure <literal>wiki-js</literal>. This directly Settings to configure `wiki-js`. This directly
corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream configuration options</link>. corresponds to [the upstream configuration options](https://docs.requarks.io/install/config).
Secrets can be injected via the environment by Secrets can be injected via the environment by
<itemizedlist> - specifying [](#opt-services.wiki-js.environmentFile)
<listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile"/> to contain secrets
to contain secrets</para></listitem> - and setting sensitive values to `$(ENVIRONMENT_VAR)`
<listitem><para>and setting sensitive values to <literal>$(ENVIRONMENT_VAR)</literal> with this value defined in the environment-file.
with this value defined in the environment-file.</para></listitem>
</itemizedlist>
''; '';
}; };
}; };

View file

@ -499,21 +499,16 @@ in
config = mkOption { config = mkOption {
type = types.str; type = types.str;
default = ""; default = "";
description = '' description = lib.mdDoc ''
Verbatim <filename>nginx.conf</filename> configuration. Verbatim {file}`nginx.conf` configuration.
This is mutually exclusive to any other config option for This is mutually exclusive to any other config option for
<filename>nginx.conf</filename> except for {file}`nginx.conf` except for
<itemizedlist> - [](#opt-services.nginx.appendConfig)
<listitem><para><xref linkend="opt-services.nginx.appendConfig"/> - [](#opt-services.nginx.httpConfig)
</para></listitem> - [](#opt-services.nginx.logError)
<listitem><para><xref linkend="opt-services.nginx.httpConfig"/>
</para></listitem>
<listitem><para><xref linkend="opt-services.nginx.logError"/>
</para></listitem>
</itemizedlist>
If additional verbatim config in addition to other options is needed, If additional verbatim config in addition to other options is needed,
<xref linkend="opt-services.nginx.appendConfig"/> should be used instead. [](#opt-services.nginx.appendConfig) should be used instead.
''; '';
}; };

View file

@ -622,37 +622,35 @@ in
efiInstallAsRemovable = mkOption { efiInstallAsRemovable = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
description = '' description = lib.mdDoc ''
Whether to invoke <literal>grub-install</literal> with Whether to invoke `grub-install` with
<literal>--removable</literal>. `--removable`.
Unless you turn this on, GRUB will install itself somewhere in Unless you turn this on, GRUB will install itself somewhere in
<literal>boot.loader.efi.efiSysMountPoint</literal> (exactly where `boot.loader.efi.efiSysMountPoint` (exactly where
depends on other config variables). If you've set depends on other config variables). If you've set
<literal>boot.loader.efi.canTouchEfiVariables</literal> *AND* you `boot.loader.efi.canTouchEfiVariables` *AND* you
are currently booted in UEFI mode, then GRUB will use are currently booted in UEFI mode, then GRUB will use
<literal>efibootmgr</literal> to modify the boot order in the `efibootmgr` to modify the boot order in the
EFI variables of your firmware to include this location. If you are EFI variables of your firmware to include this location. If you are
*not* booted in UEFI mode at the time GRUB is being installed, the *not* booted in UEFI mode at the time GRUB is being installed, the
NVRAM will not be modified, and your system will not find GRUB at NVRAM will not be modified, and your system will not find GRUB at
boot time. However, GRUB will still return success so you may miss boot time. However, GRUB will still return success so you may miss
the warning that gets printed ("<literal>efibootmgr: EFI variables the warning that gets printed ("`efibootmgr: EFI variables
are not supported on this system.</literal>"). are not supported on this system.`").
If you turn this feature on, GRUB will install itself in a If you turn this feature on, GRUB will install itself in a
special location within <literal>efiSysMountPoint</literal> (namely special location within `efiSysMountPoint` (namely
<literal>EFI/boot/boot$arch.efi</literal>) which the firmwares `EFI/boot/boot$arch.efi`) which the firmwares
are hardcoded to try first, regardless of NVRAM EFI variables. are hardcoded to try first, regardless of NVRAM EFI variables.
To summarize, turn this on if: To summarize, turn this on if:
<itemizedlist> - You are installing NixOS and want it to boot in UEFI mode,
<listitem><para>You are installing NixOS and want it to boot in UEFI mode, but you are currently booted in legacy mode
but you are currently booted in legacy mode</para></listitem> - You want to make a drive that will boot regardless of
<listitem><para>You want to make a drive that will boot regardless of the NVRAM state of the computer (like a USB "removable" drive)
the NVRAM state of the computer (like a USB "removable" drive)</para></listitem> - You simply dislike the idea of depending on NVRAM
<listitem><para>You simply dislike the idea of depending on NVRAM state to make your drive bootable
state to make your drive bootable</para></listitem>
</itemizedlist>
''; '';
}; };

View file

@ -31,45 +31,29 @@ in
default = []; default = [];
example = [ "console=ttyS0,115200" ]; example = [ "console=ttyS0,115200" ];
type = types.listOf types.str; type = types.listOf types.str;
description = '' description = lib.mdDoc ''
Parameters added to the Memtest86+ command line. As of memtest86+ 5.01 Parameters added to the Memtest86+ command line. As of memtest86+ 5.01
the following list of (apparently undocumented) parameters are the following list of (apparently undocumented) parameters are
accepted: accepted:
<itemizedlist> - `console=...`, set up a serial console.
<listitem>
<para><literal>console=...</literal>, set up a serial console.
Examples: Examples:
<literal>console=ttyS0</literal>, `console=ttyS0`,
<literal>console=ttyS0,9600</literal> or `console=ttyS0,9600` or
<literal>console=ttyS0,115200n8</literal>.</para> `console=ttyS0,115200n8`.
</listitem>
<listitem> - `btrace`, enable boot trace.
<para><literal>btrace</literal>, enable boot trace.</para>
</listitem>
<listitem> - `maxcpus=N`, limit number of CPUs.
<para><literal>maxcpus=N</literal>, limit number of CPUs.</para>
</listitem>
<listitem> - `onepass`, run one pass and exit if there
<para><literal>onepass</literal>, run one pass and exit if there are no errors.
are no errors.</para>
</listitem>
<listitem> - `tstlist=...`, list of tests to run.
<para><literal>tstlist=...</literal>, list of tests to run. Example: `0,1,2`.
Example: <literal>0,1,2</literal>.</para>
</listitem>
<listitem> - `cpumask=...`, set a CPU mask, to select CPUs
<para><literal>cpumask=...</literal>, set a CPU mask, to select CPUs to use for testing.
to use for testing.</para>
</listitem>
</itemizedlist>
This list of command line options was obtained by reading the This list of command line options was obtained by reading the
Memtest86+ source code. Memtest86+ source code.

View file

@ -104,29 +104,15 @@ in {
type = types.enum [ "0" "1" "2" "auto" "max" "keep" ]; type = types.enum [ "0" "1" "2" "auto" "max" "keep" ];
description = '' description = lib.mdDoc ''
The resolution of the console. The following values are valid: The resolution of the console. The following values are valid:
<itemizedlist> - `"0"`: Standard UEFI 80x25 mode
<listitem><para> - `"1"`: 80x50 mode, not supported by all devices
<literal>"0"</literal>: Standard UEFI 80x25 mode - `"2"`: The first non-standard mode provided by the device firmware, if any
</para></listitem> - `"auto"`: Pick a suitable mode automatically using heuristics
<listitem><para> - `"max"`: Pick the highest-numbered available mode
<literal>"1"</literal>: 80x50 mode, not supported by all devices - `"keep"`: Keep the mode selected by firmware (the default)
</para></listitem>
<listitem><para>
<literal>"2"</literal>: The first non-standard mode provided by the device firmware, if any
</para></listitem>
<listitem><para>
<literal>"auto"</literal>: Pick a suitable mode automatically using heuristics
</para></listitem>
<listitem><para>
<literal>"max"</literal>: Pick the highest-numbered available mode
</para></listitem>
<listitem><para>
<literal>"keep"</literal>: Keep the mode selected by firmware (the default)
</para></listitem>
</itemizedlist>
''; '';
}; };

View file

@ -613,14 +613,12 @@ in
); );
defaultText = literalMD "`zstd` if the kernel supports it (5.9+), `gzip` if not"; defaultText = literalMD "`zstd` if the kernel supports it (5.9+), `gzip` if not";
type = types.either types.str (types.functionTo types.str); type = types.either types.str (types.functionTo types.str);
description = '' description = lib.mdDoc ''
The compressor to use on the initrd image. May be any of: The compressor to use on the initrd image. May be any of:
<itemizedlist> - The name of one of the predefined compressors, see {file}`pkgs/build-support/kernel/initrd-compressor-meta.nix` for the definitions.
<listitem><para>The name of one of the predefined compressors, see <filename>pkgs/build-support/kernel/initrd-compressor-meta.nix</filename> for the definitions.</para></listitem> - A function which, given the nixpkgs package set, returns the path to a compressor tool, e.g. `pkgs: "''${pkgs.pigz}/bin/pigz"`
<listitem><para>A function which, given the nixpkgs package set, returns the path to a compressor tool, e.g. <literal>pkgs: "''${pkgs.pigz}/bin/pigz"</literal></para></listitem> - (not recommended, because it does not work when cross-compiling) the full path to a compressor tool, e.g. `"''${pkgs.pigz}/bin/pigz"`
<listitem><para>(not recommended, because it does not work when cross-compiling) the full path to a compressor tool, e.g. <literal>"''${pkgs.pigz}/bin/pigz"</literal></para></listitem>
</itemizedlist>
The given program should read data from stdin and write it to stdout compressed. The given program should read data from stdin and write it to stdout compressed.
''; '';
@ -662,16 +660,14 @@ in
default = true; default = true;
type = types.bool; type = types.bool;
description = description =
'' lib.mdDoc ''
Verbosity of the initrd. Please note that disabling verbosity removes Verbosity of the initrd. Please note that disabling verbosity removes
only the mandatory messages generated by the NixOS scripts. For a only the mandatory messages generated by the NixOS scripts. For a
completely silent boot, you might also want to set the two following completely silent boot, you might also want to set the two following
configuration options: configuration options:
<itemizedlist> - `boot.consoleLogLevel = 0;`
<listitem><para><literal>boot.consoleLogLevel = 0;</literal></para></listitem> - `boot.kernelParams = [ "quiet" "udev.log_level=3" ];`
<listitem><para><literal>boot.kernelParams = [ "quiet" "udev.log_level=3" ];</literal></para></listitem>
</itemizedlist>
''; '';
}; };