diff options
author | Robert Göhler <github@ghlr.de> | 2021-06-11 22:28:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-11 22:28:02 +0200 |
commit | 679a7967f5b4ae41fa92bad5d3efa6e883b33610 (patch) | |
tree | 95bb90c8a6e71ab79906ac6cee304f631aaacf1c /docs | |
parent | b8cc2a3971104ed3b4e9b77bd33a02cccaf6b54a (diff) | |
parent | 20fae5d25db3989b958d38a83dbca8573ec8a9d2 (diff) | |
download | vyos-documentation-679a7967f5b4ae41fa92bad5d3efa6e883b33610.tar.gz vyos-documentation-679a7967f5b4ae41fa92bad5d3efa6e883b33610.zip |
Merge pull request #546 from rebortg/autosectionlabel
Autosectionlabel
Diffstat (limited to 'docs')
-rw-r--r-- | docs/_ext/autosectionlabel.py | 71 | ||||
-rw-r--r-- | docs/changelog/1.2.6.rst | 2 | ||||
-rw-r--r-- | docs/conf.py | 5 | ||||
-rw-r--r-- | docs/configexamples/ha.rst | 2 | ||||
-rw-r--r-- | docs/configexamples/wan-load-balancing.rst | 8 | ||||
-rw-r--r-- | docs/configuration/firewall/index.rst | 2 | ||||
-rw-r--r-- | docs/configuration/interfaces/openvpn.rst | 4 | ||||
-rw-r--r-- | docs/configuration/protocols/bgp.rst | 1 | ||||
-rw-r--r-- | docs/configuration/protocols/igmp.rst | 2 | ||||
-rw-r--r-- | docs/configuration/protocols/ospf.rst | 11 | ||||
-rw-r--r-- | docs/configuration/service/dhcp-relay.rst | 8 | ||||
-rw-r--r-- | docs/configuration/service/dhcp-server.rst | 12 | ||||
-rw-r--r-- | docs/configuration/service/dns.rst | 4 | ||||
-rw-r--r-- | docs/configuration/service/snmp.rst | 2 | ||||
-rw-r--r-- | docs/configuration/system/name-server.rst | 1 | ||||
-rw-r--r-- | docs/configuration/trafficpolicy/index.rst | 1 | ||||
-rw-r--r-- | docs/configuration/vpn/dmvpn.rst | 2 | ||||
-rw-r--r-- | docs/documentation.rst | 53 | ||||
-rw-r--r-- | docs/installation/virtual/libvirt.rst | 4 | ||||
-rw-r--r-- | docs/installation/vyos-on-baremetal.rst | 4 |
20 files changed, 198 insertions, 1 deletions
diff --git a/docs/_ext/autosectionlabel.py b/docs/_ext/autosectionlabel.py new file mode 100644 index 00000000..aea59fac --- /dev/null +++ b/docs/_ext/autosectionlabel.py @@ -0,0 +1,71 @@ +""" + sphinx.ext.autosectionlabel + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Allow reference sections by :ref: role using its title. + :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from typing import Any, Dict, cast + +from docutils import nodes +from docutils.nodes import Node + +from sphinx.application import Sphinx +from sphinx.domains.std import StandardDomain +from sphinx.locale import __ +from sphinx.util import logging +from sphinx.util.nodes import clean_astext + +logger = logging.getLogger(__name__) + + +def get_node_depth(node: Node) -> int: + i = 0 + cur_node = node + while cur_node.parent != node.document: + cur_node = cur_node.parent + i += 1 + return i + + +def register_sections_as_label(app: Sphinx, document: Node) -> None: + domain = cast(StandardDomain, app.env.get_domain('std')) + for node in document.traverse(nodes.section): + if (app.config.autosectionlabel_maxdepth and + get_node_depth(node) >= app.config.autosectionlabel_maxdepth): + continue + labelid = node['ids'][0] + docname = app.env.docname + title = cast(nodes.title, node[0]) + ref_name = getattr(title, 'rawsource', title.astext()) + if app.config.autosectionlabel_prefix_document: + name = nodes.fully_normalize_name(docname + ':' + ref_name) + else: + name = nodes.fully_normalize_name(ref_name) + sectname = clean_astext(title) + + if name in domain.labels: + # a ref befor a headline create 2 ids in the node object + if len(node['ids']) > 1: + continue + logger.warning(__('duplicate label %s, other instance in %s'), + name, app.env.doc2path(domain.labels[name][0]), + location=node, type='autosectionlabel', subtype=docname) + + + + domain.anonlabels[name] = docname, labelid + domain.labels[name] = docname, labelid, sectname + + +def setup(app: Sphinx) -> Dict[str, Any]: + app.add_config_value('autosectionlabel_prefix_document', False, 'env') + app.add_config_value('autosectionlabel_maxdepth', None, 'env') + app.connect('doctree-read', register_sections_as_label) + + return { + 'version': 'builtin', + 'parallel_read_safe': True, + 'parallel_write_safe': True, + }
\ No newline at end of file diff --git a/docs/changelog/1.2.6.rst b/docs/changelog/1.2.6.rst index 8ea92657..70786d07 100644 --- a/docs/changelog/1.2.6.rst +++ b/docs/changelog/1.2.6.rst @@ -17,6 +17,8 @@ performance degradation via a specially crafted authoritative DNS server reply. 1.2.6 is a maintenance release made in September 2020. +.. _resovled issues 1.2.6: + Resolved issues --------------- diff --git a/docs/conf.py b/docs/conf.py index 594d6063..3e95e52d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -45,12 +45,17 @@ extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.ifconfig', 'sphinx.ext.graphviz', 'notfound.extension', + 'autosectionlabel', 'vyos' ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] +# autosectionlabel +autosectionlabel_prefix_document = True + + # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # diff --git a/docs/configexamples/ha.rst b/docs/configexamples/ha.rst index aa184d09..401d7b9f 100644 --- a/docs/configexamples/ha.rst +++ b/docs/configexamples/ha.rst @@ -332,6 +332,8 @@ hardware router. set service conntrack-sync mcast-group '224.0.0.50' set service conntrack-sync sync-queue-size '8' +.. _ha:contracktesting: + Testing ------- diff --git a/docs/configexamples/wan-load-balancing.rst b/docs/configexamples/wan-load-balancing.rst index f26f3ce6..cd150121 100644 --- a/docs/configexamples/wan-load-balancing.rst +++ b/docs/configexamples/wan-load-balancing.rst @@ -67,6 +67,9 @@ Example 2: Failover based on interface weights This examples uses the failover mode. + +.. _wan:example2_overwiew: + Overview ^^^^^^^^ In this example eth0 is the primary interface and eth1 is the secondary @@ -94,6 +97,8 @@ The previous example used the failover command to send traffic thorugh eth1 if eth0 fails. In this example failover functionality is provided by rule order. +.. _wan:example3_overwiew: + Overview ^^^^^^^^ Two rules will be created, the first rule directs traffic coming in @@ -122,6 +127,9 @@ secondary link has a lower speed and should only carry high priority traffic. It is assumed for this example that eth1 is connected to a slower connection than eth0 and should prioritise VoIP traffic. + +.. _wan:example4_overwiew: + Overview ^^^^^^^^ A rule order for prioritising traffic is useful in scenarios where the diff --git a/docs/configuration/firewall/index.rst b/docs/configuration/firewall/index.rst index 02cfc7d1..667a4653 100644 --- a/docs/configuration/firewall/index.rst +++ b/docs/configuration/firewall/index.rst @@ -830,6 +830,8 @@ IPv6 Use this command to set the maximum segment size for IPv6 transit packets on a specific interface (1280-1492 bytes). +.. _firewall:ipv6_example: + Example ------- diff --git a/docs/configuration/interfaces/openvpn.rst b/docs/configuration/interfaces/openvpn.rst index 8b32743f..a30a0b81 100644 --- a/docs/configuration/interfaces/openvpn.rst +++ b/docs/configuration/interfaces/openvpn.rst @@ -481,6 +481,8 @@ and another VyOS router acting as OpenVPN client. The Server also pushes a static client IP address to the OpenVPN client. Remember, clients are identified using their CN attribute in the SSL certificate. +.. _openvpn:client_server: + Server ------ @@ -505,6 +507,8 @@ Server set interfaces openvpn vtun10 tls key-file '/config/auth/server.key' set interfaces openvpn vtun10 use-lzo-compression +.. _openvpn:client_client: + Client ------ diff --git a/docs/configuration/protocols/bgp.rst b/docs/configuration/protocols/bgp.rst index f1f15f38..25ec3038 100644 --- a/docs/configuration/protocols/bgp.rst +++ b/docs/configuration/protocols/bgp.rst @@ -222,6 +222,7 @@ Defining Peers Specify the IPv4 source address to use for the BGP session to this neighbor, may be specified as either an IPv4 address directly or as an interface name. +.. _bgp_capability_negotiation: Capability Negotiation ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/configuration/protocols/igmp.rst b/docs/configuration/protocols/igmp.rst index 7109deb6..233e9828 100644 --- a/docs/configuration/protocols/igmp.rst +++ b/docs/configuration/protocols/igmp.rst @@ -225,6 +225,8 @@ Configuration Disable this service. +.. _igmp:proxy_example: + Example ------- diff --git a/docs/configuration/protocols/ospf.rst b/docs/configuration/protocols/ospf.rst index 76727517..64d7a893 100644 --- a/docs/configuration/protocols/ospf.rst +++ b/docs/configuration/protocols/ospf.rst @@ -743,9 +743,13 @@ address and the node 1 sending the default route: OSPFv3 (IPv6) ************* +.. _ospf:v3_configuration: + Configuration ============= +.. _ospf:v3_general: + General ------- @@ -768,6 +772,8 @@ process starts when the first ospf enabled interface is configured. configured with the same router-ID! +.. _ospf:v3_optional: + Optional -------- @@ -783,6 +789,7 @@ Optional distance values for external routes, inter-area routes and intra-area routes respectively. The distance range is 1 to 255. +.. _ospf:v3_area_configuration: Area Configuration ------------------ @@ -799,6 +806,7 @@ Area Configuration intra area paths from this range are not advertised into other areas. This command makes sense in ABR only. +.. _ospf:v3_interface_config: Interface Configuration ----------------------- @@ -869,6 +877,7 @@ Interface Configuration synchronizing process of the router's database with all neighbors. The default value is 1 seconds. The interval range is 3 to 65535. +.. _ospf:v3_redistribution_config: Redistribution Configuration ---------------------------- @@ -885,6 +894,7 @@ Redistribution Configuration given route source. There are five modes available for route source: bgp, connected, kernel, ripng, static. +.. _ospf:v3_op_cmd: Operational Mode Commands ------------------------- @@ -932,6 +942,7 @@ Operational Mode Commands This command displays external information redistributed into OSPFv3 +.. _ospf:v3_config_example: Configuration Example --------------------- diff --git a/docs/configuration/service/dhcp-relay.rst b/docs/configuration/service/dhcp-relay.rst index 5355a0fd..c0394dff 100644 --- a/docs/configuration/service/dhcp-relay.rst +++ b/docs/configuration/service/dhcp-relay.rst @@ -99,6 +99,8 @@ Operation IPv6 relay ********** +.. _dhcp-relay:ipv6_configuration: + Configuration ============= @@ -114,6 +116,8 @@ Configuration Specifies an upstream network `<interface>` from which replies from `<server>` and other relay agents will be accepted. +.. _dhcp-relay:ipv6_options: + Options ------- @@ -126,6 +130,8 @@ Options If this is set the relay agent will insert the interface ID. This option is set automatically if more than one listening interfaces are in use. +.. _dhcp-relay:ipv6_example: + Example ======= @@ -151,6 +157,8 @@ The generated configuration will look like: address 2001:db8::4 } +.. _dhcp-relay:ipv6_op_cmd: + Operation ========= diff --git a/docs/configuration/service/dhcp-server.rst b/docs/configuration/service/dhcp-server.rst index 3f435605..a6f64aa4 100644 --- a/docs/configuration/service/dhcp-server.rst +++ b/docs/configuration/service/dhcp-server.rst @@ -317,6 +317,8 @@ Example Please see the :ref:`dhcp-dns-quick-start` configuration. +.. _dhcp-server:v4_example_failover: + Failover -------- @@ -357,6 +359,7 @@ Common configuration, valid for both primary and secondary node. set service dhcp-server shared-network-name NET-VYOS subnet 192.0.2.0/24 failover peer-address '192.168.189.252' set service dhcp-server shared-network-name NET-VYOS subnet 192.0.2.0/24 failover status 'primary' +.. _dhcp-server:v4_example_raw: Raw Parameters -------------- @@ -377,7 +380,8 @@ Raw Parameters Option 43 for UniFI ------------------- -* These parameters need to be part of the DHCP global options. They stay unchanged. +* These parameters need to be part of the DHCP global options. + They stay unchanged. .. code-block:: none @@ -456,6 +460,8 @@ IPv6 server VyOS also provides DHCPv6 server functionality which is described in this section. +.. _dhcp-server:v6_config: + Configuration ============= @@ -557,6 +563,8 @@ The configuration will look as follows: } } +.. _dhcp-server:v6_static_mapping: + Static mappings --------------- @@ -603,6 +611,8 @@ The configuration will look as follows: .. start_vyoslinter +.. _dhcp-server:v6_op_cmd: + Operation Mode ============== diff --git a/docs/configuration/service/dns.rst b/docs/configuration/service/dns.rst index 5ee17490..ccf5a7d0 100644 --- a/docs/configuration/service/dns.rst +++ b/docs/configuration/service/dns.rst @@ -177,6 +177,8 @@ one involves a third party service, like DynDNS.com or any other similar website. This method uses HTTP requests to transmit the new IP address. You can configure both in VyOS. +.. _dns:dynmaic_config: + Configuration ============= @@ -218,6 +220,8 @@ Configuration Configure optional TTL value on the given resource record. This defaults to 600 seconds. +.. _dns:dynmaic_example: + Example ^^^^^^^ diff --git a/docs/configuration/service/snmp.rst b/docs/configuration/service/snmp.rst index 4a5a2780..36dc1787 100644 --- a/docs/configuration/service/snmp.rst +++ b/docs/configuration/service/snmp.rst @@ -139,6 +139,8 @@ The securityapproach in v3 targets: * Authentication – to verify that the message is from a valid source. +.. _snmp:v3_example: + Example ^^^^^^^ diff --git a/docs/configuration/system/name-server.rst b/docs/configuration/system/name-server.rst index c105c712..f18cb5a3 100644 --- a/docs/configuration/system/name-server.rst +++ b/docs/configuration/system/name-server.rst @@ -57,6 +57,7 @@ list can be defined which will be used for domain searches. .. note:: Domain names can include letters, numbers, hyphens and periods with a maximum length of 253 characters. +.. _name-server:domain-search-order_example: Example ------- diff --git a/docs/configuration/trafficpolicy/index.rst b/docs/configuration/trafficpolicy/index.rst index f3e498d4..b008a8d9 100644 --- a/docs/configuration/trafficpolicy/index.rst +++ b/docs/configuration/trafficpolicy/index.rst @@ -1114,6 +1114,7 @@ parameters. available and get suddenly dropped when other classes start using their assigned *bandwidth* share. +.. _traffic_policy:shaper_example: Example ^^^^^^^ diff --git a/docs/configuration/vpn/dmvpn.rst b/docs/configuration/vpn/dmvpn.rst index f902c388..f2c7b162 100644 --- a/docs/configuration/vpn/dmvpn.rst +++ b/docs/configuration/vpn/dmvpn.rst @@ -176,6 +176,8 @@ The below referenced IP address `192.0.2.1` is used as example address representing a global unicast address under which the HUB can be contacted by each and every individual spoke. +.. _dmvpn:example_configuration: + Configuration ============= diff --git a/docs/documentation.rst b/docs/documentation.rst index 7b410e95..f869922b 100644 --- a/docs/documentation.rst +++ b/docs/documentation.rst @@ -137,6 +137,59 @@ We use the following syntax for Headlines. Paragraphs """""""""" +Cross-References +^^^^^^^^^^^^^^^^ + +A plugin will used to generate a reference lable of each headline. +To reference a page or a section in the documentation use the ``:ref:`` +command. + +For example you want to reference the headline **VLAN** in the +**ethernet.rst** page. The plugin generates label based on headline +and the file path. + +``:ref:`configuration/interfaces/ethernet:vlan`` + +to use a alternative Hyperlink use it this way: + +``:ref:`Check out VLAN<configuration/interfaces/ethernet:vlan>`` + +handle build errors +""""""""""""""""""" + +The plugin will warn on build if a headline has a duplicate name in the +same document. To prevent this warning you have to put a custom link on +top of the headline. + +.. code-block:: + + Section A + ========== + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr + + Example + ------- + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr + + Section B + ========== + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr + + .. _section B example: + + Example + ------- + + Lorem ipsum dolor sit amet, consetetur sadipscing elitr + + + + + + Address space ^^^^^^^^^^^^^ diff --git a/docs/installation/virtual/libvirt.rst b/docs/installation/virtual/libvirt.rst index ff896d07..09d2cfed 100644 --- a/docs/installation/virtual/libvirt.rst +++ b/docs/installation/virtual/libvirt.rst @@ -100,6 +100,8 @@ The virt-manager application is a desktop user interface for managing virtual machines through libvirt. On the linux open :abbr:`VMM (Virtual Machine Manager)`. +.. _libvirt:virt-manager_iso: + Deploy from ISO --------------- @@ -130,6 +132,8 @@ Deploy from ISO .. figure:: /_static/images/virt-libvirt-06.png +.. _libvirt:virt-manager_qcow2: + Deploy from qcow2 ----------------- diff --git a/docs/installation/vyos-on-baremetal.rst b/docs/installation/vyos-on-baremetal.rst index 81d04f0d..f64bc8be 100644 --- a/docs/installation/vyos-on-baremetal.rst +++ b/docs/installation/vyos-on-baremetal.rst @@ -93,6 +93,8 @@ This guide was developed using an APU4C4 board with the following specs: The board can be powered via 12V from the front or via a 5V onboard connector. +.. _vyos-on-baremetal:apu4_shopping: + Shopping Cart ------------- @@ -224,6 +226,8 @@ implemented. Simply proceed with a regular image installation as described in :ref:`installation`. +.. _vyos-on-baremetal:apu4_pictures: + Pictures -------- |