-
byI started working on webmention displays for the dashboard in Tanzawa. Preview π:
The base webmention layout
Content is plain text and limited to 140 characters (after which it will truncate nicely). There's a link to review it on the left and the source of the webmention is also linked. The webmention kind is displayed on the bottom right if it can be determined.
Using the html5 <object> tag I can handle broken images or no author photo quite easily.ΒA broken author photo example
Come to think of it...these could be used as the base for displaying the interactions in a post as well... -
byThank you to Colin for replying and sending Tanzawa its first non-test webmention.Β
Today I fixed some layout bugs and started working on a home / dashboard screen for the publishing side of Tanzawa. For starters it's going to display just the last 5 posts / webmentions and a button to write a new status.
Currently each wbmention shows it's review status (π or π), source url, and a link to the django admin to review (or delete) it.Β Instead of the source url (as that's not super helpful) I plan to show who it's from, the kind of webmention, and a link to view it. Eventually I'd like to normalize this data into the database, so I don't need to parse html on each page load, but I'm still working on the table schema in my head.
Once I get the dashboard "working", I think it's time to expand to other post types. Articles would be easiest - as it's just a status with a title. It will also force me to normalize sidemenus and post listing logic. After that I'd like to support checkins via a micropub endpoint so I can get my swarm checkins from OwnYourSwarm. -
byI've got webmentions working with the great django-webmention library. I'm parsing mention's microformats using mf2py and mf2util. It's not too difficult.Β You can send a webmention and I'll receive it. They just won't show on the page. And that's because I'm not sure how I want them to display.
For example a "like" doesn't necessarily have an author name, just a url. Or even no author at all. How do I display these? Do I just not display them?Β What's the appropriate microformat html for this type?Β Rich content or plain content? What if the plain content is in markdown? And repeat for each different kind.
I wanted to add support for receiving webmentions, as that way I can see if someone's linking to the tanzawa development blog, but I'll I think I'll hold off on display until I've had a chance to think through the implementations more. -
by
I got my Mac back from repair and have promptly resumed working on Tanzawa. Today I shipped RSS feeds. Subscribe to the Tanzawa feed to follow development.
-
byToday IΒ merged RSS support (feed), properly microformatted statuses, and automatic plain text conversion of statuses. Next up is some basic site settings, so you can set things like site title / feed title and so forth.
-
byComputer is repaired and I'm making progress on Tanzawa again. Today I've got the statuses rendering as microformats and made an author page. Next up will adding RSS support for statuses.
-
byToday's feature is a non-user facing feature: allowing tanzawa to be configured using a .env file via django-environ. Beyond letting me keep production settings / paths / secret keys out of git or keeping a separate settings.py for production, it also let me enable secure session cookies. Secure cookies with some apache/nginx configuration allows the url generated when you upload an image use https instead of http, which keeps the padlock in your browser locked.
-
byToday I fixed image generation on linux ( turns out image/webp isn't recognized by python mimetypes on linux yet? ). I've also added permalinks for all posts. This will allow me to link directly to posts manually, but also sets me up for syndication and webmentions.
Progress may be slowed next week as my laptop might be getting its battery replaced. -
byDynamic image format conversion is working nicely. I added a new feature to the image processing this morning as well.Β Rather than just strip geo data, I'm removing all exif data.
However, it also occurred to me that you may want to display a subset of that data on your website e.g. which camera the photo was taken with etc... So I'm saving all exif data to json before stripping it from the file itself. This should allow you to expose only the data you want explicitly in your templates. ππ» -
byAdopting new image formats (webp/avif/apng) in place for legacy formats (jpeg/png/gif) is an area where websites simultaneously increase quality and reduce transfer size.Β I've got dynamic file format conversion working locally so browsers that support the new formats will automatically get the smallest file possible and older clients fallback to legacy formats. Just needs a bit more massaging before I merge it.