@readme/markdown 6.41.0 → 6.43.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.
package/README.md CHANGED
@@ -46,6 +46,7 @@ Each processor method takes an options object which you can use to adjust the ou
46
46
  - **`copyButtons`** — Automatically insert a button to copy a block of text to the clipboard. Currently used on `<code>` elements.
47
47
  - **`correctnewlines`** — Render new line delimeters as `<br>` tags.
48
48
  - **`markdownOptions`** — Remark [parser options](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#processorusestringify-options).
49
+ - **`safeMode`** — Render html blocks as `<pre>` elements. We normally allow all manner of html attributes that could potentially execute JavaScript.
49
50
 
50
51
  ## Flavored Syntax
51
52
 
@@ -3,7 +3,7 @@
3
3
  const React = require('react');
4
4
  const PropTypes = require('prop-types');
5
5
 
6
- const MATCH_SCRIPT_TAGS = /<script\b[^>]*>([\s\S]*?)<\/script>\n?/gim;
6
+ const MATCH_SCRIPT_TAGS = /<script\b[^>]*>([\s\S]*?)<\/script *>\n?/gim;
7
7
 
8
8
  const extractScripts = (html = '') => {
9
9
  const scripts = [];
@@ -27,21 +27,40 @@ class HTMLBlock extends React.Component {
27
27
  }
28
28
 
29
29
  render() {
30
+ const { html, safeMode } = this.props;
31
+
32
+ if (safeMode) {
33
+ return (
34
+ <pre className="html-unsafe">
35
+ <code>{html}</code>
36
+ </pre>
37
+ );
38
+ }
39
+
30
40
  return <div className="rdmd-html" dangerouslySetInnerHTML={{ __html: this.html }} />;
31
41
  }
32
42
  }
33
43
 
34
44
  HTMLBlock.defaultProps = {
35
45
  runScripts: false,
46
+ safeMode: false,
36
47
  };
37
48
 
38
49
  HTMLBlock.propTypes = {
39
50
  html: PropTypes.string,
40
51
  runScripts: PropTypes.any,
52
+ safeMode: PropTypes.bool,
41
53
  };
42
54
 
43
- module.exports = sanitize => {
55
+ const CreateHtmlBlock =
56
+ ({ safeMode }) =>
57
+ // eslint-disable-next-line react/display-name
58
+ props =>
59
+ <HTMLBlock {...props} safeMode={safeMode} />;
60
+
61
+ module.exports = (sanitize, opts) => {
44
62
  sanitize.tagNames.push('html-block');
45
63
  sanitize.attributes['html-block'] = ['html', 'runScripts'];
46
- return HTMLBlock;
64
+
65
+ return CreateHtmlBlock(opts);
47
66
  };
@@ -0,0 +1,5 @@
1
+ .markdown-body {
2
+ pre.html-unsafe {
3
+ background-color: #fdd;
4
+ }
5
+ }
@@ -1,13 +1,11 @@
1
- export { default as GlossaryItem } from './GlossaryItem';
2
- export { default as Code } from './Code';
3
- export { default as Table } from './Table';
4
1
  export { default as Anchor } from './Anchor';
5
- export { default as Heading } from './Heading';
6
2
  export { default as Callout } from './Callout';
3
+ export { default as Code } from './Code';
7
4
  export { default as CodeTabs } from './CodeTabs';
8
- export { default as Image } from './Image';
9
5
  export { default as Embed } from './Embed';
10
-
6
+ export { default as GlossaryItem } from './GlossaryItem';
11
7
  export { default as HTMLBlock } from './HTMLBlock';
12
-
8
+ export { default as Heading } from './Heading';
9
+ export { default as Image } from './Image';
10
+ export { default as Table } from './Table';
13
11
  export { default as TableOfContents } from './TableOfContents';
package/dist/main.css CHANGED
@@ -387,5 +387,5 @@ span.CodeMirror-selectedtext { background: none; }
387
387
  z-index: 1;
388
388
  }
389
389
 
390
- .markdown-body img[align=right],.markdown-body img[alt~=align-right]{float:right;margin-left:.75rem}.markdown-body img[align=left],.markdown-body img[alt~=align-left]{float:left;margin-right:.75rem}.markdown-body img[width="80%"],.markdown-body img[align=center],.markdown-body img[alt~=align-center],.markdown-body>img,.markdown-body figure>img{display:block}.markdown-body img{box-sizing:content-box;display:inline-block;vertical-align:middle;max-width:100%;margin-left:auto;margin-right:auto;border-style:none;outline:none !important}.markdown-body img[width=smart]{width:auto;max-width:100%;max-height:450px}.markdown-body img.border{border:1px solid rgba(0,0,0,0.2)}.markdown-body figure{margin:15px auto}.markdown-body figure figcaption{margin-top:8px;font-size:.93em;font-style:italic;text-align:center}.markdown-body figure .img{display:inline-block}.markdown-body figure .img,.markdown-body figure .img>img:only-of-type{display:block}.markdown-body .lightbox{position:fixed;z-index:9999999;top:0;left:0;display:flex;flex-flow:nowrap column;justify-content:flex-start;align-items:center;width:100vw;height:100vh;overflow:hidden;overflow-y:scroll;background:rgba(255,255,255,0.966);user-select:none;margin-top:0;margin-bottom:0}.markdown-body .lightbox:not([open]){pointer-events:none}.markdown-body .lightbox:after{position:fixed;top:1em;right:1em;content:'\f00d';display:inline-block;font:normal normal normal 2em/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);display:inline-block;cursor:pointer;opacity:1;transform:scale(1.5);transition:.3s .3s ease-in}.markdown-body .lightbox:not([open]):after{transform:scale(0);opacity:0}.markdown-body .lightbox-inner{position:relative;display:inline-flex;justify-content:center;align-items:center;min-height:calc(100vh + 8px);margin:auto;margin:8px auto auto;padding:5em 0;box-sizing:content-box}.markdown-body .lightbox{transition:.3s ease-out;transition-property:opacity, z-index, transform}.markdown-body .lightbox img{transform:scale(1);transition:.25s .05s ease-in}.markdown-body .lightbox:not([open]){opacity:0 !important;pointer-events:none}.markdown-body .lightbox:not([open]) img{transform:scale(0);opacity:0;transition-delay:0s}.markdown-body .lightbox img{width:auto !important;height:auto !important;min-width:unset !important;max-width:97.5vw !important;max-height:97.5vh !important}.markdown-body .lightbox img.border,.markdown-body .lightbox img:not([src$=".png"]):not([src$=".svg"]):not([src$=".jp2"]):not([src$=".tiff"]){box-shadow:0 0.5em 3em -1em rgba(0,0,0,0.2)}.markdown-body table{display:table;border-collapse:collapse;border-spacing:0;width:100%;color:var(--table-text)}.markdown-body table thead{color:var(--table-head-text, inherit)}.markdown-body table thead tr{background:var(--table-head, #f6f8fa)}.markdown-body table tr{background-color:var(--table-row, #fff)}.markdown-body table tr+tr{border-top:1px solid var(--table-edges, #dfe2e5)}.markdown-body table th,.markdown-body table thead td{font-weight:600}.markdown-body table th:empty,.markdown-body table thead td:empty{padding:0;border:none}.markdown-body table td,.markdown-body table th{padding:0;color:inherit;vertical-align:middle;border:1px solid var(--table-edges, #dfe2e5);padding:6px 13px}.markdown-body table td>:first-child,.markdown-body table td>:only-child,.markdown-body table th>:first-child,.markdown-body table th>:only-child{margin-top:0 !important}.markdown-body table td>:last-child,.markdown-body table td>:only-child,.markdown-body table th>:last-child,.markdown-body table th>:only-child{margin-bottom:0 !important}.markdown-body table:not(.plain) tr:nth-child(2n){background-color:var(--table-stripe, #fbfcfd)}.markdown-body .rdmd-table{display:block;position:relative}.markdown-body .rdmd-table-inner{box-sizing:content-box;min-width:100%;overflow:auto;width:100%}.markdown-body .rdmd-table table{border:1px solid var(--table-edges, #dfe2e5)}.markdown-body .rdmd-table table:only-child{margin:0 !important}.markdown-body .rdmd-table table:only-child thead th{background:inherit}.markdown-body .rdmd-table table:only-child td:last-child,.markdown-body .rdmd-table table:only-child th:last-child{border-right:none}.markdown-body .rdmd-table table:only-child thead tr,.markdown-body .rdmd-table table:only-child thead th:last-child{box-shadow:3px 0 0 var(--table-head)}.toc-list .glossary-tooltip{pointer-events:none}.markdown-body code,.markdown-body kbd,.markdown-body pre{font-family:SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;font-family:var(--md-code-font, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace);font-size:1em}.markdown-body code,.markdown-body pre{font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0}.markdown-body code{background-color:#F6F8FA;background-color:var(--md-code-background, #F6F8FA);border-radius:3px;color:var(--md-code-text);font-size:85%;margin:0;padding:.2em .4em}.markdown-body code>div[class*="cm-"]{display:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{background:0 0;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body pre{background-color:#F6F8FA;background-color:var(--md-code-background, #F6F8FA);color:inherit;color:var(--md-code-text, inherit);border-radius:3px;border-radius:var(--markdown-radius, 3px);border-radius:var(--md-code-radius, var(--markdown-radius, 3px));font-size:85%;line-height:1.45;overflow:auto;padding:1em}.markdown-body pre code.theme-dark{background-color:#242E34;background-color:var(--md-code-background, #242E34)}.markdown-body pre code{background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal}.markdown-body kbd{background-color:#F6F8FA;background-color:var(--d-code-background, #F6F8FA);border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1;color:#444d56;display:inline-block;font-size:11px;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body button.rdmd-code-copy{DISPLAY:none !important}.markdown-body button.rdmd-code-copy{-webkit-appearance:unset;margin:.5em .6em 0 0;padding:.25em .7em;cursor:copy;font:inherit;color:inherit;color:var(--md-code-text, inherit);border:none;border-radius:3px;outline:none !important;background:inherit;background:var(--md-code-background, inherit);box-shadow:inset 0 0 0 1px rgba(170,170,170,0.66),-1px 2px 6px -3px rgba(0,0,0,0.1);transition:.15s ease-out}.markdown-body button.rdmd-code-copy:not(:hover):before,.markdown-body button.rdmd-code-copy:not(:hover):after{opacity:.66}.markdown-body button.rdmd-code-copy:hover:not(:active){box-shadow:inset 0 0 0 1px rgba(139,139,139,0.75),-1px 2px 6px -3px rgba(0,0,0,0.2)}.markdown-body button.rdmd-code-copy:active{box-shadow:inset 0 0 0 1px rgba(139,139,139,0.5),inset 1px 4px 6px -2px rgba(0,0,0,0.175)}.markdown-body button.rdmd-code-copy:active:before,.markdown-body button.rdmd-code-copy:active:after{opacity:.75}.markdown-body button.rdmd-code-copy:before,.markdown-body button.rdmd-code-copy:after{display:inline-block;font:normal normal normal 1em/1 "Font Awesome 5 Free", "FontAwesome";text-rendering:auto;-webkit-font-smoothing:antialiased;line-height:2;font-family:'ReadMe-Icons';font-variant-ligatures:discretionary-ligatures;font-feature-settings:"liga"}.markdown-body button.rdmd-code-copy:before{content:"\e6c9";font-weight:800;transition:.3s .15s ease}.markdown-body button.rdmd-code-copy:after{content:"\e942" !important;font-weight:900 !important;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.33);opacity:0 !important;transition:.3s 0s ease}.markdown-body button.rdmd-code-copy_copied{pointer-events:none}.markdown-body button.rdmd-code-copy_copied,.markdown-body button.rdmd-code-copy_copied *{color:green !important;color:var(--md-code-text, green) !important;opacity:1}.markdown-body button.rdmd-code-copy_copied:before{transition:.3s 0s ease;transform:scale(0.33);opacity:0 !important}.markdown-body button.rdmd-code-copy_copied:after{transition:.3s .15s ease;transform:translate(-50%, -50%) scale(1);opacity:1 !important}.markdown-body pre{position:relative}.markdown-body pre>code{background:inherit}.markdown-body pre>code.theme-dark{color:white}.markdown-body pre button.rdmd-code-copy{display:inline-block !important;position:absolute;right:0;top:0}.markdown-body pre{overflow:hidden;padding:0}.markdown-body pre>code{display:block !important;overflow:auto;padding:1em;max-height:90vh}.markdown-body pre:hover button.rdmd-code-copy:not(:hover){transition-delay:.4s}.markdown-body pre:not(:hover) button.rdmd-code-copy:not(.rdmd-code-copy_copied){opacity:0 !important}.CodeTabs{color:#333;color:var(--md-code-text, #333);border-radius:var(--md-code-radius, var(--markdown-radius, 3px)) !important;overflow:hidden}.CodeTabs.theme-dark{color:white;color:var(--md-code-text, white)}.CodeTabs.theme-dark .CodeTabs-toolbar{background:#373737;background:var(--md-code-tabs, #373737)}.CodeTabs-toolbar{background:#ebedef;background:var(--md-code-tabs, #ebedef);display:flex;flex-flow:row nowrap;overflow:hidden;overflow-x:auto;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.CodeTabs-toolbar::-webkit-scrollbar{display:none}.CodeTabs-toolbar button{white-space:nowrap;transition:.123s ease;-webkit-appearance:none;appearance:none;display:inline-block;line-height:2;padding:.5em 1em;border:none;background:transparent;outline:none;color:inherit;font:inherit;font-size:.75em;cursor:pointer}.CodeTabs.CodeTabs_initial .CodeTabs-toolbar button:first-child,.CodeTabs-toolbar button.CodeTabs_active{background:#F6F8FA;background:var(--md-code-background, #F6F8FA);color:black;color:var(--md-code-text, black);pointer-events:none}.CodeTabs.theme-dark.CodeTabs_initial .CodeTabs-toolbar button:first-child,.CodeTabs.theme-dark .CodeTabs-toolbar button.CodeTabs_active{background:#242E34;background:var(--md-code-background, #242E34);color:white;color:var(--md-code-text, white)}.CodeTabs-toolbar button:not(.CodeTabs_active):hover{background:rgba(0,0,0,0.075)}.CodeTabs pre{border-radius:0 0 var(--md-code-radius, var(--markdown-radius, 3px)) var(--md-code-radius, var(--markdown-radius, 3px)) !important;background:#F6F8FA;background:var(--md-code-background, #F6F8FA);margin-bottom:0}.CodeTabs pre:not(.CodeTabs_active){display:none}.CodeTabs.theme-dark pre{background:#242E34;background:var(--md-code-background, #242E34)}.CodeTabs.CodeTabs_initial pre:first-child{display:block}.callout{--emoji: 1em;--icon-font: FontAwesome;border-top-right-radius:var(--markdown-radius);border-bottom-right-radius:var(--markdown-radius)}.callout.callout{--background: #f8f8f9;--border: #8b939c}.callout.callout{background:var(--background);border-color:var(--border);color:var(--text);padding:1.33rem}.callout.callout_info{--background: #e3edf2;--title: #46b8da;--border: #5bc0de}.callout.callout_warn,.callout.callout_warning{--background: #fcf8f2;--title: #eea236;--border: #f0ad4e}.callout.callout_ok,.callout.callout_okay,.callout.callout_success{--background: #f3f8f3;--title: #489e49;--border: #50af51}.callout.callout_err,.callout.callout_error{--background: #fdf7f7;--title: #d43f3a;--border: #d9534f}.callout.callout>*{margin-left:1.33rem;position:relative}.callout.callout ul,.callout.callout ol{padding-left:1.3em}.callout.callout a{color:inherit}.callout.callout hr{border-color:var(--border, var(--markdown-edge, #eee))}.callout.callout blockquote{color:var(--text);border-color:var(--border);border-width:3px;padding:0 0 0 .8em}.callout.callout .callout-heading{color:var(--title, --text);margin-bottom:calc(1.33rem * .5)}.callout.callout .callout-heading:only-child{margin-bottom:0}.callout.callout .callout-heading.empty{float:left;margin-top:calc(1.33rem * .5)}.callout.callout .callout-heading.empty .callout-icon{line-height:0}.callout.callout .callout-heading>*{color:inherit;margin:0}.callout.callout .callout-heading:before{position:absolute;right:100%;width:2.4em;text-align:center;font:normal normal normal 1em/1 FontAwesome}.callout.callout .callout-icon{float:left;margin-left:calc(-1.33rem - .5em);margin-right:-.25rem}.callout-icon{font-size:var(--emoji, 0);color:var(--icon-color, inherit) !important}.callout-icon:before{content:var(--icon);font-family:var(--icon-font);font-size:var(--icon-size, 1rem);font-weight:var(--icon-weight, 400);position:absolute;top:50%;transform:translate(-50%, -50%);display:inline-block;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rdmdCallouts--useIconFont .callout{--emoji: unset}.rdmdCallouts--useIconFont .callout_okay{--icon: "\f164"}.rdmdCallouts--useIconFont .callout_info{--icon: "\f05a"}.rdmdCallouts--useIconFont .callout_warn{--icon: "\f071"}.rdmdCallouts--useIconFont .callout_error{--icon: "\f06a"}.rdmdCallouts--useIconFont .callout_default{--emoji: 1rem}.heading.heading{display:flex;justify-content:flex-start;align-items:center;position:relative}.heading.heading .heading-text{flex:1 100%}.heading.heading .heading-anchor-deprecated{position:absolute;top:0}.heading.heading .heading-anchor{top:-1rem !important}.heading.heading .heading-anchor,.heading.heading .heading-anchor-icon{position:absolute !important;display:inline !important;order:-1;right:100%;top:unset !important;margin-right:-.8rem;padding:.8rem .2rem .8rem 0 !important;font-size:.8rem !important;text-decoration:none;color:inherit;transform:translateX(-100%);transition:.2s ease}.heading.heading .heading-anchor:hover,.heading.heading .heading-anchor-icon:hover{opacity:1}.heading.heading:not(:hover) .heading-anchor-icon{opacity:0}.markdown-body .embed{padding:15px;color:var(--md-code-text, inherit);border-radius:var(--md-code-radius, var(--markdown-radius, 3px));border-radius:3px;background:transparent;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15);transition:.3s ease}.markdown-body .embed:hover{background:var(--md-code-background, #f6f8fa);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1)}.markdown-body>.embed_hasImg:nth-of-type(odd){margin-right:30px;padding-right:0}.markdown-body>.embed_hasImg:nth-of-type(odd) .embed-link{flex-direction:row-reverse}.markdown-body>.embed_hasImg:nth-of-type(odd) .embed-img{margin-left:.88em;margin-right:-30px;box-shadow:-0.3em 0.3em 0.9em -0.3em rgba(0,0,0,0.15)}.markdown-body>.embed_hasImg:nth-of-type(even){margin-left:30px;padding-left:0}.markdown-body>.embed_hasImg:nth-of-type(even) .embed-img{margin-left:-30px}.markdown-body .embed:empty{display:none}.markdown-body .embed-media{display:flex;justify-content:center}.markdown-body .embed-media>:only-child{flex:1;margin:-15px;border-radius:0 !important}.markdown-body .embed-link{display:flex;align-items:center;color:var(--markdown-text, #333);text-decoration:none !important}.markdown-body .embed-body{flex:1;line-height:1.3}.markdown-body .embed-body,.markdown-body .embed-body .embed-title{font-size:1.15em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.markdown-body .embed-body .embed-provider{display:block;text-decoration-color:transparent !important;opacity:.88}.markdown-body .embed-body-url{opacity:.75}.markdown-body .embed-provider{font-size:0.8em;line-height:1.6;transition:.2 ease}.markdown-body .embed-provider code:only-child{display:block;width:100%;font-size:1.15em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:transparent;margin:0;padding:0;font-size:inherit !important}.markdown-body .embed-provider code{opacity:0.8}.markdown-body .embed-img{width:5em;max-width:5em;margin:0 .88em 0 0;padding:4px;background:white;border:1px solid rgba(0,0,0,0.15);border-radius:3px;transition:inherit;box-shadow:0.3em 0.3em 0.9em -0.3em rgba(0,0,0,0.15)}.markdown-body .embed:not(:hover) .embed-img{box-shadow:0 0.25em 1em -0.5em rgba(0,0,0,0.133)}.markdown-body .embed:hover .embed-img{border:1px solid rgba(0,0,0,0.2)}.markdown-body .embed-favicon{width:12px !important;height:12px !important;margin-top:4px;margin-right:6px;margin-bottom:12px}:root{--markdown-text: inherit;--markdown-title: inherit;--markdown-title-font: inherit;--markdown-font: inherit;--markdown-font-size: inherit;--markdown-line-height: 1.5}.field-description,.markdown-body{font-size:var(--markdown-font-size, 14px)}.field-description,.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;position:relative;font-family:var(--markdown-font);line-height:var(--markdown-line-height);color:var(--markdown-text);word-wrap:break-word}.field-description:before,.field-description:after,.markdown-body:before,.markdown-body:after{content:"";display:table}.field-description:after,.markdown-body:after{clear:both}.field-description ul,.markdown-body ul{list-style:initial}.field-description .anchor,.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.field-description .anchor:focus,.markdown-body .anchor:focus{outline:0}.field-description h1:hover .anchor,.field-description h2:hover .anchor,.field-description h3:hover .anchor,.field-description h4:hover .anchor,.field-description h5:hover .anchor,.field-description h6:hover .anchor,.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.field-description details,.markdown-body details{display:block}.field-description summary,.markdown-body summary{display:list-item}.field-description a,.markdown-body a{transition:.15s ease}.field-description a:hover,.markdown-body a:hover{text-decoration:underline}.field-description a:active,.field-description a:hover,.markdown-body a:active,.markdown-body a:hover{outline-width:0}.field-description a:not([href]),.markdown-body a:not([href]){color:inherit;text-decoration:none}.field-description strong,.markdown-body strong{font-weight:inherit;font-weight:bolder}.field-description h1,.markdown-body h1{font-size:2em;margin:.67em 0}.field-description hr,.markdown-body hr{box-sizing:content-box;height:0;overflow:hidden;margin:15px 0;border-width:0 0 1px;border-bottom:1px solid var(--markdown-edge, #dfe2e5);background:transparent}.field-description hr:before,.field-description hr:after,.markdown-body hr:before,.markdown-body hr:after{content:"";display:table}.field-description hr:after,.markdown-body hr:after{clear:both}.field-description input,.markdown-body input{font:inherit;margin:0}.field-description input,.markdown-body input{overflow:visible}.field-description [type=checkbox],.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.field-description *,.markdown-body *{box-sizing:border-box}.field-description input,.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.field-description strong,.markdown-body strong{font-weight:600}.field-description details summary,.markdown-body details summary{cursor:pointer}.field-description h1,.field-description h2,.field-description h3,.field-description h4,.field-description h5,.field-description h6,.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.25;color:var(--markdown-title);font-family:var(--markdown-title-font);font-size:var(--markdown-title-size);font-weight:var(--markdown-title-weight, 600);margin-top:var(--markdown-title-marginTop, 1em);margin-bottom:var(--markdown-title-marginBottom, 1rem)}.field-description h1,.markdown-body h1{font-size:1.75em;font-size:var(--markdown-title-size, 1.75em)}.field-description h2,.markdown-body h2{font-size:1.5em;font-size:var(--markdown-title-size, 1.5em)}.field-description h1,.markdown-body h1{font-weight:700;font-weight:var(--markdown-title-weight, 700)}.field-description h2,.markdown-body h2{font-weight:600;font-weight:var(--markdown-title-weight, 600)}.field-description h3,.field-description h4,.markdown-body h3,.markdown-body h4{font-weight:600;font-weight:var(--markdown-title-weight, 600)}.field-description h3,.markdown-body h3{font-size:1.25em;font-size:var(--markdown-title-size, 1.25em)}.field-description h4,.markdown-body h4{font-size:1em;font-size:var(--markdown-title-size, 1em)}.field-description h5,.field-description h6,.markdown-body h5,.markdown-body h6{font-weight:600;font-weight:var(--markdown-title-weight, 600)}.field-description h5,.markdown-body h5{font-size:.875em;font-size:var(--markdown-title-size, 0.875em)}.field-description h6,.markdown-body h6{font-size:.85em;font-size:var(--markdown-title-size, 0.85em);color:var(--markdown-title, #6a737d)}.field-description p,.field-description .p,.markdown-body p,.markdown-body .p{margin-bottom:10px;margin-top:0}.field-description blockquote,.markdown-body blockquote{margin:0}.field-description ol,.field-description ul,.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:0}.field-description ol ol,.field-description ul ol,.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.field-description ol ol ol,.field-description ol ul ol,.field-description ul ol ol,.field-description ul ul ol,.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.field-description dd,.markdown-body dd{margin-left:0}.field-description input::-webkit-inner-spin-button,.field-description input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.field-description>:first-child,.markdown-body>:first-child{margin-top:0 !important}.field-description>:last-child,.markdown-body>:last-child{margin-bottom:0 !important}.field-description blockquote,.field-description dl,.field-description ol,.field-description p,.field-description pre,.field-description table,.field-description ul,.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:15px}.field-description blockquote,.markdown-body blockquote{display:block;border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}.field-description blockquote>:first-child,.markdown-body blockquote>:first-child{margin-top:0}.field-description blockquote>:last-child,.markdown-body blockquote>:last-child{margin-bottom:0}.field-description ol,.field-description ul,.markdown-body ol,.markdown-body ul{padding-left:2em}.field-description ol ol,.field-description ol ul,.field-description ul ol,.field-description ul ul,.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.field-description li,.markdown-body li{word-wrap:break-all}.field-description li>p,.markdown-body li>p{margin-top:1em}.field-description li+li,.markdown-body li+li{margin-top:.25em}.field-description dl,.markdown-body dl{padding:0}.field-description dl dt,.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:1em;padding:0}.field-description dl dd,.markdown-body dl dd{margin-bottom:1em;padding:0 1em}.field-description :checked+.radio-label,.markdown-body :checked+.radio-label{border-color:var(--project-color-primary);position:relative;z-index:1}.field-description .task-list-item,.markdown-body .task-list-item{list-style-type:none}.field-description .task-list-item+.task-list-item,.markdown-body .task-list-item+.task-list-item{margin-top:3px}.field-description .task-list-item input,.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.field-description p.blank-line,.markdown-body p.blank-line{height:1.5em}.field-description h5,.field-description h6,.markdown-body h5,.markdown-body h6{font-size:.9em}.field-description blockquote h1:last-child,.field-description blockquote h2:last-child,.markdown-body blockquote h1:last-child,.markdown-body blockquote h2:last-child{border-bottom:0}.field-description>*,.markdown-body>*{margin-top:15px;margin-bottom:15px !important}.field-description .task-list-item input,.markdown-body .task-list-item input{margin:0 .5em .25em -1.25em}.field-description a[href],.field-description a:not([href=""]),.markdown-body a[href],.markdown-body a:not([href=""]){text-decoration:underline}
390
+ .markdown-body img[align=right],.markdown-body img[alt~=align-right]{float:right;margin-left:.75rem}.markdown-body img[align=left],.markdown-body img[alt~=align-left]{float:left;margin-right:.75rem}.markdown-body img[width="80%"],.markdown-body img[align=center],.markdown-body img[alt~=align-center],.markdown-body>img,.markdown-body figure>img{display:block}.markdown-body img{box-sizing:content-box;display:inline-block;vertical-align:middle;max-width:100%;margin-left:auto;margin-right:auto;border-style:none;outline:none !important}.markdown-body img[width=smart]{width:auto;max-width:100%;max-height:450px}.markdown-body img.border{border:1px solid rgba(0,0,0,0.2)}.markdown-body figure{margin:15px auto}.markdown-body figure figcaption{margin-top:8px;font-size:.93em;font-style:italic;text-align:center}.markdown-body figure .img{display:inline-block}.markdown-body figure .img,.markdown-body figure .img>img:only-of-type{display:block}.markdown-body .lightbox{position:fixed;z-index:9999999;top:0;left:0;display:flex;flex-flow:nowrap column;justify-content:flex-start;align-items:center;width:100vw;height:100vh;overflow:hidden;overflow-y:scroll;background:rgba(255,255,255,0.966);user-select:none;margin-top:0;margin-bottom:0}.markdown-body .lightbox:not([open]){pointer-events:none}.markdown-body .lightbox:after{position:fixed;top:1em;right:1em;content:'\f00d';display:inline-block;font:normal normal normal 2em/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0);display:inline-block;cursor:pointer;opacity:1;transform:scale(1.5);transition:.3s .3s ease-in}.markdown-body .lightbox:not([open]):after{transform:scale(0);opacity:0}.markdown-body .lightbox-inner{position:relative;display:inline-flex;justify-content:center;align-items:center;min-height:calc(100vh + 8px);margin:auto;margin:8px auto auto;padding:5em 0;box-sizing:content-box}.markdown-body .lightbox{transition:.3s ease-out;transition-property:opacity, z-index, transform}.markdown-body .lightbox img{transform:scale(1);transition:.25s .05s ease-in}.markdown-body .lightbox:not([open]){opacity:0 !important;pointer-events:none}.markdown-body .lightbox:not([open]) img{transform:scale(0);opacity:0;transition-delay:0s}.markdown-body .lightbox img{width:auto !important;height:auto !important;min-width:unset !important;max-width:97.5vw !important;max-height:97.5vh !important}.markdown-body .lightbox img.border,.markdown-body .lightbox img:not([src$=".png"]):not([src$=".svg"]):not([src$=".jp2"]):not([src$=".tiff"]){box-shadow:0 0.5em 3em -1em rgba(0,0,0,0.2)}.markdown-body table{display:table;border-collapse:collapse;border-spacing:0;width:100%;color:var(--table-text)}.markdown-body table thead{color:var(--table-head-text, inherit)}.markdown-body table thead tr{background:var(--table-head, #f6f8fa)}.markdown-body table tr{background-color:var(--table-row, #fff)}.markdown-body table tr+tr{border-top:1px solid var(--table-edges, #dfe2e5)}.markdown-body table th,.markdown-body table thead td{font-weight:600}.markdown-body table th:empty,.markdown-body table thead td:empty{padding:0;border:none}.markdown-body table td,.markdown-body table th{padding:0;color:inherit;vertical-align:middle;border:1px solid var(--table-edges, #dfe2e5);padding:6px 13px}.markdown-body table td>:first-child,.markdown-body table td>:only-child,.markdown-body table th>:first-child,.markdown-body table th>:only-child{margin-top:0 !important}.markdown-body table td>:last-child,.markdown-body table td>:only-child,.markdown-body table th>:last-child,.markdown-body table th>:only-child{margin-bottom:0 !important}.markdown-body table:not(.plain) tr:nth-child(2n){background-color:var(--table-stripe, #fbfcfd)}.markdown-body .rdmd-table{display:block;position:relative}.markdown-body .rdmd-table-inner{box-sizing:content-box;min-width:100%;overflow:auto;width:100%}.markdown-body .rdmd-table table{border:1px solid var(--table-edges, #dfe2e5)}.markdown-body .rdmd-table table:only-child{margin:0 !important}.markdown-body .rdmd-table table:only-child thead th{background:inherit}.markdown-body .rdmd-table table:only-child td:last-child,.markdown-body .rdmd-table table:only-child th:last-child{border-right:none}.markdown-body .rdmd-table table:only-child thead tr,.markdown-body .rdmd-table table:only-child thead th:last-child{box-shadow:3px 0 0 var(--table-head)}.toc-list .glossary-tooltip{pointer-events:none}.markdown-body code,.markdown-body kbd,.markdown-body pre{font-family:SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;font-family:var(--md-code-font, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace);font-size:1em}.markdown-body code,.markdown-body pre{font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0}.markdown-body code{background-color:#F6F8FA;background-color:var(--md-code-background, #F6F8FA);border-radius:3px;color:var(--md-code-text);font-size:85%;margin:0;padding:.2em .4em}.markdown-body code>div[class*="cm-"]{display:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{background:0 0;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body pre{background-color:#F6F8FA;background-color:var(--md-code-background, #F6F8FA);color:inherit;color:var(--md-code-text, inherit);border-radius:3px;border-radius:var(--markdown-radius, 3px);border-radius:var(--md-code-radius, var(--markdown-radius, 3px));font-size:85%;line-height:1.45;overflow:auto;padding:1em}.markdown-body pre code.theme-dark{background-color:#242E34;background-color:var(--md-code-background, #242E34)}.markdown-body pre code{background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal}.markdown-body kbd{background-color:#F6F8FA;background-color:var(--d-code-background, #F6F8FA);border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1;color:#444d56;display:inline-block;font-size:11px;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body button.rdmd-code-copy{DISPLAY:none !important}.markdown-body button.rdmd-code-copy{-webkit-appearance:unset;margin:.5em .6em 0 0;padding:.25em .7em;cursor:copy;font:inherit;color:inherit;color:var(--md-code-text, inherit);border:none;border-radius:3px;outline:none !important;background:inherit;background:var(--md-code-background, inherit);box-shadow:inset 0 0 0 1px rgba(170,170,170,0.66),-1px 2px 6px -3px rgba(0,0,0,0.1);transition:.15s ease-out}.markdown-body button.rdmd-code-copy:not(:hover):before,.markdown-body button.rdmd-code-copy:not(:hover):after{opacity:.66}.markdown-body button.rdmd-code-copy:hover:not(:active){box-shadow:inset 0 0 0 1px rgba(139,139,139,0.75),-1px 2px 6px -3px rgba(0,0,0,0.2)}.markdown-body button.rdmd-code-copy:active{box-shadow:inset 0 0 0 1px rgba(139,139,139,0.5),inset 1px 4px 6px -2px rgba(0,0,0,0.175)}.markdown-body button.rdmd-code-copy:active:before,.markdown-body button.rdmd-code-copy:active:after{opacity:.75}.markdown-body button.rdmd-code-copy:before,.markdown-body button.rdmd-code-copy:after{display:inline-block;font:normal normal normal 1em/1 "Font Awesome 5 Free", "FontAwesome";text-rendering:auto;-webkit-font-smoothing:antialiased;line-height:2;font-family:'ReadMe-Icons';font-variant-ligatures:discretionary-ligatures;font-feature-settings:"liga"}.markdown-body button.rdmd-code-copy:before{content:"\e6c9";font-weight:800;transition:.3s .15s ease}.markdown-body button.rdmd-code-copy:after{content:"\e942" !important;font-weight:900 !important;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.33);opacity:0 !important;transition:.3s 0s ease}.markdown-body button.rdmd-code-copy_copied{pointer-events:none}.markdown-body button.rdmd-code-copy_copied,.markdown-body button.rdmd-code-copy_copied *{color:green !important;color:var(--md-code-text, green) !important;opacity:1}.markdown-body button.rdmd-code-copy_copied:before{transition:.3s 0s ease;transform:scale(0.33);opacity:0 !important}.markdown-body button.rdmd-code-copy_copied:after{transition:.3s .15s ease;transform:translate(-50%, -50%) scale(1);opacity:1 !important}.markdown-body pre{position:relative}.markdown-body pre>code{background:inherit}.markdown-body pre>code.theme-dark{color:white}.markdown-body pre button.rdmd-code-copy{display:inline-block !important;position:absolute;right:0;top:0}.markdown-body pre{overflow:hidden;padding:0}.markdown-body pre>code{display:block !important;overflow:auto;padding:1em;max-height:90vh}.markdown-body pre:hover button.rdmd-code-copy:not(:hover){transition-delay:.4s}.markdown-body pre:not(:hover) button.rdmd-code-copy:not(.rdmd-code-copy_copied){opacity:0 !important}.CodeTabs{color:#333;color:var(--md-code-text, #333);border-radius:var(--md-code-radius, var(--markdown-radius, 3px)) !important;overflow:hidden}.CodeTabs.theme-dark{color:white;color:var(--md-code-text, white)}.CodeTabs.theme-dark .CodeTabs-toolbar{background:#373737;background:var(--md-code-tabs, #373737)}.CodeTabs-toolbar{background:#ebedef;background:var(--md-code-tabs, #ebedef);display:flex;flex-flow:row nowrap;overflow:hidden;overflow-x:auto;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.CodeTabs-toolbar::-webkit-scrollbar{display:none}.CodeTabs-toolbar button{white-space:nowrap;transition:.123s ease;-webkit-appearance:none;appearance:none;display:inline-block;line-height:2;padding:.5em 1em;border:none;background:transparent;outline:none;color:inherit;font:inherit;font-size:.75em;cursor:pointer}.CodeTabs.CodeTabs_initial .CodeTabs-toolbar button:first-child,.CodeTabs-toolbar button.CodeTabs_active{background:#F6F8FA;background:var(--md-code-background, #F6F8FA);color:black;color:var(--md-code-text, black);pointer-events:none}.CodeTabs.theme-dark.CodeTabs_initial .CodeTabs-toolbar button:first-child,.CodeTabs.theme-dark .CodeTabs-toolbar button.CodeTabs_active{background:#242E34;background:var(--md-code-background, #242E34);color:white;color:var(--md-code-text, white)}.CodeTabs-toolbar button:not(.CodeTabs_active):hover{background:rgba(0,0,0,0.075)}.CodeTabs pre{border-radius:0 0 var(--md-code-radius, var(--markdown-radius, 3px)) var(--md-code-radius, var(--markdown-radius, 3px)) !important;background:#F6F8FA;background:var(--md-code-background, #F6F8FA);margin-bottom:0}.CodeTabs pre:not(.CodeTabs_active){display:none}.CodeTabs.theme-dark pre{background:#242E34;background:var(--md-code-background, #242E34)}.CodeTabs.CodeTabs_initial pre:first-child{display:block}.callout{--emoji: 1em;--icon-font: FontAwesome;border-top-right-radius:var(--markdown-radius);border-bottom-right-radius:var(--markdown-radius)}.callout.callout{--background: #f8f8f9;--border: #8b939c}.callout.callout{background:var(--background);border-color:var(--border);color:var(--text);padding:1.33rem}.callout.callout_info{--background: #e3edf2;--title: #46b8da;--border: #5bc0de}.callout.callout_warn,.callout.callout_warning{--background: #fcf8f2;--title: #eea236;--border: #f0ad4e}.callout.callout_ok,.callout.callout_okay,.callout.callout_success{--background: #f3f8f3;--title: #489e49;--border: #50af51}.callout.callout_err,.callout.callout_error{--background: #fdf7f7;--title: #d43f3a;--border: #d9534f}.callout.callout>*{margin-left:1.33rem;position:relative}.callout.callout ul,.callout.callout ol{padding-left:1.3em}.callout.callout a{color:inherit}.callout.callout hr{border-color:var(--border, var(--markdown-edge, #eee))}.callout.callout blockquote{color:var(--text);border-color:var(--border);border-width:3px;padding:0 0 0 .8em}.callout.callout .callout-heading{color:var(--title, --text);margin-bottom:calc(1.33rem * .5)}.callout.callout .callout-heading:only-child{margin-bottom:0}.callout.callout .callout-heading.empty{float:left;margin-top:calc(1.33rem * .5)}.callout.callout .callout-heading.empty .callout-icon{line-height:0}.callout.callout .callout-heading>*{color:inherit;margin:0}.callout.callout .callout-heading:before{position:absolute;right:100%;width:2.4em;text-align:center;font:normal normal normal 1em/1 FontAwesome}.callout.callout .callout-icon{float:left;margin-left:calc(-1.33rem - .5em);margin-right:-.25rem}.callout-icon{font-size:var(--emoji, 0);color:var(--icon-color, inherit) !important}.callout-icon:before{content:var(--icon);font-family:var(--icon-font);font-size:var(--icon-size, 1rem);font-weight:var(--icon-weight, 400);position:absolute;top:50%;transform:translate(-50%, -50%);display:inline-block;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rdmdCallouts--useIconFont .callout{--emoji: unset}.rdmdCallouts--useIconFont .callout_okay{--icon: "\f164"}.rdmdCallouts--useIconFont .callout_info{--icon: "\f05a"}.rdmdCallouts--useIconFont .callout_warn{--icon: "\f071"}.rdmdCallouts--useIconFont .callout_error{--icon: "\f06a"}.rdmdCallouts--useIconFont .callout_default{--emoji: 1rem}.heading.heading{display:flex;justify-content:flex-start;align-items:center;position:relative}.heading.heading .heading-text{flex:1 100%}.heading.heading .heading-anchor-deprecated{position:absolute;top:0}.heading.heading .heading-anchor{top:-1rem !important}.heading.heading .heading-anchor,.heading.heading .heading-anchor-icon{position:absolute !important;display:inline !important;order:-1;right:100%;top:unset !important;margin-right:-.8rem;padding:.8rem .2rem .8rem 0 !important;font-size:.8rem !important;text-decoration:none;color:inherit;transform:translateX(-100%);transition:.2s ease}.heading.heading .heading-anchor:hover,.heading.heading .heading-anchor-icon:hover{opacity:1}.heading.heading:not(:hover) .heading-anchor-icon{opacity:0}.markdown-body pre.html-unsafe{background-color:#fdd}.markdown-body .embed{padding:15px;color:var(--md-code-text, inherit);border-radius:var(--md-code-radius, var(--markdown-radius, 3px));border-radius:3px;background:transparent;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15);transition:.3s ease}.markdown-body .embed:hover{background:var(--md-code-background, #f6f8fa);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1)}.markdown-body>.embed_hasImg:nth-of-type(odd){margin-right:30px;padding-right:0}.markdown-body>.embed_hasImg:nth-of-type(odd) .embed-link{flex-direction:row-reverse}.markdown-body>.embed_hasImg:nth-of-type(odd) .embed-img{margin-left:.88em;margin-right:-30px;box-shadow:-0.3em 0.3em 0.9em -0.3em rgba(0,0,0,0.15)}.markdown-body>.embed_hasImg:nth-of-type(even){margin-left:30px;padding-left:0}.markdown-body>.embed_hasImg:nth-of-type(even) .embed-img{margin-left:-30px}.markdown-body .embed:empty{display:none}.markdown-body .embed-media{display:flex;justify-content:center}.markdown-body .embed-media>:only-child{flex:1;margin:-15px;border-radius:0 !important}.markdown-body .embed-link{display:flex;align-items:center;color:var(--markdown-text, #333);text-decoration:none !important}.markdown-body .embed-body{flex:1;line-height:1.3}.markdown-body .embed-body,.markdown-body .embed-body .embed-title{font-size:1.15em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.markdown-body .embed-body .embed-provider{display:block;text-decoration-color:transparent !important;opacity:.88}.markdown-body .embed-body-url{opacity:.75}.markdown-body .embed-provider{font-size:0.8em;line-height:1.6;transition:.2 ease}.markdown-body .embed-provider code:only-child{display:block;width:100%;font-size:1.15em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:transparent;margin:0;padding:0;font-size:inherit !important}.markdown-body .embed-provider code{opacity:0.8}.markdown-body .embed-img{width:5em;max-width:5em;margin:0 .88em 0 0;padding:4px;background:white;border:1px solid rgba(0,0,0,0.15);border-radius:3px;transition:inherit;box-shadow:0.3em 0.3em 0.9em -0.3em rgba(0,0,0,0.15)}.markdown-body .embed:not(:hover) .embed-img{box-shadow:0 0.25em 1em -0.5em rgba(0,0,0,0.133)}.markdown-body .embed:hover .embed-img{border:1px solid rgba(0,0,0,0.2)}.markdown-body .embed-favicon{width:12px !important;height:12px !important;margin-top:4px;margin-right:6px;margin-bottom:12px}:root{--markdown-text: inherit;--markdown-title: inherit;--markdown-title-font: inherit;--markdown-font: inherit;--markdown-font-size: inherit;--markdown-line-height: 1.5}.field-description,.markdown-body{font-size:var(--markdown-font-size, 14px)}.field-description,.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;position:relative;font-family:var(--markdown-font);line-height:var(--markdown-line-height);color:var(--markdown-text);word-wrap:break-word}.field-description:before,.field-description:after,.markdown-body:before,.markdown-body:after{content:"";display:table}.field-description:after,.markdown-body:after{clear:both}.field-description ul,.markdown-body ul{list-style:initial}.field-description .anchor,.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.field-description .anchor:focus,.markdown-body .anchor:focus{outline:0}.field-description h1:hover .anchor,.field-description h2:hover .anchor,.field-description h3:hover .anchor,.field-description h4:hover .anchor,.field-description h5:hover .anchor,.field-description h6:hover .anchor,.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.field-description details,.markdown-body details{display:block}.field-description summary,.markdown-body summary{display:list-item}.field-description a,.markdown-body a{transition:.15s ease}.field-description a:hover,.markdown-body a:hover{text-decoration:underline}.field-description a:active,.field-description a:hover,.markdown-body a:active,.markdown-body a:hover{outline-width:0}.field-description a:not([href]),.markdown-body a:not([href]){color:inherit;text-decoration:none}.field-description strong,.markdown-body strong{font-weight:inherit;font-weight:bolder}.field-description h1,.markdown-body h1{font-size:2em;margin:.67em 0}.field-description hr,.markdown-body hr{box-sizing:content-box;height:0;overflow:hidden;margin:15px 0;border-width:0 0 1px;border-bottom:1px solid var(--markdown-edge, #dfe2e5);background:transparent}.field-description hr:before,.field-description hr:after,.markdown-body hr:before,.markdown-body hr:after{content:"";display:table}.field-description hr:after,.markdown-body hr:after{clear:both}.field-description input,.markdown-body input{font:inherit;margin:0}.field-description input,.markdown-body input{overflow:visible}.field-description [type=checkbox],.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.field-description *,.markdown-body *{box-sizing:border-box}.field-description input,.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.field-description strong,.markdown-body strong{font-weight:600}.field-description details summary,.markdown-body details summary{cursor:pointer}.field-description h1,.field-description h2,.field-description h3,.field-description h4,.field-description h5,.field-description h6,.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.25;color:var(--markdown-title);font-family:var(--markdown-title-font);font-size:var(--markdown-title-size);font-weight:var(--markdown-title-weight, 600);margin-top:var(--markdown-title-marginTop, 1em);margin-bottom:var(--markdown-title-marginBottom, 1rem)}.field-description h1,.markdown-body h1{font-size:1.75em;font-size:var(--markdown-title-size, 1.75em)}.field-description h2,.markdown-body h2{font-size:1.5em;font-size:var(--markdown-title-size, 1.5em)}.field-description h1,.markdown-body h1{font-weight:700;font-weight:var(--markdown-title-weight, 700)}.field-description h2,.markdown-body h2{font-weight:600;font-weight:var(--markdown-title-weight, 600)}.field-description h3,.field-description h4,.markdown-body h3,.markdown-body h4{font-weight:600;font-weight:var(--markdown-title-weight, 600)}.field-description h3,.markdown-body h3{font-size:1.25em;font-size:var(--markdown-title-size, 1.25em)}.field-description h4,.markdown-body h4{font-size:1em;font-size:var(--markdown-title-size, 1em)}.field-description h5,.field-description h6,.markdown-body h5,.markdown-body h6{font-weight:600;font-weight:var(--markdown-title-weight, 600)}.field-description h5,.markdown-body h5{font-size:.875em;font-size:var(--markdown-title-size, 0.875em)}.field-description h6,.markdown-body h6{font-size:.85em;font-size:var(--markdown-title-size, 0.85em);color:var(--markdown-title, #6a737d)}.field-description p,.field-description .p,.markdown-body p,.markdown-body .p{margin-bottom:10px;margin-top:0}.field-description blockquote,.markdown-body blockquote{margin:0}.field-description ol,.field-description ul,.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:0}.field-description ol ol,.field-description ul ol,.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.field-description ol ol ol,.field-description ol ul ol,.field-description ul ol ol,.field-description ul ul ol,.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.field-description dd,.markdown-body dd{margin-left:0}.field-description input::-webkit-inner-spin-button,.field-description input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.field-description>:first-child,.markdown-body>:first-child{margin-top:0 !important}.field-description>:last-child,.markdown-body>:last-child{margin-bottom:0 !important}.field-description blockquote,.field-description dl,.field-description ol,.field-description p,.field-description pre,.field-description table,.field-description ul,.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:15px}.field-description blockquote,.markdown-body blockquote{display:block;border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}.field-description blockquote>:first-child,.markdown-body blockquote>:first-child{margin-top:0}.field-description blockquote>:last-child,.markdown-body blockquote>:last-child{margin-bottom:0}.field-description ol,.field-description ul,.markdown-body ol,.markdown-body ul{padding-left:2em}.field-description ol ol,.field-description ol ul,.field-description ul ol,.field-description ul ul,.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.field-description li,.markdown-body li{word-wrap:break-all}.field-description li>p,.markdown-body li>p{margin-top:1em}.field-description li+li,.markdown-body li+li{margin-top:.25em}.field-description dl,.markdown-body dl{padding:0}.field-description dl dt,.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:1em;padding:0}.field-description dl dd,.markdown-body dl dd{margin-bottom:1em;padding:0 1em}.field-description :checked+.radio-label,.markdown-body :checked+.radio-label{border-color:var(--project-color-primary);position:relative;z-index:1}.field-description .task-list-item,.markdown-body .task-list-item{list-style-type:none}.field-description .task-list-item+.task-list-item,.markdown-body .task-list-item+.task-list-item{margin-top:3px}.field-description .task-list-item input,.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.field-description p.blank-line,.markdown-body p.blank-line{height:1.5em}.field-description h5,.field-description h6,.markdown-body h5,.markdown-body h6{font-size:.9em}.field-description blockquote h1:last-child,.field-description blockquote h2:last-child,.markdown-body blockquote h1:last-child,.markdown-body blockquote h2:last-child{border-bottom:0}.field-description>*,.markdown-body>*{margin-top:15px;margin-bottom:15px !important}.field-description .task-list-item input,.markdown-body .task-list-item input{margin:0 .5em .25em -1.25em}.field-description a[href],.field-description a:not([href=""]),.markdown-body a[href],.markdown-body a:not([href=""]){text-decoration:underline}
391
391
 
package/dist/main.js CHANGED
@@ -9686,9 +9686,11 @@ module.exports.GlossaryContext = GlossaryContext;
9686
9686
 
9687
9687
  /***/ }),
9688
9688
 
9689
- /***/ 8039:
9689
+ /***/ 822:
9690
9690
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9691
9691
 
9692
+ var _extends = __webpack_require__(7154);
9693
+
9692
9694
  var _slicedToArray = __webpack_require__(3038);
9693
9695
 
9694
9696
  var _classCallCheck = __webpack_require__(4575);
@@ -9711,7 +9713,7 @@ var React = __webpack_require__(4466);
9711
9713
 
9712
9714
  var PropTypes = __webpack_require__(5697);
9713
9715
 
9714
- var MATCH_SCRIPT_TAGS = /<script\b[^>]*>([\s\S]*?)<\/script>\n?/gim;
9716
+ var MATCH_SCRIPT_TAGS = /<script\b[^>]*>([\s\S]*?)<\/script *>\n?/gim;
9715
9717
 
9716
9718
  var extractScripts = function extractScripts() {
9717
9719
  var html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
@@ -9762,6 +9764,16 @@ var HTMLBlock = /*#__PURE__*/function (_React$Component) {
9762
9764
  }, {
9763
9765
  key: "render",
9764
9766
  value: function render() {
9767
+ var _this$props = this.props,
9768
+ html = _this$props.html,
9769
+ safeMode = _this$props.safeMode;
9770
+
9771
+ if (safeMode) {
9772
+ return /*#__PURE__*/React.createElement("pre", {
9773
+ className: "html-unsafe"
9774
+ }, /*#__PURE__*/React.createElement("code", null, html));
9775
+ }
9776
+
9765
9777
  return /*#__PURE__*/React.createElement("div", {
9766
9778
  className: "rdmd-html",
9767
9779
  dangerouslySetInnerHTML: {
@@ -9775,17 +9787,30 @@ var HTMLBlock = /*#__PURE__*/function (_React$Component) {
9775
9787
  }(React.Component);
9776
9788
 
9777
9789
  HTMLBlock.defaultProps = {
9778
- runScripts: false
9790
+ runScripts: false,
9791
+ safeMode: false
9779
9792
  };
9780
9793
  HTMLBlock.propTypes = {
9781
9794
  html: PropTypes.string,
9782
- runScripts: PropTypes.any
9795
+ runScripts: PropTypes.any,
9796
+ safeMode: PropTypes.bool
9783
9797
  };
9784
9798
 
9785
- module.exports = function (sanitize) {
9799
+ var CreateHtmlBlock = function CreateHtmlBlock(_ref) {
9800
+ var safeMode = _ref.safeMode;
9801
+ return (// eslint-disable-next-line react/display-name
9802
+ function (props) {
9803
+ return /*#__PURE__*/React.createElement(HTMLBlock, _extends({}, props, {
9804
+ safeMode: safeMode
9805
+ }));
9806
+ }
9807
+ );
9808
+ };
9809
+
9810
+ module.exports = function (sanitize, opts) {
9786
9811
  sanitize.tagNames.push('html-block');
9787
9812
  sanitize.attributes['html-block'] = ['html', 'runScripts'];
9788
- return HTMLBlock;
9813
+ return CreateHtmlBlock(opts);
9789
9814
  };
9790
9815
 
9791
9816
  /***/ }),
@@ -10155,38 +10180,38 @@ module.exports = TableOfContents;
10155
10180
  "use strict";
10156
10181
  __webpack_require__.r(__webpack_exports__);
10157
10182
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10158
- /* harmony export */ "Anchor": () => (/* reexport default from dynamic */ _Anchor__WEBPACK_IMPORTED_MODULE_3___default.a),
10159
- /* harmony export */ "Callout": () => (/* reexport default from dynamic */ _Callout__WEBPACK_IMPORTED_MODULE_5___default.a),
10160
- /* harmony export */ "Code": () => (/* reexport default from dynamic */ _Code__WEBPACK_IMPORTED_MODULE_1___default.a),
10161
- /* harmony export */ "CodeTabs": () => (/* reexport default from dynamic */ _CodeTabs__WEBPACK_IMPORTED_MODULE_6___default.a),
10162
- /* harmony export */ "Embed": () => (/* reexport default from dynamic */ _Embed__WEBPACK_IMPORTED_MODULE_8___default.a),
10163
- /* harmony export */ "GlossaryItem": () => (/* reexport default from dynamic */ _GlossaryItem__WEBPACK_IMPORTED_MODULE_0___default.a),
10164
- /* harmony export */ "HTMLBlock": () => (/* reexport default from dynamic */ _HTMLBlock__WEBPACK_IMPORTED_MODULE_9___default.a),
10165
- /* harmony export */ "Heading": () => (/* reexport default from dynamic */ _Heading__WEBPACK_IMPORTED_MODULE_4___default.a),
10166
- /* harmony export */ "Image": () => (/* reexport default from dynamic */ _Image__WEBPACK_IMPORTED_MODULE_7___default.a),
10167
- /* harmony export */ "Table": () => (/* reexport default from dynamic */ _Table__WEBPACK_IMPORTED_MODULE_2___default.a),
10183
+ /* harmony export */ "Anchor": () => (/* reexport default from dynamic */ _Anchor__WEBPACK_IMPORTED_MODULE_0___default.a),
10184
+ /* harmony export */ "Callout": () => (/* reexport default from dynamic */ _Callout__WEBPACK_IMPORTED_MODULE_1___default.a),
10185
+ /* harmony export */ "Code": () => (/* reexport default from dynamic */ _Code__WEBPACK_IMPORTED_MODULE_2___default.a),
10186
+ /* harmony export */ "CodeTabs": () => (/* reexport default from dynamic */ _CodeTabs__WEBPACK_IMPORTED_MODULE_3___default.a),
10187
+ /* harmony export */ "Embed": () => (/* reexport default from dynamic */ _Embed__WEBPACK_IMPORTED_MODULE_4___default.a),
10188
+ /* harmony export */ "GlossaryItem": () => (/* reexport default from dynamic */ _GlossaryItem__WEBPACK_IMPORTED_MODULE_5___default.a),
10189
+ /* harmony export */ "HTMLBlock": () => (/* reexport default from dynamic */ _HTMLBlock__WEBPACK_IMPORTED_MODULE_6___default.a),
10190
+ /* harmony export */ "Heading": () => (/* reexport default from dynamic */ _Heading__WEBPACK_IMPORTED_MODULE_7___default.a),
10191
+ /* harmony export */ "Image": () => (/* reexport default from dynamic */ _Image__WEBPACK_IMPORTED_MODULE_8___default.a),
10192
+ /* harmony export */ "Table": () => (/* reexport default from dynamic */ _Table__WEBPACK_IMPORTED_MODULE_9___default.a),
10168
10193
  /* harmony export */ "TableOfContents": () => (/* reexport default from dynamic */ _TableOfContents__WEBPACK_IMPORTED_MODULE_10___default.a)
10169
10194
  /* harmony export */ });
10170
- /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6566);
10171
- /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_GlossaryItem__WEBPACK_IMPORTED_MODULE_0__);
10172
- /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8297);
10173
- /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Code__WEBPACK_IMPORTED_MODULE_1__);
10174
- /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(484);
10175
- /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Table__WEBPACK_IMPORTED_MODULE_2__);
10176
- /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8447);
10177
- /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Anchor__WEBPACK_IMPORTED_MODULE_3__);
10178
- /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1984);
10179
- /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Heading__WEBPACK_IMPORTED_MODULE_4__);
10180
- /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2015);
10181
- /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Callout__WEBPACK_IMPORTED_MODULE_5__);
10182
- /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6553);
10183
- /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_CodeTabs__WEBPACK_IMPORTED_MODULE_6__);
10184
- /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9167);
10185
- /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Image__WEBPACK_IMPORTED_MODULE_7__);
10186
- /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1053);
10187
- /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Embed__WEBPACK_IMPORTED_MODULE_8__);
10188
- /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8039);
10189
- /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_HTMLBlock__WEBPACK_IMPORTED_MODULE_9__);
10195
+ /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8447);
10196
+ /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Anchor__WEBPACK_IMPORTED_MODULE_0__);
10197
+ /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2015);
10198
+ /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Callout__WEBPACK_IMPORTED_MODULE_1__);
10199
+ /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8297);
10200
+ /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Code__WEBPACK_IMPORTED_MODULE_2__);
10201
+ /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6553);
10202
+ /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_CodeTabs__WEBPACK_IMPORTED_MODULE_3__);
10203
+ /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1053);
10204
+ /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Embed__WEBPACK_IMPORTED_MODULE_4__);
10205
+ /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6566);
10206
+ /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_GlossaryItem__WEBPACK_IMPORTED_MODULE_5__);
10207
+ /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(822);
10208
+ /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_HTMLBlock__WEBPACK_IMPORTED_MODULE_6__);
10209
+ /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1984);
10210
+ /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Heading__WEBPACK_IMPORTED_MODULE_7__);
10211
+ /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9167);
10212
+ /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Image__WEBPACK_IMPORTED_MODULE_8__);
10213
+ /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(484);
10214
+ /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Table__WEBPACK_IMPORTED_MODULE_9__);
10190
10215
  /* harmony import */ var _TableOfContents__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4479);
10191
10216
  /* harmony import */ var _TableOfContents__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_TableOfContents__WEBPACK_IMPORTED_MODULE_10__);
10192
10217
 
@@ -27879,6 +27904,7 @@ var options = {
27879
27904
  setext: true
27880
27905
  },
27881
27906
  normalize: true,
27907
+ safeMode: false,
27882
27908
  settings: {
27883
27909
  position: false
27884
27910
  },
@@ -28829,6 +28855,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
28829
28855
  /* eslint-disable consistent-return */
28830
28856
  var RGXP = /^\[block:(.*)\]([^]+?)\[\/block\]/;
28831
28857
  var compatibilityMode;
28858
+ var safeMode;
28832
28859
 
28833
28860
  var WrapPinnedBlocks = function WrapPinnedBlocks(node, json) {
28834
28861
  if (!json.sidebar) return node;
@@ -29105,7 +29132,8 @@ function tokenize(eat, value) {
29105
29132
  hName: 'html-block',
29106
29133
  hProperties: {
29107
29134
  html: json.html,
29108
- runScripts: compatibilityMode
29135
+ runScripts: compatibilityMode,
29136
+ safeMode: safeMode
29109
29137
  }
29110
29138
  }
29111
29139
  }, json));
@@ -29130,6 +29158,7 @@ function parser() {
29130
29158
  var tokenizers = Parser.prototype.blockTokenizers;
29131
29159
  var methods = Parser.prototype.blockMethods;
29132
29160
  if (this.data('compatibilityMode')) compatibilityMode = true;
29161
+ if (this.data('safeMode')) safeMode = true;
29133
29162
  tokenizers.magicBlocks = tokenize;
29134
29163
  methods.splice(methods.indexOf('newline'), 0, 'magicBlocks');
29135
29164
  }
@@ -52002,7 +52031,7 @@ function reactProcessor() {
52002
52031
  Fragment: React.Fragment,
52003
52032
  components: _objectSpread({
52004
52033
  'code-tabs': CodeTabs(sanitize, opts),
52005
- 'html-block': HTMLBlock(sanitize),
52034
+ 'html-block': HTMLBlock(sanitize, opts),
52006
52035
  'rdme-callout': Callout(sanitize),
52007
52036
  'readme-variable': Variable,
52008
52037
  'readme-glossary-item': GlossaryItem,
package/dist/main.node.js CHANGED
@@ -9686,9 +9686,11 @@ module.exports.GlossaryContext = GlossaryContext;
9686
9686
 
9687
9687
  /***/ }),
9688
9688
 
9689
- /***/ 8039:
9689
+ /***/ 822:
9690
9690
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9691
9691
 
9692
+ var _extends = __webpack_require__(7154);
9693
+
9692
9694
  var _slicedToArray = __webpack_require__(3038);
9693
9695
 
9694
9696
  var _classCallCheck = __webpack_require__(4575);
@@ -9711,7 +9713,7 @@ var React = __webpack_require__(4466);
9711
9713
 
9712
9714
  var PropTypes = __webpack_require__(5697);
9713
9715
 
9714
- var MATCH_SCRIPT_TAGS = /<script\b[^>]*>([\s\S]*?)<\/script>\n?/gim;
9716
+ var MATCH_SCRIPT_TAGS = /<script\b[^>]*>([\s\S]*?)<\/script *>\n?/gim;
9715
9717
 
9716
9718
  var extractScripts = function extractScripts() {
9717
9719
  var html = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
@@ -9762,6 +9764,16 @@ var HTMLBlock = /*#__PURE__*/function (_React$Component) {
9762
9764
  }, {
9763
9765
  key: "render",
9764
9766
  value: function render() {
9767
+ var _this$props = this.props,
9768
+ html = _this$props.html,
9769
+ safeMode = _this$props.safeMode;
9770
+
9771
+ if (safeMode) {
9772
+ return /*#__PURE__*/React.createElement("pre", {
9773
+ className: "html-unsafe"
9774
+ }, /*#__PURE__*/React.createElement("code", null, html));
9775
+ }
9776
+
9765
9777
  return /*#__PURE__*/React.createElement("div", {
9766
9778
  className: "rdmd-html",
9767
9779
  dangerouslySetInnerHTML: {
@@ -9775,17 +9787,30 @@ var HTMLBlock = /*#__PURE__*/function (_React$Component) {
9775
9787
  }(React.Component);
9776
9788
 
9777
9789
  HTMLBlock.defaultProps = {
9778
- runScripts: false
9790
+ runScripts: false,
9791
+ safeMode: false
9779
9792
  };
9780
9793
  HTMLBlock.propTypes = {
9781
9794
  html: PropTypes.string,
9782
- runScripts: PropTypes.any
9795
+ runScripts: PropTypes.any,
9796
+ safeMode: PropTypes.bool
9797
+ };
9798
+
9799
+ var CreateHtmlBlock = function CreateHtmlBlock(_ref) {
9800
+ var safeMode = _ref.safeMode;
9801
+ return (// eslint-disable-next-line react/display-name
9802
+ function (props) {
9803
+ return /*#__PURE__*/React.createElement(HTMLBlock, _extends({}, props, {
9804
+ safeMode: safeMode
9805
+ }));
9806
+ }
9807
+ );
9783
9808
  };
9784
9809
 
9785
- module.exports = function (sanitize) {
9810
+ module.exports = function (sanitize, opts) {
9786
9811
  sanitize.tagNames.push('html-block');
9787
9812
  sanitize.attributes['html-block'] = ['html', 'runScripts'];
9788
- return HTMLBlock;
9813
+ return CreateHtmlBlock(opts);
9789
9814
  };
9790
9815
 
9791
9816
  /***/ }),
@@ -10155,38 +10180,38 @@ module.exports = TableOfContents;
10155
10180
  "use strict";
10156
10181
  __webpack_require__.r(__webpack_exports__);
10157
10182
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10158
- /* harmony export */ "Anchor": () => (/* reexport default from dynamic */ _Anchor__WEBPACK_IMPORTED_MODULE_3___default.a),
10159
- /* harmony export */ "Callout": () => (/* reexport default from dynamic */ _Callout__WEBPACK_IMPORTED_MODULE_5___default.a),
10160
- /* harmony export */ "Code": () => (/* reexport default from dynamic */ _Code__WEBPACK_IMPORTED_MODULE_1___default.a),
10161
- /* harmony export */ "CodeTabs": () => (/* reexport default from dynamic */ _CodeTabs__WEBPACK_IMPORTED_MODULE_6___default.a),
10162
- /* harmony export */ "Embed": () => (/* reexport default from dynamic */ _Embed__WEBPACK_IMPORTED_MODULE_8___default.a),
10163
- /* harmony export */ "GlossaryItem": () => (/* reexport default from dynamic */ _GlossaryItem__WEBPACK_IMPORTED_MODULE_0___default.a),
10164
- /* harmony export */ "HTMLBlock": () => (/* reexport default from dynamic */ _HTMLBlock__WEBPACK_IMPORTED_MODULE_9___default.a),
10165
- /* harmony export */ "Heading": () => (/* reexport default from dynamic */ _Heading__WEBPACK_IMPORTED_MODULE_4___default.a),
10166
- /* harmony export */ "Image": () => (/* reexport default from dynamic */ _Image__WEBPACK_IMPORTED_MODULE_7___default.a),
10167
- /* harmony export */ "Table": () => (/* reexport default from dynamic */ _Table__WEBPACK_IMPORTED_MODULE_2___default.a),
10183
+ /* harmony export */ "Anchor": () => (/* reexport default from dynamic */ _Anchor__WEBPACK_IMPORTED_MODULE_0___default.a),
10184
+ /* harmony export */ "Callout": () => (/* reexport default from dynamic */ _Callout__WEBPACK_IMPORTED_MODULE_1___default.a),
10185
+ /* harmony export */ "Code": () => (/* reexport default from dynamic */ _Code__WEBPACK_IMPORTED_MODULE_2___default.a),
10186
+ /* harmony export */ "CodeTabs": () => (/* reexport default from dynamic */ _CodeTabs__WEBPACK_IMPORTED_MODULE_3___default.a),
10187
+ /* harmony export */ "Embed": () => (/* reexport default from dynamic */ _Embed__WEBPACK_IMPORTED_MODULE_4___default.a),
10188
+ /* harmony export */ "GlossaryItem": () => (/* reexport default from dynamic */ _GlossaryItem__WEBPACK_IMPORTED_MODULE_5___default.a),
10189
+ /* harmony export */ "HTMLBlock": () => (/* reexport default from dynamic */ _HTMLBlock__WEBPACK_IMPORTED_MODULE_6___default.a),
10190
+ /* harmony export */ "Heading": () => (/* reexport default from dynamic */ _Heading__WEBPACK_IMPORTED_MODULE_7___default.a),
10191
+ /* harmony export */ "Image": () => (/* reexport default from dynamic */ _Image__WEBPACK_IMPORTED_MODULE_8___default.a),
10192
+ /* harmony export */ "Table": () => (/* reexport default from dynamic */ _Table__WEBPACK_IMPORTED_MODULE_9___default.a),
10168
10193
  /* harmony export */ "TableOfContents": () => (/* reexport default from dynamic */ _TableOfContents__WEBPACK_IMPORTED_MODULE_10___default.a)
10169
10194
  /* harmony export */ });
10170
- /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6566);
10171
- /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_GlossaryItem__WEBPACK_IMPORTED_MODULE_0__);
10172
- /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8297);
10173
- /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Code__WEBPACK_IMPORTED_MODULE_1__);
10174
- /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(484);
10175
- /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Table__WEBPACK_IMPORTED_MODULE_2__);
10176
- /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8447);
10177
- /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Anchor__WEBPACK_IMPORTED_MODULE_3__);
10178
- /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1984);
10179
- /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Heading__WEBPACK_IMPORTED_MODULE_4__);
10180
- /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2015);
10181
- /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Callout__WEBPACK_IMPORTED_MODULE_5__);
10182
- /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6553);
10183
- /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_CodeTabs__WEBPACK_IMPORTED_MODULE_6__);
10184
- /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9167);
10185
- /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Image__WEBPACK_IMPORTED_MODULE_7__);
10186
- /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1053);
10187
- /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Embed__WEBPACK_IMPORTED_MODULE_8__);
10188
- /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8039);
10189
- /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_HTMLBlock__WEBPACK_IMPORTED_MODULE_9__);
10195
+ /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8447);
10196
+ /* harmony import */ var _Anchor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Anchor__WEBPACK_IMPORTED_MODULE_0__);
10197
+ /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2015);
10198
+ /* harmony import */ var _Callout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Callout__WEBPACK_IMPORTED_MODULE_1__);
10199
+ /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8297);
10200
+ /* harmony import */ var _Code__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Code__WEBPACK_IMPORTED_MODULE_2__);
10201
+ /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6553);
10202
+ /* harmony import */ var _CodeTabs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_CodeTabs__WEBPACK_IMPORTED_MODULE_3__);
10203
+ /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1053);
10204
+ /* harmony import */ var _Embed__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Embed__WEBPACK_IMPORTED_MODULE_4__);
10205
+ /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6566);
10206
+ /* harmony import */ var _GlossaryItem__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_GlossaryItem__WEBPACK_IMPORTED_MODULE_5__);
10207
+ /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(822);
10208
+ /* harmony import */ var _HTMLBlock__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_HTMLBlock__WEBPACK_IMPORTED_MODULE_6__);
10209
+ /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1984);
10210
+ /* harmony import */ var _Heading__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Heading__WEBPACK_IMPORTED_MODULE_7__);
10211
+ /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9167);
10212
+ /* harmony import */ var _Image__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Image__WEBPACK_IMPORTED_MODULE_8__);
10213
+ /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(484);
10214
+ /* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_Table__WEBPACK_IMPORTED_MODULE_9__);
10190
10215
  /* harmony import */ var _TableOfContents__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4479);
10191
10216
  /* harmony import */ var _TableOfContents__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_TableOfContents__WEBPACK_IMPORTED_MODULE_10__);
10192
10217
 
@@ -10701,6 +10726,7 @@ var options = {
10701
10726
  setext: true
10702
10727
  },
10703
10728
  normalize: true,
10729
+ safeMode: false,
10704
10730
  settings: {
10705
10731
  position: false
10706
10732
  },
@@ -11651,6 +11677,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
11651
11677
  /* eslint-disable consistent-return */
11652
11678
  var RGXP = /^\[block:(.*)\]([^]+?)\[\/block\]/;
11653
11679
  var compatibilityMode;
11680
+ var safeMode;
11654
11681
 
11655
11682
  var WrapPinnedBlocks = function WrapPinnedBlocks(node, json) {
11656
11683
  if (!json.sidebar) return node;
@@ -11927,7 +11954,8 @@ function tokenize(eat, value) {
11927
11954
  hName: 'html-block',
11928
11955
  hProperties: {
11929
11956
  html: json.html,
11930
- runScripts: compatibilityMode
11957
+ runScripts: compatibilityMode,
11958
+ safeMode: safeMode
11931
11959
  }
11932
11960
  }
11933
11961
  }, json));
@@ -11952,6 +11980,7 @@ function parser() {
11952
11980
  var tokenizers = Parser.prototype.blockTokenizers;
11953
11981
  var methods = Parser.prototype.blockMethods;
11954
11982
  if (this.data('compatibilityMode')) compatibilityMode = true;
11983
+ if (this.data('safeMode')) safeMode = true;
11955
11984
  tokenizers.magicBlocks = tokenize;
11956
11985
  methods.splice(methods.indexOf('newline'), 0, 'magicBlocks');
11957
11986
  }
@@ -34347,7 +34376,7 @@ function reactProcessor() {
34347
34376
  Fragment: React.Fragment,
34348
34377
  components: _objectSpread({
34349
34378
  'code-tabs': CodeTabs(sanitize, opts),
34350
- 'html-block': HTMLBlock(sanitize),
34379
+ 'html-block': HTMLBlock(sanitize, opts),
34351
34380
  'rdme-callout': Callout(sanitize),
34352
34381
  'readme-variable': Variable,
34353
34382
  'readme-glossary-item': GlossaryItem,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@readme/markdown",
3
3
  "description": "ReadMe's React-based Markdown parser",
4
4
  "author": "Rafe Goldberg <rafe@readme.io>",
5
- "version": "6.41.0",
5
+ "version": "6.43.0",
6
6
  "main": "dist/main.node.js",
7
7
  "browser": "dist/main.js",
8
8
  "files": [
@@ -87,7 +87,7 @@
87
87
  "identity-obj-proxy": "^3.0.0",
88
88
  "jest": "^28.1.0",
89
89
  "jest-environment-jsdom": "^28.1.0",
90
- "jest-image-snapshot": "^4.5.1",
90
+ "jest-image-snapshot": "^5.1.0",
91
91
  "jest-puppeteer": "^6.1.0",
92
92
  "mini-css-extract-plugin": "^2.6.0",
93
93
  "node-sass": "^7.0.1",
@@ -1,15 +1,9 @@
1
1
  @import '../components/Image/style.scss';
2
-
3
2
  @import '../components/Table/style.scss';
4
-
5
3
  @import '../components/TableOfContents/style.scss';
6
-
7
4
  @import '../components/Code/style.scss';
8
-
9
5
  @import '../components/CodeTabs/style.scss';
10
-
11
6
  @import '../components/Callout/style.scss';
12
-
13
7
  @import '../components/Heading/style.scss';
14
-
8
+ @import '../components/HTMLBlock/style.scss';
15
9
  @import '../components/Embed/style.scss';