HTML syntax highlighter v C# .NET

C# .NET WPF HTML syntax highlighter v C# .NET

Aplikace postupně parsuje jednotlivé tagy. U těch se uchovává název tagu, signatura, atributy, tělo, rodič, pod tagy a typ tagu.

HtmlParser

Polovina aplikace je tvořena třídou HtmlParser, která dostane jako vstup čisté HTML (nebo cokoliv s podobnou syntaxí na bázi tagů) a vrací hlavní tag jakožto kořen, který má několik větví (většinou asi doctype a html). Kontroluji znak po znaku a když narazím na znak <, tak indikuji začátek tagu a postupně se parsuje. To znamená, že se zjistí signatura a typ tagu. Dále, když to není comment nebo tzv. plain text, tak se zjistí název tagu a jeho atributy (zda-li je má). Jestli je to typ párový, tak se zjistí tělo toho tagu (zjistí se konec tagu a vezme se vnitřek) a zavolá se znova parsovací metoda, protože na začátku těla je určitě nějaký tag.

Pozn.: I plain text je tady ve formě tagu, protože i takový HTML je validní.

<p>First line<br>Second line</p>

HtmlHighlighter

Druhá polovina aplikace je tvořena touto třídou, která formátuje výsledek parseru. Na začátku to řeší odsazení podle hloubky tagu. Pak se rozhoduje, jestli je to plain text, tak se jen přidá tělo toho tagu. Pak se zavolá metoda pro vložení signatury metody, ta si uvnitř zjistí jak má signatura vypadat, obarví atributy a jejich hodnoty a zvýrazní jméno tagu. Jestli je to tag párový, tak se zas volá metoda pro všechny její subtagy s hloubkou + 1. Až jsou všechny subtagy vybarvené, tak se přidá ukončovací tag.


Galerie

Program byl vytvořen v roce 2014.

 

Stáhnout

Staženo 50x (279.47 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (1)

Program pro vás napsal Jan Vargovský
Avatar
Autor se věnuje vývoji enterprise softwaru v .NETu.

Jak se ti líbí článek?
Celkem (3 hlasů) :
4.333334.333334.333334.33333 4.33333


 


Miniatura
Všechny články v sekci
Okenní aplikace v C# .NET WPF
Miniatura
Následující článek
Jazyk XAML v C# .NET WPF

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!