mirror of
https://github.com/github/awesome-copilot.git
synced 2026-05-01 12:45:56 +00:00
feat: Add Project Documenter Plugin with agents and skills (#1436)
* feat: Add Project Documenter Plugin with agents and skills - Auto-discovers technology stack and project structure - Generates architecture diagrams with draw.io - Creates professional Word (.docx) output with embedded PNG images - Includes agents for orchestration and skills for functionality * chore: moved agents, skills and scripts to respective folders * chore: ran npm run build for readme updates * Update plugins/project-documenter/.github/plugin/plugin.json Co-authored-by: Aaron Powell <me@aaron-powell.com> * fix: readme.agent.md file * fix: added the missing agent file and updated readme for the same --------- Co-authored-by: Aaron Powell <me@aaron-powell.com>
This commit is contained in:
74
skills/md-to-docx/SKILL.md
Normal file
74
skills/md-to-docx/SKILL.md
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
name: md-to-docx
|
||||
description: Convert Markdown files to professionally formatted Word (.docx) documents with embedded PNG images — pure JavaScript, no external tools required
|
||||
---
|
||||
|
||||
# Markdown to Word (.docx) Skill
|
||||
|
||||
Convert Markdown (`.md`) files into professionally formatted Word (`.docx`) documents with embedded PNG images. Uses **pure JavaScript** via the `docx` and `marked` npm packages — no Pandoc, LibreOffice, or any native binary required.
|
||||
|
||||
## How to Convert
|
||||
|
||||
```bash
|
||||
# Install dependencies (one-time, from the scripts folder)
|
||||
cd skills/md-to-docx/scripts && npm install
|
||||
|
||||
# Convert (run from workspace root)
|
||||
node skills/md-to-docx/scripts/md-to-docx.mjs <input.md> [output.docx]
|
||||
```
|
||||
|
||||
If `output.docx` is omitted, it defaults to `<input-basename>.docx` in the current directory.
|
||||
|
||||
## Skill Folder Contents
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `SKILL.md` | This instruction file |
|
||||
| `scripts/md-to-docx.mjs` | Node.js Markdown-to-Word converter |
|
||||
| `scripts/package.json` | Dependencies (`docx`, `marked`) |
|
||||
|
||||
## Prerequisites
|
||||
|
||||
| Requirement | Version | Notes |
|
||||
|-------------|---------|-------|
|
||||
| **Node.js** | 18+ | Required runtime |
|
||||
| **`docx`** | 9+ | Pure JS Word document generator |
|
||||
| **`marked`** | 15+ | Markdown parser |
|
||||
|
||||
No native binaries. No system-level installs. Works on Windows, macOS, and Linux.
|
||||
|
||||
## Features
|
||||
|
||||
The converter:
|
||||
|
||||
- **Extracts YAML front-matter** — uses `title`, `date`, `version`, `audience` for the title page
|
||||
- **Generates a title page** — with project name, subtitle, date, version, and audience
|
||||
- **Generates a table of contents** — built from H1-H3 headings
|
||||
- **Embeds PNG images** — resolves `` references relative to the input `.md` file, reads the PNG, and embeds it inline in the Word document
|
||||
- **Styled output** — Calibri font, colored headings (`#1F3864`), styled tables with alternating row colors, code blocks in Consolas
|
||||
- **Handles all Markdown elements** — headings, paragraphs, tables, code blocks, lists, images, links, horizontal rules
|
||||
|
||||
## Image Embedding
|
||||
|
||||
The converter automatically embeds PNG images referenced in the Markdown:
|
||||
|
||||
```markdown
|
||||

|
||||
```
|
||||
|
||||
The image path is resolved **relative to the input Markdown file**. The PNG is read, dimensions are extracted from the PNG header, and the image is scaled to fit within 6 inches width while preserving aspect ratio.
|
||||
|
||||
If an image file is not found, a placeholder `[Image not found: <path>]` is inserted.
|
||||
|
||||
## Front-Matter Format
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: Project Name — Project Summary
|
||||
date: 2025-01-15
|
||||
version: 1.0
|
||||
audience: Engineering Team, Architects, Stakeholders
|
||||
---
|
||||
```
|
||||
|
||||
The title is split on `—` or `–` into main title and subtitle for the title page.
|
||||
Reference in New Issue
Block a user