Alternativní zápis komentářů v Latte
- duke
- Člen | 650
Občas se stane, že potřebuji zakomentovat nějaký kus kódu v šabloně,
což se komplikuje, pokud tento kus kódu obsahuje Latte komentáře
{* ... *}
. Nejde pak pro tento účel jednoduše celý kus obalit
těmito komentářovými tagy. Myslím, že by nebylo špatné, kdyby proto
existoval i alternativní způsob zápisu komentářů pro tento účel.
Napadá mě např. {*** ... ***}
. Variantu se dvěma hvězdičkami
záměrně nenavrhuji, neboť někdo může používat zápis:
{**
* Komentář
*}
- pekelnik
- Člen | 462
Kdyz uz jsme ale u toho nebylo by mozna od veci povolit v Latte „standardni“ nebo snad lepe receno „bezne“ druhy komentaru.
Latte
<div n:block="content">
{*<a n:href="delete">Delete</a>*}
</div>
Shell
<div n:block="content">
# <a n:href="delete">Delete</a>
</div>
PHP
<div n:block="content">
// <a n:href="delete">Delete</a>
</div>
Vyhody:
- je jasny o co jde
- podpora pro uzivatele kteri jsou na takove komentare zvykli
- jednodussi komentovani – komentare se nemusi ukoncovat
Je moznost kombinovat ruzne druhy komentaru resp. pribyly by dva nove druhy radkovych komentaru s tim ze stavajici blokovy komentar by zustal zachovan.
Editoval pekelnik (14. 5. 2012 21:55)
- hAssassin
- Člen | 293
nevim, ale podle me je to docela blbost, michat PHP komentare s Latte komentarema. A trochu nechapu vubec pointu toho prvniho prizpevku: jakoze aby bylo mozny zakomentovat kus kodu, ktery uz obsahuje komentar? jinymi slovy aby bylo mozny komenty do sebe vnorovat? Jo, to je sice hezky a obcas nadavam ze mi to chybi i jinde, ale jelikoz to prave jinde taky neni (PHP, HTML, Cecko, apod.) tak bych to taky moc nemichal.
Jo a co by se stalo kdybych mel komentar v komentari a chtel to cely zabalit
do dalsiho komentare? Pak bych pouzil {**** ... ****}
? Atd, cili
bych mel casem treba 10 hvezdicek z kazdy strany?
- jtousek
- Člen | 951
@hAssassin: <nadsázka> Kdepak, potom bys psal {*10* … *10*}. ;-) </nadsázka>
Vzhledem k tomu že v HTML/CSS/JS/PHP nic takového není, nezaváděl bych to ani v Latte.
Pokud jde o PHP komentáře v šablonách tak do Latte bych to určitě nedával, ale pokud to chceš, myslím že by nebyl nijak velký problém napsat si na to vlastní filter a spouštět jej ještě před Latte.
Editoval jtousek (14. 5. 2012 21:57)
- hAssassin
- Člen | 293
ano, radkove komentare mi v latte chybi, to sem v predchozim prizpevku
zapomnel zminit. ale neopicil bych se po php ale radkovy komentar by mel
vychazet z latte, cili neco jako {/
nebo {//
do konce
radku pokud by to bylo realizovatelny (bez uzaviraci zavorky) bych taky
uvital.
Spis mi slo o to zanorovani komentaru, to by se dalo realne udelat tak, ze
by proste kazdy oteviraci {*
se pripocital a kazdy uzaviraci
*}
odpocital a dokud by ten citac nebyl nula, bylo by to povazovany
za koment a ignorovalo se to, ale zavadet nejaky {*** ***}
mi
prijde blbost.
EDIT: redhead> ano, presne tak to myslim, ale byl sem pomalejsi…
Editoval hAssassin (14. 5. 2012 22:13)
- duke
- Člen | 650
Řádkové komentáře by toto částečně řešily. Dokážu si představit např.:
{//} řádkový komentář
Redheadovo řešení by asi také šlo použít, ale nevýhoda je v možné
nepřehlednosti, pokud nepoužíváme nějaký lepší editor s dokonalým
syntaktickým obarvovačem, který správně obarví celý komentář.
Mnou navrhované řešení zase není obecné (jak správně uvedl hAssassin).
Obecnější by mohlo vypadat takto: {*XYZ ... XYZ*}
kde XYZ je
kvazi-libovolný řetězec.
Editoval duke (14. 5. 2012 23:23)
- jtousek
- Člen | 951
pekelnik napsal(a):
jtousek napsal(a):
Vzhledem k tomu že v HTML/CSS/JS/PHP nic takového není, nezaváděl bych to ani v Latte.
Radkove komentare nema z vyse zminenych pouze HTML ;) naprosta vetsina ostatnich jazyku je naopak podporuje…
To jsme se špatně pochopili, měl jsem na mysli ty „vynořené“ komentáře.
Pokud jde o řádkové tak na to jsem reagoval až potom – „napiš si vlastní filtr“.
- pekelnik
- Člen | 462
ad {//
apod.:
Latte bylo jiz davno prejmenovano z CurlyBracketsFilter
protoze
proste curly brackets prerostlo a nyni obsahuje mnohe dalsi funkce jako
n:makra atd.
Nevidim duvod bezne pouzivanou a zazitou syntax # comment...
nebo // comment
nejak kurlit… ;)
Editoval pekelnik (15. 5. 2012 4:25)
- hAssassin
- Člen | 293
pekelnik> to je sice pravda, ale tady je problem, ze latte je sablonovaci
system primarne pro html a tam neni zadna syntaxe jako treba v php. takze kdyz
v html napisu normalne // comment
nemusi to nutne znamenat ze chci
komentar ale treba jen fakt vypisuju tuhle sekvenci znaku. ja vim ze je to to
sami jako pro {// comment
(taky to je proste sekvence) ale ta uz
jasne rika ze jde o neco co patri k latte prave diky {
.
- redhead
- Člen | 1313
voda napsal:
Nechápu. Uveď lepší příklad, tady totiž onoho návrhu ani nevyužíváš, a obarvovač tady na fóru reaguje beze změny a správně. V tvém příkladě je zanořený komentář až na druhém řádku, avšak není správně ukončen, takže by správně měl zakomentovat od 2. řádku dál celý dokument.
V mém návrhu, například
{*
{if true}
{* foo *}
{/if}
*}
zakomentuje celý obsah mezi 1. a 5. řádkem, protože uvnitř si počítá zanoření a komentář v ifu je správně zanořen (ukončen).
ad obarvovače: vaše smůla, máte používat NetBeans a náš plugin ;) :D
- pekelnik
- Člen | 462
Takze si to shrneme:
Puvodni feature request navrhuje zavest dalsi typ blokovych
komentaru {*** comment ***}
.
S tim je potiz, protoze to neni univerzalni. Co kdyz budu chtit zakometovat po treti neco co uz obsahuje zakomentovane kusy kodu? Jsem tam kde jsem byl.
Ja navrhuji naopak implementovat radkove komentare.
At uz jako # comment
nebo // comment
.
Hlavni vyhodu radkovych komentaru oproti blokovym vidim v tom ze je lze
libovolne „zanorovat“ – nikdy nenastane problem s (ne)ukoncenym
komentarem. Take IDE maji vetsinou vestavenou podporu pro radkove komentare na
vyssi urovni nez u tech blokovych. Videl jsem automatickou podporu blokovych
komentaru, ale problem nastava pri odkomentovani. Na takovou vec (spravne znovu
zakomentovani vnitrnich komentaru) by totiz byla potreba vestecka koule.
Ale v HTML nejsou! Ano je to tak! Latte komentare v HTML nejsou ;)
Ja chci zakomentovat kus latte sablony a ne HTML. Od toho mame HTML
komentar <!-- comment -->
Editoval pekelnik (16. 5. 2012 12:39)
- David Grudl
- Nette Core | 8218
pekelnik napsal(a):
At uz jako
# comment
nebo// comment
.
To by byl docela problém napsat do kódu URL
https://nette.org/#features
- hAssassin
- Člen | 293
ja vedel ze s timhle navrhovanym bude nekde problem, presne jak jsem psal
vyse (jen me tenhle trivialni pripad nenapad :-) jde o to ze treba v PHP jsou
specialni konstrukce jako retezce v "" ale v HTML nic takovy neni a text lze
psat prakticky kamkoliv. Proto by se mi spis libilo vyse navrhony
{/
nebo {//
.
- Vojtěch Dobeš
- Gold Partner | 1316
Když se vrátím k těm úplně prvním příkladům, tak Latte určitý druh řádkového komentáře podporuje. Je to multifunkční, podporuje to zároveň i víceřádkové… ale funguje to jen s HTML elementy, na obyč text je to krátké.
<div n:block="content">
<a n:if=0 n:href="delete">Delete</a>
</div>
- Filip Procházka
- Moderator | 4668
Za mě – jakékoliv řádkové komentáře v Latte jsou zbytečné. Ani HTML je nemá ;) (nevím o nich)
- duke
- Člen | 650
pekelnik napsal(a):
Takze si to shrneme:
Puvodni feature request navrhuje zavest dalsi typ blokovych komentaru
{*** comment ***}
.S tim je potiz, protoze to neni univerzalni. Co kdyz budu chtit zakometovat po treti neco co uz obsahuje zakomentovane kusy kodu? Jsem tam kde jsem byl.
Na neuniverzálnost jsem již reagoval návrhem {*XYZ ... XYZ*}
kde XYZ je kvazi-libovolný řetězec, na což zatím nikdo nereagoval. Podobné
řešení se – jak jistě víte – používá v PHP u heredoc syntaxe pro zápis řetězců. V praxi by to pak
mohlo vypadat např. takto:
{*popisek
{*~~
{*--
Lorem Ipsum {* comment 1 *}
--*}
~~*}
popisek*}
A nějaké jednoduché přepínání, pokud by o to byl enormní zájem, by šlo také jistě vymyslet, např. pro to rezervovat nějaký symbol. Napadá mě vykřičník (který zároveň upozorňuje), tj. např.:
{*// zapnutý komentář //*}
{*//! vypnutý komentář //*}
Řádkové komentáře mi osobně zas až tak nechybí. Jde jen o to, že částečně řeší výše popsaný problém, takže pokud budou, je to lepší než nic.
- Patrik Votoček
- Člen | 2221
Za mě jde o zbytečnost. Pokud potřebuju zakomentovat něco co samo
obsahuje komentář tak prostě u původního komentáře změním
*}
na * }
a je po problému.