@pep/term-deck 1.0.10

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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +356 -0
  3. package/bin/term-deck.ts +45 -0
  4. package/examples/slides/01-welcome.md +9 -0
  5. package/examples/slides/02-features.md +12 -0
  6. package/examples/slides/03-colors.md +17 -0
  7. package/examples/slides/04-ascii-art.md +11 -0
  8. package/examples/slides/05-gradients.md +14 -0
  9. package/examples/slides/06-themes.md +13 -0
  10. package/examples/slides/07-markdown.md +13 -0
  11. package/examples/slides/08-controls.md +13 -0
  12. package/examples/slides/09-thanks.md +11 -0
  13. package/examples/slides/deck.config.ts +13 -0
  14. package/examples/slides-hacker/01-welcome.md +9 -0
  15. package/examples/slides-hacker/02-features.md +12 -0
  16. package/examples/slides-hacker/03-colors.md +17 -0
  17. package/examples/slides-hacker/04-ascii-art.md +11 -0
  18. package/examples/slides-hacker/05-gradients.md +14 -0
  19. package/examples/slides-hacker/06-themes.md +13 -0
  20. package/examples/slides-hacker/07-markdown.md +13 -0
  21. package/examples/slides-hacker/08-controls.md +13 -0
  22. package/examples/slides-hacker/09-thanks.md +11 -0
  23. package/examples/slides-hacker/deck.config.ts +13 -0
  24. package/examples/slides-matrix/01-welcome.md +9 -0
  25. package/examples/slides-matrix/02-features.md +12 -0
  26. package/examples/slides-matrix/03-colors.md +17 -0
  27. package/examples/slides-matrix/04-ascii-art.md +11 -0
  28. package/examples/slides-matrix/05-gradients.md +14 -0
  29. package/examples/slides-matrix/06-themes.md +13 -0
  30. package/examples/slides-matrix/07-markdown.md +13 -0
  31. package/examples/slides-matrix/08-controls.md +13 -0
  32. package/examples/slides-matrix/09-thanks.md +11 -0
  33. package/examples/slides-matrix/deck.config.ts +13 -0
  34. package/examples/slides-minimal/01-welcome.md +9 -0
  35. package/examples/slides-minimal/02-features.md +12 -0
  36. package/examples/slides-minimal/03-colors.md +17 -0
  37. package/examples/slides-minimal/04-ascii-art.md +11 -0
  38. package/examples/slides-minimal/05-gradients.md +14 -0
  39. package/examples/slides-minimal/06-themes.md +13 -0
  40. package/examples/slides-minimal/07-markdown.md +13 -0
  41. package/examples/slides-minimal/08-controls.md +13 -0
  42. package/examples/slides-minimal/09-thanks.md +11 -0
  43. package/examples/slides-minimal/deck.config.ts +13 -0
  44. package/examples/slides-neon/01-welcome.md +9 -0
  45. package/examples/slides-neon/02-features.md +12 -0
  46. package/examples/slides-neon/03-colors.md +17 -0
  47. package/examples/slides-neon/04-ascii-art.md +11 -0
  48. package/examples/slides-neon/05-gradients.md +14 -0
  49. package/examples/slides-neon/06-themes.md +13 -0
  50. package/examples/slides-neon/07-markdown.md +13 -0
  51. package/examples/slides-neon/08-controls.md +13 -0
  52. package/examples/slides-neon/09-thanks.md +11 -0
  53. package/examples/slides-neon/deck.config.ts +13 -0
  54. package/examples/slides-retro/01-welcome.md +9 -0
  55. package/examples/slides-retro/02-features.md +12 -0
  56. package/examples/slides-retro/03-colors.md +17 -0
  57. package/examples/slides-retro/04-ascii-art.md +11 -0
  58. package/examples/slides-retro/05-gradients.md +14 -0
  59. package/examples/slides-retro/06-themes.md +13 -0
  60. package/examples/slides-retro/07-markdown.md +13 -0
  61. package/examples/slides-retro/08-controls.md +13 -0
  62. package/examples/slides-retro/09-thanks.md +11 -0
  63. package/examples/slides-retro/deck.config.ts +13 -0
  64. package/package.json +66 -0
  65. package/src/cli/__tests__/errors.test.ts +201 -0
  66. package/src/cli/__tests__/help.test.ts +157 -0
  67. package/src/cli/__tests__/init.test.ts +110 -0
  68. package/src/cli/commands/export.ts +33 -0
  69. package/src/cli/commands/init.ts +125 -0
  70. package/src/cli/commands/present.ts +29 -0
  71. package/src/cli/errors.ts +77 -0
  72. package/src/core/__tests__/slide.test.ts +1759 -0
  73. package/src/core/__tests__/theme.test.ts +1103 -0
  74. package/src/core/slide.ts +509 -0
  75. package/src/core/theme.ts +388 -0
  76. package/src/export/__tests__/recorder.test.ts +566 -0
  77. package/src/export/recorder.ts +639 -0
  78. package/src/index.ts +36 -0
  79. package/src/presenter/__tests__/main.test.ts +244 -0
  80. package/src/presenter/main.ts +658 -0
  81. package/src/renderer/__tests__/screen-extended.test.ts +801 -0
  82. package/src/renderer/__tests__/screen.test.ts +525 -0
  83. package/src/renderer/screen.ts +671 -0
  84. package/src/schemas/__tests__/config.test.ts +429 -0
  85. package/src/schemas/__tests__/slide.test.ts +349 -0
  86. package/src/schemas/__tests__/theme.test.ts +970 -0
  87. package/src/schemas/__tests__/validation.test.ts +256 -0
  88. package/src/schemas/config.ts +58 -0
  89. package/src/schemas/slide.ts +56 -0
  90. package/src/schemas/theme.ts +203 -0
  91. package/src/schemas/validation.ts +64 -0
  92. package/src/themes/matrix/index.ts +53 -0
  93. package/themes/hacker.ts +53 -0
  94. package/themes/minimal.ts +53 -0
  95. package/themes/neon.ts +53 -0
  96. package/themes/retro.ts +53 -0
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from '../src/index.js';
2
+ import hacker from '../themes/hacker.js';
3
+
4
+ export default defineConfig({
5
+ title: 'term-deck Demo [HACKER]',
6
+ author: 'term-deck',
7
+ theme: hacker,
8
+ settings: {
9
+ startSlide: 0,
10
+ loop: false,
11
+ showProgress: false,
12
+ },
13
+ });
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Welcome
3
+ bigText: TERM-DECK
4
+ gradient: fire
5
+ ---
6
+
7
+ {WHITE}Terminal Presentations with Style{/}
8
+
9
+ {CYAN}Press Space or Enter to continue{/}
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: Features
3
+ bigText: FEATURES
4
+ gradient: cool
5
+ ---
6
+
7
+ {GREEN}✓{/} {WHITE}Matrix rain backgrounds{/}
8
+ {GREEN}✓{/} {WHITE}Glitch reveal animations{/}
9
+ {GREEN}✓{/} {WHITE}ASCII art with figlet{/}
10
+ {GREEN}✓{/} {WHITE}Color gradients{/}
11
+ {GREEN}✓{/} {WHITE}Multiple themes{/}
12
+ {GREEN}✓{/} {WHITE}Markdown slides{/}
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: Color Tokens
3
+ bigText: COLORS
4
+ gradient: pink
5
+ ---
6
+
7
+ {GREEN}Green text with GREEN token{/}
8
+
9
+ {ORANGE}Orange text with ORANGE token{/}
10
+
11
+ {CYAN}Cyan text with CYAN token{/}
12
+
13
+ {PINK}Pink text with PINK token{/}
14
+
15
+ {WHITE}White text with WHITE token{/}
16
+
17
+ {GRAY}Gray text with GRAY token{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: ASCII Art
3
+ bigText: ASCII
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Big text is rendered with {CYAN}figlet{WHITE}.{/}
8
+
9
+ {GRAY}You can use single or multiple lines.{/}
10
+
11
+ {ORANGE}Perfect for titles and emphasis!{/}
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Gradients
3
+ bigText:
4
+ - GRADIENT
5
+ - TEXT
6
+ gradient: fire
7
+ ---
8
+
9
+ {WHITE}Choose from built-in gradients:{/}
10
+
11
+ {ORANGE}fire{/} {GRAY}→ Warm colors{/}
12
+ {CYAN}cool{/} {GRAY}→ Cool colors{/}
13
+ {PINK}pink{/} {GRAY}→ Pink/magenta{/}
14
+ {GREEN}hf{/} {GRAY}→ HelloFresh brand{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Themes
3
+ bigText: THEMES
4
+ gradient: cool
5
+ ---
6
+
7
+ {WHITE}5 Built-in Themes:{/}
8
+
9
+ {GREEN}matrix{/} {GRAY}- Classic cyberpunk{/}
10
+ {PINK}neon{/} {GRAY}- Hot pink and cyan{/}
11
+ {ORANGE}retro{/} {GRAY}- 80s synthwave{/}
12
+ {WHITE}minimal{/} {GRAY}- Clean monochrome{/}
13
+ {GREEN}hacker{/} {GRAY}- All green terminal{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Markdown Slides
3
+ bigText: MARKDOWN
4
+ gradient: pink
5
+ ---
6
+
7
+ {WHITE}Each slide is a markdown file:{/}
8
+
9
+ {CYAN}01-intro.md{/}
10
+ {CYAN}02-content.md{/}
11
+ {CYAN}03-conclusion.md{/}
12
+
13
+ {GRAY}Easy to edit, version, and share!{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Keyboard Controls
3
+ bigText: CONTROLS
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Navigate your presentation:{/}
8
+
9
+ {CYAN}Space / Enter / →{/} {GRAY}Next slide{/}
10
+ {CYAN}← / Backspace{/} {GRAY}Previous slide{/}
11
+ {CYAN}0-9{/} {GRAY}Jump to slide{/}
12
+ {CYAN}l{/} {GRAY}Show slide list{/}
13
+ {CYAN}q / Esc{/} {GRAY}Quit{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: Thanks
3
+ bigText: THANKS
4
+ gradient: fire
5
+ ---
6
+
7
+ {CYAN}github.com/PepijnSenders/term-deck{/}
8
+
9
+ {WHITE}Built with {GREEN}Bun{WHITE}, {PINK}TypeScript{WHITE}, and {ORANGE}neo-blessed{/}
10
+
11
+ {GRAY}MIT License{/}
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from '../src/index.js';
2
+ import matrix from '../src/themes/matrix/index.js';
3
+
4
+ export default defineConfig({
5
+ title: 'term-deck Demo [MATRIX]',
6
+ author: 'term-deck',
7
+ theme: matrix,
8
+ settings: {
9
+ startSlide: 0,
10
+ loop: false,
11
+ showProgress: false,
12
+ },
13
+ });
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Welcome
3
+ bigText: TERM-DECK
4
+ gradient: fire
5
+ ---
6
+
7
+ {WHITE}Terminal Presentations with Style{/}
8
+
9
+ {CYAN}Press Space or Enter to continue{/}
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: Features
3
+ bigText: FEATURES
4
+ gradient: cool
5
+ ---
6
+
7
+ {GREEN}✓{/} {WHITE}Matrix rain backgrounds{/}
8
+ {GREEN}✓{/} {WHITE}Glitch reveal animations{/}
9
+ {GREEN}✓{/} {WHITE}ASCII art with figlet{/}
10
+ {GREEN}✓{/} {WHITE}Color gradients{/}
11
+ {GREEN}✓{/} {WHITE}Multiple themes{/}
12
+ {GREEN}✓{/} {WHITE}Markdown slides{/}
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: Color Tokens
3
+ bigText: COLORS
4
+ gradient: pink
5
+ ---
6
+
7
+ {GREEN}Green text with GREEN token{/}
8
+
9
+ {ORANGE}Orange text with ORANGE token{/}
10
+
11
+ {CYAN}Cyan text with CYAN token{/}
12
+
13
+ {PINK}Pink text with PINK token{/}
14
+
15
+ {WHITE}White text with WHITE token{/}
16
+
17
+ {GRAY}Gray text with GRAY token{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: ASCII Art
3
+ bigText: ASCII
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Big text is rendered with {CYAN}figlet{WHITE}.{/}
8
+
9
+ {GRAY}You can use single or multiple lines.{/}
10
+
11
+ {ORANGE}Perfect for titles and emphasis!{/}
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Gradients
3
+ bigText:
4
+ - GRADIENT
5
+ - TEXT
6
+ gradient: fire
7
+ ---
8
+
9
+ {WHITE}Choose from built-in gradients:{/}
10
+
11
+ {ORANGE}fire{/} {GRAY}→ Warm colors{/}
12
+ {CYAN}cool{/} {GRAY}→ Cool colors{/}
13
+ {PINK}pink{/} {GRAY}→ Pink/magenta{/}
14
+ {GREEN}hf{/} {GRAY}→ HelloFresh brand{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Themes
3
+ bigText: THEMES
4
+ gradient: cool
5
+ ---
6
+
7
+ {WHITE}5 Built-in Themes:{/}
8
+
9
+ {GREEN}matrix{/} {GRAY}- Classic cyberpunk{/}
10
+ {PINK}neon{/} {GRAY}- Hot pink and cyan{/}
11
+ {ORANGE}retro{/} {GRAY}- 80s synthwave{/}
12
+ {WHITE}minimal{/} {GRAY}- Clean monochrome{/}
13
+ {GREEN}hacker{/} {GRAY}- All green terminal{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Markdown Slides
3
+ bigText: MARKDOWN
4
+ gradient: pink
5
+ ---
6
+
7
+ {WHITE}Each slide is a markdown file:{/}
8
+
9
+ {CYAN}01-intro.md{/}
10
+ {CYAN}02-content.md{/}
11
+ {CYAN}03-conclusion.md{/}
12
+
13
+ {GRAY}Easy to edit, version, and share!{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Keyboard Controls
3
+ bigText: CONTROLS
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Navigate your presentation:{/}
8
+
9
+ {CYAN}Space / Enter / →{/} {GRAY}Next slide{/}
10
+ {CYAN}← / Backspace{/} {GRAY}Previous slide{/}
11
+ {CYAN}0-9{/} {GRAY}Jump to slide{/}
12
+ {CYAN}l{/} {GRAY}Show slide list{/}
13
+ {CYAN}q / Esc{/} {GRAY}Quit{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: Thanks
3
+ bigText: THANKS
4
+ gradient: fire
5
+ ---
6
+
7
+ {CYAN}github.com/PepijnSenders/term-deck{/}
8
+
9
+ {WHITE}Built with {GREEN}Bun{WHITE}, {PINK}TypeScript{WHITE}, and {ORANGE}neo-blessed{/}
10
+
11
+ {GRAY}MIT License{/}
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from '../src/index.js';
2
+ import minimal from '../themes/minimal.js';
3
+
4
+ export default defineConfig({
5
+ title: 'term-deck Demo [MINIMAL]',
6
+ author: 'term-deck',
7
+ theme: minimal,
8
+ settings: {
9
+ startSlide: 0,
10
+ loop: false,
11
+ showProgress: false,
12
+ },
13
+ });
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Welcome
3
+ bigText: TERM-DECK
4
+ gradient: fire
5
+ ---
6
+
7
+ {WHITE}Terminal Presentations with Style{/}
8
+
9
+ {CYAN}Press Space or Enter to continue{/}
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: Features
3
+ bigText: FEATURES
4
+ gradient: cool
5
+ ---
6
+
7
+ {GREEN}✓{/} {WHITE}Matrix rain backgrounds{/}
8
+ {GREEN}✓{/} {WHITE}Glitch reveal animations{/}
9
+ {GREEN}✓{/} {WHITE}ASCII art with figlet{/}
10
+ {GREEN}✓{/} {WHITE}Color gradients{/}
11
+ {GREEN}✓{/} {WHITE}Multiple themes{/}
12
+ {GREEN}✓{/} {WHITE}Markdown slides{/}
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: Color Tokens
3
+ bigText: COLORS
4
+ gradient: pink
5
+ ---
6
+
7
+ {GREEN}Green text with GREEN token{/}
8
+
9
+ {ORANGE}Orange text with ORANGE token{/}
10
+
11
+ {CYAN}Cyan text with CYAN token{/}
12
+
13
+ {PINK}Pink text with PINK token{/}
14
+
15
+ {WHITE}White text with WHITE token{/}
16
+
17
+ {GRAY}Gray text with GRAY token{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: ASCII Art
3
+ bigText: ASCII
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Big text is rendered with {CYAN}figlet{WHITE}.{/}
8
+
9
+ {GRAY}You can use single or multiple lines.{/}
10
+
11
+ {ORANGE}Perfect for titles and emphasis!{/}
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Gradients
3
+ bigText:
4
+ - GRADIENT
5
+ - TEXT
6
+ gradient: fire
7
+ ---
8
+
9
+ {WHITE}Choose from built-in gradients:{/}
10
+
11
+ {ORANGE}fire{/} {GRAY}→ Warm colors{/}
12
+ {CYAN}cool{/} {GRAY}→ Cool colors{/}
13
+ {PINK}pink{/} {GRAY}→ Pink/magenta{/}
14
+ {GREEN}hf{/} {GRAY}→ HelloFresh brand{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Themes
3
+ bigText: THEMES
4
+ gradient: cool
5
+ ---
6
+
7
+ {WHITE}5 Built-in Themes:{/}
8
+
9
+ {GREEN}matrix{/} {GRAY}- Classic cyberpunk{/}
10
+ {PINK}neon{/} {GRAY}- Hot pink and cyan{/}
11
+ {ORANGE}retro{/} {GRAY}- 80s synthwave{/}
12
+ {WHITE}minimal{/} {GRAY}- Clean monochrome{/}
13
+ {GREEN}hacker{/} {GRAY}- All green terminal{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Markdown Slides
3
+ bigText: MARKDOWN
4
+ gradient: pink
5
+ ---
6
+
7
+ {WHITE}Each slide is a markdown file:{/}
8
+
9
+ {CYAN}01-intro.md{/}
10
+ {CYAN}02-content.md{/}
11
+ {CYAN}03-conclusion.md{/}
12
+
13
+ {GRAY}Easy to edit, version, and share!{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Keyboard Controls
3
+ bigText: CONTROLS
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Navigate your presentation:{/}
8
+
9
+ {CYAN}Space / Enter / →{/} {GRAY}Next slide{/}
10
+ {CYAN}← / Backspace{/} {GRAY}Previous slide{/}
11
+ {CYAN}0-9{/} {GRAY}Jump to slide{/}
12
+ {CYAN}l{/} {GRAY}Show slide list{/}
13
+ {CYAN}q / Esc{/} {GRAY}Quit{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: Thanks
3
+ bigText: THANKS
4
+ gradient: fire
5
+ ---
6
+
7
+ {CYAN}github.com/PepijnSenders/term-deck{/}
8
+
9
+ {WHITE}Built with {GREEN}Bun{WHITE}, {PINK}TypeScript{WHITE}, and {ORANGE}neo-blessed{/}
10
+
11
+ {GRAY}MIT License{/}
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from '../src/index.js';
2
+ import neon from '../themes/neon.js';
3
+
4
+ export default defineConfig({
5
+ title: 'term-deck Demo [NEON]',
6
+ author: 'term-deck',
7
+ theme: neon,
8
+ settings: {
9
+ startSlide: 0,
10
+ loop: false,
11
+ showProgress: false,
12
+ },
13
+ });
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Welcome
3
+ bigText: TERM-DECK
4
+ gradient: fire
5
+ ---
6
+
7
+ {WHITE}Terminal Presentations with Style{/}
8
+
9
+ {CYAN}Press Space or Enter to continue{/}
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: Features
3
+ bigText: FEATURES
4
+ gradient: cool
5
+ ---
6
+
7
+ {GREEN}✓{/} {WHITE}Matrix rain backgrounds{/}
8
+ {GREEN}✓{/} {WHITE}Glitch reveal animations{/}
9
+ {GREEN}✓{/} {WHITE}ASCII art with figlet{/}
10
+ {GREEN}✓{/} {WHITE}Color gradients{/}
11
+ {GREEN}✓{/} {WHITE}Multiple themes{/}
12
+ {GREEN}✓{/} {WHITE}Markdown slides{/}
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: Color Tokens
3
+ bigText: COLORS
4
+ gradient: pink
5
+ ---
6
+
7
+ {GREEN}Green text with GREEN token{/}
8
+
9
+ {ORANGE}Orange text with ORANGE token{/}
10
+
11
+ {CYAN}Cyan text with CYAN token{/}
12
+
13
+ {PINK}Pink text with PINK token{/}
14
+
15
+ {WHITE}White text with WHITE token{/}
16
+
17
+ {GRAY}Gray text with GRAY token{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: ASCII Art
3
+ bigText: ASCII
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Big text is rendered with {CYAN}figlet{WHITE}.{/}
8
+
9
+ {GRAY}You can use single or multiple lines.{/}
10
+
11
+ {ORANGE}Perfect for titles and emphasis!{/}
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Gradients
3
+ bigText:
4
+ - GRADIENT
5
+ - TEXT
6
+ gradient: fire
7
+ ---
8
+
9
+ {WHITE}Choose from built-in gradients:{/}
10
+
11
+ {ORANGE}fire{/} {GRAY}→ Warm colors{/}
12
+ {CYAN}cool{/} {GRAY}→ Cool colors{/}
13
+ {PINK}pink{/} {GRAY}→ Pink/magenta{/}
14
+ {GREEN}hf{/} {GRAY}→ HelloFresh brand{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Themes
3
+ bigText: THEMES
4
+ gradient: cool
5
+ ---
6
+
7
+ {WHITE}5 Built-in Themes:{/}
8
+
9
+ {GREEN}matrix{/} {GRAY}- Classic cyberpunk{/}
10
+ {PINK}neon{/} {GRAY}- Hot pink and cyan{/}
11
+ {ORANGE}retro{/} {GRAY}- 80s synthwave{/}
12
+ {WHITE}minimal{/} {GRAY}- Clean monochrome{/}
13
+ {GREEN}hacker{/} {GRAY}- All green terminal{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Markdown Slides
3
+ bigText: MARKDOWN
4
+ gradient: pink
5
+ ---
6
+
7
+ {WHITE}Each slide is a markdown file:{/}
8
+
9
+ {CYAN}01-intro.md{/}
10
+ {CYAN}02-content.md{/}
11
+ {CYAN}03-conclusion.md{/}
12
+
13
+ {GRAY}Easy to edit, version, and share!{/}
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Keyboard Controls
3
+ bigText: CONTROLS
4
+ gradient: hf
5
+ ---
6
+
7
+ {WHITE}Navigate your presentation:{/}
8
+
9
+ {CYAN}Space / Enter / →{/} {GRAY}Next slide{/}
10
+ {CYAN}← / Backspace{/} {GRAY}Previous slide{/}
11
+ {CYAN}0-9{/} {GRAY}Jump to slide{/}
12
+ {CYAN}l{/} {GRAY}Show slide list{/}
13
+ {CYAN}q / Esc{/} {GRAY}Quit{/}
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: Thanks
3
+ bigText: THANKS
4
+ gradient: fire
5
+ ---
6
+
7
+ {CYAN}github.com/PepijnSenders/term-deck{/}
8
+
9
+ {WHITE}Built with {GREEN}Bun{WHITE}, {PINK}TypeScript{WHITE}, and {ORANGE}neo-blessed{/}
10
+
11
+ {GRAY}MIT License{/}
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from '../src/index.js';
2
+ import retro from '../themes/retro.js';
3
+
4
+ export default defineConfig({
5
+ title: 'term-deck Demo [RETRO]',
6
+ author: 'term-deck',
7
+ theme: retro,
8
+ settings: {
9
+ startSlide: 0,
10
+ loop: false,
11
+ showProgress: false,
12
+ },
13
+ });
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@pep/term-deck",
3
+ "version": "1.0.10",
4
+ "description": "Terminal presentation tool with a cyberpunk aesthetic",
5
+ "type": "module",
6
+ "bin": {
7
+ "term-deck": "./bin/term-deck.ts"
8
+ },
9
+ "main": "src/index.ts",
10
+ "types": "src/index.ts",
11
+ "keywords": [
12
+ "presentation",
13
+ "terminal",
14
+ "slides",
15
+ "cli",
16
+ "tui",
17
+ "blessed",
18
+ "cyberpunk",
19
+ "markdown"
20
+ ],
21
+ "author": "Pepijn Senders",
22
+ "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/PepijnSenders/term-deck.git"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/PepijnSenders/term-deck/issues"
29
+ },
30
+ "homepage": "https://github.com/PepijnSenders/term-deck#readme",
31
+ "engines": {
32
+ "node": ">=18.0.0"
33
+ },
34
+ "files": [
35
+ "bin/",
36
+ "src/",
37
+ "themes/",
38
+ "examples/",
39
+ "LICENSE",
40
+ "README.md"
41
+ ],
42
+ "dependencies": {
43
+ "commander": "^14.0.2",
44
+ "neo-blessed": "^0.2.0",
45
+ "figlet": "^1.9.4",
46
+ "gradient-string": "^3.0.0",
47
+ "gray-matter": "^4.0.3",
48
+ "yaml": "^2.7.0",
49
+ "zod": "^3.22.4",
50
+ "deepmerge": "^4.3.1",
51
+ "mermaid-ascii": "^1.0.0",
52
+ "canvas": "^3.2.1",
53
+ "tsx": "^4.19.2"
54
+ },
55
+ "devDependencies": {
56
+ "@types/node": "^22.0.0",
57
+ "@types/figlet": "^1.5.8",
58
+ "typescript": "^5.9.3",
59
+ "vitest": "^2.1.8"
60
+ },
61
+ "scripts": {
62
+ "dev": "tsx bin/term-deck.ts",
63
+ "test": "vitest",
64
+ "typecheck": "tsc --noEmit"
65
+ }
66
+ }