Straightforward update today. I added a documentation page for the bookmark interface of Quill!
Not a lot to say other than that!
As the Micropub spec has evolved, there have been some minor changes to how Quill used to do things. Today I added a configuration option to allow you to change the name of the property used to indicate the syndication targets.
Quill used to always send the syndicate-to property, but now the recommendation is to use mp- prefix to indicate Micropub commands rather than properties of the post.
This backwards compatibility section in Quill allows me to make changes to the client without affecting existing users until they're ready to opt in to the change. All existing Quill users will still be receiving the syndicate-to property until they go into the settings and change it to mp-syndicate-to. However, new users will default to the new mp-syndicate-to property.
Last week, Barry Frost released Micropublish, a Micropub client written in Ruby. It's a very slick interface for posting a few kinds of posts. I noticed that his "category" field looked really nice, and discovered that he was using a Bootstrap plugin called "Token Field". Today I added this plugin to Quill, so now everywhere that you previously had to enter tags as comma-separated values, it's now using this "token field" UI.
I also added a new field to the editor to set the published date of posts.
All this does is include the date you enter as the published date in the Micropub request. It's up to your site to decide what to do with that. For example if you enter a date in the future, your site can decide to not show future-dated posts in feeds, so you can use this for scheduling posts. Of course if you enter a date in the past you can backdate posts such as when importing posts from an old blog.
Quill started out as a sample Micropub client with a lot of useful debugging information. As it's grown, I've been slowly adding more posting interfaces to Quill, and tweaking them to look less like a debugging tool and more like a real app. Instead, micropub.rocks has taken over as a more detailed debugging utility for building a Micropub endpoint, so I can now optimize Quill for being more user-friendly and less developer-focused.
At IndieWebCamp Germany in 2015, I added a rich editor to Quill, inspired by the clean Medium interface. You can even use the Quill rich editor without being logged in! It will save the post to your browser's localstorage as a draft, and let you post it after you log in. I wanted to make an interface that anybody would feel comfortable writing in, and be able to show it to people without them first logging in, as an introduction to what it might look like to have nice writing applications that aren't tied to a specific backend like Medium.
In order to help people get started with Quill, today I wrote some more documentation for it!
When you're logged out and click the "publish" button, it prompts you to log in and links out to the documentation home page.
The documentation page contains a short introduction, targeted at general users of Quill rather than developers, and then links to the specific pages that you'd need to read for developing a Micropub server that can work with Quill to learn about the specific properties it sends.
So far I've written the overview page, and documented the Rich Editor and basic note interface, as well as written about syndication and the new "post status" option.
Happy reading! https://quill.p3k.io/docs
I've been using Quill to write all these #100DaysOfIndieWeb posts, which is a great way to find the pain points in the interface. After having written 14 articles in the last 14 days, the main thing I want to be able to do is start an article here in the Quill editor, save it as a draft to my website, then open up the raw HTML to make fine-grained edits, and only after I'm done, actually publish it.
I also added tags and slug fields so that I don't have to add those after the fact too!
The "status" property is an experimental extension to Micropub, being documented here: https://indieweb.org/Micropub-extensions#Post_Status I started out this morning by documenting how Wordpress handles post status in their interface. That research has been captured on the wiki.
In order to support this on my website, I first had to recognize the property in the Micropub request to set an internal flag for whether a post is a draft. When a post is a draft, it is not shown in lists to logged-out users, although if you know the permalink, you can see the post when you're logged out.
I also never send Webmentions or publish to the WebSub hub for draft posts. I only send Webmentions after the post is published and publicly viewable.
I'm also interested in incorporating the idea of "visibility" of posts into Micropub and my website. Flickr has a great implementation of this known as the "Guest Pass". I plan to research this more in the future to see if I can incorporate some of that into my website.
Knocked out a couple of minor UI improvements to Quill this morning.
Previously, the reply context field would show the whole note, so super long notes or blog posts would take over the whole screen. (Issue 62)
Now, it's smarter about noticing when the thing you're replying to has a name, and shows you the name and also truncates the post part way down.
Also, when you're typing in the content area, the text box will now automatically expand if you get to the bottom. (Issue 61)
Earlier this year when I launched XRay, I connected Loqi the IRC bot to it so that we would get inline IRC text previews when people linked to web pages in IRC. XRay works by finding an h-entry on the page, and getting the content and author information from it. Here's what it normally looks like in IRC.
Loqi fetches the URL and finds the h-entry, and posts a summary of it in IRC. This works great most of the time. However, when people started posting URLs to things with fragment IDs (such as the chat log permalinks themselves), then Loqi would report the name of the page rather than the summary of whatever was inside the fragment ID.
Today I updated XRay (issue #15) to handle URLs with fragment IDs. If the URL has a fragment, then it looks for an HTML element with that ID and hands off that subtree to the Microformats parser instead of parsing the whole page.
Now the Loqi summaries work for URLs with fragments!