[Javascript, Ajax] Živý zvýrazňovač syntaxe

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod infomf 26. 10. 2010 19:18

Ahoj
mám textarea, do kterého uživatel píše PHP/HTML/JavaScript kód. Potřeboval bych aby se mu ihned zobrazovala syntaxe. Nejspíše na to bude vhodný nějaký Ajax, jQuery, ale nemůžu žádný příklad najít (vše je jen na text).

Nevíte o nějakém hotovém kódu?
Díky
infomf
Junior
Uživatelský avatar

Odeslat příspěvekod Nargon 26. 10. 2010 19:59

Myslim ze to neni mozne. TextArea neumoznuje obarvovat casti textu.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod gandor 26. 10. 2010 21:09

Pokial nepotrebujes podporu starsich prehliadacov (ak si dobre pamatam tak IE 6 to nepodporuje) tak mozes pouzit klasicky div len mu das atribut contentEditable="true"...
Resp. mozes sa pokusit spravit js simulaciu cez pouzitie onkeydown a rvat to do klasickeho HTML... Tam budes mat ale docela dost zabavy...
gandor
Mírně pokročilý

Odeslat příspěvekod karlos00x 26. 10. 2010 22:49

vim ze do ckeditoru je nejaky doplnek ktery neco podobnyho snad umi.
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod Václav M. 29. 10. 2010 21:02

Nargon píše:Myslim ze to neni mozne. TextArea neumoznuje obarvovat casti textu.

Jo, jo... musím souhlasit. V textarei opravdu není možné žádné zvýrazňování.

gandor píše:atribut contentEditable="true"...

O tomto atributu čtu poprvé.

V Kasandře jsem nic jako zvýrazňování syntaxe nepoužil (navíc nevidím smysl tohoto, ledaže by šlo o nějaké odborné diskusní forum - a to by měl vést někdo, kdo tomu alespoň trochu rozumí - tedy ne že bych já PHP a JS nějak zvlášť rozuměl, ale ...). Náhled obsahu stránek typu odstavec (což je obdoba klasických příspěvků v foru) mám však hozený přes AJAX (což není asi to pravé ořechové - obzvláště proto, že chybí vyladit zpracování phpBB značek) a text se mi simultánně objevuje v divu s patřičným ID.

Jako vzor pro zvýraznění syntaxe bych použil Texylu - kdyby na mne neměla poněkud složitý kód. Je tam jedna část, která text umí zvýraznit. Není to však v textarei, ale v náhledu. Ale snad se v tom někdo vyzná lépe.
Václav M.
Junior
Uživatelský avatar

Odeslat příspěvekod karlos00x 30. 10. 2010 07:28

http://cksource.com/forums/viewtopic.php?f=11&t=16915

ono to asi neobarvuje primo textarea, takze by se to asi muselo obejit pouzitim ckeditoru s jedinym tlacitkem "Source"
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Odeslat příspěvekod Vebloud 1. 11. 2010 18:58

Tak jsem tu zplodil řádně dlouhý elaborát a nakonec našel poněkud snadnější řešení http://codemirror.net/


Text v textaree rozhodně obarvit jde. Respektive lze udělat to, že na stránce něco bude vypadat jako textarea a bude v tom highlitnutej text. Viz. online html editory. Jako http://ckeditor.com/demo nebo http://tinymce.moxiecode.com/examples/full.php

Teď jde o to co se má poslat na server a co zobrazit uživateli. Řešením by mohla být skrytá textarea, kam by se kopíroval čistý plaintext, případně něco jako strip tags na straně serveru.

Syntax javascriptových syntax highliterů je na webu spousta (např. http://www.webdesignbooth.com/9-useful- ... g-scripts/), respektive http://www.google.cz/search?hl=en&clien ... er&spell=1 jde "jen" o to to vhodně zkombinovat dohromady.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
VIP uživatel
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků