@analogjs/platform 1.5.1-beta.1 → 1.6.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/lib/content/marked-content-highlighter.d.ts +6 -0
- package/src/lib/content/marked-content-highlighter.js +3 -0
- package/src/lib/content/marked-setup.service.d.ts +8 -0
- package/src/lib/content/marked-setup.service.js +38 -0
- package/src/lib/content/prism/angular.d.ts +0 -0
- package/src/lib/content/prism/angular.js +20 -0
- package/src/lib/content/prism/index.d.ts +3 -0
- package/src/lib/content/prism/index.js +6 -0
- package/src/lib/content/prism/prism-highlighter.d.ts +15 -0
- package/src/lib/content/prism/prism-highlighter.js +54 -0
- package/src/lib/content/shiki/index.d.ts +11 -0
- package/src/lib/content/shiki/index.js +24 -0
- package/src/lib/content/shiki/shiki-highlighter.d.ts +17 -0
- package/src/lib/content/shiki/shiki-highlighter.js +45 -0
- package/src/lib/content-plugin.d.ts +5 -1
- package/src/lib/content-plugin.js +36 -2
- package/src/lib/options.d.ts +5 -0
- package/src/lib/platform-plugin.js +5 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/platform",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-beta.2",
|
|
4
4
|
"description": "The fullstack meta-framework for Angular",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Brandon Roberts <robertsbt@gmail.com>",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"nitropack": "^2.9.0",
|
|
28
|
-
"@analogjs/vite-plugin-angular": "^1.
|
|
29
|
-
"@analogjs/vite-plugin-nitro": "^1.
|
|
28
|
+
"@analogjs/vite-plugin-angular": "^1.6.0-beta.2",
|
|
29
|
+
"@analogjs/vite-plugin-nitro": "^1.6.0-beta.2"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@nx/angular": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class MarkedContentHighlighter {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VkLWNvbnRlbnQtaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvbWFya2VkLWNvbnRlbnQtaGlnaGxpZ2h0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFnQix3QkFBd0I7Q0FFN0MifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { marked } from 'marked';
|
|
2
|
+
import { MarkedContentHighlighter } from './marked-content-highlighter.js';
|
|
3
|
+
export declare class MarkedSetupService {
|
|
4
|
+
private readonly highlighter?;
|
|
5
|
+
private readonly marked;
|
|
6
|
+
constructor(highlighter?: MarkedContentHighlighter | undefined);
|
|
7
|
+
getMarkedInstance(): typeof marked;
|
|
8
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { marked } from 'marked';
|
|
2
|
+
import { gfmHeadingId } from 'marked-gfm-heading-id';
|
|
3
|
+
import { mangle } from 'marked-mangle';
|
|
4
|
+
export class MarkedSetupService {
|
|
5
|
+
constructor(highlighter) {
|
|
6
|
+
this.highlighter = highlighter;
|
|
7
|
+
const renderer = new marked.Renderer();
|
|
8
|
+
renderer.code = (code, lang) => {
|
|
9
|
+
// Let's do a language based detection like on GitHub
|
|
10
|
+
// So we can still have non-interpreted mermaid code
|
|
11
|
+
if (lang === 'mermaid') {
|
|
12
|
+
return '<pre class="mermaid">' + code + '</pre>';
|
|
13
|
+
}
|
|
14
|
+
if (!lang) {
|
|
15
|
+
return '<pre><code>' + code + '</code></pre>';
|
|
16
|
+
}
|
|
17
|
+
if (this.highlighter?.augmentCodeBlock) {
|
|
18
|
+
return this.highlighter?.augmentCodeBlock(code, lang);
|
|
19
|
+
}
|
|
20
|
+
return `<pre class="language-${lang}"><code class="language-${lang}">${code}</code></pre>`;
|
|
21
|
+
};
|
|
22
|
+
const extensions = [gfmHeadingId(), mangle()];
|
|
23
|
+
if (this.highlighter) {
|
|
24
|
+
extensions.push(this.highlighter.getHighlightExtension());
|
|
25
|
+
}
|
|
26
|
+
marked.use(...extensions, {
|
|
27
|
+
renderer,
|
|
28
|
+
pedantic: false,
|
|
29
|
+
gfm: true,
|
|
30
|
+
breaks: false,
|
|
31
|
+
});
|
|
32
|
+
this.marked = marked;
|
|
33
|
+
}
|
|
34
|
+
getMarkedInstance() {
|
|
35
|
+
return this.marked;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VkLXNldHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvbWFya2VkLXNldHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2QyxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQTZCLFdBQXNDO1FBQXRDLGdCQUFXLEdBQVgsV0FBVyxDQUEyQjtRQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxFQUFFO1lBQzdDLHFEQUFxRDtZQUNyRCxvREFBb0Q7WUFDcEQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNuRCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU8sYUFBYSxHQUFHLElBQUksR0FBRyxlQUFlLENBQUM7WUFDaEQsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFFRCxPQUFPLHdCQUF3QixJQUFJLDJCQUEyQixJQUFJLEtBQUssSUFBSSxlQUFlLENBQUM7UUFDN0YsQ0FBQyxDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUU7WUFDeEIsUUFBUTtZQUNSLFFBQVEsRUFBRSxLQUFLO1lBQ2YsR0FBRyxFQUFFLElBQUk7WUFDVCxNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGIn0=
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
(function () {
|
|
3
|
+
if (typeof Prism === 'undefined') {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
Prism.languages.angular = Prism.languages.extend('markup', {
|
|
7
|
+
keyword: /(?:@if|@for|@switch|@defer|@loading|@error|@placeholder|prefetch)\b/,
|
|
8
|
+
operator: /\b(?:on|when)\b/,
|
|
9
|
+
number: {
|
|
10
|
+
pattern: /\b(minimum|after)\s+\d+(?:s|ms|)/gi,
|
|
11
|
+
lookbehind: true,
|
|
12
|
+
},
|
|
13
|
+
builtin: {
|
|
14
|
+
pattern: /\b(?:viewport|timer|minimum|after|hover|idle|immediate|interaction)/,
|
|
15
|
+
},
|
|
16
|
+
function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
|
|
17
|
+
});
|
|
18
|
+
Prism.languages.ng = Prism.languages.angular;
|
|
19
|
+
})();
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvY29udGVudC9wcmlzbS9hbmd1bGFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxDQUFDO0lBQ0MsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxPQUFPO0lBQ1QsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUN6RCxPQUFPLEVBQ0wscUVBQXFFO1FBQ3ZFLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLG9DQUFvQztZQUM3QyxVQUFVLEVBQUUsSUFBSTtTQUNqQjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFDTCxxRUFBcUU7U0FDeEU7UUFDRCxRQUFRLEVBQ04sbUdBQW1HO0tBQ3RHLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMifQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PrismHighlighter } from './prism-highlighter.js';
|
|
2
|
+
export { PrismHighlighter };
|
|
3
|
+
export function getPrismHighlighter() {
|
|
4
|
+
return new PrismHighlighter();
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvcHJpc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUM7QUFFNUIsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import 'prismjs';
|
|
2
|
+
import 'prismjs/components/prism-bash.js';
|
|
3
|
+
import 'prismjs/components/prism-css.js';
|
|
4
|
+
import 'prismjs/components/prism-javascript.js';
|
|
5
|
+
import 'prismjs/components/prism-json.js';
|
|
6
|
+
import 'prismjs/components/prism-markup.js';
|
|
7
|
+
import 'prismjs/components/prism-typescript.js';
|
|
8
|
+
import 'prismjs/plugins/toolbar/prism-toolbar.js';
|
|
9
|
+
import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
|
|
10
|
+
import './angular.js';
|
|
11
|
+
import { MarkedContentHighlighter } from '../marked-content-highlighter.js';
|
|
12
|
+
export declare class PrismHighlighter extends MarkedContentHighlighter {
|
|
13
|
+
augmentCodeBlock(code: string, lang: string): string;
|
|
14
|
+
getHighlightExtension(): import("marked").marked.MarkedExtension;
|
|
15
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { markedHighlight } from 'marked-highlight';
|
|
2
|
+
import 'prismjs';
|
|
3
|
+
import 'prismjs/components/prism-bash.js';
|
|
4
|
+
import 'prismjs/components/prism-css.js';
|
|
5
|
+
import 'prismjs/components/prism-javascript.js';
|
|
6
|
+
import 'prismjs/components/prism-json.js';
|
|
7
|
+
import 'prismjs/components/prism-markup.js';
|
|
8
|
+
import 'prismjs/components/prism-typescript.js';
|
|
9
|
+
import 'prismjs/plugins/toolbar/prism-toolbar.js';
|
|
10
|
+
import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
|
|
11
|
+
import './angular.js';
|
|
12
|
+
import { MarkedContentHighlighter } from '../marked-content-highlighter.js';
|
|
13
|
+
export class PrismHighlighter extends MarkedContentHighlighter {
|
|
14
|
+
augmentCodeBlock(code, lang) {
|
|
15
|
+
const classes = lang.startsWith('diff') && Prism.languages['diff']
|
|
16
|
+
? `language-${lang} diff-highlight`
|
|
17
|
+
: `language-${lang.replace('diff-', '')}`;
|
|
18
|
+
return `<pre class="${classes}"><code class="${classes}">${code}</code></pre>`;
|
|
19
|
+
}
|
|
20
|
+
getHighlightExtension() {
|
|
21
|
+
return markedHighlight({
|
|
22
|
+
async: true,
|
|
23
|
+
highlight: (code, lang) => {
|
|
24
|
+
let diff = lang?.startsWith('diff-');
|
|
25
|
+
lang = diff ? lang.replace('diff-', '') : lang || 'typescript';
|
|
26
|
+
if (diff && !Prism.languages['diff']) {
|
|
27
|
+
diff = false;
|
|
28
|
+
console.warn(`Notice:
|
|
29
|
+
---------------------------------------------------------------------------------------
|
|
30
|
+
The \`diff\` language and plugin are not available in the provided setup.
|
|
31
|
+
To enable it, add the following imports your \`main.ts\`:
|
|
32
|
+
import 'prismjs/components/prism-diff.js';
|
|
33
|
+
import 'prismjs/plugins/diff-highlight/prism-diff-highlight.js';
|
|
34
|
+
---------------------------------------------------------------------------------------
|
|
35
|
+
`);
|
|
36
|
+
}
|
|
37
|
+
if (!Prism.languages[lang]) {
|
|
38
|
+
if (lang !== 'mermaid') {
|
|
39
|
+
console.warn(`Notice:
|
|
40
|
+
---------------------------------------------------------------------------------------
|
|
41
|
+
The requested language '${lang}' is not available in the provided setup.
|
|
42
|
+
To enable it, add the following import your \`main.ts\`:
|
|
43
|
+
import 'prismjs/components/prism-${lang}.js';
|
|
44
|
+
---------------------------------------------------------------------------------------
|
|
45
|
+
`);
|
|
46
|
+
}
|
|
47
|
+
return code;
|
|
48
|
+
}
|
|
49
|
+
return Prism.highlight(code, diff ? Prism.languages['diff'] : Prism.languages[lang], lang);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20taGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvcHJpc20vcHJpc20taGlnaGxpZ2h0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sMENBQTBDLENBQUM7QUFDbEQsT0FBTyw4REFBOEQsQ0FBQztBQUN0RSxPQUFPLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUk1RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsd0JBQXdCO0lBQ25ELGdCQUFnQixDQUFDLElBQVksRUFBRSxJQUFZO1FBQ2xELE1BQU0sT0FBTyxHQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDaEQsQ0FBQyxDQUFDLFlBQVksSUFBSSxpQkFBaUI7WUFDbkMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLGVBQWUsT0FBTyxrQkFBa0IsT0FBTyxLQUFLLElBQUksZUFBZSxDQUFDO0lBQ2pGLENBQUM7SUFFUSxxQkFBcUI7UUFDNUIsT0FBTyxlQUFlLENBQUM7WUFDckIsS0FBSyxFQUFFLElBQUk7WUFDWCxTQUFTLEVBQUUsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksSUFBSSxHQUFHLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDO2dCQUUvRCxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDYixPQUFPLENBQUMsSUFBSSxDQUFDOzs7Ozs7O2FBT1YsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUM7OzhCQUVLLElBQUk7O3lDQUVPLElBQUk7O2VBRTlCLENBQUMsQ0FBQztvQkFDUCxDQUFDO29CQUNELE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUNwQixJQUFJLEVBQ0osSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUN0RCxJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ShikiHighlighter, ShikiHighlighterOptions, ShikiHighlightOptions } from './shiki-highlighter.js';
|
|
2
|
+
import { BundledLanguage } from 'shiki/langs';
|
|
3
|
+
export { ShikiHighlighter };
|
|
4
|
+
export interface WithShikiHighlighterOptions {
|
|
5
|
+
highlighter?: Partial<ShikiHighlighterOptions> & {
|
|
6
|
+
additionalLangs?: BundledLanguage[];
|
|
7
|
+
};
|
|
8
|
+
highlight?: ShikiHighlightOptions;
|
|
9
|
+
container?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function getShikiHighlighter({ highlighter, highlight, container, }?: WithShikiHighlighterOptions): ShikiHighlighter;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { defaultHighlighterOptions, ShikiHighlighter, } from './shiki-highlighter.js';
|
|
2
|
+
export { ShikiHighlighter };
|
|
3
|
+
export function getShikiHighlighter({ highlighter = {}, highlight = {}, container = '%s', } = {}) {
|
|
4
|
+
if (!highlighter.themes) {
|
|
5
|
+
if (highlight.theme) {
|
|
6
|
+
highlighter.themes = [highlight.theme];
|
|
7
|
+
}
|
|
8
|
+
else if (highlight.themes && typeof highlight.themes === 'object') {
|
|
9
|
+
highlighter.themes = Object.values(highlight.themes);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
highlighter.themes = defaultHighlighterOptions.themes;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (!highlighter.langs) {
|
|
16
|
+
highlighter.langs = defaultHighlighterOptions.langs;
|
|
17
|
+
}
|
|
18
|
+
if (highlighter.additionalLangs) {
|
|
19
|
+
highlighter.langs.push(...highlighter.additionalLangs);
|
|
20
|
+
delete highlighter.additionalLangs;
|
|
21
|
+
}
|
|
22
|
+
return new ShikiHighlighter(highlighter, highlight, container, !!highlighter.langs.includes('mermaid'));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FHakIsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztBQVU1QixNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFDbEMsV0FBVyxHQUFHLEVBQUUsRUFDaEIsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsSUFBSSxNQUNlLEVBQUU7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFhLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxJQUFJLGdCQUFnQixDQUN6QixXQUFzQyxFQUN0QyxTQUFTLEVBQ1QsU0FBUyxFQUNULENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDeEMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type BundledLanguage, type BundledTheme, type CodeOptionsMeta, type CodeOptionsMultipleThemes, type CodeOptionsSingleTheme, type CodeToHastOptionsCommon, getHighlighter } from 'shiki';
|
|
2
|
+
import { MarkedContentHighlighter } from '../marked-content-highlighter.js';
|
|
3
|
+
export type ShikiHighlighterOptions = Parameters<typeof getHighlighter>[0];
|
|
4
|
+
export type ShikiHighlightOptions = Partial<Omit<CodeToHastOptionsCommon<BundledLanguage>, 'lang'>> & CodeOptionsMeta & Partial<CodeOptionsSingleTheme<BundledTheme>> & Partial<CodeOptionsMultipleThemes<BundledTheme>>;
|
|
5
|
+
export declare const defaultHighlighterOptions: {
|
|
6
|
+
langs: string[];
|
|
7
|
+
themes: string[];
|
|
8
|
+
};
|
|
9
|
+
export declare class ShikiHighlighter extends MarkedContentHighlighter {
|
|
10
|
+
private highlighterOptions;
|
|
11
|
+
private highlightOptions;
|
|
12
|
+
private container;
|
|
13
|
+
private hasLoadMermaid;
|
|
14
|
+
private readonly highlighter;
|
|
15
|
+
constructor(highlighterOptions: ShikiHighlighterOptions, highlightOptions: ShikiHighlightOptions, container: string, hasLoadMermaid?: boolean);
|
|
16
|
+
getHighlightExtension(): MarkedExtension;
|
|
17
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import markedShiki from 'marked-shiki';
|
|
2
|
+
import { getHighlighter, } from 'shiki';
|
|
3
|
+
import { MarkedContentHighlighter } from '../marked-content-highlighter.js';
|
|
4
|
+
export const defaultHighlighterOptions = {
|
|
5
|
+
langs: [
|
|
6
|
+
'json',
|
|
7
|
+
'ts',
|
|
8
|
+
'tsx',
|
|
9
|
+
'js',
|
|
10
|
+
'jsx',
|
|
11
|
+
'html',
|
|
12
|
+
'css',
|
|
13
|
+
'angular-html',
|
|
14
|
+
'angular-ts',
|
|
15
|
+
],
|
|
16
|
+
themes: ['github-dark', 'github-light'],
|
|
17
|
+
};
|
|
18
|
+
export class ShikiHighlighter extends MarkedContentHighlighter {
|
|
19
|
+
constructor(highlighterOptions, highlightOptions, container, hasLoadMermaid = false) {
|
|
20
|
+
super();
|
|
21
|
+
this.highlighterOptions = highlighterOptions;
|
|
22
|
+
this.highlightOptions = highlightOptions;
|
|
23
|
+
this.container = container;
|
|
24
|
+
this.hasLoadMermaid = hasLoadMermaid;
|
|
25
|
+
this.highlighter = getHighlighter(this.highlighterOptions);
|
|
26
|
+
}
|
|
27
|
+
getHighlightExtension() {
|
|
28
|
+
return markedShiki({
|
|
29
|
+
container: this.container,
|
|
30
|
+
highlight: async (code, lang, props) => {
|
|
31
|
+
if (this.hasLoadMermaid && lang === 'mermaid') {
|
|
32
|
+
return `<pre class="mermaid">${code}</pre>`;
|
|
33
|
+
}
|
|
34
|
+
const { codeToHtml } = await this.highlighter;
|
|
35
|
+
return codeToHtml(code, Object.assign({
|
|
36
|
+
lang,
|
|
37
|
+
// required by `transformerMeta*`
|
|
38
|
+
meta: { __raw: props.join(' ') },
|
|
39
|
+
theme: 'github-dark',
|
|
40
|
+
}, this.highlightOptions));
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpa2ktaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvc2hpa2ktaGlnaGxpZ2h0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFPTCxjQUFjLEdBQ2YsTUFBTSxPQUFPLENBQUM7QUFFZixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVU1RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxLQUFLLEVBQUU7UUFDTCxNQUFNO1FBQ04sSUFBSTtRQUNKLEtBQUs7UUFDTCxJQUFJO1FBQ0osS0FBSztRQUNMLE1BQU07UUFDTixLQUFLO1FBQ0wsY0FBYztRQUNkLFlBQVk7S0FDYjtJQUNELE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUM7Q0FDeEMsQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx3QkFBd0I7SUFHNUQsWUFDVSxrQkFBMkMsRUFDM0MsZ0JBQXVDLEVBQ3ZDLFNBQWlCLEVBQ2pCLGlCQUFpQixLQUFLO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBTEEsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF5QjtRQUMzQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXVCO1FBQ3ZDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFOZixnQkFBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQVN2RSxDQUFDO0lBQ0QscUJBQXFCO1FBQ25CLE9BQU8sV0FBVyxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sd0JBQXdCLElBQUksUUFBUSxDQUFDO2dCQUM5QyxDQUFDO2dCQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzlDLE9BQU8sVUFBVSxDQUNmLElBQUksRUFDSixNQUFNLENBQUMsTUFBTSxDQUNYO29CQUNFLElBQUk7b0JBQ0osaUNBQWlDO29CQUNqQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEMsS0FBSyxFQUFFLGFBQWE7aUJBQ3JCLEVBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixDQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
import { Plugin } from 'vite';
|
|
2
|
-
|
|
2
|
+
import { WithShikiHighlighterOptions } from './content/shiki/index.js';
|
|
3
|
+
export declare function contentPlugin({ highlighter, shikiOptions, }?: {
|
|
4
|
+
highlighter?: 'shiki' | 'prism';
|
|
5
|
+
shikiOptions?: WithShikiHighlighterOptions;
|
|
6
|
+
}): Plugin[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
|
-
export function contentPlugin() {
|
|
2
|
+
export function contentPlugin({ highlighter, shikiOptions, } = { highlighter: 'prism' }) {
|
|
3
3
|
const cache = new Map();
|
|
4
|
+
let markedHighlighter;
|
|
4
5
|
return [
|
|
5
6
|
{
|
|
6
7
|
name: 'analogjs-content-frontmatter',
|
|
@@ -32,6 +33,39 @@ export function contentPlugin() {
|
|
|
32
33
|
return `export default ${content.attributes}`;
|
|
33
34
|
},
|
|
34
35
|
},
|
|
36
|
+
{
|
|
37
|
+
name: 'analogjs-content-file',
|
|
38
|
+
enforce: 'post',
|
|
39
|
+
async config() {
|
|
40
|
+
if (highlighter === 'shiki') {
|
|
41
|
+
const { getShikiHighlighter } = await import('./content/shiki/index.js');
|
|
42
|
+
markedHighlighter = getShikiHighlighter(shikiOptions);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const { getPrismHighlighter } = await import('./content/prism/index.js');
|
|
46
|
+
markedHighlighter = getPrismHighlighter();
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
async load(id) {
|
|
50
|
+
if (!id.includes('analog-content-file=true')) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const fm = await import('front-matter');
|
|
54
|
+
// The `default` property will be available in CommonJS environment, for instance,
|
|
55
|
+
// when running unit tests. It's safe to retrieve `default` first, since we still
|
|
56
|
+
// fallback to the original implementation.
|
|
57
|
+
const frontmatterFn = fm.default || fm;
|
|
58
|
+
const fileContents = readFileSync(id.split('?')[0], 'utf8');
|
|
59
|
+
const { body, frontmatter } = frontmatterFn(fileContents);
|
|
60
|
+
// parse markdown and highlight
|
|
61
|
+
const { MarkedSetupService } = await import('./content/marked-setup.service.js');
|
|
62
|
+
const markedSetupService = new MarkedSetupService(markedHighlighter);
|
|
63
|
+
const mdContent = (await markedSetupService
|
|
64
|
+
.getMarkedInstance()
|
|
65
|
+
.parse(body));
|
|
66
|
+
return `export default ${JSON.stringify(`---\n${frontmatter}\n---\n\n${mdContent}`)}`;
|
|
67
|
+
},
|
|
68
|
+
},
|
|
35
69
|
];
|
|
36
70
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFVdkMsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsRUFDRSxXQUFXLEVBQ1gsWUFBWSxNQUlWLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRTtJQUU1QixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUV6QyxJQUFJLGlCQUEyQyxDQUFDO0lBRWhELE9BQU87UUFDTDtZQUNFLElBQUksRUFBRSw4QkFBOEI7WUFDcEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDdEIsOERBQThEO2dCQUM5RCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyx5RUFBeUU7Z0JBQ3pFLDhFQUE4RTtnQkFDOUUsOEVBQThFO2dCQUM5RSwwQ0FBMEM7Z0JBQzFDLElBQUksYUFBYSxFQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDakMsT0FBTyxrQkFBa0IsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0RCxDQUFDO2dCQUVELE1BQU0sRUFBRSxHQUFRLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM3QyxrRkFBa0Y7Z0JBQ2xGLGlGQUFpRjtnQkFDakYsMkNBQTJDO2dCQUMzQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sT0FBTyxHQUFHO29CQUNkLElBQUk7b0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO2lCQUN2QyxDQUFDO2dCQUNGLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUV2QixPQUFPLGtCQUFrQixPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEQsQ0FBQztTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsS0FBSyxDQUFDLE1BQU07Z0JBQ1YsSUFBSSxXQUFXLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQzVCLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUMxQywwQkFBMEIsQ0FDM0IsQ0FBQztvQkFDRixpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUMxQywwQkFBMEIsQ0FDM0IsQ0FBQztvQkFDRixpQkFBaUIsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO2dCQUM1QyxDQUFDO1lBQ0gsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLEVBQUUsR0FBUSxNQUFNLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDN0Msa0ZBQWtGO2dCQUNsRixpRkFBaUY7Z0JBQ2pGLDJDQUEyQztnQkFDM0MsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFMUQsK0JBQStCO2dCQUMvQixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FDekMsbUNBQW1DLENBQ3BDLENBQUM7Z0JBQ0YsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3JFLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxrQkFBa0I7cUJBQ3hDLGlCQUFpQixFQUFFO3FCQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQXNCLENBQUM7Z0JBRXJDLE9BQU8sa0JBQWtCLElBQUksQ0FBQyxTQUFTLENBQ3JDLFFBQVEsV0FBVyxZQUFZLFNBQVMsRUFBRSxDQUMzQyxFQUFFLENBQUM7WUFDTixDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9
|
package/src/lib/options.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PluginOptions } from '@analogjs/vite-plugin-angular';
|
|
2
2
|
import type { NitroConfig, PrerenderRoute } from 'nitropack';
|
|
3
3
|
import type { SitemapConfig } from '@analogjs/vite-plugin-nitro';
|
|
4
|
+
import type { WithShikiHighlighterOptions } from './content/shiki/index.js';
|
|
4
5
|
export interface PrerenderOptions {
|
|
5
6
|
/**
|
|
6
7
|
* Add additional routes to prerender through crawling page links.
|
|
@@ -29,6 +30,10 @@ export interface Options {
|
|
|
29
30
|
jit?: boolean;
|
|
30
31
|
index?: string;
|
|
31
32
|
workspaceRoot?: string;
|
|
33
|
+
content?: {
|
|
34
|
+
highlighter: 'shiki' | 'prism';
|
|
35
|
+
shikiOptions?: WithShikiHighlighterOptions;
|
|
36
|
+
};
|
|
32
37
|
}
|
|
33
38
|
export interface PrerenderContentDir {
|
|
34
39
|
/**
|
|
@@ -23,7 +23,10 @@ export function platformPlugin(opts = {}) {
|
|
|
23
23
|
...viteNitroPlugin(platformOptions, nitroOptions),
|
|
24
24
|
(platformOptions.ssr ? ssrBuildPlugin() : false),
|
|
25
25
|
...routerPlugin(),
|
|
26
|
-
...contentPlugin(
|
|
26
|
+
...contentPlugin({
|
|
27
|
+
highlighter: platformOptions?.content?.highlighter,
|
|
28
|
+
shikiOptions: platformOptions?.content?.shikiOptions,
|
|
29
|
+
}),
|
|
27
30
|
...angular({
|
|
28
31
|
jit: platformOptions.jit,
|
|
29
32
|
workspaceRoot: platformOptions.workspaceRoot,
|
|
@@ -33,4 +36,4 @@ export function platformPlugin(opts = {}) {
|
|
|
33
36
|
clearClientPageEndpointsPlugin(),
|
|
34
37
|
];
|
|
35
38
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQixFQUFFO0lBQy9DLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRztRQUN4QyxHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsSUFBSTtLQUNSLENBQUM7SUFFRixJQUFJLFlBQVksR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDO0lBQzFDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxZQUFZLEdBQUc7WUFDYixHQUFHLFlBQVk7WUFDZixhQUFhLEVBQUU7Z0JBQ2IsU0FBUzthQUNWO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztRQUNqRCxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQVc7UUFDMUQsR0FBRyxZQUFZLEVBQUU7UUFDakIsR0FBRyxhQUFhLENBQUM7WUFDZixXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxXQUFXO1lBQ2xELFlBQVksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFlBQVk7U0FDckQsQ0FBQztRQUNGLEdBQUcsT0FBTyxDQUFDO1lBQ1QsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO1lBQ3hCLGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtZQUM1QyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7U0FDdEIsQ0FBQztRQUNGLGlCQUFpQixFQUFFO1FBQ25CLDhCQUE4QixFQUFFO0tBQ2pDLENBQUM7QUFDSixDQUFDIn0=
|