GithubHelp home page GithubHelp logo

openlivewriter / openlivewriter Goto Github PK

View Code? Open in Web Editor NEW
2.4K 2.4K 489.0 21.68 MB

An open source fork of Windows Live Writer

Home Page: http://OpenLiveWriter.org

License: Other

Batchfile 0.02% C# 99.31% HTML 0.25% CSS 0.01% JavaScript 0.01% XSLT 0.04% Smalltalk 0.07% C 0.02% C++ 0.25% PowerShell 0.03%
blog blogging dotnet static-site static-site-cms winforms writing

openlivewriter's Introduction

Open Live Writer

Open Live Writer makes it easy to write, preview, and post to your blog. For more information see http://www.OpenLiveWriter.com/.

Build status

Installation

You can install the latest version of Open Live Writer alongside an older version of Windows Live Writer. Visit http://www.OpenLiveWriter.com to download and install the latest release.

Latest News

The current version of Open Live Writer is our first open source version. For a list of known issues see GitHub or take a look at the roadmap to see what the current plans are.

For the latest news and updates about Open Live Writer, you can follow us on Twitter (@OpenLiveWriter), by keeping an eye on the website http://www.OpenLiveWriter.com or by watching this repo and subscribing to notifications.

Contributing

Open Live Writer is an open source project and wouldn't exist without the passionate community of volunteer contributors. If you would like to help out then please see the Contributing guide.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Gitter

License

Open Live Writer proudly uses the MIT License.

History

The product that became Live Writer was originally created by a small, super-talented team of engineers including JJ Allaire, Joe Cheng, Charles Teague, and Spike Washburn. The team was acquired by Microsoft in 2006 and organized with the Spaces team. Becky Pezely joined the team and over time, the team grew and shipped many popular releases of Windows Live Writer.

As Microsoft was planning for the version of Windows Live that would coincide with Windows 8 operating system release, the teams that built the Windows Live client apps for Windows were encouraged to focus on building a smaller set of Windows 8 apps designed to work well with both traditional PC input mechanisms and touch. With the rise of micro-blogging platforms and other forms of sharing, eventually this team decided to conclude their work on Windows Live Writer with Windows Live Writer 2012.

Even though there was no active development, Windows Live Writer continued to be a favorite tool of a passionate community of Windows PC users for authoring, editing, and publishing blog posts. Data from WordPress.com at the time suggested that Windows Live Writer (even two years after active development ended) was the #1 app for authoring a blog post to WordPress.com from a Windows PC.

A few employees at Microsoft took an interest in reviving Live Writer as an open source project in their spare time. By January 2015, a group of about a half-dozen engineers interested in spending some of their volunteer time to help release an updated version of Live Writer had found each other and began work on getting this open source fork of Live Writer formed and ready to ship. In December 2015 Microsoft donated the code to the .NET Foundation and this passionate group of volunteer engineers rapidly assembled the first open source version.

Building

Open Live Writer can be built by running build.cmd found in this directory.
It can be opened in Visual Studio. The solution is in src/managed/writer.sln -- if you see errors in Visual Studio run build.cmd from the command prompt and it should be resolved. The main program is src/managed/OpenLiveWriter/ApplicationMain.cs . To run from Visual Studio, set the startup project to OpenLiveWriter.

.NET Foundation

The Open Live Writer project is supported by the .NET Foundation.

openlivewriter's People

Contributors

bbowyersmyth avatar demortes avatar flcdrg avatar gep13 avatar gordonbeeming avatar gruenwaldt avatar hashhar avatar hmemcpy avatar jimgalasyn avatar jongalloway avatar kathweaver avatar kirillosenkov avatar lextm avatar lucaslra avatar manggsoft avatar martingbrown avatar martinwoodward avatar nenoloje avatar nimesh-madhavan avatar nvella avatar plieblang avatar ppardi avatar ranjanjharavi avatar robdolin avatar robdolinms avatar scottisafool avatar shiftkey avatar timheuer avatar vhanla avatar willduff 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  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

openlivewriter's Issues

Rationalize localization strings

There are 4 different files that seem to contain the definition of a single resource string (StringId.cs, String.csv, Strings.resx, etc) -- it is unclear this factoring is really necessary and causes a change to a string to be duplicated in multiple places.

This should be rationalized to be more central and understandable to the community.

When I was a developer on Writer, we used \src\managed\OpenLiveWriter.Localization\compile.bat and only made changes to DisplayMessages.xml, Strings.csv, Commands.xml and Ribbon.xml. compile.bat would then generate: CommandId.cs, MessageId.cs, StringId.cs, Properties.resx, PropertiesNonLoc.resx, and Strings.resx. In reality, compile.bat is really just a thin wrapper around locutil.exe, whose source code is at \src\managed\LocUtil\

There was also a separate, custom tool that ran on the Ribbon.xml that I wasn't able to open source, so if we want to bring back Ribbon.xml into this auto-generation, we'll need to re-write the support for it. Right now, Ribbon.xml moved over to \src\unmanaged\OpenLiveWriter.Ribbon\Ribbon.xml .

@kamransaeed is looking into this

@willduff, @timheuer

Move to newer Maps control

Map experience on Win10 isn't great. Looks like old map controls still in use and should move to newest Map SDK and/or move to OpenStreetMaps.

Initially you get:

map1

and then after 'allowing blocked content'

map2

Making it effectively useless as-is.

@timheuer

unable to login in with blogger

Trying to access my site during setup / launch it is asking for a url, username, and password. I'm using my gmail account and password for my blogger account I'm not sure if this is the broken oauth support. Its unclear how to login (the error messages is invalid username and password but i was able to use these credentials to login in to the blogger web portal) or even launch the program without providing the blog connection information perhaps this shouldn't be required.

Enhancement: Buttons on the Ribbon remembering the last choice

One of the nice things would be for the buttons, like the Pictures button, to remember the last choice. For example, if I last uploaded pictures from my computer, let a click on the button just start this process. If I last added links from the web, let this be the choice, without requiring the drop down to open and another selection/click.

Move build tools and utilities into separate repo and publish them as NuGet packages

Per @Eilon 's comment

The way we solve that in ASP.NET is by splitting build tools into a separate process:

  1. The source code for build tools are typically in a separate repo that is built only when their source code changes.
  2. When their source code changes, they are compiled and the build outputs are packaged as NuGet packages and uploaded to a feed on MyGet that has all the build tools.
  3. The main repo (i.e. this repo) uses the NuGet packages to restore the build tools and then run them.

This avoids the nastiness of checking binaries into a Git repo, and also avoids the hassle/slowness of recompiling the tools on every build.

@willduff

Live Writer do not show editing theme when cuts are enabled

I'm using a custom weblog engine that implements Metaweblog API. Main blog post view uses cuts and shows only excerpts in the paged view. Live Writer (Windows and Open) download and do NOT show downloaded theme. When I disable cuts (and main blog feed shows full posts), Live Writer shows editing theme.

I can build and deploy Writer in multiple languages

We inherited a proprietary localization format from Windows Live Writer that included use of 3rd party software that we no longer have access to. All of the old translations are stored under the intl\lba folder, but there is not current way to build them into the required WindowsLive.Writer.Localization.resources.dll and WindowsLiveWriterShortcuts.dll.mui. Each language has it's own set of two DLLs.

We need to make sure we can build Open Live Writer in all of the supported languages and we need to either ship with all languages or provide an option to download and install localizations separately. We also need to update the localizations as there have been many changes to strings in the switch from Windows Live Writer to Open Live Writer

Involved: @willduff, @baragano

CI

Should we set up a CI server for this project? something like Appveyor seems ideal. I'm happy to take suggestions and investigate options that people would like to explore

Errors building with VS2013 / Dev12 tools - requires .NET 4.5.2 targeting pack installed.

Posting this here mostly for info because it might be useful as FAQ answer for some people.

If you don't have VS2015 (dev14) installed on your Win7 machine, then build.cmd will conveniently fall back to using VS2013 (dev12) build tools, but you will still get build errors if .NET 4.5.2 Targeting Pack is not installed.
For example:

warning MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5.2" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.

The managed components in OLW are targeting .NET 4.5.2, so you also need the Microsoft .NET Framework 4.5.2 Developer Pack installed too even if you have .NET 4.5.2 Runtime bits installed on your machine.
Download is available here: http://www.microsoft.com/en-us/download/details.aspx?id=42637

See build log output on Win7 machine before and after installing 4.5.2 Targeting Pack for more details: https://gist.github.com/jthelin/435213878c0b8c1b9451

Add Test Suite

A test suite for devs to run unit tests against code changes would be helpful for release. Opinions?

Yes definitely. Writer has essentially 0 unit tests currently.

My recommendations are:

  • Add unit tests for non-UI classes and modules (e.g. most things in OpenLiveWriter.CoreServices should have a unit test).
  • Use the existing UI automation to test the UI (Windows Forms, the Ribbon and the MSHTML editor are all complex and large enough that mocking them out would be an exercise in futility)

@writeline, @willduff

Picture won't post to LiveJournal

I tried to post to my LiveJournal using OLW, and although the blog capabilities look identical in WLW and OLW, OLW failed to post a simple entry containing a picture, with the attached dialog box:
olwerror
This functionality did/does work perfectly with LiveJournal in Windows Live Writer.

MacOS support

Adding this to the backlog of items that I would want to work on. Comment here if you are interested to be a part of a Mac port for this project.

Support an Open Live Writer Uri Scheme

This would be for launching Live Writer from other apps.
Proposed scheme:

openlivewriter://?title={title}&content={content}

When launched via this method, if the title and content values are provided, those should be pre-populated.

We may also want to look at the QueryString parameters and consider supporting various options from RSS 2.0 (ex: title, description) and Atom 1.0 (title, summary? or content?, etc.)

@ScottIsAFool, @shanselman, @RobDolin

Add Find and Replace Functionality

In any text editor, whether for blogs or otherwise, being able to find and replace text within that text is now almost seen as a no-brainer feature. There were plugins that tried to fill the void on this, but would be good if it was supported properly by Writer itself.

It would be ideal to target this for v1.0. Reason being most of the plugins that filled this gap, the authors no longer have the source code (I've been asking around) and so they won't work when OLW goes live. So this functionality would get lost.

@ScottIsAFool, @RobDolin

Login not working for blogger account

Tried login to OLW with blogger credential with an active blog account on Google blogger, but was not able to do so. It always says "Invalid username or password". Not facing this issue on WLW. Please check login system on OLW for blogger.

Pull down NuGet.exe as part of pre-build

Per @borrillis in pull request #41:

There needs to be a 'prebuild' step that ensures the nuget executable has been downloaded. Currently this is done in the build.cmd batch file. We need to move this into an MSBuild project and set it as a dependency for all the other projects.

Remove Ping servers/trackbacks

As a blogger, I'm not really sure these are 'things' anymore versus better content management. This feels like a candidate for removal that someone could augment with a plugin if they wanted.

@timheuer

Convert Google Blogger ClientLogin to OAuth 2.0

Google Blogger deprecated ClientLogin in 2012 but Open Live Writer is still using it. We should update to OAuth 2.0. Google provides a .NET library for OAuth 2.0 at https://github.com/google/google-api-dotnet-client.

Following is a brief history of the current work on this issue.

We identified the code where the login process and the BloggerAtomClient, but for doing this we need to modify the UI of the wizard and create a new step where we prompt the user to click on authorization process and then get the OAuth token from Google Server.

There are some open questions:

  • Where do we store the token, as the password of the user on the CredentialStorage?
  • When and how to handle OAuth invalidations, for example when the user is going to publish but he handle is invalid, ect.
  • We need to create a Application inside Google Developer Console, I can create now using my personal google account but, of couse, in the future we need to use Microsoft´s account for creating this app.

Work has been done by @guerrerotook and @asishv

So the remaining items are

  • Uploading youtube videos
  • Obtaining categories [@guerrerotook mentioned that this is working but I was not able to use it]
  • Adding new categories to a post
  • Testing edge cases in general
  • Code cleanup [I believe the wizard strings are hardcoded in the code not in strings.resx file]

@willduff, @wasker, @RobDolin, @sitox, @Eilon

Install: Add OLW package to Chocolatey

Adding Open Live Writer to Chocolatey opens up installation scenarios https://Chocolatey.org/

My assumption is that we would just initially install via the Setup.exe. And from there the Squirrel auto updater keeps the version up to date. There shouldn't be any reason to increase the chocolatey package version to manually upgrade.

DPI scaling issues

The HTML Style picker has issues with scaling on high-dpi screens.

image

To repro: Run on a high-dpi device (in this case Surface Pro 3 - Windows 10.10586)

Configure Drafts and Posts folder

The existing version (and previous ones) had a path stored in the registry for keeping the drafts and posted items. Can we move this to an options setting to make it easy to reconfigure Open Live Writer?

Support for Tumblr?

I looked at the closed issue about WLW feature parity, and saw in the OLW "roadmap", that under v1.0 the "Key Use Case(s)" it lists "Blog host platforms: v0.5 plus TypePad, LiveJournal, and other popular blogging platforms."

Does "other popular blogging platforms" include support for Tumblr, even though it isn't explicitly stated?

Horrible Undo bug plaguing WLW and now OLW

I'm beyond ecstatic that WLW lives on as OLW, now there's hope that the bugs accumulated in the last years will be fixed.

This is the biggest bug by far for editors, and I see it's still present.

Basically, undo ignores any pastes. To reproduce a simple test case:

  • Copy "bar" into clipboard
  • Type in "foo"
  • Paste clipboard
  • Now press Undo a few times

You'll be left with "bar" - OLW and WLW "forget" about pastes and don't undo them. It's extremely destructive to editing, especially if you don't notice.

OLW won't open local drafts or published posts, throws an UnauthorizedAccessException

I get this exception trying to open (Windows) Live Writer drafts, or already published posts. The exception is:

System.UnauthorizedAccessException
"Access to the path 'C:\Users\hmemcpy\AppData\Local\Temp\OpenLiveWriter1894151082\supfiles2DD0C2\SpellingContext' is denied."

I traced the origin to these lines: https://github.com/OpenLiveWriter/OpenLiveWriter/blob/master/src/managed/OpenLiveWriter.PostEditor/BlogPostSupportingFileStorage.cs#L129-L130
It seems that CONTEXT_DICTIONARY_FILE is currently set to an empty string (per @shanselman's post, spell checking is currently removed), which creates an invalid path and causes FileStream to fail.

I commented out this method for now, but I'm not sure that's a good PR to send.

Azure AD support for authentication

Blogs can use Azure AD to authenticate users. OpenLiveWriter doesn't have support for that today, so a Workaround is to create credentials for each user. Azure AD Integration would be great.

@bursteg

No connection possible with Blogger?

Hi all.

First of all compliments for this effort. Totally awesome! However, I can't connect to my blog (http://thoughtsonopsmgr.blogspot.com/). During setup I am asked to enter the address of my blog, username and account. Every time the installer returns with the message 'The user name or password is incorrect. Please try again.'

Already I've set my Google account to allow apps with lower security. With Windows Live Writer this works.

Or will OWL only work when it supports OAuth 2, as stated on the blog of Scott Hanselman?

With kind regards,
Marnix Wolf
01 - owl blogger settings

02 - owl error message
03 - google allow less secure apps

Add support for Squarespace Blog

Adding Squarespace as a blog provider would be fantastic. If I'm on a Windows box in the near future (or if I can get it running with .Net on Mac OS X) I'll look into submitting a PR myself.

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.