Rich Text
By default, when you create a post, @skyware/bot
parses your post’s text to identify any mentions, hashtags, and URLs. However, in some cases, you may want more control over how a post is displayed. The RichText class provides a convenient interface for constructing a post containing rich text.
Usage
To start, import the RichText
class from @skyware/bot
:
You can then build a rich text string as follows:
You’ll notice that the Bot#post
method can accept either RichText
or a string. Your post will look something like:
Mentions
When you’re manually constructing RichText
, mentioning a user requires you to know the user’s handle and DID. You can then use the mention
method to add a mention to your post:
Note that the DID provided could differ from the mentioned handle — a mention is really just a hyperlink! Use this power for good.
Hyperlinks
Speaking of hyperlinks, mentions aren’t the only way to have text act as a link. The .link
method we previously used can also take two parameters: text and a URL.
Detecting facets yourself
Alternatively, the RichText
class contains a detectFacets static method that will handle detecting all mentions, links, and tags, and automatically resolve mentions to DIDs.
The post
method and others such as reply
and quote
will automatically detect facets for you if you pass a string. However, if you want to detect facets from an existing string but exclude certain facets, the RichText.detectFacets
method offers greater control.
You must pass your bot
instance in to RichText.detectFacets
so that it can resolve mentions. If you pass facets
into post
, only those facets will be used.
Moving on
You may notice that adding a link to a post doesn’t automatically add an embedded preview. Learn more about that in Embeds and Images!