Инструменты пользователя

Инструменты сайта


tmp_teh_zadanie
/server/                # Портативное окружение Apache / PHP
/run.cmd                # Скрипт запуска локального сервера в 1 клик
/content/               # Корневой каталог контента книги
   └─ [book_name]/      # Папка конкретной книги (название транслитом/ID)
       ├─ book.json     # Общие метаданные книги
       ├─ toc.json      # Структура оглавления и порядок глав
       └─ chapters/     # Папка с контентом глав
           ├─ [chapter_id].txt   # Сырой Markdown-текст (1 абзац на файл/секцию)
           ├─ [chapter_id].json  # Метаданные конкретной главы
           ├─ [chapter_id].html  # Скомпилированный кэш для быстрого чтения
           └─ media/             # Картинки и файлы, привязанные к главе
              └─ [chapter_id]/   # Папка с картинками для конкретной главы
                 └─ image.png
  • 1. мини cms по созданию и редактированию html страниц книги
  • 1.1 ориентируемся на принцип работы и анализ кода dokuwiki
  • 2. все файлы коды в разных файлах с понятными именами
  • 3. код в каждом блоке с подробным комментарием
  • 4. server/ ←- Портативное окружение (Apache / PHP)
  • 5. run.cmd ←- Скрипт запуска локального сервера в 1 клик
  • 5.1 сесии с регистрацией и авторизацией с отключением регистрации (существует только 1 автор)
  • 5.2 используем <textarea>
  • 6. Первая видимая страница пользователя - оглавление
  • 6.0.1. если страница есть - текст голубой /если страница не существует текст красный ( после создания
  • новой страницы/удаления/редактирования) этот файл .txt пересобирается
  • 6.1. Главы в оглавлении генерируются автоматически и являются ссылками на страницы

(Запись во временный файл → Атомарная замена.)

  • 6.9 отдельная папка-каталог с папками - книгами (по названию книги) для контента (страница и файлы)
  • 7. страницы имеют свои папки с контентом (картинки/файлы)
  • 8. страницы хранятся в txt файлах (1 страница - 1 отдельный файл)
  • 8.0.1 Количество слов на 1 странице рекомендованно равно среднее число в стандартной книге 250–300 слов.
  • 8.1 метаданные формата JSON хранятся в отдельном файле .json и записываются через <input type=«text»>
  • т.е. это (имя книги, имя страница, имя автора, времы создания/редактирования) и это выводится в браузере
  • , а в редакторе в отдельных окнах ввода (пишется в начале между собственными тегами в столбик)
  • 10. главная рабочая страница «редактор»
  • 11. редактор создает/правит/удаляет страницу
  • 12. редактор имеет поля ввода и кнопки
  • 12. обязательные поля:
  • 12.1 поле выбора книги для редактирования/написания новой/удаления
  • 12.2 поле ввода номера главы индивидуальное / вводиться автоматически следующее от меньшего / либо автором если оно свободное
  • 12.3 поле редактирования текста Markdown работает в объеме 1 «1 логический подраздел / подглава» из общего текста (у нас только 1 автор - сам сибе плохо не сделает п. 5.1)
  • 12.3 движок-парсер пишем сами
  • 12.4 блок кнопок внизу: предпросмотр/сохранить/отменить
  • 12.9 панель с блоками кнопок вверху
  • 13. блок кнопок: новая страница/открыть страницу/сохранить/удалить
  • 13.1 блок кнопок: вырезать/копировать/вставить
  • 13.2 блок кнопок: отменить/повтор
  • 13.2.1 работает методом логирования действий в памяти JS-скрипта (создается при начале редактирования. храним 5 файлов лога,
  • 13.2.2 автосохранение 1 файла-черновика на сервер каждую 3 мин. и при нажатии просмотр
  • постоянно создавая новый 3 и удаляя 1, после сохранения страницы логи удаляем)
  • 13.3 блок кнопок: найти (только поиск слова/части слова)
  • 13.4 блок кнопок: выбор шрифта/размер шрифта/размер
  • 13.5 блок кнопок: шрифт наклонный/подчеркнутый/жирный/текст кода/зачёркнутый шрифт
  • 13.6 блок кнопок: абзац (с красной строкою)/ список/ нумерованный список / разделитель
  • 13.7 блок кнопок: заголовок (раскрывающийся 5 уровней)/ внутренняя ссылка/ внешняя ссылка
  • 13.8 блок кнопок: добавление иллюстраций и файлов / смайлы / спец картинки
  • 13.8.1 пишем скрипт-обработчик на PHP, который принимает файл из формы, проверяет его расширение/размер и складывает в content/book_name/chapter_id/
  • 13.9 блок кнопок: вставка якоря/вставка тэга
  • 14.0 блок кнопок: вставка сносок примечаний в низ станицы/ вставка блоков внимание
  • 14.1 блок внимание: прямоугольник голубого/красного/зеленого цвета
  • 14.4 блок кнопок вставки блока php/js/css кода
  • 14.5 блок кнопок вставки шаблонов абзацев/текста
  • 15.1 внизу 2 кнопки-списки вперед/назад с выбором установки ссылок на страница
  • 16.0 Разделите логику: Сначала напишите PHP-ядро (создание папок книг, чтение/запись файлов, авторизация). Только потом переходите к интерфейсу редактора.
  • 17.0 Контроль объема (8.0.1): Добавьте внизу <textarea> простой JS-счетчик слов. Сделайте визуальный индикатор (зеленый цвет, если в пределах 250–300 слов, красный — если превышен лимит стандартной страницы) рекомендательным, а не блокирующим..
  • 18.0 Генерация HTML: Не парсите Markdown на лету в PHP при каждом открытии страницы. Парсите его один раз в момент сохранения и кладите рядом готовый page.html для мгновенного отображения пользователю (чтения оглавления).
Только авторизованные участники могут оставлять комментарии.
tmp_teh_zadanie.txt · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki