+79
nixos/doc/manual/development/freeform-modules.section.md
+79
nixos/doc/manual/development/freeform-modules.section.md
···
-68
nixos/doc/manual/development/freeform-modules.xml
-68
nixos/doc/manual/development/freeform-modules.xml
···-Freeform modules allow you to define values for option paths that have not been declared explicitly. This can be used to add attribute-specific types to what would otherwise have to be <literal>attrsOf</literal> options in order to accept all attribute names.-This feature can be enabled by using the attribute <literal>freeformType</literal> to define a freeform type. By doing this, all assignments without an associated option will be merged using the freeform type and combined into the resulting <literal>config</literal> set. Since this feature nullifies name checking for entire option trees, it is only recommended for use in submodules.-The following shows a submodule assigning a freeform type that allows arbitrary attributes with <literal>str</literal> values below <literal>settings</literal>, but also declares an option for the <literal>settings.port</literal> attribute to have it type-checked and assign a default value. See <xref linkend="ex-settings-typed-attrs"/> for a more complete example.-Freeform attributes cannot depend on other attributes of the same set without infinite recursion:-To prevent this, declare options for all attributes that need to depend on others. For above example this means to declare <literal>logLevel</literal> to be an option.
+87
nixos/doc/manual/from_md/development/freeform-modules.section.xml
+87
nixos/doc/manual/from_md/development/freeform-modules.section.xml
···+<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-freeform-modules">