1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

DOCS: Documentation directory structure (#2905)

This commit is contained in:
Jeffrey Cafferata
2024-04-09 20:26:45 +02:00
committed by GitHub
parent 17d644cfc6
commit c31064781f
86 changed files with 192 additions and 193 deletions

View File

@ -77,19 +77,19 @@ func matrixData() *FeatureMatrix {
ProviderDNSProvider = "DNS Provider"
ProviderRegistrar = "Registrar"
ProviderThreadSafe = "Concurrency Verified"
DomainModifierAlias = "[`ALIAS`](functions/domain/ALIAS.md)"
DomainModifierCaa = "[`CAA`](functions/domain/CAA.md)"
DomainModifierDnssec = "[`AUTODNSSEC`](functions/domain/AUTODNSSEC_ON.md)"
DomainModifierLoc = "[`LOC`](functions/domain/LOC.md)"
DomainModifierNaptr = "[`NAPTR`](functions/domain/NAPTR.md)"
DomainModifierPtr = "[`PTR`](functions/domain/PTR.md)"
DomainModifierSoa = "[`SOA`](functions/domain/SOA.md)"
DomainModifierSrv = "[`SRV`](functions/domain/SRV.md)"
DomainModifierSshfp = "[`SSHFP`](functions/domain/SSHFP.md)"
DomainModifierTlsa = "[`TLSA`](functions/domain/TLSA.md)"
DomainModifierDs = "[`DS`](functions/domain/DS.md)"
DomainModifierDhcid = "[`DHCID`](functions/domain/DHCID.md)"
DomainModifierDname = "[`DNAME`](functions/domain/DNAME.md)"
DomainModifierAlias = "[`ALIAS`](language-reference/domain-modifiers/ALIAS.md)"
DomainModifierCaa = "[`CAA`](language-reference/domain-modifiers/CAA.md)"
DomainModifierDnssec = "[`AUTODNSSEC`](language-reference/domain-modifiers/AUTODNSSEC_ON.md)"
DomainModifierLoc = "[`LOC`](language-reference/domain-modifiers/LOC.md)"
DomainModifierNaptr = "[`NAPTR`](language-reference/domain-modifiers/NAPTR.md)"
DomainModifierPtr = "[`PTR`](language-reference/domain-modifiers/PTR.md)"
DomainModifierSoa = "[`SOA`](language-reference/domain-modifiers/SOA.md)"
DomainModifierSrv = "[`SRV`](language-reference/domain-modifiers/SRV.md)"
DomainModifierSshfp = "[`SSHFP`](language-reference/domain-modifiers/SSHFP.md)"
DomainModifierTlsa = "[`TLSA`](language-reference/domain-modifiers/TLSA.md)"
DomainModifierDs = "[`DS`](language-reference/domain-modifiers/DS.md)"
DomainModifierDhcid = "[`DHCID`](language-reference/domain-modifiers/DHCID.md)"
DomainModifierDname = "[`DNAME`](language-reference/domain-modifiers/DNAME.md)"
DualHost = "dual host"
CreateDomains = "create-domains"
GetZones = "get-zones"

View File

@ -78,15 +78,15 @@ func parseFrontMatter(content string) (map[string]interface{}, string, error) {
}
var returnTypes = map[string]string{
"domain": "DomainModifier",
"global": "void",
"record": "RecordModifier",
"domain-modifiers": "DomainModifier",
"top-level-functions": "void",
"record-modifiers": "RecordModifier",
}
var categories = map[string]string{
"domain": "domain-modifiers",
"global": "top-level-functions",
"record": "record-modifiers",
"domain-modifiers": "domain-modifiers",
"top-level-functions": "top-level-functions",
"record-modifiers": "record-modifiers",
}
var providerNames = map[string]string{
@ -101,7 +101,7 @@ var providerNames = map[string]string{
func generateFunctionTypes() (string, error) {
funcs := []Function{}
srcRoot := join("documentation", "functions")
srcRoot := join("documentation", "language-reference")
types, err := os.ReadDir(srcRoot)
if err != nil {
return "", err

View File

@ -180,7 +180,7 @@ declare const DISABLE_REPEATED_DOMAIN_CHECK: RecordModifier;
/**
* A adds an A record To a domain. The name should be the relative label for the record. Use `@` for the domain apex.
*
* The address should be an ip address, either a string, or a numeric value obtained via [IP](../global/IP.md).
* The address should be an ip address, either a string, or a numeric value obtained via [IP](../top-level-functions/IP.md).
*
* Modifiers can be any number of [record modifiers](https://docs.dnscontrol.org/language-reference/record-modifiers) or JSON objects, which will be merged into the record's metadata.
*
@ -371,7 +371,7 @@ declare function CAA(name: string, tag: "issue" | "issuewild" | "iodef", value:
/**
* DNSControl contains a `CAA_BUILDER` which can be used to simply create
* [`CAA()`](../domain/CAA.md) records for your domains. Instead of creating each [`CAA()`](../domain/CAA.md) record
* [`CAA()`](../domain-modifiers/CAA.md) records for your domains. Instead of creating each [`CAA()`](../domain-modifiers/CAA.md) record
* individually, you can simply configure your report mail address, the
* authorized certificate authorities and the builder cares about the rest.
*
@ -570,11 +570,11 @@ declare function CNAME(name: string, target: string, ...modifiers: RecordModifie
/**
* `D` adds a new Domain for DNSControl to manage. The first two arguments are required: the domain name (fully qualified `example.com` without a trailing dot), and the
* name of the registrar (as previously declared with [NewRegistrar](NewRegistrar.md)). Any number of additional arguments may be included to add DNS Providers with [DNSProvider](NewDnsProvider.md),
* add records with [A](../domain/A.md), [CNAME](../domain/CNAME.md), and so forth, or add metadata.
* add records with [A](../domain-modifiers/A.md), [CNAME](../domain-modifiers/CNAME.md), and so forth, or add metadata.
*
* Modifier arguments are processed according to type as follows:
*
* - A function argument will be called with the domain object as it's only argument. Most of the [built-in modifier functions](https://docs.dnscontrol.org/language-reference/domain-modifiers) return such functions.
* - A function argument will be called with the domain object as it's only argument. Most of the [built-in modifier functions](https://docs.dnscontrol.org/language-reference/domain-modifiers-modifiers) return such functions.
* - An object argument will be merged into the domain's metadata collection.
* - An array argument will have all of it's members evaluated recursively. This allows you to combine multiple common records or modifiers into a variable that can
* be used like a macro in multiple domains.
@ -660,7 +660,7 @@ declare function D(name: string, registrar: string, ...modifiers: DomainModifier
*
* ## Example
*
* We want to create backup zone files for all domains, but not actually register them. Also create a [`DefaultTTL`](../domain/DefaultTTL.md).
* We want to create backup zone files for all domains, but not actually register them. Also create a [`DefaultTTL`](../domain-modifiers/DefaultTTL.md).
* The domain `example.com` will have the defaults set.
*
* ```javascript
@ -713,7 +713,7 @@ declare function DHCID(name: string, digest: string, ...modifiers: RecordModifie
* It replaces the per-record `IGNORE_NAME_DISABLE_SAFETY_CHECK()` which is
* deprecated as of DNSControl v4.0.0.0.
*
* See [`IGNORE()`](../domain/IGNORE.md) for more information.
* See [`IGNORE()`](../domain-modifiers/IGNORE.md) for more information.
*
* ## Syntax
*
@ -861,7 +861,7 @@ declare function DNAME(name: string, target: string, ...modifiers: RecordModifie
* );
* ```
*
* NOTE: The [`NO_PURGE`](../domain/NO_PURGE.md) is used out of abundance of caution but since no
* NOTE: The [`NO_PURGE`](../domain-modifiers/NO_PURGE.md) is used out of abundance of caution but since no
* `DnsProvider()` statements exist, no updates would be performed.
*
* @see https://docs.dnscontrol.org/language-reference/top-level-functions/domain_elsewhere
@ -896,7 +896,7 @@ declare function DOMAIN_ELSEWHERE(name: string, registrar: string, nameserver_na
* );
* ```
*
* NOTE: The [`NO_PURGE`](../domain/NO_PURGE.md) is used to prevent DNSControl from changing the records.
* NOTE: The [`NO_PURGE`](../domain-modifiers/NO_PURGE.md) is used to prevent DNSControl from changing the records.
*
* @see https://docs.dnscontrol.org/language-reference/top-level-functions/domain_elsewhere_auto
*/
@ -945,7 +945,7 @@ declare function DS(name: string, keytag: number, algorithm: number, digesttype:
* not `domain.tld`.
*
* Some operators only act on an apex domain (e.g.
* [`CF_REDIRECT`](../domain/CF_REDIRECT.md) and [`CF_TEMP_REDIRECT`](../domain/CF_TEMP_REDIRECT.md)). Using them
* [`CF_REDIRECT`](../domain-modifiers/CF_REDIRECT.md) and [`CF_TEMP_REDIRECT`](../domain-modifiers/CF_TEMP_REDIRECT.md)). Using them
* in a `D_EXTEND` subdomain may not be what you expect.
*
* ```javascript
@ -1007,10 +1007,10 @@ declare function DS(name: string, keytag: number, algorithm: number, digesttype:
declare function D_EXTEND(name: string, ...modifiers: DomainModifier[]): void;
/**
* DefaultTTL sets the TTL for all subsequent records following it in a domain that do not explicitly set one with [`TTL`](../record/TTL.md). If neither `DefaultTTL` or `TTL` exist for a record,
* the record will inherit the DNSControl global internal default of 300 seconds. See also [`DEFAULTS`](../global/DEFAULTS.md) to override the internal defaults.
* DefaultTTL sets the TTL for all subsequent records following it in a domain that do not explicitly set one with [`TTL`](../record-modifiers/TTL.md). If neither `DefaultTTL` or `TTL` exist for a record,
* the record will inherit the DNSControl global internal default of 300 seconds. See also [`DEFAULTS`](../top-level-functions/DEFAULTS.md) to override the internal defaults.
*
* NS records are currently a special case, and do not inherit from `DefaultTTL`. See [`NAMESERVER_TTL`](../domain/NAMESERVER_TTL.md) to set a default TTL for all NS records.
* NS records are currently a special case, and do not inherit from `DefaultTTL`. See [`NAMESERVER_TTL`](../domain-modifiers/NAMESERVER_TTL.md) to set a default TTL for all NS records.
*
* ```javascript
* D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_MY_PROVIDER),
@ -1020,7 +1020,7 @@ declare function D_EXTEND(name: string, ...modifiers: DomainModifier[]): void;
* );
* ```
*
* The DefaultTTL duration is the same format as [`TTL`](../record/TTL.md), an integer number of seconds
* The DefaultTTL duration is the same format as [`TTL`](../record-modifiers/TTL.md), an integer number of seconds
* or a string with a unit such as `"4d"`.
*
* @see https://docs.dnscontrol.org/language-reference/domain-modifiers/defaultttl
@ -1029,7 +1029,7 @@ declare function DefaultTTL(ttl: Duration): DomainModifier;
/**
* DnsProvider indicates that the specified provider should be used to manage
* records for this domain. The name must match the name used with [NewDnsProvider](../global/NewDnsProvider.md).
* records for this domain. The name must match the name used with [NewDnsProvider](../top-level-functions/NewDnsProvider.md).
*
* The nsCount parameter determines how the nameservers will be managed from this provider.
*
@ -1075,11 +1075,11 @@ declare function FRAME(name: string, target: string, ...modifiers: RecordModifie
*
* Technically `IGNORE_NAME` is a promise that DNSControl will not modify or
* delete existing records that match particular patterns. It is like
* [`NO_PURGE`](../domain/NO_PURGE.md) that matches only specific records.
* [`NO_PURGE`](../domain-modifiers/NO_PURGE.md) that matches only specific records.
*
* Including a record that is ignored is considered an error and may have
* undefined behavior. This safety check can be disabled using the
* [`DISABLE_IGNORE_SAFETY_CHECK`](../domain/DISABLE_IGNORE_SAFETY_CHECK.md) feature.
* [`DISABLE_IGNORE_SAFETY_CHECK`](../domain-modifiers/DISABLE_IGNORE_SAFETY_CHECK.md) feature.
*
* ## Syntax
*
@ -1815,7 +1815,7 @@ declare function NAMESERVER(name: string, ...modifiers: RecordModifier[]): Domai
/**
* NAMESERVER_TTL sets the TTL on the domain apex NS RRs defined by [`NAMESERVER`](NAMESERVER.md).
*
* The value can be an integer or a string. See [`TTL`](../record/TTL.md) for examples.
* The value can be an integer or a string. See [`TTL`](../record-modifiers/TTL.md) for examples.
*
* ```javascript
* D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_MY_PROVIDER),
@ -1837,7 +1837,7 @@ declare function NAMESERVER(name: string, ...modifiers: RecordModifier[]): Domai
* );
* ```
*
* To apply a default TTL to all other record types, see [`DefaultTTL`](../domain/DefaultTTL.md)
* To apply a default TTL to all other record types, see [`DefaultTTL`](../domain-modifiers/DefaultTTL.md)
*
* @see https://docs.dnscontrol.org/language-reference/domain-modifiers/nameserver_ttl
*/
@ -2250,7 +2250,7 @@ declare function PANIC(message: string): never;
* * `PTR("4.3", ...` // Assuming the domain is `2.1.in-addr.arpa`
*
* All magic is RFC2317-aware. We use the first format listed in the
* RFC for both [`REV()`](../global/REV.md) and `PTR()`. The format is
* RFC for both [`REV()`](../top-level-functions/REV.md) and `PTR()`. The format is
* `FIRST/MASK.C.B.A.in-addr.arpa` where `FIRST` is the first IP address
* of the zone, `MASK` is the netmask of the zone (25-31 inclusive),
* and A, B, C are the first 3 octets of the IP address. For example
@ -2371,7 +2371,7 @@ declare const PURGE: DomainModifier;
* * _S3 bucket_ (configured as website): specify the domain name of the Amazon S3 website endpoint in which you configured the bucket (for instance s3-website-us-east-2.amazonaws.com). For the available values refer to the [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region).
* * _Another Route53 record_: specify the value of the name of another record in the same hosted zone.
*
* For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the [`R53_ZONE`](../record/R53_ZONE.md) record modifier.
* For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the [`R53_ZONE`](../record-modifiers/R53_ZONE.md) record modifier.
*
* The zone id can be found depending on the target type:
*
@ -2381,7 +2381,7 @@ declare const PURGE: DomainModifier;
* * _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
* * _Another Route 53 record_: you can either specify the correct zone id or do not specify anything and DNSControl will figure out the right zone id. (Note: Route53 alias can't reference a record in a different zone).
*
* Target health evaluation can be enabled with the [`R53_EVALUATE_TARGET_HEALTH`](../record/R53\_EVALUATE\_TARGET\_HEALTH.md) record modifier.
* Target health evaluation can be enabled with the [`R53_EVALUATE_TARGET_HEALTH`](../record-modifiers/R53\_EVALUATE\_TARGET\_HEALTH.md) record modifier.
*
* ```javascript
* D("example.com", REG_MY_PROVIDER, DnsProvider("ROUTE53"),
@ -2398,18 +2398,18 @@ declare const PURGE: DomainModifier;
declare function R53_ALIAS(name: string, target: string, zone_idModifier: DomainModifier & RecordModifier, evaluatetargethealthModifier: RecordModifier): DomainModifier;
/**
* `R53_EVALUATE_TARGET_HEALTH` lets you enable target health evaluation for a [`R53_ALIAS()`](../domain/R53_ALIAS.md) record. Omitting `R53_EVALUATE_TARGET_HEALTH()` from `R53_ALIAS()` set the behavior to false.
* `R53_EVALUATE_TARGET_HEALTH` lets you enable target health evaluation for a [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) record. Omitting `R53_EVALUATE_TARGET_HEALTH()` from `R53_ALIAS()` set the behavior to false.
*
* @see https://docs.dnscontrol.org/language-reference/record-modifiers/service-provider-specific/amazon-route-53/r53_evaluate_target_health
*/
declare function R53_EVALUATE_TARGET_HEALTH(enabled: boolean): RecordModifier;
/**
* `R53_ZONE` lets you specify the AWS Zone ID for an entire domain ([`D()`](../global/D.md)) or a specific [`R53_ALIAS()`](../domain/R53_ALIAS.md) record.
* `R53_ZONE` lets you specify the AWS Zone ID for an entire domain ([`D()`](../top-level-functions/D.md)) or a specific [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) record.
*
* When used with [`D()`](../global/D.md), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones. See this [example](../../providers/route53.md#split-horizon) in the [Amazon Route 53 provider page](../../providers/route53.md).
* When used with [`D()`](../top-level-functions/D.md), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones. See this [example](../../providers/route53.md#split-horizon) in the [Amazon Route 53 provider page](../../providers/route53.md).
*
* When used with [`R53_ALIAS()`](../domain/R53_ALIAS.md) it sets the required Route53 hosted zone id in a R53_ALIAS record. See [`R53_ALIAS()`](../domain/R53_ALIAS.md) documentation for details.
* When used with [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) it sets the required Route53 hosted zone id in a R53_ALIAS record. See [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) documentation for details.
*
* @see https://docs.dnscontrol.org/language-reference/record-modifiers/service-provider-specific/amazon-route-53/r53_zone
*/
@ -2906,7 +2906,7 @@ declare function TLSA(name: string, usage: number, selector: number, type: numbe
/**
* TTL sets the TTL for a single record only. This will take precedence
* over the domain's [DefaultTTL](../domain/DefaultTTL.md) if supplied.
* over the domain's [DefaultTTL](../domain-modifiers/DefaultTTL.md) if supplied.
*
* The value can be:
*
@ -3010,7 +3010,7 @@ declare function TTL(ttl: Duration): RecordModifier;
*
* #### How can you tell if a provider will support a particular `TXT()` record?
*
* Include the `TXT()` record in a [`D()`](../global/D.md) as usual, along
* Include the `TXT()` record in a [`D()`](../top-level-functions/D.md) as usual, along
* with the `DnsProvider()` for that provider. Run `dnscontrol check` to
* see if any errors are produced. The check command does not talk to
* the provider's API, thus permitting you to do this without having an

View File

@ -1,5 +1,5 @@
/**
* @dnscontrol-auto-doc-comment functions/global/FETCH.md
* @dnscontrol-auto-doc-comment language-reference/top-level-functions/FETCH.md
*/
declare function FETCH(
url: string,

View File

@ -13,86 +13,85 @@
* [JavaScript DSL](js.md)
* Top Level Functions
* [D](functions/global/D.md)
* [DEFAULTS](functions/global/DEFAULTS.md)
* [DOMAIN_ELSEWHERE](functions/global/DOMAIN_ELSEWHERE.md)
* [DOMAIN_ELSEWHERE_AUTO](functions/global/DOMAIN_ELSEWHERE_AUTO.md)
* [D_EXTEND](functions/global/D_EXTEND.md)
* [FETCH](functions/global/FETCH.md)
* [IP](functions/global/IP.md)
* [NewDnsProvider](functions/global/NewDnsProvider.md)
* [NewRegistrar](functions/global/NewRegistrar.md)
* [PANIC](functions/global/PANIC.md)
* [REV](functions/global/REV.md)
* [REVCOMPAT](functions/global/REVCOMPAT.md)
* [getConfiguredDomains](functions/global/getConfiguredDomains.md)
* [require](functions/global/require.md)
* [require_glob](functions/global/require_glob.md)
* [D](language-reference/top-level-functions/D.md)
* [DEFAULTS](language-reference/top-level-functions/DEFAULTS.md)
* [DOMAIN_ELSEWHERE](language-reference/top-level-functions/DOMAIN_ELSEWHERE.md)
* [DOMAIN_ELSEWHERE_AUTO](language-reference/top-level-functions/DOMAIN_ELSEWHERE_AUTO.md)
* [D_EXTEND](language-reference/top-level-functions/D_EXTEND.md)
* [FETCH](language-reference/top-level-functions/FETCH.md)
* [IP](language-reference/top-level-functions/IP.md)
* [NewDnsProvider](language-reference/top-level-functions/NewDnsProvider.md)
* [NewRegistrar](language-reference/top-level-functions/NewRegistrar.md)
* [PANIC](language-reference/top-level-functions/PANIC.md)
* [REV](language-reference/top-level-functions/REV.md)
* [getConfiguredDomains](language-reference/top-level-functions/getConfiguredDomains.md)
* [require](language-reference/top-level-functions/require.md)
* [require_glob](language-reference/top-level-functions/require_glob.md)
* Domain Modifiers
* [A](functions/domain/A.md)
* [AAAA](functions/domain/AAAA.md)
* [ALIAS](functions/domain/ALIAS.md)
* [AUTODNSSEC_OFF](functions/domain/AUTODNSSEC_OFF.md)
* [AUTODNSSEC_ON](functions/domain/AUTODNSSEC_ON.md)
* [CAA](functions/domain/CAA.md)
* [CAA_BUILDER](functions/domain/CAA_BUILDER.md)
* [CNAME](functions/domain/CNAME.md)
* [DHCID](functions/domain/DHCID.md)
* [DNAME](functions/domain/DNAME.md)
* [DISABLE_IGNORE_SAFETY_CHECK](functions/domain/DISABLE_IGNORE_SAFETY_CHECK.md)
* [DMARC_BUILDER](functions/domain/DMARC_BUILDER.md)
* [DS](functions/domain/DS.md)
* [DefaultTTL](functions/domain/DefaultTTL.md)
* [DnsProvider](functions/domain/DnsProvider.md)
* [FRAME](functions/domain/FRAME.md)
* [IGNORE](functions/domain/IGNORE.md)
* [IGNORE_NAME](functions/domain/IGNORE_NAME.md)
* [IGNORE_TARGET](functions/domain/IGNORE_TARGET.md)
* [IMPORT_TRANSFORM](functions/domain/IMPORT_TRANSFORM.md)
* [INCLUDE](functions/domain/INCLUDE.md)
* [LOC](functions/domain/LOC.md)
* [LOC_BUILDER_DD](functions/domain/LOC_BUILDER_DD.md)
* [LOC_BUILDER_DMM_STR](functions/domain/LOC_BUILDER_DMM_STR.md)
* [LOC_BUILDER_DMS_STR](functions/domain/LOC_BUILDER_DMS_STR.md)
* [LOC_BUILDER_STR](functions/domain/LOC_BUILDER_STR.md)
* [M365_BUILDER](functions/domain/M365_BUILDER.md)
* [MX](functions/domain/MX.md)
* [NAMESERVER](functions/domain/NAMESERVER.md)
* [NAMESERVER_TTL](functions/domain/NAMESERVER_TTL.md)
* [NAPTR](functions/domain/NAPTR.md)
* [NO_PURGE](functions/domain/NO_PURGE.md)
* [NS](functions/domain/NS.md)
* [PTR](functions/domain/PTR.md)
* [PURGE](functions/domain/PURGE.md)
* [SOA](functions/domain/SOA.md)
* [SPF_BUILDER](functions/domain/SPF_BUILDER.md)
* [SRV](functions/domain/SRV.md)
* [SSHFP](functions/domain/SSHFP.md)
* [TLSA](functions/domain/TLSA.md)
* [TXT](functions/domain/TXT.md)
* [URL](functions/domain/URL.md)
* [URL301](functions/domain/URL301.md)
* [A](language-reference/domain-modifiers/A.md)
* [AAAA](language-reference/domain-modifiers/AAAA.md)
* [ALIAS](language-reference/domain-modifiers/ALIAS.md)
* [AUTODNSSEC_OFF](language-reference/domain-modifiers/AUTODNSSEC_OFF.md)
* [AUTODNSSEC_ON](language-reference/domain-modifiers/AUTODNSSEC_ON.md)
* [CAA](language-reference/domain-modifiers/CAA.md)
* [CAA_BUILDER](language-reference/domain-modifiers/CAA_BUILDER.md)
* [CNAME](language-reference/domain-modifiers/CNAME.md)
* [DHCID](language-reference/domain-modifiers/DHCID.md)
* [DNAME](language-reference/domain-modifiers/DNAME.md)
* [DISABLE_IGNORE_SAFETY_CHECK](language-reference/domain-modifiers/DISABLE_IGNORE_SAFETY_CHECK.md)
* [DMARC_BUILDER](language-reference/domain-modifiers/DMARC_BUILDER.md)
* [DS](language-reference/domain-modifiers/DS.md)
* [DefaultTTL](language-reference/domain-modifiers/DefaultTTL.md)
* [DnsProvider](language-reference/domain-modifiers/DnsProvider.md)
* [FRAME](language-reference/domain-modifiers/FRAME.md)
* [IGNORE](language-reference/domain-modifiers/IGNORE.md)
* [IGNORE_NAME](language-reference/domain-modifiers/IGNORE_NAME.md)
* [IGNORE_TARGET](language-reference/domain-modifiers/IGNORE_TARGET.md)
* [IMPORT_TRANSFORM](language-reference/domain-modifiers/IMPORT_TRANSFORM.md)
* [INCLUDE](language-reference/domain-modifiers/INCLUDE.md)
* [LOC](language-reference/domain-modifiers/LOC.md)
* [LOC_BUILDER_DD](language-reference/domain-modifiers/LOC_BUILDER_DD.md)
* [LOC_BUILDER_DMM_STR](language-reference/domain-modifiers/LOC_BUILDER_DMM_STR.md)
* [LOC_BUILDER_DMS_STR](language-reference/domain-modifiers/LOC_BUILDER_DMS_STR.md)
* [LOC_BUILDER_STR](language-reference/domain-modifiers/LOC_BUILDER_STR.md)
* [M365_BUILDER](language-reference/domain-modifiers/M365_BUILDER.md)
* [MX](language-reference/domain-modifiers/MX.md)
* [NAMESERVER](language-reference/domain-modifiers/NAMESERVER.md)
* [NAMESERVER_TTL](language-reference/domain-modifiers/NAMESERVER_TTL.md)
* [NAPTR](language-reference/domain-modifiers/NAPTR.md)
* [NO_PURGE](language-reference/domain-modifiers/NO_PURGE.md)
* [NS](language-reference/domain-modifiers/NS.md)
* [PTR](language-reference/domain-modifiers/PTR.md)
* [PURGE](language-reference/domain-modifiers/PURGE.md)
* [SOA](language-reference/domain-modifiers/SOA.md)
* [SPF_BUILDER](language-reference/domain-modifiers/SPF_BUILDER.md)
* [SRV](language-reference/domain-modifiers/SRV.md)
* [SSHFP](language-reference/domain-modifiers/SSHFP.md)
* [TLSA](language-reference/domain-modifiers/TLSA.md)
* [TXT](language-reference/domain-modifiers/TXT.md)
* [URL](language-reference/domain-modifiers/URL.md)
* [URL301](language-reference/domain-modifiers/URL301.md)
* Service Provider specific
* Akamai Edge Dns
* [AKAMAICDN](functions/domain/AKAMAICDN.md)
* [AKAMAICDN](language-reference/domain-modifiers/AKAMAICDN.md)
* Amazon Route 53
* [R53_ALIAS](functions/domain/R53_ALIAS.md)
* [R53_ALIAS](language-reference/domain-modifiers/R53_ALIAS.md)
* Azure DNS
* [AZURE_ALIAS](functions/domain/AZURE_ALIAS.md)
* [AZURE_ALIAS](language-reference/domain-modifiers/AZURE_ALIAS.md)
* Cloudflare DNS
* [CF_REDIRECT](functions/domain/CF_REDIRECT.md)
* [CF_TEMP_REDIRECT](functions/domain/CF_TEMP_REDIRECT.md)
* [CF_WORKER_ROUTE](functions/domain/CF_WORKER_ROUTE.md)
* [CF_REDIRECT](language-reference/domain-modifiers/CF_REDIRECT.md)
* [CF_TEMP_REDIRECT](language-reference/domain-modifiers/CF_TEMP_REDIRECT.md)
* [CF_WORKER_ROUTE](language-reference/domain-modifiers/CF_WORKER_ROUTE.md)
* ClouDNS
* [CLOUDNS_WR](functions/domain/CLOUDNS_WR.md)
* [CLOUDNS_WR](language-reference/domain-modifiers/CLOUDNS_WR.md)
* NS1
* [NS1_URLFWD](functions/domain/NS1_URLFWD.md)
* [NS1_URLFWD](language-reference/domain-modifiers/NS1_URLFWD.md)
* Record Modifiers
* [TTL](functions/record/TTL.md)
* [TTL](language-reference/record-modifiers/TTL.md)
* Service Provider specific
* Amazon Route 53
* [R53_ZONE](functions/record/R53_ZONE.md)
* [R53_EVALUATE_TARGET_HEALTH](functions/record/R53\_EVALUATE\_TARGET\_HEALTH.md)
* [R53_ZONE](language-reference/record-modifiers/R53_ZONE.md)
* [R53_EVALUATE_TARGET_HEALTH](language-reference/record-modifiers/R53\_EVALUATE\_TARGET\_HEALTH.md)
* [Why CNAME/MX/NS targets require a "dot"](why-the-dot.md)
## Service Providers

View File

@ -79,9 +79,9 @@ popd
func matrixData() *FeatureMatrix {
const (
...
DomainModifierCaa = "[`CAA`](functions/domain/CAA.md)"
+ DomainModifierFoo = "[`FOO`](functions/domain/FOO.md)"
DomainModifierLoc = "[`LOC`](functions/domain/LOC.md)"
DomainModifierCaa = "[`CAA`](language-reference/domain-modifiers/CAA.md)"
+ DomainModifierFoo = "[`FOO`](language-reference/domain-modifiers/FOO.md)"
DomainModifierLoc = "[`LOC`](language-reference/domain-modifiers/LOC.md)"
...
)
matrix := &FeatureMatrix{
@ -153,7 +153,7 @@ example we removed `providers.CanUseCAA` from the
Add a function to `pkg/js/helpers.js` for the new record type. This
is the JavaScript file that defines `dnsconfig.js`'s functions like
[`A()`](functions/domain/A.md) and [`MX()`](functions/domain/MX.md). Look at the definition of `A`, `MX` and `CAA` for good
[`A()`](language-reference/domain-modifiers/A.md) and [`MX()`](language-reference/domain-modifiers/MX.md). Look at the definition of `A`, `MX` and `CAA` for good
examples to use as a base.
Please add the function alphabetically with the others. Also, please run
@ -292,7 +292,7 @@ tests, please ask!
## Step 8: Write documentation
Add a new Markdown file to `documentation/functions/domain`. Copy an existing file (`CNAME.md` is a good example). The section between the lines of `---` is called the front matter and it has the following keys:
Add a new Markdown file to `documentation/language-reference/domain-modifiers`. Copy an existing file (`CNAME.md` is a good example). The section between the lines of `---` is called the front matter and it has the following keys:
- `name`: The name of the record. This should match the file name and the name of the record in `helpers.js`.
- `parameters`: A list of parameter names, in order. Feel free to use spaces in the name if necessary. Your last parameter should be `modifiers...` to allow arbitrary modifiers like `TTL` to be applied to your record.
@ -307,24 +307,24 @@ Add the new file `FOO.md` to the documentation table of contents [`documentation
...
* Domain Modifiers
...
* [DnsProvider](functions/domain/DnsProvider.md)
+ * [FOO](functions/domain/FOO.md)
* [FRAME](functions/domain/FRAME.md)
* [DnsProvider](language-reference/domain-modifiers/DnsProvider.md)
+ * [FOO](language-reference/domain-modifiers/FOO.md)
* [FRAME](language-reference/domain-modifiers/FRAME.md)
...
* Service Provider specific
...
* ClouDNS
* [CLOUDNS_WR](functions/domain/CLOUDNS_WR.md)
* [CLOUDNS_WR](language-reference/domain-modifiers/CLOUDNS_WR.md)
+ * ASDF
+ * [ASDF_NINJA](function/domain/ASDF_NINJA.md)
+ * [ASDF_NINJA](language-reference/domain-modifiers/ASDF_NINJA.md)
* NS1
* [NS1_URLFWD](functions/domain/NS1_URLFWD.md)
* [NS1_URLFWD](language-reference/domain-modifiers/NS1_URLFWD.md)
...
* Record Modifiers
...
* [DMARC_BUILDER](functions/domain/DMARC_BUILDER.md)
+ * [FOO_HELPER](functions/record/FOO_HELPER.md)
* [SPF_BUILDER](functions/domain/SPF_BUILDER.md)
* [DMARC_BUILDER](language-reference/domain-modifiers/DMARC_BUILDER.md)
+ * [FOO_HELPER](language-reference/record-modifiers/FOO_HELPER.md)
* [SPF_BUILDER](language-reference/domain-modifiers/SPF_BUILDER.md)
...
```
{% endcode %}

View File

@ -4,10 +4,10 @@ Problem: It is difficult to get CAA and other records exactly right.
Solution: Use a "builder" to construct it for you.
* [CAA Builder](functions/domain/CAA_BUILDER.md)
* [DMARC Builder](functions/domain/DMARC_BUILDER.md)
* [M365_BUILDER](functions/domain/M365_BUILDER.md)
* [SPF Optimizer](functions/domain/SPF_BUILDER.md)
* [CAA Builder](language-reference/domain-modifiers/CAA_BUILDER.md)
* [DMARC Builder](language-reference/domain-modifiers/DMARC_BUILDER.md)
* [M365_BUILDER](language-reference/domain-modifiers/M365_BUILDER.md)
* [SPF Optimizer](language-reference/domain-modifiers/SPF_BUILDER.md)
# Trailing commas
@ -21,7 +21,7 @@ Because the DNSControl JavaScript DSL has no trailing commas, you can use the `E
**NOTE**: `END` is just an alias for `{}`, which is ignored by DNSControl.
{% endhint %}
Let's take an example with domain: `example.com`. We have recorded the [A-record](functions/domain/A.md) 'foo' configured.
Let's take an example with domain: `example.com`. We have recorded the [A-record](language-reference/domain-modifiers/A.md) 'foo' configured.
{% code title="dnsconfig.js" %}
```javascript
@ -31,7 +31,7 @@ D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_MY_PROVIDER),
```
{% endcode %}
Let's say we want to add an [A record](functions/domain/A.md) 'bar' to this domain.
Let's say we want to add an [A record](language-reference/domain-modifiers/A.md) 'bar' to this domain.
{% code title="dnsconfig.js" %}
```javascript
@ -221,5 +221,5 @@ domain exists, who requested it, any associated ticket numbers, and so
on.
We also comment the individual parts of a record. Look at the [SPF
Optimizer](functions/domain/SPF_BUILDER.md) example. Each part of
Optimizer](language-reference/domain-modifiers/SPF_BUILDER.md) example. Each part of
the SPF record has a comment.

View File

@ -51,7 +51,7 @@ D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_R53),
{% endcode %}
{% hint style="info" %}
**NOTE**: The [`IP()`](functions/global/IP.md) function doesn't currently support IPv6 (PRs welcome!). IPv6 addresses are strings.
**NOTE**: The [`IP()`](language-reference/top-level-functions/IP.md) function doesn't currently support IPv6 (PRs welcome!). IPv6 addresses are strings.
{% endhint %}
{% code title="dnsconfig.js" %}
```javascript

View File

@ -1,15 +0,0 @@
---
name: R53_ZONE
parameters:
- zone_id
parameter_types:
zone_id: string
ts_return: DomainModifier & RecordModifier
provider: ROUTE53
---
`R53_ZONE` lets you specify the AWS Zone ID for an entire domain ([`D()`](../global/D.md)) or a specific [`R53_ALIAS()`](../domain/R53_ALIAS.md) record.
When used with [`D()`](../global/D.md), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones. See this [example](../../providers/route53.md#split-horizon) in the [Amazon Route 53 provider page](../../providers/route53.md).
When used with [`R53_ALIAS()`](../domain/R53_ALIAS.md) it sets the required Route53 hosted zone id in a R53_ALIAS record. See [`R53_ALIAS()`](../domain/R53_ALIAS.md) documentation for details.

View File

@ -18,7 +18,7 @@ Take advantage of the advanced features. Use macros and variables for easier upd
* Supports 35+ [DNS Providers](providers.md) including [BIND](providers/bind.md), [AWS Route 53](providers/route53.md), [Google DNS](providers/gcloud.md), and [name.com](providers/namedotcom.md).
* [Apply CI/CD principles](ci-cd-gitlab.md) to DNS: Unit-tests, system-tests, automated deployment.
* All the benefits of Git (or any VCS) for your DNS zone data. View history. Accept PRs.
* Optimize DNS with [SPF optimizer](functions/domain/SPF_BUILDER.md). Detect too many lookups. Flatten includes.
* Optimize DNS with [SPF optimizer](language-reference/domain-modifiers/SPF_BUILDER.md). Detect too many lookups. Flatten includes.
* Runs on Linux, Windows, Mac, or any operating system supported by Go.
* Enable/disable Cloudflare proxying (the "orange cloud" button) directly from your DNSControl files.
* [Assign an IP address to a constant](examples.md#variables-for-common-ip-addresses) and use the variable name throughout the configuration. Need to change the IP address globally? Just change the variable and "recompile".

View File

@ -12,7 +12,7 @@ parameter_types:
A adds an A record To a domain. The name should be the relative label for the record. Use `@` for the domain apex.
The address should be an ip address, either a string, or a numeric value obtained via [IP](../global/IP.md).
The address should be an ip address, either a string, or a numeric value obtained via [IP](../top-level-functions/IP.md).
Modifiers can be any number of [record modifiers](https://docs.dnscontrol.org/language-reference/record-modifiers) or JSON objects, which will be merged into the record's metadata.

View File

@ -20,7 +20,7 @@ parameter_types:
---
DNSControl contains a `CAA_BUILDER` which can be used to simply create
[`CAA()`](../domain/CAA.md) records for your domains. Instead of creating each [`CAA()`](../domain/CAA.md) record
[`CAA()`](../domain-modifiers/CAA.md) records for your domains. Instead of creating each [`CAA()`](../domain-modifiers/CAA.md) record
individually, you can simply configure your report mail address, the
authorized certificate authorities and the builder cares about the rest.

View File

@ -9,7 +9,7 @@ safety check for the entire domain.
It replaces the per-record `IGNORE_NAME_DISABLE_SAFETY_CHECK()` which is
deprecated as of DNSControl v4.0.0.0.
See [`IGNORE()`](../domain/IGNORE.md) for more information.
See [`IGNORE()`](../domain-modifiers/IGNORE.md) for more information.
## Syntax

View File

@ -6,10 +6,10 @@ parameter_types:
ttl: Duration
---
DefaultTTL sets the TTL for all subsequent records following it in a domain that do not explicitly set one with [`TTL`](../record/TTL.md). If neither `DefaultTTL` or `TTL` exist for a record,
the record will inherit the DNSControl global internal default of 300 seconds. See also [`DEFAULTS`](../global/DEFAULTS.md) to override the internal defaults.
DefaultTTL sets the TTL for all subsequent records following it in a domain that do not explicitly set one with [`TTL`](../record-modifiers/TTL.md). If neither `DefaultTTL` or `TTL` exist for a record,
the record will inherit the DNSControl global internal default of 300 seconds. See also [`DEFAULTS`](../top-level-functions/DEFAULTS.md) to override the internal defaults.
NS records are currently a special case, and do not inherit from `DefaultTTL`. See [`NAMESERVER_TTL`](../domain/NAMESERVER_TTL.md) to set a default TTL for all NS records.
NS records are currently a special case, and do not inherit from `DefaultTTL`. See [`NAMESERVER_TTL`](../domain-modifiers/NAMESERVER_TTL.md) to set a default TTL for all NS records.
{% code title="dnsconfig.js" %}
@ -22,5 +22,5 @@ D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_MY_PROVIDER),
```
{% endcode %}
The DefaultTTL duration is the same format as [`TTL`](../record/TTL.md), an integer number of seconds
The DefaultTTL duration is the same format as [`TTL`](../record-modifiers/TTL.md), an integer number of seconds
or a string with a unit such as `"4d"`.

View File

@ -9,7 +9,7 @@ parameter_types:
---
DnsProvider indicates that the specified provider should be used to manage
records for this domain. The name must match the name used with [NewDnsProvider](../global/NewDnsProvider.md).
records for this domain. The name must match the name used with [NewDnsProvider](../top-level-functions/NewDnsProvider.md).
The nsCount parameter determines how the nameservers will be managed from this provider.

View File

@ -26,11 +26,11 @@ records.
Technically `IGNORE_NAME` is a promise that DNSControl will not modify or
delete existing records that match particular patterns. It is like
[`NO_PURGE`](../domain/NO_PURGE.md) that matches only specific records.
[`NO_PURGE`](../domain-modifiers/NO_PURGE.md) that matches only specific records.
Including a record that is ignored is considered an error and may have
undefined behavior. This safety check can be disabled using the
[`DISABLE_IGNORE_SAFETY_CHECK`](../domain/DISABLE_IGNORE_SAFETY_CHECK.md) feature.
[`DISABLE_IGNORE_SAFETY_CHECK`](../domain-modifiers/DISABLE_IGNORE_SAFETY_CHECK.md) feature.
## Syntax

View File

@ -10,7 +10,7 @@ parameter_types:
NAMESERVER_TTL sets the TTL on the domain apex NS RRs defined by [`NAMESERVER`](NAMESERVER.md).
The value can be an integer or a string. See [`TTL`](../record/TTL.md) for examples.
The value can be an integer or a string. See [`TTL`](../record-modifiers/TTL.md) for examples.
{% code title="dnsconfig.js" %}
```javascript
@ -36,4 +36,4 @@ D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_MY_PROVIDER),
```
{% endcode %}
To apply a default TTL to all other record types, see [`DefaultTTL`](../domain/DefaultTTL.md)
To apply a default TTL to all other record types, see [`DefaultTTL`](../domain-modifiers/DefaultTTL.md)

View File

@ -53,7 +53,7 @@ are all equivalent:
* `PTR("4.3", ...` // Assuming the domain is `2.1.in-addr.arpa`
All magic is RFC2317-aware. We use the first format listed in the
RFC for both [`REV()`](../global/REV.md) and `PTR()`. The format is
RFC for both [`REV()`](../top-level-functions/REV.md) and `PTR()`. The format is
`FIRST/MASK.C.B.A.in-addr.arpa` where `FIRST` is the first IP address
of the zone, `MASK` is the netmask of the zone (25-31 inclusive),
and A, B, C are the first 3 octets of the IP address. For example

View File

@ -29,7 +29,7 @@ The Target can be any of:
* _S3 bucket_ (configured as website): specify the domain name of the Amazon S3 website endpoint in which you configured the bucket (for instance s3-website-us-east-2.amazonaws.com). For the available values refer to the [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region).
* _Another Route53 record_: specify the value of the name of another record in the same hosted zone.
For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the [`R53_ZONE`](../record/R53_ZONE.md) record modifier.
For all the target type, excluding 'another record', you have to specify the `Zone ID` of the target. This is done by using the [`R53_ZONE`](../record-modifiers/R53_ZONE.md) record modifier.
The zone id can be found depending on the target type:
@ -39,7 +39,7 @@ The zone id can be found depending on the target type:
* _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
* _Another Route 53 record_: you can either specify the correct zone id or do not specify anything and DNSControl will figure out the right zone id. (Note: Route53 alias can't reference a record in a different zone).
Target health evaluation can be enabled with the [`R53_EVALUATE_TARGET_HEALTH`](../record/R53\_EVALUATE\_TARGET\_HEALTH.md) record modifier.
Target health evaluation can be enabled with the [`R53_EVALUATE_TARGET_HEALTH`](../record-modifiers/R53\_EVALUATE\_TARGET\_HEALTH.md) record modifier.
{% code title="dnsconfig.js" %}
```javascript

View File

@ -87,7 +87,7 @@ double quotes, back-ticks, or other chars.
#### How can you tell if a provider will support a particular `TXT()` record?
Include the `TXT()` record in a [`D()`](../global/D.md) as usual, along
Include the `TXT()` record in a [`D()`](../top-level-functions/D.md) as usual, along
with the `DnsProvider()` for that provider. Run `dnscontrol check` to
see if any errors are produced. The check command does not talk to
the provider's API, thus permitting you to do this without having an

View File

@ -8,4 +8,4 @@ ts_return: RecordModifier
provider: ROUTE53
---
`R53_EVALUATE_TARGET_HEALTH` lets you enable target health evaluation for a [`R53_ALIAS()`](../domain/R53_ALIAS.md) record. Omitting `R53_EVALUATE_TARGET_HEALTH()` from `R53_ALIAS()` set the behavior to false.
`R53_EVALUATE_TARGET_HEALTH` lets you enable target health evaluation for a [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) record. Omitting `R53_EVALUATE_TARGET_HEALTH()` from `R53_ALIAS()` set the behavior to false.

View File

@ -0,0 +1,15 @@
---
name: R53_ZONE
parameters:
- zone_id
parameter_types:
zone_id: string
ts_return: DomainModifier & RecordModifier
provider: ROUTE53
---
`R53_ZONE` lets you specify the AWS Zone ID for an entire domain ([`D()`](../top-level-functions/D.md)) or a specific [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) record.
When used with [`D()`](../top-level-functions/D.md), it sets the zone id of the domain. This can be used to differentiate between split horizon domains in public and private zones. See this [example](../../providers/route53.md#split-horizon) in the [Amazon Route 53 provider page](../../providers/route53.md).
When used with [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) it sets the required Route53 hosted zone id in a R53_ALIAS record. See [`R53_ALIAS()`](../domain-modifiers/R53_ALIAS.md) documentation for details.

View File

@ -7,7 +7,7 @@ parameter_types:
---
TTL sets the TTL for a single record only. This will take precedence
over the domain's [DefaultTTL](../domain/DefaultTTL.md) if supplied.
over the domain's [DefaultTTL](../domain-modifiers/DefaultTTL.md) if supplied.
The value can be:

View File

@ -12,11 +12,11 @@ parameter_types:
`D` adds a new Domain for DNSControl to manage. The first two arguments are required: the domain name (fully qualified `example.com` without a trailing dot), and the
name of the registrar (as previously declared with [NewRegistrar](NewRegistrar.md)). Any number of additional arguments may be included to add DNS Providers with [DNSProvider](NewDnsProvider.md),
add records with [A](../domain/A.md), [CNAME](../domain/CNAME.md), and so forth, or add metadata.
add records with [A](../domain-modifiers/A.md), [CNAME](../domain-modifiers/CNAME.md), and so forth, or add metadata.
Modifier arguments are processed according to type as follows:
- A function argument will be called with the domain object as it's only argument. Most of the [built-in modifier functions](https://docs.dnscontrol.org/language-reference/domain-modifiers) return such functions.
- A function argument will be called with the domain object as it's only argument. Most of the [built-in modifier functions](https://docs.dnscontrol.org/language-reference/domain-modifiers-modifiers) return such functions.
- An object argument will be merged into the domain's metadata collection.
- An array argument will have all of it's members evaluated recursively. This allows you to combine multiple common records or modifiers into a variable that can
be used like a macro in multiple domains.

View File

@ -11,7 +11,7 @@ arguments passed as if they were the first modifiers in the argument list.
## Example
We want to create backup zone files for all domains, but not actually register them. Also create a [`DefaultTTL`](../domain/DefaultTTL.md).
We want to create backup zone files for all domains, but not actually register them. Also create a [`DefaultTTL`](../domain-modifiers/DefaultTTL.md).
The domain `example.com` will have the defaults set.
{% code title="dnsconfig.js" %}

View File

@ -40,6 +40,6 @@ D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_MY_PROVIDER),
{% endcode %}
{% hint style="info" %}
**NOTE**: The [`NO_PURGE`](../domain/NO_PURGE.md) is used out of abundance of caution but since no
**NOTE**: The [`NO_PURGE`](../domain-modifiers/NO_PURGE.md) is used out of abundance of caution but since no
`DnsProvider()` statements exist, no updates would be performed.
{% endhint %}

View File

@ -44,5 +44,5 @@ D("example.com", REG_NAMEDOTCOM,
{% endcode %}
{% hint style="info" %}
**NOTE**: The [`NO_PURGE`](../domain/NO_PURGE.md) is used to prevent DNSControl from changing the records.
**NOTE**: The [`NO_PURGE`](../domain-modifiers/NO_PURGE.md) is used to prevent DNSControl from changing the records.
{% endhint %}

View File

@ -29,7 +29,7 @@ defined as separate domains via separate [`D()`](D.md) statements, then
not `domain.tld`.
Some operators only act on an apex domain (e.g.
[`CF_REDIRECT`](../domain/CF_REDIRECT.md) and [`CF_TEMP_REDIRECT`](../domain/CF_TEMP_REDIRECT.md)). Using them
[`CF_REDIRECT`](../domain-modifiers/CF_REDIRECT.md) and [`CF_TEMP_REDIRECT`](../domain-modifiers/CF_TEMP_REDIRECT.md)). Using them
in a `D_EXTEND` subdomain may not be what you expect.
{% code title="dnsconfig.js" %}

View File

@ -28,7 +28,7 @@ Notifications are set up in your credentials JSON file. They will use the `notif
If you want to send a notification, add the `--notify` flag to the `dnscontrol preview` or `dnscontrol push` commands.
Below is an example where we add [the A record](functions/domain/A.md) `foo` and display the notification output.
Below is an example where we add [the A record](language-reference/domain-modifiers/A.md) `foo` and display the notification output.
{% code title="dnsconfig.js" %}
```diff

View File

@ -12,8 +12,8 @@ a provider that supports it, we'd love your contribution to ensure it works corr
If a feature is definitively not supported for whatever reason, we would also like a PR to clarify why it is not supported, and fill in this entire matrix.
<!-- provider-matrix-start -->
| Provider name | Official Support | DNS Provider | Registrar | Concurrency Verified | [`ALIAS`](functions/domain/ALIAS.md) | [`CAA`](functions/domain/CAA.md) | [`AUTODNSSEC`](functions/domain/AUTODNSSEC_ON.md) | [`LOC`](functions/domain/LOC.md) | [`NAPTR`](functions/domain/NAPTR.md) | [`PTR`](functions/domain/PTR.md) | [`SOA`](functions/domain/SOA.md) | [`SRV`](functions/domain/SRV.md) | [`SSHFP`](functions/domain/SSHFP.md) | [`TLSA`](functions/domain/TLSA.md) | [`DS`](functions/domain/DS.md) | [`DHCID`](functions/domain/DHCID.md) | [`DNAME`](functions/domain/DNAME.md) | dual host | create-domains | get-zones |
| ------------- | ---------------- | ------------ | --------- | -------------------- | ------------------------------------ | -------------------------------- | ------------------------------------------------- | -------------------------------- | ------------------------------------ | -------------------------------- | -------------------------------- | -------------------------------- | ------------------------------------ | ---------------------------------- | ------------------------------ | ------------------------------------ | ------------------------------------ | --------- | -------------- | --------- |
| Provider name | Official Support | DNS Provider | Registrar | Concurrency Verified | [`ALIAS`](language-reference/domain-modifiers/ALIAS.md) | [`CAA`](language-reference/domain-modifiers/CAA.md) | [`AUTODNSSEC`](language-reference/domain-modifiers/AUTODNSSEC_ON.md) | [`LOC`](language-reference/domain-modifiers/LOC.md) | [`NAPTR`](language-reference/domain-modifiers/NAPTR.md) | [`PTR`](language-reference/domain-modifiers/PTR.md) | [`SOA`](language-reference/domain-modifiers/SOA.md) | [`SRV`](language-reference/domain-modifiers/SRV.md) | [`SSHFP`](language-reference/domain-modifiers/SSHFP.md) | [`TLSA`](language-reference/domain-modifiers/TLSA.md) | [`DS`](language-reference/domain-modifiers/DS.md) | [`DHCID`](language-reference/domain-modifiers/DHCID.md) | [`DNAME`](language-reference/domain-modifiers/DNAME.md) | dual host | create-domains | get-zones |
| ------------- | ---------------- | ------------ | --------- | -------------------- | ------------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | --------- | -------------- | --------- |
| [`AKAMAIEDGEDNS`](providers/akamaiedgedns.md) | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❔ | ❔ | ✅ | ✅ | ✅ |
| [`AUTODNS`](providers/autodns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❔ | ❌ | ❔ | ✅ | ❌ | ❌ | ❌ | ❔ | ❔ | ❌ | ❌ | ✅ |
| [`AXFRDDNS`](providers/axfrddns.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ❔ | ❌ | ❌ | ❌ |

View File

@ -80,10 +80,10 @@ D("example.com", REG_NONE, DnsProvider(DSP_R53),
## Split horizon
This provider supports split horizons using the [`R53_ZONE()`](../functions/record/R53_ZONE.md) domain function.
This provider supports split horizons using the [`R53_ZONE()`](../language-reference/record-modifiers/R53_ZONE.md) domain function.
In this example the domain `testzone.net` appears in the same account twice,
each with different zone IDs specified using [`R53_ZONE()`](../functions/record/R53_ZONE.md).
each with different zone IDs specified using [`R53_ZONE()`](../language-reference/record-modifiers/R53_ZONE.md).
{% code title="dnsconfig.js" %}
```javascript

View File

@ -64,7 +64,7 @@ TransIP depends on a TransIP personal access token.
> "When multiple or none of the current DNS entries matches, the response will be an error with http status code 406." — _[TransIP - REST API - Update single DNS entry](https://api.transip.nl/rest/docs.html#domains-dns-patch)_
This makes it not possible, for example, to update a [`CAA()`](../functions/domain/CAA.md) record in one update. Instead, the old DNS entry is deleted and the replacement is added. You'll see `[1/2]` and `[2/2]` in the DNSControl output whenever this happens.
This makes it not possible, for example, to update a [`CAA()`](../language-reference/domain-modifiers/CAA.md) record in one update. Instead, the old DNS entry is deleted and the replacement is added. You'll see `[1/2]` and `[2/2]` in the DNSControl output whenever this happens.
### Example with a `CAA_BUILDER()`

View File

@ -23,7 +23,7 @@ Within the git repo, docs are grouped:
* [`documentation/`](https://github.com/StackExchange/dnscontrol/tree/main/documentation): general docs
* [`documentation/providers/`](https://github.com/StackExchange/dnscontrol/tree/main/documentation/providers/): One file per provider
* [`documentation/functions/`](https://github.com/StackExchange/dnscontrol/tree/main/documentation/functions/): One file per `dnsconfig.js` language feature
* [`documentation/language-reference/`](https://github.com/StackExchange/dnscontrol/tree/main/documentation/language-reference/): One file per `dnsconfig.js` language feature
* [`documentation/assets/FOO/`](https://github.com/StackExchange/dnscontrol/tree/main/documentation/assets/): Images for page FOO(PNGs only, please!)
## How to add a new page?
@ -33,10 +33,10 @@ Within the git repo, docs are grouped:
## Top-of-Document parameters
Files in the `documentation/functions/{record,domain,global}` subdirectories
Files in the `documentation/language-reference/{record,domain,global}` subdirectories
have a header at the top that is used to populate other systems.
Here's an example from [`A`](functions/domain/A.md)
Here's an example from [`A`](language-reference/domain-modifiers/A.md)
```
---
@ -193,7 +193,7 @@ However, the first mention on a page should always
be a link. Others are at the authors digression.
```markdown
The [`PTR`](functions/domain/PTR.md) feature is helpful in LANs.
The [`PTR`](language-reference/domain-modifiers/PTR.md) feature is helpful in LANs.
```
#### Mentioning functions from the Source code
@ -207,7 +207,7 @@ The function `GetRegistrarCorrections()` returns...
#### Internal links
```markdown
Blah blah blah [M365_BUILDER](functions/domain/M365_BUILDER.md)
Blah blah blah [M365_BUILDER](language-reference/domain-modifiers/M365_BUILDER.md)
```
{% hint style="info" %}

View File

@ -10,7 +10,7 @@ assigned bugs related to the provider in the future (unless
you designate someone else as the maintainer). More details
[here](providers.md).
Please follow the [DNSControl Code Style Guide](https://docs.dnscontrol.org/developer-info/styleguide-code) and the [DNSControl Documentation Style Guide](https://docs.dnscontrol.org/developer-info/styleguide-doc).
Please follow the [DNSControl Code Style Guide](styleguide-code.md) and the [DNSControl Documentation Style Guide](styleguide-doc.md).
## Overview

View File

@ -1,7 +1,7 @@
var REG = NewRegistrar("Third-Party", "NONE");
var DNS = NewDnsProvider("Cloudflare", "CLOUDFLAREAPI");
// The example from docs/functions/global/D_EXTEND.md
// The example from documentation/language-reference/top-level-functions/D_EXTEND.md
D("domain.tld", REG, DnsProvider(DNS),
A("@", "127.0.0.1"), // domain.tld