diff --git a/.github/workflows/publish-extension.yml b/.github/workflows/publish-extension.yml
deleted file mode 100644
index 81bdf2e..0000000
--- a/.github/workflows/publish-extension.yml
+++ /dev/null
@@ -1,91 +0,0 @@
-name: Publish VSCode Extension
-
-on:
- workflow_dispatch:
- inputs:
- level:
- description: "Release level"
- required: true
- type: choice
- default: "patch"
- options:
- - "patch"
- - "minor"
- - "major"
-
-permissions:
- contents: write
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version: "24"
-
- - name: Install Dependencies
- run: npm install
-
- - name: Set up git user
- run: |
- git config user.name "${{ github.actor }}"
- git config user.email "${{ github.actor }}@users.noreply.github.com"
-
- - name: Update schema
- run: |
- node ./scripts/getSchemas.js
- git add packages/vscode-extension/assets/schema
- git commit -m "chore: update schemas" || true
-
- - name: Bump version
- run: |
- cd packages/vscode-extension
- npm version ${{ inputs.level }} --no-git-tag-version
-
- - name: Build dependency packages
- run: npm run build:packages
-
- - name: Build Extension
- run: npm run build -w pretext-tools
-
- - name: Package
- run: |
- cd dist/vscode-extension
- npx vsce package --no-dependencies
-
- - name: Get Version
- id: version
- run: echo "VERSION=$(jq -r '.version' packages/vscode-extension/package.json)" >> $GITHUB_OUTPUT
-
- - name: Deploy to VS Marketplace
- run: |
- cd dist/vscode-extension
- npx vsce publish --no-dependencies -p ${{ secrets.VS_MARKETPLACE_TOKEN }}
-
- - name: Deploy to Open VSX
- run: |
- cd dist/vscode-extension
- npx ovsx publish --no-dependencies -p ${{ secrets.OPEN_VSX_TOKEN }}
-
- - name: Update changelog
- run: |
- newline="\\n## [${{ steps.version.outputs.VERSION }}] - $(date +'%Y-%m-%d')"
- sed '/## \[UNRELEASED\]/a\'"$newline" packages/vscode-extension/CHANGELOG.md > CHANGELOG.md.tmp
- mv CHANGELOG.md.tmp packages/vscode-extension/CHANGELOG.md
- git add packages/vscode-extension/CHANGELOG.md
- git commit -m "chore(vscode-extension): publish v${{ steps.version.outputs.VERSION }}" || true
- git push origin main
-
- - name: Create Release
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- gh release create "v${{ steps.version.outputs.VERSION }}" \
- --repo="$GITHUB_REPOSITORY" \
- --title="v${{ steps.version.outputs.VERSION }}" \
- --notes="See the [changelog](CHANGELOG.md) for details."
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 19824ee..dc36443 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -4,12 +4,34 @@ on:
push:
branches:
- main
+ workflow_dispatch:
+ inputs:
+ release_target:
+ description: "What to release"
+ required: true
+ type: choice
+ default: "packages"
+ options:
+ - "packages"
+ - "vscode-extension"
+ extension_level:
+ description: "VS Code extension release level"
+ required: true
+ type: choice
+ default: "patch"
+ options:
+ - "patch"
+ - "minor"
+ - "major"
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
+ if: |
+ github.event_name == 'push' ||
+ (github.event_name == 'workflow_dispatch' && github.event.inputs.release_target == 'packages')
runs-on: ubuntu-latest
permissions:
contents: write
@@ -38,3 +60,80 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_CONFIG_PROVENANCE: "true"
+
+ release-vscode-extension:
+ name: Release VS Code Extension
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_target == 'vscode-extension'
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-node@v4
+ with:
+ node-version: "24"
+
+ - name: Install dependencies
+ run: npm install
+
+ - name: Set up git user
+ run: |
+ git config user.name "${{ github.actor }}"
+ git config user.email "${{ github.actor }}@users.noreply.github.com"
+
+ - name: Update schema
+ run: |
+ node ./scripts/getSchemas.js
+ git add packages/vscode-extension/assets/schema
+ git commit -m "chore(vscode-extension): update schemas" || true
+
+ - name: Bump extension version
+ run: |
+ cd packages/vscode-extension
+ npm version ${{ github.event.inputs.extension_level }} --no-git-tag-version
+
+ - name: Build dependency packages
+ run: npm run build:packages
+
+ - name: Build extension
+ run: npm run build -w pretext-tools
+
+ - name: Package extension
+ run: |
+ cd dist/vscode-extension
+ npx vsce package --no-dependencies
+
+ - name: Get extension version
+ id: version
+ run: echo "VERSION=$(jq -r '.version' packages/vscode-extension/package.json)" >> "$GITHUB_OUTPUT"
+
+ - name: Publish to VS Marketplace
+ run: |
+ cd dist/vscode-extension
+ npx vsce publish --no-dependencies -p "${{ secrets.VS_MARKETPLACE_TOKEN }}"
+
+ - name: Publish to Open VSX
+ run: |
+ cd dist/vscode-extension
+ npx ovsx publish --no-dependencies -p "${{ secrets.OPEN_VSX_TOKEN }}"
+
+ - name: Update changelog and commit release metadata
+ run: |
+ newline="\\n## [${{ steps.version.outputs.VERSION }}] - $(date +'%Y-%m-%d')"
+ sed '/## \[UNRELEASED\]/a\'"$newline" packages/vscode-extension/CHANGELOG.md > CHANGELOG.md.tmp
+ mv CHANGELOG.md.tmp packages/vscode-extension/CHANGELOG.md
+ git add packages/vscode-extension/CHANGELOG.md
+ git add packages/vscode-extension/package.json
+ git add package-lock.json
+ git commit -m "chore(vscode-extension): publish v${{ steps.version.outputs.VERSION }}" || true
+ git push origin main
+
+ - name: Create GitHub release for extension
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release create "vscode-extension-v${{ steps.version.outputs.VERSION }}" \
+ --repo="$GITHUB_REPOSITORY" \
+ --title="VS Code Extension v${{ steps.version.outputs.VERSION }}" \
+ --notes="See packages/vscode-extension/CHANGELOG.md for details."
diff --git a/packages/vscode-extension/CHANGELOG.md b/packages/vscode-extension/CHANGELOG.md
index 26b8f67..bbfe882 100644
--- a/packages/vscode-extension/CHANGELOG.md
+++ b/packages/vscode-extension/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [UNRELEASED]
+## [0.38.0] - 2026-05-27
+
+- Explosed the "Markdown-style PreTeXt" converter as one of the two conversion options.
+
## [0.37.0] - 2026-05-25
### Changed
diff --git a/packages/vscode-extension/assets/schema/pretext-dev.rng b/packages/vscode-extension/assets/schema/pretext-dev.rng
index 4f191ea..7aca6cd 100644
--- a/packages/vscode-extension/assets/schema/pretext-dev.rng
+++ b/packages/vscode-extension/assets/schema/pretext-dev.rng
@@ -40,7 +40,17 @@
-
+
+
+
+ application
+ controls
+ minimal
+
+
@@ -521,9 +531,14 @@
-
-
-
+
+
+
+
+
+
+
+
@@ -554,15 +569,30 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -581,30 +611,21 @@
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/vscode-extension/src/commands/convert.ts b/packages/vscode-extension/src/commands/convert.ts
index 1a67d4f..4fb0098 100644
--- a/packages/vscode-extension/src/commands/convert.ts
+++ b/packages/vscode-extension/src/commands/convert.ts
@@ -53,10 +53,9 @@ export async function cmdConvertText() {
.get("experimentalFeatures", false);
const conversionOptions = [
"LaTeX-style PreTeXt",
- "PreTeXt Markdown",
- "Classic Markdown",
+ "Markdown-style PreTeXt",
...(experimentalFeaturesEnabled
- ? ["PreTeXt Markdown (Experimental ptxast)"]
+ ? ["Mixed Markup", "Legacy Markdown Converter"]
: []),
];
window
@@ -71,17 +70,17 @@ export async function cmdConvertText() {
case "LaTeX-style PreTeXt":
convertedText = await cmdLatexToPretext(initialText, selectionRange);
break;
- case "Classic Markdown":
- convertedText = await validateAndFormatConvertedPretext(
- "Classic Markdown",
- await md2ptx(initialText),
- );
+ case "Markdown-style PreTeXt":
+ convertedText = await cmdConvertPMDToPretextExperimental(initialText);
break;
- case "PreTeXt Markdown":
+ case "Mixed Markup":
convertedText = await cmdConvertPMDToPretext(initialText);
break;
- case "PreTeXt Markdown (Experimental ptxast)":
- convertedText = await cmdConvertPMDToPretextExperimental(initialText);
+ case "Legacy Markdown Converter":
+ convertedText = await validateAndFormatConvertedPretext(
+ "Legacy Markdown Converter",
+ await md2ptx(initialText),
+ );
break;
}
})
@@ -154,18 +153,18 @@ function convertWithUnified(text: string) {
async function cmdConvertPMDToPretext(initialText: string) {
const newText = FlexTeXtConvert(initialText);
- return validateAndFormatConvertedPretext("PreTeXt Markdown", newText);
+ return validateAndFormatConvertedPretext(
+ "PreTeXt Markdown (Experimental)",
+ newText,
+ );
}
async function cmdConvertPMDToPretextExperimental(initialText: string) {
pretextOutputChannel.appendLine(
- "PreTeXt Markdown ptxast conversion is experimental. Use with care.",
+ "Markdown-style PreTeXt ptxast conversion is experimental. Use with care.",
);
const newText = markdownToPretext(initialText);
- return validateAndFormatConvertedPretext(
- "PreTeXt Markdown (Experimental ptxast)",
- newText,
- );
+ return validateAndFormatConvertedPretext("Markdown-style PreTeXt", newText);
}
function formatConvertedPretext(xml: string) {