Edit

Changelog

Verze 2.0 Beta 2

rev. 208

  • use $texy->setOutputMode(...) to switch between HTML/XHTML, strict/loose modes. Parameter is one of these constants: Texy::HTML4_TRANSITIONAL, Texy::HTML4_STRICT, Texy::XHTML1_TRANSITIONALTexy::XHTML1_STRICT
  • Texy::$strictDTD & $texy->htmlOutputModule->xhtml are deprecated

rev. 206

  • new constants Texy::FILTER_ANCHOR & Texy::FILTER_IMAGE

rev. 202

  • removed support for PHP 4 & PHP 5.0.x

rev. 195

  • podpora pro víceřádkové texty a bloky v buňkách tabulek
  • zkracování URL lze ovládat přes $texy->linkModule->shorten

rev. 192

  • u obrázků je možné volit mezi požadovaným rozměrem [* image 10x20 *] a maximálním [* image 10X20 *] pomocí malého nebo velkého X

rev. 185

  • implementován Nette_Object z Nette Frameworku. Nahradil TexyBase

rev. 181

  • TexyHtml::$children je nyní private. K potomkům se přistupuje přes ArrayAcces interface (viz)

rev. 180

  • nevkládá ­ do URL

rev. 179

  • POZOR: přejmenováno TexyHtml::add() → create(), TexyHtml::addChild() → add() (důvody)
  • verze pro PHP4: emulace třídy Exception a throw
  • chytřejší detekce emailů a URL v textu

rev. 178

  • TexyTableModule – úprava chování odd & evenClass (viz fórum)
  • výchozí handler ‚htmlTag‘ vrací místo řetězce objekt TexyHtml
  • handler ‚paragraph‘ může být volán s parametrem NULL jako modifikátorem (pozor, tento handler bude v další revizi výrazně změněn)
  • interní změny v TexyHtml a TexyModifier (v $classes nyní tvoří položky klíče pole)

rev. 177

  • přidáno $texy->alignClasses (viz fórum)

rev. 176

  • přidáno $texy->headingModule->moreMeansHigher (viz fórum)
  • do tabulek se nově doplňují elementy <thead><tbody>
  • chytřejší dělení tabulky na head & body

rev. 175

  • $texy->htmlOutputModule->xhtml – přepínač XHTML / HTML režimu

rev. 173

  • pole $texy->headingModule->TOC namísto položky ‚id‘ obsahuje položku ‚el‘ s TexyHtml elementem titulku a ‚title‘ se generuje jen při $generateID

rev. 169

  • refactoring: přidáno TexyBase & TexyException

rev. 156

  • nové API metody TexyHtml::toText() & TexyHtml::toHtml() pro export částí DOM

rev. 155

  • nový systém handlerů. Odstraněno $texy->handler a konstanta Texy::PROCEED. Přidáno $texy::addHandler(). Více ve fóru

rev. 150

  • všechny příklady nyní fungují i v PHP 4. Jen je potřeba „inkludovat“ odpovídající verzi Texy.
  • verze pro PHP 5 podporuje kvůli zpětné kompatibilitě i původní konstanty TEXY_ALL, TEXY_NONE, TEXY_HEADING_DYNAMIC, TEXY_HEADING_FIXED, TEXY_PROCEEDTEXY_CONTENT_*

rev. 131

  • balík nyní obsahuje verzi pro PHP4
  • nové konfigurační funkce TexyConfigurator::disableLinks & TexyConfigurator::disableImages
  • $texy->safeMode() vyčleněno do nové statické třídy TexyConfigurator. Používejte TexyConfigurator::safeMode($texy).
  • zrušeno trustMode() – jde totiž o výchozí nastavení Texy
  • mbstring.func_overload fix
  • vráceno zpět $texy->tabWidth

rev. 126

  • vnitřní DTD validátor $texy->htmlOutputModule nyní kontroluje i platnost atributů
  • opravena chyba zadávání atributů před modifikátor
  • změna názvu $texy->formatterModule → $texy->htmlOutputModule

rev. 113

  • vylepšená syntax seznamů, viz fórum
  • aktivovány typografické úpravy v atributech title

Verze 2.0 Beta (rev. 111)

  • mnohem dokonalejší výstup, zcela nové API, perfektní podpora pro vlastní handlery, opravena řada chyb

třída Texy

  • odstraněno $texy->utf, místo něj $texy->encoding s výchozí hodnotou utf-8
  • Texy na výstupu využije všechny znaky z kódování $texy->encoding. Jen ty, co v kódování nejsou, nahradí číselnou entitou
  • nová vlastnost $texy->allowed – sjednocené povolování a zakazování syntaxe, viz Moduly
  • nový způsob maskování emailů
  • nová vlastnost $texy->urlSchemeFilters (popsáno v dokumentaci)
  • $texy->safeMode() vyčleněno do nové statické třídy TexyConfigurator. Používejte TexyConfigurator::safeMode($texy).
  • zrušeno trustMode() – jde totiž o výchozí nastavení Texy
  • nová vlastnost $strictDTD – lze přepínat mezi striktním a transitional DTD
  • změny názvů modulů:
    • $texy->imageDescModule → $texy->figureModule
    • $texy->smiliesModule → $texy->emoticonModule
    • $texy->quickCorrectModule → $texy->typographyModule
  • Texy::safeMode() vypíná syntax link/definition (viz dále) a mírně upravená je tabulka povolených tagů (viz zdrojový kód)
  • nová funkce Texy::normalize() – upraví text do normalizované podoby (odstraní pravostranné mezery, sjednotí oddělovače řádků, …)
  • nová funkce Texy::webalize() – upraví text do podoby webového identifikátoru ('žlutý kůň''zluty-kun')
  • odstraněno Texy::addReference() a Texy::getReference(), náhrada v modulech linkModule a imageModule
  • podpora pro escapovaní znaků: * )
    • pak \ *test je chápán jako *test a nikoliv \<em>test
    • obdobně lze použít závorku v modifikátoru: "blabla .(to je (můj\ ) názor)"
    • další escapovaný znak viz tableModule
  • Texy::summary je nyní pole
  • konstany TEXY_ALL, TEXY_NONE, TEXY_HEADING_DYNAMIC a TEXY_HEADING_FIXED jsou nyní: Texy::ALL, Texy:NONE, TexyHeadingModule::DYNAMICTexyHeadingModule::FIXED
  • kvůli zpětné kompatibilitě fungují i původní konstanty TEXY_ALL, TEXY_NONE, TEXY_HEADING_DYNAMICTEXY_HEADING_FIXED
  • přidána konstanta Texy::VERSION
  • aktivovány typografické úpravy v atributech title
  • kompaktní knihovna přejmenována texy-compact.phptexy.compact.php

moduly obecně

  • ve všech modulech odstraněna vlastnost $allowed
  • každá syntax má svůj identifikátor (např. table, html/tag, heading/surrounded …)
  • jednotlivé syntaxe se povolují přes (např.) $texy->allowed['table'] = TRUE nebo FALSE
  • odstraněny všechny handlery (s výjimkou scriptModule->handler) – místo toho centrální správa přes $texy->addHandler

blockModule

  • podpora pro vnořené bloky (div)
  • na každý blok lze napojit vlastní handler block (viz příklady ‚Syntax highlighting‘)
  • zapínání/vypínání syntaxe: $texy->allowed['blocks'] (hromadně)
  • jednotlivé přes: block/default, block/pre, block/code, block/html, block/text, block/texysource, block/commentblock/div
  • popis jednotlivých druhů bloků v dokumentaci

emoticonModule

  • náhrada za smiliesModule
  • nová vlastnost $fileRoot (viz imageModule)
  • na každý emotikon lze napojit vlastní handler emoticon
  • zapínání/vypínání syntaxe: $texy->allowed['emoticon']

figureModule

  • náhrada za imageDescModule
  • vlastnost $boxClass přejmenována na $class
  • nová vlastnost $widthDelta – u plovoucích divů nastaví jejich šířku. Vypočítá ji jako šířku obrázku + $widthDelta
  • na každý obrázek s popisknou lze napojit vlastní handler figure (viz příklad ‚Figure as Definition List‘)
  • zapínání/vypínání syntaxe: $texy->allowed['figure']

headingModule

  • váha dynamických titulků se počítá mírně odlišně
  • nová vlastnost $generateID – zapne automatické generování ID pro titulky
  • nová vlastnost $idPrefix – textový prefix pro automaticky generovaná ID
  • nová vlastnost $TOC – zde se vytvoří seznam všech titulků, jejich úrovní a ID
  • na každý titulek lze napojit vlastní handler heading
  • zapínání/vypínání syntaxe: $texy->allowed['heading/surrounded'] & $texy->allowed['heading/underlined']

horizLineModule

  • nyní akceptuje pouze zápis ------- a *******
  • na horizontální linku lze napojit vlastní handler afterHorizline
  • zapínání/vypínání syntaxe: $texy->allowed['horizline']

htmlModule

  • nová vlastnost $passComment – zda HTML komentáře propouštět nebo požírat
  • zrušeno $allowedComments (ve prospěch $texy->allowed)
  • na každou HTML značku lze napojit vlastní handler htmlTag
  • na každý HTML komentář lze napojit vlastní handler htmlComment
  • zapínání/vypínání syntaxe: $texy->allowed['html/tag'] & $texy->allowed['html/comment']

imageModule

  • nový chytrý preloader – není potřeba doplňovat žádný JavaScript!
  • $rootPrefix přejmenováno na $fileRoot – výchozí hodnota je získávána chytřejším způsobem
  • nová třída TexyImage, což je popisovač obrázku (viz zdrojový kód), používán dalšími metodami a handlery
  • nové metody addReference() & getReference() – programátorské přidání a zjištění obrázkové reference
  • na každý obrázek lze napojit vlastní handler image (viz příklad ‚Images‘)
  • zapínání/vypínání syntaxe: $texy->allowed['image'] & $texy->allowed['image/definition']

linkModule

  • zrušeno $emailOnClick (lze nahradit handlerem)
  • zrušeno automatické vkládání ftp:// před odkazy ve tvaru ftp.xxx
  • vylepšená podpora pro $forceNoFollow
  • nová třída TexyLink, což je popisovač odkazu (viz zdrojový kód), používán dalšími metodami a handlery
  • nové metody addReference() & getReference() – programátorské přidání a zjištění reference
  • na každou referenci lze napojit vlastní handler linkReference (viz příklad ‚References‘)
  • na každé nalezené URL a email lze napojit vlastní handler linkURL resp. linkEmail
  • zapínání/vypínání syntaxe: link/reference, link/email, link/urllink/definition

listModule

  • nyní akceptuje i typografickou odrážku
  • na hotový seznam lze napojit vlastní handler afterList resp. afterDefinitionList
  • zapínání/vypínání syntaxe: $texy->allowed['list'] resp. $texy->allowed['list/definition']
  • vylepšená syntax seznamů, viz fórum
  • TexyDefinitionListModule začleněn do TexyListModule

longWordsModule

  • zapínání/vypínání syntaxe: $texy->allowed['longwords']
  • zrušeny vlastnosti $shy a $nbsp
  • dává lepší výsledky

phraseModule

  • nová syntax //kurzíva//
  • nový syntax x^2x<sup>2</sup>
  • nový syntax O_2O<sub>2</sub>
  • nový syntax notexy
  • syntaxe ++inserted++ --deleted-- ^^superscript^^ __subscript__ ~~cite~~ ve výchozím nastavení vypnuté
  • nová vlastnost $linksAllowed – lze hromadně zakázat odkazy u frází
  • na každou frázi lze napojit vlastní handler phrase (viz příklad ‚Links‘)

blockQuoteModule

  • na hotový objekt lze napojit vlastní handler afterBlockquote
  • zapínání/vypínání syntaxe: $texy->allowed['blockquote']

scriptModule

  • podpora pro nový zápis, kromě {{fnc(arg, arg)} lze i {{fnc:arg, arg}}
  • volání {{texy(...)}} je rezervované
  • změna: handleru scriptModule->handler se jako první parametr předává $parser místo $texy (použijte $parser->texy)
  • zapínání/vypínání syntaxe: $texy->allowed['script']

tableModule

  • podpora pro escapovaní znaku |
  • na tabulku lze napojit vlastní handler afterTable
  • zapínání/vypínání syntaxe: $texy->allowed['table']

typographyModule

  • náhrada za quickCorrectModule
  • má mnohem lepší výstupy & doplněna internacionalizace
  • nová vlastnost $locale (výchozí ‚cs‘) nastavuje národní specifika
  • přímo podporované ještě en, fr, de, pl
  • vkládá nedělitelnou mezeru před poslední slovo nebo smajlík v odstavci (aby se nedostal samotný na nový řádek)
  • nová syntax: (EUR) → znak €
  • vylepšená syntax: -- = &ndash; a --- = &mdash;
  • vylepšená syntax: -----> dlouhé šipky
  • zapínání/vypínání syntaxe: $texy->allowed['typography']

htmlOutputModule

  • zajišťuje, že výstup z Texy je tzv. well-formed, opravuje neplatné křížení tagů atd.
  • výstup nyní kontroluje mnohem precizněji, zohledňuje $strictDTD
  • přepínač XHTML / HTML režimu $texy->htmlOutputModule->xhtml

TexyDOM a zděděné třídy

  • odstraněno, náhradou je TexyHtml (obdoba NHtml, viz https://phpfashion.com/…programatora)
  • vlastnost TexyHtml::$xhtml – přepínač mezi XHTML a HTML výstupem
  • ve všech handlerech se nyní operuje s elementy reprezentovanými tímto objektem, manipulace je tedy extrémně snadná

TexyConfigurator

  • konfiguruje existující Texy objekt
  • funkce TexyConfigurator::safeMode, TexyConfigurator::disableLinks & TexyConfigurator::disableImages

Verze 1.1b

1. 2. 2007

  • NEW: podporuje proměnné v odkazech
  • FIX: opraveny tabulky v TexyLongWordsModule & TexyQuickCorrectModule
  • FIX: oprava TexyFormatterModule (chybějící mezery v HTML blocks)
  • CHG: zobrazují se HTML komentáře

Verze 1.1

6. 6. 2006

Opraveno a vylepšeno zpracování entit:

  • FIX: Texy nyní ignoruje neznámé jmenné entity (tohle byla asi jediná věc, co mohla způsobit non-well-formed výstup, proto určitě na 1.1 upgradujte).
  • CHG: ve výstup jsou nyní veškeré entity posílány v numerické podobě &#**;, s výjimkou &amp; &quot; &lt; &gt;. Řeší to problémy s určitými RSS čtečkami apod.
  • FIX: opraveno chybné zpracování entit v toText()
  • CHG: toText() také odstraní &shy; a &nbsp; převádí na obyčejné mezery
  • upozornění: pokud nepoužíváte kódování UTF-8, tak toText() bude vyžadovat rozšíření iconv. V PHP 5 je dostupné standardně.

Verze 1.0 Final

18. 4. 2006

Rozšíření funkcí:

  • NEW: uživatelské atributy
  • CHG: povolené tagy dostupné přes $texy->allowedTags, mělo by v budoucnu nahradit $texy->htmlModule->allowed
  • NEW: nový režim zalamování řádků via $texy->mergeLines = false
  • INT: PHP5-like constructors

Fix pro 1.0rc5

22. 7. 2005

  • FIX: kompatibilita s divnou verzí PHP 4.3.11 a 4.4.0 (viz fórum)

Fix pro 1.0rc5

30. 5. 2005

  • CHG: <td></td> upraveno na <td>&nbsp;</td>

Verze 1.0rc5

25. 5. 2005

  • CHG: pozor: změny názvů pro callbacky:
    • $texy->blockModule->codeHandler namísto $texy->blockModule->userFunction
    • $texy->referenceHandler namísto $texy->userReferences
  • CHG: pozor: modifikátor vždy musí předcházet mezera (demo)
  • NEW: podpora Texy komentářů §§ (demo)
  • NEW: rychlé odkazy test :[url] (demo)
  • NEW: dokonalejší přeformátování HTML (demo, fórum)
  • NEW: vkládání externích dat jako {{ getPrice(produkt) }} (fórum) (sponzorem vývoje této funkce je společnost Internet Mall, a.s.)

Verze 1.0rc4

16. 3. 2005

  • NEW: nová vychytávka – blok /-- source
  • CHG: každý modul má zkratku (referenci) ve formátu $texy->xyzModule
  • CHG: aktivace UTF přes $texy->utf = true;
  • CHG: vylepšení tabulek
  • CHG: úprava syntaxe číslovaných seznamů:
    • je možnost syntaxi konfigurovat, např. $texy->listModule->allowed['*'] = false
    • upraven zápis v podobě 1. … 2. …, protože kolidoval se zápisem data na začátku řádku
    • upraven zápis v podobě I. … II. …, protože kolidoval s iniciálou na začátku řádku
    • buď použijte 1) ..... 2) ..... I) ..... II) ......
    • nebo „tečkovaný“ zápis, ale následovaný nejméně dvěma mezerami

Verze 1.0rc3

9. 3. 2005

  • NEW: podpora <caption>, demo
  • NEW: nový příklad „user syntax“ ukazuje, jak změnit nebo doplnit syntax
  • NEW: kompaktní jednosouborová verze, ideální pokud nechcete kód upravovat, ale jen používat na serveru
  • CHG: modul TexySmiliesModule se aktivuje přes $allowed = true;, viz příklad „smilies“
  • další drobné úpravy v chování $allowed u dalších modulů

Verze 1.0rc2

27. 2. 2005

  • NEW: metody safeMode() a trustMode()
  • NEW: modul TexyHtmlModule: – seznam všech povolených tagů určuje proměnná $allowed
  • CHG: modul TexyBlockModule:
    • ukázalo se, že blok /--notexy nevyhovuje všem požadavkům, takže je nahrazen bloky /--text a /--htmlDemo

Verze 1.0rc1

23. 2. 2005

  • NEW: obrázky podporují width & height atributy, včetně autodetekce nebo manuálního zadání. Syntax je [* image.gif 50x30 *]
  • NEW: kromě dynamických titulků lze použít i fixní. Další informace najdete v příkladu ‚Headings‘
  • FIX: podpora pro „dlouhé smajlíky“ jako :-)))))