Libraries

s&box libraries

RichText Razor Panels

carsonk.richtextpanels

Adds a <RichText/> element which can parse text into custom Razor Panels

About

What is this?
This adds a custom <RichText Text=""/> UI element which can be given text which will be parsed into custom UI panels. You can define as many custom panel types as you want and they can be as simple as adding asterisks for italics or as complex as URLs automatically becoming an embedded WebPanel.
How do I use it?
First you need to create your own razor panel that includes the [RichTextPanel] attribute. It can take either a single regex pattern as an argument, or the start and end strings which it will use to form a proper regex pattern.
@attribute [RichTextPanel("**", "**")]

<root>
</root>

<style>
label {
font-weight: 800;
}
</style>The text will be added to this panel as a child Label, so you can style it however you want from here, and even pre-include children in the root.

However, if you find yourself wanting more control than just styling the text, you can implement IRichTextPanel and it's ParseRichText() function.
Here's an example that allows you to do <i>item_resource_name<i> in RichText and have it display an item's icon and name
@attribute [RichTextPanel( @"<i>(.+?)</i>" )]
@implements IRichTextPanel

<root>
@if ( Item is null ) return;
<img [email protected] />
<label>@Item.Name</label>
</root>

@code
{
ItemResource Item;
public void ParseRichText ( string text )
{
Item = ResourceLibrary.GetAll<ItemResource>().FirstOrDefault(x => x.ResourceName == text);
}

protected override int BuildHash () => Item.GetHashCode();
}Then when you're ready to use the RichText element itself, you just do the following:
<RichText Text="**You have unlocked** the <i>wooden_sword</i>!" />How do I get the examples from the picture???
You can find the example project here!

razorrichtextui

Media

More by Carson Kompon

01
MediaHelpers thumbnail
MediaHelpers carsonk.mediahelpers

A library used to retrieve video stream urls for use with the VideoPlayer class.

videoplayermediavideohelper
+0 24h
15favorites
10upvotes
72%Wilson score
02
Razor Panel Tooltips thumbnail
Razor Panel Tooltips carsonk.razor_tooltips

A custom tooltip system that lets you use razor panels instead of a string

razortooltipui
+0 24h
6favorites
5upvotes
44%Wilson score
03
Editor All Chat thumbnail
Editor All Chat carsonk.editor_all_chat

A global chat that lets you talk with anyone else using the library who's currently in the Editor.

chateditor
+0 24h
2favorites
6upvotes
61%Wilson score
04
TikTokTTS thumbnail
TikTokTTS carsonk.tiktoktts

No summary provided.

ttstexttospeechtiktok
+0 24h
1favorites
4upvotes
51%Wilson score
05
SFXR thumbnail
SFXR carsonk.sfxr

No summary provided.

sfxrsfxsoundsaudiosound
+0 24h
1favorites
2upvotes
34%Wilson score
06
Granular Pitch Audio Processor thumbnail
Granular Pitch Audio Processor carsonk.granularpitchprocessor

A basic audio processor that lets you change the pitch of a sound live without changing its speed.

audio
+0 24h
1favorites
0upvotes
--Wilson score