1 | /*
|
2 | Language: CSP
|
3 | Description: Content Security Policy definition highlighting
|
4 | Author: Taras <oxdef@oxdef.info>
|
5 | Website: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
|
6 |
|
7 | vim: ts=2 sw=2 st=2
|
8 | */
|
9 |
|
10 | /** @type LanguageFn */
|
11 | function csp(hljs) {
|
12 | const KEYWORDS = [
|
13 | "base-uri",
|
14 | "child-src",
|
15 | "connect-src",
|
16 | "default-src",
|
17 | "font-src",
|
18 | "form-action",
|
19 | "frame-ancestors",
|
20 | "frame-src",
|
21 | "img-src",
|
22 | "manifest-src",
|
23 | "media-src",
|
24 | "object-src",
|
25 | "plugin-types",
|
26 | "report-uri",
|
27 | "sandbox",
|
28 | "script-src",
|
29 | "style-src",
|
30 | "trusted-types",
|
31 | "unsafe-hashes",
|
32 | "worker-src"
|
33 | ];
|
34 | return {
|
35 | name: 'CSP',
|
36 | case_insensitive: false,
|
37 | keywords: {
|
38 | $pattern: '[a-zA-Z][a-zA-Z0-9_-]*',
|
39 | keyword: KEYWORDS
|
40 | },
|
41 | contains: [
|
42 | {
|
43 | className: 'string',
|
44 | begin: "'",
|
45 | end: "'"
|
46 | },
|
47 | {
|
48 | className: 'attribute',
|
49 | begin: '^Content',
|
50 | end: ':',
|
51 | excludeEnd: true
|
52 | }
|
53 | ]
|
54 | };
|
55 | }
|
56 |
|
57 | module.exports = csp;
|