BBCode converter extensions for TextEngine
Requirements Text Engine
or
Installation
Install-Package TextEngine.BBCode
For x86
Install-Package TextEngine.BBCode.x86
BBCodeEvulator evulator = new BBCodeEvulator();
//Default tag output format.
evulator.SetTag("*", "[{%TagName}]{%Text}[/{%TagName%}]");
//B tag format
evulator.SetTag("b", "<b>{%Text}</b>");
//Multiple tag format.
evulator.SetMultipleTag(new string[] { "i", "u", "s" }, "<{%TagName}>{%Text}</{%TagName}>");
evulator.SetTag("test", "{%GetAttribute('name')} {%Text}");
//\n to <br />\r\n
evulator.SetMap('\n', "<br />\r\n");
//Output: <b><i>Bold</i></b>
string converted = evulator.EvulateBBCode("[B][I]Bold[I][/B]");
//Output: name Content text
string converted2 = evulator.EvulateBBCode("[test name=name]Content text[/test]");
BBCodeEvulator evulator = new BBCodeEvulator();
evulator.SetTag("url", new BBCodeInfo("<a href=\"{%TagAttrib}\">{%Text}</a>").SetValidator(
(validator, tag) =>
{
string attr = validator.TagData.TagAttrib?.ToString();
if (attr == "@cw")
{
//Change attribute value.
validator.TagData.TagAttrib = "https://www.cyber-warrior.org";
}
else if(attr == "@site")
{
//Change attribute value.
validator.TagData.TagAttrib = "https://www.site.com";
}
}
)
);
//Output: <a href="https://www.cyber-warrior.org">Cyber-Warrior.Org</a>
string converted = evulator.EvulateBBCode("[url=@cw]Cyber-Warrior.Org[/url]");
CenterBBHandler class
public class CenterBBHandler : BBCodeDefaultHandler
{
public override void TagStart()
{
this.Result.Text = "<div style='text-align: center'>";
//base.TagStart();
}
public override void TagFinish(string textContent)
{
this.Result.Text = textContent + "</div>";
//base.TagFinish(textContent);
}
public override void OnDataLoaded(dynamic data)
{
//Prefent to call base data loaded.
//data.TagAttrib = "Attrib";
//base.OnDataLoaded(data);
}
}
BBCodeEvulator evulator = new BBCodeEvulator();
evulator.SetTag("center", new BBCodeInfo().SetCustomHandler(typeof(CenterBBHandler)));
//Output: <div style='text-align: center'>Centered</div>
string converted = evulator.EvulateBBCode("[center]Centered[/center]");