regen.mde 0.7.0 → 0.8.1
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/LICENSE +16 -16
- package/README.md +2 -1
- package/bin/build-corpus-editor.js +83 -83
- package/bin/build-corpus.js +41 -41
- package/bin/regen-mdeditor-install.js +27 -27
- package/bin/regen-mdeditor-uninstall.js +19 -19
- package/bin/validate-katex.js +93 -93
- package/desktop/BuildCorpusEditor/BuildCorpusEditor.csproj +22 -22
- package/desktop/BuildCorpusEditor/EditorForm.cs +58 -10
- package/desktop/BuildCorpusEditor/app.manifest +16 -16
- package/dist/release/{regen-mde-0.7.0-win-x64.zip → regen-mde-0.8.0-win-x64.zip} +0 -0
- package/dist/release/regen-mde-0.8.1-win-x64.zip +0 -0
- package/dist/windows-editor/BuildCorpusEditor.dll +0 -0
- package/dist/windows-editor/BuildCorpusEditor.exe +0 -0
- package/dist/windows-editor/BuildCorpusEditor.pdb +0 -0
- package/dist/windows-editor/BuildCorpusEditor.runtimeconfig.json +1 -1
- package/dist/windows-editor/wwwroot/assets/{index-C_VxJk4k.js → index-BB0sbZaD.js} +107 -107
- package/dist/windows-editor/wwwroot/assets/index-CtOv7qsC.css +1 -0
- package/dist/windows-editor/wwwroot/index.html +22 -22
- package/editor-web/index.html +21 -21
- package/editor-web/src/main.jsx +107 -69
- package/editor-web/src/styles.css +99 -35
- package/editor-web/vite.config.js +13 -13
- package/examples/build-corpus.config.example.json +21 -21
- package/installer/install-regen-mde.ps1 +214 -214
- package/installer/regen-mde.nsi +81 -81
- package/package.json +90 -90
- package/pyproject.toml +34 -35
- package/requirements.txt +0 -1
- package/scripts/build-windows-editor.ps1 +47 -47
- package/scripts/package-windows-editor.ps1 +90 -90
- package/scripts/run-corpus.ps1 +28 -28
- package/scripts/run-editor-implementation-plane.ps1 +226 -226
- package/scripts/run-required-tests.ps1 +98 -98
- package/scripts/run-smoke.ps1 +28 -28
- package/src/build_corpus/__init__.py +1 -1
- package/src/build_corpus/equations.py +1345 -80
- package/src/build_corpus/templates/__init__.py +1 -1
- package/src/build_corpus/validate_assets.py +46 -46
- package/tools/audit_corpus.py +203 -203
- package/tools/collect_microsoft_word_templates.py +228 -228
- package/tools/collect_online_docx_corpus.py +272 -272
- package/tools/collect_online_pptx_corpus.py +252 -252
- package/tools/compare_pptx_inputs_outputs.py +87 -87
- package/tools/roundtrip_docx_corpus.py +171 -171
- package/dist/release/regen-mde-0.3.0-win-x64-setup.exe +0 -0
- package/dist/release/regen-mde-0.3.0-win-x64.zip +0 -0
- package/dist/release/regen-mde-0.7.0-win-x64-setup.exe +0 -0
- package/dist/windows-editor/wwwroot/assets/index-Wt9zSjIw.css +0 -1
package/package.json
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "regen.mde",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Convert between DOCX/PPTX and Markdown — Word OMML equations to KaTeX TeX on the way in, LaTeX to native OMML on the way out.",
|
|
5
|
-
"bin": {
|
|
6
|
-
"build-corpus": "bin/build-corpus.js",
|
|
7
|
-
"build-corpus-editor": "bin/build-corpus-editor.js",
|
|
8
|
-
"mdeditor": "bin/build-corpus-editor.js",
|
|
9
|
-
"regen-mde": "bin/build-corpus-editor.js",
|
|
10
|
-
"regen-mdeditor": "bin/build-corpus-editor.js",
|
|
11
|
-
"regen-mdeditor-install": "bin/regen-mdeditor-install.js",
|
|
12
|
-
"regen-mdeditor-uninstall": "bin/regen-mdeditor-uninstall.js",
|
|
13
|
-
"build-corpus-katex": "bin/validate-katex.js"
|
|
14
|
-
},
|
|
15
|
-
"files": [
|
|
16
|
-
"bin/",
|
|
17
|
-
"desktop/BuildCorpusEditor/*.cs",
|
|
18
|
-
"desktop/BuildCorpusEditor/*.csproj",
|
|
19
|
-
"desktop/BuildCorpusEditor/*.manifest",
|
|
20
|
-
"dist/release/regen-mde-*-win-x64-setup.exe",
|
|
21
|
-
"dist/release/regen-mde-*-win-x64.zip",
|
|
22
|
-
"dist/windows-editor/",
|
|
23
|
-
"editor-web/",
|
|
24
|
-
"installer/",
|
|
25
|
-
"src/build_corpus/*.py",
|
|
26
|
-
"src/build_corpus/templates/*.py",
|
|
27
|
-
"src/build_corpus/templates/*.dotx",
|
|
28
|
-
"examples/",
|
|
29
|
-
"scripts/",
|
|
30
|
-
"tools/*.py",
|
|
31
|
-
"pyproject.toml",
|
|
32
|
-
"requirements.txt",
|
|
33
|
-
"README.md",
|
|
34
|
-
"LICENSE"
|
|
35
|
-
],
|
|
36
|
-
"scripts": {
|
|
37
|
-
"editor:build": "vite build --config editor-web/vite.config.js",
|
|
38
|
-
"editor:windows": "powershell.exe -ExecutionPolicy Bypass -File scripts/build-windows-editor.ps1",
|
|
39
|
-
"editor:package": "powershell.exe -ExecutionPolicy Bypass -File scripts/package-windows-editor.ps1",
|
|
40
|
-
"test:conversion": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite Conversion",
|
|
41
|
-
"test:editor": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite Editor",
|
|
42
|
-
"test:required": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite Auto",
|
|
43
|
-
"test:all": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite All",
|
|
44
|
-
"release": "node scripts/release-dual.mjs",
|
|
45
|
-
"prepack": "npm run editor:windows && npm run editor:package",
|
|
46
|
-
"postinstall": "node bin/postinstall.js",
|
|
47
|
-
"preuninstall": "node bin/postinstall.js --uninstall",
|
|
48
|
-
"test": "node bin/build-corpus.js --help && node bin/validate-katex.js README.md"
|
|
49
|
-
},
|
|
50
|
-
"dependencies": {
|
|
51
|
-
"@codemirror/lang-markdown": "^6.5.0",
|
|
52
|
-
"@codemirror/theme-one-dark": "^6.1.3",
|
|
53
|
-
"@tiptap/extension-bubble-menu": "^3.23.1",
|
|
54
|
-
"@tiptap/extension-floating-menu": "^3.23.1",
|
|
55
|
-
"@tiptap/extension-image": "^3.23.1",
|
|
56
|
-
"@tiptap/extension-link": "^3.23.1",
|
|
57
|
-
"@tiptap/extension-placeholder": "^3.23.1",
|
|
58
|
-
"@tiptap/extension-table": "^3.23.1",
|
|
59
|
-
"@tiptap/extension-table-cell": "^3.23.1",
|
|
60
|
-
"@tiptap/extension-table-header": "^3.23.1",
|
|
61
|
-
"@tiptap/extension-table-row": "^3.23.1",
|
|
62
|
-
"@tiptap/extension-task-item": "^3.23.1",
|
|
63
|
-
"@tiptap/extension-task-list": "^3.23.1",
|
|
64
|
-
"@tiptap/react": "^3.23.1",
|
|
65
|
-
"@tiptap/starter-kit": "^3.23.1",
|
|
66
|
-
"@uiw/react-codemirror": "^4.25.9",
|
|
67
|
-
"katex": "^0.16.22",
|
|
68
|
-
"marked": "^15.0.12",
|
|
69
|
-
"react": "^19.2.6",
|
|
70
|
-
"react-dom": "^19.2.6",
|
|
71
|
-
"turndown": "^7.2.4"
|
|
72
|
-
},
|
|
73
|
-
"keywords": [
|
|
74
|
-
"docx",
|
|
75
|
-
"markdown",
|
|
76
|
-
"word",
|
|
77
|
-
"omml",
|
|
78
|
-
"katex",
|
|
79
|
-
"converter"
|
|
80
|
-
],
|
|
81
|
-
"author": "LIFE AI",
|
|
82
|
-
"license": "Apache-2.0",
|
|
83
|
-
"engines": {
|
|
84
|
-
"node": ">=18"
|
|
85
|
-
},
|
|
86
|
-
"devDependencies": {
|
|
87
|
-
"@vitejs/plugin-react": "^4.7.0",
|
|
88
|
-
"vite": "^6.4.2"
|
|
89
|
-
}
|
|
90
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "regen.mde",
|
|
3
|
+
"version": "0.8.1",
|
|
4
|
+
"description": "Convert between DOCX/PPTX and Markdown — Word OMML equations to KaTeX TeX on the way in, LaTeX to native OMML on the way out.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"build-corpus": "bin/build-corpus.js",
|
|
7
|
+
"build-corpus-editor": "bin/build-corpus-editor.js",
|
|
8
|
+
"mdeditor": "bin/build-corpus-editor.js",
|
|
9
|
+
"regen-mde": "bin/build-corpus-editor.js",
|
|
10
|
+
"regen-mdeditor": "bin/build-corpus-editor.js",
|
|
11
|
+
"regen-mdeditor-install": "bin/regen-mdeditor-install.js",
|
|
12
|
+
"regen-mdeditor-uninstall": "bin/regen-mdeditor-uninstall.js",
|
|
13
|
+
"build-corpus-katex": "bin/validate-katex.js"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"bin/",
|
|
17
|
+
"desktop/BuildCorpusEditor/*.cs",
|
|
18
|
+
"desktop/BuildCorpusEditor/*.csproj",
|
|
19
|
+
"desktop/BuildCorpusEditor/*.manifest",
|
|
20
|
+
"dist/release/regen-mde-*-win-x64-setup.exe",
|
|
21
|
+
"dist/release/regen-mde-*-win-x64.zip",
|
|
22
|
+
"dist/windows-editor/",
|
|
23
|
+
"editor-web/",
|
|
24
|
+
"installer/",
|
|
25
|
+
"src/build_corpus/*.py",
|
|
26
|
+
"src/build_corpus/templates/*.py",
|
|
27
|
+
"src/build_corpus/templates/*.dotx",
|
|
28
|
+
"examples/",
|
|
29
|
+
"scripts/",
|
|
30
|
+
"tools/*.py",
|
|
31
|
+
"pyproject.toml",
|
|
32
|
+
"requirements.txt",
|
|
33
|
+
"README.md",
|
|
34
|
+
"LICENSE"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"editor:build": "vite build --config editor-web/vite.config.js",
|
|
38
|
+
"editor:windows": "powershell.exe -ExecutionPolicy Bypass -File scripts/build-windows-editor.ps1",
|
|
39
|
+
"editor:package": "powershell.exe -ExecutionPolicy Bypass -File scripts/package-windows-editor.ps1",
|
|
40
|
+
"test:conversion": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite Conversion",
|
|
41
|
+
"test:editor": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite Editor",
|
|
42
|
+
"test:required": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite Auto",
|
|
43
|
+
"test:all": "powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/run-required-tests.ps1 -Suite All",
|
|
44
|
+
"release": "node scripts/release-dual.mjs",
|
|
45
|
+
"prepack": "npm run editor:windows && npm run editor:package",
|
|
46
|
+
"postinstall": "node bin/postinstall.js",
|
|
47
|
+
"preuninstall": "node bin/postinstall.js --uninstall",
|
|
48
|
+
"test": "node bin/build-corpus.js --help && node bin/validate-katex.js README.md"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@codemirror/lang-markdown": "^6.5.0",
|
|
52
|
+
"@codemirror/theme-one-dark": "^6.1.3",
|
|
53
|
+
"@tiptap/extension-bubble-menu": "^3.23.1",
|
|
54
|
+
"@tiptap/extension-floating-menu": "^3.23.1",
|
|
55
|
+
"@tiptap/extension-image": "^3.23.1",
|
|
56
|
+
"@tiptap/extension-link": "^3.23.1",
|
|
57
|
+
"@tiptap/extension-placeholder": "^3.23.1",
|
|
58
|
+
"@tiptap/extension-table": "^3.23.1",
|
|
59
|
+
"@tiptap/extension-table-cell": "^3.23.1",
|
|
60
|
+
"@tiptap/extension-table-header": "^3.23.1",
|
|
61
|
+
"@tiptap/extension-table-row": "^3.23.1",
|
|
62
|
+
"@tiptap/extension-task-item": "^3.23.1",
|
|
63
|
+
"@tiptap/extension-task-list": "^3.23.1",
|
|
64
|
+
"@tiptap/react": "^3.23.1",
|
|
65
|
+
"@tiptap/starter-kit": "^3.23.1",
|
|
66
|
+
"@uiw/react-codemirror": "^4.25.9",
|
|
67
|
+
"katex": "^0.16.22",
|
|
68
|
+
"marked": "^15.0.12",
|
|
69
|
+
"react": "^19.2.6",
|
|
70
|
+
"react-dom": "^19.2.6",
|
|
71
|
+
"turndown": "^7.2.4"
|
|
72
|
+
},
|
|
73
|
+
"keywords": [
|
|
74
|
+
"docx",
|
|
75
|
+
"markdown",
|
|
76
|
+
"word",
|
|
77
|
+
"omml",
|
|
78
|
+
"katex",
|
|
79
|
+
"converter"
|
|
80
|
+
],
|
|
81
|
+
"author": "LIFE AI",
|
|
82
|
+
"license": "Apache-2.0",
|
|
83
|
+
"engines": {
|
|
84
|
+
"node": ">=18"
|
|
85
|
+
},
|
|
86
|
+
"devDependencies": {
|
|
87
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
88
|
+
"vite": "^6.4.2"
|
|
89
|
+
}
|
|
90
|
+
}
|
package/pyproject.toml
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["setuptools>=69", "wheel"]
|
|
3
|
-
build-backend = "setuptools.build_meta"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "build-corpus"
|
|
7
|
-
version = "0.
|
|
8
|
-
description = "Convert between DOCX/PPTX and Markdown — Word OMML equations to KaTeX TeX inbound, LaTeX to native OMML outbound."
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.10"
|
|
11
|
-
license = "Apache-2.0"
|
|
12
|
-
authors = [
|
|
13
|
-
{ name = "LIFE AI" }
|
|
14
|
-
]
|
|
15
|
-
keywords = ["docx", "markdown", "omml", "katex", "word", "converter"]
|
|
16
|
-
dependencies = [
|
|
17
|
-
"omml2latex>=0.1.1",
|
|
18
|
-
"Pillow>=10.0.0",
|
|
19
|
-
"python-docx>=1.1.2",
|
|
20
|
-
"latex2mathml>=3.77"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
[
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
[
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
[
|
|
35
|
-
build_corpus = ["templates/*.dotx"]
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=69", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "build-corpus"
|
|
7
|
+
version = "0.8.1"
|
|
8
|
+
description = "Convert between DOCX/PPTX and Markdown — Word OMML equations to KaTeX TeX inbound, LaTeX to native OMML outbound."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "Apache-2.0"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "LIFE AI" }
|
|
14
|
+
]
|
|
15
|
+
keywords = ["docx", "markdown", "omml", "katex", "word", "converter"]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"omml2latex>=0.1.1",
|
|
18
|
+
"Pillow>=10.0.0",
|
|
19
|
+
"python-docx>=1.1.2",
|
|
20
|
+
"latex2mathml>=3.77"
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.optional-dependencies]
|
|
24
|
+
s3 = ["boto3>=1.34"]
|
|
25
|
+
dev = ["build>=1.2", "twine>=5.0"]
|
|
26
|
+
|
|
27
|
+
[project.scripts]
|
|
28
|
+
"build-corpus" = "build_corpus.exporter:main"
|
|
29
|
+
|
|
30
|
+
[tool.setuptools.packages.find]
|
|
31
|
+
where = ["src"]
|
|
32
|
+
|
|
33
|
+
[tool.setuptools.package-data]
|
|
34
|
+
build_corpus = ["templates/*.dotx"]
|
package/requirements.txt
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
[CmdletBinding()]
|
|
2
|
-
param(
|
|
3
|
-
[string]$Root = ""
|
|
4
|
-
)
|
|
5
|
-
|
|
6
|
-
$ErrorActionPreference = "Stop"
|
|
7
|
-
|
|
8
|
-
if ([string]::IsNullOrWhiteSpace($Root)) {
|
|
9
|
-
$Root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function Invoke-Checked {
|
|
13
|
-
param([string]$FilePath, [string[]]$Arguments)
|
|
14
|
-
Write-Host "+ $FilePath $($Arguments -join ' ')" -ForegroundColor DarkGray
|
|
15
|
-
Push-Location $Root
|
|
16
|
-
try {
|
|
17
|
-
& $FilePath @Arguments
|
|
18
|
-
$exitCode = if ($LASTEXITCODE -is [int]) { $LASTEXITCODE } else { 0 }
|
|
19
|
-
} finally {
|
|
20
|
-
Pop-Location
|
|
21
|
-
}
|
|
22
|
-
if ($exitCode -ne 0) {
|
|
23
|
-
throw "Command failed with exit code ${exitCode}: $FilePath $($Arguments -join ' ')"
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
Invoke-Checked "npm" @("run", "editor:build")
|
|
28
|
-
|
|
29
|
-
Get-Process BuildCorpusEditor -ErrorAction SilentlyContinue | Stop-Process -Force
|
|
30
|
-
|
|
31
|
-
Invoke-Checked "dotnet" @(
|
|
32
|
-
"publish",
|
|
33
|
-
"desktop\BuildCorpusEditor\BuildCorpusEditor.csproj",
|
|
34
|
-
"-c", "Release",
|
|
35
|
-
"-r", "win-x64",
|
|
36
|
-
"--self-contained", "false",
|
|
37
|
-
"-o", "dist\windows-editor"
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
$exe = Join-Path $Root "dist\windows-editor\BuildCorpusEditor.exe"
|
|
41
|
-
if (-not (Test-Path -LiteralPath $exe)) {
|
|
42
|
-
throw "Expected executable missing: $exe"
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
Remove-Item -LiteralPath (Join-Path $Root "dist\windows-editor\BuildCorpusEditor.exe.WebView2") -Recurse -Force -ErrorAction SilentlyContinue
|
|
46
|
-
|
|
47
|
-
Write-Host "Built $exe" -ForegroundColor Green
|
|
1
|
+
[CmdletBinding()]
|
|
2
|
+
param(
|
|
3
|
+
[string]$Root = ""
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
$ErrorActionPreference = "Stop"
|
|
7
|
+
|
|
8
|
+
if ([string]::IsNullOrWhiteSpace($Root)) {
|
|
9
|
+
$Root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function Invoke-Checked {
|
|
13
|
+
param([string]$FilePath, [string[]]$Arguments)
|
|
14
|
+
Write-Host "+ $FilePath $($Arguments -join ' ')" -ForegroundColor DarkGray
|
|
15
|
+
Push-Location $Root
|
|
16
|
+
try {
|
|
17
|
+
& $FilePath @Arguments
|
|
18
|
+
$exitCode = if ($LASTEXITCODE -is [int]) { $LASTEXITCODE } else { 0 }
|
|
19
|
+
} finally {
|
|
20
|
+
Pop-Location
|
|
21
|
+
}
|
|
22
|
+
if ($exitCode -ne 0) {
|
|
23
|
+
throw "Command failed with exit code ${exitCode}: $FilePath $($Arguments -join ' ')"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
Invoke-Checked "npm" @("run", "editor:build")
|
|
28
|
+
|
|
29
|
+
Get-Process BuildCorpusEditor -ErrorAction SilentlyContinue | Stop-Process -Force
|
|
30
|
+
|
|
31
|
+
Invoke-Checked "dotnet" @(
|
|
32
|
+
"publish",
|
|
33
|
+
"desktop\BuildCorpusEditor\BuildCorpusEditor.csproj",
|
|
34
|
+
"-c", "Release",
|
|
35
|
+
"-r", "win-x64",
|
|
36
|
+
"--self-contained", "false",
|
|
37
|
+
"-o", "dist\windows-editor"
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
$exe = Join-Path $Root "dist\windows-editor\BuildCorpusEditor.exe"
|
|
41
|
+
if (-not (Test-Path -LiteralPath $exe)) {
|
|
42
|
+
throw "Expected executable missing: $exe"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
Remove-Item -LiteralPath (Join-Path $Root "dist\windows-editor\BuildCorpusEditor.exe.WebView2") -Recurse -Force -ErrorAction SilentlyContinue
|
|
46
|
+
|
|
47
|
+
Write-Host "Built $exe" -ForegroundColor Green
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
[CmdletBinding()]
|
|
2
|
-
param(
|
|
3
|
-
[string]$Root = "",
|
|
4
|
-
[string]$Version = ""
|
|
5
|
-
)
|
|
6
|
-
|
|
7
|
-
$ErrorActionPreference = "Stop"
|
|
8
|
-
|
|
9
|
-
if ([string]::IsNullOrWhiteSpace($Root)) {
|
|
10
|
-
$Root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if ([string]::IsNullOrWhiteSpace($Version)) {
|
|
14
|
-
$pkg = Get-Content -Raw -LiteralPath (Join-Path $Root "package.json") | ConvertFrom-Json
|
|
15
|
-
$Version = $pkg.version
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
$releaseRoot = Join-Path $Root "dist\release"
|
|
19
|
-
$stage = Join-Path $releaseRoot "regen-mde-$Version-win-x64"
|
|
20
|
-
$app = Join-Path $stage "app"
|
|
21
|
-
$zip = Join-Path $releaseRoot "regen-mde-$Version-win-x64.zip"
|
|
22
|
-
$setupExe = Join-Path $releaseRoot "regen-mde-$Version-win-x64-setup.exe"
|
|
23
|
-
|
|
24
|
-
Remove-Item -LiteralPath $stage -Recurse -Force -ErrorAction SilentlyContinue
|
|
25
|
-
Remove-Item -LiteralPath $zip -Force -ErrorAction SilentlyContinue
|
|
26
|
-
Remove-Item -LiteralPath $setupExe -Force -ErrorAction SilentlyContinue
|
|
27
|
-
New-Item -ItemType Directory -Force -Path $app | Out-Null
|
|
28
|
-
|
|
29
|
-
Copy-Item -Path (Join-Path $Root "dist\windows-editor\*") -Destination $app -Recurse -Force
|
|
30
|
-
Remove-Item -LiteralPath (Join-Path $app "BuildCorpusEditor.exe.WebView2") -Recurse -Force -ErrorAction SilentlyContinue
|
|
31
|
-
Copy-Item -LiteralPath (Join-Path $Root "bin") -Destination $app -Recurse -Force
|
|
32
|
-
Copy-Item -LiteralPath (Join-Path $Root "src") -Destination $app -Recurse -Force
|
|
33
|
-
Copy-Item -LiteralPath (Join-Path $Root "requirements.txt") -Destination $app -Force
|
|
34
|
-
Copy-Item -LiteralPath (Join-Path $Root "pyproject.toml") -Destination $app -Force
|
|
35
|
-
Copy-Item -LiteralPath (Join-Path $Root "package.json") -Destination $app -Force
|
|
36
|
-
Copy-Item -LiteralPath (Join-Path $Root "package-lock.json") -Destination $app -Force
|
|
37
|
-
|
|
38
|
-
Copy-Item -LiteralPath (Join-Path $Root "installer\install-regen-mde.ps1") -Destination $stage -Force
|
|
39
|
-
|
|
40
|
-
$readme = @"
|
|
41
|
-
regen-mde for Windows
|
|
42
|
-
=====================
|
|
43
|
-
|
|
44
|
-
Install:
|
|
45
|
-
Right-click install-regen-mde.ps1 and choose "Run with PowerShell"
|
|
46
|
-
|
|
47
|
-
After install:
|
|
48
|
-
Open the Windows Start menu and search for "regen-mde".
|
|
49
|
-
Right-click .md or .docx files and choose "Open in regen-mde".
|
|
50
|
-
Use "Uninstall regen-mde" from the Start menu to remove the app and shell verbs.
|
|
51
|
-
|
|
52
|
-
Requirements:
|
|
53
|
-
Windows with Microsoft Edge WebView2 runtime
|
|
54
|
-
Node.js on PATH
|
|
55
|
-
Python 3 on PATH with the Build Corpus Python requirements installed
|
|
56
|
-
|
|
57
|
-
The installer copies the app to:
|
|
58
|
-
%LOCALAPPDATA%\Programs\regen-mde
|
|
59
|
-
"@
|
|
60
|
-
Set-Content -LiteralPath (Join-Path $stage "README-INSTALL.txt") -Value $readme -Encoding UTF8
|
|
61
|
-
|
|
62
|
-
Compress-Archive -Path (Join-Path $stage "*") -DestinationPath $zip -Force
|
|
63
|
-
|
|
64
|
-
if (-not (Test-Path -LiteralPath $zip)) {
|
|
65
|
-
throw "Package zip was not created: $zip"
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
$makensis = @(
|
|
69
|
-
"C:\Program Files (x86)\NSIS\makensis.exe",
|
|
70
|
-
"C:\Program Files (x86)\NSIS\Bin\makensis.exe"
|
|
71
|
-
) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1
|
|
72
|
-
|
|
73
|
-
if ($makensis) {
|
|
74
|
-
& $makensis `
|
|
75
|
-
"/DVERSION=$Version" `
|
|
76
|
-
"/DAPP_SOURCE=$app" `
|
|
77
|
-
"/DOUT_FILE=$setupExe" `
|
|
78
|
-
(Join-Path $Root "installer\regen-mde.nsi")
|
|
79
|
-
if ($LASTEXITCODE -ne 0) {
|
|
80
|
-
throw "NSIS installer build failed with exit code $LASTEXITCODE"
|
|
81
|
-
}
|
|
82
|
-
if (-not (Test-Path -LiteralPath $setupExe)) {
|
|
83
|
-
throw "Installer exe was not created: $setupExe"
|
|
84
|
-
}
|
|
85
|
-
Write-Host "Packaged $setupExe"
|
|
86
|
-
} else {
|
|
87
|
-
Write-Warning "NSIS makensis.exe was not found; skipped setup EXE package."
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
Write-Host "Packaged $zip"
|
|
1
|
+
[CmdletBinding()]
|
|
2
|
+
param(
|
|
3
|
+
[string]$Root = "",
|
|
4
|
+
[string]$Version = ""
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
$ErrorActionPreference = "Stop"
|
|
8
|
+
|
|
9
|
+
if ([string]::IsNullOrWhiteSpace($Root)) {
|
|
10
|
+
$Root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if ([string]::IsNullOrWhiteSpace($Version)) {
|
|
14
|
+
$pkg = Get-Content -Raw -LiteralPath (Join-Path $Root "package.json") | ConvertFrom-Json
|
|
15
|
+
$Version = $pkg.version
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
$releaseRoot = Join-Path $Root "dist\release"
|
|
19
|
+
$stage = Join-Path $releaseRoot "regen-mde-$Version-win-x64"
|
|
20
|
+
$app = Join-Path $stage "app"
|
|
21
|
+
$zip = Join-Path $releaseRoot "regen-mde-$Version-win-x64.zip"
|
|
22
|
+
$setupExe = Join-Path $releaseRoot "regen-mde-$Version-win-x64-setup.exe"
|
|
23
|
+
|
|
24
|
+
Remove-Item -LiteralPath $stage -Recurse -Force -ErrorAction SilentlyContinue
|
|
25
|
+
Remove-Item -LiteralPath $zip -Force -ErrorAction SilentlyContinue
|
|
26
|
+
Remove-Item -LiteralPath $setupExe -Force -ErrorAction SilentlyContinue
|
|
27
|
+
New-Item -ItemType Directory -Force -Path $app | Out-Null
|
|
28
|
+
|
|
29
|
+
Copy-Item -Path (Join-Path $Root "dist\windows-editor\*") -Destination $app -Recurse -Force
|
|
30
|
+
Remove-Item -LiteralPath (Join-Path $app "BuildCorpusEditor.exe.WebView2") -Recurse -Force -ErrorAction SilentlyContinue
|
|
31
|
+
Copy-Item -LiteralPath (Join-Path $Root "bin") -Destination $app -Recurse -Force
|
|
32
|
+
Copy-Item -LiteralPath (Join-Path $Root "src") -Destination $app -Recurse -Force
|
|
33
|
+
Copy-Item -LiteralPath (Join-Path $Root "requirements.txt") -Destination $app -Force
|
|
34
|
+
Copy-Item -LiteralPath (Join-Path $Root "pyproject.toml") -Destination $app -Force
|
|
35
|
+
Copy-Item -LiteralPath (Join-Path $Root "package.json") -Destination $app -Force
|
|
36
|
+
Copy-Item -LiteralPath (Join-Path $Root "package-lock.json") -Destination $app -Force
|
|
37
|
+
|
|
38
|
+
Copy-Item -LiteralPath (Join-Path $Root "installer\install-regen-mde.ps1") -Destination $stage -Force
|
|
39
|
+
|
|
40
|
+
$readme = @"
|
|
41
|
+
regen-mde for Windows
|
|
42
|
+
=====================
|
|
43
|
+
|
|
44
|
+
Install:
|
|
45
|
+
Right-click install-regen-mde.ps1 and choose "Run with PowerShell"
|
|
46
|
+
|
|
47
|
+
After install:
|
|
48
|
+
Open the Windows Start menu and search for "regen-mde".
|
|
49
|
+
Right-click .md or .docx files and choose "Open in regen-mde".
|
|
50
|
+
Use "Uninstall regen-mde" from the Start menu to remove the app and shell verbs.
|
|
51
|
+
|
|
52
|
+
Requirements:
|
|
53
|
+
Windows with Microsoft Edge WebView2 runtime
|
|
54
|
+
Node.js on PATH
|
|
55
|
+
Python 3 on PATH with the Build Corpus Python requirements installed
|
|
56
|
+
|
|
57
|
+
The installer copies the app to:
|
|
58
|
+
%LOCALAPPDATA%\Programs\regen-mde
|
|
59
|
+
"@
|
|
60
|
+
Set-Content -LiteralPath (Join-Path $stage "README-INSTALL.txt") -Value $readme -Encoding UTF8
|
|
61
|
+
|
|
62
|
+
Compress-Archive -Path (Join-Path $stage "*") -DestinationPath $zip -Force
|
|
63
|
+
|
|
64
|
+
if (-not (Test-Path -LiteralPath $zip)) {
|
|
65
|
+
throw "Package zip was not created: $zip"
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
$makensis = @(
|
|
69
|
+
"C:\Program Files (x86)\NSIS\makensis.exe",
|
|
70
|
+
"C:\Program Files (x86)\NSIS\Bin\makensis.exe"
|
|
71
|
+
) | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1
|
|
72
|
+
|
|
73
|
+
if ($makensis) {
|
|
74
|
+
& $makensis `
|
|
75
|
+
"/DVERSION=$Version" `
|
|
76
|
+
"/DAPP_SOURCE=$app" `
|
|
77
|
+
"/DOUT_FILE=$setupExe" `
|
|
78
|
+
(Join-Path $Root "installer\regen-mde.nsi")
|
|
79
|
+
if ($LASTEXITCODE -ne 0) {
|
|
80
|
+
throw "NSIS installer build failed with exit code $LASTEXITCODE"
|
|
81
|
+
}
|
|
82
|
+
if (-not (Test-Path -LiteralPath $setupExe)) {
|
|
83
|
+
throw "Installer exe was not created: $setupExe"
|
|
84
|
+
}
|
|
85
|
+
Write-Host "Packaged $setupExe"
|
|
86
|
+
} else {
|
|
87
|
+
Write-Warning "NSIS makensis.exe was not found; skipped setup EXE package."
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
Write-Host "Packaged $zip"
|
package/scripts/run-corpus.ps1
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
param(
|
|
2
|
-
[Parameter(Mandatory=$true)]
|
|
3
|
-
[string]$Source,
|
|
4
|
-
|
|
5
|
-
[string]$Out = ".tmp\corpus",
|
|
6
|
-
|
|
7
|
-
[ValidateSet("assets", "base64", "s3")]
|
|
8
|
-
[string]$Images = "assets",
|
|
9
|
-
|
|
10
|
-
[string]$Config = ""
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
$ErrorActionPreference = "Stop"
|
|
14
|
-
$root = Split-Path -Parent $PSScriptRoot
|
|
15
|
-
$buildCorpus = Join-Path $root "bin\build-corpus.js"
|
|
16
|
-
$katex = Join-Path $root "bin\validate-katex.js"
|
|
17
|
-
$assetValidator = Join-Path $root "src\build_corpus\validate_assets.py"
|
|
18
|
-
|
|
19
|
-
$args = @($buildCorpus, $Source, "--out", $Out, "--images", $Images)
|
|
20
|
-
if ($Config) {
|
|
21
|
-
$args += @("--config", $Config)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
node @args
|
|
25
|
-
node $katex $Out | Set-Content -Path (Join-Path $Out "katex-report.json") -Encoding UTF8
|
|
26
|
-
py -3 $assetValidator $Out | Set-Content -Path (Join-Path $Out "asset-report.json") -Encoding UTF8
|
|
27
|
-
|
|
28
|
-
Write-Host "Corpus test passed: $Out"
|
|
1
|
+
param(
|
|
2
|
+
[Parameter(Mandatory=$true)]
|
|
3
|
+
[string]$Source,
|
|
4
|
+
|
|
5
|
+
[string]$Out = ".tmp\corpus",
|
|
6
|
+
|
|
7
|
+
[ValidateSet("assets", "base64", "s3")]
|
|
8
|
+
[string]$Images = "assets",
|
|
9
|
+
|
|
10
|
+
[string]$Config = ""
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
$ErrorActionPreference = "Stop"
|
|
14
|
+
$root = Split-Path -Parent $PSScriptRoot
|
|
15
|
+
$buildCorpus = Join-Path $root "bin\build-corpus.js"
|
|
16
|
+
$katex = Join-Path $root "bin\validate-katex.js"
|
|
17
|
+
$assetValidator = Join-Path $root "src\build_corpus\validate_assets.py"
|
|
18
|
+
|
|
19
|
+
$args = @($buildCorpus, $Source, "--out", $Out, "--images", $Images)
|
|
20
|
+
if ($Config) {
|
|
21
|
+
$args += @("--config", $Config)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
node @args
|
|
25
|
+
node $katex $Out | Set-Content -Path (Join-Path $Out "katex-report.json") -Encoding UTF8
|
|
26
|
+
py -3 $assetValidator $Out | Set-Content -Path (Join-Path $Out "asset-report.json") -Encoding UTF8
|
|
27
|
+
|
|
28
|
+
Write-Host "Corpus test passed: $Out"
|