code52 / downmarkerwpf Goto Github PK
View Code? Open in Web Editor NEWMarkPad - a visual Markdown editor (inspired by the Downmarker project)
Home Page: http://code52.org/DownmarkerWPF/
License: Microsoft Public License
MarkPad - a visual Markdown editor (inspired by the Downmarker project)
Home Page: http://code52.org/DownmarkerWPF/
License: Microsoft Public License
Hi folks,
The preview build I downloaded (https://github.com/downloads/Code52/DownmarkerWPF/Markpad.1.0rc.zip) doesn't run on XP.
I have downloaded and installed .NET 4.0 so it's not that.
A typical "Send error report" dialog is thrown and my event log contains this error:
Application: MarkPad.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Reflection.TargetInvocationException
Stack:
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
at MarkPad.SingleInstanceManager.Main(System.String[])
Regards,
Phil
What can we get OOTB by using MahApps.Metro?
In ShellView.xaml
the 'MARKPAD' title text block is doubled up which causes it to appear aliased. I will fix this terrible problem.
Spanish dictionary add to the project
A preview pane thats backed by a webbrowser rendering the markdown.
This could use Awesomium or using the WPF/WinForms webbrowser control (which is just IE). Or both could be used, with a switch to compare in two browsers at once.
string[] filenames
- not used anywhere. I think that there is a misprint and should be filenames.Length> 0
. I am right?
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(scope, null, null))
{
string[] filenames = isoStore.GetFileNames(Filename);
if (Filename.Length > 0)
{
LoadStorage(isoStore);
}
}
There's a ~3-5 second pause when you open a document or create a new document for the first time. I suspect its a recent change when loading Awesomium into the app domain.
Investigating
Publish works for new posts, but update duplicates causing a funnelweb ysod..
To provide a "Windows Live Writer" like experience, DownmarkerWPF should implement the Metaweblog API support so it can post to markdown based blog systems like FunnelWeb.
To detect which template(s) to use in a preview mode, it should parse the YAML front matter which states which layout file should be used.
This will need to be recursive to work 'up the tree', for where there is post layout, then a master layout, etc.
Need to replace the standard webbrowser control with Awesomium.
Not sure if it's a feature of AvalonEditor? Hope so, given that it's available in WPF TextBox natively. Hope it's just a switch we need to flick...
Whenever the user clicks "New", and a new document is opened, the cursor should focus into that new document so the user can just start typing their new document.
Download/cache themes for services that use Metaweblog API
Firstly, great work. Secondly, I cloned this, fired up 2010, but couldn't copy the results, ironically, due to the clipboard error.
Steps to reproduce:
Currently if you make the windows minimum width to small (smaller than the design width) the main menu items are hidden.
It should either have a minimum program width or implement a WrapPanel in place of the StackPanel for the Main Menu items.
"New Jekyll Markdown" file should insert blank (?) YAML front matter
Other than 'blank markdown file', are there other templates that need to be considered?
Initially, the most of sources have LF line endings instead CRLF.
This causes problems at work. Already there are a lot of commits where it is not clear what exactly has changed in the file.
VS don't like LF ending and always try convert to CRLF.
For example, to avoid a complete change in the file at my first Pull Request I edited the csproj file in Notepad manually.
To fix this issue I suggest process sources with something like this:
https://github.com/ayende/RaccoonBlog/blob/master/normalize-crlf.ps1
(add xaml support) and recommit with CRLF line ending in sources.
In the spirit of DRY, the Caliburn.Micro.Autofac package on Nuget already provides the autofac wiring for Caliburn.Micro, including the auto-registration of event handlers. It should be used instead of writing or writing new code to do the same.
I have made this change on my fork of the code. The URL for the commit is dbuksbaum@20b4482
The default MarkPad output directory ($(MSBuildProjectDirectory)\bin\Release
) has the following files
Themes
MarkPad.exe
MarkPad.exe.config
MarkPad.pdb
However, if I run the build from the command line and override the OutputPath
or OutDir
parameters (from browsing some of the custom MSBuild tasks, it seems one or both is necessary)
cmd> msbuild Markpad.sln /p:configuration=Release /p:OutputPath=$pwd\bin\Release\ /p:OutDir=$pwd\bin\Release\
I get the all of the dependent libraries, configs, and pdbs (autofac, mahapps, awesomium, etc). This is making it hard to develop cmd line scripts for build/package/publish tasks :)
Selecting a link to an external site opens the site within markpad.
Links should probably open outside of markpad.
Mentioned by @distantcam on the jabbr chat that the current build has some UX problems.
"ok, first bug. I can't move the window. :P"
"hmmm, second "feature", can't close the window.10:56:48 AM"
In the spirit of DRY, the Caliburn.Micro.Logging package on Nuget already provides logging for NLog (and Log4net). It should be used instead of writing a new logging adapter.
I have made this change on my fork of the code. The URL for the commit is dbuksbaum@ce34aaf
Can you introduce support for Alex Gorbatchev's SyntaxHighlighter (https://github.com/alexgorbatchev/SyntaxHighlighter) in the preview window?
The default themes should be embedded into the app, and on startup they should be dumped into the directory that Markpad is in.
Some things to keep in mind:
Ctrl+K because that's the same as Office
will need some UI to enter the link text and the URL. A popup, I guess...
MarkPad does not have feature which allow to open a file by drag-and-drop into MarkPad.
I am willing to implement this feature, however I will appreciate any advice that would help me resolving this problem, AKA where is good spot to place code.
Thanks
-- Soltys
The app should have a way of autoupdating itself.
We should make the settings portable by saving them in the same directory as the app itself.
When a user clicks "New" and they already have a post open that has a massive title, the "New Document" tab appears off screen.
Expected Outcome
Clicking the New button;
The awesomium scrollbar has some odd behaviour that means sometimes it gets in a state where it jumps around seemingly at random.
I'm logging this issue here just so it can be tracked, but the issue isn't in the DownmarkerWPF codebase.
I get a dialog with this message:
Title -> MarkPad.exe - Fatal error
Content -> CLR error:80004005. The program will now terminate.
And nothing happens after close the dialog.
The "AwesomiumProcess" browser-control loaded when creating a new document doesn't unload when the document is closed.
I'll upload a fix for this.
So far my experiments have shown that I cannot load MarkPad under my corporate account but I can under my regular account. I suspect this has to do with my Roaming Profile and I'm happy to explorer further. Details as recorded in the Event Log are as follows:
Application: MarkPad.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Autofac.Core.DependencyResolutionException
Stack:
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
at MarkPad.SingleInstanceManager.Main(System.String[])
Through a number of life tragedies I have standardized on *.mkd for my markdown files. You have not, thus rendering this project useless. Never fear! I shall refactor the code and make this crucial change.
Any YAML front matter in a document should not be shown in the final render of the page.
Also, if we could include out own settings in the front matter (document type, metaweblog publish location, etc) that could be useful. Nice to have here would be some sort of YAML parser.
When I run the msbuild command line
cmd> msbuild Markpad.sln
I get a couple of warnings about supported configurations
Build started 1/31/2012 4:14:00 PM.
Project "D:\Users\anthony.mastrean\Dropbox\Projects\DownmarkerWPF\MarkPad.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
Building solution configuration "Debug|x86".
ValidateProjects:
The project "MarkPad.XAML" is not selected for building in solution configuration "Debug|x86".
The project "MarkPad.Services" is not selected for building in solution configuration "Debug|x86".
Is that a problem? I'm able to produce Debug and Release builds that appear to run fine.
The document should have a context menu so you can set various document level settings, like theme, author, title, etc.
This should then manipulate the document header to include the changes.
There are a few places... disk I/O (IsoStorage stuff), web publish... all need to go onto a worker thread.
While I'm not sure what the .NET support for Markdown Extra/MultiMarkdown/markdown supersets, having optional support for markdown rendering engines like Maruku.
The Preview pane should detect if the page has been written within a Jekyll/Octopress application, and render the DOM around the post correctly.
How to detect if the markdown file is within a Jekyll/Octopress application:
When this is successful:
Windows 7 supports Jumplists of recent documents and other commands.
We should track recent documents and display them in the jump list.
A floating toolbar (ala Office 2007+ style) that allows you to bold/italic/header/list/etc the selection would help with feature discoverability.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.