### Example: Using Plugins
Source: https://github.com/md2docx/mdast2docx/blob/main/lib/README.md
Demonstrates how to install and use plugins like image, table, and math with mdast-to-docx. It shows parsing Markdown with various features and then converting the MDAST to DOCX with specified plugins.
```typescript
import { toDocx } from "@m2d/core";
import { imagePlugin } from "@m2d/image";
import { tablePlugin } from "@m2d/table";
import { mathPlugin } from "@m2d/math";
import { unified } from "unified";
import remarkParse from "remark-parse";
import remarkGfm from "remark-gfm"; // For table support
import remarkMath from "remark-math"; // For math support
const markdownWithFeatures = `
An image: 
| Header 1 | Header 2 |
|----------|----------|
| Cell 1 | Cell 2 |
A math equation: $E = mc^2$
`;
const mdast = unified()
.use(remarkParse)
.use(remarkGfm) // Enable GFM for tables
.use(remarkMath) // Enable math syntax
.parse(markdownWithFeatures);
(async () => {
const docxBlob = await toDocx(
mdast,
{}, // docxProps
{
// Pass plugins in sectionProps
plugins: [imagePlugin(), tablePlugin(), mathPlugin()],
}
);
// ... download logic ...
})();
```
--------------------------------
### Install Everything at Once
Source: https://github.com/md2docx/mdast2docx/blob/main/README.md
Installs the complete mdast2docx package.
```bash
pnpm add mdast2docx
```
--------------------------------
### Development Mode
Source: https://github.com/md2docx/mdast2docx/blob/main/contributing.md
Command to start the development server for all apps and packages.
```bash
pnpm dev
```
--------------------------------
### Install Only What You Need
Source: https://github.com/md2docx/mdast2docx/blob/main/README.md
Installs specific scoped packages for a more modular approach.
```bash
pnpm add @m2d/core @m2d/image @m2d/table # and other plugins
```
--------------------------------
### Python Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
Demonstrates a simple Python function for greeting.
```python
def greet(name):
print(f"Hello, {name}!")
greet("Mayank")
```
--------------------------------
### HTML Form Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An example of a form rendered using HTML.
```html
```
--------------------------------
### JavaScript Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
Demonstrates a simple JavaScript function for greeting.
```javascript
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet("Mayank");
```
--------------------------------
### HTML Table Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An example of a table rendered using HTML.
```html
Name
Age
Location
John
25
New York
Alice
30
San Francisco
```
--------------------------------
### Flowchart Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
A basic flowchart diagram generated using Mermaid syntax.
```mermaid
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
```
--------------------------------
### Using Plugins
Source: https://github.com/md2docx/mdast2docx/blob/main/README.md
Demonstrates how to install and use plugins like image, table, and math by passing them into the configuration. Plugins can be applied globally or per section.
```typescript
import { toDocx } from "@m2d/core";
import { imagePlugin } from "@m2d/image";
import { tablePlugin } from "@m2d/table";
import { mathPlugin } from "@m2d/math";
import { unified } from "unified";
import remarkParse from "remark-parse";
import remarkGfm from "remark-gfm"; // For table support
import remarkMath from "remark-math"; // For math support
const markdownWithFeatures = `
An image: 
| Header 1 | Header 2 |
|----------|----------|
| Cell 1 | Cell 2 |
A math equation: $E = mc^2$
`;
const mdast = unified()
.use(remarkParse)
.use(remarkGfm) // Enable GFM for tables
.use(remarkMath) // Enable math syntax
.parse(markdownWithFeatures);
(async () => {
const docxBlob = await toDocx(
mdast,
{}, // docxProps
{
// Pass plugins in sectionProps
plugins: [imagePlugin(), tablePlugin(), mathPlugin()],
}
);
// ... download logic ...
})();
```
--------------------------------
### Mindmap Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
A mindmap structure showing hierarchical relationships.
```mermaid
mindmap
- Root
- Branch 1
- Subbranch 1
- Subbranch 2
- Branch 2
- Subbranch 3
- Subbranch 4
```
--------------------------------
### Custom CSS Styling
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
Example of custom CSS styling for tables.
```css
```
--------------------------------
### Sequence Diagram Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
A sequence diagram illustrating communication between participants.
```mermaid
sequenceDiagram
participant A
participant B
A->>B: Hello, how are you?
B->>A: I'm good, thanks!
```
--------------------------------
### Basic Example
Source: https://github.com/md2docx/mdast2docx/blob/main/README.md
Demonstrates converting a Markdown string to a DOCX file and triggering a download in the browser using the core `toDocx` function.
```typescript
import { toDocx } from "mdast2docx";
import { unified } from "unified";
import remarkParse from "remark-parse";
// 1. Your Markdown content
const markdown = `
# Sample Document
This is a paragraph with **bold** and _italic_ text.
> A blockquote.
* List Item 1
* List Item 2
[Visit our website](https://example.com)
`;
// 2. Parse Markdown to MDAST
const mdast = unified().use(remarkParse).parse(markdown);
// 3. Convert MDAST to DOCX and download
async function generateDocx() {
const docxBlob = await toDocx(mdast);
// Create a download link
const url = URL.createObjectURL(docxBlob as Blob);
const link = document.createElement("a");
link.href = url;
link.download = "document.docx";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
URL.revokeObjectURL(url);
}
generateDocx();
```
--------------------------------
### Gantt Chart Example
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
A Gantt chart representing a project timeline with tasks and their status.
```mermaid
gantt
title Project Timeline
dateFormat YYYY-MM-DD
section Development
Task 1 :done, 2024-01-01, 2024-01-10
Task 2 :active, 2024-01-11, 2024-01-20
Task 3 : 2024-01-21, 2024-01-30
```
--------------------------------
### Latex Macro Definition
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
Example of defining a custom LaTeX macro for mathematical notation.
```latex
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}
```
--------------------------------
### HTML Table within Blockquote
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An example of an HTML table embedded within a blockquote.
```html
Feature
Supported
Markdown
✅
HTML
✅
```
--------------------------------
### Code inside a blockquote list
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An example of code embedded within a nested blockquote and list structure.
```python
def nested_function():
return "Code inside nested blockquote"
```
--------------------------------
### Code inside a blockquote list
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An example of code embedded within a nested blockquote and list structure.
```javascript
console.log("Code inside a blockquote list");
```
--------------------------------
### Build All Apps and Packages
Source: https://github.com/md2docx/mdast2docx/blob/main/contributing.md
Command to build all applications and packages within the monorepo.
```bash
pnpm build
```
--------------------------------
### Run Unit Tests
Source: https://github.com/md2docx/mdast2docx/blob/main/contributing.md
Command to execute unit tests for all apps and packages.
```bash
pnpm test
```
--------------------------------
### Linting and Formatting
Source: https://github.com/md2docx/mdast2docx/blob/main/contributing.md
Commands to ensure code quality by running linters and formatters.
```bash
pnpm lint
```
```bash
pnpm lint:fix
```
--------------------------------
### Automated File Generation
Source: https://github.com/md2docx/mdast2docx/blob/main/contributing.md
Execute 'yarn turbo gen' to automatically generate new components, test files, and link dependencies.
```bash
yarn turbo gen
```
--------------------------------
### MDX Custom Component
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
Embedding a custom component using MDX syntax.
```mdx
```
--------------------------------
### Inline HTML Image
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An inline HTML element with a base64 encoded image source and styling.
```html
```
--------------------------------
### HTML Details Element
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An HTML element for collapsible content.
```html
Click to expand
This is hidden content.
```
--------------------------------
### HTML Checkbox Input
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An HTML input element of type checkbox.
```html
```
--------------------------------
### Inline HTML Anchor with Style
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An inline HTML element with styling for color, text decoration, and font weight, linking to an external URL.
```html
Visit OpenAI
```
--------------------------------
### Inline HTML Span with Style
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An inline HTML element with applied CSS styles for color and font weight.
```html
red bold text
```
--------------------------------
### HTML Pre Tag
Source: https://github.com/md2docx/mdast2docx/blob/main/sample.md
An HTML
tag used to preserve whitespace and formatting for preformatted text.
```html
Inside pre tag
Indentation and formatting etc. here should be preserved.
Hmmm...
```
--------------------------------
### Remove Stale Branches
Source: https://github.com/md2docx/mdast2docx/blob/main/contributing.md
A Git command to remove all merged and stale branches.
```bash
git branch --merged main | grep -v '^[ *]*main$' | xargs git branch -d
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.