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 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 ((node.type == 'element' && node.tagName === 'body') || (!document && node.type === 'root')) {
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":"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"}
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. */
@@ -3,4 +3,4 @@ import { Element } from 'hast';
3
3
  * @wcj/dark-mode@1.0.14
4
4
  * https://github.com/jaywcjlove/dark-mode
5
5
  */
6
- export declare function darkMode(): Element[];
6
+ export declare function darkMode(mode?: boolean | 'auto'): Element[];
@@ -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
- permanent: 'true',
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;IACtB,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,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,sDAAsD;gBAC7D,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,QAAQ,EAAE,EAAE;SACb,CAAC,CAAA;AACJ,CAAC"}
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,KAAK,GAAG,kBAAkB,CAAC;KACvC;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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markdown-to-html-cli",
3
- "version": "3.5.4",
3
+ "version": "3.6.0",
4
4
  "license": "MIT",
5
5
  "description": "Command line tool generates markdown as html.",
6
6
  "homepage": "https://jaywcjlove.github.io/markdown-to-html-cli",
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 ((node.type == 'element' && node.tagName === 'body') || (!document && node.type === 'root')) {
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. */
@@ -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
- permanent: 'true',
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',