]> luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/dns.js
Initial commit.
[flow-web.git] / static / highlight / languages / dns.js
1 /*! `dns` grammar compiled for Highlight.js 11.11.1 */
2 (function(){
3 var hljsGrammar = (function () {
4 'use strict';
5
6 /*
7 Language: DNS Zone
8 Author: Tim Schumacher <tim@datenknoten.me>
9 Category: config
10 Website: https://en.wikipedia.org/wiki/Zone_file
11 */
12
13 /** @type LanguageFn */
14 function dns(hljs) {
15 const KEYWORDS = [
16 "IN",
17 "A",
18 "AAAA",
19 "AFSDB",
20 "APL",
21 "CAA",
22 "CDNSKEY",
23 "CDS",
24 "CERT",
25 "CNAME",
26 "DHCID",
27 "DLV",
28 "DNAME",
29 "DNSKEY",
30 "DS",
31 "HIP",
32 "IPSECKEY",
33 "KEY",
34 "KX",
35 "LOC",
36 "MX",
37 "NAPTR",
38 "NS",
39 "NSEC",
40 "NSEC3",
41 "NSEC3PARAM",
42 "PTR",
43 "RRSIG",
44 "RP",
45 "SIG",
46 "SOA",
47 "SRV",
48 "SSHFP",
49 "TA",
50 "TKEY",
51 "TLSA",
52 "TSIG",
53 "TXT"
54 ];
55 return {
56 name: 'DNS Zone',
57 aliases: [
58 'bind',
59 'zone'
60 ],
61 keywords: KEYWORDS,
62 contains: [
63 hljs.COMMENT(';', '$', { relevance: 0 }),
64 {
65 className: 'meta',
66 begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
67 },
68 // IPv6
69 {
70 className: 'number',
71 begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b'
72 },
73 // IPv4
74 {
75 className: 'number',
76 begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'
77 },
78 hljs.inherit(hljs.NUMBER_MODE, { begin: /\b\d+[dhwm]?/ })
79 ]
80 };
81 }
82
83 return dns;
84
85 })();
86
87 hljs.registerLanguage('dns', hljsGrammar);
88 })();