Giter Site home page Giter Site logo

rickstrahl / markdownmonster Goto Github PK

View Code? Open in Web Editor NEW
1.5K 61.0 230.0 133.9 MB

An extensible Markdown Editor, Viewer and Weblog Publisher for Windows

Home Page: https://markdownmonster.west-wind.com

License: Other

PowerShell 1.79% C# 43.40% CSS 9.22% HTML 44.07% ASP.NET 1.52%
markdown markdown-editor weblog-publisher writing windows weblog blog wordpress metaweblogapi documentation

markdownmonster's Introduction

Markdown Monster

download NuGet

Markdown Monster is an easy to use and extensible Markdown Editor, Viewer and Weblog Publisher for Windows. Our goal is to provide the best Markdown specific editor for Windows and make it as easy as possible to create Markdown documents. We provide a core editor and previewer, and a number of non-intrusive helpers to help embed content like images, links, tables, code and more into your documents with minimal effort.

Test

Show your Support

If you like what you see here, please consider starring this repo (click the ⭐ in the top right corner of this page). If you have a favorite feature in Markdown Monster, it'd be awesome if you could tweet about it and mention @markdownmonstr. Please help us spread the word.

Installation

Download Installer

You can download Markdown Monster using the self-contained installer:

Download Markdown Monster

Chocolatey

You can you use Chocolatey to install from the Windows Command Prompt (maintained by us - always up to date)

c:\> choco install markdownmonster

WinGet

You can also use the built-in Windows WinGet tool (not maintained by us):

c:\> winget install markdown-monster

Scoop

You can also use Scoop to install and update. You need to use the extras bucket. (not maintained by us)

c:\> scoop install markdown-monster

License

Markdown Monster is a licensed product and while we provide a fully functional, free download, for continued use a reasonably priced license is required.

For more detailed info on licensing please visit licensing information here:

Markdown Monster Licensing

Source code no longer available here

Due to rampant license abuse and misuse of the source code by a few bad actors, this repository no longer holds any of Markdown Monster's source code. The source code has moved to a private repository and access is available by request.

This repository serves as the GitHub information page for downloads and features, as well as for feedback on bug reports and enhancement requests in the Issues section. For more general questions, you an also use our support message board in the Markdown Monster section.

Overview

Here's what Markdown Monster looks like using the default Dark Theme:

Markdown Monster Screen Shot

and here is the Light Theme:

Markdown Monster Screen Shot

Note that you can individually customize the theming for the editor, the preview and even the code snippet display in the previewer.

Productive

Markdown Monster has a lot of features, but we work hard to keep those features out of your way when you don't need them. If you just want to write, MM provides a minimal editing experience that provides pleasant white space around your content and an optional distraction free mode. But if you want to be more productive use shortcuts and helpers to enhance your editing experience, we help you with many useful tools to enhance your editing experience with thoughtful productivity features. Most commands have keyboard shortcuts and can be accomplished with one or two keystrokes.

Easily embed things like images, links, tables, code snippets and more with a couple of keystrokes and smart link fix ups. Because images are such a big part of content creation, our image embedding support is especially rich and supports pasting images from the clipboard, embedding with the image file/url dialog, drag and drop from explorer or a browser, and even a built-in image capture utility.

Customizable

Markdown Monster is highly customizable with themes for the main shell, editor and preview displays. The editor and preview themes can be easily customized using HTML and CSS based templates so you can make Markdown Monster your own. There are also many options to customize the editor's fonts, sizes and many display options.

You can also run in distraction free mode, that removes toolbars, menus, preview, sidebar and other distractions to let you focus on your code. Or use Presentation mode to focus on reading content without the editor view.

Extensible

Markdown Monster is extensible with .NET code. You can use our Snippets or Commander addins to create custom text expansions, or automate common tasks using .NET Code snippets. A full addin extensibility model allows deep integration with most of Markdown Monster's features and UI to create sophisticated extensions using a straightforward Addin model. There is an Addin Manager that lets you easily install, update and manage available Addins.

Weblog Publishing

If you have a blog chances are you can use Markdown Monster to create your content and publish it to your blogging service. Markdown Monster can publish to many common Weblog engines including WordPress, Medium and any service that use MetaWeblog API. MM automatically handles converting your Markdown content to HTML, fixing up links and publishing and re-publishing your Markdown content cleanly to blogging services.

The New Weblog Post feature automatically sets up a post folder in a Weblog Posts directory hierarchy to let you organize posts in a shared DropBox or OneDrive (if available) folder so you can easily work on posts from multiple machines.

Markdown Monster's integrated Git features also work great for any Git based service like Jekyll, Ghost, Hugo or Wyam to write your posts locally and immediately push them to your remote Git repository to publish. Git integration is built into MM to commit your changes either individually or in batch or you can open your favorite Git Client to publish your changes to your hosted content blog.

Links

Addins

Please report any Issues you run into!

If you run into a problem with Markdown Monster, please let us know by filing an issue or feature request here on GitHub. We want to know what doesn't work and get it fixed. Help us make Markdown Monster better! We know your time is valuable, but we really appreciate any feedback.

Features

Markdown Monster provides many useful features:

Markdown Editor

  • Syntax highlighted Markdown editing
  • Live and synced HTML preview
  • Gentle, optional toolbar support for Markdown newbies
  • Inline spell checking
  • Line and Word counts
  • Synced Document Outline
  • Distraction free mode
  • Markdown folding
  • Split view

Previewer

  • Scroll synced preview window
  • Optional external previewer for multi-screen
  • Preview in Web Browser
  • Presentation mode support
  • Distraction-free mode support
  • Document Navigation from embedded Markdown Links

Image Features

  • Paste images from Clipboard
  • Smartly select and embed images from disk or URL
  • Drag images from Folder Browser
  • Drag images from Explorer
  • Edit images in your image editor of choice
  • Built-in screen capture
  • Automatic image compression on pasted images

Editing Features

  • Easy link embedding from clipboard or disk
  • Embed code snippets and see highlighted syntax coloring
  • Two-way table editor for interactively creating and editing tables
  • Text Snippet Expansion with C# Code via Snippets Addin
  • Embed Emojii
  • Smart, unobtrusive toolbar and shortcut key helpers
  • Snippet expansion from text templates
  • Document Outline to navigate large documents
  • Many Editor customization options

Output and Selections

  • Save rendered output to self-contained HTML or HTML Fragment
  • Save rendered output to PDF
  • Copy Markdown selection as HTML
  • Paste HTML text as Markdown
  • Open rendered output in your favorite Web browser
  • Print rendered output to the printer or PDF driver
  • Generate and embed document Table of Contents

Theme Support

  • Dark and Light application themes
  • Customizable Editor Themes
  • Customizable Preview Themes
  • Customizable output syntax coloring themes
  • Each type of theme can be individually applied
  • Use HTML and CSS to customize Preview and Editor Themes

File Operations

  • Editor remembers open documents by default (optional)
  • Auto-Save and Auto-Backup support
  • Many file operations on each file
    • Shell Viewer
    • Open With...
    • Edit in appropriate editors
    • View/Edit Images in configured apps
    • Compress images
    • Commit to Git
    • Open on Github (if Github repo)
  • Save files with encryption
  • Drag and drop documents from Explorer and Folder Browser
  • Open a Terminal, Explorer or Git Client

Organization and File Access

  • Integrated File and Folder browser
  • Quick File Search
  • Find in Files (search files and content)
  • Favorites Sidebar - save, organize and search
  • Group files into Projects
  • Drag and Drop files everywhere

Git Integration

  • Show Git Status in Folder Browser
  • Commit and push Dialog
  • Commit and push active file, folder browser file
  • Commit and push all pending changes
  • Compare changes in configured Git Diff client
  • Undo Changes
  • Add Ignored Files
  • Clone Repository
  • Open in Git Client

Weblog Publishing

  • Create or edit Weblog posts using Markdown
  • Publish your Markdown directly to your blog
  • Re-publish posts at any time
  • Post data stored as YAML metadata in Markdown
  • Send custom meta data with posts
  • Supports MetaWebLog, Wordpress and Medium (limited)
  • Supports document based blogs (Jekyll, Hugo, Wyam, Ghost etc.)
  • Download and edit existing posts
  • Very fast publish and download process
  • Support for multiple blogs
  • Dropbox and OneDrive shared post storage

Non Markdown Features

  • HTML file editing with live preview
  • Many other file formats can also be edited:
    JSON, XML, CSS, JavaScript, Typescript, FoxPro, CSharp and more
  • Optional shared configuration on Cloud drives
  • High DPI Monitor Aware

Command Line features

  • Use mm or markdown to launch Markdown Monster
  • Markdown Monster path added to user path
  • mm readme.md - open single file
  • mm readme.md changelog.md - open multiple files
  • mm . - open folder browser in current folder
  • mm reset - reset all Markdown Monster settings
  • mm uninstall - remove all non-local system settings

Extensibility

Why another Markdown Editor?

Markdown is everywhere these days, and it's becoming a favorite format for many developers, writers and documentation experts to create lots of different kinds of content in this format. Markdown is used in a lot of different places:

  • Source Code documentation files (like this one)
  • Weblog posts
  • Product documentation
  • Message Board message entry
  • Application text entry for formatted text

Personally I use Markdown for my Weblog, my message board, of course on GitHub and in a number of applications that have free form text fields that allow for formatted text - for example in our Webstore product descriptions are in Markdown.

Having a dedicated Markdown Editor that gets out of your way, yet provides a few helpful features and lets you add custom features that make your content creation sessions more productive is important. Check out this post on why it makes sense to use a dedicated Markdown Editor rather than a generic text editor for Markdown document creation. The ability to easily publish your Markdown to any MetaWebLog or Wordpress API endpoint is also useful as it allows you to easily publish to blogs or any application that supports for either for these formats.

Markdown Monster wants to eat your Markdown!

Markdown Monster is a Markdown editor and Viewer for Windows that lets you create edit or simply preview Markdown text. It provides basic editing functionality with a few nice usability features for quickly embedding images, links, code, tables, screen shots and other markup. You get a responsive text editor that's got you covered with Markdown syntax highlighting, a collapsible live preview, so you can see what your output looks like, inline spellchecking and a handful of optimized menu options that help you mark up your text and embed and link content into your Markdown document. Additionally utility features let you quickly jump to the command line or an Explorer window, commit a document to Git, or even edit images in your favorite image editor.

Table Editor

Markdown Monster includes a powerful two-way table editor that lets you interactively edit content in tables. You can use the rich table editor to enter your Table content, and re-open Markdown table code in the editor for later editing and re-formatting.

Markdown Monster Table Editor

Folder Browser

Markdown editing often requires managing related content like images, or multiple files for links etc. and Markdown Monster provides a folder browser to see and navigate files while in the editor. The browser has built-in Git status support so you can immediately see what documents have changed in your folder tree and you can easily review and undo changes. The browser lets you navigate folders, create, delete and move files and there are many options to view, open and edit files.

The folder browser also supports searching, moving and renaming of files as you would expect of a file browser.

Document Outline

When working with long documents it's important to have an easy way to navigate the document's structure quickly, and the Document Outline makes it easy to see the document's structure at a glance and jump to any section quickly. The outline also lets you pick up document Ids for quickly embedding same-document links.

Git Integration

These days working with Markdown often means working with Git repositories and Markdown Monster integrates common Git tasks that you need to perform during editing. You can easily review, commit and push changes, as well as cloning and creating of new repositories.

Screen Captures

The Screen Capture addin supports two separate capture modes:

  • Techsmith's popular and versatile SnagIt Screen Capture Tool
  • Built-in Screen Capture Addin

To capture, simply click the capture button (camera icon) and the main app minimizes and either SnagIt or the integrated capture tool pops up to let you select the object to capture. With SnagIt you can use most of SnagIt's native capture modes, for the built-in tool you can select Windows and Controls on the screen. Captures are previewed and have options for editing, and when finished the captured image is embedded and linked directly into the Markdown content.

SnagIt Screen Capture Add-in

Here's the SnagIt Screen Capture in action:

And here is the self-contained, built-in Screen Capture Module:

Template Expansions

The built-in Snippets addin allows you to create templates - including dynamic templates using C# code - to expand text either on a typed expansion keyword, via interactive selection or via a pre-defined shortcut key.

Weblog Publishing

A common use case for Markdown is to create rich blog posts with embedded links and content and Markdown Monster makes it easy to pull together content from various sources. You can easily embed images by pasting from the the clipboard, or by linking images from URLs or files or using the built-in Screen Capture addin or SnagIt support.

Writing long blog posts and articles, and coordinating lots of related content is one of the main reasons I built this tool in the first place as is publishing and updating content easily to various types of blogs and content generators.

You can take any Markdown and turn it into a blog post by using the Weblog publishing feature. If you use WordPress, a MetaWeblog API Blog, Medium or Jekyll, you can click the Weblog button on the toolbar and set up your blog (MetaWebLog, WordPress or Medium), and then specify the Weblog specifics like title, abstract, tags and Web Site to publish to. Posts can be easily published and also re-published with the click of a button. You can also download existing blog posts from your blog and edit them as Markdown and then republish them.

Weblog Publishing Addin

Weblog Publishing Addin Download

Customizable

Most editing and UI features in Markdown Monster are optional and can be turned on and off. Want to work distraction free and see no preview or spell checking hints? You can turn them off. Want to store configuration data in a shared cloud folder? You can do that too.

Want a different editor theme than the dark default or a preview theme that matches your blog or branding? You can easily switch to one of the many built-in editor themes. For previews you can use either one of several built-in themes or add your own with a simple, plain HTML/CSS template. You can even create themes that link to your own online styles.

The editor and previewer are HTML and JavaScript based, so you can also apply any custom styling and even hook up custom JavaScript code if you want to get fancy beyond the basic configuration. The preview themes are easy to modify as they are simply HTML and CSS templates.

Extensible with .NET Add-ins

One of the key feature and the main reason I built Markdown Monster is that it is extensible, so that you and I can plug additional functionality into it without bloating the main product.

You can find available public Addins you can install in the Markdown Monster Addin Manager from the Tools menu:

Addin Manager

There is a variety of functionality available in addins. Here are a few examples:

Right now the registry is pretty sparse, but here are a few Addins you can check out:

  • Console
    Lets you pin an always-active Terminal Console window to the bottom of Markdown Monster.

  • Commander C# Scripting
    A C# based scripting addin that lets you automate tasks using script code. For simple tasks this is quicker and easier than creating a full addin.

  • Save Image to Azure Blob Storage
    Lets you save images as Azure Blob storage items and embeds a link to the an uploaded resoure into your Markdown.

  • Gist
    This addin allows you to Open from Gist and Save as Gist as well as letting you create code snippets and embed them as Gists into your Markdown content.

  • Pandoc Markdown Parser
    This addin provides a PanDoc Markdown processor that can be used instead of the default MarkDig parser. This addin also provides a host of document conversion options to convert your Markdown to PDF, DOC, EPub and a few other formats using an interactive dialog.

.NET Based Extensibility

Markdown Monster Addins have access to an add-in model that lets you manipulate and automate any open documents and the editor, lets you load new documents, launch external processes, add menu options and other UI features, open a new sidebar, generally interact with the entire UI and attach to life cycle events to get notifications of various application events like documents opening and closing, documents being saved and the application shutting down, etc...

Complexity of Addins can vary greatly from very simple automation tools like the Console Addin that simply pins a Terminal window to Markdown Monster, or something as complex as the KavaDocs addin that manages an entire documentation application with many custom windows and sidebars that are integrated into Markdown Monster.

Addins have access to most features of Markdown Monster and they are fairly easy to create. We as well as several third parties have created a number of useful addins using the powerful addin model and I encourage you to browse addins to see what you can do.

Creating Addins

One of the key features of Markdown Monster is that you can also create your own addins using the .NET based Markdown Monster Addin model. It's very easy to create new addins and we provide a Visual Studio Project Template Extension to facilitate the process of getting started with creating an Addin. All of our plug-ins are also available on GitHub, so you can easily check out how other addins were created.

You can find documentation for creating Addins here:

Markdown Monster Addin Registry

You can create addins for your own use, simply by copying them into the %appdata%\Addins folder, or if you created an Addin that you think might be useful for others you can publish on the Markdown Monster Addin Registry. The registry holds public Addins that show in the Addin Manager inside of Markdown Monster:

You can find out more on how to publish your Addins in this GitHub repository:

Other Add-ins - What do you want to build?

I can think of a few add-in ideas - a quick way to commit to Git and Push would be useful for documentation solutions, or Git based blogs, so you can easily persist changes to a GitHub repository. Embedding all sorts of content like reference links, AdSense links, Amazon product links, a new post template engine, etc., etc.

Or maybe you have custom applications that use Markdown text and provide an API that allows you to post the Markdown (or HTML) to the server. It's easy to build a custom add-in that lets you take either the Markdown text or rendered HTML and push it to a custom REST interface in your custom application.

Acknowledgements

This application heavily leans several third party libraries without which this tool would not have been possible. Many thanks for the producers of these libraries that are used extensively in Markdown Monster:

  • Ace Editor
    Ace Editor is a power HTML based editor platform that makes it easy to plug syntax highlighted software style editing possible in a browser. Markdown Monster uses Ace Editor for the main Markdown editing experience inside of a Web browser control that interacts with the WPF application.

  • MarkDig Markdown Parser
    This extensible Markdown parser library is used for the rendering Markdown to HTML in Markdown Monster. The library is fast and supports a number of useful extensions like GitHub Flavored Markdown, table support, auto-linking and various add-on protocols. The feature set is extensible via a plug-in pipeline.

  • MahApps.Metro
    This library provides the Metro style window and theming support of the top level application shell. It's an easy to use library that makes it a snap to build nice looking WPF applications.

  • Dragablz
    This library provides the tab control support for the editor allowing for nicely styled tab reordering and overflow. The library also supports tab tear off tabs and layout docking although this feature is not used in Markdown Monster.

  • nHunspell Spell Checking
    Spell checking is handled via the hunspell library and the .NET wrapper in nhunspell. This library checks for mispellings and provides lookups for misspelled words. Word parsing is done in JavaScript and the spell checking is done in .NET by piping word lists to .NET to check which is drastically faster than doing the spell checking in the browser using JavaScript.

Additional shout outs to these libraries used:

Spread the Word about Markdown Monster

If you like Markdown Monster please pass it on to help spread the word. Let your friends know, mention it to others who ask about Markdown and help us grow this community to encourage building the best Markdown Editor around.

Here are a few things you can do to help spread the word:

The support from the community so far with feedback, bug reports and ideas for new features has been awesome, and I look forward for that to continue with a growing community of active users and contributors.

License

Markdown Monster comes in several license modes: Evaluation, Single User, Multiple User and Site License.

Markdown Monster is Source Open with source code available on GitHub, but it is a licensed product that requires a paid-for license for continued use. The software is licensed as © Rick Strahl, West Wind Technologies, 2015-2019.

A fully functional, free evaluation version is available for evaluation use, but continued use requires purchase of a license.

Licenses can be purchased from:

https://store.west-wind.com/product/markdown_monster

Evaluation License

The Evaluation version has all the features and functionality of the registered version, except that it shows occasional freeware notices. Tampering with or removing of the notices is not allowed with the evaluation license.

You can use the evaluation version with the notices enabled, but if you use Markdown Monster regularly or for commercial use, please register and support further development and maintenance.

Purchased License

For continued or commercial use of Markdown Monster a paid-for license is required. The paid-for license removes the freeware notices.

Each licensed user must have a separate license, but a single user may use multiple copies of Markdown Monster on multiple machines.

The multi-user licenses work the same as a single user license applied to the number of users specified on the license purchased. An organizational site license is available to allow any number of users running unlimited numbers of Markdown Monster instances within a single organization.

Any purchased license is valid for the duration of the major release that it was purchased for (ie. 1.00-1.99) and minor version updates within that major version are always free. Upgrade pricing is available for major version upgrades, usually at half of full price, and it's our policy to allow for free upgrades to the next major version within a year of purchase.

Source Code

Markdown Monster is Source Open and source code is available on GitHub at https://github.com/RickStrahl/MarkdownMonster, but the licensing outlined above is applies regardless. We allow modification of source code for internal use of Markdown Monster in your organization or for submitting pull requests to the Markdown Monster main repository. Under no circumstances are you allowed to re-package and re-distribute any part of Markdown Monster outside of your organization.

Help us out - Get a free License

We encourage pull requests for feature suggestions or bug fixes to be submitted back to the Markdown Monster repository. Any contributors that provide meaningful enhancements, help with identifying and or fixing of bugs or by actively promoting Markdown Monster can qualify for a free license (at our discretion). Additionally Microsoft MVPs and Insiders and Microsoft Employees can apply for a free license.

WARRANTY DISCLAIMER: NO WARRANTY!

YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THE LICENSED APPLICATION IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSE APPLICATION AND ANY SERVICES PERFORMED OR PROVIDED BY THE LICENSED APPLICATION ("SERVICES") ARE PROVIDED "AS IS" AND "AS AVAILABLE," WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND APPLICATION PROVIDER HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE LICENSED APPLICATION AND ANY SERVICES, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. APPLICATION PROVIDER DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE LICENSED APPLICATION, THAT THE FUNCTIONS CONTAINED IN, OR SERVICES PERFORMED OR PROVIDED BY, THE LICENSED APPLICATION WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE LICENSED APPLICATION OR SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT EFFECTS IN THE LICENSED APPLICATION OR SERVICES WILL BE CORRECTED. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLICATION PROVIDER OR ITS AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SHOULD THE LICENSED APPLICATION OR SERVICES PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT SHALL THE AUTHOR, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS PROGRAM AND DOCUMENTATION, BE LIABLE FOR ANY COMMERCIAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS, EVEN IF YOU OR OTHER PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.


© Rick Strahl, West Wind Technologies, 2016-2021

markdownmonster's People

Contributors

rickstrahl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

markdownmonster's Issues

SnagIt 13 Screen Captures with Delay Failing

When doing screen captures with SnagIt 13 MM fails to capture images when a capture timer is set. With a timer set the capture immediately aborts. Without a time the capture works sometimes, but not at others.

Checking with Techsmith they have confirmed this is a bug in the SnagIt13 COM server implementation that MM relies on. The COM Server behavior around delayed (and sometimes non-delayed) captures is broken and there is no workaround using SnagIt 13. Techsmith have an internal bug report for this now and plan on fixing this but according to info I got it doesn't sound like it will get fixed very soon as it's low priority to them.

For now the only workaround is to revert back to SnagIt 12 or use the less capable built in screen capture feature (ie. disable SnagIt captures).

Leaving this open as a reminder to check back with Techsmith.

Downloading post from Codeplex

Codeplex is also using Metaweblog API to edit the project description. (See https://codeplex.codeplex.com/documentation?title=WindowsLiveWriter). But it does not work with Markdown Monster. I get the following error when trying to download posts from Codeplex:

07.07.2016 08:55:07 - Not Found

Not Found

CookComputing.XmlRpcV2
bei CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse(XmlRpcRequest req, WebResponse webResp, Stream respStm)
bei CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(Object clientObj, MethodInfo mi, Object[] parameters)
bei XmlRpcProxy90dfa107-9835-4a86-9329-23d25236f610.GetRecentPosts(Object blogId, String username, String password, Int32 numberOfPosts)
bei WebLogAddin.MetaWebLogApi.MetaWeblogWrapper.d__8.MoveNext()
bei System.Collections.Generic.List1..ctor(IEnumerable1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei WeblogAddin.WebLogForm.<ButtonDownloadPosts_Click>d__19.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)


Feature Request: Update HTML preview more frequently

Something to consider for the backlog some day...

It seems that the preview only updates after hitting Enter. If I delete or change a word or line of text, the preview does not reflect this until hitting Enter.

Suggest updating after each key press with a short throttle (~200ms), or perhaps triggering on some additional keys (arrows, backspace, delete, space bar, punctuation, etc.).

Nice to have: Multiple Metadata sets

Hi Rick,
I often post my blog posts to different blogs (my personal blog, dnn-connect.org blog, dnnsoftware.com blog). Would be nice to have the possibility to include multiple metadata for the different blogs (blog url + post-id)

Distraction free mode

Hi Rick!

You've created a really impressive Markdown editor, the best I've ever tried, and the first one which has blog publishing feature integrated.

I like to write my blog posts in a "distraction free" mode and I was wondering if it's possible to have a similar mode in Markdown Monster. What I mean is I'd like to have the ability to hide the toolbar, the menu bar as well as the tab bar. Markdown has a pretty simple syntax so I don't think it requires a toolbar, and I usually work on a single piece of document therefore the tab bar is just a distraction for me.

Thanks, and looking forward for the final release.

Weblog Download Fails with string Post Ids

Download appears to be failing when server side PostIds are string valued.

From Error log:

7/3/2016 10:22:10 PM - Das Objekt mit dem Typ "System.String" kann nicht in den Typ "System.Int32" konvertiert werden.    
Markdown Monster v0.36
mscorlib

   bei System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
   bei System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
   bei System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, StackCrawlMark& stackMark)
   bei System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture)
   bei CookComputing.XmlRpc.XmlRpcDeserializer.MapStruct(IEnumerator`1 iter, Type valueType, MappingStack mappingStack, MappingAction mappingAction, Type& mappedType)
   bei CookComputing.XmlRpc.XmlRpcDeserializer.MapValueNode(IEnumerator`1 iter, Type valType, MappingStack mappingStack, MappingAction mappingAction)
   bei CookComputing.XmlRpc.XmlRpcDeserializer.MapArray(IEnumerator`1 iter, Type valType, MappingStack mappingStack, MappingAction mappingAction, Type& mappedType)
   bei CookComputing.XmlRpc.XmlRpcDeserializer.MapValueNode(IEnumerator`1 iter, Type valType, MappingStack mappingStack, MappingAction mappingAction)
   bei CookComputing.XmlRpc.XmlRpcResponseDeserializer.DeserializeResponse(XmlReader rdr, Type returnType)
   bei CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse(XmlRpcRequest req, WebResponse webResp, Stream respStm)
   bei CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(Object clientObj, MethodInfo mi, Object[] parameters)
   bei XmlRpcProxy67d4b8bd-eea8-4992-9054-4b4683c4aa9b.GetRecentPosts(Object blogId, String username, String password, Int32 numberOfPosts)
   bei WebLogAddin.MetaWebLogApi.MetaWeblogWrapper.<GetRecentPosts>d__8.MoveNext()
   bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   bei WeblogAddin.WebLogForm.<ButtonDownloadPosts_Click>d__19.MoveNext()
--- Ende der Stapel�berwachung vom vorhergehenden Ort, an dem die Ausnahme ausgel�st wurde ---
   bei System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
   bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Button icons missing (cosmetic only)

I am on Win 7 as provided by my client. When I click to add a hyperlink, this dialog displays and the icons on the buttons are missing. The functionality is not affected. This is just a cosmetic issue.

2016-07-19 07_43_50-embed formatted code

Suggestion: Move temporary HTML files to a different directory than source file

When writing a readme.md for GitHub, if I "git add ." while the document is open, it adds the temporary __readme.htm. It would be nice to have the temporary files be somewhere else that wouldn't get included by mistake (e.g., Temp).

A less desirable workaround would be to use a unique file extension I could add to gitignore.

Preview pane width resize resets

When I resize the preview panes width is gets reset to the default once I edit the markdown content and the preview pane refreshes.

Please Add R Markdown Support

Hi,

Please add R Markdown support which could be invaluable in creating presentations involving the R Statistical Programming Language which is now part of the Microsoft Tools and Cloud Ecosystem.

Thank you!

Error when posting via Weblog API

2016-06-09_10-56-41

09.06.2016 10:56:11 - Server returned a fault exception: [0] request contains int value where string expected [request : parameter 1]

CookComputing.XmlRpcV2
   bei CookComputing.XmlRpc.XmlRpcResponseDeserializer.DeserializeFault(IEnumerator`1 iter)
   bei CookComputing.XmlRpc.XmlRpcResponseDeserializer.DeserializeResponse(XmlReader rdr, Type returnType)
   bei CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse(XmlRpcRequest req, WebResponse webResp, Stream respStm)
   bei CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(Object clientObj, MethodInfo mi, Object[] parameters)
   bei XmlRpcProxy1e78ecc9-3c84-4ab5-9d36-d10a88f47fe9.NewMediaObject(Int32 blogId, String username, String password, XmlRpcMediaObject mediaObject)
   bei JoeBlogs.MetaWeblogWrapper.NewMediaObject(MediaObject mediaObject)
   bei WeblogAddin.WebLogAddin.SendImages(String html, String filename, MetaWeblogWrapper wrapper)
   bei WeblogAddin.WebLogAddin.SendPost(WeblogTypes type)
   bei WeblogAddin.WebLogForm.<>c__DisplayClass7_0.<ButtonPostBlog_Click>b__0()
   bei System.Windows.Threading.DispatcherOperation.InvokeDelegateCore()
   bei System.Windows.Threading.DispatcherOperation.InvokeImpl()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei WeblogAddin.WebLogForm.<ButtonPostBlog_Click>d__7.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
   bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Wordpress download only gets the excerpt

Most of my recent Wordpress posts use the Read More tag to separate the excerpt seen on the front page of the blog and the full content. When downloading using MM, only the text from before the read more tag is downloaded.

I tried using the WordPress XML-RPC API and the metaWeblog API settings with the same results.

Not sure if it is helpful since I haven't used the API myself, but the docs state,

In the older metaweblog API, the "Introduction" and the "Read More" content for a post were returned in separate fields "description" and "mt_text_more". In the WordPress API, the two values are combined in the single "post_content" field, separated by the <!--more--> tag.

As an example, for this post,

It downloads the following,

# NUnit 3 Tests for .NET Core RC2 and ASP.NET Core RC2

<strong>Update:</strong> I have released <a href="https://www.nuget.org/packages/dotnet-test-nunit/">beta 1 of dotnet-test-nunit</a> which has been updated to the RTM of .NET Core 1.0. I have updated this post and the code on GitHub to reflect the changes.

The NUnit team has been working hard since .NET Core RC2 and ASP.NET Core RC2 was released last month to add full NUnit testing for .NET Core, and we are happy to announce the second alpha release of <a href="https://www.nuget.org/packages/dotnet-test-nunit/3.4.0-alpha-2">dotnet-test-nunit</a>.

In my previous blog posts, I explained how to use <a href="http://www.alteridem.net/2016/05/18/testing-net-core-rc2-using-nunit-3/">NUnit to test .NET Core using NUnitLite</a> which worked, but was not the ideal solution. The new <a href="https://www.nuget.org/packages/dotnet-test-nunit/3.4.0-alpha-2">dotnet-test-nunit</a> allows you to test from the command line using the `dotnet test` command and allows you to run your tests within Visual Studio.

<!-- Post Configuration -->
<!--
``xml
<blogpost>
<abstract>

</abstract>
<categories>
.NET,.NET Core,NUnit,Testing
</categories>
<keywords>
.NET Core, DNX, NUnit, TDD, Testing
</keywords>
<weblogs>
<postid>556</postid>
<weblog>
Alteridem
</weblog>
</weblogs>
</blogpost>
``
-->
<!-- End Post Configuration -->

Its also not doing a great job converting the HTML to MarkDown.

Feature: Jekyll Front Matter

Jekyll Front Matter is a header of pages and post.

The beginning of the document looks like this.


---
layout: post
title: Blogging Like a Hacker

---

I suggest that Markdown Monster skip this header when rendering.
Possibly the title could be extracted and presented as a headline.

Blinking dot in top left corner of editor

Hi, thanks for this editor - it is very cool!

I've noticed a blinking dot sometimes appearing on top left corner of the editor - see animation:
blinking-dot

The gif does not show it well, but it blinks with about 1sec interval. And it is there not all the time - I have not figured out the pattern when it appears.

Not an issue for me - it is barely noticeable, but usually these kinda things suggest there could be a bigger issue lurking about.

exception logs

9/6/2016 3:59:45 PM - Exception from HRESULT: 0x800A1393

System.Dynamic
at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
at CallSite.Target(Closure , CallSite , ComObject , Boolean )
at MarkdownMonster.MarkdownDocumentEditor.GetMarkdown()
at MarkdownMonster.MarkdownDocumentEditor.SaveDocument()
at MarkdownMonster.AppModel.b__59_2(Object s, ICommand e)
at MarkdownMonster.CommandBase.Execute(Object parameter)
at MarkdownMonster.AppModel.b__59_0(Object s, ICommand e)
at MarkdownMonster.CommandBase.Execute(Object parameter)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

9/6/2016 3:59:48 PM - Exception from HRESULT: 0x800A1393

System.Dynamic
at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
at CallSite.Target(Closure , CallSite , ComObject , Boolean )
at MarkdownMonster.MarkdownDocumentEditor.GetMarkdown()
at MarkdownMonster.MarkdownDocumentEditor.SaveDocument()
at MarkdownMonster.AppModel.b__59_0(Object s, ICommand e)
at MarkdownMonster.CommandBase.Execute(Object parameter)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

9/6/2016 4:08:17 PM - Exception from HRESULT: 0x800A1393

System.Dynamic
at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
at CallSite.Target(Closure , CallSite , ComObject , Boolean )
at MarkdownMonster.MarkdownDocumentEditor.GetMarkdown()
at MarkdownMonster.MarkdownDocumentEditor.SaveDocument()
at MarkdownMonster.AppModel.b__59_0(Object s, ICommand e)
at MarkdownMonster.CommandBase.Execute(Object parameter)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Ctrl-N does not create new file

If I just launch the app and press Ctrl-N, nothing seems to happen (no new file). If I create one using the File -> New option a new file is opened. At that point Ctrl-N seems to work as expected.

See image. (I treid to upload a video, but GitHub doesn't like that.)

markdown-monster-ctrl-n-not-working

White on black.

Hi,
I have a laptop that has a highly reflective screen, I cannot see the text with the twilight EditorTheme, what other values can I enter in there to change to a black on white screen?

Suggestion: Mermaid support for diagrams

It'd be great to have support for Mermaid code blocks. http://knsv.github.io/mermaid/

If you haven't seen it before, Mermaid uses a markdown-compatible syntax for generating complex diagrams and is great for sequence diagrams, decision trees and more.

Even better would be if MM had an option to generate a png for use when exporting MD to other places that don't support Mermaid (like wordpress).

"This page can’t be displayed"

Getting this in the browser component quite a lot. Strangely seems to happen quite a bit after I hit CTRL+S. I know the document is valid, often I hit SPACE > BACKSPACE and the preview comes back.

ver .27

Invalid License data during splash screen causes a crash.

I had the app installed by downloading the setup package. I uninstalled it. This time around I used Chocolaty to install it. When I ran it for the first time the app crashed.

image

I can e-mail the memory dump if needed.

When I tried to debug below is the error I caught.

image

It might be nice to ask for a new key when the current is somehow not working. Tough I'm not sure why my key would not work :(

Saving encrypted passwords is not working with special characters

Hi Rick,
I tried to download blog posts from my weblog and I'm getting the following error:
Unable to download posts: Server returned a fault exception: [0] An error occurred while trying to authenticate the user.
My password has a special character (°) inside. Looking at fiddler I can see that instead of sending this special character MM sends a '?'.

No interface :)

I've just installed the latest version of MM (0.42).
When I run the app, I see only border of the app, the rest is transparent:

image

(this grey border is the border of MM)

Save button in Weblog Dialog

A "save" button in the weblog dialog would be nice. At the moment I have to close dialog and reopen to have renewed infos in dropdown lists

Crash at startup on new 0.57 version

Hi Rick,
program crashes at startup now. Windows-Eventlog:

Anwendung: MarkdownMonster.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.IO.IOException
bei System.IO.__Error.WinIOError(Int32, System.String)
bei System.IO.Directory.DeleteHelper(System.String, System.String, Boolean, Boolean)
bei System.IO.Directory.Delete(System.String, System.String, Boolean, Boolean)
bei MarkdownMonster.ApplicationConfiguration..ctor()
bei MarkdownMonster.mmApp..cctor()

Ausnahmeinformationen: System.TypeInitializationException
bei MarkdownMonster.mmApp.get_Configuration()
bei MarkdownMonster.App..ctor()
bei MarkdownMonster.App.Main()

I tried to uninstall completely and had some trouble with glyphicons-halflings.ttf which was blocked by Windows but finally I solved this so no settings in AppData and no files in "Program Files" were left. Then fresh install but that does not solve the crash issue. So I leave it up to you

Add Text Find & Replace

If no text Find & Replace,
I need to open notepad or vs code or sublime text to do it.
I don't want ;-)

Upgrade to 1.0.10.0, 1.0.11.0 will crash

I upgrade 1.0.10.0 from Chochlatey, App will crash, This Event log:

.NET Runtime:

應用程式: MarkdownMonster.exe
Framework 版本: v4.0.30319
描述: 處理序已終止,因為有未處理的例外狀況。
例外狀況資訊: System.UnauthorizedAccessException
於 System.IO.__Error.WinIOError(Int32, System.String)
於 System.IO.FileStream.Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean)
於 System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, Int32, System.IO.FileOptions, System.String, Boolean)
於 System.IO.FileStream..ctor(System.String, System.IO.FileMode)
於 MarkdownMonster.mmFileUtils.GetFileEncoding(System.String)
於 MarkdownMonster.MarkdownDocument.GetFileEncoding(System.String)
於 MarkdownMonster.MarkdownDocument.Load(System.String)
於 MarkdownMonster.MainWindow.OpenTab(System.String, MarkdownMonster.MarkdownDocumentEditor, Boolean, System.String, Boolean, Boolean, Boolean)
於 MarkdownMonster.MainWindow.RestoreSettings()
於 MarkdownMonster.MainWindow.OnLoaded(System.Object, System.Windows.RoutedEventArgs)
於 System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
於 System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
於 System.Windows.BroadcastEventHelper.BroadcastEvent(System.Windows.DependencyObject, System.Windows.RoutedEvent)
於 System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(System.Object)
於 MS.Internal.LoadedOrUnloadedOperation.DoWork()
於 System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
於 System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
於 System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object)
於 System.Windows.Media.MediaContext.RenderMessageHandler(System.Object)
於 System.Windows.Interop.HwndTarget.OnResize()
於 System.Windows.Interop.HwndTarget.HandleMessage(MS.Internal.Interop.WindowMessage, IntPtr, IntPtr)
於 System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
於 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
於 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
於 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
於 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
於 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
於 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

Application Error:

失敗的應用程式名稱: MarkdownMonster.exe,版本: 1.0.10.0,時間戳記: 0x58338e33
失敗的模組名稱: KERNELBASE.dll,版本: 10.0.14393.321,時間戳記: 0x57f4c4f0
例外狀況代碼: 0xe0434352
錯誤位移: 0x0000000000017788
失敗的處理程序識別碼: 0x3f0c
失敗的應用程式開始時間: 0x01d245fb7e06d694
失敗的應用程式路徑: C:\Program Files\Markdown Monster\MarkdownMonster.exe
失敗的模組路徑: C:\WINDOWS\System32\KERNELBASE.dll
報告識別碼: d64951d0-5ddf-4aca-b943-7cbca557a675
失敗的套件完整名稱:
失敗的套件相關應用程式識別碼:

I re-install from web download, I see 1.0.11.0, same problem, This Event log:

.NET Runtime:

應用程式: MarkdownMonster.exe
Framework 版本: v4.0.30319
描述: 處理序已終止,因為有未處理的例外狀況。
例外狀況資訊: System.UnauthorizedAccessException
於 System.IO.__Error.WinIOError(Int32, System.String)
於 System.IO.FileStream.Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean)
於 System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, Int32, System.IO.FileOptions, System.String, Boolean)
於 System.IO.FileStream..ctor(System.String, System.IO.FileMode)
於 MarkdownMonster.mmFileUtils.GetFileEncoding(System.String)
於 MarkdownMonster.MarkdownDocument.GetFileEncoding(System.String)
於 MarkdownMonster.MarkdownDocument.Load(System.String)
於 MarkdownMonster.MainWindow.OpenTab(System.String, MarkdownMonster.MarkdownDocumentEditor, Boolean, System.String, Boolean, Boolean, Boolean)
於 MarkdownMonster.MainWindow.RestoreSettings()
於 MarkdownMonster.MainWindow.OnLoaded(System.Object, System.Windows.RoutedEventArgs)
於 System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
於 System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
於 System.Windows.BroadcastEventHelper.BroadcastEvent(System.Windows.DependencyObject, System.Windows.RoutedEvent)
於 System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(System.Object)
於 MS.Internal.LoadedOrUnloadedOperation.DoWork()
於 System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
於 System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
於 System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object)
於 System.Windows.Media.MediaContext.RenderMessageHandler(System.Object)
於 System.Windows.Interop.HwndTarget.OnResize()
於 System.Windows.Interop.HwndTarget.HandleMessage(MS.Internal.Interop.WindowMessage, IntPtr, IntPtr)
於 System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
於 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
於 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
於 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
於 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
於 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
於 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

Application Error:

失敗的應用程式名稱: MarkdownMonster.exe,版本: 1.0.11.0,時間戳記: 0x5835f94e
失敗的模組名稱: KERNELBASE.dll,版本: 10.0.14393.321,時間戳記: 0x57f4c4f0
例外狀況代碼: 0xc000041d
錯誤位移: 0x0000000000017788
失敗的處理程序識別碼: 0x3f6c
失敗的應用程式開始時間: 0x01d245fc0b38ba8a
失敗的應用程式路徑: C:\Program Files\Markdown Monster\MarkdownMonster.exe
失敗的模組路徑: C:\WINDOWS\System32\KERNELBASE.dll
報告識別碼: 2259b951-eae8-468f-8ee9-333207286df3
失敗的套件完整名稱:
失敗的套件相關應用程式識別碼:

Downloading posts

Downloading posts works fine now!
Is it possible to save also the corresponding postid of the downloaded post in the metadata? Because downloading a post, editing and uploading again creates a new one instead of updating the old one.

Error when downloading Post

When I want to download an existing post from my blog, I get the following error: (As I remember you can understand german )

07.07.2016 08:49:52 - Das angegebene Pfadformat wird nicht unterstützt.

Das angegebene Pfadformat wird nicht unterstützt.

mscorlib
bei System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
bei System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
bei WeblogAddin.WebLogAddin.CreateDownloadedPostOnDisk(Post post, String weblogName)
bei WeblogAddin.WebLogForm.CreateDownloadedPost()
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.Controls.Control.HandleDoubleClick(Object sender, MouseButtonEventArgs e)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
bei System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
bei System.Windows.Input.InputManager.ProcessStagingArea()
bei System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Hangs on starting and opening new document

Fresh install, no preferences changed.

Open MM, click "File->New".

Tab "untitled" appears, but editor within does not, then application freezes.

Nothing added to errors log.

Not prompting to save changes

If you open a new document, make changes, then do something like open the settings (and don't make change changes), you can click the Close button on the change document and it doesn't warn you to save changes.

Can we change path of the setting file

Can we change/configure the path of the setting file, MarkdownMonster.json? It's an odd request, I know, but my path is C:\Users\Halilİbrahim\AppData\Roaming\West Wind Markdown Monster and the Turkish İ char become a problem and I'm constantly getting this error:

error

Cursor position not accurate

The cursor real position is often not the displayed one, and typing is thus very difficult.
Changing font size has no effects.

example of behaviour can be seen here .

Tools->Addins->Screen Capture crashes when SnagIt not installed

Error log reports:

2016-06-06 1:27:16 PM - Object reference not set to an instance of an object.

ScreenCaptureAddin
at SnagItAddin.ScreenCaptureAddin.OnCanExecute(Object sender)
at MarkdownMonster.AddIns.AddinManager.<>c__DisplayClass10_1.b__0(Object sender, RoutedEventArgs e)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Might want to check before enabling that option.

Feature: Paste Image to Azure Blob Storage

My last step in publishing blog entries is uploading my images to Azure blob storage and updating all my image URLs in the post.

I would like to store my credentials for an Azure storage account. This would permit for a feature where pasting an image into the document would upload the image to blob storage and the editor would inject the required markdown for the URL to the image.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.