From 30bed2bc240773f061ba0fd0c29e2e2839f3ca4e Mon Sep 17 00:00:00 2001 From: rickstrahl Date: Sun, 26 Jan 2020 23:22:32 -1000 Subject: [PATCH] v1.21 --- Changelog.md | 104 ++++++++---------- .../MarkdownMonster_Version.xml | Bin 1134 -> 1104 bytes .../markdownmonster.portable.nuspec | 2 +- Install/Chocolatey/build.ps1 | 2 +- Install/Chocolatey/markdownmonster.nuspec | Bin 7078 -> 7072 bytes .../Chocolatey/tools/chocolateyInstall.ps1 | Bin 868 -> 862 bytes Install/CreateRelease.ps1 | 8 +- MarkdownMonster/MarkdownMonster.csproj | 2 +- Todo.md | 4 +- 9 files changed, 55 insertions(+), 67 deletions(-) diff --git a/Changelog.md b/Changelog.md index 81daffd39..c2a393ca5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -4,92 +4,80 @@ [![Chocolatey](https://img.shields.io/chocolatey/dt/markdownmonster.svg)](https://chocolatey.org/packages/MarkdownMonster) [![Web Site](https://img.shields.io/badge/Markdown_Monster-WebSite-blue.svg)](https://markdownmonster.west-wind.com) -### 1.20.16 -*not released yet* +### 1.21 +*January 27th, 2020* -* **[Updated Editor Key Binding Configuration](http://markdownmonster.west-wind.com/docs/_59l0izpoe.htm#editor-commands)** -Refactored the command binding logic to make it easier to create custom bindings to currently unmapped editor operations. Also allow for key mappings to custom created template expansions through simple key mappings. (note: this may break some existing key bindings. To reset: delete `MarkdownMonster-KeyBindings.json` in config folder) - -* **Add KeyBindings Button to Configuration Form** -Added a button that opens the `MarkdownMonster-KeyBindings.json` file in the editor for editing. Note: Changes to this file require a restart in order to be applied. +* **Major Overhaul of Editor/Preview Sync in Two-Way Sync Mode** +Remove a number of issues that caused editor jankiness due to recursive editor and preview syncing. The preview is now more conservative in scrolling the editor so that any two-way recursion issues have been minimized. This fixes jumpiness at the top and bottom of the document (especially in code snippets) as well as unexpected cursor movements during keyboard scrolling. Made a few additional tweaks to the document syncing and scroll functionality which improves editor performance for plain editing and provides more reliable preview sync updates for code blocks and other large block objects in the markdown text. -* **[PreviewWebRootPath in Project](http://markdownmonster.west-wind.com/docs/_5fz0ozkln.htm)** -Added a new project property which provides a WebRoot Path for translating site relative URLs that start with `/` when the preview HTML is rendered. This allows finding related resources from some site generators or simply when working on deeply nested projects where the rootpath may be buried many levels below the current document. This change is in addition to the `previewWebRootPath` YAML header that already existed, and now is complimented by a `PreviewWebRootPath` project setting that applies to any file rendered while a project is open. +* **Scroll, Click and Keyboard Navigation Performance Improvements** +All navigation operations no longer update the preview but only scroll the preview and highlight the relevant new location in the preview which improves navigation performance especially in very large documents. It's now to edit multi-megabyte documents with the preview enabled (although the actual refreshes will still be slow). -* **Fix: Edit->Allow Script Tags in Markdown Preview Updating** -Fix behavior of the `Editor.MarkdownOptions.AllowScriptTags` flag when switched to immediately turn off script rendering and refresh the preview immediately. Use this flag if your preview is jittery due to rendering of script elements in your page (ie. Gists, Math expressions, Embbedded media scripts). These scripts can cause the preview to jump around alot as elements are dynamically inserted. By temporarily disabling script tags, the editor and preview are smooth while not rendering the executing the embedded script. You can now toggle with `Alt-E-T` +* **Large Document Editing Performance Improvements** +Large documents (2500 lines or more) now throttle the amount of preview refreshes that occur since that can significantly affect the editor performance blocking the editor while the preview refreshes. Timeout is automatically bumped so you can continue to edit at full speed, until stopping for several seconds (instead of the 120ms default timeout on 'normal' sized documents). -* **Fix: Ctrl-+ Zooming Size Issues** -Fixed issue where Ctrl-+ zooming would use native browser zooming while Ctrl+- would use the application zooming resulting in mis-sized zoom control and huge browser controls on repeated zooming. Fixed. +* **[Navigation Only Preview](https://markdownmonster.west-wind.com/docs/_5ch1bv9en.htm)** +Added a new preview **NavigationOnly** preview sync mode, which does not implicitly update the preview on changes, but still allows navigation of the preview as you move through the editor. In this mode, Refresh operations are explict using a new explicit **Refresh Preview (Ctrl-Shift-R)** option on the **Edit** menu. This allows you to edit your very large documents without preview refreshes slowing down editing, and only explicitly refreshing the document to see your changes, all while still being able to navigate the document and scroll the preview. -### 1.20.15 -*January 17th, 2020* +* **New Console Output Window for Addins to display Output** +For addin developers there's now a new `Window.ConsolePanel` that is accessible through the Addin's `Model.Console` property. You can `WriteLine()` and `Write()` to the panel, and use `Clear()`, `Hide()` or `Show()` to display status messages from processing. Writing to the Console makes it visible. This can be useful for addins that want to do things like provide progress info or for provide messages for linting etc. -* **Additional Document Editing and Syncing Performance Improvements** -Made a few additional tweaks to the document syncing and scroll functionality which improves editor performance for plain editing and provides more reliable preview sync updates for code blocks and other large block objects in the markdown text. +* **Add *Open Document in new Tab* to Context Menu for Relative Markdown File Links** +There's a new context menu option that lets you navigate relative Markdown file links in the editor by opening them in a new (or existing) editor tab. Supported file types are opened in an editor tab, everything else is opened the Windows default viewer. HTTP links are opened in the browser. -* **Addins: Added Script Component to the main Markdown Monster Project** -The scripting library used in the Snippets and Commander addins has been moved into the main Markdown Monster property, which now makes it available to all Addin projects. This was done to consolidate the code used in both Snippets and Commander to use the same exact C# scripting engine and compiler runtimes. +* **Clickable Links in Editor** +Links are now clickable in the text editor. Links are underlined and are control click-able, which displays the link in the appropriate editor. Hyperlinks are opened in the browser, supported documents are opened in the editor and any others are opened in the appropriate Windows associated shell editors. -* **Fix: Don't render Math Script Expansion Math Expansion is turned off** -Fixed issue where math code was still expanded even if `MarkdownOptions.UseMathematics` was still enabled. +* **[PreviewWebRootPath in Project](http://markdownmonster.west-wind.com/docs/_5fz0ozkln.htm)** +Added a new project property which provides a WebRoot Path for translating site relative URLs that start with `/` when the preview HTML is rendered. This allows finding related resources from some site generators or simply when working on deeply nested projects where the rootpath may be buried many levels below the current document. This change is in addition to the `previewWebRootPath` YAML header that already existed, and now is complimented by a `PreviewWebRootPath` project setting that applies to any file rendered while a project is open. -* **Fix: Console Sizing Issue** -Fixed issue with the new Console window not sizing properly when writing to it without resizing the window first. +* **Switch to 64-bit version of wkhtmltopdf** +Switched our PDF generation helper to use the 64 bit version of wkhtmltopdf in order to support conversion of larger documents. Previously PDF conversions of very large documents would fail due to out of memory errors - this update should help with that. -* **Fix: Table Header Parsing** -Fixed issue with table editing when selecting an existing table and importing into the table editor for re-editing or re-formatting. Fixed various edge case scenarios that previously crashed the importer. +* **[Updated Editor Key Binding Configuration](http://markdownmonster.west-wind.com/docs/_59l0izpoe.htm#editor-commands)** +Refactored the command binding logic to make it easier to create custom bindings to currently unmapped editor operations. Also allow for key mappings to custom created template expansions through simple key mappings. (note: this may break some existing key bindings. To reset: delete `MarkdownMonster-KeyBindings.json` in config folder) -### 1.20.10 -*January 7th, 2020* +* **Add KeyBindings Button to Configuration Form** +Added a button that opens the `MarkdownMonster-KeyBindings.json` file in the editor for editing. Note: Changes to this file require a restart in order to be applied. -* **Major Overhaul of Editor/Preview Sync in Two-Way Sync Mode** -Remove a number of issues that caused editor jankiness due to recursive editor and preview syncing. The preview is now more conservative in scrolling the editor so that any two-way recursion issues have been minimized. This fixes jumpiness at the top and bottom of the document (especially in code snippets) as well as unexpected cursor movements during keyboard scrolling. -* **Large Document Editing Performance Improvements** -Large documents (2500 lines or more) now throttle the amount of preview refreshes that occur since that can significantly affect the editor performance blocking the editor while the preview refreshes. Timeout is automatically bumped so you can continue to edit at full speed, until stopping for several seconds (instead of the 120ms standard timeout). +* **Add Toolbar DropDown for Additional Editor Operations** +The main toolbar now has a new dropdown at the end of the editor operations, that provide additional editor insertion operations that are less common but were not discoverable before. Added operations: ``, `` and `` (underscore) as well as inserting a Page Break (for PDF generation or printing). -* **Scroll, Click and Keyboard Navigation Performance Improvements** -All navigation operations no longer update the preview but only scroll the preview and highlight the relevant new location in the preview. These performance improvements are quite drastic especially for very large documents. It should now be possible to edit multi-megabyte documents with the preview enabled (although the actual refreshes will still be slow). +* **Addins: Added `Westwind.Scripting` Component to the main Markdown Monster Project** +The scripting library used in the Snippets and Commander addins has been moved into the main Markdown Monster property, which now makes it available to the main project and all addin projects. This was done to consolidate the 'dynamic scripting' code used in both **Snippets** and **Commander** Addins, which now use the same shared scripting library for dynamic code execution using the same exact Roslyn C# compiler and runtimes. -* **New Console Output Window for Addins to display Output** -For addin developers there's now a new `Window.ConsolePanel` that is accessible through the Addin's `Model.Console` property. You can `WriteLine()` and `Write()` to the panel, and use `Clear()`, `Hide()` or `Show()` to display status messages from processing. Writing to the Console makes it visible. This can be useful for addins that want to do things like provide progress info or for provide messages for linting etc. +* **Fix: HTML Rendering and Preview Sync** +Fix preview HTML editor wonkiness (#609). Refactor HTML document sync separately from the Markdown document sync for greatly improved HTML preview sync to the editor position when editing or scrolling HTML content. -* **Add *Open Document in new Tab* to Context Menu for Relative Markdown Links** -There's a new context menu option that lets you navigate relative Markdown links by opening them in a new (or existing) editor tab. Supported file types are opened in an editor tab, everything else is opened the Windows default viewer. HTTP links are opened in the browser. -* **Clickable Links in Editor** -Links are now clickable in the text editor. Links are underlined and are control click-able, which displays the link in the appropriate editor. Hyperlinks are opened in the browser, supported documents are opened in the editor and any others are opened in the appropriate Windows associated shell editors. +* **Fix: Two-way Code Editor Preview Sync Jumpiness** +Resolved issue in two-way sync preview mode that was causing the editor to jump when editing or pasting into large blocks of text or code at the top or bottom of the editor. Finally found a solution to separating actual scroll events from explicitly navigated scroll events and refresh operations. -* **Remove Code Copy Badges in PDF/Print Views** -The code badges were overlaying the print content and since there's no transparency and you can easily scroll code, the badges are superfluous and would obscure content below it. Removed for PDF and Print output. +* **Fix: Ctrl-+ Zooming Size Issues** +Fixed issue where Ctrl-+ zooming would use native browser zooming while Ctrl+- would use the application zooming resulting in missized zoom control and huge browser controls on repeated zooming. Fixed. +* **Fix: Document Outline not closing when closing last document** +Fix Document Outline issue when closing the last document where the Outline stayed active after the document was closed. -* **Code Badge Copy Code Linefeeds in Previewer** -Previously the Code Badge copying would not properly handle line feeds in code snippets. It worked fine for external preview, but for the IE preview the line breaks were lost. Fixed. +* **Fix: Code Badge Copy Code Linefeeds in Previewer** +Previously the Code Badge copying would not properly handle line feeds in code snippets. It worked fine for external preview, but for the IE preview the line breaks were lost. Also remove code badges in Print CSS display mode so when printing to PDF the badges don't render. Removed for PDF and Print output. -* **Code Badge Scolling Fix** +* **Fix: Code Badge Horizontal Scolling** Fix issue with the code badge positioning when the code block is scrolled. Previously the code badge failed to stay pinned to the right in the scrolled content. This fix keeps it always pinned to the right of the code block. -* **Fix: Two-way Code Editor Preview Sync Jumpiness** -Resolved another issue in two-way sync preview mode that was causing the editor to jump when editing or pasting into large blocks of text or code at the top or bottom of the editor. Finally found a solution to separating actual scroll events from explicitly navigated scroll events and refresh operations. - -* **Fix: HTML Rendering and Preview Sync** -Fix preview HTML editor wonkiness (#609). Refactor HTML document sync separately from the Markdown document sync for greatly improved HTML preview sync to the editor position when editing or scrolling HTML content. - -* **Fix: Remove Depedendent ShimGen Exes from Distribution** +* **Fix: Remove Depedendent ShimGen Exes from Chocolatey Distribution** Removed extra EXE files from the distribution for the Roslyn compiler and set up Chocolatey to not generate ShimGen files for the remaining non-MM exe files (pingo, wkhtmltopdf, vbcscompiler). +* **Fix: Edit->Allow Script Tags in Markdown Preview Updating** +Fix behavior of the `Editor.MarkdownOptions.AllowScriptTags` flag when switched to immediately turn off script rendering and refresh the preview immediately. Use this flag if your preview is jittery due to rendering of script elements in your page (ie. Gists, Math expressions, Embbedded media scripts). These scripts can cause the preview to jump around alot as elements are dynamically inserted. By temporarily disabling script tags, the editor and preview are smooth while not rendering the executing the embedded script. You can now toggle with `Alt-E-T` +* **Fix: Don't render Math Script Expansion Math Expansion is turned off** +Fixed issue where math code was still expanded even if `MarkdownOptions.UseMathematics` was still enabled. -### 1.20.5 -*December 13, 2019* - -* **Add Toolbar DropDown for Additional Editor Operations** -The main toolbar now has a new dropdown at the end of the editor operations, that provide additional editor insertion operations that are less common but were not discoverable before. Added operations: ``, `` and `` (underscore) as well as inserting a Page Break (for PDF generation or printing). +* **Fix: Table Header Parsing** +Fixed issue with table editing when selecting an existing table and importing into the table editor for re-editing or re-formatting. Fixed various edge case scenarios that previously crashed the importer. -* **Fix: Document Outline not closing when closing last document** -Fix Document Outline issue when closing the last document where the Outline stayed active after the document was closed. ### 1.20 *November 8th, 2019* diff --git a/Install/Builds/CurrentRelease/MarkdownMonster_Version.xml b/Install/Builds/CurrentRelease/MarkdownMonster_Version.xml index e5a87d7de2571ca95778e5696ae32d5d07b85868..32b83a0f6a0267466969edb6683d3bc89afaa8a4 100644 GIT binary patch delta 29 kcmaFIae-q(AEV*KnchI+eI%pVWKYISM#If}88@s49cAGZO69)lr+F_1Ky*zb+Py&cJDIN6jj6IpQce8!DT0GbvJ8UO$Q diff --git a/Install/Chocolatey.Portable/markdownmonster.portable.nuspec b/Install/Chocolatey.Portable/markdownmonster.portable.nuspec index 3aea7fe45..6504ba4df 100644 --- a/Install/Chocolatey.Portable/markdownmonster.portable.nuspec +++ b/Install/Chocolatey.Portable/markdownmonster.portable.nuspec @@ -2,7 +2,7 @@ MarkdownMonster.Portable - 1.20.12 + 1.21 Markdown Monster Portable Install Rick Strahl, West Wind Technologies West Wind Technologies diff --git a/Install/Chocolatey/build.ps1 b/Install/Chocolatey/build.ps1 index 587e58c6b..7bd05d2ef 100644 --- a/Install/Chocolatey/build.ps1 +++ b/Install/Chocolatey/build.ps1 @@ -6,7 +6,7 @@ cd "$PSScriptRoot" -$release="v1.20" +$release="v1.21" $releasePath = "C:\projects\MarkdownMonsterAddins\MarkdownMonsterReleases\$release" #$file = "MarkdownMonsterSetup-0.55.exe" diff --git a/Install/Chocolatey/markdownmonster.nuspec b/Install/Chocolatey/markdownmonster.nuspec index b0f045c493f171fef2c37664641473e653aa5322..e97f969e85e1e963636d11a6814f918e25d10332 100644 GIT binary patch delta 14 VcmZ2xzQBA#3L~T8=4?i5DF7!S1aJTV delta 20 bcmZ2rzRY|>3M0D#gC2t+gVE+xMr$bmJ*Nc# diff --git a/Install/Chocolatey/tools/chocolateyInstall.ps1 b/Install/Chocolatey/tools/chocolateyInstall.ps1 index fa864aa2b12f72efa7fe4ef665b97d7dc2d82be7..d98ae3ea7971e20d637203e5acaa30e41160ce57 100644 GIT binary patch delta 152 zcmW-Z(G7zz5JP>cl#bH`5(uC40_${y4#6Uo*r#6%($~n+Nw(kl3g7SvX6d-wXz5(- zWpCG}RfC#l?tojAROE^{r^_Tx8_5^Asu8N-677bnp4vMVyKntB!#NwJuQg5R|Iwf` Kc}4s2xRoCYs}(%} delta 165 zcmW-Y%MHRX5Jbm8aw_1;fdY^}U?<`NN$hqgff|q-i9|n~D1=9}((cT>*^m9&)f(ek zZ({Fsl2>?N&BHvsW=)D3R8Un3H!HLAb_Yl#^}67LMmiCl$rC?iV+9hlkY#Aqd80{p avdWL6_is#0#VwG^9y=Y|tJ}BR?(hQ>a2HPi diff --git a/Install/CreateRelease.ps1 b/Install/CreateRelease.ps1 index e00e33eed..adeeed182 100644 --- a/Install/CreateRelease.ps1 +++ b/Install/CreateRelease.ps1 @@ -1,7 +1,7 @@ cd "$PSScriptRoot" # Major version -$release = "v1.20" +$release = "v1.21" $releaseFile = "$PSScriptRoot\builds\currentrelease\MarkdownMonsterSetup.exe" @@ -11,8 +11,8 @@ $version = $version.Trim().Replace(".0","") "Writing Version File for: " + $version $finalFile = "..\..\MarkdownMonsterAddins\MarkdownMonsterReleases\$release\MarkdownMonsterSetup-${version}.exe" -copy $releaseFile $finalFile -copy $releaseFile "..\..\MarkdownMonsterAddins\MarkdownMonsterReleases\CurrentRelease\MarkdownMonsterSetup.exe" +Copy-Item $releaseFile $finalFile +Copy-Item $releaseFile "..\..\MarkdownMonsterAddins\MarkdownMonsterReleases\CurrentRelease\MarkdownMonsterSetup.exe" cd "..\..\MarkdownMonsterAddins\MarkdownMonsterReleases" git add -f "${release}/MarkdownMonsterSetup-${version}.exe" @@ -25,5 +25,3 @@ $chocoNuspec = ".\chocolatey\markdownmonster.template.nuspec" $content = Get-Content -Path $chocoNuspec $content = $content.Replace("{{version}}",$version) out-file -filepath $chocoNuSpec.Replace(".template","") -inputobject $content - - diff --git a/MarkdownMonster/MarkdownMonster.csproj b/MarkdownMonster/MarkdownMonster.csproj index 8d0ffbc84..45e08388a 100644 --- a/MarkdownMonster/MarkdownMonster.csproj +++ b/MarkdownMonster/MarkdownMonster.csproj @@ -7,7 +7,7 @@ true net472 - 1.20.13.6 + 1.21 MarkdownMonster Rick Strahl, West Wind Technologies diff --git a/Todo.md b/Todo.md index 536a2c39e..f0f7d941a 100644 --- a/Todo.md +++ b/Todo.md @@ -4,7 +4,9 @@ ### Immediate * [ ] Addin Enabled/Disabled -* [x] ~~Format Table (without dialog)~~ +* [ ] Large, Large Document Performance +* Add ability to have a 'Navigation Only' refresh (no refresh, but navigation works so doc doesn't have to reload) +* Menu option/hotkey to manually do a 'Preview Refresh' ### Mid Term * [ ] Search for Blog Posts in Weblog Posts folder (walk tree and show titles)