yumiamd 0.1.3 → 0.1.5
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 +148 -0
- package/dist/bin.d.ts +0 -2
- package/dist/bin.js +11 -9
- package/dist/chunk-MKQASLAK.js +1143 -0
- package/dist/index.d.ts +16 -2
- package/dist/index.js +54 -2
- package/package.json +13 -8
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js.map +0 -1
- package/dist/cli.d.ts +0 -7
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -222
- package/dist/cli.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# YumiaMD (`yumiamd`)
|
|
2
|
+
|
|
3
|
+
> **A Markdown-based presentation language & compiler designed for humans and AI.**
|
|
4
|
+
> Author decks in clean Markdown and compile directly to **100% native, editable PowerPoint (.pptx)** presentations, vector PDFs, and interactive HTML5 slides.
|
|
5
|
+
|
|
6
|
+
[](https://www.npmjs.com/package/yumiamd)
|
|
7
|
+
[](https://github.com/biagio-scaglia/Yumia-MD/blob/main/LICENSE)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## ⚡ Quick Start (Zero Install)
|
|
12
|
+
|
|
13
|
+
You can run YumiaMD immediately without installing anything:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Initialize a starter presentation
|
|
17
|
+
npx yumiamd init my-deck
|
|
18
|
+
|
|
19
|
+
# Compile presentation to an editable PowerPoint (.pptx)
|
|
20
|
+
npx yumiamd build presentation.yumia.md --out presentation.pptx
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 📦 Installation
|
|
26
|
+
|
|
27
|
+
### Global CLI Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g yumiamd
|
|
31
|
+
# or
|
|
32
|
+
pnpm add -g yumiamd
|
|
33
|
+
# or
|
|
34
|
+
yarn global add yumiamd
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Local Project Dependency
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install yumiamd
|
|
41
|
+
# or
|
|
42
|
+
pnpm add yumiamd
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 🚀 CLI Commands
|
|
48
|
+
|
|
49
|
+
Once installed globally or locally, the `yumia` / `yumiamd` commands are available in your terminal:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Initialize a new presentation template
|
|
53
|
+
yumia init my-presentation
|
|
54
|
+
|
|
55
|
+
# Validate markdown syntax and AST structure
|
|
56
|
+
yumia validate presentation.yumia.md
|
|
57
|
+
|
|
58
|
+
# Lint presentation for vertical overflow and layout issues
|
|
59
|
+
yumia lint presentation.yumia.md
|
|
60
|
+
|
|
61
|
+
# Inspect parsed AST and computed layout bounding boxes
|
|
62
|
+
yumia inspect presentation.yumia.md --layout
|
|
63
|
+
|
|
64
|
+
# Compile to PowerPoint (.pptx)
|
|
65
|
+
yumia build presentation.yumia.md --out dist/presentation.pptx
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 📝 Syntax Example (`presentation.yumia.md`)
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
---
|
|
74
|
+
title: System Architecture & Workflow
|
|
75
|
+
theme: default
|
|
76
|
+
author: Biagio Scaglia
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
# High-Performance Presentation Engine
|
|
80
|
+
|
|
81
|
+
Deterministic compilation from Markdown directly to native PowerPoint slides.
|
|
82
|
+
|
|
83
|
+
:::notes
|
|
84
|
+
Opening slide introducing the core architectural vision.
|
|
85
|
+
:::
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
# Architecture & Capabilities
|
|
90
|
+
|
|
91
|
+
:::columns ratios="50:50"
|
|
92
|
+
|
|
93
|
+
:::column
|
|
94
|
+
:::card Core Engine
|
|
95
|
+
|
|
96
|
+
- 100% Deterministic placement
|
|
97
|
+
- Zero runtime dependencies
|
|
98
|
+
- TypeScript-first architecture
|
|
99
|
+
:::
|
|
100
|
+
:::
|
|
101
|
+
|
|
102
|
+
:::column
|
|
103
|
+
:::card Native PowerPoint Export
|
|
104
|
+
|
|
105
|
+
- Headings, cards, shapes & notes
|
|
106
|
+
- Fully editable OpenXML objects
|
|
107
|
+
- Compatible with PowerPoint & Google Slides
|
|
108
|
+
:::
|
|
109
|
+
:::
|
|
110
|
+
|
|
111
|
+
:::
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 💻 JavaScript / TypeScript API
|
|
117
|
+
|
|
118
|
+
You can also use `yumiamd` programmatically inside your Node.js or TypeScript backend / tools:
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
import { compile, parse, layoutEngine } from 'yumiamd';
|
|
122
|
+
import fs from 'node:fs';
|
|
123
|
+
|
|
124
|
+
const markdown = fs.readFileSync('presentation.yumia.md', 'utf-8');
|
|
125
|
+
|
|
126
|
+
// 1. Compile directly to PPTX buffer / file
|
|
127
|
+
const { buffer, errors } = await compile(markdown, { format: 'pptx' });
|
|
128
|
+
|
|
129
|
+
if (errors.length === 0) {
|
|
130
|
+
fs.writeFileSync('output.pptx', buffer);
|
|
131
|
+
console.log('✅ Presentation generated successfully!');
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## ✨ Key Features
|
|
138
|
+
|
|
139
|
+
- 🎯 **Native Object Principle**: Slides compiled to PowerPoint are **NOT** rasterized screenshot images. Headings, bullet points, cards, and speaker notes are generated as **100% native vector PowerPoint shapes & textboxes** that you can click, re-format, and edit in Microsoft PowerPoint or Google Slides.
|
|
140
|
+
- 📐 **Deterministic Layout Engine**: Semantic multi-column grids, flex cards, and auto-spacing.
|
|
141
|
+
- 🎨 **Semantic Design Tokens**: Built-in themes with typography scales, color palettes, and contrast-safe themes.
|
|
142
|
+
- 🤖 **AI-Friendly Format**: Clean Markdown syntax designed for LLM prompts and agentic workflows.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 📄 License
|
|
147
|
+
|
|
148
|
+
MIT © [Biagio Scaglia](https://github.com/biagio-scaglia)
|
package/dist/bin.d.ts
CHANGED
package/dist/bin.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
runCli
|
|
4
|
+
} from "./chunk-MKQASLAK.js";
|
|
5
|
+
|
|
6
|
+
// src/bin.ts
|
|
7
|
+
var result = await runCli(process.argv);
|
|
4
8
|
if (result.output) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
9
|
+
if (result.exitCode === 0) {
|
|
10
|
+
console.log(result.output);
|
|
11
|
+
} else {
|
|
12
|
+
console.error(result.output);
|
|
13
|
+
}
|
|
11
14
|
}
|
|
12
15
|
process.exit(result.exitCode);
|
|
13
|
-
//# sourceMappingURL=bin.js.map
|