parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Иногда пробельные символы причиняют неудобства...

Misha v.3 10.03.2003 18:57

Да, это так, и дело тут не только в парсере.

Если ты сделаешь html в котором будут пробелы как в результирующем html - то тоже будет расползаться изображение.

парсерная оптимизация не спасает, т.к. она оставляет один пробельный символ.

выход в подобных местах жертвовать красотой кода.

варианты:
1.
^menu.menu{^if($menu.id eq $currentmenu){
	$file[${menu.id}_s.png]
}{
	$file[${menu.id}.png]
}
$file[^image::measure[/i/$file]]
<a href="$menu.link">^file.html[
	$.border[0]
	$.alt[$menu.alt]
]</a>}
совсем ужасно

2. делаем так, чтобы переносы попали в атрибуты:
^menu.menu{<a
	href="$menu.link"
	^if($menu.id eq $currentmenu){
		$file[${menu.id}_s.png]
	}{
		$file[${menu.id}.png]
	}
	$file[^image::measure[/i/$file]]
	>^file.html[
		$.border[0]
		$.alt[$menu.alt]
]</a>}
в данном случае легче не становится.

2. разбиваем код на более мелкие методы:
@imageHref[element;file;current][file]
^if($element.id eq $current){
	$file[${element.id}_s.png]
}{
	$file[${element.id}.png]
}
$f[^image::measure[/i/$file]]
$result[<a href="$element.link">^f.html[
	$.border[0]
	$.alt[$element.alt]
]</a>]
#end @imageHref[]


@main[]
...
^menu.menu{^imageHref[$menu.fields;$file;$currentmenu]}
...
я обычно хожу этой тропой.