markdown-slides-cli 1.0.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 ADDED
@@ -0,0 +1,440 @@
1
+ # 📊 Markdown Slides
2
+
3
+ > A powerful, interactive markdown slide presentation tool with live editing, minimap view, and fullscreen support. Create beautiful presentations from simple markdown files!
4
+
5
+ ![Node.js](https://img.shields.io/badge/node-%3E%3D14.0.0-brightgreen)
6
+ ![License](https://img.shields.io/badge/license-MIT-green)
7
+
8
+ ## ✨ Features
9
+
10
+ - 📝 **Markdown-Based** - Write slides in simple markdown syntax
11
+ - 🗺️ **Minimap View** - Navigate slides with thumbnail overview
12
+ - ✏️ **Live Editor** - Built-in Monaco editor (VS Code's editor)
13
+ - 🎨 **Beautiful Rendering** - Full markdown support with syntax highlighting
14
+ - 📱 **Responsive Design** - Works on desktop, tablet, and mobile
15
+ - 🎬 **Fullscreen Mode** - Present without distractions
16
+ - ⌨️ **Keyboard Navigation** - Navigate with arrow keys and shortcuts
17
+ - 💾 **Export Edited Slides** - Download your modified presentations
18
+ - 🌙 **Dark Theme** - Easy on the eyes during presentations
19
+ - 🚀 **Zero Config** - Works out of the box
20
+
21
+ ## 📦 Installation
22
+
23
+ ### Global Installation
24
+
25
+ ```bash
26
+ npm install -g markdown-slides-cli
27
+ ```
28
+
29
+ After global installation, you can use it anywhere:
30
+
31
+ ```bash
32
+ markdown-slides -f presentation.md
33
+ # or the shorter alias
34
+ md-slides -f presentation.md
35
+ ```
36
+
37
+ ## 🚀 Quick Start
38
+
39
+ ### 1. Create Your Markdown File
40
+
41
+ Create a file called `slides.md`:
42
+
43
+ ```markdown
44
+ # Welcome to My Presentation
45
+ This is the first slide
46
+
47
+ ---
48
+
49
+ # Second Slide
50
+ - Point 1
51
+ - Point 2
52
+ - Point 3
53
+
54
+ ---
55
+
56
+ # Code Example
57
+ ```javascript
58
+ function hello() {
59
+ console.log('Hello World!');
60
+ }
61
+ ```
62
+ ```
63
+
64
+ ### 2. Run the Presentation
65
+
66
+ ```bash
67
+ node markdown-slides.js -f slides.md
68
+ ```
69
+
70
+ Or with global installation:
71
+
72
+ ```bash
73
+ markdown-slides -f slides.md
74
+ ```
75
+
76
+ Your browser will automatically open with your presentation!
77
+
78
+ ## 🎮 CLI Options
79
+
80
+ | Option | Alias | Description | Default |
81
+ |--------|-------|-------------|---------|
82
+ | `--file` | `-f` | Markdown file path (required) | - |
83
+ | `--port` | `-p` | Server port | `3457` |
84
+ | `--title` | `-t` | Presentation title | `Markdown Slides` |
85
+ | `--theme` | - | Slide theme (dark/light/blue) | `dark` |
86
+ | `--help` | `-h` | Display help | - |
87
+
88
+ ### Examples
89
+
90
+ ```bash
91
+ # Basic usage
92
+ markdown-slides -f presentation.md
93
+
94
+ # Custom port and title
95
+ markdown-slides -f slides.md -p 8080 -t "My Presentation"
96
+
97
+ # Different theme
98
+ markdown-slides -f deck.md --theme blue
99
+ ```
100
+
101
+ ## ⌨️ Keyboard Shortcuts
102
+
103
+ | Key | Action |
104
+ |-----|--------|
105
+ | `→` or `Space` | Next slide |
106
+ | `←` | Previous slide |
107
+ | `Home` | Go to first slide |
108
+ | `End` | Go to last slide |
109
+ | `F` or `F11` | Toggle fullscreen |
110
+ | `E` | Open editor |
111
+ | `M` | Toggle minimap |
112
+ | `Esc` | Close editor / Exit fullscreen |
113
+
114
+ ## 📝 Markdown Syntax
115
+
116
+ ### Slide Separators
117
+
118
+ Slides are separated by horizontal rules or top-level headers:
119
+
120
+ **Method 1: Horizontal Rules**
121
+ ```markdown
122
+ # Slide 1
123
+ Content here
124
+
125
+ ---
126
+
127
+ # Slide 2
128
+ More content
129
+
130
+ ***
131
+
132
+ # Slide 3
133
+ Even more content
134
+ ```
135
+
136
+ **Method 2: Top-Level Headers**
137
+ ```markdown
138
+ # Slide 1
139
+ Content
140
+
141
+ # Slide 2
142
+ Content
143
+
144
+ # Slide 3
145
+ Content
146
+ ```
147
+
148
+ ### Supported Markdown Features
149
+
150
+ - **Headers**: `# H1` through `###### H6`
151
+ - **Bold**: `**bold**` or `__bold__`
152
+ - **Italic**: `*italic*` or `_italic_`
153
+ - **Lists**: Ordered and unordered
154
+ - **Code Blocks**: With syntax highlighting
155
+ - **Inline Code**: `` `code` ``
156
+ - **Links**: `[text](url)`
157
+ - **Images**: `![alt](url)`
158
+ - **Blockquotes**: `> quote`
159
+ - **Tables**: Standard markdown tables
160
+ - **Horizontal Rules**: `---` or `***`
161
+
162
+ ### Example Slide
163
+
164
+ ```markdown
165
+ # My Awesome Slide 🚀
166
+
167
+ ## Key Points
168
+
169
+ - **Important**: This is bold
170
+ - *Emphasis*: This is italic
171
+ - `code`: Inline code example
172
+
173
+ ## Code Example
174
+
175
+ ```javascript
176
+ const greeting = "Hello World!";
177
+ console.log(greeting);
178
+ ```
179
+
180
+ > "This is a blockquote"
181
+
182
+ | Feature | Status |
183
+ |---------|--------|
184
+ | Edit | ✅ |
185
+ | View | ✅ |
186
+ ```
187
+
188
+ ## 🎨 Using the Editor
189
+
190
+ ### Opening the Editor
191
+
192
+ 1. Click the **"Edit"** button in the header
193
+ 2. Or press `E` on your keyboard
194
+
195
+ ### Editing Your Slides
196
+
197
+ - The Monaco editor provides full VS Code-like experience
198
+ - Syntax highlighting for markdown
199
+ - Built-in minimap for long documents
200
+ - Auto-completion and formatting
201
+
202
+ ### Applying Changes
203
+
204
+ 1. Make your edits in the Monaco editor
205
+ 2. Click **"Apply"** to update the presentation
206
+ 3. Or click **"Close"** to discard changes
207
+
208
+ ### Downloading Edited Slides
209
+
210
+ Click the **"Download"** button in the editor to save your modified markdown file.
211
+
212
+ ## 🗺️ Minimap Navigation
213
+
214
+ ### Opening the Minimap
215
+
216
+ 1. Click the **"Minimap"** button in the header
217
+ 2. Or press `M` on your keyboard
218
+
219
+ ### Using the Minimap
220
+
221
+ - View thumbnails of all slides
222
+ - Current slide is highlighted
223
+ - Click any thumbnail to jump to that slide
224
+ - Minimap shows slide content preview
225
+
226
+ ## 🎬 Fullscreen Presentation
227
+
228
+ ### Entering Fullscreen
229
+
230
+ 1. Click the **"Fullscreen"** button
231
+ 2. Or press `F` or `F11`
232
+
233
+ ### Fullscreen Features
234
+
235
+ - Header automatically hides
236
+ - Navigation controls fade to semi-transparent
237
+ - Full immersive presentation experience
238
+ - Press `Esc` or `F11` to exit
239
+
240
+ ## 📖 Example Presentations
241
+
242
+ ### Simple Presentation
243
+
244
+ ```markdown
245
+ # Introduction
246
+ Welcome to my talk!
247
+
248
+ ---
249
+
250
+ # Problem Statement
251
+ What are we solving?
252
+ - Issue 1
253
+ - Issue 2
254
+ - Issue 3
255
+
256
+ ---
257
+
258
+ # Solution
259
+ Here's how we fix it:
260
+ 1. Step one
261
+ 2. Step two
262
+ 3. Step three
263
+
264
+ ---
265
+
266
+ # Conclusion
267
+ Thank you! 🎉
268
+ ```
269
+
270
+ ### Technical Presentation
271
+
272
+ ```markdown
273
+ # API Documentation
274
+
275
+ ---
276
+
277
+ # REST Endpoints
278
+
279
+ ## GET /users
280
+ Retrieve all users
281
+
282
+ ```json
283
+ {
284
+ "users": [
285
+ {"id": 1, "name": "Alice"}
286
+ ]
287
+ }
288
+ ```
289
+
290
+ ---
291
+
292
+ # Authentication
293
+
294
+ Use Bearer tokens:
295
+ ```bash
296
+ curl -H "Authorization: Bearer TOKEN" /api/users
297
+ ```
298
+
299
+ ---
300
+
301
+ #
302
+
303
+ ### Technologies Used
304
+
305
+ - **Node.js** - Runtime environment
306
+ - **Commander** - CLI argument parsing
307
+ - **Marked** - Markdown parsing
308
+ - **Monaco Editor** - Code editor (VS Code)
309
+ - **Tailwind CSS** - Styling
310
+
311
+ ## 🤝 Use Cases
312
+
313
+ - 📚 **Educational Content** - Teaching materials, tutorials
314
+ - 💼 **Business Presentations** - Pitch decks, reports
315
+ - 🎤 **Conference Talks** - Technical presentations
316
+ - 📖 **Documentation** - Product demos, guides
317
+ - 👨‍🏫 **Training Materials** - Workshops, courses
318
+ - 📊 **Data Presentations** - Reports with code examples
319
+
320
+ ## 💡 Tips & Tricks
321
+
322
+ ### Creating Effective Slides
323
+
324
+ 1. **Keep It Simple** - One main idea per slide
325
+ 2. **Use Visual Hierarchy** - Headers, lists, emphasis
326
+ 3. **Add Code Examples** - With syntax highlighting
327
+ 4. **Include Emojis** - Make slides more engaging 🎉
328
+ 5. **Use Tables** - For structured data
329
+ 6. **Add Images** - Break up text-heavy slides
330
+
331
+ ### Presentation Tips
332
+
333
+ 1. **Test Before Presenting** - Preview all slides
334
+ 2. **Use Fullscreen** - Minimize distractions
335
+ 3. **Practice Navigation** - Learn keyboard shortcuts
336
+ 4. **Prepare Backup** - Download PDF version
337
+ 5. **Have Notes Ready** - Use separate notes file
338
+
339
+ ### Advanced Usage
340
+
341
+ **Custom Styling**: Edit the embedded CSS in `markdown-slides.js`
342
+
343
+ **Custom Themes**: Modify the color scheme in the `<style>` section
344
+
345
+ **Hosting**: Deploy with any static file server or Node.js hosting
346
+
347
+ ## 🐛 Troubleshooting
348
+
349
+ ### Port Already in Use
350
+
351
+ ```bash
352
+ # Use a different port
353
+ markdown-slides -f slides.md -p 8080
354
+ ```
355
+
356
+ ### Browser Doesn't Open
357
+
358
+ ```bash
359
+ # Manually open the URL shown in console
360
+ # Usually: http://localhost:3457
361
+ ```
362
+
363
+ ### Editor Not Loading
364
+
365
+ - Check internet connection (Monaco loads from CDN)
366
+ - Try refreshing the page
367
+ - Clear browser cache
368
+
369
+ ### Slides Not Rendering
370
+
371
+ - Ensure markdown syntax is correct
372
+ - Check for proper slide separators (`---`)
373
+ - Verify file encoding is UTF-8
374
+
375
+ ## 📋 Requirements
376
+
377
+ - Node.js >= 14.0.0
378
+ - Modern web browser (Chrome, Firefox, Safari, Edge)
379
+ - Internet connection (for CDN resources)
380
+
381
+ ## 📦 Dependencies
382
+
383
+ - `commander` - CLI argument parsing
384
+
385
+ All other features (Marked, Monaco Editor, Tailwind CSS) load from CDNs.
386
+
387
+ ## 🚀 Future Enhancements
388
+
389
+ - [ ] Speaker notes support
390
+ - [ ] Timer and progress indicator
391
+ - [ ] Export to PDF
392
+ - [ ] Custom themes/templates
393
+ - [ ] Slide transitions and animations
394
+ - [ ] Remote control via mobile
395
+ - [ ] Collaborative editing
396
+ - [ ] Drawing/annotation tools
397
+ - [ ] Video embed support
398
+ - [ ] Auto-save functionality
399
+
400
+
401
+
402
+ ## 📝 License
403
+
404
+ MIT License (c) Mohan Chinnappan
405
+
406
+
407
+
408
+ ---
409
+
410
+ ## 📚 Quick Reference Card
411
+
412
+ ```
413
+ ┌─────────────────────────────────────────┐
414
+ │ MARKDOWN SLIDES QUICK REFERENCE │
415
+ ├─────────────────────────────────────────┤
416
+ │ Start Server: │
417
+ │ markdown-slides -f slides.md │
418
+ │ │
419
+ │ Keyboard Shortcuts: │
420
+ │ → / Space Next slide │
421
+ │ ← Previous slide │
422
+ │ Home First slide │
423
+ │ End Last slide │
424
+ │ F / F11 Fullscreen │
425
+ │ E Open editor │
426
+ │ M Toggle minimap │
427
+ │ Esc Close / Exit │
428
+ │ │
429
+ │ Slide Separator: │
430
+ │ --- (3 dashes) │
431
+ │ *** (3 asterisks) │
432
+ │ # Header (top level) │
433
+ └─────────────────────────────────────────┘
434
+ ```
435
+
436
+ ---
437
+
438
+ **Made with ❤️ for presenters, educators, and developers**
439
+
440
+ **Happy Presenting! 🎤✨**