Как писать документацию
Идея документации Wacko Wiki Quick Start основана на следующих простых идеях:
- В любое время в любом месте кода вы можете сообщить о новшестве всем, кому это может быть интересно.
- Документация устроена в форме дерева для облегчения навигации и понимания. Каждый узел имеет свой адрес (возможно, несколько).
- Каждый автор должен знать базовую структуру дерева – первые два уровня.
Рассмотрим, как эти идеи реализуются при написании документации.
Начнем с последней. Последняя идея говорит о том, что вы должны знать базовую структуру дерева. Зачем? В основном пользователи ориентируются по ним в попытках найти необходимую информацию.
Рассмотрим первый уровень.
- Structure – здесь располагаются узлы документации, упорядоченные по структуре.
- Function – здесь располагаются узлы документации, упорядоченные по функциям.
- Examples – здесь располагаются узлы документации, отражающие примеры.
- User – здесь располагается документация для пользователей разного уровня доступа.
- Version – здесь располагается документация по версиям систем.
Предположим, вы хотите добавить в поставку Quick Start экшн helloworld. Следующая версия QS – 3.1.
<?php
/*!! Structure.Actions.HelloWorld:
Экшн helloworld позволяет поприветствовать текущего пользователя.
* Параметр:##user## - определяет имя приветствуемого.
@link Structure.Actions, Function.Other, Version.QS.v3s1:
Экшн, позволяющий поприветствовать пользователя.
@link Examples.Other:
Поприветствовать пользователя:
""{{helloworld user="Влад"}}"".
*/
echo "Hello, ".htmlspecialchars($user);
?>
Начнем со строчки:
/*!! Structure.Actions.HelloWorld:
/*!! – необходимо, чтобы следом идущий коммент воспринимался как элемент автодокументации.
Structure.Actions.HelloWorld – указывает базовый адрес данного элемента документации, первое имя. По соглашению, первоначально все элементы сортируются по структуре.
: означает конец списка адресов и начало содержательного текста
Все, что идет ниже данной строчки вплоть до директивы @link – базовый текст этого элемента.
@link Structure.Actions, Function.Other, Version.QS.v3s1:
– означает буквально следующее – сделай данный элемент подразделом указанных разделов, да добавь в них текст, который идет ниже (до следующей директивы @link). Данный элемент введен для реализации идеи 1: когда угодно сообщи о себе всем, кому об этом может быть интересно.
@link Examples.Other:
То же самое.
сокращенная форма записи
<?php
/*!! Structure.Actions.HelloWorld, Function.Other, Version.QS.v3s1:
Экшн, позволяющий поприветствовать пользователя.
*/
?>
это то же самое, что
<?php
/*!! Structure.Actions.HelloWorld:
Экшн, позволяющий поприветствовать пользователя.
@link Structure.Actions, Function.Other, Version.QS.v3s1:
Экшн, позволяющий поприветствовать пользователя.
*/
?>