Skip to content

Commit 3d99da8

Browse files
[plugins] Automatically attach to the global Prism instance (#3987)
* Autolinker * Autoloader * Command Line * Copy to Clipboard * Custom Class * Data URI Highlight * Diff Highlight * Download Button * File Highlight * Filter Highlight All * Highlight Keywords * Inline Color * JSONP Highlight * Keep Markup * Line Highlight * Match Braces * Normalize Whitespace * Previewers * Show Invisibles * Show Language * Toolbar * Treeview Icons * Unescaped Markup * WPD
1 parent af1650d commit 3d99da8

File tree

24 files changed

+144
-26
lines changed

24 files changed

+144
-26
lines changed

src/plugins/autolinker/prism-autolinker.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import prism from '../../global';
12
import { tokenizeStrings } from '../../shared/tokenize-strings';
23
import type { PluginProto } from '../../types';
34

4-
export default {
5+
const Self = {
56
id: 'autolinker',
67
optional: 'diff-highlight',
78
effect (Prism) {
@@ -41,3 +42,7 @@ export default {
4142
});
4243
},
4344
} as PluginProto<'autolinker'>;
45+
46+
export default Self;
47+
48+
prism.components.add(Self);

src/plugins/autoloader/prism-autoloader.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import prism from '../../global';
12
import { getParentPre } from '../../shared/dom-util';
23
import { resolveAlias } from '../../shared/meta/alias-data';
34
import { toArray } from '../../util/iterables';
@@ -103,7 +104,7 @@ export class Autoloader {
103104
}
104105
}
105106

106-
export default {
107+
const Self = {
107108
id: 'autoloader',
108109
plugin (Prism) {
109110
return new Autoloader(Prism);
@@ -167,3 +168,7 @@ export default {
167168
});
168169
},
169170
} as PluginProto<'autoloader'>;
171+
172+
export default Self;
173+
174+
prism.components.add(Self);

src/plugins/command-line/prism-command-line.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import prism from '../../global';
12
import { getParentPre } from '../../shared/dom-util';
23
import { htmlEncode } from '../../shared/util';
34
import type { PluginProto } from '../../types';
@@ -12,7 +13,7 @@ interface CommandLineInfo {
1213
continuationLineIndicies?: Set<number>;
1314
}
1415

15-
export default {
16+
const Self = {
1617
id: 'command-line',
1718
effect (Prism) {
1819
return Prism.hooks.add({
@@ -209,3 +210,7 @@ export default {
209210
});
210211
},
211212
} as PluginProto<'command-line'>;
213+
214+
export default Self;
215+
216+
prism.components.add(Self);

src/plugins/copy-to-clipboard/prism-copy-to-clipboard.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import prism from '../../global';
12
import toolbar from '../toolbar/prism-toolbar';
23
import type { PluginProto } from '../../types';
34
import type { Toolbar } from '../toolbar/prism-toolbar';
@@ -119,7 +120,7 @@ function getSettings (startElement: Element) {
119120
return settings;
120121
}
121122

122-
export default {
123+
const Self = {
123124
id: 'copy-to-clipboard',
124125
require: toolbar,
125126
effect (Prism) {
@@ -171,3 +172,7 @@ export default {
171172
});
172173
},
173174
} as PluginProto<'copy-to-clipboard'>;
175+
176+
export default Self;
177+
178+
prism.components.add(Self);

src/plugins/custom-class/prism-custom-class.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import prism from '../../global';
12
import type { PluginProto } from '../../types';
23

34
type ClassMapper = (className: string) => string;
@@ -47,7 +48,7 @@ export class CustomClass {
4748
}
4849
}
4950

50-
export default {
51+
const Self = {
5152
id: 'custom-class',
5253
plugin () {
5354
return new CustomClass();
@@ -79,3 +80,7 @@ export default {
7980
});
8081
},
8182
} as PluginProto<'custom-class'>;
83+
84+
export default Self;
85+
86+
prism.components.add(Self);

src/plugins/data-uri-highlight/prism-data-uri-highlight.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import prism from '../../global';
12
import { tokenizeStrings } from '../../shared/tokenize-strings';
23
import type { PluginProto } from '../../types';
34

4-
export default {
5+
const Self = {
56
id: 'data-uri-highlight',
67
optional: 'diff-highlight',
78
effect (Prism) {
@@ -40,3 +41,7 @@ export default {
4041
});
4142
},
4243
} as PluginProto<'data-uri-highlight'>;
44+
45+
export default Self;
46+
47+
prism.components.add(Self);

src/plugins/diff-highlight/prism-diff-highlight.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { getTextContent, Token } from '../../core/classes/token';
2+
import prism from '../../global';
23
import diff, { PREFIXES } from '../../languages/diff';
34
import type { HookEnv } from '../../core/classes/hooks';
45
import type { TokenStream } from '../../core/classes/token';
56
import type { PluginProto } from '../../types';
67

7-
export default {
8+
const Self = {
89
id: 'diff-highlight',
910
require: diff,
1011
effect (Prism) {
@@ -117,3 +118,7 @@ export default {
117118
});
118119
},
119120
} as PluginProto<'diff-highlight'>;
121+
122+
export default Self;
123+
124+
prism.components.add(Self);

src/plugins/download-button/prism-download-button.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import prism from '../../global';
12
import { getParentPre } from '../../shared/dom-util';
23
import toolbar from '../toolbar/prism-toolbar';
34
import type { PluginProto } from '../../types';
45
import type { Toolbar } from '../toolbar/prism-toolbar';
56

6-
export default {
7+
const Self = {
78
id: 'download-button',
89
require: toolbar,
910
effect (Prism) {
@@ -28,3 +29,7 @@ export default {
2829
});
2930
},
3031
} as PluginProto<'download-button'>;
32+
33+
export default Self;
34+
35+
prism.components.add(Self);

src/plugins/file-highlight/prism-file-highlight.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import prism from '../../global';
12
import { setLanguage } from '../../shared/dom-util';
23
import type { Prism } from '../../core';
34
import type { PluginProto } from '../../types';
@@ -94,7 +95,7 @@ export class FileHighlight {
9495
}
9596
}
9697

97-
export default {
98+
const Self = {
9899
id: 'file-highlight',
99100
plugin (Prism) {
100101
return new FileHighlight(Prism);
@@ -215,3 +216,7 @@ export default {
215216
});
216217
},
217218
} as PluginProto<'file-highlight'>;
219+
220+
export default Self;
221+
222+
prism.components.add(Self);

src/plugins/filter-highlight-all/prism-filter-highlight-all.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import prism from '../../global';
12
import { getLanguage } from '../../shared/dom-util';
23
import type { PluginProto } from '../../types';
34

@@ -72,7 +73,7 @@ export class FilterHighlightAll {
7273
}
7374
}
7475

75-
export default {
76+
const Self = {
7677
id: 'filter-highlight-all',
7778
plugin (Prism) {
7879
const config = new FilterHighlightAll();
@@ -108,3 +109,7 @@ export default {
108109
});
109110
},
110111
} as PluginProto<'filter-highlight-all'>;
112+
113+
export default Self;
114+
115+
prism.components.add(Self);

0 commit comments

Comments
 (0)