Документы использования плоских страниц
Flatpages - это простая и мощная статическая система управления страницами, которая поддерживает написание контента в формате разметки, автоматически генерирует каталоги и обеспечивает эстетический интерфейс чтения.
Функциональные особенности
- Поддерживает формат разметки для написания контента
- Автоматически генерировать каталоги статей
- Подсветка кода
- Прочитайте инструкции по прогрессу
- Отзывчивый дизайн, поддержка мобильных
- Навигация по поддержке статьи (предыдущий/следующий)
- Поддержка поиска статьи
- Международная поддержка
Как использовать
1. Включение конфигурации
Включить плоские страницы в файле конфигурации:
[flatpages]
# 是否启用flatpages
enable = true
# 支持配置多个flatpage目录
[[flatpages.dirs]]
nav_name = "帮助文档"
nav_path = "docs"
file_path = "statics/flatpages/docs"
# 每页显示的条目数,可选,默认为10
page_size = 20
# 可以继续添加更多目录配置...
2. Создать статью
Создайте файл .md
в каталоге statics/flatpages
и напишите его в следующем формате:
# 文章标题
> 文章描述(会显示在列表页)
正文内容...
## 二级标题
### 三级标题
正文内容...
3. Описание формата Marckdown
Flatpages поддерживает стандартный синтаксис разметки, в том числе:
- Название (H1-H4)
- Список (упорядоченный и неупорядоченный)
- Кодовый блок (поддерживает выделение синтаксиса)
- Справочный блок
- Связь
- картина
- Встроенный код
Пример блока кода:
def hello():
print("Hello, World!")
4. Специальные функции
Код копия
Кнопка копирования будет автоматически добавлена в верхний правый угол всех кодовых блоков, чтобы облегчить пользователям копировать код.
Навигация по каталогу
Система автоматически генерирует каталог на основе названия статьи (H2-H4) и отобразить его справа. Поддержка каталога:
- Автоматически выделить текущую позицию чтения
- Нажмите, чтобы прыгнуть
- Синхронизация прокрутки
Прогресс чтения
В верхней части страницы будет отображаться панель прогресса чтения, которая визуально отображает позицию чтения.
Принцип реализации
1. Файл -система
FlatePages использует go embed.FS
для управления статическими файлами:
//go:embed flatpages/*
var Files embed.FS
2. Регистрация маршрутизации
Система регистрирует соответствующие маршруты через функцию InitFlatpages
при запуске:
-
/fp/
- страница списка статьи -
/fp/:slug
- страница сведений в статье
3. Анализ отметки
Используйте пакет gomarkdown/markdown
для анализа Markdown, поддержка:
- Commonextensions
- AutoHeadingids
- HreftargetBlank
4. Управление статьями
Все файлы разметки будут загружены при запуске:
- Разрешить имя файла в качестве URL Slug
- Извлеките название статьи (H1)
- Извлеките описание статьи (первый блок цитирования)
- Рассчитайте время чтения
- Время обновления записи
5. Поиск реализации
Функция поиска страниц списков реализована в JavaScript, который поддерживает поиск названий и описаний в реальном времени.
6. Международная поддержка
Система интегрирует поддержку I18N, и многоязычная поддержка может быть включена через конфигурацию:
[i18n]
enable = true
Лучшие практики
- Наименование файлов
- Используйте значимое имя файла, которое будет использоваться как часть URL
- Избегайте специальных персонажей и мест
- Рекомендуются строчные буквы и дефисы
- Контент организация
- Каждый файл должен иметь заголовок H1
- Используйте блоки цитирования, чтобы добавить описание статьи
- Разумно используйте названия вторичного и третьего уровня, чтобы организовать контент
- Управляйте размером одного файла, рекомендуется не превышать 1000 строк.
- Обработка изображений
- Фотографии рекомендуются храниться в каталоге
statics/img
- Справочные изображения с использованием относительных путей
- Сжатие изображений для увеличения скорости нагрузки
- Фотографии рекомендуются храниться в каталоге
- Дисплей кода
- Укажите язык кодового блока, чтобы получить правильный синтаксис.
- Добавить комментарии к важному коду
- Убедитесь, что кодовый блок правильно отступает
Поиск неисправностей
- Страница не отображается
- Проверьте, является ли
flatpages.enable
true в файле конфигурации - Убедитесь, что файл разметки находится в правильном каталоге
- Проверьте, является ли
- Каталог не генерируется
- Проверьте, содержит ли статья вторичное или третичное название
- Подтвердите, что заголовок верен (## или ###)
- Стиль исключение
- Проверьте, правильно ли синтаксис разметки
- Подтвердите, что кодирование файла-UTF-8
- Неверный поиск
- Проверьте консоли браузера на ошибки JavaScript
- Подтвердите, что страница JavaScript правильно загружается