/// <summary> /// Convert bbcode to definitons. /// </summary> /// <param name="bbcodetext">BBCode to convert.</param> /// <returns></returns> public string EvulateBBCode(string bbcodetext) { evulator.Text = bbcodetext; evulator.ClearElements(); evulator.Parse(); var result = evulator.Elements.EvulateValue(); return(result?.TextContent); }
private void TextEngineTest6() { var te = new TextEvulator("[SET name='numeric' value='5'][B]Deneme: [%numeric][/B][SET name='numeric' value='55']DenemeTest: [%numeric][if numeric==55]Değer 55[/if]"); te = new TextEvulator("[if numeric==55]Değer 55[/if]"); te.LeftTag = '['; te.RightTag = ']'; te.Parse(); var r = te.Elements.EvulateValue(); }
static void Main(string[] args) { TextEvulator textEvulator = new TextEvulator("[BGCOLOR=WHITE][COLOR=RED]Kırmızı[/COLOR] [COLOR=BLUE]Mavi[/COLOR][/BGCOLOR] " + "[BGCOLOR=green][COLOR=white]arka plan yeşil, yazı beyaz[/COLOR][/BGCOLOR]"); textEvulator.LeftTag = '['; textEvulator.RightTag = ']'; //Diğer varsayılan evulatörlerin işlevlerini ve ayarlamalarını temizliyoruz. textEvulator.TagInfos.Clear(); textEvulator.EvulatorTypes.Clear(); //color tagının evulatörünü atadık. //COLOR taglarını yakalar. textEvulator.EvulatorTypes["color"] = typeof(ColorEvulator); //BGCOLOR taglarını yakalar. textEvulator.EvulatorTypes["bgcolor"] = typeof(BGColorEvulator); //Tag içerisindeki metinleri yakalar. textEvulator.EvulatorTypes.Text = typeof(ConsoleTextEvulator); //Girilen metni ayrıştırdık. textEvulator.Parse(); //Evulate işlemini başlattık. textEvulator.Elements.EvulateValue(); //Alt satır ekledik. Console.WriteLine(); //Tüm elemanları temizledik. textEvulator.Elements.SubElements.Clear(); //Metni değiştirdik. textEvulator.Text = "[COLOR=RED]Cyber[/COLOR]-[COLOR=GREEN]Warrior[/COLOR]"; //Tekrar parse işlemini başlattık. textEvulator.Parse(); //Evulate işlemini başlattık. textEvulator.Elements.EvulateValue(); //Konsolun kapanmasını engelledik. Console.Read(); }
private void TextEngineTest7() { TextEvulator evulator = new TextEvulator(); evulator.Text = "{set name='boolvalue' value='true'}{%(boolvalue) ? 'Değer True' : 'Değer False'}\r\n" + "{unset name='boolvalue'}{%(boolvalue) ? 'Değer True' : 'Değer False'}"; //Parametrelerin attirbute alamayacağınıbelirttik aksi halde yukarı kod syntax hatası verecektir. evulator.ParamNoAttrib = true; evulator.Parse(); var result = evulator.Elements.EvulateValue(); MessageBox.Show(result.TextContent); }
private void TextEngineTest5() { TextEvulator evulator = new TextEvulator("[FOR var='i' start='1' to='5' step='1']mevcut döngü [%i]\r\n[/for]"); evulator.LeftTag = '['; evulator.RightTag = ']'; evulator.Parse(); //Kapatılan tag açılmamışsa hata vermeyecek. evulator.ThrowExceptionIFPrevIsNull = false; string result = evulator.Elements.EvulateValue().TextContent; MessageBox.Show(result); }
private void TextEngineTest2() { TextEvulator evulator = new TextEvulator("metin.txt", true); evulator.Parse(); Dictionary <string, object> dict = new Dictionary <string, object>(); dict["isim"] = 5; //Desteklenen sınıflar //IDictionary<string, object>, KeyValueGrup veye KeyValues<object> veya Doğrudan sınıflar belirtilebilir. evulator.GloblaParameters = dict; var result = evulator.Elements.EvulateValue(); }
private void TextEngineTest1() { TextEvulator evulator = new TextEvulator(); evulator.Text = "{set name='vars' value='isim + 5'}{if vars==10}Değerler: İsim {%isim}, vars: {%vars}{/if}"; evulator.Parse(); Dictionary <string, object> dict = new Dictionary <string, object>(); dict["isim"] = 5; //Desteklenen sınıflar //IDictionary<string, object>, KeyValueGrup veye KeyValues<object> veya Doğrudan sınıflar belirtilebilir. evulator.GloblaParameters = dict; var result = evulator.Elements.EvulateValue(); }
private void TextEngineTest4() { TextEvulator evulator = new TextEvulator("[B]Bold[/B][I]Italic[/I][URL=www.cyber-warrior.org]CW[/URL]"); evulator.LeftTag = '['; evulator.RightTag = ']'; evulator.Parse(); evulator.EvulatorTypes["b"] = typeof(IBEvulator); evulator.EvulatorTypes["i"] = typeof(IBEvulator); evulator.EvulatorTypes["url"] = typeof(UrlEvulator); //Kapatılan tag açılmamışsa hata vermeyecek. evulator.ThrowExceptionIFPrevIsNull = false; string result = evulator.Elements.EvulateValue().TextContent; MessageBox.Show(result); }
private void TextEngineTest3() { TextEvulator evulator = new TextEvulator("{cw}" + "{Üyeler}{Üye boşiçerik}{Üye name='macmillan' /} {Üye name='ar-ge'/}{TestTag name='test'/}{/Üyeler}" + "{/cw}"); evulator.Parse(); //Tüm elemanların Üye tagında name özelliği varolan elemanlarını getir. var üyeler = evulator.Elements.FindByXPath("//Üye[@name]"); string üyelerçıktısı = ""; foreach (var üye in üyeler) { //true ayarlandığı zaman çıktı biçimine göre ayarlar(tab ve satırları) üyelerçıktısı += üye.Outer(true) + "\r\n"; } MessageBox.Show(üyelerçıktısı); }
private void Form1_Load(object sender, EventArgs e) { //TextEngineTest6(); TextEvulator evulator = new TextEvulator(); evulator.Text = "{tag}içerik: <b>{%'Mesaj: ' + mesaj + ', Uzunluk: ' + strlen_cw(mesaj) + ':'}</b>{/tag}"; evulator.Text = "<cw><uyeler><uye name='macmillan'>Üye</uye><uye name='xuye'>XÜye</uye><uye attr='kestane'>YÜye</uye></uyeler></cw>"; //Parametrelerin attirbute alamayacağınıbelirttik aksi halde yukarı kod syntax hatası verecektir. evulator.GloblaParameters = new CustomClass(); evulator.ParamNoAttrib = true; evulator.LeftTag = '<'; evulator.RightTag = '>'; evulator.Parse(); //var items = evulator.Elements.FindByXPath("(cw/uyeler/uye)[@name]"); var items = evulator.Elements.FindByXPath("cw/uyeler/uye[@name='xuye' or @name='macmillan'][1]"); var result = evulator.Elements.EvulateValue(); MessageBox.Show(result.TextContent); }
/// <summary> /// Çizimi için gerekli evulator bu fonksiyon aracılığı ile oluşturulur. /// </summary> /// <param name="text">Ayrıştırılacak metin</param> /// <returns>TextEvaultor sınıfında dönüş yapar.</returns> private static TextEvulator GetEvulator(string text) { TextEvulator evulator = new TextEvulator(text); //Mevcut evulator tipi ve tag ayarlamalarını temizliyoruz. evulator.EvulatorTypes.Clear(); evulator.TagInfos.Clear(); //Sağ ve Sol tagları ayarlıyoruz. evulator.LeftTag = '['; evulator.RightTag = ']'; //Hangi tag ve işlem için hangi evulatörlerin tetikleneceğini belirtiyoruz. evulator.EvulatorTypes.Text = typeof(DrawingEvulator); evulator.EvulatorTypes["b"] = typeof(BIUSEvulator); evulator.EvulatorTypes["i"] = typeof(BIUSEvulator); evulator.EvulatorTypes["u"] = typeof(BIUSEvulator); evulator.EvulatorTypes["s"] = typeof(BIUSEvulator); evulator.EvulatorTypes["color"] = typeof(ColorEvulator); //Metni ayrıştırıyoruz. evulator.Parse(); return(evulator); }
private void AçiklamaSatiri() { TextEvulator evulator = new TextEvulator(); evulator.Text = "Ayrıştırılacak Metin"; evulator.ParamChar = '%'; //Parametre karakteri {%variant} olarak kullanılır. evulator.LeftTag = '{'; //{tag} içerisindeki sol kısım evulator.RightTag = '}'; //{tag} içersinideki {tag} sağ kısım. evulator.NoParseTag = "NOPARSE"; //{NOPARSE}{/NOPARSE} içerisindeki kodlar ayrıştırılmaz. evulator.ApplyXMLSettings(); //XML Ayrıştırıcı olarak kullanacaksınız bu fonksiyonu çağırın öncelikle evulator.DecodeAmpCode = true; // gibi komutları çevirir. evulator.ParamNoAttrib = true; //Parametlerin attribute kullanıp kullanamayacağını belirler. //Örneğin false ayarlanırsa {%i+5} şeklinde kullanamazsınız fakat true olarak ayarlandığında {%i + 5 *2} gibi //kullanabilirsiniz. evulator.GloblaParameters = new object(); //Evulate işlemi sırasındaki değişkenler bu değişken aracılığı il //Aşağıdaki şekillerdek ullanabilirsiniz var test = new { name = "Deneme", value = 1000 }; evulator.GloblaParameters = test; IDictionary <string, object> dict = new Dictionary <string, object>(); evulator.GloblaParameters = dict; KeyValues <object> kv = new KeyValues <object>(); evulator.GloblaParameters = kv; evulator.GloblaParameters = new CustomClass(); evulator.AutoClosedTags.Add("test"); //ismi yazılan taglar otomatik kapatılır evulator.Aliasses.Add("bb", "strong"); //bb kodu aynı zamanda strong olarakta kullanılabilir. evulator.Parse(); //Ayrıştırma işlemi yapılır var elems = evulator.Elements; //Ayrıştırılan elemanlar bu sınıfta tutulur. elems.EvulateValue(); //ELeman içeriğini verilen parametrelere göre değerlendirip sonucunu döner. }