@diplodoc/transform 4.35.0-beta6 → 4.36.0

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.
Files changed (67) hide show
  1. package/dist/css/_yfm-only.css +7 -7
  2. package/dist/css/_yfm-only.css.map +3 -3
  3. package/dist/css/_yfm-only.min.css +1 -1
  4. package/dist/css/_yfm-only.min.css.map +3 -3
  5. package/dist/css/base.css.map +2 -2
  6. package/dist/css/base.min.css.map +2 -2
  7. package/dist/css/print.css.map +2 -2
  8. package/dist/css/yfm.css +7 -7
  9. package/dist/css/yfm.css.map +3 -3
  10. package/dist/css/yfm.min.css +1 -1
  11. package/dist/css/yfm.min.css.map +3 -3
  12. package/dist/js/base.js +2 -2
  13. package/dist/js/base.js.map +1 -1
  14. package/dist/js/base.min.js +1 -1
  15. package/dist/js/base.min.js.map +2 -2
  16. package/dist/js/yfm.js +5 -5
  17. package/dist/js/yfm.js.map +1 -1
  18. package/dist/js/yfm.min.js +1 -1
  19. package/dist/js/yfm.min.js.map +2 -2
  20. package/lib/md.d.ts +1 -0
  21. package/lib/md.js +3 -1
  22. package/lib/md.js.map +1 -1
  23. package/lib/plugins/anchors/index.d.ts +1 -0
  24. package/lib/plugins/anchors/index.js +5 -3
  25. package/lib/plugins/anchors/index.js.map +1 -1
  26. package/lib/plugins/images/index.js +1 -1
  27. package/lib/plugins/images/index.js.map +1 -1
  28. package/lib/plugins/imsize/const.d.ts +2 -1
  29. package/lib/plugins/imsize/const.js +1 -0
  30. package/lib/plugins/imsize/const.js.map +1 -1
  31. package/lib/plugins/imsize/index.d.ts +3 -2
  32. package/lib/plugins/imsize/index.js +2 -2
  33. package/lib/plugins/imsize/index.js.map +1 -1
  34. package/lib/plugins/imsize/plugin.d.ts +4 -1
  35. package/lib/plugins/imsize/plugin.js +26 -1
  36. package/lib/plugins/imsize/plugin.js.map +1 -1
  37. package/lib/plugins/notes/index.js +5 -10
  38. package/lib/plugins/notes/index.js.map +1 -1
  39. package/lib/plugins/video/const.d.ts +0 -5
  40. package/lib/plugins/video/const.js.map +1 -1
  41. package/lib/plugins/video/index.js +8 -3
  42. package/lib/plugins/video/index.js.map +1 -1
  43. package/lib/plugins/video/parsers.js +8 -8
  44. package/lib/plugins/video/parsers.js.map +1 -1
  45. package/lib/plugins/video/types.d.ts +5 -0
  46. package/lib/sanitize.d.ts +2 -4
  47. package/lib/sanitize.js +4 -1
  48. package/lib/sanitize.js.map +1 -1
  49. package/lib/typings.d.ts +4 -0
  50. package/package.json +1 -1
  51. package/src/scss/_note.scss +2 -3
  52. package/src/transform/md.ts +3 -1
  53. package/src/transform/plugins/anchors/index.ts +13 -4
  54. package/src/transform/plugins/images/index.ts +1 -1
  55. package/src/transform/plugins/imsize/const.ts +1 -0
  56. package/src/transform/plugins/imsize/index.ts +4 -4
  57. package/src/transform/plugins/imsize/plugin.ts +32 -1
  58. package/src/transform/plugins/notes/index.ts +8 -6
  59. package/src/transform/plugins/video/const.ts +0 -7
  60. package/src/transform/plugins/video/index.ts +12 -7
  61. package/src/transform/plugins/video/parsers.ts +10 -9
  62. package/src/transform/plugins/video/types.ts +7 -0
  63. package/src/transform/sanitize.ts +14 -3
  64. package/src/transform/typings.ts +3 -0
  65. package/lib/plugins/csp.d.ts +0 -6
  66. package/lib/plugins/csp.js +0 -26
  67. package/lib/plugins/csp.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/index.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ function rutubeParser(url) {
51
51
  }
52
52
  exports.rutubeParser = rutubeParser;
53
53
  const urlParser = (url) => url;
54
- const supportedServices = Object.entries({
54
+ const supportedServices = {
55
55
  osf: {
56
56
  extract: mfrParser,
57
57
  },
@@ -73,33 +73,33 @@ const supportedServices = Object.entries({
73
73
  vk: {
74
74
  extract: vkParser,
75
75
  csp: {
76
- 'frame-src': 'https://vk.com/',
76
+ 'frame-src': ['https://vk.com/'],
77
77
  },
78
78
  },
79
79
  rutube: {
80
80
  extract: rutubeParser,
81
81
  csp: {
82
- 'frame-src': 'https://rutube.ru/play/embed/',
82
+ 'frame-src': ['https://rutube.ru/play/embed/'],
83
83
  },
84
84
  },
85
85
  url: {
86
86
  extract: urlParser,
87
87
  },
88
- });
88
+ };
89
89
  function parseVideoUrl(service, url) {
90
90
  let videoID = '';
91
91
  const normalizedService = service.toLowerCase();
92
- const parsed = supportedServices.find(([name]) => name === normalizedService);
92
+ const parsed = supportedServices[normalizedService];
93
93
  if (!parsed) {
94
94
  return false;
95
95
  }
96
- const [, videoParser] = parsed;
97
- videoID = videoParser.extract(url);
96
+ const { extract, csp } = parsed;
97
+ videoID = extract(url);
98
98
  // If the videoID field is empty, regex currently make it the close parenthesis.
99
99
  if (videoID === ')') {
100
100
  videoID = '';
101
101
  }
102
- return [videoID, videoParser.csp];
102
+ return [videoID, csp];
103
103
  }
104
104
  exports.parseVideoUrl = parseVideoUrl;
105
105
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/transform/plugins/video/parsers.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,11 @@ export declare type VideoServicesOptions = {
14
14
  embed: 'simple' | (string & {});
15
15
  };
16
16
  };
17
+ export declare type Service = {
18
+ csp?: Record<string, string[]>;
19
+ extract(url: string): string;
20
+ };
21
+ export declare type Services = Record<VideoService, Service>;
17
22
  export declare type VideoFullOptions = VideoServicesOptions & {
18
23
  videoUrl: VideoUrlFn;
19
24
  };
package/lib/sanitize.d.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  import sanitizeHtml from 'sanitize-html';
2
- export declare type CssWhiteList = {
3
- [property: string]: boolean;
4
- };
2
+ import { CssWhiteList } from './typings';
5
3
  export interface SanitizeOptions extends sanitizeHtml.IOptions {
6
4
  cssWhiteList?: CssWhiteList;
7
5
  disableStyleSanitizer?: boolean;
@@ -10,4 +8,4 @@ export declare const defaultParseOptions: {
10
8
  lowerCaseAttributeNames: boolean;
11
9
  };
12
10
  export declare const defaultOptions: SanitizeOptions;
13
- export default function sanitize(html: string, options?: SanitizeOptions): string;
11
+ export default function sanitize(html: string, options?: SanitizeOptions, additionalOptions?: SanitizeOptions): string;
package/lib/sanitize.js CHANGED
@@ -569,9 +569,12 @@ function sanitizeStyles(html, options) {
569
569
  const content = $('body').html() || '';
570
570
  return styles + content;
571
571
  }
572
- function sanitize(html, options) {
572
+ function sanitize(html, options, additionalOptions) {
573
573
  var _a;
574
574
  const sanitizeOptions = options || exports.defaultOptions;
575
+ if (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.cssWhiteList) {
576
+ sanitizeOptions.cssWhiteList = Object.assign(Object.assign({}, sanitizeOptions.cssWhiteList), additionalOptions.cssWhiteList);
577
+ }
575
578
  const needToSanitizeStyles = !((_a = sanitizeOptions.disableStyleSanitizer) !== null && _a !== void 0 ? _a : false);
576
579
  const modifiedHtml = needToSanitizeStyles ? sanitizeStyles(html, sanitizeOptions) : html;
577
580
  return (0, sanitize_html_1.default)(modifiedHtml, sanitizeOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/transform/sanitize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/transform/sanitize.ts"],"names":[],"mappings":"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"}
package/lib/typings.d.ts CHANGED
@@ -64,6 +64,7 @@ export declare type EnvType<Extras extends {} = {}> = {
64
64
  assets?: unknown[];
65
65
  meta?: object;
66
66
  changelogs?: ChangelogItem[];
67
+ additionalOptionsCssWhiteList?: CssWhiteList;
67
68
  } & Extras;
68
69
  export interface MarkdownItPluginOpts {
69
70
  path: string;
@@ -84,3 +85,6 @@ export declare type MarkdownItPluginCb<T extends {} = {}> = {
84
85
  export declare type MarkdownItPreprocessorCb<T extends unknown = {}> = {
85
86
  (input: string, opts: T & Partial<MarkdownItPluginOpts>, md?: MarkdownIt): string;
86
87
  };
88
+ export declare type CssWhiteList = {
89
+ [property: string]: boolean;
90
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/transform",
3
- "version": "4.35.0-beta6",
3
+ "version": "4.36.0",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -8,7 +8,7 @@
8
8
  font-weight: 700;
9
9
  }
10
10
 
11
- & > p {
11
+ & > * {
12
12
  margin: 0 0 10px;
13
13
 
14
14
  &:first-child {
@@ -29,7 +29,6 @@
29
29
  }
30
30
  }
31
31
 
32
-
33
32
  // @todo replace with variables
34
33
 
35
34
  $colors: (
@@ -40,7 +39,7 @@
40
39
  );
41
40
 
42
41
  @each $type, $color in $colors {
43
- &.#{$type} > p:first-child::before {
42
+ &.#{$type} > :first-child::before {
44
43
  $r: red($color);
45
44
  $g: green($color);
46
45
  $b: blue($color);
@@ -168,7 +168,9 @@ function initCompiler(md: MarkdownIt, options: OptionsType, env: EnvType) {
168
168
  const html = md.renderer.render(tokens, md.options, env);
169
169
 
170
170
  // Sanitize the page
171
- return needToSanitizeHtml ? sanitizeHtml(html, sanitizeOptions) : html;
171
+ return needToSanitizeHtml
172
+ ? sanitizeHtml(html, sanitizeOptions, {cssWhiteList: env.additionalOptionsCssWhiteList})
173
+ : html;
172
174
  };
173
175
  }
174
176
 
@@ -76,12 +76,14 @@ const removeCustomIds = (token: Token) => {
76
76
  interface Options {
77
77
  extractTitle?: boolean;
78
78
  supportGithubAnchors?: boolean;
79
+ disableCommonAnchors?: boolean;
79
80
  transformLink: (v: string) => string;
80
81
  getPublicPath?: (options: Options, v?: string) => string;
81
82
  }
82
83
 
83
84
  const index: MarkdownItPluginCb<Options> = (md, options) => {
84
- const {extractTitle, path, log, supportGithubAnchors, getPublicPath} = options;
85
+ const {extractTitle, path, log, supportGithubAnchors, getPublicPath, disableCommonAnchors} =
86
+ options;
85
87
 
86
88
  const plugin = (state: StateCore) => {
87
89
  /* Do not use the plugin if it is included in the file */
@@ -143,9 +145,16 @@ const index: MarkdownItPluginCb<Options> = (md, options) => {
143
145
  const anchorTitle = removeCustomId(title).replace(/`/g, '');
144
146
  allAnchorIds.forEach((customId) => {
145
147
  const setId = id !== customId;
146
- const linkTokens = createLinkTokens(state, customId, anchorTitle, setId, href);
147
-
148
- inlineToken.children?.unshift(...linkTokens);
148
+ if (!disableCommonAnchors) {
149
+ const linkTokens = createLinkTokens(
150
+ state,
151
+ customId,
152
+ anchorTitle,
153
+ setId,
154
+ href,
155
+ );
156
+ inlineToken.children?.unshift(...linkTokens);
157
+ }
149
158
 
150
159
  if (supportGithubAnchors) {
151
160
  const ghLinkTokens = createLinkTokens(state, ghId, anchorTitle, true, href);
@@ -29,7 +29,7 @@ function replaceImageSrc(
29
29
  const path = resolveRelativePath(currentPath, src);
30
30
 
31
31
  if (isFileExists(path)) {
32
- state.md.assets?.push(path);
32
+ state.md.assets?.push(src);
33
33
  } else {
34
34
  log.error(`Asset not found: ${bold(src)} in ${bold(currentPath)}`);
35
35
  }
@@ -4,4 +4,5 @@ export enum ImsizeAttr {
4
4
  Title = 'title',
5
5
  Width = 'width',
6
6
  Height = 'height',
7
+ Style = 'style',
7
8
  }
@@ -1,6 +1,6 @@
1
- import {PluginSimple} from 'markdown-it';
1
+ import {PluginWithOptions} from 'markdown-it';
2
2
 
3
- import {imageWithSize} from './plugin';
3
+ import {ImsizeOptions, imageWithSize} from './plugin';
4
4
 
5
5
  /**
6
6
  * Imsize plugin for markdown-it.
@@ -8,8 +8,8 @@ import {imageWithSize} from './plugin';
8
8
  * Forked from https://github.com/tatsy/markdown-it-imsize
9
9
  */
10
10
 
11
- const imsize: PluginSimple = (md) => {
12
- md.inline.ruler.before('emphasis', 'image', imageWithSize(md));
11
+ const imsize: PluginWithOptions<ImsizeOptions> = (md, opts) => {
12
+ md.inline.ruler.before('emphasis', 'image', imageWithSize(md, opts));
13
13
  };
14
14
 
15
15
  export = imsize;
@@ -5,7 +5,11 @@ import type Token from 'markdown-it/lib/token';
5
5
  import {ImsizeAttr} from './const';
6
6
  import {parseImageSize} from './helpers';
7
7
 
8
- export const imageWithSize = (md: MarkdownIt): ParserInline.RuleInline => {
8
+ export type ImsizeOptions = {
9
+ enableInlineStyling?: boolean;
10
+ };
11
+
12
+ export const imageWithSize = (md: MarkdownIt, opts?: ImsizeOptions): ParserInline.RuleInline => {
9
13
  // eslint-disable-next-line complexity
10
14
  return (state, silent) => {
11
15
  if (state.src.charCodeAt(state.pos) !== 0x21 /* ! */) {
@@ -206,6 +210,33 @@ export const imageWithSize = (md: MarkdownIt): ParserInline.RuleInline => {
206
210
  if (height !== '') {
207
211
  token.attrs.push([ImsizeAttr.Height, height]);
208
212
  }
213
+
214
+ if (opts?.enableInlineStyling) {
215
+ let style: string | undefined = '';
216
+
217
+ const widthWithPercent = width.includes('%');
218
+ const heightWithPercent = height.includes('%');
219
+
220
+ if (width !== '') {
221
+ const widthString = widthWithPercent ? width : `${width}px`;
222
+ style += `width: ${widthString};`;
223
+ }
224
+
225
+ if (height !== '') {
226
+ if (width !== '' && !heightWithPercent && !widthWithPercent) {
227
+ style += `aspect-ratio: ${width} / ${height};height: auto;`;
228
+ state.env.additionalOptionsCssWhiteList ??= {};
229
+ state.env.additionalOptionsCssWhiteList['aspect-ratio'] = true;
230
+ } else {
231
+ const heightString = heightWithPercent ? height : `${height}px`;
232
+ style += `height: ${heightString};`;
233
+ }
234
+ }
235
+
236
+ if (style) {
237
+ token.attrs.push([ImsizeAttr.Style, style]);
238
+ }
239
+ }
209
240
  }
210
241
 
211
242
  state.pos = pos;
@@ -108,16 +108,18 @@ const index: MarkdownItPluginCb = (md, {lang, notesAutotitle, path: optPath, log
108
108
  titleInline.children,
109
109
  );
110
110
 
111
- const insideTokens = [
112
- newOpenToken,
113
- titleOpen,
114
- titleInline,
115
- titleClose,
111
+ const insideTokens = [newOpenToken];
112
+ if (titleInline.content) {
113
+ insideTokens.push(titleOpen, titleInline, titleClose);
114
+ }
115
+
116
+ insideTokens.push(
116
117
  contentOpen,
117
118
  ...tokens.slice(i + 3, closeTokenIdx),
118
119
  contentClose,
119
120
  newCloseToken,
120
- ];
121
+ );
122
+
121
123
  tokens.splice(i, closeTokenIdx - i + 3, ...insideTokens);
122
124
 
123
125
  i++;
@@ -15,13 +15,6 @@ export enum VideoService {
15
15
  url = 'url',
16
16
  }
17
17
 
18
- export type Service = {
19
- csp?: Record<string, string[]>;
20
- extract(url: string): string;
21
- };
22
-
23
- export type Services = [VideoService, Service][];
24
-
25
18
  export const defaults: VideoFullOptions = {
26
19
  videoUrl,
27
20
  youtube: {width: 640, height: 390},
@@ -83,7 +83,7 @@ function tokenizeVideo(md: MarkdownIt, options: VideoFullOptions): Renderer.Rend
83
83
  };
84
84
  }
85
85
 
86
- const EMBED_REGEX = /@\[([a-zA-Z].+)]\([\s]*(.*?)[\s]*[)]/im;
86
+ const EMBED_REGEX = /@\[([a-zA-Z]*?)]\([\s]*(.*?)[\s]*[)]/im;
87
87
 
88
88
  function videoEmbed(md: MarkdownIt, _options: VideoFullOptions): ParserInline.RuleInline {
89
89
  return (state, silent) => {
@@ -98,12 +98,11 @@ function videoEmbed(md: MarkdownIt, _options: VideoFullOptions): ParserInline.Ru
98
98
  }
99
99
 
100
100
  const match = EMBED_REGEX.exec(state.src.slice(state.pos, state.src.length));
101
-
102
101
  if (!match || match.length < 3) {
103
102
  return false;
104
103
  }
105
104
 
106
- const service = match[1];
105
+ const service = match[1] || 'url';
107
106
  const parsed = parseVideoUrl(service, match[2]);
108
107
 
109
108
  if (parsed === false) {
@@ -126,13 +125,19 @@ function videoEmbed(md: MarkdownIt, _options: VideoFullOptions): ParserInline.Ru
126
125
  const newState = new theState.md.inline.State(service, theState.md, theState.env, []);
127
126
  newState.md.inline.tokenize(newState);
128
127
 
129
- const token = theState.push('video', '', 0);
130
- (token as VideoToken).videoID = videoID;
131
- (token as VideoToken).service = service;
128
+ const token = theState.push('video', '', 0) as VideoToken;
129
+
130
+ token.videoID = videoID;
131
+ token.service = service;
132
+
132
133
  token.level = theState.level;
133
134
  }
134
135
 
135
- theState.pos += theState.src.indexOf(')', theState.pos);
136
+ if (service === 'url') {
137
+ theState.pos = theState.src.indexOf(')', theState.pos) + 1;
138
+ } else {
139
+ theState.pos += theState.src.indexOf(')', theState.pos);
140
+ }
136
141
 
137
142
  if (csp) {
138
143
  state.env.meta ??= {};
@@ -1,4 +1,5 @@
1
- import {Services} from './const';
1
+ import {VideoService} from './const';
2
+ import {Services} from './types';
2
3
 
3
4
  const ytRegex = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
4
5
  export function youtubeParser(url: string) {
@@ -53,7 +54,7 @@ export function rutubeParser(url: string) {
53
54
 
54
55
  const urlParser = (url: string) => url;
55
56
 
56
- const supportedServices = Object.entries({
57
+ const supportedServices = {
57
58
  osf: {
58
59
  extract: mfrParser,
59
60
  },
@@ -75,37 +76,37 @@ const supportedServices = Object.entries({
75
76
  vk: {
76
77
  extract: vkParser,
77
78
  csp: {
78
- 'frame-src': 'https://vk.com/',
79
+ 'frame-src': ['https://vk.com/'],
79
80
  },
80
81
  },
81
82
  rutube: {
82
83
  extract: rutubeParser,
83
84
  csp: {
84
- 'frame-src': 'https://rutube.ru/play/embed/',
85
+ 'frame-src': ['https://rutube.ru/play/embed/'],
85
86
  },
86
87
  },
87
88
  url: {
88
89
  extract: urlParser,
89
90
  },
90
- }) as Services;
91
+ } as Services;
91
92
 
92
93
  export function parseVideoUrl(service: string, url: string) {
93
94
  let videoID = '';
94
95
  const normalizedService = service.toLowerCase();
95
- const parsed = supportedServices.find(([name]) => name === normalizedService);
96
+ const parsed = supportedServices[normalizedService as VideoService];
96
97
 
97
98
  if (!parsed) {
98
99
  return false;
99
100
  }
100
101
 
101
- const [, videoParser] = parsed;
102
+ const {extract, csp} = parsed;
102
103
 
103
- videoID = videoParser.extract(url);
104
+ videoID = extract(url);
104
105
 
105
106
  // If the videoID field is empty, regex currently make it the close parenthesis.
106
107
  if (videoID === ')') {
107
108
  videoID = '';
108
109
  }
109
110
 
110
- return [videoID, videoParser.csp] as const;
111
+ return [videoID, csp] as const;
111
112
  }
@@ -17,6 +17,13 @@ export type VideoServicesOptions = {
17
17
  };
18
18
  };
19
19
 
20
+ export type Service = {
21
+ csp?: Record<string, string[]>;
22
+ extract(url: string): string;
23
+ };
24
+
25
+ export type Services = Record<VideoService, Service>;
26
+
20
27
  export type VideoFullOptions = VideoServicesOptions & {
21
28
  videoUrl: VideoUrlFn;
22
29
  };
@@ -4,6 +4,8 @@ import cssfilter from 'cssfilter';
4
4
  import * as cheerio from 'cheerio';
5
5
  import css from 'css';
6
6
 
7
+ import {CssWhiteList} from './typings';
8
+
7
9
  const htmlTags = [
8
10
  'a',
9
11
  'abbr',
@@ -492,8 +494,6 @@ const allowedTags = Array.from(
492
494
  );
493
495
  const allowedAttributes = Array.from(new Set([...htmlAttrs, ...svgAttrs, ...yfmHtmlAttrs]));
494
496
 
495
- export type CssWhiteList = {[property: string]: boolean};
496
-
497
497
  export interface SanitizeOptions extends sanitizeHtml.IOptions {
498
498
  cssWhiteList?: CssWhiteList;
499
499
  disableStyleSanitizer?: boolean;
@@ -598,9 +598,20 @@ function sanitizeStyles(html: string, options: SanitizeOptions) {
598
598
  return styles + content;
599
599
  }
600
600
 
601
- export default function sanitize(html: string, options?: SanitizeOptions) {
601
+ export default function sanitize(
602
+ html: string,
603
+ options?: SanitizeOptions,
604
+ additionalOptions?: SanitizeOptions,
605
+ ) {
602
606
  const sanitizeOptions = options || defaultOptions;
603
607
 
608
+ if (additionalOptions?.cssWhiteList) {
609
+ sanitizeOptions.cssWhiteList = {
610
+ ...sanitizeOptions.cssWhiteList,
611
+ ...additionalOptions.cssWhiteList,
612
+ };
613
+ }
614
+
604
615
  const needToSanitizeStyles = !(sanitizeOptions.disableStyleSanitizer ?? false);
605
616
 
606
617
  const modifiedHtml = needToSanitizeStyles ? sanitizeStyles(html, sanitizeOptions) : html;
@@ -74,6 +74,7 @@ export type EnvType<Extras extends {} = {}> = {
74
74
  assets?: unknown[];
75
75
  meta?: object;
76
76
  changelogs?: ChangelogItem[];
77
+ additionalOptionsCssWhiteList?: CssWhiteList;
77
78
  } & Extras;
78
79
 
79
80
  export interface MarkdownItPluginOpts {
@@ -98,3 +99,5 @@ export type MarkdownItPluginCb<T extends {} = {}> = {
98
99
  export type MarkdownItPreprocessorCb<T extends unknown = {}> = {
99
100
  (input: string, opts: T & Partial<MarkdownItPluginOpts>, md?: MarkdownIt): string;
100
101
  };
102
+
103
+ export type CssWhiteList = {[property: string]: boolean};
@@ -1,6 +0,0 @@
1
- export declare type CustomCSP = Record<string, string | string[]>;
2
- declare const requestCSP: (policy: CustomCSP) => void;
3
- declare const collect: () => {
4
- [x: string]: string[];
5
- };
6
- export { requestCSP, collect };
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collect = exports.requestCSP = void 0;
4
- let csp = {};
5
- const requestCSP = (policy) => {
6
- for (const [field, content] of Object.entries(policy)) {
7
- if (!csp[field]) {
8
- csp[field] = [];
9
- }
10
- const flat = Array.isArray(content) ? content : [content];
11
- for (const value of flat) {
12
- if (csp[field].includes(value)) {
13
- continue;
14
- }
15
- csp[field].push(value);
16
- }
17
- }
18
- };
19
- exports.requestCSP = requestCSP;
20
- const collect = () => {
21
- const usedCSP = Object.assign({}, csp);
22
- csp = {};
23
- return usedCSP;
24
- };
25
- exports.collect = collect;
26
- //# sourceMappingURL=csp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csp.js","sourceRoot":"","sources":["../../src/transform/plugins/csp.ts"],"names":[],"mappings":";;;AAAA,IAAI,GAAG,GAA6B,EAAE,CAAC;AAIvC,MAAM,UAAU,GAAG,CAAC,MAAiB,EAAE,EAAE;IACrC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACb,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACnB;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC5B,SAAS;aACZ;YAED,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;KACJ;AACL,CAAC,CAAC;AAUM,gCAAU;AARlB,MAAM,OAAO,GAAG,GAAG,EAAE;IACjB,MAAM,OAAO,qBAAO,GAAG,CAAC,CAAC;IAEzB,GAAG,GAAG,EAAE,CAAC;IAET,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEkB,0BAAO"}