ghost-paper 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +5 -3
  2. package/dist/{-5YRZFEDB.js → -7SCHCOLC.js} +1 -1
  3. package/dist/{chunk-B7BSOHDL.js → chunk-QUOENJTZ.js} +22 -0
  4. package/dist/cli.js +5 -4
  5. package/package.json +2 -2
  6. package/dist/-6A745MKY.js +0 -10
  7. package/dist/-ANANGS26.js +0 -10
  8. package/dist/-EON5YM73.js +0 -10
  9. package/dist/-FCFRRCIG.js +0 -10
  10. package/dist/-G2AWPUXZ.js +0 -10
  11. package/dist/-HRRPL4SN.js +0 -10
  12. package/dist/-K6SQE2E5.js +0 -10
  13. package/dist/-N6RDWVBC.js +0 -10
  14. package/dist/-NRPITI2A.js +0 -10
  15. package/dist/-OKZHAHO3.js +0 -10
  16. package/dist/-RMMSGBXC.js +0 -10
  17. package/dist/-RZB6N6OZ.js +0 -10
  18. package/dist/-TG5MSQYZ.js +0 -10
  19. package/dist/-TTLTI6LQ.js +0 -10
  20. package/dist/-U5MQJGM2.js +0 -10
  21. package/dist/-YCMFHAET.js +0 -10
  22. package/dist/chunk-2QOHE4NF.js +0 -1464
  23. package/dist/chunk-3HX4SVJH.js +0 -1504
  24. package/dist/chunk-4P2YAHD2.js +0 -1522
  25. package/dist/chunk-6WF3MSUR.js +0 -1362
  26. package/dist/chunk-DSRRH4T2.js +0 -1425
  27. package/dist/chunk-J2XA7LOH.js +0 -1463
  28. package/dist/chunk-MNZVZ2ZA.js +0 -1464
  29. package/dist/chunk-NUWIGEJ3.js +0 -1462
  30. package/dist/chunk-QMHJ3BGD.js +0 -1471
  31. package/dist/chunk-RMODJYHI.js +0 -1526
  32. package/dist/chunk-SOKYK7YV.js +0 -1496
  33. package/dist/chunk-TV6ABXBU.js +0 -1534
  34. package/dist/chunk-TW7HQTU6.js +0 -1444
  35. package/dist/chunk-U2G5K2PR.js +0 -1465
  36. package/dist/chunk-UWUILD43.js +0 -1471
  37. package/dist/chunk-ZRSWDAXH.js +0 -1433
  38. package/dist/pdf-ADH6BBSB.js +0 -71
  39. package/dist/pdf-EDRHZK4V.js +0 -72
  40. package/dist/pdf-HC6MMT72.js +0 -62
  41. package/dist/pdf-SKUNOP45.js +0 -62
  42. package/dist/pdf-TQDMPPSC.js +0 -71
  43. package/dist/pdf-VCMDLIDX.js +0 -71
  44. package/dist/pdf-WLYWKSHR.js +0 -71
package/README.md CHANGED
@@ -13,14 +13,16 @@ npm install -g ghost-paper
13
13
  Or run directly:
14
14
 
15
15
  ```bash
16
- npx ghost-paper build report.md
16
+ npx ghost-paper build html report.md
17
17
  ```
18
18
 
19
19
  ## Usage
20
20
 
21
21
  ```bash
22
- ghost-paper build report.md # → report.html
23
- ghost-paper build report.md -o output.html # custom output path
22
+ ghost-paper build html report.md # → report.html
23
+ ghost-paper build html report.md -o output.html # custom output path
24
+ ghost-paper build pdf report.md # → report.pdf
25
+ ghost-paper build pdf report.md --landscape # landscape orientation
24
26
  ```
25
27
 
26
28
  Open the resulting HTML file in any browser. Everything is self-contained — no server needed.
@@ -2,7 +2,7 @@ import {
2
2
  build,
3
3
  buildPdf,
4
4
  buildPrintHtml
5
- } from "./chunk-TW7HQTU6.js";
5
+ } from "./chunk-QUOENJTZ.js";
6
6
  export {
7
7
  build,
8
8
  buildPdf,
@@ -284,6 +284,10 @@ function parse(markdown) {
284
284
  }
285
285
  continue;
286
286
  }
287
+ if (node.type === "thematicBreak") {
288
+ currentTab.elements.push({ kind: "pagebreak" });
289
+ continue;
290
+ }
287
291
  if (node.type === "blockquote") {
288
292
  const html = blockquoteToHtml(node);
289
293
  currentTab.elements.push({ kind: "aside", html });
@@ -957,6 +961,12 @@ var CSS = `
957
961
  color: var(--text-primary);
958
962
  }
959
963
 
964
+ hr.pagebreak {
965
+ border: none;
966
+ border-top: 1px solid var(--border);
967
+ margin: 32px 0;
968
+ }
969
+
960
970
  .tab-content .footnote {
961
971
  font-size: 13px;
962
972
  color: var(--text-muted);
@@ -1267,6 +1277,16 @@ var PRINT_CSS = `
1267
1277
  thead { display: table-header-group; }
1268
1278
  tr { break-inside: avoid; }
1269
1279
 
1280
+ hr.pagebreak {
1281
+ border: none;
1282
+ margin: 0;
1283
+ padding: 0;
1284
+ height: 0;
1285
+ column-span: all;
1286
+ break-after: page;
1287
+ page-break-after: always;
1288
+ }
1289
+
1270
1290
  /* First appendix section starts on a new page */
1271
1291
  .tab-appendix-start { page-break-before: always; break-before: page; }
1272
1292
 
@@ -1365,6 +1385,8 @@ function renderElement(el) {
1365
1385
  return renderTable(el.table);
1366
1386
  case "aside":
1367
1387
  return ` <aside>${el.html}</aside>`;
1388
+ case "pagebreak":
1389
+ return ` <hr class="pagebreak">`;
1368
1390
  }
1369
1391
  }
1370
1392
  function buildSidebar(doc) {
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  build
4
- } from "./chunk-B7BSOHDL.js";
4
+ } from "./chunk-QUOENJTZ.js";
5
5
 
6
6
  // src/cli.ts
7
7
  import { Command } from "commander";
@@ -59,7 +59,8 @@ Write standard markdown tables. Ghost Paper auto-classifies them:
59
59
 
60
60
  Any table that doesn't match these patterns renders as a styled HTML table.`);
61
61
  });
62
- program.command("build").description("Convert a markdown file to an HTML report").argument("<input>", "Markdown file path").option("-o, --output <path>", "Output HTML file path").action((input, opts) => {
62
+ var buildCmd = program.command("build").description("Convert a markdown file to HTML or PDF");
63
+ buildCmd.command("html").description("Convert a markdown file to an HTML report").argument("<input>", "Markdown file path").option("-o, --output <path>", "Output HTML file path").action((input, opts) => {
63
64
  const inputPath = resolve(input);
64
65
  const markdown = readFileSync(inputPath, "utf-8");
65
66
  const outputPath = opts.output ? resolve(opts.output) : inputPath.replace(/\.md$/, ".html");
@@ -67,11 +68,11 @@ program.command("build").description("Convert a markdown file to an HTML report"
67
68
  writeFileSync(outputPath, html, "utf-8");
68
69
  console.log(`\u2728 ${outputPath}`);
69
70
  });
70
- program.command("pdf").description("Convert a markdown file to a PDF report").argument("<input>", "Markdown file path").option("-o, --output <path>", "Output PDF file path").option("--page-size <size>", "Page size: A4 or Letter", "A4").option("--landscape", "Use landscape orientation").action(async (input, opts) => {
71
+ buildCmd.command("pdf").description("Convert a markdown file to a PDF report").argument("<input>", "Markdown file path").option("-o, --output <path>", "Output PDF file path").option("--page-size <size>", "Page size: A4 or Letter", "A4").option("--landscape", "Use landscape orientation").action(async (input, opts) => {
71
72
  const inputPath = resolve(input);
72
73
  const markdown = readFileSync(inputPath, "utf-8");
73
74
  const outputPath = opts.output ? resolve(opts.output) : inputPath.replace(/\.md$/, ".pdf");
74
- const { buildPdf } = await import("./-G2AWPUXZ.js");
75
+ const { buildPdf } = await import("./-7SCHCOLC.js");
75
76
  await buildPdf(markdown, outputPath, {
76
77
  pageSize: opts.pageSize ?? "A4",
77
78
  landscape: opts.landscape ?? false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ghost-paper",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Turn markdown into beautiful HTML reports",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -28,7 +28,7 @@
28
28
  "ghost-paper": "./dist/cli.js"
29
29
  },
30
30
  "scripts": {
31
- "build": "tsup src/cli.ts --format esm --out-dir dist --external puppeteer-core",
31
+ "build": "tsup src/cli.ts --format esm --out-dir dist --external puppeteer-core --clean",
32
32
  "dev": "tsup src/cli.ts --format esm --out-dir dist --watch --external puppeteer-core"
33
33
  },
34
34
  "dependencies": {
package/dist/-6A745MKY.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-ZRSWDAXH.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-ANANGS26.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-6WF3MSUR.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-EON5YM73.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-DSRRH4T2.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-FCFRRCIG.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-4P2YAHD2.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-G2AWPUXZ.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-B7BSOHDL.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-HRRPL4SN.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-QMHJ3BGD.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-K6SQE2E5.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-2QOHE4NF.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-N6RDWVBC.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-SOKYK7YV.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-NRPITI2A.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-TV6ABXBU.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-OKZHAHO3.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-3HX4SVJH.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-RMMSGBXC.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-UWUILD43.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-RZB6N6OZ.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-J2XA7LOH.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-TG5MSQYZ.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-MNZVZ2ZA.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-TTLTI6LQ.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-NUWIGEJ3.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-U5MQJGM2.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-RMODJYHI.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };
package/dist/-YCMFHAET.js DELETED
@@ -1,10 +0,0 @@
1
- import {
2
- build,
3
- buildPdf,
4
- buildPrintHtml
5
- } from "./chunk-U2G5K2PR.js";
6
- export {
7
- build,
8
- buildPdf,
9
- buildPrintHtml
10
- };