You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Link text in a postâs HTML isnât clickable on Bluesky #948
Bluesky has no markup: a post is plain text plus facets, byte ranges that carry a link, mention or tag. createRichText in packages/syndicator-bluesky/lib/utils.js calls RichText#detectFacets, which only recognises URLs written out in the text. htmlToStatusText keeps the text of every <a> but drops its href (it appends the last linkâs URL to the end of the status as a workaround), so a post like
<p>I like <ahref="https://cheese.example">cheese</a>.</p>
reaches Bluesky as âI like cheese. https://cheese.exampleâ, where the word âcheeseâ is plain text. With two or more links in a post, only the last URL survives at all.
Reproduce: syndicate the post above and fetch the created record: facets holds one link facet, for the trailing URL, none for âcheeseâ. (A test on @atproto/dev-envâs test network fails on main this way.)
Fix: read the links from the HTML, find each linkâs text in the final post text, and add a link facet with the byte range for it, skipping any that overlap a facet Bluesky already detected. Byte offsets, not character offsets, per the richtext guide. The appended last URL is left as it is. PR to follow.
Activity
feat(syndicator-bluesky): make link text in post content clickable
feat(syndicator-bluesky): make link text in post content clickable
feat(syndicator-bluesky): make link text in post content clickable