Докувики - как динамически изменять содержимое видимой страницы
У меня есть документация для разработчиков на сайте докувики. Существует несколько версий программного обеспечения (например, v1, v2...). Я хотел бы иметь возможность динамически изменять видимое содержимое страницы в зависимости от версии программного обеспечения.
Например, возможно, на странице есть раскрывающийся список, который позволяет читателю выбрать "v1, v2 и т. Д." Когда выбран v2, изменяются только определенные части страницы, чтобы отразить часть v2.
Вот пример содержимого некоторых страниц вики:
To build the foobar project, first download the code:
cd ~
git clone https://foo.example.com/bar.git
git checkout v1.0
...
Если человек изменил выбранный элемент в раскрывающемся списке на v2, он изменится на следующее:
To build the foobar project, first download the code:
cd ~
git clone https://foo.example.com/bar.git
git checkout v2.0
...
Кто-нибудь знает плагин, который может делать такие вещи в Dokuwiki?
1 ответ
Я написал плагин вариантов некоторое время назад, это доказательство концепции плагина, который позволяет предоставлять варианты частей страницы в зависимости от предоставленных пользователем параметров. Это работает, но набор функций очень ограничен, то есть вы можете указать только какой-то параметр в URL-адресе, а затем, в зависимости от этого параметра, в вашем тексте могут быть блоки if-else-blocks. Должна быть возможность установить этот параметр из раскрывающегося списка, но плагин не предоставляет раскрывающийся список. Если вы хотите продлить его, не стесняйтесь сделать это и отправьте патч или запрос на получение.
Другой подход используется плагином page4release, который был создан для описанной вами цели, но он использует совершенно разные страницы для разных версий программного обеспечения. Вы также можете использовать комбинацию этого плагина и подключаемого плагина, если ваши страницы имеют большие общие части, которые можно включить с одной общей страницы (отказ от ответственности: я являюсь автором подключаемого плагина).