Работа с контентом

Для работы с контентом, пользователи должны изучить Markup-разметку. Официальная русскоязычная документация на эту тему достаточно проста, полна и актуальна, поэтому в этой заметке собраны только некоторые не очевидные особенности работы с разметкой. Пользователям рекомендуется ознакомиться с ней после прочтения основной документации и самостоятельного первичного практического применения.

Особенности применения (:include:) по якорям.

Командой (:include:) можно включать в контент текущей страницы другие страницы как целиком, так и построчно. В этом случае области включения ограничиваются строками с якорями, например: [[#childTemplate]][[#childTemplateend]].

Обратите внимание, что первый якорь тоже будет включен в страницу и сам по себе сгенерирует невидимую ссылку <a>, которую движок обернет в <p>, имеющий ненулевую высоту. Поэтому, якорь, оставленный на пустой строке создаст ненужный отступ.

Правило: не размещайте невидимые якоря на пустых строках, прицепляйте их к строкам с контентом.

Так неправильно:

(:if false:)
[[#childTemplate]]
* Пункт Меню
* ...
* 
[[#childTemplateend]]
(:ifend:)

Внимание, так тоже неправильно:

(:if false:)
(:notitle:)(:nobread:)(:noaside:)[[#childTemplate]]
* Пункт Меню
* ...
* 
[[#childTemplateend]]
(:ifend:)

А вот так правильно:

(:if false:)
* Пункт Меню[[#childTemplate]]
* ...
* 
(:notitle:)(:nobread:)(:noaside:)
[[#childTemplateend]]
(:ifend:)

Особенности применения %hlt% и %highlight% -разметки

Подсветка синтаксиса активируется следующими способами:

Inline-командой прямо перед вызовом блока с кодом:
%hlt php%[@
  function SDVA(&$var,$val)
    { foreach($val as $k=>$v) if (!isset($var[$k])) $var[$k]=$v; }
  function IsEnabled(&$var,$f=0)
    { return (isset($var)) ? $var : $f; }
@]
  function SDVA(&$var,$val)
    { foreach($val as $k=>$v) if (!isset($var[$k])) $var[$k]=$v; }
  function IsEnabled(&$var,$f=0)
    { return (isset($var)) ? $var : $f; }

Внимание: имейте в виду, в этом случае в html-разметке прямо перед блоком останется невидимый служебный <span>.

Окружив код в блок:
>>highlight css<<
  /* These adjust the size and spacing of heading elements */
  h1, h2, h3, h4, h5, h6 { margin:1.0em 0 .6em 0; }
  h1, h2, h3, h6 { font-weight:normal; }
  h4, h5 { font-weight:bold; }
>><<
  /* These adjust the size and spacing of heading elements */
  h1, h2, h3, h4, h5, h6 { margin:1.0em 0 .6em 0; }
  h1, h2, h3, h6 { font-weight:normal; }
  h4, h5 { font-weight:bold; }

Внимание: надо понимать, что внутри блока подсветится только то, что оформлено в виде кода. В данном случае это обеспечено пробелами в начале строк. Комбинируйте первый и второй подход, чтобы гарантированно избежать проблем.

Иллюстация на примере:

Одна строчка без пробела, и всё сломалось:
>>highlight css<<
  /* These adjust the size and spacing of heading elements */
  h1, h2, h3, h4, h5, h6 { margin:1.0em 0 .6em 0; }
h1, h2, h3, h6 { font-weight:normal; }
  h4, h5 { font-weight:bold; }
>><<
  /* These adjust the size and spacing of heading elements */
  h1, h2, h3, h4, h5, h6 { margin:1.0em 0 .6em 0; }

h1, h2, h3, h6 { font-weight:normal; }

  h4, h5 { font-weight:bold; }
Чтобы этого избежать, пометьте код явно:
>>highlight css<<
[@
  /* These adjust the size and spacing of heading elements */
  h1, h2, h3, h4, h5, h6 { margin:1.0em 0 .6em 0; }
h1, h2, h3, h6 { font-weight:normal; }
  h4, h5 { font-weight:bold; }
>><<
@]
  /* These adjust the size and spacing of heading elements */
  h1, h2, h3, h4, h5, h6 { margin:1.0em 0 .6em 0; }
h1, h2, h3, h6 { font-weight:normal; }
  h4, h5 { font-weight:bold; }
>><<

Работа с таблицами

По-умолчанию в Rext $SimpleTableDefaultClassName = table, что совместимо с Bootstrap. В результате с одной стороны, все таблицы по-умолчанию аккуратные и красивенькие. С другой стороны, в случае ручного добавления к таблице какого-либо дополнительного класса, если вы хотите сохранить Bootstrap-верстку, следует также добавлять также и класс table, например: class='table sortable'

Синтаксис для оформления FAQ

>>faq<<
Q: Каков вопрос?
A: Таков и ответ!
>><<

Каков вопрос?

Таков и ответ!

Имейте в виду следующее:

  • использование окружающего >>faq<< необходимо для оформления (жирный вопрос, отступы в ответе);
  • Q: также необходимо для оформления, задает дополнительный класс (можно использовать интереснее, см. ссылку ниже);
  • хотя A: в рамках Rext можно вообще не использовать, не рекомендуется так делать.

Статья по теме: Пара CSS-примеров оформления FAQ'ов

Связанные статьи: