Tesseract

35 readers
1 users here now

Formerly Tesseract for Lemmy. Now "Tesseract for Sublinks"

Development is now targeting the upcoming Sublinks project. As Sublinks aims to provide initial compatibility with Lemmy, Tesseract will continue to work with Lemmy for the foreseeable future.

Once the Sublinks project moves into its native API phase, Lemmy support will be dropped from Tesseract.

Announcements, support, and guidance for the Tesseract UI for Sublinks

founded 1 year ago
MODERATORS
1
0
submitted 2 months ago* (last edited 2 months ago) by [email protected] to c/[email protected]
 
 

1.4.13

Docker Tags

  • ghcr.io/asimons04/tesseract:1.4.13
  • ghcr.io/asimons04/tesseract:v1.4.13
  • ghcr.io/asimons04/tesseract:latest

Bugfixes

  • [0ed97991] Don't badge-ify hashtags if the hashtag linkify option is disabled
  • [ce5a310a] Make markdown text reactive (and re-run pre-processing step) to changes to the enable/disable hashtag setting.
  • [704e2d78] When clicking the user/community links in the modal, close the modal when navigating to the target (previously modal stayed open)

Enhancements

  • [3b8ef653] Update banner when viewing a post on a remote instance to use more concise verbiage and add an extra button to link to the post's canonical instance.
  • [ec8c4bfe] User and Community links are now a elements rather than button. Allows middle-clicking or right-click-> open in new tab to immediately open the profile/community in a new tab without having to click through the modal. Regular clicks still open the modal.

New Feature: Synthetic View Modes

Under the hood, there are still only two main types of view: Card and Compact

However, Compact view is affected by several options which can be combined to create different view styles.

The "compact/card" switcher button has been replaced with a selector menu to select from one of 6 views:

  1. Card: The flagship Tesseract post view. Posts are shown as cards with all the media embed bells and whistles. Post body preview is set to 240 characters.

  2. Compact: The classic "compact" view as of 1.4.12. Feed margins are present, post images are thumbnails, the post body preview is 240 characters, and no media is embedded unless the post is expanded into card view.

  3. Wide Compact: Same as "compact" but without the feed margins. Posts span the full width of the display. Clicking the thumbnail image or the "expand" button in the post action bar will expand the post into card view.

  4. More Compact: Same as "wide compact" except the body preview length is set to zero and can be expanded.

  5. Ultra Compact: Same as "wide compact" except the thumbnails and the post body are hidden. Post body cannot be expanded, and you will need to click into the post to see it. Post can be expanded to card view only with the "expand" button in the post action bar. Expanding into card view does not reveal the post body, only the thumbnail image (if present). If the post is a media post, the embed will be available (either in full or click-to-play depending on settings)

  6. Reader: Same as "wide compact" except the entire post body is shown (up to 10,000 characters).

More views may be added along the way, but for now, those should cover more use cases without having to manually fiddle with the various options.

I'm really liking the "Reader" mode, myself.

2
 
 

See the "New Features -> Link Previews" section below for descriptions of the screenshot.

  • Full Changelog
  • Docker Tags:
    • ghcr.io/asimons04/tesseract:1.4.7
    • ghcr.io/asimons04/tesseract:v1.4.7
    • ghcr.io/asimons04/tesseract:latest

Changelog is pretty long this time, so use the link above for the full details. Only the highlights will be covered here.

Bugfixes, Tweaks, and Enhancements

Bugfixes / Tweaks

  • [Crossposts] Text-wrapped community names in crosspost list (typically when on mobile) no longer incorrectly center-justify themsleves
  • [UI] Fixed z-index for alternate source selector in /profile/user section to prevent it from showing over top of the nav bars when scrolling up
  • [Hashtags] Fixed regex pattern for hashtag detection so it should now fully ignore any inside code blocks or inline code ticks.

Enhancements

  • Brought Back the Discrete Listing Type / Sort Dropdowns: Based on feedback from users, I've brought back the discrete dropdowns in the nav bar for choosing the listing and sort options (they had been moved into the quick settings dropdown menu).
  • Quick Settings is now a Modal: The dropdown menu was becoming too cumbersome from a UX and maintenance perspective, so it was moved into a modal. The button for it was also moved to the right side of the navbar rather than the left.
  • Removed Context-Aware Search Button on Mobile: The context aware search (which will search the site, community, or currently-viewed profile depending on where you are) button has been removed on mobile to reduce clutter. Mobile users will need to use the main "Search" button in the main navbar and select the appropriate filter options.
  • Deprecated Support for /c/ and /u/ User and Community Links: Those formats will no longer be turned into links automatically and are discouraged. The preferred way to link a user in markdown areas is @[email protected] and, for communities, it's [[email protected]](/c/[email protected]).
  • Community Modals Now Work With "Unknown" Communities: The community modal has been extended to resolve the community prior to fetching it so that unknown communities can be resolved transparently when clicked. Unauthenticated/guest users will receive an error if clicking a community link that the instance does not "know" about (resolveObject is an authentiated call).
  • Misc: Various UI tweaks/polish where things weren't exactly uniform (modal action buttons, etc).
  • Misc: Added Quick Settings button to toolbar on post pages
  • Post Titles in Feed/Profiles: Fixed quirkiness with post titles. Can now middle-click post titles to open in new tab again as well as right-click to copy link (turned them back from buttons into links but keeping the 'button' behavior)

New Features

Link Previews

Under Settings -> General is a new option called "Preview Links in Modal". This is enabled by default but can be disabled. It is also under the quick options.

Clicking markdown links (in post body, comments, sidebars, etc) will do a server-side metadata fetch and render a preview. "Internal" links that load in Tesseract will not preview and simply use the user's "open links in new tab" preference.

The preview includes:

  • Link metadata if available (thumbnail image, embed video, description, title)
  • Alternate source selector
  • MBFC report (if available)
  • If link is to a supported media type (YT, Invidious, Piped, Soundcloud, Bandcamp, Spotify, Odysee, PeerTube, etc), will show the media as an embed
  • If metadata description contains links, they will preview in the same modal, and a "back" button will be enabled to return you to the previous preview.

e.g. If someone drops a bare Youtube link, it will render in the modal using your preferred YouTube frontend. Same for a Spotify, Bandcamp, etc link. The link is processed through the same rendering chain as posts, so any supported media should render as if it were posted to the feed.

It also has the alternate source selector and the MBFC plugin tied in, so a news article link in the comments can be vetted for credibility, previewed, and followed.

Post links are not tied into this since the post itself acts as the preview / renderer. This can be implemented, and easily, but it seems pointless to me. If I get feedback saying it should handle the main posts links through that, then I can enable it or at least make an option to.

Image Descriptions: The post image demonstrates the preview modal that's loaded when clicking the raw Youtube link in the comment shown above. The second image shows the preview for a news link posted in the comments of another post.

Badge-ified Community and User Links and Hashtags

Community and user links in post and comment bodies are now badge-ified and load the community or profile modals upon click (versus the old behavior of being a dumb link to the profile/community pages).

Currently, user links are blue, and community links are orange.

Hashtags are now converted into badges/flairs and are yellow.

3
0
submitted 6 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 
 

Finally releasing 1.3.0. I didn't quite rip it down to the studs, but it was damn close. Much of the UI has been re-written as well as a lot of the underpinning helper functions. There's a lot of changes, though most are just enhancements and polish to things that already existed in 1.2.9.

The full changelog is a beast, so I'll only post the highlights here:

Highlights for 1.3.0

API Compatibility

1.3.0 "Defiant" remains fully compatible with both 0.18.x and 0.19.x. This will be the last version to support 0.18.x. Once development of 1.4.0 begins, the minimum supported API version will be 0.19.3.

0.19.x Features Supported

0.19 has had basic support (mostly auth) since 0.19.0 was released. In addition, 1.3.0 now offers a few more features that become available when connecting to an 0.19.x instance:

  • Scaled sort becomes available
  • Instance block becomes available
  • Instance blocks are managable through your Profile->Blocks page.
  • Cursor-based pagination is used if available but falls back to offset-based for 0.18.x

General

  • Whole UI has been polished. See the changelog for the full list of changes since 1.2.9
  • Removed markdown-it and all of its plugins as it was too cumbersome to extend to do some things I wanted to do and replaced it with svelte-plugin-marked. Wrote custom renderers to replicate the functionality of markdown-it-html5-embed and spoilers.
  • New community moderation capabilities (directly ban/unban users, localized modlog with quick actions)
  • Sidebar fonts are now more compact
  • Long community names are intelligently shortened where needed
  • You can now select one of several fonts to use for the UI. The default font is now Roboto.
  • New notification widget
  • Option to hide those obnoxious "anti AI" CC licenses people put on their posts/comments that they somehow think will prevent LLMs from training on their submissions. ๐Ÿ™„
  • Posts with URLs will now have an [Archive Link] next to them which will automatically search archive.ph for that URL. Please stop commenting "Paywalled" when someone posts an article.
  • "Copy Lemmyverse Link" added to user profile menus
  • Can now change password without having to go through "forgot password" process (I swear I thought I already implemented this, but I guess it never got merged in. Oops)
  • Bugfixes: too many to list

Search

This deserves its own section since the search was completely revamped.

  • Search filters cleaned up and polished
  • Can now search from community or user pages which will automatically filter the search to just that community/user
  • Added a "More from {user}" option to the community menu on posts. This will search for posts by that user in the current community.
  • #Hashtags are now automatically converted to search links

Remote Instance Community Browser Revamp

  • Can now one-click subscribe to communities on remote instances
  • Your subscription status for communities is now reflected against remote instances
  • Got rid of modal to view community info. Each item is now a collapsible item; expand to see community details.
  • Admins can specify a list of instances that will pre-fill the instance selector for quick browsing. Users can enter any instance they want also.

/instances Page

Can now view federated instances (allowed, blocked, linked) through Tesseract. Additionally, you can filter by software (Lemmy, Kbin, etc) and keyword as well as hide dead instances.

Each instance also has action buttons to view communities there (Lemmy only), visit the instance, view a Fediseer report for it. Dead instances are also indicated with a "thumbs-down" icon.

Instances are considered "dead" if they haven't been pinged in > 3 days.

Media

  • Peertube videos now embed seamlessly. You can already follow Peertube channels in Lemmy, and now they'll show as a feed of embeds.
  • Embeds now only render when they're in the viewport. Once an embed is out of the viewport, the iframe is destroyed and removed from the DOM. This saves a LOT of memory.
  • Can enable an option to show alt text as a caption on images in markdown (not post images, but images in the post body and coments).

Feed & Posts

  • Added buttons on community avatars to quick subscribe/unsubscribe (ok, saw that Photon did that and implemented it almost exactly the same. Sue me).
  • "Explore" menu is now "Instances" menu. Instance-specific options are here such as Fediseer reports, block that instance (0.19+), and browse communities there.
  • Infinite scroll is now the default.

Post Creation

In addition to the polish and cleanup, the form to create posts has some new features:

  • Can now pull the metadata from the given URL to pre-populate the title and pull a thumbnail for previewing
  • Uploading images can now use the image proxy URL to reduce load on the API server (if media proxy/cache is enabled by admins and users enable it in their settings)
  • Can preview in both card and compact views

Modlog

Lots of tweaks and polish, now has quick action buttons that can be used to reverse a previous action or take additional actions. You can also easily turn a temp ban into a permaban without the intermediate step of unbanning first.

Features That Did Not Make It Into 1.3.0

There are only two features that didn't make the cut:

Reimplement custom feeds

Since this is the last 0.18.x release, and I'm having to support both cursor and offset-based pagination, I've decided to push the custom feed rewrite to 1.4.0 which is dropping 0.18.x support. That will make implementation easier and cleaner than having to support both methods.

TOTP 2FA Setup

Same as with the custom feeds, I want to do this cleanly. Since 0.18.5's TOTP setup is bonkers and can easily lead to accounts being locked out, I've decided to skip adding this until 0.19.x is the minimum-supported version.

Get Tesseract