markdown-to-html-cli 3.5.4 → 3.6.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 +3 -0
- package/lib/create.js +8 -2
- package/lib/create.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/nodes/dark-mode.d.ts +1 -1
- package/lib/nodes/dark-mode.js +13 -5
- package/lib/nodes/dark-mode.js.map +1 -1
- package/lib/nodes/markdown-style.js +2 -1
- package/lib/nodes/markdown-style.js.map +1 -1
- package/package.json +1 -1
- package/src/create.ts +8 -2
- package/src/index.ts +1 -1
- package/src/nodes/dark-mode.ts +14 -6
- package/src/nodes/markdown-style.ts +2 -1
package/README.md
CHANGED
|
@@ -153,6 +153,9 @@ Example:
|
|
|
153
153
|
npx markdown-to-html-cli
|
|
154
154
|
npx markdown-to-html-cli --markdown="Hello World!"
|
|
155
155
|
npx markdown-to-html-cli --no-dark-mode
|
|
156
|
+
npx markdown-to-html-cli --dark-mode auto
|
|
157
|
+
npx markdown-to-html-cli --dark-mode auto --markdown-style-theme dark
|
|
158
|
+
npx markdown-to-html-cli --no-dark-mode --markdown-style-theme dark
|
|
156
159
|
npx markdown-to-html-cli --markdown-style-theme dark
|
|
157
160
|
npx markdown-to-html-cli --github-corners https://github.com/jaywcjlove/markdown-to-html-cli
|
|
158
161
|
npx markdown-to-html-cli --github-corners https://github.com/jaywcjlove --github-corners-fork
|
package/lib/create.js
CHANGED
|
@@ -30,10 +30,16 @@ export function create(options = {}) {
|
|
|
30
30
|
[rehypeFormat],
|
|
31
31
|
],
|
|
32
32
|
rewrite: (node, index, parent) => {
|
|
33
|
-
if (
|
|
33
|
+
if (node.type === 'element' && node.tagName === 'html') {
|
|
34
|
+
if (markdownStyleTheme) {
|
|
35
|
+
node.properties = node.properties || {};
|
|
36
|
+
node.properties['data-color-mode'] = markdownStyleTheme;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if ((node.type === 'element' && node.tagName === 'body') || (!document && node.type === 'root')) {
|
|
34
40
|
node.children = markdownStyle(node.children, markdownStyleTheme, wrapperStyle);
|
|
41
|
+
darkMode(darkModeTheme).forEach(item => node.children.unshift(item));
|
|
35
42
|
if (darkModeTheme) {
|
|
36
|
-
darkMode().forEach(item => node.children.unshift(item));
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
45
|
if (options['github-corners'] && ((document && node.type == 'element' && node.tagName === 'body') || (!document && node.type === 'root'))) {
|
package/lib/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,QAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,aAAa;AACb,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU7C,MAAM,UAAU,MAAM,CAAC,UAA2B,EAAE;IAClD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpL,MAAM,SAAS,GAAY;QACzB,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,YAAY,CAAC;QAC7B,aAAa,EAAE;YACb,CAAC,UAAU,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACxB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACpB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC5B,OAAO,GAAG,CAAC,IAAI,CAAC;qBACjB;gBACH,CAAC,CAAC;YACF,CAAC,UAAU,CAAC;YACZ,CAAC,sBAAsB,CAAC;YACxB,CAAC,YAAY,CAAC;SACf;QACD,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface RunArgvs extends Omit<ParsedArgs, '_'> {
|
|
|
12
12
|
/** Github corners style. */
|
|
13
13
|
'github-corners-fork'?: boolean;
|
|
14
14
|
/** Disable light and dark theme styles button. */
|
|
15
|
-
'dark-mode'?: boolean;
|
|
15
|
+
'dark-mode'?: boolean | 'auto';
|
|
16
16
|
/** Setting markdown-style light/dark theme. */
|
|
17
17
|
'markdown-style-theme'?: 'dark' | 'light';
|
|
18
18
|
/** Markdown string. */
|
package/lib/nodes/dark-mode.d.ts
CHANGED
package/lib/nodes/dark-mode.js
CHANGED
|
@@ -3,7 +3,18 @@ const scriptString = `const t=document;const e="_dark_mode_theme_";const s="perm
|
|
|
3
3
|
* @wcj/dark-mode@1.0.14
|
|
4
4
|
* https://github.com/jaywcjlove/dark-mode
|
|
5
5
|
*/
|
|
6
|
-
export function darkMode() {
|
|
6
|
+
export function darkMode(mode) {
|
|
7
|
+
const properties = {
|
|
8
|
+
style: 'position: fixed; top: 8px; left: 10px; z-index: 999;',
|
|
9
|
+
dark: 'Dark',
|
|
10
|
+
light: 'Light',
|
|
11
|
+
};
|
|
12
|
+
if (mode && mode !== 'auto') {
|
|
13
|
+
properties.permanent = 'true';
|
|
14
|
+
}
|
|
15
|
+
if (mode === false || mode === 'false') {
|
|
16
|
+
properties.style = properties.style + 'display: none;';
|
|
17
|
+
}
|
|
7
18
|
return [{
|
|
8
19
|
type: 'element',
|
|
9
20
|
tagName: 'script',
|
|
@@ -18,10 +29,7 @@ export function darkMode() {
|
|
|
18
29
|
type: 'element',
|
|
19
30
|
tagName: 'dark-mode',
|
|
20
31
|
properties: {
|
|
21
|
-
|
|
22
|
-
style: 'position: fixed; top: 8px; left: 10px; z-index: 999;',
|
|
23
|
-
dark: 'Dark',
|
|
24
|
-
light: 'Light',
|
|
32
|
+
...properties
|
|
25
33
|
},
|
|
26
34
|
children: []
|
|
27
35
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dark-mode.js","sourceRoot":"","sources":["../../src/nodes/dark-mode.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,o8GAAo8G,CAAA;AAEz9G;;;GAGG;AACH,MAAM,UAAU,QAAQ;
|
|
1
|
+
{"version":3,"file":"dark-mode.js","sourceRoot":"","sources":["../../src/nodes/dark-mode.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,o8GAAo8G,CAAA;AAEz9G;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAuB;IAC9C,MAAM,UAAU,GAAe;QAC7B,KAAK,EAAE,sDAAsD;QAC7D,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;KACf,CAAA;IACD,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE;QAC3B,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC;KAC/B;IACD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAA6B,EAAE;QAC5D,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,gBAAgB,CAAC;KACxD;IACD,OAAO,CAAC;YACN,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;YACjB,gBAAgB;YAChB,6CAA6C;YAC7C,KAAK;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,YAAY;iBACpB,CAAC;SACH,EAAE;YACD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE;gBACV,GAAG,UAAU;aACd;YACD,QAAQ,EAAE,EAAE;SACb,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -76,7 +76,8 @@ export function markdownStyle(child, markdownStyleTheme, style = '') {
|
|
|
76
76
|
className: 'markdown-style',
|
|
77
77
|
};
|
|
78
78
|
if (markdownStyleTheme) {
|
|
79
|
-
properties.theme = markdownStyleTheme;
|
|
79
|
+
// properties.theme = markdownStyleTheme;
|
|
80
|
+
properties.mode = markdownStyleTheme;
|
|
80
81
|
}
|
|
81
82
|
return [{
|
|
82
83
|
type: 'element',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-style.js","sourceRoot":"","sources":["../../src/nodes/markdown-style.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;EAcvB,CAAC;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG;;;EAGnB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAiDsC,CAAA;AAExD,MAAM,UAAU,aAAa,CAAC,KAAuB,EAAE,kBAAqC,EAAE,QAAgB,EAAE;IAC9G,MAAM,UAAU,GAA2B;QACzC,KAAK,EAAE,2DAA2D,GAAG,KAAK;QAC1E,SAAS,EAAE,gBAAgB;KAC5B,CAAA;IACD,IAAI,kBAAkB,EAAE;QACtB,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"markdown-style.js","sourceRoot":"","sources":["../../src/nodes/markdown-style.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;EAcvB,CAAC;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG;;;EAGnB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAiDsC,CAAA;AAExD,MAAM,UAAU,aAAa,CAAC,KAAuB,EAAE,kBAAqC,EAAE,QAAgB,EAAE;IAC9G,MAAM,UAAU,GAA2B;QACzC,KAAK,EAAE,2DAA2D,GAAG,KAAK;QAC1E,SAAS,EAAE,gBAAgB;KAC5B,CAAA;IACD,IAAI,kBAAkB,EAAE;QACtB,yCAAyC;QACzC,UAAU,CAAC,IAAI,GAAG,kBAAkB,CAAC;KACtC;IACD,OAAO,CAAC;YACN,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;YACjB,gBAAgB;YAChB,uBAAuB;YACvB,4DAA4D;YAC5D,KAAK;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,YAAY;iBACpB,CAAC;SACH,EAAE;YACD,IAAI,EAAE,SAAS;YACf,UAAU;YACV,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
package/src/create.ts
CHANGED
|
@@ -40,10 +40,16 @@ export function create(options: MDToHTMLOptions = {}) {
|
|
|
40
40
|
[rehypeFormat],
|
|
41
41
|
],
|
|
42
42
|
rewrite: (node, index, parent) => {
|
|
43
|
-
if (
|
|
43
|
+
if (node.type === 'element' && node.tagName === 'html') {
|
|
44
|
+
if (markdownStyleTheme) {
|
|
45
|
+
node.properties = node.properties || {};
|
|
46
|
+
node.properties['data-color-mode'] = markdownStyleTheme;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if ((node.type === 'element' && node.tagName === 'body') || (!document && node.type === 'root')) {
|
|
44
50
|
node.children = markdownStyle(node.children as any, markdownStyleTheme, wrapperStyle);
|
|
51
|
+
darkMode(darkModeTheme).forEach(item => node.children.unshift(item));
|
|
45
52
|
if (darkModeTheme) {
|
|
46
|
-
darkMode().forEach(item => node.children.unshift(item));
|
|
47
53
|
}
|
|
48
54
|
}
|
|
49
55
|
if (options['github-corners'] && ((document && node.type == 'element' && node.tagName === 'body') || (!document && node.type === 'root'))) {
|
package/src/index.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface RunArgvs extends Omit<ParsedArgs, '_'> {
|
|
|
18
18
|
/** Github corners style. */
|
|
19
19
|
'github-corners-fork'?: boolean;
|
|
20
20
|
/** Disable light and dark theme styles button. */
|
|
21
|
-
'dark-mode'?: boolean;
|
|
21
|
+
'dark-mode'?: boolean | 'auto';
|
|
22
22
|
/** Setting markdown-style light/dark theme. */
|
|
23
23
|
'markdown-style-theme'?: 'dark' | 'light';
|
|
24
24
|
/** Markdown string. */
|
package/src/nodes/dark-mode.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Element } from 'hast';
|
|
1
|
+
import { Element, Properties } from 'hast';
|
|
2
2
|
|
|
3
3
|
const scriptString = `const t=document;const e="_dark_mode_theme_";const s="permanent";const o="colorschemechange";const i="permanentcolorscheme";const h="light";const r="dark";const n=(t,e,s=e)=>{Object.defineProperty(t,s,{enumerable:true,get(){const t=this.getAttribute(e);return t===null?"":t},set(t){this.setAttribute(e,t)}})};const c=(t,e,s=e)=>{Object.defineProperty(t,s,{enumerable:true,get(){return this.hasAttribute(e)},set(t){if(t){this.setAttribute(e,"")}else{this.removeAttribute(e)}}})};class a extends HTMLElement{static get observedAttributes(){return["mode",h,r,s]}LOCAL_NANE=e;constructor(){super();this.t()}connectedCallback(){n(this,"mode");n(this,r);n(this,h);c(this,s);const a=localStorage.getItem(e);if(a&&[h,r].includes(a)){this.mode=a;this.permanent=true}if(this.permanent&&!a){localStorage.setItem(e,this.mode)}const l=[h,r].includes(a);if(this.permanent&&a){this.o()}else{if(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches){this.mode=r;this.o()}if(window.matchMedia&&window.matchMedia("(prefers-color-scheme: light)").matches){this.mode=h;this.o()}}if(!this.permanent&&!l){window.matchMedia("(prefers-color-scheme: light)").onchange=t=>{this.mode=t.matches?h:r;this.o()};window.matchMedia("(prefers-color-scheme: dark)").onchange=t=>{this.mode=t.matches?r:h;this.o()}}const d=new MutationObserver(((s,h)=>{this.mode=t.documentElement.dataset.colorMode;if(this.permanent&&l){localStorage.setItem(e,this.mode);this.i(i,{permanent:this.permanent})}this.h();this.i(o,{colorScheme:this.mode})}));d.observe(t.documentElement,{attributes:true});this.i(o,{colorScheme:this.mode});this.h()}attributeChangedCallback(t,s,o){if(t==="mode"&&s!==o&&[h,r].includes(o)){const t=localStorage.getItem(e);if(this.mode===t){this.mode=o;this.h();this.o()}else if(this.mode&&this.mode!==t){this.h();this.o()}}else if((t===h||t===r)&&s!==o){this.h()}if(t==="permanent"&&typeof this.permanent==="boolean"){this.permanent?localStorage.setItem(e,this.mode):localStorage.removeItem(e)}}o(){t.documentElement.setAttribute("data-color-mode",this.mode)}h(){this.icon.textContent=this.mode===h?"🌒":"🌞";this.text.textContent=this.mode===h?this.getAttribute(r):this.getAttribute(h)}t(){var s=this.attachShadow({mode:"open"});this.label=t.createElement("span");this.label.setAttribute("class","wrapper");this.label.onclick=()=>{this.mode=this.mode===h?r:h;if(this.permanent){localStorage.setItem(e,this.mode)}this.o();this.h()};s.appendChild(this.label);this.icon=t.createElement("span");this.label.appendChild(this.icon);this.text=t.createElement("span");this.label.appendChild(this.text);const o=\`\n[data-color-mode*='dark'], [data-color-mode*='dark'] body {\n color-scheme: dark;\n --color-theme-bg: #0d1117;\n --color-theme-text: #c9d1d9;\n background-color: var(--color-theme-bg);\n color: var(--color-theme-text);\n}\n\n[data-color-mode*='light'], [data-color-mode*='light'] body {\n color-scheme: light;\n --color-theme-bg: #fff;\n --color-theme-text: #24292f;\n background-color: var(--color-theme-bg);\n color: var(--color-theme-text);\n}\`;const i="_dark_mode_style_";const n=t.getElementById(i);if(!n){var c=t.createElement("style");c.id=i;c.textContent=o;t.head.appendChild(c)}var a=t.createElement("style");a.textContent=\`\n .wrapper { cursor: pointer; user-select: none; position: relative; }\n .wrapper > span + span { margin-left: .4rem; }\n \`;s.appendChild(a)}i(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:true,composed:true,detail:e}))}}customElements.define("dark-mode",a);`
|
|
4
4
|
|
|
@@ -6,7 +6,18 @@ const scriptString = `const t=document;const e="_dark_mode_theme_";const s="perm
|
|
|
6
6
|
* @wcj/dark-mode@1.0.14
|
|
7
7
|
* https://github.com/jaywcjlove/dark-mode
|
|
8
8
|
*/
|
|
9
|
-
export function darkMode(): Element[] {
|
|
9
|
+
export function darkMode(mode?: boolean | 'auto'): Element[] {
|
|
10
|
+
const properties: Properties = {
|
|
11
|
+
style: 'position: fixed; top: 8px; left: 10px; z-index: 999;',
|
|
12
|
+
dark: 'Dark',
|
|
13
|
+
light: 'Light',
|
|
14
|
+
}
|
|
15
|
+
if (mode && mode !== 'auto') {
|
|
16
|
+
properties.permanent = 'true';
|
|
17
|
+
}
|
|
18
|
+
if (mode === false || mode === 'false' as unknown as boolean) {
|
|
19
|
+
properties.style = properties.style + 'display: none;';
|
|
20
|
+
}
|
|
10
21
|
return [{
|
|
11
22
|
type: 'element',
|
|
12
23
|
tagName: 'script',
|
|
@@ -21,10 +32,7 @@ export function darkMode(): Element[] {
|
|
|
21
32
|
type: 'element',
|
|
22
33
|
tagName: 'dark-mode',
|
|
23
34
|
properties: {
|
|
24
|
-
|
|
25
|
-
style: 'position: fixed; top: 8px; left: 10px; z-index: 999;',
|
|
26
|
-
dark: 'Dark',
|
|
27
|
-
light: 'Light',
|
|
35
|
+
...properties
|
|
28
36
|
},
|
|
29
37
|
children: []
|
|
30
38
|
}]
|
|
@@ -80,7 +80,8 @@ export function markdownStyle(child: ElementContent[], markdownStyleTheme?: 'dar
|
|
|
80
80
|
className: 'markdown-style',
|
|
81
81
|
}
|
|
82
82
|
if (markdownStyleTheme) {
|
|
83
|
-
properties.theme = markdownStyleTheme;
|
|
83
|
+
// properties.theme = markdownStyleTheme;
|
|
84
|
+
properties.mode = markdownStyleTheme;
|
|
84
85
|
}
|
|
85
86
|
return [{
|
|
86
87
|
type: 'element',
|