Выбор CMS для записной книжки

velkin velkin

Варианты сайтов


Давайте подумаем, какие есть варианты сайтов.

По принадлежности.
1) Чужой сайт.
2) Свой сайт.

Чужой сайт это.
1) Платформы для блогеров (livejournal, blogspot).
2) Социальные сети (vtentakle, facebook).
3) Хранилища проектов (sourceforge, github).

Свой сайт.
1) Динамический CMS (wordpress, joomla).
2) Статический генератор (jekyll, asciidoctor).
3) Ручной ввод (html, css).

Минусы чужого сайта:
1) Низкий уровень контроля.
2) Могут удалить записи.

Минусы динамического сайта:
1) Нужно устанавливать обработчик скриптов на сервер.
2) Дополнительные усилия на обслуживание CMS (обновления, плагины, кастомизация).
3) Нужно устанавливать базу данных на сервер.
4) Дополнительные усилия на обслуживание базы данных (бекапы, целостность).

Минусы статического генератора:
1) Низкий уровень контроля.
2) Изучение дополнительного синтаксиса.
3) Совместное редактирование ограничено.

Минусы ручного ввода:
1) Сложнее использовать повторные элементы.
2) Совместное редактирование ограничено.

Теперь о главных плюсах сайтов:
1) Динамический: совместное редактирование.
2) Статический генератор: повторное использование элементов.
3) Статический ручной: абсолютный контроль над вёрсткой.

У статических сайтов ещё есть преимущество в скорости работы, так как им не нужно генерировать данные на лету как у динамических сайтов.

А ещё есть всякие Zim'ы и прочие менеджеры заметок. Их минус в том, что они не дают абсолютного контроля как при наборе заметок, так и их преобразовании в html, а так же сам софт может работать коряво.

Навигация по сайту


Лично я двигаясь годами от динамических cms, до статических генераторов и ручного набора пришёл к выводу, что для записной книжки лучше подойдёт ручной набор html+css.

Так же наткнулся на мнение совпадающее с моим, Преимущество книги перед блогом или улучшаем свой блог. Впрочем оно мне не помогло, потому что уже совпадало с придуманной и реализованной мною структурой.

Выглядеть шаблон должен примерно так, хотя элементы могут быть смещены.
"логотип  "название
 сайта"    сайта"
"панель навигации"
"строка навигации"
"содержимое"
...

Более конкретный пример
МС  "Мой Сайт"
Главная | Проекты | ru | en
> Главная

Главная страница

Оглавление

Тема
-Подтема
--Подтема
---Статья
---Статья
-Подтема
--Статья
-Подтема
--Подтема
---Статья
---Статья
---Статья
--Подтема
---Статья
---Статья

Суть в том, чтобы записать на главной почти что всё, то есть по факту это карта сайта. Исключение то, что находится в панели навигации, хотя это тоже не обязательно.

Вне зависимости от количества уровней оглавления хранить темы нужно используя двухуровневое вложение папок. Я бы, конечно, голосовал за одноуровневое, но равномерное двухуровневое, где первый уровень 1000 папок и второй уровень 1000 позволит увеличить их количество до 1000'000 папок.

А вот больше вложений сделает только хуже, так как двухуровневое и так уже компромиссный вариант. Причём у папок первого уровня нет страницы index.html, так как всё оглавление на главной странице сайта.
-папка
--подпапка
---index.html
--подпапка
---index.html
-папка
--подпапка
---index.html
--подпапка
---index.html
-папка
--подпапка
---index.html
index.html

Высоко структурируемые страницы сайта


Следующим пунктом идёт структурирование страниц сайта.

1) Низко структурированные страницы сайтов.

Это обычные блоги, где пользователь пишет текст деля его на абзацы. По сути это тоже самое как оформляются книги.

2) Высоко структурированные страницы сайтов.

Каждая страница подвергается структуризации с помощью оглавления точно так же как главная страница. Можно ссылаться на заголовки внизу страницы или подстраницы. Подстраницы должны лежать в подпапке со страницей index.html.

Так же нужно избегать писать предложения, а вместо них использовать списки подобные оглавлению. Упорядочивать можно по назначению, но какой бы способ не использовался, он должен позволять быстро найти и применить информацию.

Если сравнивать с книгой, то сайт нужно структурировать не только по главам, где каждая глава это страница, но и по всему тексту включая сами страницы. Структурируемые данные могут быть какими-либо готовыми решениями, списками каких-либо элементов и многим другим.

Итоги


Время идёт и мысли меняются. В данной заметке рассказывается о моих текущих идеях и реализациях по созданию записной книжки, которая не потеряется со временем и будет хранить собственные мысли по различным темам в одном месте. Насколько живуча эта идея покажет время.
velkin
velkin
15.12.2021 12:54

Двухуровневое оглавление


Предположим нужно создать многоуровневое оглавление с любой степенью вложенности.

категория1
-категория2
--понятие1
--понятие2
-категория3
--понятие3
--понятие4


Но делать это на html используя заголовки было бы неудобно потому что:

1) Плохо воспринимается оглавление, легко запутаться в уровнях.
В большой степени это так же верно для документов и таблиц офисных пакетов.

2) У html только шесть заголовков h1-h6.
Первый используется под заголовок страницы и "их осталось пять".
  Скрытый текст
Шесть негритят пошли на пасеку гулять,
Одного ужалил шмель, их осталось пять.

3) Пользователь может в любой момент захотеть изменить уровни вложения.
Но для этого нужно приложить массу усилий для согласования с текущими уровнями.

Решение использовать двухуровневое оглавление для многоуровневого.

категория1 - категория2
-понятие1
-понятие2
категория1 - категория3
-понятие3
-понятие4


Таким образом можно легко менять как названия категорий, так и уровней. А перенос категорий в другое место не составит проблем, потому что будет производиться целым блоком без изменения реальных уровней оглавления.

Пример двухуровневого оглавления


<!DOCTYPE html>
<html lang="ru">
 <head>
  <meta charset="utf-8">
  <title>Заголовок</title>
 </head>
 <body>
  <article>

   <h1>Заголовок</h1>

   <h2>Содержание</h2>
   <ol>
    <li>
     <a href="#toc-cat1-cat2">категория1 - категория2</a>
     <ol>
      <li><a href="#toc-concept1">понятие1</a></li>
      <li><a href="#toc-concept2">понятие2</a></li>
     </ol>
    </li>
    <li>
     <a href="#toc-cat1-cat3">категория1 - категория3</a>
     <ol>
      <li><a href="#toc-concept3">понятие3</a></li>
      <li><a href="#toc-concept4">понятие4</a></li>
     </ol>
    </li>
   </ol>

   <h2 id="toc-cat1-cat2">категория1 - категория2</h2>
   <br><br><br><br><br><br><br><br><br><br>

   <h3 id="toc-concept1">понятие1</h3>
   <br><br><br><br><br><br><br><br><br><br>

   <h3 id="toc-concept2">понятие2</h3>
   <br><br><br><br><br><br><br><br><br><br>

   <h2 id="toc-cat1-cat3">категория1 - категория3</h2>
   <br><br><br><br><br><br><br><br><br><br>

   <h3 id="toc-concept3">понятие3</h3>
   <br><br><br><br><br><br><br><br><br><br>

   <h3 id="toc-concept4">понятие4</h3>
   <br><br><br><br><br><br><br><br><br><br>

  </article>
 </body>
</html>


Использовать <br> не рекомендуется, они здесь лишь для грубой имитации содержимого.

Так же не забываем про валидацию validator.w3.org.
Document checking completed. No errors or warnings to show.

Символы разделения иерархии


В данном случае было использовано тире, но какие ещё есть варианты:
1) Косая черта "/".
2) Обратная косая черта "\".
3) Двоеточие ":".
4) И так далее.

На сегодня всё. По вопросам и предложениям обращаться в комментариях ниже.