Publ: Development Blog

News and updates about Publ

Publ 0.6.8, Authl 0.4.3

Posted Sunday, August 2 at 2:37 AM (5 days ago)

Some pretty big new features added. First, in Authl:

  • Major documentation improvements
  • Bug fixes with Fediverse instance caching
  • All providers now normalize to the same profile format
  • Some basic spam prevention for the email provider
  • 100% unit test coverage on the Fediverse provider (which is now using mastodon.py instead of a hand-rolled OAuth client)

And in Publ:

  • Fenced code now uses <figure> and <figcaption> instead of ad-hoc <div>s for its layout, and the overall HTML semantic has been greatly improved
  • Individual code blocks are now configurable with respect to highlighting and line numbering
  • The user object now provides a user profile and separates the identity URL from the familiar name

New domain!

Posted Thursday, July 23 at 3:58 PM (2 weeks ago)

Since there’s now a lot more to PlaidWeb than just Publ, there is now a new organization website which will become the top-level home of these different things, which allows for better organization of this stuff to begin with.

While I’m still trying to work out how I’m going to organize things, my expectations are as follows:

  • The Publ documentation and demo site will live at publ.plaidweb.site
  • This dev/release blog will move to the main domain at some point
  • Elements which don’t have their own website will get a microsite on the main domain
  • Every incoming webmention that the old domain received will remain missing/broken in perpetuity (or at least until I get around to adding native webmentions to Publ)

Also, publ.beesbuzz.biz is intended to redirect over here, but it’s disappeared from my DNS host for some reason; it was actually this happening which inspired me to finally take this action. It seems to be a bug with how LiNode’s wildcard domains work, and I have an active support ticket open. Update: Turns out this was a subtle issue with how DNS wildcards work, which is explained below the cut.

Publ v0.6.7

Posted Wednesday, July 22 at 10:02 PM (2 weeks ago)

Publ v0.6.7 is out now. Various changes:

  • Now using Poetry for the build system
  • Cleaned up some Redirect-Url logic to cut down on the number of page load hops
  • Renamed the main branch to main1
  • Bail out on files which repeatedly fail indexer fixups
  • Default entry title and slug are now blank, rather than trying to guess from the filename
  • Officially deprecated Python 3.5 support, which hasn’t worked for quite some time anyway
  • Defer Authl loading, and other Authl-related changes to support the latest version
  • Add support for line-numbering and captions in code blocks

I’m already regretting some of the decisions I made with the fenced code amendments; in the future it will almost certainly switch to using <figure> and <figcaption>, and change some of the other structural bits. Feel free to share your opinions.

There’s also a known issue where the quick-login link (for e.g. Twitter) doesn’t work on pages which are login-required; this is actually an issue with the Authl login template, and has already been fixed in Authl pending the next release.

And speaking of Authl, the online docs are way better now. Hopefully it’s finally in a state where other people will be able to use it!

Authl v0.4.2: poetry in motion

Posted Tuesday, July 21 at 9:09 PM (2 weeks ago)

Authl v0.4.2 is out. Mostly infrastructural changes, but a few other changes too:

  • Switched the development environment to poetry
  • Made some internal naming changes, and renamed the technically-incorrect force_ssl to the more-accurate force_https
  • It is also now up to handlers to do all of their own exception catching, which cleans up some stuff
  • Massively overhauled the docs, and got doc site generation working with Sphinx (many thanks to Khr for help!)

In theory there will now be docs visible at authl.readthedocs.io, although I’m still having trouble getting some of it to actually appear.

But, speaking of appearing, somehow the hostname for this site stopped resolving, so hopefully by the time this site comes back, the readthedocs stuff will be working too!

Authl 0.4.1

Posted Sunday, July 5 at 6:59 PM (a month ago)

Authl 0.4.1 is out. Changes below:

  • Better unit test coverage
  • Some better error messaging in some places
  • Removed the IndieLogin handler, which serves no real purpose when there’s native IndieAuth support anyway

Pushl v0.3.0, and some terminology changes

Posted Saturday, June 20 at 2:11 AM (2 months ago)

Pushl v0.3.0 is now out. Changes since v0.2.14:

  • Some caching fixes
  • Updates to some antiquated terminology

Per the above, the main code branch1 is now called main, and you include and exclude link rel attributes with --rel-include and --rel-exclude, in keeping with some long-overdue naming convention updates.

We’re all in this together.

Publ 0.6.6, Authl 0.4.0

Posted Sunday, May 31 at 3:32 AM (3 months ago)

I’ve just released new versions of Publ and Authl.

Publ v0.6.6 changes:

  • Fixed a regression that made it impossible to log out
  • Fixed a problem where WWW-Authenticate headers weren’t being cached properly
  • Improve the changed-file cache-busting methodology
  • Add object pooling to Entry, Category, and View (for a potentially big memory and performance improvement)

Authl v0.4.0 changes:

  • Finally started to add unit tests
  • Removed some legacy WebFinger code that was no longer relevant or ever touched
  • Added a mechanism to allow providers to go directly to login, as appropriate
  • Added friendly visual icons for providers which support them (a so-called “NASCAR interface”)

Publ v0.6.5

Posted Thursday, May 28 at 3:45 PM (3 months ago)

Publ v0.6.5 is now out. Has the following changes:

  • Upgrading Publ will now invalidate the cache
  • Fixes the missing database session around the authentication log viewer
  • Fixes the way that the indexer works when an entry changes ID
  • Fixes a bug where draft entries' temporary IDs were overriding the permanent/assigned IDs of visible entries
  • Added some useful commandline tools

The next things I want to work on:

  • Micropub endpoint (done as a separate component that you can optionally add)
  • Adding more unit tests
  • Maybe an actual (very basic) CMS UI? I dunno

Publ v0.6.4, now with attachments

Posted Wednesday, May 20 at 7:00 PM (3 months ago)

There are several important bugfixes in this as well as one major new feature. Changes since v0.6.3:

  • Rewrote the indexer scheduling logic both for better peformance and to (hopefully) stop clobbering entry text on content deployments
  • Added entry attachments, which allows associating entries directly with one another
  • Fixed a silly caching bug introduced in v0.6.3 which basically broke the cache

Publ v0.6.3

Posted Thursday, May 14 at 11:21 PM (3 months ago)

Just a few bugfixes:

  • Fixed a problem that prevented logging out from working
  • Made view.deleted work correctly on count-based paginations
  • Allowed date-based paginations to work from an empty starting point

v0.6.2

Posted Friday, May 1 at 7:30 PM (3 months ago)

Just a few changes:

  • External images now get correctly-extracted into og:image card data
  • Local images get og:image:width and og:image:height attributes
  • Scheduled posts now flush the cache when they become visible
  • Once again fix extracted entry summaries to not be double-escaped

webmention.js 0.3 released

Posted Tuesday, April 28 at 10:32 PM (4 months ago)

webmention.js now supports changing the sort criterion and order of responses, and defaults to publication (rather than receipt) time.

This was mostly to improve the presentation of responses received via brid.gy, particularly from Twitter.

v0.6.1 releashed released

Posted Sunday, March 15 at 4:32 PM (5 months ago)

This is a new version of Publ. The main change is how deletions (using ~~markdown~~ and <del>HTML</del> <s>tags</s>) get converted to plaintext — namely they get removed, to make it make more visible sense.

Doing this also led to refactoring the internal strip_html function to provide a bit more flexibility, so now it’s now available as a Jinja2 template filter.

I also removed a couple of troublesome micro-optimizations that were causing more trouble than they were worth.

v0.6.0 released!

Posted Saturday, March 7 at 3:07 PM (5 months ago)

The 0.6 milestone has finally been completed, so Publ 0.6.0 is now released!

Changes since v0.5.16:

  • Fix some startup bugs around file fingerprint checking
  • Make category.tags use the most-recently-seen capitalization of any given tag
  • Make view tag tests case-insensitive (so tag browsers have a chance of working correctly)
  • Add some basic unit tests and coverage analysis
  • Fix some bugs which were shaken out by the unit testing (go figure!)

And, since this is a new milestone, what’s improved since v0.5.0? Quite a lot! 237 commits, in fact. Here’s some of the features that stand out to me in the change log:

  • Testing!
  • Major improvements to entry authentication, both for performance and admin usability
  • Footnotes!
  • Tables of contents!
  • Improved support for tag browsing, including filter constraints!
  • Support for image renditions in arbitrary HTML attributes
  • IndieAuth c2s support (groundwork for apps like MicroPub), and a first pass at s2s (for AutoAuth)
  • Lots and lots of bug fixes

At this point I feel like Publ is very usable and flexible, and I would love to see more people give it a try. At some point I need to do a documentation push — both improving the quality of the user documentation (it’s gotten to be quite a mess!) and also making this site more of a demo of what Publ can do.

This is something I’d love to get some help with.

Publ v0.5.16 released

Posted Sunday, February 23 at 10:35 PM (6 months ago)

Today I released Publ v0.5.16, since it has a few features I wanted to deploy on my own sites:

  • Path aliases can now be set to be an alternate “mount point” or to override the canonical entry path (for example)
  • View tags can now be filtered to show entries with any, all, or none of the requested tags
  • As a consequence of the above, category tag lists can also be used as a progressive refinement (see, for example, on this blog)

Publ v0.5.15

Posted Wednesday, February 12 at 12:47 AM (6 months ago)

Not much to say about this, just a handful of performance tweaks and bug fixes:

  • Improved caching behavior around URL parameters
  • Allow configuring the maximum image render threads
  • Fixed an exception when trying to extract an OpenGraph card from an empty entry
  • Improve entry ID conflict reconciliation
  • Force absolute image URLs in OpenGraph tags

Publ v0.5.14 released!

Posted Tuesday, February 4 at 5:40 PM (6 months ago)

Today I released v0.5.14 of Publ, which has a bunch of improvements:

  • Fixed a bug in card retrieval when there’s no summary
  • Admin panel works again
  • Markdown entry headings now get individual permalinks (the presentation of which can be templated)
  • Markdown entry headings can be extracted into an outline to be used for a table of contents
  • Lots of performance improvements around ToC and footnote extraction, and template API functions in general

Publ v0.5.13 released

Posted Tuesday, January 7 at 12:25 AM (7 months ago)

Progress being made, although not much of it has been in service of my intended v0.6 milestone. At some point I’m going to have to bite the bullet and actually start writing some automated tests.

Release notes:

  • Applied the smartquotes/no_smartquotes API change to entry.title
  • Consolidated and cleaned up OpenGraph card parsing to make it consistent across Markdown and HTML entries, and fixing a few Markdown-specific bugs
  • Refactored the image rendition pipeline to make it more extensible/testable/clean (and also fixed a caching issue with palette quantization)
  • Added the ability to select scaling algorithm on a per-image basis
  • Cleaned up entry deletion and reindexing
  • Improved the testing of entry.auth
  • Removed a short-term performance hack on the authentication dashboard

Also, as of now, I run a live version of the Publ integration tests, although it’s currently only manually-updated.

Update: And as if to hammer home the point regarding automated testing, I had to release 0.5.13.1 because, wellp, released with a site-breaking bug in the new card parser… Sigh.

v0.5.12 released, and lots of documentation fixes

Posted Tuesday, December 31 at 12:02 AM (8 months ago)

Release notes

Today I got a fire lit under me and decided to do a bunch of bug fixing and general performance improvements.

Changes since v0.5.11:

  • Fixed a micro-optimization which was causing some pretty bad cache problems (I really should write a blog entry about this but tl;dr micro-optimizations are usually bugs in disguise)
  • Fixed an issue which was causing the page render cache to not actually activate most of the time (you know there’s going to be a ramble about this below…)
  • Fixed a bunch of spurious log meessages about nested transactions
  • Refactored the way that markup=False works, making it available from all Markdown/HTML contexts
  • Changed no_smartquotes=True to smartquotes=False (no_smartquotes is retained for template compatibility) (although I missed this on entry.title; I’ve already committed a fix for the next version)
  • Improve the way that the page render cache interacts with templates
  • Fixed an issue where changing a template might cause issues to occur until the cache expires

Documentation improvements