The goal of IndieWeb Utils is to make it easier for you to add IndieWeb features to your application in Python. In v0.3.0, released earlier this week, we added a lot of new features to the library. But, there were some features that were almost ready that did not make their way into the release. Today, we are releasing those features as part of v0.4.0, in addition to a few minor bug fixes that I discovered since the launch of the last version.
Changes in the library
If I were to give v0.4.0 an intuitive name, I would call it the "discovery update." This version adds three new functions to the library that let you find pieces of information on a page. These functions let you:
- Find all of the URLs to which a page is replying.
- Discover the name of a page according to the proposed Page Name Discovery algorithm.
- Retrieve the URLs to which a post has been syndicated.
These functions have many use cases. For example, you could use a list of all of the URLs to which a page is replying to build chains of replies on your website that display multiple replies on a single page. You could use the syndication check function if you are building an application that requires users add a syndication link to post to your site. For instance, the Breakfast and Coffee wiki checks for a syndication link before it adds a selected page from a contributor's website to the wiki.
In addition, we made a few minor changes to the reply context function. This function lets you retrieve context about a page, such as a description and photo for the page. With the new changes, there are more comprehensive checks in place to identify a photo for a page. There is also a bug fix for an issue that would cause a description to be blank even when one could be found.
For a list of all of the changes in the new release, see the release notes.
Note: We refactored our table of contents so that it appears correctly in Read the Docs. This should make navigating our documentation a little bit easier.
Reflecting on IndieWeb Utils
Working on IndieWeb Utils is incredibly exciting. As we make new releases, I like to go over my existing code to see: (i) is there anything I can replace with an IndieWeb Utils function and; (ii) is there anything that is generic enough that it could become an IndieWeb Utils function. I have noticed that my code for individual applications is a lot shorter than it used to be. There is less repetitive code.
This has got me thinking about an alternative way of phrasing the goal of IndieWeb Utils. Our current library description is "Utilities to aid the implementation of various IndieWeb specifications and functionalities." I would add to this and say "By using these utilities, you can implement powerful IndieWeb features in fewer lines of code and with less complexity." This is a lofty goal as attaining this will require regular feedback from users on the direction of this library. However, I feel like this framing is useful. (Note: This goal refers to Python as the library is written in Python.)
Last year, I wrote a lot of low-level code as I was implementing IndieWeb specifications. I learned a lot in the process. But someone implementing, say, responses powered by webmentions into a CMS, should not have to implement the receiving and validation parts of the Webmention spec themselves to do it. IndieWeb Utils can make writing IndieWeb applications easier, and that's something I want to continually strive toward.
Request for feedback
If you have any feedback on how we can improve the IndieWeb Utils library, let us know by leaving an Issue on our project GitHub repository. I am excited to hear from developers how the library is useful and how it can be more helpful.
Also, as always, thank you to everyone who has contributed thus far to the library, both in code and code reviews (who are listed in the "contributors" section of the project README) and in advice, support, and guidance as we have implemented new functions and made decisions about the direction of the library. We welcome new contributions, too. See our contributing policy for more information.
Read more content like this
Check out the other posts I have written related to this article.
Comment on this post
Respond to this post by sending a Webmention.