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

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


tmp_teh_zadanie

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
tmp_teh_zadanie [2026/07/23 10:58] VladPolskiytmp_teh_zadanie [2026/07/23 11:14] (текущий) VladPolskiy
Строка 11: Строка 11:
            ├─ [chapter_id].html  # Скомпилированный кэш для быстрого чтения            ├─ [chapter_id].html  # Скомпилированный кэш для быстрого чтения
            └─ media/             # Картинки и файлы, привязанные к главе            └─ media/             # Картинки и файлы, привязанные к главе
 +              └─ [chapter_id]/   # Папка с картинками для конкретной главы
 +                 └─ image.png
 </code> </code>
  
Строка 29: Строка 31:
   * 7. страницы имеют свои папки с контентом (картинки/файлы)   * 7. страницы имеют свои папки с контентом (картинки/файлы)
   * 8. страницы хранятся в txt файлах (1 страница - 1 отдельный файл)   * 8. страницы хранятся в txt файлах (1 страница - 1 отдельный файл)
-  * 8.0.1 Количество слов на 1 странице равно среднее число в стандартной книге 250–300 слов. +  * 8.0.1 Количество слов на 1 странице рекомендованно равно среднее число в стандартной книге 250–300 слов. 
-  * 8.1 метаданные формата JSON хранятся в отдельном файле .json +  * 8.1 метаданные формата JSON хранятся в отдельном файле .json и записываются через <input type="text">
   * т.е. это (имя книги, имя страница, имя автора, времы создания/редактирования) и это выводится в браузере   * т.е. это (имя книги, имя страница, имя автора, времы создания/редактирования) и это выводится в браузере
   * , а в редакторе в отдельных окнах ввода (пишется в начале между собственными тегами в столбик)   * , а в редакторе в отдельных окнах ввода (пишется в начале между собственными тегами в столбик)
Строка 38: Строка 40:
   * 12. обязательные поля:    * 12. обязательные поля: 
   * 12.1 поле выбора книги для редактирования/написания новой/удаления   * 12.1 поле выбора книги для редактирования/написания новой/удаления
-  * 12.2 поле ввода номера главы индивидуальное / вводиться автоматически следующее от меньшего / либо автором +  * 12.2 поле ввода номера главы индивидуальное / вводиться автоматически следующее от меньшего / либо автором  если оно свободное 
-  если оно свободное +  * 12.3 поле редактирования текста Markdown работает в объеме 1 «1 логический подраздел / подглава» из общего текста (у нас только 1 автор - сам сибе плохо не сделает п. 5.1)
-  * 12.3 поле редактирования текста Markdown работает в объеме 1 «1 логический подраздел / подглава» из общего текста+
   * 12.3 движок-парсер пишем сами   * 12.3 движок-парсер пишем сами
   * 12.4 блок кнопок внизу: предпросмотр/сохранить/отменить   * 12.4 блок кнопок внизу: предпросмотр/сохранить/отменить
Строка 47: Строка 48:
   * 13.1 блок кнопок: вырезать/копировать/вставить   * 13.1 блок кнопок: вырезать/копировать/вставить
   * 13.2 блок кнопок: отменить/повтор   * 13.2 блок кнопок: отменить/повтор
-  * 13.2.1 работает методом логирования действий в памяти JS-скрипта (создается при начале редактирования. храним 5 файлов лога, автосохранение 1 лога на сервер каждую 3 мин. и при нажатии просмотр+  * 13.2.1 работает методом логирования действий в памяти JS-скрипта (создается при начале редактирования. храним 5 файлов лога,  
 +  * 13.2.2 автосохранение 1 файла-черновика на сервер каждую 3 мин. и при нажатии просмотр
   * постоянно создавая новый 3 и удаляя 1, после сохранения страницы логи удаляем)   * постоянно создавая новый 3 и удаляя 1, после сохранения страницы логи удаляем)
   * 13.3 блок кнопок: найти (только поиск слова/части слова)   * 13.3 блок кнопок: найти (только поиск слова/части слова)
Строка 65: Строка 67:
   *    * 
   * 16.0 Разделите логику: Сначала напишите PHP-ядро (создание папок книг, чтение/запись файлов, авторизация). Только потом переходите к интерфейсу редактора.   * 16.0 Разделите логику: Сначала напишите PHP-ядро (создание папок книг, чтение/запись файлов, авторизация). Только потом переходите к интерфейсу редактора.
-  * 17.0 Контроль объема (8.0.1): Добавьте внизу <textarea> простой JS-счетчик слов. Сделайте визуальный индикатор (зеленый цвет, если в пределах 250–300 слов, красный — если превышен лимит стандартной страницы).+  * 17.0 Контроль объема (8.0.1): Добавьте внизу <textarea> простой JS-счетчик слов. Сделайте визуальный индикатор (зеленый цвет, если в пределах 250–300 слов, красный — если превышен лимит стандартной страницы) рекомендательным, а не блокирующим..
   * 18.0 Генерация HTML: Не парсите Markdown на лету в PHP при каждом открытии страницы. Парсите его один раз в момент сохранения и кладите рядом готовый page.html для мгновенного отображения пользователю (чтения оглавления).   * 18.0 Генерация HTML: Не парсите Markdown на лету в PHP при каждом открытии страницы. Парсите его один раз в момент сохранения и кладите рядом готовый page.html для мгновенного отображения пользователю (чтения оглавления).
tmp_teh_zadanie.1784793518.txt.gz · Последнее изменение: VladPolskiy

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