From 45b43a94c3ad02f7f06acace397cc04a151f4099 Mon Sep 17 00:00:00 2001 From: Oscar Levin Date: Wed, 27 May 2026 08:52:54 -0600 Subject: [PATCH 1/2] update conversion methods --- .github/workflows/publish-extension.yml | 91 ----------------- .github/workflows/release.yml | 99 +++++++++++++++++++ packages/vscode-extension/CHANGELOG.md | 4 + .../assets/schema/pretext-dev.rng | 95 +++++++++++------- .../vscode-extension/src/commands/convert.ts | 30 +++--- 5 files changed, 178 insertions(+), 141 deletions(-) delete mode 100644 .github/workflows/publish-extension.yml 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..7e40435 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,19 @@ 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,16 +155,19 @@ 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)", + "Markdown-style PreTeXt", newText, ); } From 6cf18a8334b1766f68e4eb5ad30ac5ab817d784a Mon Sep 17 00:00:00 2001 From: Oscar Levin Date: Wed, 27 May 2026 08:54:36 -0600 Subject: [PATCH 2/2] format --- packages/vscode-extension/src/commands/convert.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/vscode-extension/src/commands/convert.ts b/packages/vscode-extension/src/commands/convert.ts index 7e40435..4fb0098 100644 --- a/packages/vscode-extension/src/commands/convert.ts +++ b/packages/vscode-extension/src/commands/convert.ts @@ -71,9 +71,7 @@ export async function cmdConvertText() { convertedText = await cmdLatexToPretext(initialText, selectionRange); break; case "Markdown-style PreTeXt": - convertedText = await cmdConvertPMDToPretextExperimental( - initialText, - ); + convertedText = await cmdConvertPMDToPretextExperimental(initialText); break; case "Mixed Markup": convertedText = await cmdConvertPMDToPretext(initialText); @@ -166,10 +164,7 @@ async function cmdConvertPMDToPretextExperimental(initialText: string) { "Markdown-style PreTeXt ptxast conversion is experimental. Use with care.", ); const newText = markdownToPretext(initialText); - return validateAndFormatConvertedPretext( - "Markdown-style PreTeXt", - newText, - ); + return validateAndFormatConvertedPretext("Markdown-style PreTeXt", newText); } function formatConvertedPretext(xml: string) {