A few weeks ago I added webactions to this site, but I couldn't do much with them personally because I didn't support reply contexts! So that became the next thing to do on my list.
I've just finished what I'm sure will just be a first version, and updated the site. I'm pretty happy with it so far, this is what happens when you click on webaction link on a different site, which would bring you here:
I wanted the option to share the full text of a post, so I'm also using the microformats-2 parser, php-mf2 which populates all the fields in my writer UI.
mal shared this post from Malcolm Blaney on 14 September 2015, 10:37 am
Up until now stock tracking has been all or nothing in lettuceshare, but we've found groups really only want to track some of their products. This feature has just been added, so you can now turn tracking on or off for individual products on the stock page.
This also helps with another feature, which is allowing products to be displayed as sold out to members. If you didn't watch all your stock levels carefully then products could become sold out when you didn't even want to track them. Turning tracking off means you don't have to worry about this happening.
This should work now that categories get marked up correctly. Webmentions are also sent for category links now too, so I don't need to link in the body of the post.
I've just got web actions working for my posts, which is another step in the indie mark list! This step took me a bit longer than the previous ones because it helps to also support indie-config when implementing web actions. You can see the result on this page, please try clicking the settings link at the bottom of the post and follow the steps. I would love any feedback!
I wanted to avoid "wrapping" existing web action buttons and links, like those used for Twitter and Facebook. This is the most common method used to add web actions at the moment, as it provides a fallback option for those who don't have a web action handler. The downside is that those who do have a web action handler have to click on a silo link to trigger the redirect to their own site.
After trying a few different ideas, I'm pretty happy to have kept the silo options available, but only for those that select them. Otherwise the page will load the correct url's using indie-config. I'm using local storage to remember the user's preferences, so once the web actions are set there's no need to retrieve the config every time the page loads.
I've got sending webmentions working, it's just the basics for now but I want to see if that's enough or if I need to cover more edge cases. Aaron Parecki'swebmention client code was very helpful to get started, thanks Aaron! Also by linking to his site, this post should send him a webmention so I can test if it all works.
Level 1 step 1 is a given, that's to get your own domain name. (Some people have the problem of collecting too many domain names.... it really should be classified as an addiction. All the new tld's didn't help us with that either!)
Level 1 step 2 is Web Sign In. That just requires adding a rel=me link to your home page. Should be pretty easy, except all my content goes through HTML Purifier which is pretty locked down. It's also very configurable, so added 'me' to the list of allowed rel values.
So Level 1 was no problem, and now I can sign in to indiewebcamp.com :-)
Level 2 step 1 is Mark up your content. I added an h-card to my home page, but not quite sure of the use of it yet so left it as the most minimal example. Also added h-entry mark up to my posts, so now they're available as both HTML and RSS.
Level 2 step 2 is WebMentions, I'm thinking that will take a bit longer and will get it's own post when I'm done.
I was working on a new pager module, which led me down a rabbit hole of things that needed fixing. I had basically finished paging when I realised it didn't actually apply to this blog... the way I had it set up was that my posts ended up as part of a quickly moving stream on my home page, because of all the other feeds I subscribe to.
The dilemma I had was that I like being able to post from my reader page, but that made the posts disappear too quickly. The answer was to allow the writer module to delegate some other page to post to. So while I'm currently writing from unicyclic.com/mal/reader, my posts are saved to unicyclic.com/mal/blog. This allows my posts to be viewed separately, and with the new pager module, and I can still subscribe to it in my reader so that it appears in both places :-)
I've also freed up my home page so that I can use it to display more static content. I also wanted it to be simpler so I could use it for rel=me links. I've also made this set of pages the default structure for new users, and registration for accounts is now available.
I wrote a post yesterday on another blog to test both ends of my rssCloud implementation. I was pretty happy to see that it all worked, including my update to the protocol that upgrades the connection between the two servers to https.
The slowest point in the system is now the client polling for updates, which backs off to a maximum of 4 minutes when there have been no notifications for a while. Since improving on polling means going to Web Sockets, that's going to have to wait.
One more job to do before starting on my indieweb list, which is to implement paging for my posts.
This is a test to see if unicyclic.com will let me know when a new post is available in this feed.
It should do this because I've found the cloud element in the feed and subscribed to notifications... here goes!
Update: Got most of the way there! The update was sent to my local machine, where the web server wasn't configured to respond to the request.... oh well. (This update to a post should trigger the same process).
Reply Contexts
I've just finished what I'm sure will just be a first version, and updated the site. I'm pretty happy with it so far, this is what happens when you click on webaction link on a different site, which would bring you here:
I wanted the option to share the full text of a post, so I'm also using the microformats-2 parser, php-mf2 which populates all the fields in my writer UI.
Improved Stock Tracking
Testing IndieNews
web actions and indie-config
I wanted to avoid "wrapping" existing web action buttons and links, like those used for Twitter and Facebook. This is the most common method used to add web actions at the moment, as it provides a fallback option for those who don't have a web action handler. The downside is that those who do have a web action handler have to click on a silo link to trigger the redirect to their own site.
After trying a few different ideas, I'm pretty happy to have kept the silo options available, but only for those that select them. Otherwise the page will load the correct url's using indie-config. I'm using local storage to remember the user's preferences, so once the web actions are set there's no need to retrieve the config every time the page loads.
Webmentions
Level 1 step 1 is a given, that's to get your own domain name. (Some people have the problem of collecting too many domain names.... it really should be classified as an addiction. All the new tld's didn't help us with that either!)
Level 1 step 2 is Web Sign In. That just requires adding a rel=me link to your home page. Should be pretty easy, except all my content goes through HTML Purifier which is pretty locked down. It's also very configurable, so added 'me' to the list of allowed rel values.
So Level 1 was no problem, and now I can sign in to indiewebcamp.com :-)
Level 2 step 1 is Mark up your content. I added an h-card to my home page, but not quite sure of the use of it yet so left it as the most minimal example. Also added h-entry mark up to my posts, so now they're available as both HTML and RSS.
Level 2 step 2 is WebMentions, I'm thinking that will take a bit longer and will get it's own post when I'm done.
I was working on a new pager module, which led me down a rabbit hole of things that needed fixing. I had basically finished paging when I realised it didn't actually apply to this blog... the way I had it set up was that my posts ended up as part of a quickly moving stream on my home page, because of all the other feeds I subscribe to.
The dilemma I had was that I like being able to post from my reader page, but that made the posts disappear too quickly. The answer was to allow the writer module to delegate some other page to post to. So while I'm currently writing from unicyclic.com/mal/reader, my posts are saved to unicyclic.com/mal/blog. This allows my posts to be viewed separately, and with the new pager module, and I can still subscribe to it in my reader so that it appears in both places :-)
I've also freed up my home page so that I can use it to display more static content. I also wanted it to be simpler so I could use it for rel=me links. I've also made this set of pages the default structure for new users, and registration for accounts is now available.
The slowest point in the system is now the client polling for updates, which backs off to a maximum of 4 minutes when there have been no notifications for a while. Since improving on polling means going to Web Sockets, that's going to have to wait.
One more job to do before starting on my indieweb list, which is to implement paging for my posts.
It should do this because I've found the cloud element in the feed and subscribed to notifications... here goes!
Update: Got most of the way there! The update was sent to my local machine, where the web server wasn't configured to respond to the request.... oh well. (This update to a post should trigger the same process).