diff --git a/CHANGELOG.md b/CHANGELOG.md index dcdf270..2dacda5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.51.0 (Release on 24 October 2022) + +- Always render on save for notebooks (as they don't execute by default) +- Improved slide preview for notebooks (return last slide) + ## 1.50.0 (Release on 19 October 2022) - Run only selected text for non-empty editor selections diff --git a/README.md b/README.md index 166f64a..721ec58 100644 --- a/README.md +++ b/README.md @@ -223,12 +223,12 @@ document front-matter, option names/values use YAML syntax. You can alternatively download and install the extension from the command line as follows: -1. Download the extension file: [Quarto VS Code (VSIX)](https://github.com/quarto-dev/quarto-vscode/raw/main/visx/quarto-1.50.0.vsix) +1. Download the extension file: [Quarto VS Code (VSIX)](https://github.com/quarto-dev/quarto-vscode/raw/main/visx/quarto-1.51.0.vsix) 2. Install from the command line with: ```bash - code --install-extension quarto-1.50.0.vsix + code --install-extension quarto-1.51.0.vsix ``` Note that in order to use the `code` command to perform the installation you may need to open the VS Code Command Palette (Ctrl+Shift+P) and type "shell command" to execute the `Shell Command: Install 'code' command in PATH` command. This will make sure that `code` can be invoked from the command line on your system. diff --git a/assets/www/preview/index.js b/assets/www/preview/index.js index 772cd1f..ef90d76 100644 --- a/assets/www/preview/index.js +++ b/assets/www/preview/index.js @@ -23,7 +23,7 @@ const reloadButton = header.querySelector(".reload-button"); const openExternalButton = header.querySelector(".open-external-button"); const kQuartoPreviewReqId = "quartoPreviewReqId"; const kQuartoPreviewThemeCategory = "quartoPreviewThemeCategory"; -let slideIndex = 0; +let slideIndex = undefined; const updateAddressBar = (href) => { const url = new URL(href); @@ -76,18 +76,20 @@ window.addEventListener("message", (e) => { break; } case "setSlideIndex": { - slideIndex = e.data.index || 0; + slideIndex = e.data.index; break; } case "reveal-init": { // set the slide index const slides = e.data.data.slides; - const slide = slides[slideIndex]; - if (slide) { - e.source.postMessage( - { message: "reveal-slide", data: slide }, - e.origin - ); + if (slideIndex !== undefined) { + const slide = slides[slideIndex]; + if (slide) { + e.source.postMessage( + { message: "reveal-slide", data: slide }, + e.origin + ); + } } // let reveal know we are ready for additional messages diff --git a/package.json b/package.json index 65efb8e..c95a2a3 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "pandoc", "quarto" ], - "version": "1.50.0", + "version": "1.51.0", "repository": { "type": "git", "url": "https://github.com/quarto-dev/quarto-vscode.git" diff --git a/src/providers/preview/preview-util.ts b/src/providers/preview/preview-util.ts index efa7585..bc72127 100644 --- a/src/providers/preview/preview-util.ts +++ b/src/providers/preview/preview-util.ts @@ -107,6 +107,11 @@ export async function renderOnSave(engine: MarkdownEngine, editor: TextEditor) { return false; } + // notebooks automatically get renderOnSave + if (isNotebook(editor.document)) { + return true; + } + // first look for document level editor setting const docYaml = await documentFrontMatter(engine, editor.document); const docSetting = readRenderOnSave(docYaml); diff --git a/src/providers/preview/preview-webview.ts b/src/providers/preview/preview-webview.ts index 2f465e7..a6851e6 100644 --- a/src/providers/preview/preview-webview.ts +++ b/src/providers/preview/preview-webview.ts @@ -22,7 +22,7 @@ export class QuartoPreviewWebviewManager extends QuartoWebviewManager< this.activeView_.clear(); } } - public setSlideIndex(slideIndex: number) { + public setSlideIndex(slideIndex?: number) { if (this.activeView_) { this.activeView_.setSlideIndex(slideIndex); } @@ -102,7 +102,7 @@ export class QuartoPreviewWebview extends QuartoWebview { }); } - public setSlideIndex(slideIndex: number) { + public setSlideIndex(slideIndex?: number) { this._webviewPanel.webview.postMessage({ type: "setSlideIndex", index: slideIndex, diff --git a/src/providers/preview/preview.ts b/src/providers/preview/preview.ts index 88e6df7..c2a16b6 100644 --- a/src/providers/preview/preview.ts +++ b/src/providers/preview/preview.ts @@ -154,6 +154,8 @@ export async function previewDoc( previewManager.setSlideIndex( await revealSlideIndex(editor.selection.active, editor.document, engine) ); + } else { + previewManager.setSlideIndex(undefined); } } // set onShow if provided @@ -263,7 +265,7 @@ class PreviewManager { } } - public setSlideIndex(slideIndex: number) { + public setSlideIndex(slideIndex?: number) { this.webviewManager_.setSlideIndex(slideIndex); } diff --git a/visx/quarto-1.50.0.vsix b/visx/quarto-1.51.0.vsix similarity index 86% rename from visx/quarto-1.50.0.vsix rename to visx/quarto-1.51.0.vsix index 93099a0..67ae4b6 100644 Binary files a/visx/quarto-1.50.0.vsix and b/visx/quarto-1.51.0.vsix differ