2015-12-17 5 views
2

Я использую плагин org.asciidoctor.convert для градации для создания документации API для моей команды. Я включаю файлы:Как динамически скрывать элемент asciidoc

include::{snippets}/index/curl-request.adoc[] 

и хочу разместить его содержимое в спойлере или что-то в этом роде. Есть ли способ каким-то образом скрыть динамические элементы asciidoc? Я пытаюсь использовать

pass:[<details open> 
include::{snippets}/index/curl-request.adoc[] 
</details>] 

, но не обрабатывается, включите внутрь него. Любые идеи будут высоко оценены. Без скрытия фрагментов моя документация имеет почти неограниченный свиток :). Если такого пути нет с ascii doc, также приветствуются предложения других форматов документации, в которых я могу включить содержимое файлов и помещать их в спойлер.

+0

Вы добавляете входящие в блок, как блок-источник? Если вы можете добавить роли в результирующий элемент, тогда используйте стиль/использование javascript, чтобы сделать все остальное. – LightGuard

ответ

2

Это поздний ответ, но, возможно, это поможет вам/другим. следующие функции asciidoc являются ключевыми для реализации динамического показа/скрытия блоков:

Если выход только HTML, то вы можете вставлять любой HTML в документ с помощью

++++ any HTML contents ++++ 

Это включает в себя

  • <style> теги, содержащие пользовательские классы CSS
  • пользовательские HTML-теги для отображения/скрытия функциональных возможностей, таких как <input type="checkbox" />
  • <script> теги, содержащие код Javascript, чтобы скрыть/показать некоторые блоки, например. добавив флажков к событиям.

Как уже упоминалось @LightGuard, атрибуты role преобразуются в ссылки класса CSS. Например.

[source,role="someCssClass"] 
---- 
... 
---- 

превращается в нечто вроде

<div class="someCssClass"> 
</div> 

Таким образом, вы можете ссылаться на этот CSS класс от Javascript кода и реализовать показать/скрыть, изменив атрибут display CSS.

Для простого примера реализации см. https://raw.githubusercontent.com/NorbertSandor/jsinterop.xyz/master/jsinterop-project/jsinterop-website/src/main/asciidoc/index.asciidoc (около верхней части файла).

+1

Это было очень полезно! Я фактически использовал это, чтобы обернуть длинные фрагменты 'include'ed из других файлов - см. Ниже - обратите внимание, что кажется три плюса' +++ 'not four - это то, что вам нужно: ' '' +++

+++ Некоторое длинное текстовое сообщение +++
+++ include::snippets/some-long-text.adoc[] +++
+++ '' ' – Robin

+0

@Robin Я пытался использовать ваше предложение, и обертка работает, но включение отображается как« include ... », а не отображается в фрагменте. – LisaMM

+0

@LisaMM Я не знаю, почему это было бы, но это звучит как ошибка синтаксического анализа. Вы можете увидеть примеры моего предложения здесь: https://raw.githubusercontent.com/UKHomeOffice/lev-api-docs/master/README.adoc - и конечный результат (после анализа в HTML с помощью ASCIIdoctor) здесь: https : //lev-api-dev.notprod.homeoffice.gov.uk/docs/# _ a_successful_request_with_valid_credentials – Robin