Posted Thursday, May 28 at 3:45 PM (a year 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
Posted Wednesday, May 20 at 7:00 PM (a year 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
Posted Thursday, May 14 at 11:21 PM (a year ago)
Just a few bugfixes:
- Fixed a problem that prevented logging out from working
view.deleted work correctly on count-based paginations
- Allowed date-based paginations to work from an empty starting point
Posted Friday, May 1 at 7:30 PM (a year ago)
Just a few changes:
- External images now get correctly-extracted into
og:image card data
- Local images get
- Scheduled posts now flush the cache when they become visible
- Once again fix extracted entry summaries to not be double-escaped
Posted Tuesday, April 28 at 10:32 PM (a year 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.
Posted Sunday, March 15 at 4:32 PM (2 years ago)
This is a new version of Publ. The main change is how deletions (using
<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.
Posted Saturday, March 7 at 3:07 PM (2 years 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
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:
- Major improvements to entry authentication, both for performance and admin usability
- 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.
Posted Sunday, February 23 at 10:35 PM (2 years 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)
Posted Wednesday, February 12 at 12:47 AM (2 years 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
Posted Wednesday, February 5 at 1:23 PM (2 years ago)
A few weeks ago I had discovered that caching wasn’t actually being used most of the time, and took some stats snapshots for future comparison.
Now that Publ has been running with correct caching for a while, let’s see how things have changed!
Posted Tuesday, February 4 at 5:40 PM (2 years 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
Posted Tuesday, January 7 at 12:25 AM (2 years 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.
- Applied the
no_smartquotes API change to
- 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
- 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.
Posted Tuesday, December 31 at 12:02 AM (2 years ago)
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
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
Posted Saturday, December 28 at 11:57 PM (2 years ago)
I’d been running this website on Heroku’s free tier for a while, but it’s been getting enough traffic that it was getting close to my free runtime limit. So, I’ve moved this over to my own personal server.
However, the site repository is still configured to work with Heroku (as well as being self-hosted), and you can still access the Heroku instance at publ.herokuapp.com to see it in action. They should, for the most part, mirror one another.
Anyway, there will probably be some kinks to iron out in the meantime. But on the plus side, it means this site will finally be accessible via https!
Posted Saturday, December 14 at 2:24 PM (2 years ago)
Some fresh new versions of things.
Changes to Publ:
- Massive improvements to how footnotes are handled; now they get their own virtual section (so if you’re currently using footnotes you’ll need to update your templates!)1
- Various performance improvements:
- Some internal caching on image rendition stuff
- Reduce contention in the content indexer (to hopefully make large sites more responsive on restart)
- Minor optimizations to
config.secret_key; now this should be configured on the application object per Flask standards
- Allow HTML attributes other than
src to contain image renditions
- Improve WebFinger support
Posted Wednesday, December 4 at 8:56 PM (2 years ago)
Thanks to André Jaenisch for his incredibly generous help in getting this set up!
And, if you run into any trouble (or have any suggestions for improvement), please open an issue.
(Full disclosure: I have even more of no idea what I’m doing than usual.)
Posted Tuesday, December 3 at 11:28 PM (2 years ago)
Double-whammy release today.
Posted Sunday, December 1 at 9:10 PM (2 years ago)
I’ve released a new version of Pushl.
Changes since the last version:
- Added support for tracking entry URL changes
- Finally got around to adding type annotations and static analysis
Posted Wednesday, November 27 at 9:13 PM (2 years ago)
Publ v0.5.10 is now available. The following has changed since v0.5.9:
- Image sets will generate fullsize renditions (and their links) for images which were skipped, so they will still appear in the lightbox
- Footnotes now get rolled up into the
entry.more (with some caveats), and also get stable permalinks for their references1
- You can now annotate an HTML attribute with
I’ve also made a bunch of changes to the sample templates.
Posted Thursday, November 14 at 10:23 PM (2 years ago)
Just a tiny fix in this; it works around an inconsistency between the IndieAuth spec and IndieAuth.com’s implementation. Normally I’d just be all, “this is a bug in IndieAuth.com” but that’s the most popular IndieAuth endpoint right now so I decided it was prudent to make a compromise. And really it’s a good idea to always specify an
Accept: header anyway.
Thanks to Colin for bringing this to my attention.