Типография
November 8, 2025 · View on GitHub
Типография
- Заголовок
- Навигация
- Разделитель
- Заголовок подраздела
- Контент
- Примеры кода
- Списки
- Вкладки
- Уведомления
- Изображения
- Shortcodes
В MoonShine мы считаем, что хорошая документация — это не просто дополнение к продукту, а его фундамент. Именно она помогает новичкам не бояться старта, а опытным разработчикам — работать быстро и эффективно.
Мы стремимся писать понятным, живым языком, избегая внутреннего жаргона и сложных формулировок. Каждый раздел мы стараемся подкреплять реальными кейсами и иллюстрациями — чтобы всё работало не только в теории, но и в жизни.
Да, это непросто. Хорошая документация требует времени, внимания к деталям и постоянной доработки. Но мы не ищем лёгких путей — мы работаем над тем, чтобы каждый следующий релиз становился чуть понятнее, доступнее и полезнее для всех, кто работает с MoonShine.
Заголовок
Название раздела является первым и обязательным элементом страницы.
# Title
Навигация
Если раздел большой, то его необходимо разбить на подразделы и создать навигационное меню.
Навигационное меню представляет собой список со ссылками на подраздел. У заголовков подраздела необходимо указать якорь.
- [Subtitle 1](#subtitle-1)
- [Subtitle 2](#subtitle-2)
Note
Для разделения слов в ссылках используется kebab-case.
Разделитель
После навигации необходимо указать разделитель.
---
Заголовок подраздела
Заголовки подразделов указываются со ссылкой, для удобного копирования ссылки на конкретный раздел документации.
## Subtitle
Если используется Навигация, то необходимо перед заголовком добавить якорь:
<a name="anchor"></a>
## Subtitle
Для названия первого пункта чаще всего необходимо использовать название Основы, вместо похожих Начало, Введение и др.
<a name="basics"></a>
## Основы
Если описывается компонент, который наследуется от другого класса, и в навигации есть пункт Основы,
то описание наследования пишем строго после этого пункта.
<a name="basics"></a>
## Основы
Наследует [Select](/docs/{{version}}/fields/select).
\* имеет те же возможности.
Если базовые методы описываются в другом разделе документации, то пишем так
<a name="basics"></a>
## Основы
Содержит все [Базовые методы](/docs/{{version}}/fields/basic-methods).
Контент
Кроме тегов markdown допускается использование html-тегов.
Warning
Все предложения должны заканчиваться точкой.
Желательно построчно синхронизировать тексты в ru и en версиях разделов.
Для выделения имени собственного используются двойные звёздочки **, например, **MoonShine**.
Примеры кода
- для оформления методов, классов и тд. используется одиночный апостроф
`, - названия методов должны заканчиваться скобками, например:
setLabel(), - для оформления блоков кода используется тройные апострофы
```с указанием языка программирования и начинаться блок должен с новой строки, - для всех классов, используемых в примерах, необходимо указать use в алфавитном порядке и обернуть их в collapse.
// torchlight! {"summaryCollapsedIndicator": "namespaces"}
// [tl! collapse:1]
use MoonShine\UI\Fields\Text;
Text::make('Title')
или
// torchlight! {"summaryCollapsedIndicator": "namespaces"}
// [tl! collapse:start]
use MoonShine\UI\Fields\Text; // [tl! collapse:end]
Text::make('Title')
Для подсветки изменений в коде можно использовать специальные аннотации.
MenuItem::make('Settings', SettingResource::class, 'heroicons.outline.adjustments-vertical') // [tl! remove]
MenuItem::make(SettingResource::class, 'Settings', 'adjustments-vertical') // [tl! add]
или
MenuItem::make('Settings', SettingResource::class, 'heroicons.outline.adjustments-vertical') // [tl! --]
MenuItem::make(SettingResource::class, 'Settings', 'adjustments-vertical') // [tl! ++]
Указать название файла или класса, к которому относится код, можно через параметр filename.
```php filename:config/moonshine.php
Warning
Использование пробелов в названиях недопустимо.
Списки
- элементы списка заканчивается запятой,
- после последнего элемента ставится точка.
Вкладки
~~~tabs
tab: Tab 1
Content tab 1
tab: Tab 2
Content tab 2
~~~
Уведомления
В документации используется несколько типов уведомлений:
> [!NOTE]
> Простое уведомление.
> [!WARNING]
> Предупреждение.
> [!TIP]
> Советы.
Изображения
Изображения добавляем в директорию /resources/screenshots.
Ссылку указываем - https://raw.githubusercontent.com/moonshine-software/doc/4.x/resources/screenshots/filename.png
Пример:

Для показа изображения в темной или светлой теме, необходимо к ссылке добавить hash тег #light или #dark.


Shortcodes
Include
Шорт-код include подключает markdown и отображает его, а затем пропускает содержимое через sprintf,
поэтому все параметры после пути к markdown будут переданы в том же порядке.
@include($path_to_md, ...$params)
Пример файла
_includes/my-partial.md
## Hello world
%s - %s
Пример использования
_includes/test.md
<a name="what-is-moonshine"></a>
## What is MoonShine
@include('_includes/test', 'test', 3)
Под капотом
sprintf('markdown', 'test', 3);
Результат
<h2>What is MoonShine</h2>
test - 3