Порядок формирования секции Содержание для файлов статьи

В самом простом случае секция .s статьи может включать только один текст, не содержащий управляющих инструкций. В этом случае при формировании html-страницы каждое нажатие на клавишу Enter в конце строки будет интерпретироваться как переход к новой строке [br]. Первая пустая строка считается завершением очередного абзаца. Каждая последующая пустая строка - переход на новую строку [br]. Как только появилась первая непустая строка - начинается новый абзац. И так до конца секции .s.
Все основные символы разметки текста должны задаваться строго с первой позиции новой строки. Поэтому далее они называются команды первой позиции или просто команды.

Заголовки

Заголовки и подзаголовки начинаются с команды *. Один символ * - заголовок первого уровня, ** - второго, *** - третьего. Больше пока не предусмотрено. Далее должен следовать текст заголовка. Само собой команды в заголовок не включаются. К заголовкам применяются классы z1, z2 и z3, определённые в таблице стилей сайта его администратором. Система предполагает, что они выравнены влево. Поэтому для центрирования заголовков используется команда :, использующая те же стили + выравнивание по центру.
Разметка:
*Заголовок первого уровня
**Заголовок второго уровня
***Заголовок третьего уровня
Вывод:

Заголовок первого уровня

Заголовок второго уровня

Заголовок третьего уровня

Разметка:
:Центрированный заголовок первого уровня
::Центрированный заголовок второго уровня
:::Центрированный заголовок третьего уровня
Вывод:

Центрированный заголовок первого уровня

Центрированный заголовок второго уровня

Центрированный заголовок третьего уровня

Перечисления

Для оформления перечислений используются команды - и +. Команда - (минус) формирует ненумерованные перечисления, а команда + (плюс) нумерованные. Допустимо до трёх уровней вложения каждого из типов перечислений. При генерации кода [ul] и [ol] не используются. Отображение регулируется стилями ul1, ul2 и ul3 для команды (минус) и ol1, ol2 и ol3 для команды + (плюс). Нумерованные списки ведутся с автоматической вложенной нумерацией (1, 2, 2.1, 2.2, 2.2.1, 2.2.2).
Разметка:
+Текст первого уровня
+Текст первого уровня
++Текст второго уровня
++Текст второго уровня
+++Текст третьего уровня
+++Текст третьего уровня
++Текст второго уровня
+++Текст третьего уровня
+++Текст третьего уровня
+Текст первого уровня
Вывод:
1. Текст первого уровня
2. Текст первого уровня
2.1 Текст второго уровня
2.2 Текст второго уровня
2.2.1 Текст третьего уровня
2.2.2 Текст третьего уровня
2.3 Текст второго уровня
2.3.1 Текст третьего уровня
2.3.2 Текст третьего уровня
3. Текст первого уровня
Особенностью одиночной команды - (минус) является то, что если после неё нет значимых символов, то она формирует разделительную линию [hr].
Разметка:
-
Вывод:

Выравнивание строк

Команда > выводит следующий за ней текст с правым выравниванием. Если в конце строки найден символ <, то строка центрируется.
Разметка:
>Строка выровнена вправо
>Строка выровнена центру<
Вывод:
Строка выровнена вправо
Строка выровнена центру

Режим стихов

Команда " (двойная кавычка) переключает вывод на режим стихов и обратно. Проявление режима стихов состоит в том, что весь блок последующих строк выравнивается по центру.
Разметка:
Проза, проза, проза, а далее стихи:
"
В огороде картошку в землицы суглинок зарою
И навоза добротного в каждый закоп положу
И молитву свою к урожаю большому настрою,
А иначе, что жрать до весны буду в новом году.
В сером ватнике явится в гости весёлая Маня
Заскорузлой рукой у неё я подол задеру.
Пусть наездницей сядет, забыв про всех буден печали,
И до радости стонов доскачет, а я помогу.
"
Опять проза, проза, проза
Вывод:
Проза, проза, проза, а далее стихи:
В огороде картошку в землицы суглинок зарою
И навоза добротного в каждый закоп положу
И молитву свою к урожаю большому настрою,
А иначе, что жрать до весны буду в новом году.

В сером ватнике явится в гости весёлая Маня
Заскорузлой рукой у неё я подол задеру.
Пусть наездницей сядет, забыв про всех буден печали,
И до радости стонов доскачет, а я помогу.
Опять проза, проза, проза

Режим таблицы

Команда # переключает вывод на режим вывода таблицы и обратно. В режиме таблицы все последующие строки интерпретируются как отдельные строки таблицы. Ячейки в строке разделяются символом ; (точка с запятой). Таблица выравнивается по центру. Строковые значения выравниваются влево, числовые - вправо.
Разметка:
#
Первая строка;10;20;30;Мало
Вторая строка;100;200;300;Уже ничего
Третья строка;1000;2000;3000;Отлично
#
Вывод:
Первая строка
10
20
30
Мало
Вторая строка
100
200
300
Уже ничего
Третья строка
1 000
2 000
3 000
Отлично

Вставка медиаобъектов

Команда & позволяет вставлять в страницу медиа-объект (картинку, аудио- или видеофайл). Команда имеет следующий формат:
&[>|<]file[^x] [text]
Опции, заданные в квадратных скобках являются необязательными. В простейшем случае указывается только файл.
Разметка:
&db/photo/vs/2012-05-12_12-58-49.jpg
Вывод:
В данном случае картинка будет сформатирована так, чтобы занимать 100% контейнера или будет представлена в оригинальном размере, если её ширина меньше контейнера.
С помощью необязательной опции ^ изображение можно "подрезать" по ширине с соблюдением пропорций по абсолютной величине или в процентах.
Разметка:
&db/photo/vs/2012-05-12_12-58-49.jpg^150
&db/photo/vs/2012-05-12_12-58-49.jpg^50%
Вывод:
С помощью необязательных опций > или < можно "заставить" изображение "плавать" справа или слева от последующего текста.
Разметка:
&>db/photo/vs/2012-05-12_12-58-49.jpg^150
Боян же, братие, не десять соколов на стадо лебедей пущаше, а свои вещие перста на живая струны воскладаше. Они же сами князям славу рокотаху
&<db/photo/vs/2012-05-12_12-58-49.jpg^150
Боян же, братие, не десять соколов на стадо лебедей пущаше, а свои вещие перста на живая струны воскладаше. Они же сами князям славу рокотаху
Вывод:
Боян же, братие, не десять соколов на стадо лебедей пущаше, а свои вещие перста на живая струны воскладаше. Они же сами князям славу рокотаху
Боян же, братие, не десять соколов на стадо лебедей пущаше, а свои вещие перста на живая струны воскладаше. Они же сами князям славу рокотаху
Для смартфонов, в режимах стихов и таблиц опции < и > игнорируются и выравнивание объекта всегда производится по центру контейнера.
К медиафайлу можно добавить подпись.
Разметка:
&db/photo/vs/2012-05-12_12-58-49.jpg^50% 2012-05-12. Ош
Вывод:
2012-05-12. Ош
Разметка:
&<db/photo/vs/2012-05-12_12-58-49.jpg^150 2012-05-12. Ош
Вывод:
2012-05-12. Ош
Система пытается определить тип файла и, если обнаруживает, что это не изображение, а аудио- или видеофайл, то генерирует соответствующие конструкции для их представления на html-странице.
Разметка:
&mus/Vladimir_Vysockij/Beg_inohodca-2.mp3
&db/photo/vs/2021-08-17_16-25-22.mp4^30%
Вывод:
В данной версии определение типа файла осуществляется только по его расширению:
mp3, ogg - аудиофайл;
mp4, ogv, webm - видеофайл;
всё остальное интерпретируется как изображение.
Понятно, что это работает не всегда.

Специальные режимы вывода текста

Команда ; обеспечивает пропуск строки при обработке текста статьи. Так можно, например, вставить комментарий к последующим строкам, который будет виден только при просмотре кода статьи.
Команда / переключает режим прямого вывода строк в том виде, как они записаны. В режиме прямого вывода каждая строка выводится в том виде как есть без всяких преобразований с последующим переводом строки. При этом в ней заменяются html-сущности на их аббревиатуры. За счёт этого можно выводить на экран html-конструкции в том виде, в котором они записаны в тексте. Именно с помощью режима прямого вывода здесь описаны все блоки примеров в части "Разметка".
Разметка:
 /
<p class='ot'>Текст абзаца<br><hr>
А далее - вручную размеченная таблица
<table class='tb1'>...</table>
 /
Вывод:
<p class='ot'>Текст абзаца<br><hr>
А далее - вручную размеченная таблица
<table class='tb1'>...</table>

Вставка html-кода

Использование перечисленных выше простых команд существенно облегчает ввод и редактирование текстов статей, поскольку множество простых оформительских возможностей реализуются без необходимости написания трёхэтажных html-конструкций. Однако, если требуется какое-то особое оформление, то в текст статьи можно включить какой-угодно html/css-код.
Команда \ переключает режим вывода html-кода. В отличие от режима прямого вывода, здесь все строки выводятся в точности как есть. Таким способом можно включать в текст произвольные фрагменты html-кода.
Разметка:
 \
<div style="text-align: center; font-size: 200%; font-weight: bold; margin: 10px;">
Виртуальное издательство<a href='?~=vsf&file=shurem/obo_mne.s' target=_blank >
 <nobr>Евгения Шуремова</nobr></a></div>
<div style="font-size: 170%; color: green; text-align: center; font-weight: bold; margin-bottom: 10px; ">
Богат не тот, у кого много, <nobr>а тот, кому достаточно</nobr>
</div>
 \
Вывод:
Виртуальное издательство Евгения Шуремова
Богат не тот, у кого много, а тот, кому достаточно
Html-коды можно использовать также внутри строки для встраивания в неё необходимых эффектов. Но ряде случаев есть возможность записать их проще, с помощью удобнее набираемых с клавиатуры спецтегов, преобразуемых при обработке в их html-аналоги.
Разметка:
Обычный шрифт - ''жирный шрифт'/ - Обычный шрифт - ``курсив`/
Вывод:
Обычный шрифт - жирный шрифт - Обычный шрифт - курсив

Вычисления и подстановки в тексте

В тексте можно использовать так называемые вычисляемые слова. Если слово предложения начинается с символа = (равно), то система пытается проанализировать являются ли следующие за ним символы правильным выражением и пытается его вычислить. Если вычислить удаётся, то слово заменяется на результат вычисления. Если нет - то выводится без изменений. Если вычисляемое слово последним символом имеет знак препинания (,;.!?), то при вычислении слова он не считается частью выражения.
Разметка:
Значение выражения 2*sin(1) равно =2*sin(1), а значение выражения sin(10)*sin(10)+cos(10)*cos(10) очевидным образом равно =sin(10)*sin(10)+cos(10)*cos(10). Но вот значение выражения cosinus(x) будет равно =cosinus(x) , поскольку функция cosinus не определена.
Вывод:
Значение выражения 2*sin(1) равно 1.6829419696158, а значение выражения sin(10)*sin(10)+cos(10)*cos(10) очевидным образом равно 1. Но вот значение выражения cosinus(x) будет равно =cosinus(x), поскольку функция cosinus в системе не определена.
Другим типом вычисляемых слов являются ссылки на другие статьи и книги. Если слово начинается с символа !, то система пытается выяснить не является ли продолжение слова именем какого-либо файла статьи или книги. Если такая статья или книга имеются, то вместо слова в текст вставляется название публикации в виде ссылки на неё. Если такого файла нет, то слово выводится без изменения.
Разметка:
Если кому интересно какие книги написал разработчик этой системы, то это легко выяснить по ссылке !shurem/ya/publ.s. А вот ссылка !shurem/ya/mus.s останется без изменения, поскольку такого файла не существует.
Вывод:
Если кому интересно какие книги написал разработчик этой системы, то это легко выяснить по ссылке Сведения о публикациях. А вот ссылка !shurem/ya/mus.s останется без изменения, поскольку такого файла не существует.
Помимо вычисляемых слов в тексте статьи можно использовать также поля переменных данных. Они работают примерно также, как и вычисляемые слова, но предоставляют более широкие возможности. Поэтому им посвящёна отдельная статья.
Специальным типом полей переменных данных является команда @, обеспечивающая вызов той или иной встроенной функции. Обычно она используется для включения в текст статьи вывода, генерируемого тем или иным расширением системы. Подробнее эта команда рассматривается в статьях документации, посвященных расширениям системы .

Вычисления и подстановки в таблице

Вычисляемые слова и поля переменных данных можно использовать также и в таблицах. Если содержимое ячейки распознаётся как формула, то производится "вычисление" слов в ячейке по тем же правилам, что и в обычном тексте.
Если результатом вычислений является число, то оно округляется и выравнивается вправо.
Разметка:
 #
Вычисляем синусы и ссылаемся на документацию;=sin(1);=sin(2);!dok/f1.s
Вычисляем корни и ссылаемся на документацию;=sqrt(4);=sqrt(9);!dok/la.s
 #
Вывод:
Вычисляем синусы и ссылаемся на документацию
0,841
0,909
Исследование функции одной переменной
Вычисляем корни и ссылаемся на документацию
2
3
Линейная алгебра

В ячейках таблицы можно выводить медиаобъекты. Для этого в соответствующей ячейке нужно задать рассмотренную ранее команду &, формируемую по тем же принципам. Однако, следует учитывать что опции < и > будут проигнорированы.
Разметка:
 #
Выводим картинку;&db/photo/vs/2012-05-12_12-58-49.jpg;Ош за спиной
Выводим аудио;&mus/Vladimir_Vysockij/Beg_inohodca-2.mp3;
Выводим видео;&db/photo/vs/2021-08-17_16-25-22.mp4^30%;
 #
Вывод:
Выводим картинку
Ош за спиной
Выводим аудио
Выводим видео

Переменные

Команда ~ позволяет задать значение переменной. В статье можно определить и использовать сколько угодно переменных.
Разметка:
~x=10
Присвоили переменной x значение =x. Куб переменной x равен =x*x*x
Вывод:
Присвоили переменной x значение 10. Куб переменной x равен 1000
Подробнее о переменных, выражениях, встроенных и пользовательских функциях см. статью Вычислительная среда. На механизме вычисляемых слов и переменных основаны широко используемые в расширениях системы вычислительные блокноты. См., например, Детерминированный факторный анализ.

Условная обработка

Система позволяет обрабатывать те или иные блоки исходного кода статьи в зависимости от определённых условий. Для этого используются команда ? и такая общая структура:
 ? условие1
текст1
 ? условие2
текст2
 ...
 ? условиеN
текстN
 ?
Если выполняется условие1, то обрабатывается текст1. Если условие1 не выполняется, то текст1 не обрабатывается - пропускаются все строки до следующей команды ?. Если выполняется условие2, то обрабатывается текст2. Если условие2 не выполняется, то текст2 не обрабатывается. И так далее. После появления команды ? без параметров последующие строки обрабатываются безусловно.
Разметка:
 ? sp()=0
Этот текст увидят все неавторизованные пользователи, а пользователи с другим статусом не увидят
 ? sp()=1
Этот текст увидят только Читатели, а пользователи с другим статусом не увидят
 ? sp()=2 | sp()=3
Этот текст увидят только Писатели и Эксперты, а пользователи с другим статусом не увидят.
 ? sp()>3
Этот текст увидят только Редакторы и Администраторы, а пользователи с другим статусом не увидят.
 ?
Вывод:
Этот текст увидят все неавторизованные пользователи, а пользователи с другим статусом не увидят

Управление режимами обработки текста статьи

Многие установленные по умолчанию режимы обработки текста в статье можно динамически переключать: включать, отключать, задавать параметры особенностей обработки. Например, если статья представляет собой текст романа "Война и мир", то при включённом режиме вычисления слов обработка такого текста займёт весьма продолжительное время, поскольку Система будет анализировать каждое слово на предмет необходимости его предварительной обработки. Поэтому в этом случае лучше отключить режим вычисления слов и включать его только там, где это действительно требуется.
Все параметры имеют определённые имена и с им сопоставляются определённые значения. Как правило, значение ноль означает, что параметр выключен, а единица - что включён.
Команда ! позволяет переключать режимы вывода, устанавливать режимы обработки слов и полей переменных данных, изменять стили вывода фрагментов текста. Формат команды:
!параметр1:значение1 параметр2:значение2 ... параметрN:значениеN
Параметр rx регулирует включение(1)/выключение(0) режима прямого вывода (аналог команды /).
Разметка:
До этого был обычный режим с вычислениями слов =2*sqrt(4) и ''выделением текста'/. Переключаем на прямой вывод:
 !rx:1
И ничего этого больше нет: Слова не вычисляются =2*sqrt(4) и ''текст не выделяется'/.
Отменяем прямой вывод:
 !rx:0
И опять всё вернулось: Вычисляются слова =2*sqrt(4) и ''выделяется текст'/.
Вывод:
До этого был обычный режим с вычислениями слов 4 и выделением текста. Переключаем на прямой вывод:
И ничего этого больше нет: Слова не вычисляются =2*sqrt(4) и ''текст не выделяется'/.
Отменяем прямой вывод:
И опять всё вернулось: Вычисляются слова 4 и выделяется текст.
Параметр rs регулирует включение(1)/выключение(0) режима стихов (аналог команды ").
Разметка:
Проза, проза, проза. А дальше стихи
 !rs:1
Нету явного смысла
В суете бытия:
Жрать, посрать, расплодиться -
Всей Природы стезя.
 !rs:0
И опять проза жизни пошла...
Вывод:
Проза, проза, проза. А дальше стихи
Нету явного смысла
В суете бытия:
Жрать, посрать, расплодиться -
Всей Природы стезя.
И опять проза жизни пошла...
Параметр rt регулирует включение(1)/выключение(0) режима таблицы (аналог команды #).
Параметр vp регулирует включение(1)/выключение(0) режима вычисления и вставки переменных полей.
Параметр vs регулирует включение(1)/выключение(0) режима вычисления слов, начинающихся со специального символа.
Разметка:
Синус 1 равен =sin(1), а косинус 1 равен =cos(1). Теперь выключаем вычисление слов:
 !vs:0
Синус 1 равен =sin(1), а косинус 1 равен =cos(1). И уже никаких вычислений не производится. Опять включаем вычисление слов:
 !vs:1
Синус 1 равен =sin(1), а косинус 1 равен =cos(1). И слова опять вычисляются.
Вывод:
Синус 1 равен 0.8414709848079, а косинус 1 равен 0.54030230586814. Теперь выключаем вычисление слов:
Синус 1 равен =sin(1), а косинус 1 равен =cos(1). И уже никаких вычислений не производится. Опять включаем вычисление слов:
Синус 1 равен 0.8414709848079, а косинус 1 равен 0.54030230586814. И слова опять вычисляются.
Параметр s1 позволяет установить новое начальное значение счётчика нумерованных списков первого уровня. Второй уровень автоматически синхронизируются с первым, а третий - со вторым.
Разметка:
 !s1:20
+Первый уровень
++Второй уровень
++Второй уровень
+++Третий уровень
+++Третий уровень
++Второй уровень
++Второй уровень
+Первый уровень
++Второй уровень
+++Третий уровень
+++Третий уровень
++Второй уровень
Вывод:
21. Первый уровень
21.1 Второй уровень
21.2 Второй уровень
21.2.1 Третий уровень
21.2.2 Третий уровень
21.3 Второй уровень
21.4 Второй уровень
22. Первый уровень
22.1 Второй уровень
22.1.1 Третий уровень
22.1.2 Третий уровень
22.2 Второй уровень
Параметры позволяют динамически переключать стили отображения текста. Система логически распознаёт следующие типы текстов:
Основной абзац (oa);
Основной текст обычный (ot).
Основной текст, выравненный вправо (otp).
Основной текст, центрированный (otc).
Стихи (stihi).
Цитаты (citata).
Заголовки первого, второго и третьего уровней (z1, z2, z3).
Оглавление первого, второго и третьего уровней (o1, o2, o3).
Перечисления первого, второго и третьего уровней (ul1, ul2, ul3).
Нумерованные перечисления первого, второго и третьего уровней (ol1, ol2, ol3).
Подпись рисунка (pr).
Изначально параметрам сопоставляются одноимённые имена классов из базовой таблицы стилей. С помощью команды ! каждому из этих параметров можно сопоставить любой другой класс, определённый в таблице стилей. И далее эта категория текста будет форматироваться в соответствии с указанным классом вплоть до сброса значений параметров или установки новых значений той же командой !.
Разметка:
Основной текст форматируется по умолчанию. Но далее мы сопопоставляем ему иной класс:
 !ot:otc
Теперь основной текст центрируется. Отменяем:
 !ot:ot
Опять основной текст форматируется в соответствии с классом ot.
Вывод:
Основной текст форматируется по умолчания. Но далее мы сопопоставляем ему иной класс:
Теперь основной текст центрируется. Отменяем:
Опять основной текст форматируется в соответствии с классом ot.