63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<section xmlns="http://docbook.org/ns/docbook"
 | 
						|
        xmlns:xlink="http://www.w3.org/1999/xlink"
 | 
						|
        xmlns:xi="http://www.w3.org/2001/XInclude"
 | 
						|
        version="5.0"
 | 
						|
        xml:id="sec-meta-attributes">
 | 
						|
 | 
						|
<title>Meta Attributes</title>
 | 
						|
 | 
						|
<para>Like Nix packages, NixOS modules can declare meta-attributes to provide
 | 
						|
  extra information. Module meta attributes are defined in the
 | 
						|
  <filename
 | 
						|
    xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/misc/meta.nix">meta.nix</filename>
 | 
						|
  special module.</para>
 | 
						|
 | 
						|
<para><literal>meta</literal> is a top level attribute like
 | 
						|
  <literal>options</literal> and <literal>config</literal>. Available
 | 
						|
  meta-attributes are <literal>maintainers</literal> and
 | 
						|
  <literal>doc</literal>.</para>
 | 
						|
 | 
						|
<para>Each of the meta-attributes must be defined at most once per module
 | 
						|
  file.</para>
 | 
						|
 | 
						|
<programlisting>
 | 
						|
{ config, lib, pkgs, ... }:
 | 
						|
{
 | 
						|
  options = {
 | 
						|
    ...
 | 
						|
  };
 | 
						|
 | 
						|
  config = {
 | 
						|
    ...
 | 
						|
  };
 | 
						|
 | 
						|
  meta = {
 | 
						|
    maintainers = with lib.maintainers; [ ericsagnes ]; <co
 | 
						|
      xml:id='modules-meta-1' />
 | 
						|
    doc = ./default.xml; <co xml:id='modules-meta-2' />
 | 
						|
  };
 | 
						|
}
 | 
						|
</programlisting>
 | 
						|
 | 
						|
<calloutlist>
 | 
						|
 <callout arearefs='modules-meta-1'>
 | 
						|
  <para>
 | 
						|
    <varname>maintainers</varname> contains a list of the module maintainers.
 | 
						|
  </para>
 | 
						|
 </callout>
 | 
						|
 | 
						|
 <callout arearefs='modules-meta-2'>
 | 
						|
  <para>
 | 
						|
    <varname>doc</varname> points to a valid DocBook file containing the module
 | 
						|
    documentation. Its contents is automatically added to <xref
 | 
						|
      linkend="ch-configuration"/>.
 | 
						|
    Changes to a module documentation have to be checked to not break
 | 
						|
    building the NixOS manual:
 | 
						|
  </para>
 | 
						|
  <programlisting>$ nix-build nixos/release.nix -A manual</programlisting>
 | 
						|
 </callout>
 | 
						|
 | 
						|
</calloutlist>
 | 
						|
 | 
						|
</section>
 |