@analogjs/content 1.6.1-beta.4 → 1.6.2-beta.1

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.
@@ -1,8 +1,11 @@
1
1
  import { ContentRenderer, NoopContentRenderer } from '@analogjs/content';
2
+ import { PrismHighlighter } from './lib/prism-highlighter';
2
3
  import 'prismjs';
3
- import 'prismjs/plugins/toolbar/prism-toolbar.js';
4
- import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
4
+ import 'prismjs/plugins/toolbar/prism-toolbar';
5
+ import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';
6
+ import './lib/prism/angular';
7
+ export { PrismHighlighter };
5
8
  export function withPrismHighlighter() {
6
9
  return [{ provide: ContentRenderer, useClass: NoopContentRenderer }];
7
10
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZW50L3ByaXNtLWhpZ2hsaWdodGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekUsT0FBTyxTQUFTLENBQUM7QUFDakIsT0FBTywwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLDhEQUE4RCxDQUFDO0FBRXRFLE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50UmVuZGVyZXIsIE5vb3BDb250ZW50UmVuZGVyZXIgfSBmcm9tICdAYW5hbG9nanMvY29udGVudCc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICdwcmlzbWpzJztcbmltcG9ydCAncHJpc21qcy9wbHVnaW5zL3Rvb2xiYXIvcHJpc20tdG9vbGJhci5qcyc7XG5pbXBvcnQgJ3ByaXNtanMvcGx1Z2lucy9jb3B5LXRvLWNsaXBib2FyZC9wcmlzbS1jb3B5LXRvLWNsaXBib2FyZC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUHJpc21IaWdobGlnaHRlcigpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFt7IHByb3ZpZGU6IENvbnRlbnRSZW5kZXJlciwgdXNlQ2xhc3M6IE5vb3BDb250ZW50UmVuZGVyZXIgfV07XG59XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZW50L3ByaXNtLWhpZ2hsaWdodGVyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFM0QsT0FBTyxTQUFTLENBQUM7QUFDakIsT0FBTyx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLDJEQUEyRCxDQUFDO0FBQ25FLE9BQU8scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUM7QUFFNUIsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRSZW5kZXJlciwgTm9vcENvbnRlbnRSZW5kZXJlciB9IGZyb20gJ0BhbmFsb2dqcy9jb250ZW50JztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmlzbUhpZ2hsaWdodGVyIH0gZnJvbSAnLi9saWIvcHJpc20taGlnaGxpZ2h0ZXInO1xuXG5pbXBvcnQgJ3ByaXNtanMnO1xuaW1wb3J0ICdwcmlzbWpzL3BsdWdpbnMvdG9vbGJhci9wcmlzbS10b29sYmFyJztcbmltcG9ydCAncHJpc21qcy9wbHVnaW5zL2NvcHktdG8tY2xpcGJvYXJkL3ByaXNtLWNvcHktdG8tY2xpcGJvYXJkJztcbmltcG9ydCAnLi9saWIvcHJpc20vYW5ndWxhcic7XG5cbmV4cG9ydCB7IFByaXNtSGlnaGxpZ2h0ZXIgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhQcmlzbUhpZ2hsaWdodGVyKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW3sgcHJvdmlkZTogQ29udGVudFJlbmRlcmVyLCB1c2VDbGFzczogTm9vcENvbnRlbnRSZW5kZXJlciB9XTtcbn1cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRlbnQvcHJpc20taGlnaGxpZ2h0ZXIvc3JjL2xpYi9wcmlzbS9hbmd1bGFyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxDQUFDO0lBQ0MsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxPQUFPO0lBQ1QsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUN6RCxPQUFPLEVBQ0wscUVBQXFFO1FBQ3ZFLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLG9DQUFvQztZQUM3QyxVQUFVLEVBQUUsSUFBSTtTQUNqQjtRQUNELE9BQU8sRUFBRTtZQUNQLE9BQU8sRUFDTCxxRUFBcUU7U0FDeEU7UUFDRCxRQUFRLEVBQ04sbUdBQW1HO0tBQ3RHLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICBpZiAodHlwZW9mIFByaXNtID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIFByaXNtLmxhbmd1YWdlcy5hbmd1bGFyID0gUHJpc20ubGFuZ3VhZ2VzLmV4dGVuZCgnbWFya3VwJywge1xuICAgIGtleXdvcmQ6XG4gICAgICAvKD86QGlmfEBmb3J8QHN3aXRjaHxAZGVmZXJ8QGxvYWRpbmd8QGVycm9yfEBwbGFjZWhvbGRlcnxwcmVmZXRjaClcXGIvLFxuICAgIG9wZXJhdG9yOiAvXFxiKD86b258d2hlbilcXGIvLFxuICAgIG51bWJlcjoge1xuICAgICAgcGF0dGVybjogL1xcYihtaW5pbXVtfGFmdGVyKVxccytcXGQrKD86c3xtc3wpL2dpLFxuICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICB9LFxuICAgIGJ1aWx0aW46IHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIC9cXGIoPzp2aWV3cG9ydHx0aW1lcnxtaW5pbXVtfGFmdGVyfGhvdmVyfGlkbGV8aW1tZWRpYXRlfGludGVyYWN0aW9uKS8sXG4gICAgfSxcbiAgICBmdW5jdGlvbjpcbiAgICAgIC8jPyg/IVxccylbXyRhLXpBLVpcXHhBMC1cXHVGRkZGXSg/Oig/IVxccylbJFxcd1xceEEwLVxcdUZGRkZdKSooPz1cXHMqKD86XFwuXFxzKig/OmFwcGx5fGJpbmR8Y2FsbClcXHMqKT9cXCgpLyxcbiAgfSk7XG5cbiAgUHJpc20ubGFuZ3VhZ2VzLm5nID0gUHJpc20ubGFuZ3VhZ2VzLmFuZ3VsYXI7XG59KSgpO1xuIl19
@@ -0,0 +1,51 @@
1
+ import { MarkedContentHighlighter } from '@analogjs/content';
2
+ import { Injectable } from '@angular/core';
3
+ import { markedHighlight } from 'marked-highlight';
4
+ import * as i0 from "@angular/core";
5
+ export class PrismHighlighter extends MarkedContentHighlighter {
6
+ augmentCodeBlock(code, lang) {
7
+ const classes = lang.startsWith('diff') && Prism.languages['diff']
8
+ ? `language-${lang} diff-highlight`
9
+ : `language-${lang.replace('diff-', '')}`;
10
+ return `<pre class="${classes}"><code class="${classes}">${code}</code></pre>`;
11
+ }
12
+ getHighlightExtension() {
13
+ return markedHighlight({
14
+ async: true,
15
+ highlight: (code, lang) => {
16
+ let diff = lang?.startsWith('diff-');
17
+ lang = diff ? lang.replace('diff-', '') : lang || 'typescript';
18
+ if (diff && !Prism.languages['diff']) {
19
+ diff = false;
20
+ console.warn(`Notice:
21
+ ---------------------------------------------------------------------------------------
22
+ The \`diff\` language and plugin are not available in the provided setup.
23
+ To enable it, add the following imports your \`app.config.ts\`:
24
+ import 'prismjs/components/prism-diff';
25
+ import 'prismjs/plugins/diff-highlight/prism-diff-highlight';
26
+ ---------------------------------------------------------------------------------------
27
+ `);
28
+ }
29
+ if (!Prism.languages[lang]) {
30
+ if (lang !== 'mermaid') {
31
+ console.warn(`Notice:
32
+ ---------------------------------------------------------------------------------------
33
+ The requested language '${lang}' is not available in the provided setup.
34
+ To enable it, add the following import your \`app.config.ts\`:
35
+ import 'prismjs/components/prism-${lang}';
36
+ ---------------------------------------------------------------------------------------
37
+ `);
38
+ }
39
+ return code;
40
+ }
41
+ return Prism.highlight(code, diff ? Prism.languages['diff'] : Prism.languages[lang], lang);
42
+ },
43
+ });
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrismHighlighter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
46
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrismHighlighter }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrismHighlighter, decorators: [{
49
+ type: Injectable
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20taGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZW50L3ByaXNtLWhpZ2hsaWdodGVyL3NyYy9saWIvcHJpc20taGlnaGxpZ2h0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBS25ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx3QkFBd0I7SUFDbkQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDbEQsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNoRCxDQUFDLENBQUMsWUFBWSxJQUFJLGlCQUFpQjtZQUNuQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sZUFBZSxPQUFPLGtCQUFrQixPQUFPLEtBQUssSUFBSSxlQUFlLENBQUM7SUFDakYsQ0FBQztJQUVRLHFCQUFxQjtRQUM1QixPQUFPLGVBQWUsQ0FBQztZQUNyQixLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUM7Z0JBRS9ELElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNyQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUM7Ozs7Ozs7YUFPVixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzQixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQzs7OEJBRUssSUFBSTs7eUNBRU8sSUFBSTs7ZUFFOUIsQ0FBQyxDQUFDO29CQUNQLENBQUM7b0JBQ0QsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQ3BCLElBQUksRUFDSixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ3RELElBQUksQ0FDTCxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBL0NVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFya2VkQ29udGVudEhpZ2hsaWdodGVyIH0gZnJvbSAnQGFuYWxvZ2pzL2NvbnRlbnQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFya2VkSGlnaGxpZ2h0IH0gZnJvbSAnbWFya2VkLWhpZ2hsaWdodCc7XG5cbmRlY2xhcmUgY29uc3QgUHJpc206IHR5cGVvZiBpbXBvcnQoJ3ByaXNtanMnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByaXNtSGlnaGxpZ2h0ZXIgZXh0ZW5kcyBNYXJrZWRDb250ZW50SGlnaGxpZ2h0ZXIge1xuICBvdmVycmlkZSBhdWdtZW50Q29kZUJsb2NrKGNvZGU6IHN0cmluZywgbGFuZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbGFzc2VzID1cbiAgICAgIGxhbmcuc3RhcnRzV2l0aCgnZGlmZicpICYmIFByaXNtLmxhbmd1YWdlc1snZGlmZiddXG4gICAgICAgID8gYGxhbmd1YWdlLSR7bGFuZ30gZGlmZi1oaWdobGlnaHRgXG4gICAgICAgIDogYGxhbmd1YWdlLSR7bGFuZy5yZXBsYWNlKCdkaWZmLScsICcnKX1gO1xuICAgIHJldHVybiBgPHByZSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj48Y29kZSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke2NvZGV9PC9jb2RlPjwvcHJlPmA7XG4gIH1cblxuICBvdmVycmlkZSBnZXRIaWdobGlnaHRFeHRlbnNpb24oKSB7XG4gICAgcmV0dXJuIG1hcmtlZEhpZ2hsaWdodCh7XG4gICAgICBhc3luYzogdHJ1ZSxcbiAgICAgIGhpZ2hsaWdodDogKGNvZGU6IHN0cmluZywgbGFuZzogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBkaWZmID0gbGFuZz8uc3RhcnRzV2l0aCgnZGlmZi0nKTtcbiAgICAgICAgbGFuZyA9IGRpZmYgPyBsYW5nLnJlcGxhY2UoJ2RpZmYtJywgJycpIDogbGFuZyB8fCAndHlwZXNjcmlwdCc7XG5cbiAgICAgICAgaWYgKGRpZmYgJiYgIVByaXNtLmxhbmd1YWdlc1snZGlmZiddKSB7XG4gICAgICAgICAgZGlmZiA9IGZhbHNlO1xuICAgICAgICAgIGNvbnNvbGUud2FybihgTm90aWNlOlxuICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFRoZSBcXGBkaWZmXFxgIGxhbmd1YWdlIGFuZCBwbHVnaW4gYXJlIG5vdCBhdmFpbGFibGUgaW4gdGhlIHByb3ZpZGVkIHNldHVwLlxuICAgIFRvIGVuYWJsZSBpdCwgYWRkIHRoZSBmb2xsb3dpbmcgaW1wb3J0cyB5b3VyIFxcYGFwcC5jb25maWcudHNcXGA6XG4gICAgICBpbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1kaWZmJztcbiAgICAgIGltcG9ydCAncHJpc21qcy9wbHVnaW5zL2RpZmYtaGlnaGxpZ2h0L3ByaXNtLWRpZmYtaGlnaGxpZ2h0JztcbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFQcmlzbS5sYW5ndWFnZXNbbGFuZ10pIHtcbiAgICAgICAgICBpZiAobGFuZyAhPT0gJ21lcm1haWQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYE5vdGljZTpcbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBUaGUgcmVxdWVzdGVkIGxhbmd1YWdlICcke2xhbmd9JyBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBwcm92aWRlZCBzZXR1cC5cbiAgICBUbyBlbmFibGUgaXQsIGFkZCB0aGUgZm9sbG93aW5nIGltcG9ydCB5b3VyIFxcYGFwcC5jb25maWcudHNcXGA6XG4gICAgICBpbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS0ke2xhbmd9JztcbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcmlzbS5oaWdobGlnaHQoXG4gICAgICAgICAgY29kZSxcbiAgICAgICAgICBkaWZmID8gUHJpc20ubGFuZ3VhZ2VzWydkaWZmJ10gOiBQcmlzbS5sYW5ndWFnZXNbbGFuZ10sXG4gICAgICAgICAgbGFuZ1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,7 +1,77 @@
1
- import { ContentRenderer, NoopContentRenderer } from '@analogjs/content';
1
+ import { MarkedContentHighlighter, ContentRenderer, NoopContentRenderer } from '@analogjs/content';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable } from '@angular/core';
4
+ import { markedHighlight } from 'marked-highlight';
2
5
  import 'prismjs';
3
- import 'prismjs/plugins/toolbar/prism-toolbar.js';
4
- import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
6
+ import 'prismjs/plugins/toolbar/prism-toolbar';
7
+ import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';
8
+
9
+ class PrismHighlighter extends MarkedContentHighlighter {
10
+ augmentCodeBlock(code, lang) {
11
+ const classes = lang.startsWith('diff') && Prism.languages['diff']
12
+ ? `language-${lang} diff-highlight`
13
+ : `language-${lang.replace('diff-', '')}`;
14
+ return `<pre class="${classes}"><code class="${classes}">${code}</code></pre>`;
15
+ }
16
+ getHighlightExtension() {
17
+ return markedHighlight({
18
+ async: true,
19
+ highlight: (code, lang) => {
20
+ let diff = lang?.startsWith('diff-');
21
+ lang = diff ? lang.replace('diff-', '') : lang || 'typescript';
22
+ if (diff && !Prism.languages['diff']) {
23
+ diff = false;
24
+ console.warn(`Notice:
25
+ ---------------------------------------------------------------------------------------
26
+ The \`diff\` language and plugin are not available in the provided setup.
27
+ To enable it, add the following imports your \`app.config.ts\`:
28
+ import 'prismjs/components/prism-diff';
29
+ import 'prismjs/plugins/diff-highlight/prism-diff-highlight';
30
+ ---------------------------------------------------------------------------------------
31
+ `);
32
+ }
33
+ if (!Prism.languages[lang]) {
34
+ if (lang !== 'mermaid') {
35
+ console.warn(`Notice:
36
+ ---------------------------------------------------------------------------------------
37
+ The requested language '${lang}' is not available in the provided setup.
38
+ To enable it, add the following import your \`app.config.ts\`:
39
+ import 'prismjs/components/prism-${lang}';
40
+ ---------------------------------------------------------------------------------------
41
+ `);
42
+ }
43
+ return code;
44
+ }
45
+ return Prism.highlight(code, diff ? Prism.languages['diff'] : Prism.languages[lang], lang);
46
+ },
47
+ });
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrismHighlighter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
50
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrismHighlighter }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: PrismHighlighter, decorators: [{
53
+ type: Injectable
54
+ }] });
55
+
56
+ "use strict";
57
+ (function () {
58
+ if (typeof Prism === 'undefined') {
59
+ return;
60
+ }
61
+ Prism.languages.angular = Prism.languages.extend('markup', {
62
+ keyword: /(?:@if|@for|@switch|@defer|@loading|@error|@placeholder|prefetch)\b/,
63
+ operator: /\b(?:on|when)\b/,
64
+ number: {
65
+ pattern: /\b(minimum|after)\s+\d+(?:s|ms|)/gi,
66
+ lookbehind: true,
67
+ },
68
+ builtin: {
69
+ pattern: /\b(?:viewport|timer|minimum|after|hover|idle|immediate|interaction)/,
70
+ },
71
+ function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
72
+ });
73
+ Prism.languages.ng = Prism.languages.angular;
74
+ })();
5
75
 
6
76
  function withPrismHighlighter() {
7
77
  return [{ provide: ContentRenderer, useClass: NoopContentRenderer }];
@@ -11,5 +81,5 @@ function withPrismHighlighter() {
11
81
  * Generated bundle index. Do not edit.
12
82
  */
13
83
 
14
- export { withPrismHighlighter };
84
+ export { PrismHighlighter, withPrismHighlighter };
15
85
  //# sourceMappingURL=analogjs-content-prism-highlighter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"analogjs-content-prism-highlighter.mjs","sources":["../../../../packages/content/prism-highlighter/src/index.ts","../../../../packages/content/prism-highlighter/src/analogjs-content-prism-highlighter.ts"],"sourcesContent":["import { ContentRenderer, NoopContentRenderer } from '@analogjs/content';\nimport { Provider } from '@angular/core';\nimport 'prismjs';\nimport 'prismjs/plugins/toolbar/prism-toolbar.js';\nimport 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';\n\nexport function withPrismHighlighter(): Provider[] {\n return [{ provide: ContentRenderer, useClass: NoopContentRenderer }];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;SAMgB,oBAAoB,GAAA;IAClC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACvE;;ACRA;;AAEG;;;;"}
1
+ {"version":3,"file":"analogjs-content-prism-highlighter.mjs","sources":["../../../../packages/content/prism-highlighter/src/lib/prism-highlighter.ts","../../../../packages/content/prism-highlighter/src/lib/prism/angular.js","../../../../packages/content/prism-highlighter/src/index.ts","../../../../packages/content/prism-highlighter/src/analogjs-content-prism-highlighter.ts"],"sourcesContent":["import { MarkedContentHighlighter } from '@analogjs/content';\nimport { Injectable } from '@angular/core';\nimport { markedHighlight } from 'marked-highlight';\n\ndeclare const Prism: typeof import('prismjs');\n\n@Injectable()\nexport class PrismHighlighter extends MarkedContentHighlighter {\n override augmentCodeBlock(code: string, lang: string): string {\n const classes =\n lang.startsWith('diff') && Prism.languages['diff']\n ? `language-${lang} diff-highlight`\n : `language-${lang.replace('diff-', '')}`;\n return `<pre class=\"${classes}\"><code class=\"${classes}\">${code}</code></pre>`;\n }\n\n override getHighlightExtension() {\n return markedHighlight({\n async: true,\n highlight: (code: string, lang: string) => {\n let diff = lang?.startsWith('diff-');\n lang = diff ? lang.replace('diff-', '') : lang || 'typescript';\n\n if (diff && !Prism.languages['diff']) {\n diff = false;\n console.warn(`Notice:\n ---------------------------------------------------------------------------------------\n The \\`diff\\` language and plugin are not available in the provided setup.\n To enable it, add the following imports your \\`app.config.ts\\`:\n import 'prismjs/components/prism-diff';\n import 'prismjs/plugins/diff-highlight/prism-diff-highlight';\n ---------------------------------------------------------------------------------------\n `);\n }\n\n if (!Prism.languages[lang]) {\n if (lang !== 'mermaid') {\n console.warn(`Notice:\n ---------------------------------------------------------------------------------------\n The requested language '${lang}' is not available in the provided setup.\n To enable it, add the following import your \\`app.config.ts\\`:\n import 'prismjs/components/prism-${lang}';\n ---------------------------------------------------------------------------------------\n `);\n }\n return code;\n }\n return Prism.highlight(\n code,\n diff ? Prism.languages['diff'] : Prism.languages[lang],\n lang\n );\n },\n });\n }\n}\n","(function () {\n if (typeof Prism === 'undefined') {\n return;\n }\n\n Prism.languages.angular = Prism.languages.extend('markup', {\n keyword:\n /(?:@if|@for|@switch|@defer|@loading|@error|@placeholder|prefetch)\\b/,\n operator: /\\b(?:on|when)\\b/,\n number: {\n pattern: /\\b(minimum|after)\\s+\\d+(?:s|ms|)/gi,\n lookbehind: true,\n },\n builtin: {\n pattern:\n /\\b(?:viewport|timer|minimum|after|hover|idle|immediate|interaction)/,\n },\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n });\n\n Prism.languages.ng = Prism.languages.angular;\n})();\n","import { ContentRenderer, NoopContentRenderer } from '@analogjs/content';\nimport { Provider } from '@angular/core';\nimport { PrismHighlighter } from './lib/prism-highlighter';\n\nimport 'prismjs';\nimport 'prismjs/plugins/toolbar/prism-toolbar';\nimport 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';\nimport './lib/prism/angular';\n\nexport { PrismHighlighter };\n\nexport function withPrismHighlighter(): Provider[] {\n return [{ provide: ContentRenderer, useClass: NoopContentRenderer }];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAOM,MAAO,gBAAiB,SAAQ,wBAAwB,CAAA;IACnD,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAA;AAClD,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;cAC9C,CAAY,SAAA,EAAA,IAAI,CAAiB,eAAA,CAAA;cACjC,CAAY,SAAA,EAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAE,CAAC;AAC9C,QAAA,OAAO,eAAe,OAAO,CAAA,eAAA,EAAkB,OAAO,CAAK,EAAA,EAAA,IAAI,eAAe,CAAC;KAChF;IAEQ,qBAAqB,GAAA;AAC5B,QAAA,OAAO,eAAe,CAAC;AACrB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,KAAI;gBACxC,IAAI,IAAI,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AACrC,gBAAA,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC;gBAE/D,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACpC,IAAI,GAAG,KAAK,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,CAAA;;;;;;;AAOV,YAAA,CAAA,CAAC,CAAC;iBACN;gBAED,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC1B,oBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,OAAO,CAAC,IAAI,CAAC,CAAA;;8BAEK,IAAI,CAAA;;yCAEO,IAAI,CAAA;;AAE9B,cAAA,CAAA,CAAC,CAAC;qBACN;AACD,oBAAA,OAAO,IAAI,CAAC;iBACb;AACD,gBAAA,OAAO,KAAK,CAAC,SAAS,CACpB,IAAI,EACJ,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EACtD,IAAI,CACL,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACJ;8GA/CU,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;;ACNX,CAAC,YAAA;AACC,IAAA,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC,OAAO;KACR;AAED,IAAA,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;AACzD,QAAA,OAAO,EACL,qEAAqE;AACvE,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,oCAAoC;AAC7C,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EACL,qEAAqE;AACxE,SAAA;AACD,QAAA,QAAQ,EACN,mGAAmG;AACtG,KAAA,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AAC/C,CAAC,GAAG;;SCXY,oBAAoB,GAAA;IAClC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACvE;;ACbA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/content",
3
- "version": "1.6.1-beta.4",
3
+ "version": "1.6.2-beta.1",
4
4
  "description": "Content Rendering for Analog",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -1,5 +1,8 @@
1
1
  import { Provider } from '@angular/core';
2
+ import { PrismHighlighter } from './lib/prism-highlighter';
2
3
  import 'prismjs';
3
- import 'prismjs/plugins/toolbar/prism-toolbar.js';
4
- import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
4
+ import 'prismjs/plugins/toolbar/prism-toolbar';
5
+ import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard';
6
+ import './lib/prism/angular';
7
+ export { PrismHighlighter };
5
8
  export declare function withPrismHighlighter(): Provider[];
File without changes
@@ -0,0 +1,8 @@
1
+ import { MarkedContentHighlighter } from '@analogjs/content';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PrismHighlighter extends MarkedContentHighlighter {
4
+ augmentCodeBlock(code: string, lang: string): string;
5
+ getHighlightExtension(): import("marked").marked.MarkedExtension;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<PrismHighlighter, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<PrismHighlighter>;
8
+ }