Skip to content

Commit 5dc7087

Browse files
committed
first commit
0 parents  commit 5dc7087

37 files changed

+3518
-0
lines changed

.github/workflows/ci.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches: [main]
6+
7+
jobs:
8+
check:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v6
13+
14+
- uses: oven-sh/setup-bun@v2
15+
16+
- run: bun install
17+
18+
- name: Lint
19+
run: bun run lint
20+
21+
- name: Type check
22+
run: bun run typecheck
23+
24+
- name: Build
25+
run: bun run build

.github/workflows/release.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Release
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- main
8+
paths:
9+
- "src/**"
10+
- "package.json"
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
issues: write
18+
pull-requests: write
19+
20+
steps:
21+
- uses: actions/checkout@v6
22+
with:
23+
fetch-depth: 0
24+
25+
- uses: oven-sh/setup-bun@v2
26+
27+
- uses: actions/setup-node@v6
28+
with:
29+
node-version: "lts/*"
30+
31+
- run: bun install
32+
33+
- name: Release
34+
env:
35+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36+
HUSKY: 0
37+
run: bunx semantic-release

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules/
2+
dist/
3+
.DS_Store
4+
dev/

.husky/pre-commit

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
bun run format
2+
bun run lint
3+
bun run typecheck
4+
bun run build

.releaserc.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"branches": ["main"],
3+
"plugins": [
4+
"@semantic-release/commit-analyzer",
5+
[
6+
"@semantic-release/exec",
7+
{
8+
"prepareCmd": "bun run build && node -e \"const p=require('./package.json');p.version='${nextRelease.version}';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n')\""
9+
}
10+
],
11+
[
12+
"@semantic-release/git",
13+
{
14+
"assets": ["package.json"],
15+
"message": "chore(release): v${nextRelease.version}"
16+
}
17+
],
18+
["@semantic-release/github", { "successComment": false }]
19+
]
20+
}

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<img width="200" alt="ooxml.dev logo" src="public/logo-dark.png" />
2+
3+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4+
5+
The OOXML spec, explained by people who actually implemented it.
6+
7+
## What is this?
8+
9+
An interactive reference for ECMA-376 (Office Open XML) with:
10+
11+
- **Live previews** - See XML rendered in real-time with SuperDoc
12+
- **Implementation notes** - Real-world gotchas from building document processors
13+
- **Practical examples** - Working code, not just spec excerpts
14+
15+
## Why?
16+
17+
The official ECMA-376 spec is 5,000+ pages. Most of it you'll never need. This reference focuses on what matters for building document tools, with insights from implementing [SuperDoc](https://superdoc.dev).
18+
19+
## Development
20+
21+
```bash
22+
# Install dependencies
23+
bun install
24+
25+
# Start dev server
26+
bun dev
27+
28+
# Build for production
29+
bun run build
30+
```
31+
32+
## Contributing
33+
34+
Contributions welcome! Add implementation notes, fix examples, or improve docs.
35+
36+
## License
37+
38+
MIT
39+
40+
---
41+
42+
Built by 🦋[SuperDoc](https://superdoc.dev)

biome.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
3+
"formatter": {
4+
"lineWidth": 100
5+
},
6+
"assist": {
7+
"actions": {
8+
"source": {
9+
"organizeImports": "on"
10+
}
11+
}
12+
},
13+
"linter": {
14+
"enabled": true,
15+
"rules": {
16+
"a11y": {
17+
"recommended": false
18+
},
19+
"suspicious": {
20+
"noArrayIndexKey": "off"
21+
},
22+
"style": {
23+
"noNonNullAssertion": "off"
24+
},
25+
"correctness": {
26+
"noSwitchDeclarations": "off"
27+
},
28+
"complexity": {
29+
"noImportantStyles": "off"
30+
}
31+
}
32+
},
33+
"files": {
34+
"includes": ["src/**", "*.json", "*.ts"]
35+
}
36+
}

bun.lock

Lines changed: 1714 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

index.html

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>ooxml.dev - ECMA-376 Reference</title>
7+
8+
<!-- Favicon -->
9+
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
10+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
11+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
12+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
13+
<link rel="manifest" href="/site.webmanifest" />
14+
15+
<!-- Fonts -->
16+
<link rel="preconnect" href="https://fonts.googleapis.com" />
17+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
18+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
19+
20+
<!-- Google Analytics -->
21+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-JFTMJ85VCW"></script>
22+
<script>
23+
window.dataLayer = window.dataLayer || [];
24+
function gtag(){dataLayer.push(arguments);}
25+
gtag('js', new Date());
26+
gtag('config', 'G-JFTMJ85VCW');
27+
</script>
28+
</head>
29+
<body>
30+
<div id="root"></div>
31+
<script type="module" src="/src/main.tsx"></script>
32+
</body>
33+
</html>

package.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"name": "ooxml-dev",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"preview": "vite preview",
10+
"lint": "biome check .",
11+
"format": "biome check --write .",
12+
"typecheck": "tsc --noEmit",
13+
"release": "semantic-release",
14+
"prepare": "husky"
15+
},
16+
"dependencies": {
17+
"clsx": "^2.1.1",
18+
"fumadocs-core": "^16.4.7",
19+
"fumadocs-ui": "^16.4.7",
20+
"jszip": "^3.10.1",
21+
"lucide-react": "^0.562.0",
22+
"react": "^19.2.3",
23+
"react-dom": "^19.2.3",
24+
"react-router-dom": "^7.12.0"
25+
},
26+
"devDependencies": {
27+
"@biomejs/biome": "^2.3.11",
28+
"@semantic-release/commit-analyzer": "^13.0.1",
29+
"@semantic-release/exec": "^7.1.0",
30+
"@semantic-release/git": "^10.0.1",
31+
"@semantic-release/github": "^12.0.2",
32+
"husky": "^9.1.7",
33+
"semantic-release": "^25.0.2",
34+
"@tailwindcss/vite": "^4.1.18",
35+
"@types/react": "^19.2.8",
36+
"@types/react-dom": "^19.2.3",
37+
"@vitejs/plugin-react": "^5.1.2",
38+
"tailwindcss": "^4.1.18",
39+
"typescript": "~5.9.3",
40+
"vite": "^7.3.1"
41+
}
42+
}

0 commit comments

Comments
 (0)