LINUX.ORG.RU

Про режимы


0

2

Сейчас такая ерунда, что LORCode (LC) и TeX paragraphs (TP) отличаются только тегом code и цитированием стрелочкой соответственно. А User line breaks (ULB) и TP, учетом всех переводов строк и разбором абзацев двойных переводов соответственно. Поправьте меня, если я где-то заблуждаюсь.

Мне не кажется, что игнорирование одинарных переводов строк может быть удобно (кому-нибудь удобно?), в то же время ULB не разбирает абзацы по двойным переводам, что не есть хорошо (хотя по-дефолту выглядит одинаково плохо, я у себя пользовательским CSS уменьшил отступы абзацев, что еще давно предлал сделать нативно, правда это уже другой вопрос).

Внедрить code в TP и ULB так сложно? А внедрить разбор цитирования стрелочкой в LC тоже сложно? Если сделать то или то, LC от TP отличаться перестанет, а значит станет проще и один из них окажется не нужен.

Я вот использую ULB, но когда нужны абзацы или code, приходится переключаться на TP/LC и к одинарным переводам ставить br-ки, что неудобно. Да дело даже не в том, что неудобно, а в том, что то переключить режим забываешь, то еще что... Так что если в TP внедрить разбор одинарных переводов, ULB остается не нужен. А если TP и LC объеденены, как сказанно выше, то остается один режим, всегда и всем (наверное?) удобный.

Сейчас все работает так: парсеры TP и ULB работают при постинге и на выходе выдают LC. В базе хранится только LC без признака исходного формата постинга. Т.е. фактически они не парсеры, а препроцессоры (и их, кстати, можно реализовать и на client side)

Парсер LC работает в момент вывода.

Чтобы добавить code в TP/ULB, нужно научиться понимать LC в момент обработки TP/ULB, чтобы не портить код цитатами и переносами строк. Это кажется сложным, хотя, возможно, hizel может что-то придумать.

maxcom ★★★★★
()

Нужно оставить только LORCODE. В настройки добавить чекбокс «Включить цитирование по '>'». Эта настройка будет окружать текст между «\n>» и «\n» тегом [code][/code] (регэексп не такой сложный, но я не осилил, да голова не варит). По-моему, идея правильная.

CYB3R ★★★★★
()
Ответ на: комментарий от maxcom
function codesplit ($str) {
	$a = preg_split ("/\[code\]/gi", $str, 2);
	return array_merge ($a[0], preg_split ("/\[\/code\]/gi", $a[1], 2));
}

Ну и разбираем только первую ($str[0]) и третью часть ($str[2]).
//яву не знаю

moscwich
() автор топика
Ответ на: комментарий от moscwich

Быдлокодер я :)

if (preg_match ("/^(.*)\n?\[code\]\n?(.*)\n?\[\/code\]\n?(.*)$/i", $_POST['msg'], $arr)) {
	//разбираем только $arr[1] и $arr[3]...
}
Как-то так. И, да, в том быдлокодерском случае модификатор g таки ненужен.

moscwich
() автор топика
20 апреля 2012 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.