Типы используемых файлов
Система не использует СУБД и потому все личные данные и публикации содержатся в отдельных файлах. Также в отдельных файлах хранится вся служебная информация, необходимая для функционирования системы при обслуживании сайта и сохраняемая ею в процессе работы её пользователей.
Все используемые системой файлы публикаций и личных данных являются текстовыми и могут быть изменены либо встроенным, либо любым другим текстовым редактором. При создании публикаций могут использоваться также двоичные файлы любого типа, которые могут быть загружены на сайт встроенными средствами системы или администратором хостинга. Однако они не могут каким-либо образом корректироваться системой прямо на сайте. Файлы публикаций или личных данных могут только ссылаться на них определённым образом.
Специальным образом размеченные текстовые файлы автоматически конвертируются системой в Web-страницы и предъявляются пользователям по мере обращения к ним.
Система разделяет файлы на структурированные и неструктурированные. Структурированные и неструктурированные файлы различаются системой по расширению имени файла. Неструктурированные файлы имеют расширение txt, а структурированные - s,k или l.
Неструктурированные файлы с точки зрения системы являются набором строк, которые по разному обрабатываются в зависимости от контекста их использования. Их назначение строго вспомогательное и содержащиеся в них данные могут использоваться как строительный материал, источник данных для публикаций.
Структурированные файлы
Публикации и личные данные пользователей являются структурированными файлами, разбитыми на произвольное число секций. Признаком начала секции является символ "." (точка) в начале новой строки. Сразу после точки размещается имя секции, состоящее из произвольной комбинации символов, не содержащей пробелов и табуляций. Далее должен следовать хотя бы один пробел или конец строки. Все строки текста после имени секции до строки, содержащей признак начала новой секции, или до конца файла являются содержимым секции.
При загрузке таких файлов система преобразует их в массив секций. При этом каждая секция рассматривается как набор строк, по разному интерпретируемых в зависимости от принадлежности к конкретному типу файла, конкретной секции или использующего их расширения.
Типы структурированных файлов разделяются по расширению их имени:
s - статьи;
k - книги;
l - личные данные.
Статьи (s) и книги (k) в дальнейшем именуются общим термином публикации. Публикации могут создаваться только пользователями, имеющими статус не ниже уровня Писатель (Писатель, Эксперт, Редактор, Администратор). Статьи могут содержать любой специальным образом оформленный текст и ссылки на расширения системы. Книги являются сборниками статей и других книг. Любая статья или книга может входить любое число книг. За счёт этого система позволяет создавать и вести произвольные сетевые структуры данных. Любой пользователь соответствующего статуса может создать произвольное число публикаций.
Личные данные могут создавать и использовать любые авторизованные пользователи. Каждый пользователь может иметь только один файл личных данных, но поскольку такие файлы могут содержать произвольное число секций, то в них могут храниться самые разные, неоднородные по сути и порядку интерпретации данные.
Предопределённые и произвольные секции
Секции публикаций могут быть предопределёнными (системными) или произвольными (несистемными). Секции файла личных данных могут быть только несистемными. Даже при наличии имён, которые в публикациях считаются системными, в личных данных они интерпретируются в общем порядке, как произвольные.
Предопределённые секции имеют имена, состоящие ровно из одного символа. Они интерпретируются системой строго определённым образом. Основными предопределёнными именами являются:
n - название публикации, отображаемое в книгах и интерфейсе управления файлами;
a - аннотация публикации, отображаемая в книгах и интерфейсе управления файлами;
s - содержание публикации;
d - определение прав доступа к публикации со стороны различных категорий пользователей;
p - перечень индивидуальных определений прав доступа для конкретных пользователей;
i - допустимость (не ноль) или не допустимость (0) импорта фрагментов публикации в публикациях или личных данных других пользователей. По умолчанию импорт разрешён (1).
Пример содержимого файла статьи, разбитого на секции:
.n Пример файла статьи
.s
От восторгов к сомненьям
Вечно путь возлежит
Синус икс настроений
По абсциссе бежит
.d 13333
.a Искусственный пример файла статьи для документации
.i 0
.s1
Строки несистемной секции 1
Строки несистемной секции 1
.s2
Строки несистемной секции 2
.s
От восторгов к сомненьям
Вечно путь возлежит
Синус икс настроений
По абсциссе бежит
.d 13333
.a Искусственный пример файла статьи для документации
.i 0
.s1
Строки несистемной секции 1
Строки несистемной секции 1
.s2
Строки несистемной секции 2
В приведённом примере секции n,s,d,a,i - системные, предопределённые, а секции s1 и s2 - произвольные. Произвольных секций может быть сколько угодно.
При отображении такого файла в списке статей книги или в интерфейсе управления файлами в качестве названия будет отображаться содержимое секции .n (Пример файла статьи). В качестве аннотации - содержимое секции .a (Искусственный пример файла статьи для документации).
При переходе по ссылке на статью система по своим правилам проанализирует содержимое секции .s и превратит его в html-страницу.
Формально, все из перечисленных предопределённых секций не являются обязательными. Если не задана или пуста секция .n, то будет подставлен заголовок [...]. Если не задана секция .a, то просто ничего не будет выведено в качестве аннотации. Если не задана секция .s, то при отображении статьи пользователь увидит пустую страницу. Если не задана секция .d, то значение 22333 будет установлено в качестве кода прав доступа. Если не задана секция .i, то для неё будет установлено значение 1 (.i 1), то есть будет разрешено импортирование секций данной публикации в публикации других пользователей.
Помимо перечисленных имён основных предопределённых секций в частных случаях могут использоваться и другие. Все предопределённые имена состоят из одной латинской буквы. Поэтому для именования несистемных секций настоятельно рекомендуется использовать комбинации из более, чем одного символа.
Произвольные секции, не имеющие предопределённого имени, могут использоваться как хранилище тех или иных данных, используемых при формировании страницы. Публикации могут иметь связи на уровне секций. В частности, для формирования одной публикации могут использоваться секции, содержащиеся в других публикациях или строки неструктурированных файлов. В особенности это имеет значение для публикаций, использующих те или иные расширения системы. Подробнее см. Заполнение секций данными из других источников
Предопределённые секции статей и книг различаются правилами интерпретации содержимого секций .s и .d. Порядок наполнения секций .s статей и книг вследствие объёмности материала рассматривается в документах:
О назначении прав доступа см. Регулирование прав доступа к публикации
Вставка фрагментов из других файлов
Содержимое публикации может формироваться из нескольких источников. Для этого в каждой секции структурированного файла может содержаться произвольное число инструкций вставки данных из других файлов. Подробнее см. Заполнение секций данными из других источников
Оцените публикацию по предложенной шкале