Редактор хабра воспринимает переносы в исходном тексте именно как переносы, т.е. в HTML они будут выглядеть как
<br>
А все доступные редакторы для modx в режиме редактирования не воспринимают ссылки и картинки, и текст будет выглядеть как в редакторе:
Под катом вы найдете: макро-фотографии экрана, разборка, тест аккумулятора, камеры, опыт использования. <a href="https://picasaweb.google.com/lh/photo/DWXbDrGSQrrqY2TJM_UhydMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-vrs2uZgIzqQ/UJPFgBkWr-I/AAAAAAAAKxg/FS0DcyCkW0w/s640/Samsung%2520Note%2520II-001.jpg" height="107" width="640" /></a> <habrаcut text="У вас точно есть полчаса на чтение?" /> <ul> <li><a href="#pack">Упаковка и комплектация</a></li> <li><a href="#view">Качество сборки и внешний вид</a></li> <li><a href="#screen">Экран</a></li> <li><a href="#inside">Внутренности, моды и ремонтопригодность</a></li>
А если вставить текст в режиме редактирования — то он превратится в текст без переносов:
Сначала я хотел сделать из них часы, идущие в обратную сторону, но ошибся в задержках и получил звук "Зз-Зз-Зз-ЗЗЗЗЗ", который показался мне интересным.Дальше были выходные и неспешное ковыряние в коде, который претерпел несколько изменений, был потерян и переписан для MSP430 и Wiring вместо BASCOM(потому что мне было ленивее набирать программу второй раз, нежели написать ее на другом языке), и в итоге принял такой вид:ОСТОРОЖНО! Быдлокод!<source lang="cpp"> #include <Servo.h> //Подключаем бибилотекуServo myservo1;//Определяем именаServo myservo2; int x = 0; //Разные еременные int y = 0; int z = 0; int w = 0; int g = 0; int h = 0; int q = 0;
Что тоже неудобно. Нет, можно было конечно настроить замену в любом текстовом редакторе — /n на br, но проблема в том, что тогда мы получим две разные версии текста, что обернется проблемами с редактированием. Пришлось сделать заказать фрилансеру велосипед.
Плагин для автоматической замены /n на br при сохранении текста и обратной замены при его редактировании:
global $content; $e = &$modx->Event; switch ($e->name) { case "OnDocFormPrerender": $content["content"]=trim(preg_replace("/\<br\>/i","\r\n",$content["content"])); //Замена при открытии на текстовые переносы break; case "OnBeforeDocFormSave": $content=preg_replace("/(\\\\r\\\\n)/","<br>",$content); //Замена при сохранении $content=preg_replace("/(\\\\n)/","<br>",$content); $content=preg_replace("/(\\\\r)/","<br>",$content); //Совместимость для разных систем $content=preg_replace("/\<\/li\>\s*(\<br\>)+\s*\<li/i","</li>\\\\r\\\\n<li",$content); $content=preg_replace("/\<ul\>\s*(\<br\>)+\s*\<li/i","<ul>\\\\r\\\\n<li",$content); $content=preg_replace("/\<\/li\>\s*(\<br\>)+\s*\<\/ul/i","</li>\\\\r\\\\n</ul",$content); $content=preg_replace("/\s*(\<br\>)+\s*\<ul/i","\\\\r\\\\n<ul",$content); $content=preg_replace("/\<\/ul\>\s*(\<br\>)+\s*/i","</ul>\\\\r\\\\n",$content);//Устранение двойного переноса в нумерованных списках break; default : return; break; }
Установка обычна — Управление элементами — плагины — создать плагин.
Копируем код в поле, потом переходим на вкладку системные события и отмечаем OnBeforeDocFormSave и OnDocFormPrerender — запускать при открытии и сохранении документа.
ссылка на оригинал статьи http://habrahabr.ru/post/157187/
Добавить комментарий