Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Texy.net release candidate

22.40 - 30. listopadu 2006 | Webdesign

Po delší odmlce přicházím opět s dotnetovou implementací Texy! XML-RPC klienta. Přesto, že jsem nedostal žádnou odezvu, jsem odchytal pár bugů z předešlé verze, ale hlavně došlo k rozšíření o podporu deklarativní konfigurace.

Dosud se musela Texy.net konfigurovat pokaždé zvlášť v kódu ve kterém byla volána. Nová verze přináší možnost konfigurace pomocí vlastní sekce ve web.config souboru. Vytvořil jsem jak vlastní handler pro načítání konfigurace, tak i schéma pro snadnější editaci konfigurace. Schéma si zkopírujte do adresáře C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas\Custom\ a do souboru C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas\DotNetConfig.xsd přidejte následující kód:
<xs:include schemaLocation="Custom/GryphoonConfig.xsd" />.

Ukázka použití

web.config

<?xml version="1.0" ?>
<configuration>
  <configSections>
    <section name="rarous.texy"
      type="Rarous.Texy.Configuration.ConfigSectionHandler, Rarous.Texy"
      allowLocation="true" allowDefinition="Everywhere" />
  </configSections>

  <rarous.texy>
    <formatterModule indent="false" lineWrap="255" />
    <headingModule top="2" />
  </rarous.texy>

...

</configuration>

Ukázka výše má za následek, že výstupní kód nebude odsazován a bude zalamován po 255 znacích. Dále je nastaven nadpis h2 jako nejvyšší možný. Následuje obligátní ukázka požití v kódu.

string input = "nějaký text."; // vstupní text
// načteme konfiguraci
Rarous.Texy.Configuration.ConfigSectionHandler handler =
    (Rarous.Texy.Configuration.ConfigSectionHandler)
    ConfigurationManager.GetSection("rarous.texy");
// vytvoříme instanci Texy!
Rarous.Texy.Texy texy = new Rarous.Texy.Texy(input, handler);
// překonvertujeme na XHTML s pomocí konfigurace
string output = texy.ToXhtml(true);

Tímto však možnosti nekončí. Já například zmiňovaný handler používám v připravovaném redakčním systému Gryphoon2 pro konfiguraci pro články a pro komentáře. TexyProcessor se pak stará o načítání konfigurace pro aktuální potřebu.

No a protože tohle není úplně nejjednodušší ukázka kódu, máme tu ještě takové usnadnění :) Nejjednodušší možnost použití Texy tedy je:

string html = Rarous.Texy.Texy.Process("Hello World!");

Doufám, že alespoň někomu to pomůže k snadnějšímu používání Texy! na dotnetu. Závěrem bych vás chtěl poprosit, pokud najdete nějakou chybku, neváhejte a sdělte mi ji, ať už v komentářích, nebo na e-mail. Za každý feedback budu rád. :)

Ke stažení

Autor: Aleš Roubíček | Přidej komentář | Delicious | Digg | FriendFeed | Facebook | Linkuj! | Jagg

Komentáře RSS

  1.  

    JackeLee

    23.26 - 30. listopadu 2006 | #

    Dobrá práce, ještě aby někdo Texy! přepsal pro JSP a budeme o něm skoro moc říct, že je servrově nezvávislé ;-)

  2.  

    Jerrysohn

    00.43 - 1. prosince 2006 | #

    V ukázkovém kódu máš chybku. Deklaruješ *ConfigSection­Handler s názvem config*** a pak při vytváření instance texy jako parametr předáváš proměnnou s názvem **handler, která neexistuje. Zde by mělo být config.

  3.  

    Jerrysohn

    00.48 - 1. prosince 2006 | #

    Hmm… tak teď jsem se opět ukázal jak umím používat Texy! syntax :o)

    Ale v každém případě je tahle implementace Texy do .NETu super. Hlavně, že jsem dneska ráno do své aplikace implementoval beta 2. Ale teď to již předelávám, protože tohle je mnohem pohodlnější.

  4.  

    Aleš Roubíček

    08.59 - 1. prosince 2006 | #

    [2] Jerrysohn Díkec, opraveno :o)

  5.  

    ???

    19.30 - 1. prosince 2006 | #

    čo to je texy.net? dal som tú stránku do browseru a zobrazilo sa mi nejaké united domains.

  6.  

    Aleš Roubíček

    21.16 - 1. prosince 2006 | #

    [5] ??? Juchů! :D Texy.net není žádná sajta, ale .net implementace Texy! XML-RPC klienta, viz první odstavec. Pookud nevíte, co je Texy!, pak vám může pomoci navštívit předchozí link.

  7.  

    Tomas

    02.50 - 4. prosince 2006 | #

    To volani web sluzby (at uz je to WS nebo RPC) pri kazdem parsovani formatovaneho textu mi prijde trosku jako drbat se levou rukou za pravym uchem a jeste kolem stromu. Mimo ne uplne optimalniho vykonu ne vsude je pristup nekam ven povoleny.

    A jak bych to navrhoval vylepsit? Inu, proc nezkompilovat texy do .NETu a nevolat to jako normalni .NET ovladaci prvek – pomoci projektu Phalanger :-). Pokud bys s tim experimentoval a narazil na nejake potize tak mi muzes napsat a zkusim pomoci.

    I tak jak to je ted, je to ale zajimave a ve vetsine pripadu asi i pouzitelne.

  8.  

    Aleš Roubíček

    09.51 - 4. prosince 2006 | #

    [7] Tomas Texy.net je určena primárně pro webové aplikace, tudíž možnost volání někam ven na portu 80 je očekávána. Výkonostní problémy nejsou zase tak markantní, podobné řešení používám (a nejen já) rok a půl a plně dostačuje.

    Co se týče kompilace pod Pahlangerem. Neboj se, že jsem to nezkoušel, ale vzhledem k tomu, že Pahlanger používá nějaké „pokřivené“ typy, je výsledek značně nepoužitelný a ztrácí lehkost a eleganci mého řešení :D Navíc by tu byla nutnost udržovat aktuální verzi Texy! i v této podobě. Využití služeb v takovémto případě je pro mně mhohem výhodnější a elegantnější.

  9.  

    Tomas

    22.54 - 4. prosince 2006 | #

    Jasne ze to ve vetsine pripadu pujde pouzit, to jsem priznal i v predchazejici reakci :-).

    Co se tyka Phalangeru, tak tam mame hlavne nedostatky v dokumentaci. Volani PHP funkci/trid z .NETu neni az tak snadne, protoze v PHP se daji psat veci ktere by v ostatnich .NET jazycich tezko sly (protoze je to dynamicky jazyk).

    Proto je v Phalangeru nekolik moznosti jak k PHP objektum/funkcim pristupovat. Protoze Texy je hodne hezky objektove napsana aplikace tak po odstraneni radku (v nekolika souborech):

    if (!defined(‚TEXY‘)) die();

    lze zkompilovat v takzvanem „pure“ modu, ktery je mnohem vice kompatibilni s napriklad C#. Az budu mit chvilku tak to dodelam a napisu o tom, protoze by to byla celkem pekna ukazka toho jak Phalanger funguje :-).

  10.  

    Tomas

    02.13 - 12. února 2007 | #

    Tak jsem se k tomu pres vsechny zkousky nejak nedostal :-). Meli jsme v Phalangeru par drobnych bugu v regularnich vyrazech, ktere vyplynuly diky Texy! na povrch, ale jinak je konverze opravdu celkem snadna zalezitost.

    Pokud te to tedy zajima, tak jsem o tom napsal pojednani do sveho blogu.

  11.  

    Alex

    13.29 - 19. listopadu 2008 | #

    Hi, Ales I am trying to use Texy.net, just simple Texy.Process(„strin­g“), using styling guidelines from http://texy.in­fo/en/syntax but cant get it to add styles. .{color:blue} simply does not work, i am new to texy, so can you please give me a quick guideline how to make it work, maybe to do something with configuration file…

  12.  

    Aleš Roubíček

    14.48 - 19. listopadu 2008 | #

    Hi Alex, try to set property allowClasses to true or explicitly enumerate allowedClasses in your configuration section. Another possible way is to make instance of Texy and set your preffered configuration programaticaly.

  13.  

    Alex

    14.49 - 19. listopadu 2008 | #

    Sorry Ales, looked at class diagram, should have done that before asking anything, thanks, everything works.

  14.  

Místo pro tvůj názor

Povinné je jméno a komentář, z e-mailu se rozpoznají Gravatary.
Komentář je formátován pomocí Texy! syntaxu.
Například: **tučný text**, *kurzíva*, "text odkazu":adresa.
Internetové adresy jsou převáděny na odkazy.
Na komentáře se můžete odkazovat pomocí [číslo komentáře].

Nový komentář