diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersAnchors.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersAnchors.java index 4b7122420..8dc948c16 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersAnchors.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersAnchors.java @@ -17,9 +17,11 @@ package org.testingisdocumenting.znai.extensions.api; import org.testingisdocumenting.znai.core.ComponentsRegistry; +import org.testingisdocumenting.znai.structure.AnchorIds; import org.testingisdocumenting.znai.structure.DocStructure; import java.nio.file.Path; +import java.util.Collections; class ApiParametersAnchors { private ApiParametersAnchors() { @@ -29,7 +31,8 @@ static void registerLocalAnchors(ComponentsRegistry componentsRegistry, Path markupPath, ApiParameters apiParameters) { DocStructure docStructure = componentsRegistry.docStructure(); - apiParameters.collectAllAnchors().forEach(anchorId -> docStructure.registerLocalAnchor(markupPath, anchorId)); + apiParameters.collectAllAnchors().forEach(anchorId -> docStructure.registerLocalAnchors(markupPath, + new AnchorIds(anchorId, Collections.emptyList()))); } static String anchorIdFromNameAndPrefix(String prefix, String name) { diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/AnchorFeature.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/AnchorFeature.java index db91778b7..89dee6a24 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/AnchorFeature.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/AnchorFeature.java @@ -20,10 +20,12 @@ import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; import org.testingisdocumenting.znai.extensions.features.PluginFeature; +import org.testingisdocumenting.znai.structure.AnchorIds; import org.testingisdocumenting.znai.structure.DocStructure; import org.testingisdocumenting.znai.utils.NameUtils; import java.nio.file.Path; +import java.util.Collections; import java.util.Map; import static org.testingisdocumenting.znai.extensions.PluginParamsDefinitionCommon.TITLE_KEY; @@ -47,16 +49,16 @@ public AnchorFeature(DocStructure docStructure, Path markupPath, PluginParams pl public void updateProps(Map props) { String anchorId = pluginParams.getOpts().get(ANCHOR_ID_KEY, ""); if (!anchorId.isEmpty()) { - docStructure.registerLocalAnchor(markupPath, anchorId); + docStructure.registerLocalAnchors(markupPath, new AnchorIds(anchorId, Collections.emptyList())); return; } String title = pluginParams.getOpts().get(TITLE_KEY, props.getOrDefault(TITLE_KEY, "").toString()); if (!title.isEmpty()) { - String uniqueAnchorId = docStructure.generateUniqueAnchor(markupPath, NameUtils.idFromTitle(title)); - docStructure.registerLocalAnchor(markupPath, uniqueAnchorId); + var uniqueAnchorIds = docStructure.generateUniqueAnchors(markupPath, NameUtils.idFromTitle(title)); + docStructure.registerLocalAnchors(markupPath, uniqueAnchorIds); - props.put(ANCHOR_ID_KEY, uniqueAnchorId); + props.put(ANCHOR_ID_KEY, uniqueAnchorIds.main()); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/parser/docelement/DocElementCreationParserHandler.java b/znai-core/src/main/java/org/testingisdocumenting/znai/parser/docelement/DocElementCreationParserHandler.java index ec928cfaa..7be1f5caf 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/parser/docelement/DocElementCreationParserHandler.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/parser/docelement/DocElementCreationParserHandler.java @@ -35,6 +35,7 @@ import org.testingisdocumenting.znai.parser.table.MarkupTableData; import org.testingisdocumenting.znai.reference.DocReferences; import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.structure.AnchorIds; import org.testingisdocumenting.znai.structure.DocStructure; import org.testingisdocumenting.znai.structure.DocUrl; import org.testingisdocumenting.znai.structure.TocItem; @@ -102,16 +103,17 @@ public void onSectionStart(String title, HeadingProps headingProps) { Map headingPropsMap = headingProps.props(); - String id = new PageSectionIdTitle(title, headingPropsMap).getId(); + DocStructure docStructure = componentsRegistry.docStructure(); + String sectionId = new PageSectionIdTitle(title, headingPropsMap).getId(); + docStructure.onSectionOrSubHeading(path, 1, sectionId); + + var anchorIds = docStructure.generateUniqueAnchors(path, ""); Map props = new LinkedHashMap<>(headingPropsMap); - props.put("id", id); + addAnchorIdsToProps(props, anchorIds); props.put("title", title); start(DocElementType.SECTION, props); - - DocStructure docStructure = componentsRegistry.docStructure(); - docStructure.registerLocalAnchor(path, id); - docStructure.onSectionOrSubHeading(path, 1, id); + docStructure.registerLocalAnchors(path, anchorIds); isSectionStarted = true; } @@ -139,11 +141,11 @@ public void onSubHeading(int level, String title, HeadingProps headingProps) { DocStructure docStructure = componentsRegistry.docStructure(); docStructure.onSectionOrSubHeading(path, level, idByTitle); - String id = docStructure.generateUniqueAnchor(path, ""); - docStructure.registerLocalAnchor(path, id); + var ids = docStructure.generateUniqueAnchors(path, ""); + docStructure.registerLocalAnchors(path, ids); Map props = new LinkedHashMap<>(headingPropsMap); - props.put("id", id); + addAnchorIdsToProps(props, ids); props.put("level", level); props.put("title", title); append(DocElementType.SUB_HEADING, props); @@ -521,5 +523,10 @@ private String convertAndRegisterLocalFileToUrl(String url) { return docStructure.fullUrl(auxiliaryFile.getDeployRelativePath().toString()); } + + private void addAnchorIdsToProps(Map props, AnchorIds ids) { + props.put("id", ids.main()); + props.put("additionalIds", ids.additional()); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/structure/AnchorIds.java b/znai-core/src/main/java/org/testingisdocumenting/znai/structure/AnchorIds.java new file mode 100644 index 000000000..b63a1eb4e --- /dev/null +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/structure/AnchorIds.java @@ -0,0 +1,22 @@ +/* + * Copyright 2024 znai maintainers + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.testingisdocumenting.znai.structure; + +import java.util.List; + +public record AnchorIds (String main, List additional) { +} diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/structure/DocStructure.java b/znai-core/src/main/java/org/testingisdocumenting/znai/structure/DocStructure.java index edac4b3a7..249b99728 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/structure/DocStructure.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/structure/DocStructure.java @@ -25,10 +25,10 @@ public interface DocStructure { String fullUrl(String relativeUrl); void onSectionOrSubHeading(Path path, int level, String id); - String generateUniqueAnchor(Path path, String localId); + AnchorIds generateUniqueAnchors(Path path, String localId); void registerGlobalAnchor(Path sourcePath, String anchorId); - void registerLocalAnchor(Path path, String anchorId); + void registerLocalAnchors(Path path, AnchorIds anchorIds); String globalAnchorUrl(Path clientPath, String anchorId); Optional findGlobalAnchorUrl(String globalAnchorId); diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/structure/UniqueAnchorIdGenerator.java b/znai-core/src/main/java/org/testingisdocumenting/znai/structure/UniqueAnchorIdGenerator.java index 14b4b39d2..91dfb1a12 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/structure/UniqueAnchorIdGenerator.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/structure/UniqueAnchorIdGenerator.java @@ -17,10 +17,7 @@ package org.testingisdocumenting.znai.structure; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -39,26 +36,57 @@ public void registerSectionOrSubHeading(Path path, Integer level, String id) { headings.add(new LevelId(level, id)); } - public String generateId(Path path, String nonUniqueId) { + public AnchorIds generateIds(Path path, String nonUniqueId) { + // we create multiple ids: long version and short version + // both ids should work and be recognizable, but we visually expose the long version + var prefixes = buildPrefixes(path, nonUniqueId); + var main = updateWithCountSuffixIfRequired(path, prefixes.usingAllHeadings); + var alternative = updateWithCountSuffixIfRequired(path, prefixes.usingLastHeading); + + boolean arePrefixesEqual = prefixes.usingAllHeadings.equals(prefixes.usingLastHeading); + var alternativeList = arePrefixesEqual ? + Collections.emptyList(): + Collections.singletonList(alternative); + return new AnchorIds(main, alternativeList); + } + + private String updateWithCountSuffixIfRequired(Path path, String prefix) { + var pathsCounts = usedHeadingsCountByPath.computeIfAbsent(path, k -> new HashMap<>()); + + Integer count = pathsCounts.getOrDefault(prefix, 0); + pathsCounts.put(prefix, count + 1); + + if (count == 0) { + return prefix; + } + + return prefix + "-" + (count + 1); + } + + private Prefixes buildPrefixes(Path path, String nonUniqueId) { var headings = getOrCreateHeadings(path); - String prefix = headings.stream() + + String fullPrefix = headings.stream() .map(LevelId::getId) .filter(id -> !id.isEmpty()) .collect(Collectors.joining("-")); - if (!nonUniqueId.isEmpty()) { - prefix = prefix + (prefix.isEmpty() ? nonUniqueId : "-" + nonUniqueId); + String lastHeadingOnly = headings.isEmpty() ? "" : headings.get(headings.size() - 1).id; + + return new Prefixes(combinePrefixAndId(fullPrefix, nonUniqueId), + combinePrefixAndId(lastHeadingOnly, nonUniqueId)); + } + + private String combinePrefixAndId(String prefix, String id) { + if (prefix.isEmpty()) { + return id; } - var usedHeadingsCount = usedHeadingsCountByPath.computeIfAbsent(path, k -> new HashMap<>()); - Integer count = usedHeadingsCount.get(prefix); - if (count == null) { - usedHeadingsCount.put(prefix, 1); + if (id.isEmpty()) { return prefix; } - usedHeadingsCount.put(prefix, count + 1); - return prefix + "-" + (count + 1); + return prefix + "-" + id; } private List getOrCreateHeadings(Path path) { @@ -83,4 +111,6 @@ public String getId() { return id; } } + + record Prefixes (String usingAllHeadings, String usingLastHeading) {} } \ No newline at end of file diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/utils/NameUtils.java b/znai-core/src/main/java/org/testingisdocumenting/znai/utils/NameUtils.java index b3bbbe10e..81c795705 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/utils/NameUtils.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/utils/NameUtils.java @@ -25,7 +25,7 @@ public static String idFromTitle(final String title) { if (title == null) return null; - String onlyTextAndNumbers = title.replaceAll("[^a-zA-Z0-9-_./ ]", ""); + String onlyTextAndNumbers = title.replaceAll("[^a-zA-Z0-9-_/ ]", ""); return onlyTextAndNumbers.toLowerCase().replaceAll("[\\s./]+", "-"); } diff --git a/znai-core/src/main/resources/lunrjs/indexCreation.js b/znai-core/src/main/resources/lunrjs/indexCreation.js index dfffb8f3b..f16130490 100644 --- a/znai-core/src/main/resources/lunrjs/indexCreation.js +++ b/znai-core/src/main/resources/lunrjs/indexCreation.js @@ -15,7 +15,30 @@ * limitations under the License. */ +var createStopWordFilter = function (stopWords) { + var words = stopWords.reduce(function (memo, stopWord) { + memo[stopWord] = stopWord + return memo + }, {}) + return function (token) { + if (token && words[token.toString()] !== token.toString()) return token + } +} + +var stopWordFilter = createStopWordFilter([ + 'a', + 'am', + 'an', + 'at', + 'be', + 'so', + 'to' +]) + znaiSearchIdx = lunr(function () { + this.pipeline.remove(lunr.stemmer) + this.pipeline.remove(lunr.stopWordFilter) + this.pipeline.add(stopWordFilter) this.ref('id') this.field('section') this.field('pageTitle') diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/json/JsonIncludePluginTest.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/json/JsonIncludePluginTest.groovy index 3f3e53c07..c7b5d7090 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/json/JsonIncludePluginTest.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/json/JsonIncludePluginTest.groovy @@ -125,7 +125,7 @@ class JsonIncludePluginTest { props.should == [data : expectedFullData, autoTitle : true, title : "test.json", - anchorId : "test-json", + anchorId : "testjson", highlightValues: [], highlightKeys : []] } diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/MarkdownParserTest.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/MarkdownParserTest.groovy index 66eeb4536..ea43b2d27 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/MarkdownParserTest.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/MarkdownParserTest.groovy @@ -130,7 +130,7 @@ class MarkdownParserTest { @Test void "header badge"() { parse('# my header {badge: "v1.32"}') - content.should == [[title: 'my header' , id: 'my-header', badge: 'v1.32', type: 'Section']] + content.should == [[title: 'my header' , id: 'my-header', additionalIds: [], badge: 'v1.32', type: 'Section']] } @Test @@ -223,39 +223,39 @@ world""") @Test void "top level sections"() { parse("# Section\ntext text") - content.should == [[type: 'Section', id: "section", title: "Section", content:[ + content.should == [[type: 'Section', id: "section", additionalIds: [], title: "Section", content:[ [type: "Paragraph", content: [[type: "SimpleText", text: "text text"]]]]]] } @Test void "top level section without text"() { parse("# ") - content.should == [[type: 'Section', id: "", title: ""]] + content.should == [[type: 'Section', id: "", additionalIds: [], title: ""]] } @Test void "second level section"() { parse("## Secondary Section \ntext text", Paths.get("new-file.md")) - content.should == [[type: 'SubHeading', level: 2, title: 'Secondary Section', id: 'secondary-section'], + content.should == [[type: 'SubHeading', level: 2, title: 'Secondary Section', id: 'secondary-section', additionalIds: []], [type: 'Paragraph', content: [[type: 'SimpleText', text: 'text text']]]] } @Test void "second level section without text"() { parse("## ", Paths.get("empty-header.md")) - content.should == [[type: 'SubHeading', level: 2, title: '', id: '']] + content.should == [[type: 'SubHeading', level: 2, title: '', id: '', additionalIds: []]] } @Test void "header inline code text is allowed"() { parse('# my header about `thing` here {badge: "v3.4"}') - content.should == [[title: 'my header about thing here', id: 'my-header-about-thing-here', badge: 'v3.4', type: 'Section']] + content.should == [[title: 'my header about thing here', id: 'my-header-about-thing-here', additionalIds: [], badge: 'v3.4', type: 'Section']] } @Test void "sub-header inline code text is allowed"() { parse('## my header about `thing` here {badge: "v3.4"}', Paths.get("sub-header.md")) - content.should == [[title: 'my header about thing here', id: 'my-header-about-thing-here', badge: 'v3.4', type: 'SubHeading', level: 2]] + content.should == [[title: 'my header about thing here', id: 'my-header-about-thing-here', additionalIds: [], badge: 'v3.4', type: 'SubHeading', level: 2]] } @Test diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/TestDocStructure.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/TestDocStructure.groovy index a770a7024..82f206586 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/TestDocStructure.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/parser/TestDocStructure.groovy @@ -17,6 +17,7 @@ package org.testingisdocumenting.znai.parser +import org.testingisdocumenting.znai.structure.AnchorIds import org.testingisdocumenting.znai.structure.DocStructure import org.testingisdocumenting.znai.structure.DocUrl import org.testingisdocumenting.znai.structure.TableOfContents @@ -68,8 +69,8 @@ class TestDocStructure implements DocStructure { } @Override - String generateUniqueAnchor(Path path, String localId) { - return uniqueAnchorIdGenerator.generateId(path, localId) + AnchorIds generateUniqueAnchors(Path path, String localId) { + return uniqueAnchorIdGenerator.generateIds(path, localId) } @Override @@ -77,8 +78,9 @@ class TestDocStructure implements DocStructure { } @Override - void registerLocalAnchor(Path path, String anchorId) { - registeredLocalLinks.add(anchorId) + void registerLocalAnchors(Path path, AnchorIds anchorIds) { + registeredLocalLinks.add(anchorIds.main()) + anchorIds.additional().forEach(registeredLocalLinks::add) } @Override diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/structure/UniqueAnchorIdGeneratorTest.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/structure/UniqueAnchorIdGeneratorTest.groovy index e93704b14..9fa67bc8e 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/structure/UniqueAnchorIdGeneratorTest.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/structure/UniqueAnchorIdGeneratorTest.groovy @@ -21,34 +21,41 @@ import org.junit.Test import java.nio.file.Paths class UniqueAnchorIdGeneratorTest { + def path = Paths.get("") + @Test void "same anchor id"() { - def path = Paths.get("") - def generator = new UniqueAnchorIdGenerator() - generator.generateId(path, "my-image").should == "my-image" + generator.generateIds(path, "my-image").should == [main: "my-image"] generator.registerSectionOrSubHeading(path, 1, "section") generator.registerSectionOrSubHeading(path, 2, "sub-section") - generator.generateId(path, "my-image").should == "section-sub-section-my-image" - generator.generateId(path, "my-image").should == "section-sub-section-my-image-2" + generator.generateIds(path, "my-image").should == [main: "section-sub-section-my-image", additional: ["sub-section-my-image"]] + generator.generateIds(path, "my-image").should == [main: "section-sub-section-my-image-2", additional: ["sub-section-my-image-2"]] generator.registerSectionOrSubHeading(path, 2, "another-sub-section") - generator.generateId(path, "my-image").should == "section-another-sub-section-my-image" + generator.generateIds(path, "my-image").should == [main: "section-another-sub-section-my-image", additional: ["another-sub-section-my-image"]] generator.registerSectionOrSubHeading(path, 1, "another-section") - generator.generateId(path, "my-image").should == "another-section-my-image" + generator.generateIds(path, "my-image").should == [main: "another-section-my-image", additional: []] } @Test void "different paths"() { def generator = new UniqueAnchorIdGenerator() - def path = Paths.get("") generator.registerSectionOrSubHeading(path, 1, "section") generator.registerSectionOrSubHeading(path, 2, "sub-section") def anotherPath = Paths.get("my-file.md") - generator.generateId(anotherPath, "my-image").should == "my-image" + generator.generateIds(anotherPath, "my-image").main().should == "my-image" + } + + @Test + void "empty non unique id"() { + def generator = new UniqueAnchorIdGenerator() + generator.registerSectionOrSubHeading(path, 1, "section") + generator.registerSectionOrSubHeading(path, 2, "sub-section") + generator.generateIds(path, "").should == [main: "section-sub-section", additional: ["sub-section"]] } } diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/utils/NameUtilsTest.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/utils/NameUtilsTest.groovy index de2c6248e..163eef786 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/utils/NameUtilsTest.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/utils/NameUtilsTest.groovy @@ -1,4 +1,5 @@ /* + * Copyright 2024 znai maintainers * Copyright 2019 TWO SIGMA OPEN SOURCE, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,18 +26,19 @@ class NameUtilsTest { @Test void "converts title to id stripping spaces and punctuation"() { assert idFromTitle(null) == null - assert idFromTitle('') == '' - assert idFromTitle('word') == 'word' - assert idFromTitle('Hello DearWorld') == 'hello-dearworld' - assert idFromTitle('Hello!. %#$ Dear/World?') == 'hello-dear-world' - assert idFromTitle('Negative-Value Tests') == 'negative-value-tests' + assert idFromTitle("") == "" + assert idFromTitle("word") == "word" + assert idFromTitle("Hello DearWorld") == "hello-dearworld" + assert idFromTitle("Hello!. %#\$ Dear/World?") == "hello-dear-world" + assert idFromTitle("Negative-Value Tests") == "negative-value-tests" + assert idFromTitle("don't") == "dont" } @Test void "converts dashes to camel case with spaces"() { assert dashToCamelCaseWithSpaces(null) == null - assert dashToCamelCaseWithSpaces('') == '' - assert dashToCamelCaseWithSpaces('word') == 'Word' - assert dashToCamelCaseWithSpaces('hello-dear-world') == 'Hello Dear World' + assert dashToCamelCaseWithSpaces("") == "" + assert dashToCamelCaseWithSpaces("word") == "Word" + assert dashToCamelCaseWithSpaces("hello-dear-world") == "Hello Dear World" } } diff --git a/znai-docs/znai/release-notes/1.58/add-2022-07-12-python-class-properties.md b/znai-docs/znai/release-notes/1.58/add-2022-07-12-python-class-properties.md index 497cd8a6a..31ac584a9 100644 --- a/znai-docs/znai/release-notes/1.58/add-2022-07-12-python-class-properties.md +++ b/znai-docs/znai/release-notes/1.58/add-2022-07-12-python-class-properties.md @@ -1 +1 @@ -* Render [Python Properties](python/auto-reference#fin-money-money-properties) as [API Parameters](snippets/api-parameters) \ No newline at end of file +* Render [Python Properties](python/auto-reference#finmoneymoney-properties) as [API Parameters](snippets/api-parameters) \ No newline at end of file diff --git a/znai-docs/znai/release-notes/1.71/add-2024-09-24-additional-anchor-ids.md b/znai-docs/znai/release-notes/1.71/add-2024-09-24-additional-anchor-ids.md new file mode 100644 index 000000000..5cea246f2 --- /dev/null +++ b/znai-docs/znai/release-notes/1.71/add-2024-09-24-additional-anchor-ids.md @@ -0,0 +1 @@ +* Add: support for additional "hidden" anchor ids when referencing [Other Pages](flow/page-references) to be backward compatible with existing markdowns. \ No newline at end of file diff --git a/znai-reactjs/src/doc-elements/default-elements/SubHeading.tsx b/znai-reactjs/src/doc-elements/default-elements/SubHeading.tsx index 9111448fe..1b18de140 100644 --- a/znai-reactjs/src/doc-elements/default-elements/SubHeading.tsx +++ b/znai-reactjs/src/doc-elements/default-elements/SubHeading.tsx @@ -28,12 +28,13 @@ import "./HeadingStyles.css"; interface Props { level: number; id: string; + additionalIds: string[]; title: string; badge?: string; style?: string; } -export function SubHeading({ level, title, id, badge, style }: Props) { +export function SubHeading({ level, title, id, additionalIds, badge, style }: Props) { const Element = `h${level}`; const className = "content-block znai-heading" + (style ? " " + style : ""); @@ -45,6 +46,9 @@ export function SubHeading({ level, title, id, badge, style }: Props) { + {additionalIds.map((id) => ( + + ))} ); } diff --git a/znai-reactjs/src/doc-elements/search/QueryResult.js b/znai-reactjs/src/doc-elements/search/QueryResult.js index e07452af0..501f97acc 100644 --- a/znai-reactjs/src/doc-elements/search/QueryResult.js +++ b/znai-reactjs/src/doc-elements/search/QueryResult.js @@ -1,4 +1,5 @@ /* + * Copyright 2024 znai maintainers * Copyright 2019 TWO SIGMA OPEN SOURCE, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,19 +28,22 @@ export default class QueryResult { return Object.keys(this.snippetsCallbacksById) } - getSnippetsToHighlight(id, text) { + getSnippetsToHighlight(id, searchEntry) { const snippets = [] const snippetsById = this.snippetsCallbacksById[id] const snippetsTypeById = this.snippetsTypeById[id] const len = snippetsById.length - for (let i = 0; i < len; i++) { - const callback = snippetsById[i] - const type = snippetsTypeById[i] + for (let idx = 0; idx < len; idx++) { + const callback = snippetsById[idx] + const type = snippetsTypeById[idx] - if (type === 'text') { - snippets.push(...callback(text)) + console.log("@@type", type, "searchEntry", searchEntry) + if (type === 'textStandard') { + snippets.push(...callback(searchEntry.textStandard)) + } else if (type === 'textHigh') { + snippets.push(...callback(searchEntry.textHigh)) } } diff --git a/znai-reactjs/src/doc-elements/search/Search.js b/znai-reactjs/src/doc-elements/search/Search.js index 674fd8776..b1ec827f2 100644 --- a/znai-reactjs/src/doc-elements/search/Search.js +++ b/znai-reactjs/src/doc-elements/search/Search.js @@ -37,6 +37,10 @@ class Search { const lowestBoost = 0.05 const matches = this.searchIdx.query(q => { term.split(lunr.tokenizer.separator).forEach(function (term) { + // if (term.length <= 2) { + // return + // } + q.term(term, { fields: [ 'pageTitle' ], boost: highestBoost }) q.term(term, { fields: [ 'pageSection' ], boost: highestBoost }) q.term(term, { fields: [ 'textStandard' ], boost: defaultBoost }) @@ -52,6 +56,8 @@ class Search { }) }) + console.log("term", term, "matches", matches) + return new QueryResult(matches) } @@ -61,7 +67,7 @@ class Search { previewDetails(id, queryResult) { const section = this._findSectionById(id) - const snippets = queryResult.getSnippetsToHighlight(id, this.findSearchEntryById(id).text) + const snippets = queryResult.getSnippetsToHighlight(id, this.findSearchEntryById(id)) return {section, snippets} } @@ -92,8 +98,8 @@ class Search { function mapById(searchData) { const result = {} - searchData.forEach(([id, section, pageTitle, pageSection, text]) => { - result[id] = {section, pageTitle, pageSection, text} + searchData.forEach(([id, section, pageTitle, pageSection, textStandard, textHigh]) => { + result[id] = {section, pageTitle, pageSection, textStandard, textHigh} }) return result diff --git a/znai-reactjs/src/doc-elements/search/SearchPreview.js b/znai-reactjs/src/doc-elements/search/SearchPreview.js index 1b91642e7..269ef96c2 100644 --- a/znai-reactjs/src/doc-elements/search/SearchPreview.js +++ b/znai-reactjs/src/doc-elements/search/SearchPreview.js @@ -39,6 +39,7 @@ class SearchPreview extends Component { highlight() { const {snippets} = this.props + console.log("highlight snippets", snippets) const mark = new Mark(this.dom) mark.mark(snippets, { diff --git a/znai-reactjs/src/doc-elements/search/testData.js b/znai-reactjs/src/doc-elements/search/testData.js index 37869c63c..d688d7b10 100644 --- a/znai-reactjs/src/doc-elements/search/testData.js +++ b/znai-reactjs/src/doc-elements/search/testData.js @@ -1,7 +1,7 @@ import lunr from 'lunr' -window.znaiSearchData = [["introduction@@what-is-this@@beautiful-and-maintainable-user-guide","Introduction","What Is This","Beautiful and Maintainable User Guide","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide"],["introduction@@what-is-this@@extensive-plugins-system","Introduction","What Is This","Extensive Plugins System","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ```"],["introduction@@what-is-this@@rich-visuals","Introduction","What Is This","Rich Visuals","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ```"],["introduction@@what-is-this@@dark-light-runtime-mode","Introduction","What Is This","Dark/Light Runtime Mode","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc Generate one documentation and let your users switch Dark Light theme at runtime","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ```"],["introduction@@what-is-this@@two-sides-page-layout","Introduction","What Is This","Two Sides Page Layout","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc Generate one documentation and let your users switch Dark Light theme at runtime Use two sides layout option to render examples and supporting information side by side with convenient examples language switch","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ```"],["introduction@@what-is-this@@local-search","Introduction","What Is This","Local Search","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc Generate one documentation and let your users switch Dark Light theme at runtime Use two sides layout option to render examples and supporting information side by side with convenient examples language switch Local search with preview and instant navigation to the result","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ```"],["introduction@@what-is-this@@auto-presentation","Introduction","What Is This","Auto Presentation","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc Generate one documentation and let your users switch Dark Light theme at runtime Use two sides layout option to render examples and supporting information side by side with convenient examples language switch Local search with preview and instant navigation to the result With a click of a button turns User Guide content to presentation slides Single source of truth and minimal effort Present a feature in a meeting and then share the same content as a link to the documentation","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ``` Znai"],["introduction@@what-is-this@@batteries-included","Introduction","What Is This","Batteries Included","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc Generate one documentation and let your users switch Dark Light theme at runtime Use two sides layout option to render examples and supporting information side by side with convenient examples language switch Local search with preview and instant navigation to the result With a click of a button turns User Guide content to presentation slides Single source of truth and minimal effort Present a feature in a meeting and then share the same content as a link to the documentation Znai comes with Markdown with custom extensions and dozens of plugins Content from external files with markers and filters support Simplified extraction of a function body content working with examples Embedding of JavaDoc PyDoc documentation text preserving styles Beautiful API documentation capabilities Two Sides Page Layout with convenient examples language switch Rich visuals like flow diagrams and charts etc Dev server mode with changes highlight and auto jump to a change Local search with full preview Dark light mode runtime switch Presentation Mode to automatically turn your documentation into slides using the same content","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ``` Znai"],["introduction@@what-is-this@@batteries-included","Introduction","What Is This","Batteries Included","combines human written text with artifacts such as etc to create up to date maintainable beautiful User Guides and Tutorials extends markdown with plugins system to supercharge visuals and maintainability Three categories of plugins are available for usage and creation Include Inlined Code It is a day is ticking Fenced Block C content of C tab Java content of Java tab Python content of Python tab Leverage multiple out of the box plugins to render charts flow diagrams annotated images dynamic SVGs etc Generate one documentation and let your users switch Dark Light theme at runtime Use two sides layout option to render examples and supporting information side by side with convenient examples language switch Local search with preview and instant navigation to the result With a click of a button turns User Guide content to presentation slides Single source of truth and minimal effort Present a feature in a meeting and then share the same content as a link to the documentation Znai comes with Markdown with custom extensions and dozens of plugins Content from external files with markers and filters support Simplified extraction of a function body content working with examples Embedding of JavaDoc PyDoc documentation text preserving styles Beautiful API documentation capabilities Two Sides Page Layout with convenient examples language switch Rich visuals like flow diagrams and charts etc Dev server mode with changes highlight and auto jump to a change Local search with full preview Dark light mode runtime switch Presentation Mode to automatically turn your documentation into slides using the same content","Znai code graphs REST API Java Docs Doxygen # Beautiful and Maintainable User Guide `Znai` combines human written text with artifacts such as `code` `graphs` `REST API` `Java Docs` `Doxygen` etc to create up to date maintainable beautiful **User Guides** and **Tutorials** include flow chart artifacts flow json vertical true highlight userguide Znai include json example json title JSON example highlightValue root person id collapsedPaths root details include java java HelloWorld java entry sampleMethod bodyOnly true commentsType inline validate process p2 important comment notifyAll p1 very important return bestSample It is a ` icon cloud` day ` icon clock` is ticking ```tabs C content of C tab Java content of Java tab Python content of Python tab ``` Znai"],["introduction@@getting-started@@markdown","Introduction","Getting Started","Markdown","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial",""],["introduction@@getting-started@@running-znai","Introduction","Getting Started","Running Znai","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process",""],["introduction@@getting-started@@command-line","Introduction","Getting Started","Command Line","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew",""],["introduction@@getting-started@@maven-plugin","Introduction","Getting Started","Maven Plugin","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin>"],["introduction@@getting-started@@scaffolding","Introduction","Getting Started","Scaffolding","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project To create a minimum set of files for your documentation execute CLI znai new Maven mvn znai new Listed above directories and files will be generated in the current directory"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin> znai | chapter one | page one md | page two md | chapter two | page three md | page four md | toc | lookup paths | meta json"],["introduction@@getting-started@@preview-mode","Introduction","Getting Started","Preview Mode","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project To create a minimum set of files for your documentation execute CLI znai new Maven mvn znai new Listed above directories and files will be generated in the current directory Znai comes with mode In mode znai monitors changes you apply to the documentation files and notifies browser to navigates to the right page and highlights the changes To start preview mode navigate to the documentation directory if you used scaffold and run CLI znai preview port port number Maven mvn znai preview org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> 3334< port> < optional override of default value 3333 > < configuration> < plugin> Open URL output by the command and open in a browser Blue eye icon in the top right corner indicates that preview is on Open any text editor modify and save a markdown file Changes will be reflected in the browser"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin> znai | chapter one | page one md | page two md | chapter two | page three md | page four md | toc | lookup paths | meta json preview preview znai"],["introduction@@getting-started@@static-site-generation","Introduction","Getting Started","Static Site Generation","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project To create a minimum set of files for your documentation execute CLI znai new Maven mvn znai new Listed above directories and files will be generated in the current directory Znai comes with mode In mode znai monitors changes you apply to the documentation files and notifies browser to navigates to the right page and highlights the changes To start preview mode navigate to the documentation directory if you used scaffold and run CLI znai preview port port number Maven mvn znai preview org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> 3334< port> < optional override of default value 3333 > < configuration> < plugin> Open URL output by the command and open in a browser Blue eye icon in the top right corner indicates that preview is on Open any text editor modify and save a markdown file Changes will be reflected in the browser To build static documentation site you need to provide Documentation id becomes part of your url and is also used inside generated HTMLs to reference static resources using absolute path For example znai original documentation is hosted on https testingisdocumenting org znai and documentation id is This original page is hosted on https testingisdocumenting org znai introduction getting started znai generates each page as index html and puts inside directories to make it possible to have an extension less urls To make it easier to handle static resources loading Znai builds all the urls inside HTML pages using absolute locations and that s why it is required to provide during the site generation To generate static site use CLI znai doc id my docs deploy path to static content Maven org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> project name< docId> path to static content< deployRoot> < default is $ project build directory > < configuration> < plugin>"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin> znai | chapter one | page one md | page two md | chapter two | page three md | page four md | toc | lookup paths | meta json preview preview znai documentation id znai documentation id"],["introduction@@getting-started@@github-pages","Introduction","Getting Started","GitHub Pages","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project To create a minimum set of files for your documentation execute CLI znai new Maven mvn znai new Listed above directories and files will be generated in the current directory Znai comes with mode In mode znai monitors changes you apply to the documentation files and notifies browser to navigates to the right page and highlights the changes To start preview mode navigate to the documentation directory if you used scaffold and run CLI znai preview port port number Maven mvn znai preview org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> 3334< port> < optional override of default value 3333 > < configuration> < plugin> Open URL output by the command and open in a browser Blue eye icon in the top right corner indicates that preview is on Open any text editor modify and save a markdown file Changes will be reflected in the browser To build static documentation site you need to provide Documentation id becomes part of your url and is also used inside generated HTMLs to reference static resources using absolute path For example znai original documentation is hosted on https testingisdocumenting org znai and documentation id is This original page is hosted on https testingisdocumenting org znai introduction getting started znai generates each page as index html and puts inside directories to make it possible to have an extension less urls To make it easier to handle static resources loading Znai builds all the urls inside HTML pages using absolute locations and that s why it is required to provide during the site generation To generate static site use CLI znai doc id my docs deploy path to static content Maven org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> project name< docId> path to static content< deployRoot> < default is $ project build directory > < configuration> < plugin> To deploy to GitHub Pages use GitHub Pages Action Here is an example of znai publishing its documentation to github pages"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin> znai | chapter one | page one md | page two md | chapter two | page three md | page four md | toc | lookup paths | meta json preview preview znai documentation id znai documentation id name deploy documentation uses peaceiris actions gh pages@v3 with github_token $ secrets GITHUB_TOKEN publish_dir znai docs target znai"],["introduction@@getting-started@@on-site-central-hub-deployment","Introduction","Getting Started","On-site Central Hub Deployment","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project To create a minimum set of files for your documentation execute CLI znai new Maven mvn znai new Listed above directories and files will be generated in the current directory Znai comes with mode In mode znai monitors changes you apply to the documentation files and notifies browser to navigates to the right page and highlights the changes To start preview mode navigate to the documentation directory if you used scaffold and run CLI znai preview port port number Maven mvn znai preview org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> 3334< port> < optional override of default value 3333 > < configuration> < plugin> Open URL output by the command and open in a browser Blue eye icon in the top right corner indicates that preview is on Open any text editor modify and save a markdown file Changes will be reflected in the browser To build static documentation site you need to provide Documentation id becomes part of your url and is also used inside generated HTMLs to reference static resources using absolute path For example znai original documentation is hosted on https testingisdocumenting org znai and documentation id is This original page is hosted on https testingisdocumenting org znai introduction getting started znai generates each page as index html and puts inside directories to make it possible to have an extension less urls To make it easier to handle static resources loading Znai builds all the urls inside HTML pages using absolute locations and that s why it is required to provide during the site generation To generate static site use CLI znai doc id my docs deploy path to static content Maven org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> project name< docId> path to static content< deployRoot> < default is $ project build directory > < configuration> < plugin> To deploy to GitHub Pages use GitHub Pages Action Here is an example of znai publishing its documentation to github pages Znai has enterprise mode that lets you run Documentation hub inside your organization It is completely free and open sourced Please create a GitHub issue if you want to try it out I don t document it yet as I only have a couple of scenarios I tried it on and I need more input"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin> znai | chapter one | page one md | page two md | chapter two | page three md | page four md | toc | lookup paths | meta json preview preview znai documentation id znai documentation id name deploy documentation uses peaceiris actions gh pages@v3 with github_token $ secrets GITHUB_TOKEN publish_dir znai docs target znai"],["introduction@@getting-started@@on-site-central-hub-deployment","Introduction","Getting Started","On-site Central Hub Deployment","The fastest way to learn Markdown is to go to CommonMark website and go through a 60 second cheatsheet or 10 minute tutorial Znai is available as Command Line Maven Plugin Both command line and maven plugin lets you to build documentation website and also run preview server during documentation writing process brew install testingisdocumenting brew znai CLI download PATH Download and unzip znai Add it to your Brew Note consider adding a separate module for documentation in the multi module maven project To create a minimum set of files for your documentation execute CLI znai new Maven mvn znai new Listed above directories and files will be generated in the current directory Znai comes with mode In mode znai monitors changes you apply to the documentation files and notifies browser to navigates to the right page and highlights the changes To start preview mode navigate to the documentation directory if you used scaffold and run CLI znai preview port port number Maven mvn znai preview org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> 3334< port> < optional override of default value 3333 > < configuration> < plugin> Open URL output by the command and open in a browser Blue eye icon in the top right corner indicates that preview is on Open any text editor modify and save a markdown file Changes will be reflected in the browser To build static documentation site you need to provide Documentation id becomes part of your url and is also used inside generated HTMLs to reference static resources using absolute path For example znai original documentation is hosted on https testingisdocumenting org znai and documentation id is This original page is hosted on https testingisdocumenting org znai introduction getting started znai generates each page as index html and puts inside directories to make it possible to have an extension less urls To make it easier to handle static resources loading Znai builds all the urls inside HTML pages using absolute locations and that s why it is required to provide during the site generation To generate static site use CLI znai doc id my docs deploy path to static content Maven org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> project name< docId> path to static content< deployRoot> < default is $ project build directory > < configuration> < plugin> To deploy to GitHub Pages use GitHub Pages Action Here is an example of znai publishing its documentation to github pages Znai has enterprise mode that lets you run Documentation hub inside your organization It is completely free and open sourced Please create a GitHub issue if you want to try it out I don t document it yet as I only have a couple of scenarios I tried it on and I need more input"," org testingisdocumenting znai< groupId> znai maven plugin< artifactId> 1 70< version> < plugin> znai | chapter one | page one md | page two md | chapter two | page three md | page four md | toc | lookup paths | meta json preview preview znai documentation id znai documentation id name deploy documentation uses peaceiris actions gh pages@v3 with github_token $ secrets GITHUB_TOKEN publish_dir znai docs target znai"],["flow@@structure@@building-blocks","Flow","Structure","Building Blocks","has three levels of documentation organization Chapters Pages Page Sections encourages authors to split their content across multiple pages If you feel like you need to use nested headings consider moving your content hierarchy one level up Split overlong page into multiple ones Introduce chapters Focus on one thing at a time","Znai Znai"],["flow@@structure@@similarity-with-oop","Flow","Structure","Similarity with OOP","has three levels of documentation organization Chapters Pages Page Sections encourages authors to split their content across multiple pages If you feel like you need to use nested headings consider moving your content hierarchy one level up Split overlong page into multiple ones Introduce chapters Focus on one thing at a time It may be useful to compare documentation design to an object oriented programming approach Chapters as Pages as Page Sections as It is a bad practice to have a class with loosely related methods Similarly it is a bad practice to have a long page with loosely related sections","Znai Znai packages classes methods"],["flow@@structure@@table-of-contents","Flow","Structure","Table of Contents","has three levels of documentation organization Chapters Pages Page Sections encourages authors to split their content across multiple pages If you feel like you need to use nested headings consider moving your content hierarchy one level up Split overlong page into multiple ones Introduce chapters Focus on one thing at a time It may be useful to compare documentation design to an object oriented programming approach Chapters as Pages as Page Sections as It is a bad practice to have a class with loosely related methods Similarly it is a bad practice to have a long page with loosely related sections Each documentation must have file in its root This file contains chapters and pages This is a file for this documentation Take a look at the left side bar and compare it with the file content The top entry corresponds to the directory of the same name The nested entry corresponds to the file","Znai Znai packages classes methods toc toc introduction what is this getting started flow structure landing names page references page toc lookup paths search footer support presentation testing is documenting shortcuts snippets code snippets external code snippets snippets manipulation snippets highlighting code comments inlined code snippets api parameters code references json xml open API CLI math jupyter notebook cpp python java groovy markdown visuals attention signs images image annotations cards charts mermaid diagrams SVG icons headings text badge spoilers keyboard shortcuts smart bullet points flow diagrams graphviz diagrams PlantUml iframe layout tabs tables columns templates two sides pages two sides tabs jupyter notebook two sides python content extraction description extraction auto reference CPP doxygen setup description extraction auto reference java content extraction description extraction auto reference synergy with testing web UI REST API business logic plugins plugin types default parameters development configuration basic styling deployment additional files example references domain api znai development local build release notes 2024 2023 2022 2021 introduction rationale rationale md"],["flow@@structure@@sub-headings","Flow","Structure","Sub Headings","has three levels of documentation organization Chapters Pages Page Sections encourages authors to split their content across multiple pages If you feel like you need to use nested headings consider moving your content hierarchy one level up Split overlong page into multiple ones Introduce chapters Focus on one thing at a time It may be useful to compare documentation design to an object oriented programming approach Chapters as Pages as Page Sections as It is a bad practice to have a class with loosely related methods Similarly it is a bad practice to have a long page with loosely related sections Each documentation must have file in its root This file contains chapters and pages This is a file for this documentation Take a look at the left side bar and compare it with the file content The top entry corresponds to the directory of the same name The nested entry corresponds to the file Only a first level heading is treated as a first class citizen Part of TOC Smallest unit of search result Nested sub headings only add visual distinction within a page Sub heading content of sub heading Sub Sub heading content of sub sub heading","Znai Znai packages classes methods toc toc introduction what is this getting started flow structure landing names page references page toc lookup paths search footer support presentation testing is documenting shortcuts snippets code snippets external code snippets snippets manipulation snippets highlighting code comments inlined code snippets api parameters code references json xml open API CLI math jupyter notebook cpp python java groovy markdown visuals attention signs images image annotations cards charts mermaid diagrams SVG icons headings text badge spoilers keyboard shortcuts smart bullet points flow diagrams graphviz diagrams PlantUml iframe layout tabs tables columns templates two sides pages two sides tabs jupyter notebook two sides python content extraction description extraction auto reference CPP doxygen setup description extraction auto reference java content extraction description extraction auto reference synergy with testing web UI REST API business logic plugins plugin types default parameters development configuration basic styling deployment additional files example references domain api znai development local build release notes 2024 2023 2022 2021 introduction rationale rationale md # First Class Citizen ## Sub heading content of sub heading ### Sub Sub heading content of sub sub heading"],["flow@@structure@@meta","Flow","Structure","Meta","has three levels of documentation organization Chapters Pages Page Sections encourages authors to split their content across multiple pages If you feel like you need to use nested headings consider moving your content hierarchy one level up Split overlong page into multiple ones Introduce chapters Focus on one thing at a time It may be useful to compare documentation design to an object oriented programming approach Chapters as Pages as Page Sections as It is a bad practice to have a class with loosely related methods Similarly it is a bad practice to have a long page with loosely related sections Each documentation must have file in its root This file contains chapters and pages This is a file for this documentation Take a look at the left side bar and compare it with the file content The top entry corresponds to the directory of the same name The nested entry corresponds to the file Only a first level heading is treated as a first class citizen Part of TOC Smallest unit of search result Nested sub headings only add visual distinction within a page Sub heading content of sub heading Sub Sub heading content of sub sub heading Each documentation must have the file in its root This file contains documentation display name type and optional information","Znai Znai packages classes methods toc toc introduction what is this getting started flow structure landing names page references page toc lookup paths search footer support presentation testing is documenting shortcuts snippets code snippets external code snippets snippets manipulation snippets highlighting code comments inlined code snippets api parameters code references json xml open API CLI math jupyter notebook cpp python java groovy markdown visuals attention signs images image annotations cards charts mermaid diagrams SVG icons headings text badge spoilers keyboard shortcuts smart bullet points flow diagrams graphviz diagrams PlantUml iframe layout tabs tables columns templates two sides pages two sides tabs jupyter notebook two sides python content extraction description extraction auto reference CPP doxygen setup description extraction auto reference java content extraction description extraction auto reference synergy with testing web UI REST API business logic plugins plugin types default parameters development configuration basic styling deployment additional files example references domain api znai development local build release notes 2024 2023 2022 2021 introduction rationale rationale md # First Class Citizen ## Sub heading content of sub heading ### Sub Sub heading content of sub sub heading meta json JSON View On title Znai type User Guide category Documentation description Build functional maintainable beautiful User Guides with markdown and Znai plugins Instant pages navigation Local search Multiple integrations to work with Python Java C OpenAPI etc Transform getting started sections into slideshow for your workshops Manage multiple documentations with self deployed znai hub viewOn link https github com testingisdocumenting znai blob master znai docs znai title View Markdown support link https github com testingisdocumenting znai discussions title GitHub"],["flow@@structure@@meta","Flow","Structure","Meta","has three levels of documentation organization Chapters Pages Page Sections encourages authors to split their content across multiple pages If you feel like you need to use nested headings consider moving your content hierarchy one level up Split overlong page into multiple ones Introduce chapters Focus on one thing at a time It may be useful to compare documentation design to an object oriented programming approach Chapters as Pages as Page Sections as It is a bad practice to have a class with loosely related methods Similarly it is a bad practice to have a long page with loosely related sections Each documentation must have file in its root This file contains chapters and pages This is a file for this documentation Take a look at the left side bar and compare it with the file content The top entry corresponds to the directory of the same name The nested entry corresponds to the file Only a first level heading is treated as a first class citizen Part of TOC Smallest unit of search result Nested sub headings only add visual distinction within a page Sub heading content of sub heading Sub Sub heading content of sub sub heading Each documentation must have the file in its root This file contains documentation display name type and optional information","Znai Znai packages classes methods toc toc introduction what is this getting started flow structure landing names page references page toc lookup paths search footer support presentation testing is documenting shortcuts snippets code snippets external code snippets snippets manipulation snippets highlighting code comments inlined code snippets api parameters code references json xml open API CLI math jupyter notebook cpp python java groovy markdown visuals attention signs images image annotations cards charts mermaid diagrams SVG icons headings text badge spoilers keyboard shortcuts smart bullet points flow diagrams graphviz diagrams PlantUml iframe layout tabs tables columns templates two sides pages two sides tabs jupyter notebook two sides python content extraction description extraction auto reference CPP doxygen setup description extraction auto reference java content extraction description extraction auto reference synergy with testing web UI REST API business logic plugins plugin types default parameters development configuration basic styling deployment additional files example references domain api znai development local build release notes 2024 2023 2022 2021 introduction rationale rationale md # First Class Citizen ## Sub heading content of sub heading ### Sub Sub heading content of sub sub heading meta json JSON View On title Znai type User Guide category Documentation description Build functional maintainable beautiful User Guides with markdown and Znai plugins Instant pages navigation Local search Multiple integrations to work with Python Java C OpenAPI etc Transform getting started sections into slideshow for your workshops Manage multiple documentations with self deployed znai hub viewOn link https github com testingisdocumenting znai blob master znai docs znai title View Markdown support link https github com testingisdocumenting znai discussions title GitHub"],["flow@@landing@@optional-index-landing-page","Flow","Landing","Optional Index Landing Page","Optional file in the root is your landing page Consider putting logos and high level information about your product there Note Landing page is not part of your Table Of Contents and is not present on navigation panel Don t put essential information there as users may not get back there often","index md"],["flow@@landing@@auto-redirect","Flow","Landing","Auto Redirect","Optional file in the root is your landing page Consider putting logos and high level information about your product there Note Landing page is not part of your Table Of Contents and is not present on navigation panel Don t put essential information there as users may not get back there often Use plugin to automatically redirect from index page to any other page in your docs Use it if you don t know what to put on Landing Page or find yourself repeating the content in your next introduction page If is not present users will be redirected to the first page in your Table Of Contents","index md include redirect include redirect chapter page index md"],["flow@@landing@@auto-redirect","Flow","Landing","Auto Redirect","Optional file in the root is your landing page Consider putting logos and high level information about your product there Note Landing page is not part of your Table Of Contents and is not present on navigation panel Don t put essential information there as users may not get back there often Use plugin to automatically redirect from index page to any other page in your docs Use it if you don t know what to put on Landing Page or find yourself repeating the content in your next introduction page If is not present users will be redirected to the first page in your Table Of Contents","index md include redirect include redirect chapter page index md"],["flow@@names@@automatic-names","Flow","Page Titles","Automatic Names","By default page names are automatically derived from file names has the page title","file name md File Name"],["flow@@names@@name-overrides","Flow","Page Titles","Name Overrides","By default page names are automatically derived from file names has the page title To override the default add the following syntax to the top of your Markdown file To keep things easy for future documentation owners it s good practice to keep page and file names the same In some cases however you want to make exceptions for example in cases where you Need to use special characters in title Want to avoid auto capitalization Another way to override a page title is by adding a to file Note Title defined in takes precedence over inside markup file","file name md File Name title Custom Name title toc chapter one structure title Underlying Structure setup toc title"],["flow@@names@@chapter-names","Flow","Page Titles","Chapter Names","By default page names are automatically derived from file names has the page title To override the default add the following syntax to the top of your Markdown file To keep things easy for future documentation owners it s good practice to keep page and file names the same In some cases however you want to make exceptions for example in cases where you Need to use special characters in title Want to avoid auto capitalization Another way to override a page title is by adding a to file Note Title defined in takes precedence over inside markup file By default a chapter name is derived from dir name Dir name becomes chapter name To override a chapter name use inside file","file name md File Name title Custom Name title toc chapter one structure title Underlying Structure setup toc title my chapter My Chapter title chapter title toc chapter one title Chapter ONE explicit structure setup"],["flow@@names@@chapter-names","Flow","Page Titles","Chapter Names","By default page names are automatically derived from file names has the page title To override the default add the following syntax to the top of your Markdown file To keep things easy for future documentation owners it s good practice to keep page and file names the same In some cases however you want to make exceptions for example in cases where you Need to use special characters in title Want to avoid auto capitalization Another way to override a page title is by adding a to file Note Title defined in takes precedence over inside markup file By default a chapter name is derived from dir name Dir name becomes chapter name To override a chapter name use inside file","file name md File Name title Custom Name title toc chapter one structure title Underlying Structure setup toc title my chapter My Chapter title chapter title toc chapter one title Chapter ONE explicit structure setup"],["flow@@page-references@@follow-the-order","Flow","Page References","Follow the Order","Good documentation flows naturally Links to navigate to the next page are at the end of each page Create links to remind users of essential concepts introduced previously There is a good chance that a reader skipped over these or forgot about them Avoid links that navigate users forward It may break the flow of a documentation",""],["flow@@page-references@@links","Flow","Page References","Links","Good documentation flows naturally Links to navigate to the next page are at the end of each page Create links to remind users of essential concepts introduced previously There is a good chance that a reader skipped over these or forgot about them Avoid links that navigate users forward It may break the flow of a documentation To create an link use To refer page within your documentation use Note you can get by hovering over a section title and pressing link icon Your browser URL display the updated link Links to Subsection Linking to subsections is the same as linking to a top level section Here is an example Use Subsection Shortcut if a subsection is within the same page Index Page Clicking this index page link will have the same effect as clicking the documentation title at the top of the Navigation Panel To refer back to the top level page use","external Link Title http external reference internal internal link dir name file name md#optional page section id internal link file name md#optional page section id internal link dir name file name#optional page section id page section id Here is an example flow page references md#links links to subsection Here is an example flow page references#links links to subsection Subsection Shortcut #links index index page index page #link to subsection"],["flow@@page-references@@downloads","Flow","Page References","Downloads","Good documentation flows naturally Links to navigate to the next page are at the end of each page Create links to remind users of essential concepts introduced previously There is a good chance that a reader skipped over these or forgot about them Avoid links that navigate users forward It may break the flow of a documentation To create an link use To refer page within your documentation use Note you can get by hovering over a section title and pressing link icon Your browser URL display the updated link Links to Subsection Linking to subsections is the same as linking to a top level section Here is an example Use Subsection Shortcut if a subsection is within the same page Index Page Clicking this index page link will have the same effect as clicking the documentation title at the top of the Navigation Panel To refer back to the top level page use Linking to a local file will deploy the file along with the generated documentation Clicking the link will open a file using the browser s default method Download test json file","external Link Title http external reference internal internal link dir name file name md#optional page section id internal link file name md#optional page section id internal link dir name file name#optional page section id page section id Here is an example flow page references md#links links to subsection Here is an example flow page references#links links to subsection Subsection Shortcut #links index index page index page #link to subsection Download test json file data test json"],["flow@@page-references@@validation","Flow","Page References","Validation","Good documentation flows naturally Links to navigate to the next page are at the end of each page Create links to remind users of essential concepts introduced previously There is a good chance that a reader skipped over these or forgot about them Avoid links that navigate users forward It may break the flow of a documentation To create an link use To refer page within your documentation use Note you can get by hovering over a section title and pressing link icon Your browser URL display the updated link Links to Subsection Linking to subsections is the same as linking to a top level section Here is an example Use Subsection Shortcut if a subsection is within the same page Index Page Clicking this index page link will have the same effect as clicking the documentation title at the top of the Navigation Panel To refer back to the top level page use Linking to a local file will deploy the file along with the generated documentation Clicking the link will open a file using the browser s default method Download test json file Local links are automatically validated during documentation build time You will get a build time error if you refer to a page or a section sub section that does not exist Pass to enable external links validation","external Link Title http external reference internal internal link dir name file name md#optional page section id internal link file name md#optional page section id internal link dir name file name#optional page section id page section id Here is an example flow page references md#links links to subsection Here is an example flow page references#links links to subsection Subsection Shortcut #links index index page index page #link to subsection Download test json file data test json validate external links"],["flow@@page-references@@validation","Flow","Page References","Validation","Good documentation flows naturally Links to navigate to the next page are at the end of each page Create links to remind users of essential concepts introduced previously There is a good chance that a reader skipped over these or forgot about them Avoid links that navigate users forward It may break the flow of a documentation To create an link use To refer page within your documentation use Note you can get by hovering over a section title and pressing link icon Your browser URL display the updated link Links to Subsection Linking to subsections is the same as linking to a top level section Here is an example Use Subsection Shortcut if a subsection is within the same page Index Page Clicking this index page link will have the same effect as clicking the documentation title at the top of the Navigation Panel To refer back to the top level page use Linking to a local file will deploy the file along with the generated documentation Clicking the link will open a file using the browser s default method Download test json file Local links are automatically validated during documentation build time You will get a build time error if you refer to a page or a section sub section that does not exist Pass to enable external links validation","external Link Title http external reference internal internal link dir name file name md#optional page section id internal link file name md#optional page section id internal link dir name file name#optional page section id page section id Here is an example flow page references md#links links to subsection Here is an example flow page references#links links to subsection Subsection Shortcut #links index index page index page #link to subsection Download test json file data test json validate external links"],["flow@@page-toc@@section-one","Flow","Page Toc","Section One","Use to include page top level sections as links some text","include page toc include page toc"],["flow@@page-toc@@section-two","Flow","Page Toc","Section Two","Use to include page top level sections as links some text some other text","include page toc include page toc"],["flow@@page-toc@@section-two","Flow","Page Toc","Section Two","Use to include page top level sections as links some text some other text","include page toc include page toc"],["flow@@lookup-paths@@files-reference-lookup","Flow","Lookup Paths","Files Reference Lookup","When you refer to a file using plugins like tries to find the file in following locations directory with the markup file that refers documentation root directory locations enumerated inside file","include file my file cpp Znai my file cpp lookup paths examples module src main java"],["flow@@lookup-paths@@cli-parameter","Flow","Lookup Paths","CLI parameter","When you refer to a file using plugins like tries to find the file in following locations directory with the markup file that refers documentation root directory locations enumerated inside file Use CLI parameter to add additional paths to lookup files","include file my file cpp Znai my file cpp lookup paths examples module src main java lookup paths znai lookup paths extra path one extra path two"],["flow@@lookup-paths@@zip-and-jar-lookup","Flow","Lookup Paths","Zip and Jar Lookup","When you refer to a file using plugins like tries to find the file in following locations directory with the markup file that refers documentation root directory locations enumerated inside file Use CLI parameter to add additional paths to lookup files When Znai encounters zip or jar file listed inside it will unpack the archives into a temporary location and will use those locations to resolve files","include file my file cpp Znai my file cpp lookup paths examples module src main java lookup paths znai lookup paths extra path one extra path two lookup paths sources zip module archive jar include file dir inside zip b txt inside zip B"],["flow@@lookup-paths@@http-lookup-location","Flow","Lookup Paths","HTTP Lookup Location","When you refer to a file using plugins like tries to find the file in following locations directory with the markup file that refers documentation root directory locations enumerated inside file Use CLI parameter to add additional paths to lookup files When Znai encounters zip or jar file listed inside it will unpack the archives into a temporary location and will use those locations to resolve files If files you want to include are not part of your project you can add an HTTP base URL to If the file is not found using local locations it will be fetched from the provided urls","include file my file cpp Znai my file cpp lookup paths examples module src main java lookup paths znai lookup paths extra path one extra path two lookup paths sources zip module archive jar include file dir inside zip b txt inside zip B lookup paths examples module src main java https raw githubusercontent com testingisdocumenting webtau master include file travis yml language java jdk openjdk8 openjdk11 cache directories $HOME m2 $HOME npm node_modules dist xenial services xvfb addons chrome stable firefox latest apt packages graphviz # disables the default install step which is mvn install skipping tests install true script mvn B verify P code coverage"],["flow@@lookup-paths@@class-path-lookup","Flow","Lookup Paths","Class Path Lookup","When you refer to a file using plugins like tries to find the file in following locations directory with the markup file that refers documentation root directory locations enumerated inside file Use CLI parameter to add additional paths to lookup files When Znai encounters zip or jar file listed inside it will unpack the archives into a temporary location and will use those locations to resolve files If files you want to include are not part of your project you can add an HTTP base URL to If the file is not found using local locations it will be fetched from the provided urls Znai is written using Java and can access resources from the classpath Using class path lookup you can include snippets from projects deployed to for example Maven Central","include file my file cpp Znai my file cpp lookup paths examples module src main java lookup paths znai lookup paths extra path one extra path two lookup paths sources zip module archive jar include file dir inside zip b txt inside zip B lookup paths examples module src main java https raw githubusercontent com testingisdocumenting webtau master include file travis yml language java jdk openjdk8 openjdk11 cache directories $HOME m2 $HOME npm node_modules dist xenial services xvfb addons chrome stable firefox latest apt packages graphviz # disables the default install step which is mvn install skipping tests install true script mvn B verify P code coverage org testingisdocumenting znai< groupId> znai maven plugin< artifactId> $ project version < version> junit< groupId> junit< artifactId> $ junit version < version> sources< classifier> < dependency> < dependencies> < plugin> include java org junit Assert java entry fail String public static void fail String message if message null throw new AssertionError throw new AssertionError message"],["flow@@lookup-paths@@class-path-lookup","Flow","Lookup Paths","Class Path Lookup","When you refer to a file using plugins like tries to find the file in following locations directory with the markup file that refers documentation root directory locations enumerated inside file Use CLI parameter to add additional paths to lookup files When Znai encounters zip or jar file listed inside it will unpack the archives into a temporary location and will use those locations to resolve files If files you want to include are not part of your project you can add an HTTP base URL to If the file is not found using local locations it will be fetched from the provided urls Znai is written using Java and can access resources from the classpath Using class path lookup you can include snippets from projects deployed to for example Maven Central","include file my file cpp Znai my file cpp lookup paths examples module src main java lookup paths znai lookup paths extra path one extra path two lookup paths sources zip module archive jar include file dir inside zip b txt inside zip B lookup paths examples module src main java https raw githubusercontent com testingisdocumenting webtau master include file travis yml language java jdk openjdk8 openjdk11 cache directories $HOME m2 $HOME npm node_modules dist xenial services xvfb addons chrome stable firefox latest apt packages graphviz # disables the default install step which is mvn install skipping tests install true script mvn B verify P code coverage org testingisdocumenting znai< groupId> znai maven plugin< artifactId> $ project version < version> junit< groupId> junit< artifactId> $ junit version < version> sources< classifier> < dependency> < dependencies> < plugin> include java org junit Assert java entry fail String public static void fail String message if message null throw new AssertionError throw new AssertionError message"],["flow@@search@@local","Flow","Search","Local","To perform a local search of your documentation press key or click the search section in the side panel on the left In documentation structure we learned that documentation consist of Chapters Pages Page Sections These entities play different and important roles in search Search treats each Page Section as an independent unit Each Page Section has an internally defined title that is a combination of all three titles Title match during search yields the highest score For example this current section full title is Flow Search Local As your documentation grows keep checking how easy it is to navigate to a section of your documentation using Avoid using generic names in your page titles and page section titles You should not have dozens of pages called Introduction",""],["flow@@search@@global","Flow","Search","Global","To perform a local search of your documentation press key or click the search section in the side panel on the left In documentation structure we learned that documentation consist of Chapters Pages Page Sections These entities play different and important roles in search Search treats each Page Section as an independent unit Each Page Section has an internally defined title that is a combination of all three titles Title match during search yields the highest score For example this current section full title is Flow Search Local As your documentation grows keep checking how easy it is to navigate to a section of your documentation using Avoid using generic names in your page titles and page section titles You should not have dozens of pages called Introduction Znai XML search entries xml Znai Besides local search capabilities provides a search entry file for your documentation This file can be crawled to expose your documentation to external search engines Your search entry file can be located at the following endpoint For example the search entry for the documentation on Github is located at https testingisdocumenting org znai search entries xml",""],["flow@@search@@global","Flow","Search","Global","To perform a local search of your documentation press key or click the search section in the side panel on the left In documentation structure we learned that documentation consist of Chapters Pages Page Sections These entities play different and important roles in search Search treats each Page Section as an independent unit Each Page Section has an internally defined title that is a combination of all three titles Title match during search yields the highest score For example this current section full title is Flow Search Local As your documentation grows keep checking how easy it is to navigate to a section of your documentation using Avoid using generic names in your page titles and page section titles You should not have dozens of pages called Introduction Znai XML search entries xml Znai Besides local search capabilities provides a search entry file for your documentation This file can be crawled to expose your documentation to external search engines Your search entry file can be located at the following endpoint For example the search entry for the documentation on Github is located at https testingisdocumenting org znai search entries xml",""],["flow@@footer@@definition","Flow","Footer","Definition","To define a footer create a file in the root directory of your documentation files Footer content will be treated as regular page content i e you can use the standard Markdown and all the custom extensions Content in will be displayed at the bottom of each page","footer md footer md"],["flow@@footer@@definition","Flow","Footer","Definition","To define a footer create a file in the root directory of your documentation files Footer content will be treated as regular page content i e you can use the standard Markdown and all the custom extensions Content in will be displayed at the bottom of each page","footer md footer md"],["flow@@support@@linking-to-support-site","Flow","Support","Linking To Support Site","To provide a support link to your users add link and title to the file Take a look at the example at the top of this page","meta json"],["flow@@support@@linking-to-support-site","Flow","Support","Linking To Support Site","To provide a support link to your users add link and title to the file Take a look at the example at the top of this page","meta json"],["flow@@presentation@@equal-flow","Flow","Presentation","Equal Flow","When people build presentations there should be great focus on the flow of information making sure that those newly introduced to the topic are not lost A poorly organized presentation might drive users seeking clarification to documentation which too often is just as unfriendly to neophytes Presentation mode in is meant to help with both issues mutually reinforcing good flow in presentations and documentation","Znai"],["flow@@presentation@@presentation-mode","Flow","Presentation","Presentation Mode","When people build presentations there should be great focus on the flow of information making sure that those newly introduced to the topic are not lost A poorly organized presentation might drive users seeking clarification to documentation which too often is just as unfriendly to neophytes Presentation mode in is meant to help with both issues mutually reinforcing good flow in presentations and documentation can turn any page into a presentation Simply click to the far right of each page title In presentation mode only certain documentation elements are converted to slides Headings Bullets Images and graphics Code snippets Command line input Math Tables If you write your documentation with a presentation in mind it should improve the flow of your documentation","Znai Znai"],["flow@@presentation@@presentation-mode","Flow","Presentation","Presentation Mode","When people build presentations there should be great focus on the flow of information making sure that those newly introduced to the topic are not lost A poorly organized presentation might drive users seeking clarification to documentation which too often is just as unfriendly to neophytes Presentation mode in is meant to help with both issues mutually reinforcing good flow in presentations and documentation can turn any page into a presentation Simply click to the far right of each page title In presentation mode only certain documentation elements are converted to slides Headings Bullets Images and graphics Code snippets Command line input Math Tables If you write your documentation with a presentation in mind it should improve the flow of your documentation","Znai Znai"],["flow@@testing-is-documenting@@auto-maintainable-content","Flow","Testing Is Documenting","Auto Maintainable Content","There is a lot of content you can get by leveraging automated testing And most importantly that content is going to be auto maintained Let s say you document a command line tool and you want to provide an example of some operation output You can copy and paste the output risking it being outdated Or you can write a test that exercises a command line and also captures its output You end up getting a lot of benefits your app is tested your documentation is auto updated",""],["flow@@testing-is-documenting@@examples","Flow","Testing Is Documenting","Examples","There is a lot of content you can get by leveraging automated testing And most importantly that content is going to be auto maintained Let s say you document a command line tool and you want to provide an example of some operation output You can copy and paste the output risking it being outdated Or you can write a test that exercises a command line and also captures its output You end up getting a lot of benefits your app is tested your documentation is auto updated In addition to command line tools here are some common scenarios you should consider Test Web UI application screenshots Test Business Logic tabular data Test REST API API JSON real examples Config files Script snippets Runtime dependencies DAGs",""],["flow@@testing-is-documenting@@self-powering-cycle","Flow","Testing Is Documenting","Self Powering Cycle","There is a lot of content you can get by leveraging automated testing And most importantly that content is going to be auto maintained Let s say you document a command line tool and you want to provide an example of some operation output You can copy and paste the output risking it being outdated Or you can write a test that exercises a command line and also captures its output You end up getting a lot of benefits your app is tested your documentation is auto updated In addition to command line tools here are some common scenarios you should consider Test Web UI application screenshots Test Business Logic tabular data Test REST API API JSON real examples Config files Script snippets Runtime dependencies DAGs As you write your documentation you will come up with new scenarios to test As you write tests think about your documentation and what test produced artifacts can improve it Znai provides a lot of utilities to include test artifacts In Synergy With Testing chapter you will see examples of UI REST API and Business Logic",""],["flow@@testing-is-documenting@@self-powering-cycle","Flow","Testing Is Documenting","Self Powering Cycle","There is a lot of content you can get by leveraging automated testing And most importantly that content is going to be auto maintained Let s say you document a command line tool and you want to provide an example of some operation output You can copy and paste the output risking it being outdated Or you can write a test that exercises a command line and also captures its output You end up getting a lot of benefits your app is tested your documentation is auto updated In addition to command line tools here are some common scenarios you should consider Test Web UI application screenshots Test Business Logic tabular data Test REST API API JSON real examples Config files Script snippets Runtime dependencies DAGs As you write your documentation you will come up with new scenarios to test As you write tests think about your documentation and what test produced artifacts can improve it Znai provides a lot of utilities to include test artifacts In Synergy With Testing chapter you will see examples of UI REST API and Business Logic",""],["flow@@shortcuts@@keyboard-shortcuts","Flow","Shortcuts","Keyboard shortcuts","Action Shortcut Change to presentation mode ` kbd Alt ` or ` kbd Alt ` Change to print mode ` kbd Alt p` Change to default mode ` kbd ESC` Activate search ` kbd ` Navigate to a previous page ` kbd Ctrl LeftArrow` Navigate to a next page ` kbd Ctrl RightArrow`",""],["flow@@shortcuts@@keyboard-shortcuts","Flow","Shortcuts","Keyboard shortcuts","Action Shortcut Change to presentation mode ` kbd Alt ` or ` kbd Alt ` Change to print mode ` kbd Alt p` Change to default mode ` kbd ESC` Activate search ` kbd ` Navigate to a previous page ` kbd Ctrl LeftArrow` Navigate to a next page ` kbd Ctrl RightArrow`",""],["snippets@@code-snippets@@simple-snippet","Snippets","Code Snippets","Simple Snippet","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity"],["snippets@@code-snippets@@specifying-language","Snippets","Code Snippets","Specifying Language","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai"],["snippets@@code-snippets@@title","Snippets","Code Snippets","Title","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render"],["snippets@@code-snippets@@anchor","Snippets","Code Snippets","Anchor","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render anchorId ```javascript title ReactJS Component anchorId my special code ``` import React Component from react class MyComponent extends Component render"],["snippets@@code-snippets@@wide-code","Snippets","Code Snippets","Wide Code","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render anchorId ```javascript title ReactJS Component anchorId my special code ``` import React Component from react class MyComponent extends Component render wide ```java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar"],["snippets@@code-snippets@@wrap-code","Snippets","Code Snippets","Wrap Code","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to stretch wide code to occupy as much horizontal real estate as possible","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render anchorId ```javascript title ReactJS Component anchorId my special code ``` import React Component from react class MyComponent extends Component render wide ```java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap ```java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar"],["snippets@@code-snippets@@read-more","Snippets","Code Snippets","Read More","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to stretch wide code to occupy as much horizontal real estate as possible If you have a large code snippet and you want to initially display only a small fraction use the option with an optional option to specify a number of initial lines displayed default is 8","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render anchorId ```javascript title ReactJS Component anchorId my special code ``` import React Component from react class MyComponent extends Component render wide ```java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap ```java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines ```java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName ``` public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json"],["snippets@@code-snippets@@highlights","Snippets","Code Snippets","Highlights","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to stretch wide code to occupy as much horizontal real estate as possible If you have a large code snippet and you want to initially display only a small fraction use the option with an optional option to specify a number of initial lines displayed default is 8 Use the option to bring readers attention to important lines Learn More about highlighting options","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render anchorId ```javascript title ReactJS Component anchorId my special code ``` import React Component from react class MyComponent extends Component render wide ```java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap ```java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines ```java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName ``` public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json highlight ```java highlight workingDir public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir ``` public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir"],["snippets@@code-snippets@@highlights","Snippets","Code Snippets","Highlights","It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this Note this method doesn t highlight code You can also specify a language to enable syntax highlighting for your snippet The following languages are supported Java JavaScript Groovy C Python Bash uses prismjs library to provide syntax highlighting Note that it is not being executed inside the browser but rather applied during HTML generation Use the property to specify a title When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to stretch wide code to occupy as much horizontal real estate as possible If you have a large code snippet and you want to initially display only a small fraction use the option with an optional option to specify a number of initial lines displayed default is 8 Use the option to bring readers attention to important lines Learn More about highlighting options","interface PriceService Money calcPrice String cuips Integer quantity # Simple Snippet It is very easy to add a code snippet or an output result All you have to do is indent your code with 4 spaces inside your Markdown document and your code will be rendered like this interface PriceService Money calcPrice String cuips Integer quantity ```javascript import React Component from react class MyComponent extends Component render ``` import React Component from react class MyComponent extends Component render Znai title ```javascript title ReactJS Component ``` import React Component from react class MyComponent extends Component render anchorId ```javascript title ReactJS Component anchorId my special code ``` import React Component from react class MyComponent extends Component render wide ```java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap ```java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar ``` class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines ```java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName ``` public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json highlight ```java highlight workingDir public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir ``` public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir"],["snippets@@external-code-snippets@@embedding-content","Snippets","External Code Snippets","Embedding Content","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths"],["snippets@@external-code-snippets@@syntax-highlighting","Snippets","External Code Snippets","Syntax highlighting","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang"],["snippets@@external-code-snippets@@title","Snippets","External Code Snippets","Title","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass"],["snippets@@external-code-snippets@@anchor","Snippets","External Code Snippets","Anchor","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass"],["snippets@@external-code-snippets@@wide-code","Snippets","External Code Snippets","Wide Code","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar"],["snippets@@external-code-snippets@@wrap-code","Snippets","External Code Snippets","Wrap Code","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar"],["snippets@@external-code-snippets@@read-more","Snippets","External Code Snippets","Read More","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping If you have a file with large code snippet and you want to initially display only a small fraction use option with an optional option to specify a number of initial lines displayed default is 8","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines include file LongFile java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json"],["snippets@@external-code-snippets@@collapse","Snippets","External Code Snippets","Collapse","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping If you have a file with large code snippet and you want to initially display only a small fraction use option with an optional option to specify a number of initial lines displayed default is 8 Use to make code snippet collapsible Note option is required","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines include file LongFile java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json collapsed true|false title include file file name js title collapsible snippet collapsed true class JsClass constructor usefulAction export default JsClass"],["snippets@@external-code-snippets@@no-gap","Snippets","External Code Snippets","No Gap","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping If you have a file with large code snippet and you want to initially display only a small fraction use option with an optional option to specify a number of initial lines displayed default is 8 Use to make code snippet collapsible Note option is required Use to remove top bottom margins when there are multiple snippets in a row Use to add a delimiter between code snippets","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines include file LongFile java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json collapsed true|false title include file file name js title collapsible snippet collapsed true class JsClass constructor usefulAction export default JsClass noGap true include file file name js title part one noGap true collapsed false include file simple c title part two collapsed false class JsClass constructor usefulAction export default JsClass #include using namespace std int main cout << hello noGapBorder true include file ocaml api mli title Game noGap true noGapBorder true include file ocaml api ml module Game sig type t end module Game struct type t name string end"],["snippets@@external-code-snippets@@highlights","Snippets","External Code Snippets","Highlights","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping If you have a file with large code snippet and you want to initially display only a small fraction use option with an optional option to specify a number of initial lines displayed default is 8 Use to make code snippet collapsible Note option is required Use to remove top bottom margins when there are multiple snippets in a row Use to add a delimiter between code snippets Learn More about highlighting snippets lines","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines include file LongFile java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json collapsed true|false title include file file name js title collapsible snippet collapsed true class JsClass constructor usefulAction export default JsClass noGap true include file file name js title part one noGap true collapsed false include file simple c title part two collapsed false class JsClass constructor usefulAction export default JsClass #include using namespace std int main cout << hello noGapBorder true include file ocaml api mli title Game noGap true noGapBorder true include file ocaml api ml module Game sig type t end module Game struct type t name string end"],["snippets@@external-code-snippets@@snippets-manipulation","Snippets","External Code Snippets","Snippets Manipulation","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping If you have a file with large code snippet and you want to initially display only a small fraction use option with an optional option to specify a number of initial lines displayed default is 8 Use to make code snippet collapsible Note option is required Use to remove top bottom margins when there are multiple snippets in a row Use to add a delimiter between code snippets Learn More about highlighting snippets lines Read page on Snippets Manipulation to learn more about extracting modifying snippets before displaying them","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines include file LongFile java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json collapsed true|false title include file file name js title collapsible snippet collapsed true class JsClass constructor usefulAction export default JsClass noGap true include file file name js title part one noGap true collapsed false include file simple c title part two collapsed false class JsClass constructor usefulAction export default JsClass #include using namespace std int main cout << hello noGapBorder true include file ocaml api mli title Game noGap true noGapBorder true include file ocaml api ml module Game sig type t end module Game struct type t name string end"],["snippets@@external-code-snippets@@snippets-manipulation","Snippets","External Code Snippets","Snippets Manipulation","To reduce documentation maintenance burden avoid copy and paste of code snippets Embed content by referencing existing files using the plugin instead This syntax will appear throughout the documentation and represents a family of custom Markdown extensions The file will be looked up using following rules directory with a markup file root directory of a documentation all lookup paths listed in a file Syntax highlighting is automatically selected based file extension E g extensions are treated as C Use to force a different syntax highlighting Note File extensions and are case insensitive Use the property to specify a title Use the property to set to be the file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use the option to stretch wide code to occupy as much horizontal screen real estate as possible Without the option code will be aligned with the rest of the text and users can use scrollbars Note Good placement of a Wide Code element is at the end of a page or a section to show the full version of a code sample Use the option to enable long lines wrapping If you have a file with large code snippet and you want to initially display only a small fraction use option with an optional option to specify a number of initial lines displayed default is 8 Use to make code snippet collapsible Note option is required Use to remove top bottom margins when there are multiple snippets in a row Use to add a delimiter between code snippets Learn More about highlighting snippets lines Read page on Snippets Manipulation to learn more about extracting modifying snippets before displaying them","include file include file file name js include class JsClass constructor usefulAction export default JsClass lookup paths c h cpp hpp include file simple c #include using namespace std int main cout << hello include file Hello sc object Hello def main args Array String println Hello world lang include file simple c lang java #include using namespace std int main cout << hello lang include file file name js title ES6 class title class JsClass constructor usefulAction export default JsClass autoTitle title include file file name js autoTitle true class JsClass constructor usefulAction export default JsClass anchorId include file file name js autoTitle true anchorId my code anchor class JsClass constructor usefulAction export default JsClass wide include file WideCode java wide true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wide class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar wrap include file WideCode java wrap true class InternationalPriceService implements PriceService private static void LongJavaInterfaceNameWithSuperFactory createMegaAbstractFactory final ExchangeCalendarLongerThanLife calendar readMore readMoreVisibleLines include file LongFile java readMore true readMoreVisibleLines 3 public class DocScaffolding private final Path workingDir private Map> fileNameByDirName public DocScaffolding Path workingDir this workingDir workingDir this fileNameByDirName new LinkedHashMap<> public void create createPages createToc createMeta createIndex createLookupPaths private void createLookupPaths createFileFromResource lookup paths private void createMeta createFileFromResource meta json collapsed true|false title include file file name js title collapsible snippet collapsed true class JsClass constructor usefulAction export default JsClass noGap true include file file name js title part one noGap true collapsed false include file simple c title part two collapsed false class JsClass constructor usefulAction export default JsClass #include using namespace std int main cout << hello noGapBorder true include file ocaml api mli title Game noGap true noGapBorder true include file ocaml api ml module Game sig type t end module Game struct type t name string end"],["snippets@@snippets-manipulation@@surrounded-by","Snippets","Snippets Manipulation","Surrounded By","Use to extract code snippet surrounded by a marker Use to keep marker lines","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end"],["snippets@@snippets-manipulation@@multiple-surrounded-by","Snippets","Snippets Manipulation","Multiple Surrounded By","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null"],["snippets@@snippets-manipulation@@surrounded-by-scope","Snippets","Snippets Manipulation","Surrounded By Scope","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample"],["snippets@@snippets-manipulation@@surrounded-by-multi-chars-scope","Snippets","Snippets Manipulation","Surrounded By Multi-chars scope","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end"],["snippets@@snippets-manipulation@@replace","Snippets","Snippets Manipulation","Replace","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id"],["snippets@@snippets-manipulation@@replace-regexp-groups","Snippets","Snippets Manipulation","Replace Regexp Groups","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line"],["snippets@@snippets-manipulation@@start-end-line","Snippets","Snippets Manipulation","Start/End Line","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100"],["snippets@@snippets-manipulation@@start-end-multiple-lines","Snippets","Snippets Manipulation","Start/End Multiple Lines","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and Pass multiple values to and to specify more precisely a block of code to extract As example let s extract a second block from the code snippets below without adding extra markers if we use we can t guarantee what block will it pick and it will depend on functions order To hit the exact one use multiple start lines Znai will attempt to find a combination of start lines with the smallest distance between them Note Use and to limit lines from the bottom removes all the lines between specified start lines including the lines removes all the lines between specified end lines including the lines","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100 startLine endLine match type weather_season | Spring | Summer | Autumn | Winter let weight_season season match season with | Spring > 4 | Summer > 5 | Autumn > 3 | Winter > 1 let describe_season season ** human readable season description * match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow startLine match season include file ocaml seasons ml startLine let describe_season match season startLineKeepLast true match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow endLine endLineKeepFirst excludeStart excludeEnd"],["snippets@@snippets-manipulation@@include-contains","Snippets","Snippets Manipulation","Include Contains","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and Pass multiple values to and to specify more precisely a block of code to extract As example let s extract a second block from the code snippets below without adding extra markers if we use we can t guarantee what block will it pick and it will depend on functions order To hit the exact one use multiple start lines Znai will attempt to find a combination of start lines with the smallest distance between them Note Use and to limit lines from the bottom removes all the lines between specified start lines including the lines removes all the lines between specified end lines including the lines Use to include only lines containing specified text s","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100 startLine endLine match type weather_season | Spring | Summer | Autumn | Winter let weight_season season match season with | Spring > 4 | Summer > 5 | Autumn > 3 | Winter > 1 let describe_season season ** human readable season description * match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow startLine match season include file ocaml seasons ml startLine let describe_season match season startLineKeepLast true match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow endLine endLineKeepFirst excludeStart excludeEnd include file python examples py include import or include file python examples py include import import market"],["snippets@@snippets-manipulation@@exclude-contains","Snippets","Snippets Manipulation","Exclude Contains","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and Pass multiple values to and to specify more precisely a block of code to extract As example let s extract a second block from the code snippets below without adding extra markers if we use we can t guarantee what block will it pick and it will depend on functions order To hit the exact one use multiple start lines Znai will attempt to find a combination of start lines with the smallest distance between them Note Use and to limit lines from the bottom removes all the lines between specified start lines including the lines removes all the lines between specified end lines including the lines Use to include only lines containing specified text s Use to exclude lines containing specified text s","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100 startLine endLine match type weather_season | Spring | Summer | Autumn | Winter let weight_season season match season with | Spring > 4 | Summer > 5 | Autumn > 3 | Winter > 1 let describe_season season ** human readable season description * match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow startLine match season include file ocaml seasons ml startLine let describe_season match season startLineKeepLast true match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow endLine endLineKeepFirst excludeStart excludeEnd include file python examples py include import or include file python examples py include import import market include file python examples py exclude # example or include file python examples py exclude # example import market def main id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id if __name__ __main__ main"],["snippets@@snippets-manipulation@@include-regexp","Snippets","Snippets Manipulation","Include Regexp","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and Pass multiple values to and to specify more precisely a block of code to extract As example let s extract a second block from the code snippets below without adding extra markers if we use we can t guarantee what block will it pick and it will depend on functions order To hit the exact one use multiple start lines Znai will attempt to find a combination of start lines with the smallest distance between them Note Use and to limit lines from the bottom removes all the lines between specified start lines including the lines removes all the lines between specified end lines including the lines Use to include only lines containing specified text s Use to exclude lines containing specified text s Use to include only lines matching regexp s","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100 startLine endLine match type weather_season | Spring | Summer | Autumn | Winter let weight_season season match season with | Spring > 4 | Summer > 5 | Autumn > 3 | Winter > 1 let describe_season season ** human readable season description * match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow startLine match season include file ocaml seasons ml startLine let describe_season match season startLineKeepLast true match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow endLine endLineKeepFirst excludeStart excludeEnd include file python examples py include import or include file python examples py include import import market include file python examples py exclude # example or include file python examples py exclude # example import market def main id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id if __name__ __main__ main include file python examples py includeRegexp market *_trade or include file python examples py includeRegexp market *_trade id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id"],["snippets@@snippets-manipulation@@exclude-regexp","Snippets","Snippets Manipulation","Exclude Regexp","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and Pass multiple values to and to specify more precisely a block of code to extract As example let s extract a second block from the code snippets below without adding extra markers if we use we can t guarantee what block will it pick and it will depend on functions order To hit the exact one use multiple start lines Znai will attempt to find a combination of start lines with the smallest distance between them Note Use and to limit lines from the bottom removes all the lines between specified start lines including the lines removes all the lines between specified end lines including the lines Use to include only lines containing specified text s Use to exclude lines containing specified text s Use to include only lines matching regexp s Use to exclude lines matching regexp s","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100 startLine endLine match type weather_season | Spring | Summer | Autumn | Winter let weight_season season match season with | Spring > 4 | Summer > 5 | Autumn > 3 | Winter > 1 let describe_season season ** human readable season description * match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow startLine match season include file ocaml seasons ml startLine let describe_season match season startLineKeepLast true match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow endLine endLineKeepFirst excludeStart excludeEnd include file python examples py include import or include file python examples py include import import market include file python examples py exclude # example or include file python examples py exclude # example import market def main id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id if __name__ __main__ main include file python examples py includeRegexp market *_trade or include file python examples py includeRegexp market *_trade id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id include file python examples py excludeRegexp if * s main # example ^ s*$ import market id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id"],["snippets@@snippets-manipulation@@exclude-regexp","Snippets","Snippets Manipulation","Exclude Regexp","Use to extract code snippet surrounded by a marker Use to keep marker lines Pass a list to to extract multiple blocks Use to select separator s between blocks Note can be either single value or a list Plugin will use a different separator for each block Use to have an empty line as a separator Use to extract text using scopes like etc Pass comma separated multi char region definition to to handle scopes defined with keywords Use to replace content of the resulting snippet Pass a list of lists to for multiple replaces Use regexp capture groups to create derived content Use to extract specific content by using marker lines Note Lines match doesn t have to be exact is used By default and are included in the rendered result Use to remove markers To exclude start or end line only use and Pass multiple values to and to specify more precisely a block of code to extract As example let s extract a second block from the code snippets below without adding extra markers if we use we can t guarantee what block will it pick and it will depend on functions order To hit the exact one use multiple start lines Znai will attempt to find a combination of start lines with the smallest distance between them Note Use and to limit lines from the bottom removes all the lines between specified start lines including the lines removes all the lines between specified end lines including the lines Use to include only lines containing specified text s Use to exclude lines containing specified text s Use to include only lines matching regexp s Use to exclude lines matching regexp s","# example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py title extracted example with surroundedBy surroundedBy # example cancel trade market cancel_trade id block A start event one handler block A end block B start block B end include file custom dsl title keep marker lines surroundedBy block A surroundedByKeep true block A start event one handler block A end include file python examples py title extracted example surroundedBy # example import block # example cancel trade import market market cancel_trade id include file python examples py title extracted example surroundedBy # example import block # example cancel trade surroundedBySeparator import market market cancel_trade id null class MyClass void action if condition importantExample if anotherCondition anotherImportantExample include file MyClass java surroundedByScope start if condition scope if condition importantExample module ModelZero sig type t end module ModelA sig type t val calc t > int module Nested sig type t end end module ModelC sig type t end include file ocaml model mli surroundedByScope start module ModelA scope sig end module ModelA sig type t val calc t > int module Nested sig type t end end include file python examples py surroundedBy # example cancel trade replace id trade_id market cancel_trade trade_id include file python examples py surroundedBy # example cancel trade replace id trade_id market api api cancel_trade trade_id $1 hello1 world2 another3 line4 include file replace all group txt replace w d $2 $1 1 hello 2 world 3 another 4 line # example import block import market # example import block def main # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end # example cancel trade market cancel_trade id # example cancel trade if __name__ __main__ main include file python examples py startLine example book trade endLine example end # example book trade id market book_trade symbol market CURRENT_PRICE 100 # example end contains include file python examples py startLine example book trade endLine example end excludeStartEnd true id market book_trade symbol market CURRENT_PRICE 100 startLine endLine match type weather_season | Spring | Summer | Autumn | Winter let weight_season season match season with | Spring > 4 | Summer > 5 | Autumn > 3 | Winter > 1 let describe_season season ** human readable season description * match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow startLine match season include file ocaml seasons ml startLine let describe_season match season startLineKeepLast true match season with | Spring > It s springtime Flowers are blooming | Summer > It s summertime Enjoy the warm weather | Autumn > It s autumn Leaves are changing colors | Winter > It s winter Time to bundle up and enjoy the snow endLine endLineKeepFirst excludeStart excludeEnd include file python examples py include import or include file python examples py include import import market include file python examples py exclude # example or include file python examples py exclude # example import market def main id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id if __name__ __main__ main include file python examples py includeRegexp market *_trade or include file python examples py includeRegexp market *_trade id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id include file python examples py excludeRegexp if * s main # example ^ s*$ import market id market book_trade symbol market CURRENT_PRICE 100 market cancel_trade id"],["snippets@@snippets-highlighting@@line-by-text","Snippets","Snippets Highlighting","Line By Text","Use the option to bring readers attention to the important lines","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass"],["snippets@@snippets-highlighting@@line-by-index","Snippets","Snippets Highlighting","Line By Index","Use the option to bring readers attention to the important lines It is recommended to pass a substring but you can pass a line idx starts from 0 Additionally you can combine two approaches and pass a list of things to highlight Note Order of lines to highlight is reflected during presentation mode","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass include file file name js highlight export 1 class JsClass constructor usefulAction export default JsClass"],["snippets@@snippets-highlighting@@text-from-file","Snippets","Snippets Highlighting","Text From File","Use the option to bring readers attention to the important lines It is recommended to pass a substring but you can pass a line idx starts from 0 Additionally you can combine two approaches and pass a list of things to highlight Note Order of lines to highlight is reflected during presentation mode Use the option to highlight lines specified in a separate file","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass include file file name js highlight export 1 class JsClass constructor usefulAction export default JsClass highlightPath include file file name js highlightPath lines to highlight txt class JsClass constructor usefulAction export default JsClass class usefulAction"],["snippets@@snippets-highlighting@@region","Snippets","Snippets Highlighting","Region","Use the option to bring readers attention to the important lines It is recommended to pass a substring but you can pass a line idx starts from 0 Additionally you can combine two approaches and pass a list of things to highlight Note Order of lines to highlight is reflected during presentation mode Use the option to highlight lines specified in a separate file Use the to highlight large portions of the code as one highlight block","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass include file file name js highlight export 1 class JsClass constructor usefulAction export default JsClass highlightPath include file file name js highlightPath lines to highlight txt class JsClass constructor usefulAction export default JsClass class usefulAction highlightRegion include file file name js highlightRegion start constructor end class JsClass constructor usefulAction export default JsClass"],["snippets@@snippets-highlighting@@region-using-scope","Snippets","Snippets Highlighting","Region Using Scope","Use the option to bring readers attention to the important lines It is recommended to pass a substring but you can pass a line idx starts from 0 Additionally you can combine two approaches and pass a list of things to highlight Note Order of lines to highlight is reflected during presentation mode Use the option to highlight lines specified in a separate file Use the to highlight large portions of the code as one highlight block Use the to highlight region using scope like Unlike example above highlight will not stop at first closing Use multiple start lines to narrow down a specific region Znai will find a smallest text block that contains all specified lines and then highlight the most inner one","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass include file file name js highlight export 1 class JsClass constructor usefulAction export default JsClass highlightPath include file file name js highlightPath lines to highlight txt class JsClass constructor usefulAction export default JsClass class usefulAction highlightRegion include file file name js highlightRegion start constructor end class JsClass constructor usefulAction export default JsClass highlightRegion scope include file with nested if js highlightRegion start userId scope class JsClass usefulAction if userId user a if canRead userId include file with multiple if clarify js highlightRegion start if userId canRead scope class JsClass usefulAction if userId user a if canRead userId if userId user a if canRead userId"],["snippets@@snippets-highlighting@@multiple-regions","Snippets","Snippets Highlighting","Multiple Regions","Use the option to bring readers attention to the important lines It is recommended to pass a substring but you can pass a line idx starts from 0 Additionally you can combine two approaches and pass a list of things to highlight Note Order of lines to highlight is reflected during presentation mode Use the option to highlight lines specified in a separate file Use the to highlight large portions of the code as one highlight block Use the to highlight region using scope like Unlike example above highlight will not stop at first closing Use multiple start lines to narrow down a specific region Znai will find a smallest text block that contains all specified lines and then highlight the most inner one Use list to specify multiple regions to highlight","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass include file file name js highlight export 1 class JsClass constructor usefulAction export default JsClass highlightPath include file file name js highlightPath lines to highlight txt class JsClass constructor usefulAction export default JsClass class usefulAction highlightRegion include file file name js highlightRegion start constructor end class JsClass constructor usefulAction export default JsClass highlightRegion scope include file with nested if js highlightRegion start userId scope class JsClass usefulAction if userId user a if canRead userId include file with multiple if clarify js highlightRegion start if userId canRead scope class JsClass usefulAction if userId user a if canRead userId if userId user a if canRead userId include file with multiple if js highlightRegion start canRead scope start canWrite scope class JsClass usefulAction if userId user a if canRead userId if userId user b if canWrite userId"],["snippets@@snippets-highlighting@@multiple-regions","Snippets","Snippets Highlighting","Multiple Regions","Use the option to bring readers attention to the important lines It is recommended to pass a substring but you can pass a line idx starts from 0 Additionally you can combine two approaches and pass a list of things to highlight Note Order of lines to highlight is reflected during presentation mode Use the option to highlight lines specified in a separate file Use the to highlight large portions of the code as one highlight block Use the to highlight region using scope like Unlike example above highlight will not stop at first closing Use multiple start lines to narrow down a specific region Znai will find a smallest text block that contains all specified lines and then highlight the most inner one Use list to specify multiple regions to highlight","highlight include file file name js highlight export class JsClass constructor usefulAction export default JsClass include file file name js highlight export 1 class JsClass constructor usefulAction export default JsClass highlightPath include file file name js highlightPath lines to highlight txt class JsClass constructor usefulAction export default JsClass class usefulAction highlightRegion include file file name js highlightRegion start constructor end class JsClass constructor usefulAction export default JsClass highlightRegion scope include file with nested if js highlightRegion start userId scope class JsClass usefulAction if userId user a if canRead userId include file with multiple if clarify js highlightRegion start if userId canRead scope class JsClass usefulAction if userId user a if canRead userId if userId user a if canRead userId include file with multiple if js highlightRegion start canRead scope start canWrite scope class JsClass usefulAction if userId user a if canRead userId if userId user b if canWrite userId"],["snippets@@code-comments@@callout-comments","Snippets","Code Comments","Callout Comments","Use to extract comments from a code and render them as bullet points Given a file with comments Multiple comment lines can be put above a code line All the comment lines will be merged and applied to the next code line","commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules include file file name with comments js commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order"],["snippets@@code-comments@@spoilers","Snippets","Code Comments","Spoilers","Use to extract comments from a code and render them as bullet points Given a file with comments Multiple comment lines can be put above a code line All the comment lines will be merged and applied to the next code line Set the property to initially hide explanations It may be useful when teaching Click on the spoiler to reveal the explanations","commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules include file file name with comments js commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order spoiler include file file name with comments js commentsType inline spoiler true class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules"],["snippets@@code-comments@@remove-comments","Snippets","Code Comments","Remove Comments","Use to extract comments from a code and render them as bullet points Given a file with comments Multiple comment lines can be put above a code line All the comment lines will be merged and applied to the next code line Set the property to initially hide explanations It may be useful when teaching Click on the spoiler to reveal the explanations Use to hide all the comments from a code snippet Given a file with comments","commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules include file file name with comments js commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order spoiler include file file name with comments js commentsType inline spoiler true class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules commentsType remove class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules include file file name with comments js commentsType remove class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules"],["snippets@@code-comments@@remove-comments","Snippets","Code Comments","Remove Comments","Use to extract comments from a code and render them as bullet points Given a file with comments Multiple comment lines can be put above a code line All the comment lines will be merged and applied to the next code line Set the property to initially hide explanations It may be useful when teaching Click on the spoiler to reveal the explanations Use to hide all the comments from a code snippet Given a file with comments","commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules include file file name with comments js commentsType inline class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order order fetch_order # explanation of why # strategic price calculation # is important here price strategic_price_calc order spoiler include file file name with comments js commentsType inline spoiler true class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules commentsType remove class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules include file file name with comments js commentsType remove class JsClass constructor new syntax for constructor export default JsClass new syntax for ES6 modules"],["snippets@@inlined-code-snippets@@backtick","Snippets","Inlined Code Snippets","Backtick","To display inline code within a text put it inside a backtick Example To check if an Exchange is closed you need to use","Example To check if an Exchange is closed you need to use `ExchangeCalendar` ExchangeCalendar"],["snippets@@inlined-code-snippets@@from-file","Snippets","Inlined Code Snippets","From File","To display inline code within a text put it inside a backtick Example To check if an Exchange is closed you need to use To display inline code from a file use the inlined code plugin Example To access this feature navigate to","Example To check if an Exchange is closed you need to use `ExchangeCalendar` ExchangeCalendar file Example To access this feature navigate to ` file urlsample txt`"],["snippets@@inlined-code-snippets@@validated-identifier","Snippets","Inlined Code Snippets","Validated Identifier","To display inline code within a text put it inside a backtick Example To check if an Exchange is closed you need to use To display inline code from a file use the inlined code plugin Example To access this feature navigate to Specify multiple files via page local or global plugin defaults to avoid repeating throughout the page","Example To check if an Exchange is closed you need to use `ExchangeCalendar` ExchangeCalendar file Example To access this feature navigate to ` file urlsample txt` identifier ` identifier my_func validationPath my_func_usage py ` Use inlined code plugin to render inlined code and validate its spelling by looking at the provided file for match Use it to make sure your documentation reflects the API changes and do not use outdated identifier names def example my_func 100 validationPath identifier validationPath python my_func_usage py python utils py my text ` identifier my_func`"],["snippets@@inlined-code-snippets@@validated-identifier","Snippets","Inlined Code Snippets","Validated Identifier","To display inline code within a text put it inside a backtick Example To check if an Exchange is closed you need to use To display inline code from a file use the inlined code plugin Example To access this feature navigate to Specify multiple files via page local or global plugin defaults to avoid repeating throughout the page","Example To check if an Exchange is closed you need to use `ExchangeCalendar` ExchangeCalendar file Example To access this feature navigate to ` file urlsample txt` identifier ` identifier my_func validationPath my_func_usage py ` Use inlined code plugin to render inlined code and validate its spelling by looking at the provided file for match Use it to make sure your documentation reflects the API changes and do not use outdated identifier names def example my_func 100 validationPath identifier validationPath python my_func_usage py python utils py my text ` identifier my_func`"],["snippets@@api-parameters@@inlined-csv","Snippets","API Parameters","Inlined CSV","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ```"],["snippets@@api-parameters@@nested","Snippets","API Parameters","Nested","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person"],["snippets@@api-parameters@@title","Snippets","API Parameters","Title","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ```"],["snippets@@api-parameters@@collapsing-parameters","Snippets","API Parameters","Collapsing Parameters","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title"],["snippets@@api-parameters@@no-gap","Snippets","API Parameters","No Gap","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ```"],["snippets@@api-parameters@@size","Snippets","API Parameters","Size","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ```"],["snippets@@api-parameters@@multi-line-csv-description","Snippets","API Parameters","Multi-line CSV Description","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support Use quotes to wrap a multiline description Here is an example of description including multiple lines and nested code block example cores String execute cores 10 Specify how many cores to allocate for execution gpu Boolean execute cores 10 gpu true Specify whether to use gpu Note Use larger number of backticks on outside then inside to distinct between plugin boundaries and nested code blocks","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` `````api parameters cores String ``` execute cores 10 ``` Specify how many cores to allocate for execution gpu Boolean ``` execute cores 10 gpu true ``` Specify whether to use gpu ````` api parameters"],["snippets@@api-parameters@@external-json-file","Snippets","API Parameters","External JSON File","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support Use quotes to wrap a multiline description Here is an example of description including multiple lines and nested code block example cores String execute cores 10 Specify how many cores to allocate for execution gpu Boolean execute cores 10 gpu true Specify whether to use gpu Note Use larger number of backticks on outside then inside to distinct between plugin boundaries and nested code blocks Instead of hard coding your parameters inside markdown files you can specify an external JSON file JSON could be generated based on the data you have Some examples build time annotation processor test time command line parameters generation Given the above file use to display it as API Parameters sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note field in JSON file is treated as Markdown","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` `````api parameters cores String ``` execute cores 10 ``` Specify how many cores to allocate for execution gpu Boolean ``` execute cores 10 gpu true ``` Specify whether to use gpu ````` api parameters include api parameters api parameters json title Person Definition description"],["snippets@@api-parameters@@anchors","Snippets","API Parameters","Anchors","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support Use quotes to wrap a multiline description Here is an example of description including multiple lines and nested code block example cores String execute cores 10 Specify how many cores to allocate for execution gpu Boolean execute cores 10 gpu true Specify whether to use gpu Note Use larger number of backticks on outside then inside to distinct between plugin boundaries and nested code blocks Instead of hard coding your parameters inside markdown files you can specify an external JSON file JSON could be generated based on the data you have Some examples build time annotation processor test time command line parameters generation Given the above file use to display it as API Parameters sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note field in JSON file is treated as Markdown Each API parameter has an anchor associated with it You need to hover over parameter name for it to appear Use parameter to avoid conflict of anchor ids when using the same API parameter names within a single page firstName String description with markdown support score Integer another description line with markdown support In the example above is added to each parameter link","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` `````api parameters cores String ``` execute cores 10 ``` Specify how many cores to allocate for execution gpu Boolean ``` execute cores 10 gpu true ``` Specify whether to use gpu ````` api parameters include api parameters api parameters json title Person Definition description anchorPrefix ```api parameters anchorPrefix customPrefix firstName String description with *markdown* support score Integer another description line with *markdown* support ``` customPrefix"],["snippets@@api-parameters@@long-parameter-names","Snippets","API Parameters","Long Parameter Names","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support Use quotes to wrap a multiline description Here is an example of description including multiple lines and nested code block example cores String execute cores 10 Specify how many cores to allocate for execution gpu Boolean execute cores 10 gpu true Specify whether to use gpu Note Use larger number of backticks on outside then inside to distinct between plugin boundaries and nested code blocks Instead of hard coding your parameters inside markdown files you can specify an external JSON file JSON could be generated based on the data you have Some examples build time annotation processor test time command line parameters generation Given the above file use to display it as API Parameters sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note field in JSON file is treated as Markdown Each API parameter has an anchor associated with it You need to hover over parameter name for it to appear Use parameter to avoid conflict of anchor ids when using the same API parameter names within a single page firstName String description with markdown support score Integer another description line with markdown support In the example above is added to each parameter link Znai hard wraps long parameter names to leave more space to description VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with markdown support Use to remove hard wrap enforcement VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with markdown support","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` `````api parameters cores String ``` execute cores 10 ``` Specify how many cores to allocate for execution gpu Boolean ``` execute cores 10 gpu true ``` Specify whether to use gpu ````` api parameters include api parameters api parameters json title Person Definition description anchorPrefix ```api parameters anchorPrefix customPrefix firstName String description with *markdown* support score Integer another description line with *markdown* support ``` customPrefix noWrap true ```api parameters anchorPrefix customPrefix noWrap true VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with *markdown* support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with *markdown* support ```"],["snippets@@api-parameters@@wide-mode","Snippets","API Parameters","Wide Mode","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support Use quotes to wrap a multiline description Here is an example of description including multiple lines and nested code block example cores String execute cores 10 Specify how many cores to allocate for execution gpu Boolean execute cores 10 gpu true Specify whether to use gpu Note Use larger number of backticks on outside then inside to distinct between plugin boundaries and nested code blocks Instead of hard coding your parameters inside markdown files you can specify an external JSON file JSON could be generated based on the data you have Some examples build time annotation processor test time command line parameters generation Given the above file use to display it as API Parameters sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note field in JSON file is treated as Markdown Each API parameter has an anchor associated with it You need to hover over parameter name for it to appear Use parameter to avoid conflict of anchor ids when using the same API parameter names within a single page firstName String description with markdown support score Integer another description line with markdown support In the example above is added to each parameter link Znai hard wraps long parameter names to leave more space to description VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with markdown support Use to remove hard wrap enforcement VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with markdown support Use to use all the available horizontal space VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line another description line with markdown support and few moe lines","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` `````api parameters cores String ``` execute cores 10 ``` Specify how many cores to allocate for execution gpu Boolean ``` execute cores 10 gpu true ``` Specify whether to use gpu ````` api parameters include api parameters api parameters json title Person Definition description anchorPrefix ```api parameters anchorPrefix customPrefix firstName String description with *markdown* support score Integer another description line with *markdown* support ``` customPrefix noWrap true ```api parameters anchorPrefix customPrefix noWrap true VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with *markdown* support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with *markdown* support ``` wide true ```api parameters anchorPrefix customPrefix noWrap true wide true VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line description with *markdown* support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line another description line with *markdown* support and few moe lines ```"],["snippets@@api-parameters@@wide-mode","Snippets","API Parameters","Wide Mode","Use fenced code plugin to document API parameters firstName String description with markdown support score Integer another description line with markdown support Use syntax to define nested objects like this Note when using this approach it is necessary to explicitly define a entry such as in this example sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note if a parameter name actually contains a period you can prevent this nesting behavior by putting the parameter name in single quotes e g person firstName Use the parameter to specify a title firstName String description with markdown support score Integer another description line with markdown support Use to make collapsible city String city name zipCode String zip code Note requires to be present Use to remove top bottom margins when there are multiple parameter instances in a row firstName String description with markdown support score Integer another description line with markdown support city String city name zipCode String zip code Use the parameter to render API Parameters using smaller font size and occupying less width firstName String description with markdown support score Integer another description line with markdown support Use quotes to wrap a multiline description Here is an example of description including multiple lines and nested code block example cores String execute cores 10 Specify how many cores to allocate for execution gpu Boolean execute cores 10 gpu true Specify whether to use gpu Note Use larger number of backticks on outside then inside to distinct between plugin boundaries and nested code blocks Instead of hard coding your parameters inside markdown files you can specify an external JSON file JSON could be generated based on the data you have Some examples build time annotation processor test time command line parameters generation Given the above file use to display it as API Parameters sessionId Integer session Id person Person person to login with firstName String first name of the person lastName String last name of the person roles List list of authorized roles id String role id description String role description Note field in JSON file is treated as Markdown Each API parameter has an anchor associated with it You need to hover over parameter name for it to appear Use parameter to avoid conflict of anchor ids when using the same API parameter names within a single page firstName String description with markdown support score Integer another description line with markdown support In the example above is added to each parameter link Znai hard wraps long parameter names to leave more space to description VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with markdown support Use to remove hard wrap enforcement VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with markdown support Use to use all the available horizontal space VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line description with markdown support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line another description line with markdown support and few moe lines","api parameters ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` parent child ```api parameters sessionId Integer session Id person Person person to login with person firstName String first name of the person person lastName String last name of the person roles List list of authorized roles roles id String role id roles description String role description ``` root person title ```api parameters title person definition firstName String description with *markdown* support score Integer another description line with *markdown* support ``` collapsed true|false api parameters ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` collapsed title noGap true ```api parameters title person definition anchorPrefix title collapsed false noGap true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ```api parameters title address definition anchorPrefix title collapsed true city String city name zipCode String zip code ``` small ```api parameters small true firstName String description with *markdown* support score Integer another description line with *markdown* support ``` `````api parameters cores String ``` execute cores 10 ``` Specify how many cores to allocate for execution gpu Boolean ``` execute cores 10 gpu true ``` Specify whether to use gpu ````` api parameters include api parameters api parameters json title Person Definition description anchorPrefix ```api parameters anchorPrefix customPrefix firstName String description with *markdown* support score Integer another description line with *markdown* support ``` customPrefix noWrap true ```api parameters anchorPrefix customPrefix noWrap true VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String description with *markdown* support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String another description line with *markdown* support ``` wide true ```api parameters anchorPrefix customPrefix noWrap true wide true VERY_LONG_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line description with *markdown* support VERY_LONG_ANOTHER_PARAMETER_NAME_WITHOUT_SPACES String longer line longer line another description line with *markdown* support and few moe lines ```"],["snippets@@code-references@@local-references","Snippets","Code References","Local References","You can turn parts of a code snippet into links to internal or external pages To do that define references in a CSV file using a two column format JSON format is also supported","expression link constructor https developer mozilla org en US docs Web JavaScript Reference Classes constructor usefulAction example references api#useful action include file file name js referencesPath references references demo csv class JsClass constructor usefulAction export default JsClass"],["snippets@@code-references@@page-defaults","Snippets","Code References","Page Defaults","You can turn parts of a code snippet into links to internal or external pages To do that define references in a CSV file using a two column format JSON format is also supported Use plugin Page Local Defaults to set references file that is relevant to the page at hand","expression link constructor https developer mozilla org en US docs Web JavaScript Reference Classes constructor usefulAction example references api#useful action include file file name js referencesPath references references demo csv class JsClass constructor usefulAction export default JsClass"],["snippets@@code-references@@global-references","Snippets","Code References","Global References","You can turn parts of a code snippet into links to internal or external pages To do that define references in a CSV file using a two column format JSON format is also supported Use plugin Page Local Defaults to set references file that is relevant to the page at hand Add references to or if you want all your code snippets to use the same references","expression link constructor https developer mozilla org en US docs Web JavaScript Reference Classes constructor usefulAction example references api#useful action include file file name js referencesPath references references demo csv class JsClass constructor usefulAction export default JsClass references csv references json fapi book example references api#book fapi query example references api#query import * as fapi from flight api function bookFlight flightInfo const confirmation fapi book flightInfo function flightStatus id const fullStatus fapi query id return fullStatus shortStatus"],["snippets@@code-references@@inlined-code","Snippets","Code References","Inlined Code","You can turn parts of a code snippet into links to internal or external pages To do that define references in a CSV file using a two column format JSON format is also supported Use plugin Page Local Defaults to set references file that is relevant to the page at hand Add references to or if you want all your code snippets to use the same references Inlined code is automatically converted into a link if its content matches one of the global references entries fapi book Use to book a flight","expression link constructor https developer mozilla org en US docs Web JavaScript Reference Classes constructor usefulAction example references api#useful action include file file name js referencesPath references references demo csv class JsClass constructor usefulAction export default JsClass references csv references json fapi book example references api#book fapi query example references api#query import * as fapi from flight api function bookFlight flightInfo const confirmation fapi book flightInfo function flightStatus id const fullStatus fapi query id return fullStatus shortStatus Use `fapi book` to book a flight"],["snippets@@code-references@@inlined-code","Snippets","Code References","Inlined Code","You can turn parts of a code snippet into links to internal or external pages To do that define references in a CSV file using a two column format JSON format is also supported Use plugin Page Local Defaults to set references file that is relevant to the page at hand Add references to or if you want all your code snippets to use the same references Inlined code is automatically converted into a link if its content matches one of the global references entries fapi book Use to book a flight","expression link constructor https developer mozilla org en US docs Web JavaScript Reference Classes constructor usefulAction example references api#useful action include file file name js referencesPath references references demo csv class JsClass constructor usefulAction export default JsClass references csv references json fapi book example references api#book fapi query example references api#query import * as fapi from flight api function bookFlight flightInfo const confirmation fapi book flightInfo function flightStatus id const fullStatus fapi query id return fullStatus shortStatus Use `fapi book` to book a flight"],["snippets@@json@@auto-formatting","Snippets","Json","Auto Formatting","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json"],["snippets@@json@@highlight-values-by-path","Snippets","Json","Highlight Values By Path","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category"],["snippets@@json@@highlight-values-by-path-from-file","Snippets","Json","Highlight Values By Path From File","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json"],["snippets@@json@@highlight-keys-by-path","Snippets","Json","Highlight Keys By Path","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ```"],["snippets@@json@@highlight-keys-by-path-from-file","Snippets","Json","Highlight Keys By Path From File","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json"],["snippets@@json@@json-subparts","Snippets","Json","Json Subparts","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1"],["snippets@@json@@enclose-in-object","Snippets","Json","Enclose In Object","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1"],["snippets@@json@@title","Snippets","Json","Title","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true"],["snippets@@json@@anchor","Snippets","Json","Anchor","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books"],["snippets@@json@@read-more","Snippets","Json","Read More","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5"],["snippets@@json@@hidden-parts","Snippets","Json","Hidden Parts","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book"],["snippets@@json@@highlights","Snippets","Json","Highlights","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2"],["snippets@@json@@code-references","Snippets","Json","Code References","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index You can turn parts of into links to internal or external pages","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2 JSON include json trader json title trader referencesPath references json references demo csv trader example references domain#trader transaction example references domain#transaction"],["snippets@@json@@callouts","Snippets","Json","Callouts","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index You can turn parts of into links to internal or external pages Use parameter to attach bullet points with explanation to a json path","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2 JSON include json trader json title trader referencesPath references json references demo csv trader example references domain#trader transaction example references domain#transaction callouts include json book store json collapsedPaths root store book callouts root store bicycle color subject of **availability** root store bicycle price *price* changes daily"],["snippets@@json@@callouts-from-file","Snippets","Json","Callouts From File","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index You can turn parts of into links to internal or external pages Use parameter to attach bullet points with explanation to a json path Use parameter to read callouts from a separate file Can reduce duplication and allows to generate callouts at runtime CSV format is also supported","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2 JSON include json trader json title trader referencesPath references json references demo csv trader example references domain#trader transaction example references domain#transaction callouts include json book store json collapsedPaths root store book callouts root store bicycle color subject of **availability** root store bicycle price *price* changes daily calloutsFile include json book store json collapsedPaths root store book calloutsFile schema notes json root store bicycle color subject of **availability** root store bicycle price *price* changes daily root store bicycle color subject of **availability** root store bicycle price *price* changes daily"],["snippets@@json@@test-results","Snippets","Json","Test Results","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index You can turn parts of into links to internal or external pages Use parameter to attach bullet points with explanation to a json path Use parameter to read callouts from a separate file Can reduce duplication and allows to generate callouts at runtime CSV format is also supported Below is an example of using WebTau testing framework to make an HTTP call extract JSON response and information about asserted fields to highlight http get weather temperature shouldBe < 100 http doc capture weather example captures multiple test artifacts into separate files request response json url txt paths json validated paths","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2 JSON include json trader json title trader referencesPath references json references demo csv trader example references domain#trader transaction example references domain#transaction callouts include json book store json collapsedPaths root store book callouts root store bicycle color subject of **availability** root store bicycle price *price* changes daily calloutsFile include json book store json collapsedPaths root store book calloutsFile schema notes json root store bicycle color subject of **availability** root store bicycle price *price* changes daily root store bicycle color subject of **availability** root store bicycle price *price* changes daily http doc capture include json weather example response json title weather response example highlightValueFile weather example paths json"],["snippets@@json@@incomplete-json","Snippets","Json","Incomplete JSON","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index You can turn parts of into links to internal or external pages Use parameter to attach bullet points with explanation to a json path Use parameter to read callouts from a separate file Can reduce duplication and allows to generate callouts at runtime CSV format is also supported Below is an example of using WebTau testing framework to make an HTTP call extract JSON response and information about asserted fields to highlight http get weather temperature shouldBe < 100 http doc capture weather example captures multiple test artifacts into separate files request response json url txt paths json validated paths All the features above require fully formed JSON If you need only syntax highlighting use include file plugin","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2 JSON include json trader json title trader referencesPath references json references demo csv trader example references domain#trader transaction example references domain#transaction callouts include json book store json collapsedPaths root store book callouts root store bicycle color subject of **availability** root store bicycle price *price* changes daily calloutsFile include json book store json collapsedPaths root store book calloutsFile schema notes json root store bicycle color subject of **availability** root store bicycle price *price* changes daily root store bicycle color subject of **availability** root store bicycle price *price* changes daily http doc capture include json weather example response json title weather response example highlightValueFile weather example paths json include file incomplete json config"],["snippets@@json@@incomplete-json","Snippets","Json","Incomplete JSON","Use fence block to render auto formatted json and use extra capabilities described below Use include plugin to read json from an external file Use the parameter to highlight an individual value Pass multiple values to to highlight more than one leaf value Comma separated paths specified inside will be highlighted Use to specify a file with paths to highlight values Use the parameter to highlight keys Use to specify a file with paths to highlight keys To include only a portion of your document pass Json Path as property Use to wrap any JSON and include result into parent object s Use parameter to specify a snippet title Use to automatically set title to specified file name When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to show only first lines of Optional can be specified to set the initial number of lines to display To hide sub parts of your use property To highlight a specific value using in similar fashion to regular code snippets you can highlight a line by text matching or by providing a line index You can turn parts of into links to internal or external pages Use parameter to attach bullet points with explanation to a json path Use parameter to read callouts from a separate file Can reduce duplication and allows to generate callouts at runtime CSV format is also supported Below is an example of using WebTau testing framework to make an HTTP call extract JSON response and information about asserted fields to highlight http get weather temperature shouldBe < 100 http doc capture weather example captures multiple test artifacts into separate files request response json url txt paths json validated paths All the features above require fully formed JSON If you need only syntax highlighting use include file plugin","json ```json key1 value1 key2 value2 ``` json key1 value1 key2 value2 include json simple json ```json highlightValue root 1 key2 key1 value1 key2 value2 ``` include json book store json highlightValue root store book 0 category root store book 2 category include json book store json highlightValueFile book store paths json ```json highlightKey root 1 key2 key1 value11 value12 key2 value21 value22 ``` include json book store json highlightKeyFile book store paths json include json book store json include $ book 0 1 include json book store json encloseInObject books rare include $ book 0 1 title include json book store json include $ book 0 1 title Books autoTitle true include json book store json include $ book 0 1 autoTitle true anchorId include json book store json include $ book 0 1 title Books anchorId my books readMore JSON readMoreVisibleLines include json book store json readMore true readMoreVisibleLines 5 JSON collapsedPaths include json book store json collapsedPaths root store book JSON paths include json book store json highlight category 2 JSON include json trader json title trader referencesPath references json references demo csv trader example references domain#trader transaction example references domain#transaction callouts include json book store json collapsedPaths root store book callouts root store bicycle color subject of **availability** root store bicycle price *price* changes daily calloutsFile include json book store json collapsedPaths root store book calloutsFile schema notes json root store bicycle color subject of **availability** root store bicycle price *price* changes daily root store bicycle color subject of **availability** root store bicycle price *price* changes daily http doc capture include json weather example response json title weather response example highlightValueFile weather example paths json include file incomplete json config"],["snippets@@xml@@highlight-parts","Snippets","Xml","Highlight Parts","Use the plugin to bring attention to a certain place in a file Comma separated paths specified inside will be highlighted Note Children index in starts with 0 and is associated with a tag","include xml XML paths include xml menu html paths ul @class ul li 1 @class ul li 2 paths include xml simple xml paths root a 1 root b 0 root c 0"],["snippets@@xml@@use-cases","Snippets","Xml","Use Cases","Use the plugin to bring attention to a certain place in a file Comma separated paths specified inside will be highlighted Note Children index in starts with 0 and is associated with a tag and can be used to document XML Config CSS selectors ReactJS properties AngularJS templates In presentation mode paths will be highlighted one at a time","include xml XML paths include xml menu html paths ul @class ul li 1 @class ul li 2 paths include xml simple xml paths root a 1 root b 0 root c 0 include xml paths"],["snippets@@xml@@title","Snippets","Xml","Title","Use the plugin to bring attention to a certain place in a file Comma separated paths specified inside will be highlighted Note Children index in starts with 0 and is associated with a tag and can be used to document XML Config CSS selectors ReactJS properties AngularJS templates In presentation mode paths will be highlighted one at a time Use the property to specify a title","include xml XML paths include xml menu html paths ul @class ul li 1 @class ul li 2 paths include xml simple xml paths root a 1 root b 0 root c 0 include xml paths title include xml menu html title Menu snippet"],["snippets@@xml@@title","Snippets","Xml","Title","Use the plugin to bring attention to a certain place in a file Comma separated paths specified inside will be highlighted Note Children index in starts with 0 and is associated with a tag and can be used to document XML Config CSS selectors ReactJS properties AngularJS templates In presentation mode paths will be highlighted one at a time Use the property to specify a title","include xml XML paths include xml menu html paths ul @class ul li 1 @class ul li 2 paths include xml simple xml paths root a 1 root b 0 root c 0 include xml paths title include xml menu html title Menu snippet"],["snippets@@open-API@@operation-by-method-and-path","Snippets","Open API","Operation By Method And Path","If you have a file with an Open API definition a k a a Swagger file you can render it by a given and or by Both and formats are supported Let s consider Uber s API definition as an example Responses 200 default Note descriptions are treated as Markdown using the CommonMark specification","method path operationId yaml json include open api open api uber json method get path estimates time"],["snippets@@open-API@@operation-by-id","Snippets","Open API","Operation By ID","If you have a file with an Open API definition a k a a Swagger file you can render it by a given and or by Both and formats are supported Let s consider Uber s API definition as an example Responses 200 default Note descriptions are treated as Markdown using the CommonMark specification Let s take a pet store example Use to include operation definition by ID Request Responses 200 400 404 405","method path operationId yaml json include open api open api uber json method get path estimates time operationId include open api petstore openapi3 json operationId updatePet"],["snippets@@open-API@@add-a-new-pet-to-the-store","Snippets","Open API","Add a new pet to the store","If you have a file with an Open API definition a k a a Swagger file you can render it by a given and or by Both and formats are supported Let s consider Uber s API definition as an example Responses 200 default Note descriptions are treated as Markdown using the CommonMark specification Let s take a pet store example Use to include operation definition by ID Request Responses 200 400 404 405 Use the property to automatically generate a page section with a title taken from an operation summary Note The section below is automatically generated by Request Responses 200 405","method path operationId yaml json include open api open api uber json method get path estimates time operationId include open api petstore openapi3 json operationId updatePet autoSection include open api petstore openapi3 json operationId addPet autoSection true include open api"],["snippets@@open-API@@time-estimates","Snippets","Open API","Time Estimates","If you have a file with an Open API definition a k a a Swagger file you can render it by a given and or by Both and formats are supported Let s consider Uber s API definition as an example Responses 200 default Note descriptions are treated as Markdown using the CommonMark specification Let s take a pet store example Use to include operation definition by ID Request Responses 200 400 404 405 Use the property to automatically generate a page section with a title taken from an operation summary Note The section below is automatically generated by Request Responses 200 405 Specify to automatically generate multiple entries from a service definition file Note The sections below are automatically generated by Responses 200 default Responses 200 default","method path operationId yaml json include open api open api uber json method get path estimates time operationId include open api petstore openapi3 json operationId updatePet autoSection include open api petstore openapi3 json operationId addPet autoSection true include open api tags include open api open api uber yaml tags Estimates autoSection true include open api"],["snippets@@open-API@@two-sides-layout","Snippets","Open API","Two Sides Layout","If you have a file with an Open API definition a k a a Swagger file you can render it by a given and or by Both and formats are supported Let s consider Uber s API definition as an example Responses 200 default Note descriptions are treated as Markdown using the CommonMark specification Let s take a pet store example Use to include operation definition by ID Request Responses 200 400 404 405 Use the property to automatically generate a page section with a title taken from an operation summary Note The section below is automatically generated by Request Responses 200 405 Specify to automatically generate multiple entries from a service definition file Note The sections below are automatically generated by Responses 200 default Responses 200 default Znai supports Two Sides Layout mode that is perfect to supplement API documentation with examples column Open API example","method path operationId yaml json include open api open api uber json method get path estimates time operationId include open api petstore openapi3 json operationId updatePet autoSection include open api petstore openapi3 json operationId addPet autoSection true include open api tags include open api open api uber yaml tags Estimates autoSection true include open api"],["snippets@@open-API@@two-sides-layout","Snippets","Open API","Two Sides Layout","If you have a file with an Open API definition a k a a Swagger file you can render it by a given and or by Both and formats are supported Let s consider Uber s API definition as an example Responses 200 default Note descriptions are treated as Markdown using the CommonMark specification Let s take a pet store example Use to include operation definition by ID Request Responses 200 400 404 405 Use the property to automatically generate a page section with a title taken from an operation summary Note The section below is automatically generated by Request Responses 200 405 Specify to automatically generate multiple entries from a service definition file Note The sections below are automatically generated by Responses 200 default Responses 200 default Znai supports Two Sides Layout mode that is perfect to supplement API documentation with examples column Open API example","method path operationId yaml json include open api open api uber json method get path estimates time operationId include open api petstore openapi3 json operationId updatePet autoSection include open api petstore openapi3 json operationId addPet autoSection true include open api tags include open api open api uber yaml tags Estimates autoSection true include open api"],["snippets@@CLI@@parameters-highlight","Snippets","CLI","Parameters Highlight","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop"],["snippets@@CLI@@include-plugin","Snippets","CLI","Include Plugin","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true"],["snippets@@CLI@@long-commands","Snippets","CLI","Long Commands","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter"],["snippets@@CLI@@handle-special-symbols","Snippets","CLI","Handle Special Symbols","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2"],["snippets@@CLI@@from-file","Snippets","CLI","From File","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value"],["snippets@@CLI@@ansi-colors-output","Snippets","CLI","ANSI Colors Output","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out"],["snippets@@CLI@@title","Snippets","CLI","Title","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output"],["snippets@@CLI@@anchor","Snippets","CLI","Anchor","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output anchorId include cli output cli ansi out title captured output anchorId my output"],["snippets@@CLI@@output-highlight","Snippets","CLI","Output Highlight","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines based on the content of a file webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output anchorId include cli output cli ansi out title captured output anchorId my output include cli output cli ansi out title captured output highlight GET https include cli output cli ansi out highlightPath cli file path of asserted lines txt statusCode equals 200 executed HTTP GET"],["snippets@@CLI@@wide-mode","Snippets","CLI","Wide Mode","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines based on the content of a file webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use option to occupy as much horizontal space as available long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output anchorId include cli output cli ansi out title captured output anchorId my output include cli output cli ansi out title captured output highlight GET https include cli output cli ansi out highlightPath cli file path of asserted lines txt statusCode equals 200 executed HTTP GET wide include cli output cli wide output out title Captured output wide true"],["snippets@@CLI@@extract-snippets","Snippets","CLI","Extract Snippets","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines based on the content of a file webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use option to occupy as much horizontal space as available long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output Use to extract specific content by using marker lines Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 13 done Delta compression using up to 8 threads Compressing objects 100% 13 13 done Writing objects 100% 13 13 1 25 KiB | 0 bytes s done Total 13 delta 11 reused 0 delta 0 remote Resolving deltas 100% 11 11 completed with 11 local objects To https github com testingisdocumenting znai git e310685 900e0be master > master More on snippets extractions Snippets Manipulation","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output anchorId include cli output cli ansi out title captured output anchorId my output include cli output cli ansi out title captured output highlight GET https include cli output cli ansi out highlightPath cli file path of asserted lines txt statusCode equals 200 executed HTTP GET wide include cli output cli wide output out title Captured output wide true startLine endLine include cli output cli file path of captured out title Limited captured output startLine git push endLine master > master"],["snippets@@CLI@@presentation-mode","Snippets","CLI","Presentation Mode","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines based on the content of a file webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use option to occupy as much horizontal space as available long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output Use to extract specific content by using marker lines Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 13 done Delta compression using up to 8 threads Compressing objects 100% 13 13 done Writing objects 100% 13 13 1 25 KiB | 0 bytes s done Total 13 delta 11 reused 0 delta 0 remote Resolving deltas 100% 11 11 completed with 11 local objects To https github com testingisdocumenting znai git e310685 900e0be master > master More on snippets extractions Snippets Manipulation In presentation mode cli command related plugins will simulate typing inside the terminal You can gradually reveal by providing parameter Passed will highlight each line as a separate slide Delta compression using up to 8 threads Compressing objects 100% 16 16 done Writing objects 100% 16 16 1 34 KiB | 0 bytes s done Total 16 delta 14 reused 0 delta 0 remote Resolving deltas 100% 14 14 completed with 10 local objects To https github com testingisdocumenting znai git ea44003 e310685 master > master Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 13 done Delta compression using up to 8 threads Compressing objects 100% 13 13 done Writing objects 100% 13 13 1 25 KiB | 0 bytes s done Total 13 delta 11 reused 0 delta 0 remote Resolving deltas 100% 11 11 completed with 11 local objects To https github com testingisdocumenting znai git e310685 900e0be master > master Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 33 done Delta compression using up to 8 threads Compressing objects 100% 33 33 done Writing objects 100% 33 33 3 34 KiB | 0 bytes s done Total 33 delta 28 reused 0 delta 0 remote Resolving deltas 100% 28 28 completed with 14 local objects To https github com testingisdocumenting znai git 900e0be bb9993f master > master","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output anchorId include cli output cli ansi out title captured output anchorId my output include cli output cli ansi out title captured output highlight GET https include cli output cli ansi out highlightPath cli file path of asserted lines txt statusCode equals 200 executed HTTP GET wide include cli output cli wide output out title Captured output wide true startLine endLine include cli output cli file path of captured out title Limited captured output startLine git push endLine master > master cli output revealLineStop include cli output cli file path of captured out revealLineStop 0 4 highlight remote"],["snippets@@CLI@@presentation-mode","Snippets","CLI","Presentation Mode","To bring attention to important parameters in your CLI examples use the fence plugin Note Parameter names gets matched as long as their names contain the passed value Alternatively to fence plugin above you can use include type Note options listed below are applicable to either form Long command lines will be automatically wrapped into multiple lines Use parameter to specify the max length of a line before splitting Use to force line splitting after specified parameter Note Unlike must be an exact match If your command contains special symbols such as move the command definition to a option You can read a command from file This option is useful for displaying a captured command during tests CLI renders ANSI colors automatically webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to specify output of the output webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use to highlight lines based on the content of a file webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms Use option to occupy as much horizontal space as available long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output long line from captured output Use to extract specific content by using marker lines Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 13 done Delta compression using up to 8 threads Compressing objects 100% 13 13 done Writing objects 100% 13 13 1 25 KiB | 0 bytes s done Total 13 delta 11 reused 0 delta 0 remote Resolving deltas 100% 11 11 completed with 11 local objects To https github com testingisdocumenting znai git e310685 900e0be master > master More on snippets extractions Snippets Manipulation In presentation mode cli command related plugins will simulate typing inside the terminal You can gradually reveal by providing parameter Passed will highlight each line as a separate slide Delta compression using up to 8 threads Compressing objects 100% 16 16 done Writing objects 100% 16 16 1 34 KiB | 0 bytes s done Total 16 delta 14 reused 0 delta 0 remote Resolving deltas 100% 14 14 completed with 10 local objects To https github com testingisdocumenting znai git ea44003 e310685 master > master Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 13 done Delta compression using up to 8 threads Compressing objects 100% 13 13 done Writing objects 100% 13 13 1 25 KiB | 0 bytes s done Total 13 delta 11 reused 0 delta 0 remote Resolving deltas 100% 11 11 completed with 11 local objects To https github com testingisdocumenting znai git e310685 900e0be master > master Mykolas MacBook Pro znai reactjs mykola$ git push Counting objects 33 done Delta compression using up to 8 threads Compressing objects 100% 33 33 done Writing objects 100% 33 33 3 34 KiB | 0 bytes s done Total 33 delta 28 reused 0 delta 0 remote Resolving deltas 100% 28 28 completed with 14 local objects To https github com testingisdocumenting znai git 900e0be bb9993f master > master","cli ```cli highlight important my super command paramA important flag true ``` my super command paramA important flag true ```cli highlight important my super command paramA important flag true another command stop ``` my super command paramA important flag true another command stop include cli command my super command paramA important flag true highlight important my super command paramA important flag true another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 threshold include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value threshold 30 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 splitAfter include cli command another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight name value splitAfter score 2 value 8 another command score 2 name Name value 8 long parameter test another long parameter1 another long parameter2 another long3 highlight splitAfter command include cli command command another command file1 file2 highlight file1 another command file1 file2 include cli command commandFile cli command txt highlight value my captured command param 10 another value my captured command param 10 another value webtau 000> http get https jsonplaceholder typicode com todos 1 > executing HTTP GET https jsonplaceholder typicode com todos 1 header statusCode equals 200 matches header statusCode actual 200 expected 200 47ms userId 1 id 1 title delectus aut autem completed false executed HTTP GET https jsonplaceholder typicode com todos 1 342ms include cli output cli ansi out title include cli output cli ansi out title captured output anchorId include cli output cli ansi out title captured output anchorId my output include cli output cli ansi out title captured output highlight GET https include cli output cli ansi out highlightPath cli file path of asserted lines txt statusCode equals 200 executed HTTP GET wide include cli output cli wide output out title Captured output wide true startLine endLine include cli output cli file path of captured out title Limited captured output startLine git push endLine master > master cli output revealLineStop include cli output cli file path of captured out revealLineStop 0 4 highlight remote"],["snippets@@math@@latex-block","Snippets","Math","LaTeX Block","To render math you can use LaTeX math expressions Surround LaTeX expression with fenced block and specify as a language The result will be a following math expression forall x in X quad exists y leq epsilon x begin cases a & text if b c & text if d x & text if z end cases","latex ```latex forall x in X quad exists y leq epsilon ``` ```latex x begin cases a & text if b c & text if d x & text if z end cases ```"],["snippets@@math@@latex-inline","Snippets","Math","LaTeX Inline","To render math you can use LaTeX math expressions Surround LaTeX expression with fenced block and specify as a language The result will be a following math expression forall x in X quad exists y leq epsilon x begin cases a & text if b c & text if d x & text if z end cases Znai also supports inline LaTeX Use single backticks instead of three to render math expressions inline JSON parameters are used to allow LaTeX braces to be parsed correctly The result will be a following math expression It holds that","latex ```latex forall x in X quad exists y leq epsilon ``` ```latex x begin cases a & text if b c & text if d x & text if z end cases ``` It holds that ` latex src frac 1 2 < sqrt 2 `"],["snippets@@math@@presentation-mode","Snippets","Math","Presentation Mode","To render math you can use LaTeX math expressions Surround LaTeX expression with fenced block and specify as a language The result will be a following math expression forall x in X quad exists y leq epsilon x begin cases a & text if b c & text if d x & text if z end cases Znai also supports inline LaTeX Use single backticks instead of three to render math expressions inline JSON parameters are used to allow LaTeX braces to be parsed correctly The result will be a following math expression It holds that In presentation mode rendered expressions will automatically scale to make use of the screen space","latex ```latex forall x in X quad exists y leq epsilon ``` ```latex x begin cases a & text if b c & text if d x & text if z end cases ``` It holds that ` latex src frac 1 2 < sqrt 2 `"],["snippets@@math@@katex","Snippets","Math","KaTex","To render math you can use LaTeX math expressions Surround LaTeX expression with fenced block and specify as a language The result will be a following math expression forall x in X quad exists y leq epsilon x begin cases a & text if b c & text if d x & text if z end cases Znai also supports inline LaTeX Use single backticks instead of three to render math expressions inline JSON parameters are used to allow LaTeX braces to be parsed correctly The result will be a following math expression It holds that In presentation mode rendered expressions will automatically scale to make use of the screen space Rendering is done by using awesome KaTeX library KaTeX fonts are copied to generated documentation resources","latex ```latex forall x in X quad exists y leq epsilon ``` ```latex x begin cases a & text if b c & text if d x & text if z end cases ``` It holds that ` latex src frac 1 2 < sqrt 2 `"],["snippets@@math@@katex","Snippets","Math","KaTex","To render math you can use LaTeX math expressions Surround LaTeX expression with fenced block and specify as a language The result will be a following math expression forall x in X quad exists y leq epsilon x begin cases a & text if b c & text if d x & text if z end cases Znai also supports inline LaTeX Use single backticks instead of three to render math expressions inline JSON parameters are used to allow LaTeX braces to be parsed correctly The result will be a following math expression It holds that In presentation mode rendered expressions will automatically scale to make use of the screen space Rendering is done by using awesome KaTeX library KaTeX fonts are copied to generated documentation resources","latex ```latex forall x in X quad exists y leq epsilon ``` ```latex x begin cases a & text if b c & text if d x & text if z end cases ``` It holds that ` latex src frac 1 2 < sqrt 2 `"],["snippets@@jupyter-notebook@@code-and-output","Snippets","Jupyter Notebook","Code and Output","Use to include Jupyter notebook inside your documentation Note Remember that you can define lookup paths for files like notebooks inside lookup paths file so you don t have to copy and paste notebooks to your documentation directory","include jupyter include jupyter jupyter simple notebook ipynb"],["snippets@@jupyter-notebook@@pandas","Snippets","Jupyter Notebook","Pandas","Use to include Jupyter notebook inside your documentation Note Remember that you can define lookup paths for files like notebooks inside lookup paths file so you don t have to copy and paste notebooks to your documentation directory Markdown from your notebook will be seamlessly integrated into your current page First level will become part of Table Of Contents and part of a search unit Note below text is auto generated including the Panda section Displaying values using panda Values can be displayed using standard console output Or using library to render a html snippet","include jupyter include jupyter jupyter simple notebook ipynb # headers include jupyter notebook with markdown story ipynb display"],["snippets@@jupyter-notebook@@two-sides","Snippets","Jupyter Notebook","Two Sides","Use to include Jupyter notebook inside your documentation Note Remember that you can define lookup paths for files like notebooks inside lookup paths file so you don t have to copy and paste notebooks to your documentation directory Markdown from your notebook will be seamlessly integrated into your current page First level will become part of Table Of Contents and part of a search unit Note below text is auto generated including the Panda section Displaying values using panda Values can be displayed using standard console output Or using library to render a html snippet You will learn about the Two Sides Layout in the Layout section If you are are curious now for examples jump to Jupyter Two Sides example","include jupyter include jupyter jupyter simple notebook ipynb # headers include jupyter notebook with markdown story ipynb display"],["snippets@@jupyter-notebook@@two-sides","Snippets","Jupyter Notebook","Two Sides","Use to include Jupyter notebook inside your documentation Note Remember that you can define lookup paths for files like notebooks inside lookup paths file so you don t have to copy and paste notebooks to your documentation directory Markdown from your notebook will be seamlessly integrated into your current page First level will become part of Table Of Contents and part of a search unit Note below text is auto generated including the Panda section Displaying values using panda Values can be displayed using standard console output Or using library to render a html snippet You will learn about the Two Sides Layout in the Layout section If you are are curious now for examples jump to Jupyter Two Sides example","include jupyter include jupyter jupyter simple notebook ipynb # headers include jupyter notebook with markdown story ipynb display"],["snippets@@cpp@@description-extraction","Snippets","Cpp","Description Extraction","In addition to snippets manipulation that is applicable to any language Znai can extract description of methods and convert parameters into API Parameters Head over to CPP Description Extraction to learn more","include doxygen doc params utils nested my_func title My Params first_param int description of first param item a item b second_param bool description of second param"],["snippets@@cpp@@auto-reference","Snippets","Cpp","Auto Reference","In addition to snippets manipulation that is applicable to any language Znai can extract description of methods and convert parameters into API Parameters Head over to CPP Description Extraction to learn more Znai provides plugins to automatically create reference documentation for methods and classes Head over to CPP Auto Reference to learn more","include doxygen doc params utils nested my_func title My Params first_param int description of first param item a item b second_param bool description of second param include doxygen member multi_println prints a value and a new line v1 const T1 & value to print v2 const T2 & value to print v1 const T1 & value to print v2 const T2 & value to print ** * prints a value and a new line * @param v1 value to print * @param v2 value to print * @tparam T1 type of the value one to print * @tparam T2 type of the value two to print * template void multi_println const T1& v1 const T2& v2 std cout << v1 << << v2 << n"],["snippets@@cpp@@auto-reference","Snippets","Cpp","Auto Reference","In addition to snippets manipulation that is applicable to any language Znai can extract description of methods and convert parameters into API Parameters Head over to CPP Description Extraction to learn more Znai provides plugins to automatically create reference documentation for methods and classes Head over to CPP Auto Reference to learn more","include doxygen doc params utils nested my_func title My Params first_param int description of first param item a item b second_param bool description of second param include doxygen member multi_println prints a value and a new line v1 const T1 & value to print v2 const T2 & value to print v1 const T1 & value to print v2 const T2 & value to print ** * prints a value and a new line * @param v1 value to print * @param v2 value to print * @tparam T1 type of the value one to print * @tparam T2 type of the value two to print * template void multi_println const T1& v1 const T2& v2 std cout << v1 << << v2 << n"],["snippets@@python@@content-extraction","Snippets","Python","Content Extraction","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Python Content Extraction to learn more","include python python example py entry Animal says bodyOnly true print hello class Animal animal top level class doc string ``` code block ``` def says self animal **talks** `code` print hello"],["snippets@@python@@description-extraction","Snippets","Python","Description Extraction","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Python Content Extraction to learn more Znai provides plugin to extract PyDoc content Use it to extract high level description and merge it with the rest of the documentation Convert method parameters into API Parameters Head over to Python Description Extraction to learn more","include python python example py entry Animal says bodyOnly true print hello class Animal animal top level class doc string ``` code block ``` def says self animal **talks** `code` print hello include python doc params python pydoc params py entry my_func title result and parameters text inside my *func* doc * list one * list two Parameters label str label to use to *render* item in the store price fin money Money price associated with the **item** Returns str status of the operation `OK` for good def my_func label price text inside my *func* doc * list one * list two Parameters label str label to use to *render* item in the store price fin money Money price associated with the **item** Returns str status of the operation `OK` for good return OK"],["snippets@@python@@auto-reference","Snippets","Python","Auto Reference","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Python Content Extraction to learn more Znai provides plugin to extract PyDoc content Use it to extract high level description and merge it with the rest of the documentation Convert method parameters into API Parameters Head over to Python Description Extraction to learn more Znai provides plugins to automatically create reference documentation for methods and classes Head over to Python Auto Reference to learn more","include python python example py entry Animal says bodyOnly true print hello class Animal animal top level class doc string ``` code block ``` def says self animal **talks** `code` print hello include python doc params python pydoc params py entry my_func title result and parameters text inside my *func* doc * list one * list two Parameters label str label to use to *render* item in the store price fin money Money price associated with the **item** Returns str status of the operation `OK` for good def my_func label price text inside my *func* doc * list one * list two Parameters label str label to use to *render* item in the store price fin money Money price associated with the **item** Returns str status of the operation `OK` for good return OK include python method fin money render_money render_money render money to a string returns str money represented as text amount fin money Money amount to print message str message to use for audit def render_money amount Money message str > str render money to a string Parameters amount amount to print message message to use for audit Returns money represented as text return f message amount amount amount currency"],["snippets@@python@@auto-reference","Snippets","Python","Auto Reference","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Python Content Extraction to learn more Znai provides plugin to extract PyDoc content Use it to extract high level description and merge it with the rest of the documentation Convert method parameters into API Parameters Head over to Python Description Extraction to learn more Znai provides plugins to automatically create reference documentation for methods and classes Head over to Python Auto Reference to learn more","include python python example py entry Animal says bodyOnly true print hello class Animal animal top level class doc string ``` code block ``` def says self animal **talks** `code` print hello include python doc params python pydoc params py entry my_func title result and parameters text inside my *func* doc * list one * list two Parameters label str label to use to *render* item in the store price fin money Money price associated with the **item** Returns str status of the operation `OK` for good def my_func label price text inside my *func* doc * list one * list two Parameters label str label to use to *render* item in the store price fin money Money price associated with the **item** Returns str status of the operation `OK` for good return OK include python method fin money render_money render_money render money to a string returns str money represented as text amount fin money Money amount to print message str message to use for audit def render_money amount Money message str > str render money to a string Parameters amount amount to print message message to use for audit Returns money represented as text return f message amount amount amount currency"],["snippets@@java@@content-extraction","Snippets","Java","Content Extraction","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Java Content Extraction to learn more","include java HelloWorld java entry sampleMethod commentsType inline bodyOnly true validate process p2 important comment notifyAll p1 very important return bestSample"],["snippets@@java@@description-extraction","Snippets","Java","Description Extraction","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Java Content Extraction to learn more Znai provides plugin to extract JavaDoc content Use it to extract high level description and merge it with the rest of the documentation Convert Enums and method parameters into API Parameters Head over to Java Description Extraction to learn more","include java HelloWorld java entry sampleMethod commentsType inline bodyOnly true validate process p2 important comment notifyAll p1 very important return bestSample include java doc params HelloWorld java entry importantAction title Trading Required Parameters referencesPath references javadoc references demo csv trader Trader trader that performs action transaction Transaction transaction to perform action on"],["snippets@@java@@auto-reference","Snippets","Java","Auto Reference","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Java Content Extraction to learn more Znai provides plugin to extract JavaDoc content Use it to extract high level description and merge it with the rest of the documentation Convert Enums and method parameters into API Parameters Head over to Java Description Extraction to learn more Auto reference similar to Python is planned for the future releases Create a GitHub Issue or Discussion to help prioritize","include java HelloWorld java entry sampleMethod commentsType inline bodyOnly true validate process p2 important comment notifyAll p1 very important return bestSample include java doc params HelloWorld java entry importantAction title Trading Required Parameters referencesPath references javadoc references demo csv trader Trader trader that performs action transaction Transaction transaction to perform action on"],["snippets@@java@@auto-reference","Snippets","Java","Auto Reference","In addition to snippets manipulation that is applicable to any language Znai can extract content of methods Head over to Java Content Extraction to learn more Znai provides plugin to extract JavaDoc content Use it to extract high level description and merge it with the rest of the documentation Convert Enums and method parameters into API Parameters Head over to Java Description Extraction to learn more Auto reference similar to Python is planned for the future releases Create a GitHub Issue or Discussion to help prioritize","include java HelloWorld java entry sampleMethod commentsType inline bodyOnly true validate process p2 important comment notifyAll p1 very important return bestSample include java doc params HelloWorld java entry importantAction title Trading Required Parameters referencesPath references javadoc references demo csv trader Trader trader that performs action transaction Transaction transaction to perform action on"],["snippets@@groovy@@method-body","Snippets","Groovy","Method Body","When you need to extract a specific method body use the plugin Consider the following file class HelloWorldTest @Test void should calculate risk based on epsilon generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 @Test void should calculate risk without quantity generateStatement price 10 epsilon 2 calcRisk should 108 Specify a method name to extract it from the file If is specified signature will be omitted generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108","include groovy include groovy HelloWorldTest groovy entry should calculate risk based on epsilon bodyOnly true bodyOnly"],["snippets@@groovy@@multiple-bodies","Snippets","Groovy","Multiple Bodies","When you need to extract a specific method body use the plugin Consider the following file class HelloWorldTest @Test void should calculate risk based on epsilon generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 @Test void should calculate risk without quantity generateStatement price 10 epsilon 2 calcRisk should 108 Specify a method name to extract it from the file If is specified signature will be omitted generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass as to extract multiple method bodies generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass to have a provided line in between entries as a separator generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108","include groovy include groovy HelloWorldTest groovy entry should calculate risk based on epsilon bodyOnly true bodyOnly list entry include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon bodyOnly true entrySeparator include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon entrySeparator bodyOnly true"],["snippets@@groovy@@overloads","Snippets","Groovy","Overloads","When you need to extract a specific method body use the plugin Consider the following file class HelloWorldTest @Test void should calculate risk based on epsilon generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 @Test void should calculate risk without quantity generateStatement price 10 epsilon 2 calcRisk should 108 Specify a method name to extract it from the file If is specified signature will be omitted generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass as to extract multiple method bodies generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass to have a provided line in between entries as a separator generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Specify types inside brackets to select an overloaded versions of your methods Types should appear as they do in the file i e if you use the short version of a type you need to use the short version inside the plugin import your company com util * * groovy docs on top * class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC Note Generic types are erased and spaces after commas are optional void methodName List a Map b actionA Note type remains and not void methodName def a def b actionC","include groovy include groovy HelloWorldTest groovy entry should calculate risk based on epsilon bodyOnly true bodyOnly list entry include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon bodyOnly true entrySeparator include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon entrySeparator bodyOnly true include groovy HelloWorld groovy entry methodName List Map include groovy HelloWorld groovy entry methodName def def def def Object"],["snippets@@groovy@@class-body","Snippets","Groovy","Class Body","When you need to extract a specific method body use the plugin Consider the following file class HelloWorldTest @Test void should calculate risk based on epsilon generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 @Test void should calculate risk without quantity generateStatement price 10 epsilon 2 calcRisk should 108 Specify a method name to extract it from the file If is specified signature will be omitted generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass as to extract multiple method bodies generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass to have a provided line in between entries as a separator generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Specify types inside brackets to select an overloaded versions of your methods Types should appear as they do in the file i e if you use the short version of a type you need to use the short version inside the plugin import your company com util * * groovy docs on top * class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC Note Generic types are erased and spaces after commas are optional void methodName List a Map b actionA Note type remains and not void methodName def a def b actionC To extract body use class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC Use to only display only the body of your class void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC","include groovy include groovy HelloWorldTest groovy entry should calculate risk based on epsilon bodyOnly true bodyOnly list entry include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon bodyOnly true entrySeparator include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon entrySeparator bodyOnly true include groovy HelloWorld groovy entry methodName List Map include groovy HelloWorld groovy entry methodName def def def def Object import your company com util * * groovy docs on top * class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC class include groovy HelloWorld groovy entry HelloWorld bodyOnly include groovy HelloWorld groovy entry HelloWorld bodyOnly true"],["snippets@@groovy@@class-body","Snippets","Groovy","Class Body","When you need to extract a specific method body use the plugin Consider the following file class HelloWorldTest @Test void should calculate risk based on epsilon generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 @Test void should calculate risk without quantity generateStatement price 10 epsilon 2 calcRisk should 108 Specify a method name to extract it from the file If is specified signature will be omitted generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass as to extract multiple method bodies generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Pass to have a provided line in between entries as a separator generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 generateStatement price 10 quantity 10 epsilon 2 calcRisk should 108 Specify types inside brackets to select an overloaded versions of your methods Types should appear as they do in the file i e if you use the short version of a type you need to use the short version inside the plugin import your company com util * * groovy docs on top * class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC Note Generic types are erased and spaces after commas are optional void methodName List a Map b actionA Note type remains and not void methodName def a def b actionC To extract body use class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC Use to only display only the body of your class void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC","include groovy include groovy HelloWorldTest groovy entry should calculate risk based on epsilon bodyOnly true bodyOnly list entry include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon bodyOnly true entrySeparator include groovy HelloWorldTest groovy title api example entry should calculate risk based on epsilon should calculate risk based on epsilon entrySeparator bodyOnly true include groovy HelloWorld groovy entry methodName List Map include groovy HelloWorld groovy entry methodName def def def def Object import your company com util * * groovy docs on top * class HelloWorld void methodName List a Map b actionA void methodName List a Boolean b actionB void methodName def a def b actionC class include groovy HelloWorld groovy entry HelloWorld bodyOnly include groovy HelloWorld groovy entry HelloWorld bodyOnly true"],["snippets@@markdown@@single-markdown-file","Snippets","Markdown","Single Markdown File","To reuse Markdown in several places without duplication use the plugin include markdown This markdown and the sub heading above were included using the plugin include markdown This markdown and the sub heading above were included using the plugin","include markdown # Included Markdown This markdown and the sub heading above were included using the `include markdown` plugin include markdown markdown dir md to include md"],["snippets@@markdown@@optional-markdown","Snippets","Markdown","Optional Markdown","To reuse Markdown in several places without duplication use the plugin include markdown This markdown and the sub heading above were included using the plugin include markdown This markdown and the sub heading above were included using the plugin When you document an open source project you may have different instructions based on where the documentation is deployed For example this documentation has two versions one deployed internally at Two Sigma and one deployed externally using GitHub Pages Most of the documentation parts are the same but there are differences in sections like Getting Started We build documentation twice and the differences are handled by s parameter command specific to external","include markdown # Included Markdown This markdown and the sub heading above were included using the `include markdown` plugin include markdown markdown dir md to include md include markdown firstAvailable include markdown firstAvailable markdown dir getting started step internal md markdown dir getting started step external md"],["snippets@@markdown@@partial-markdown","Snippets","Markdown","Partial Markdown","To reuse Markdown in several places without duplication use the plugin include markdown This markdown and the sub heading above were included using the plugin include markdown This markdown and the sub heading above were included using the plugin When you document an open source project you may have different instructions based on where the documentation is deployed For example this documentation has two versions one deployed internally at Two Sigma and one deployed externally using GitHub Pages Most of the documentation parts are the same but there are differences in sections like Getting Started We build documentation twice and the differences are handled by s parameter command specific to external Use to include portion of a markdown from existing markdown file e g Given an existing markdown files with markers parameter value Use these parameters to setup your work environment","include markdown # Included Markdown This markdown and the sub heading above were included using the `include markdown` plugin include markdown markdown dir md to include md include markdown firstAvailable include markdown firstAvailable markdown dir getting started step internal md markdown dir getting started step external md surroundedBy readme md # Section One Some text # Section Two comment <> marker one Use these parameters to setup your work environment ``` parameter value ``` comment <> marker one include markdown markdown dir markdown with markers md surroundedBy <> marker one"],["snippets@@markdown@@inlined-markdown","Snippets","Markdown","Inlined Markdown","To reuse Markdown in several places without duplication use the plugin include markdown This markdown and the sub heading above were included using the plugin include markdown This markdown and the sub heading above were included using the plugin When you document an open source project you may have different instructions based on where the documentation is deployed For example this documentation has two versions one deployed internally at Two Sigma and one deployed externally using GitHub Pages Most of the documentation parts are the same but there are differences in sections like Getting Started We build documentation twice and the differences are handled by s parameter command specific to external Use to include portion of a markdown from existing markdown file e g Given an existing markdown files with markers parameter value Use these parameters to setup your work environment To inline a piece of markdown use the inlined version of the plugin Plugin will inline text content into current paragraph Use the latest version to get the feature Use parameter to include first file that can be resolved ` badge 2 44_internal` ` badge 2 34` Use the latest version to get the feature","include markdown # Included Markdown This markdown and the sub heading above were included using the `include markdown` plugin include markdown markdown dir md to include md include markdown firstAvailable include markdown firstAvailable markdown dir getting started step internal md markdown dir getting started step external md surroundedBy readme md # Section One Some text # Section Two comment <> marker one Use these parameters to setup your work environment ``` parameter value ``` comment <> marker one include markdown markdown dir markdown with markers md surroundedBy <> marker one content ` markdown path to file md` content Use the latest version ` markdown markdown dir inlined md` to get the feature ` badge 2 34` firstAvailable Use the latest version ` markdown firstAvailable markdown dir inlined alternative md markdown dir inlined md ` to get the feature"],["snippets@@markdown@@multiple-markdown-files","Snippets","Markdown","Multiple Markdown Files","To reuse Markdown in several places without duplication use the plugin include markdown This markdown and the sub heading above were included using the plugin include markdown This markdown and the sub heading above were included using the plugin When you document an open source project you may have different instructions based on where the documentation is deployed For example this documentation has two versions one deployed internally at Two Sigma and one deployed externally using GitHub Pages Most of the documentation parts are the same but there are differences in sections like Getting Started We build documentation twice and the differences are handled by s parameter command specific to external Use to include portion of a markdown from existing markdown file e g Given an existing markdown files with markers parameter value Use these parameters to setup your work environment To inline a piece of markdown use the inlined version of the plugin Plugin will inline text content into current paragraph Use the latest version to get the feature Use parameter to include first file that can be resolved ` badge 2 44_internal` ` badge 2 34` Use the latest version to get the feature You can also include all the Markdown files within a directory by using This plugin can be used to generate release notes or an FAQ page brew install testingisdocumenting brew znai How to install Znai To install Znai use znai preview How to run preview mode To run Znai in preview mode Note renders files of the specified directory based on the filename by default in descending alphabetical order","include markdown # Included Markdown This markdown and the sub heading above were included using the `include markdown` plugin include markdown markdown dir md to include md include markdown firstAvailable include markdown firstAvailable markdown dir getting started step internal md markdown dir getting started step external md surroundedBy readme md # Section One Some text # Section Two comment <> marker one Use these parameters to setup your work environment ``` parameter value ``` comment <> marker one include markdown markdown dir markdown with markers md surroundedBy <> marker one content ` markdown path to file md` content Use the latest version ` markdown markdown dir inlined md` to get the feature ` badge 2 34` firstAvailable Use the latest version ` markdown firstAvailable markdown dir inlined alternative md markdown dir inlined md ` to get the feature include markdowns ### How to install Znai To install Znai use ```cli brew install testingisdocumenting brew znai ``` ### How to run preview mode To run Znai in preview mode ```cli znai preview ``` include markdowns faq collection sort ascending include markdowns"],["snippets@@markdown@@multiple-markdown-files","Snippets","Markdown","Multiple Markdown Files","To reuse Markdown in several places without duplication use the plugin include markdown This markdown and the sub heading above were included using the plugin include markdown This markdown and the sub heading above were included using the plugin When you document an open source project you may have different instructions based on where the documentation is deployed For example this documentation has two versions one deployed internally at Two Sigma and one deployed externally using GitHub Pages Most of the documentation parts are the same but there are differences in sections like Getting Started We build documentation twice and the differences are handled by s parameter command specific to external Use to include portion of a markdown from existing markdown file e g Given an existing markdown files with markers parameter value Use these parameters to setup your work environment To inline a piece of markdown use the inlined version of the plugin Plugin will inline text content into current paragraph Use the latest version to get the feature Use parameter to include first file that can be resolved ` badge 2 44_internal` ` badge 2 34` Use the latest version to get the feature You can also include all the Markdown files within a directory by using This plugin can be used to generate release notes or an FAQ page brew install testingisdocumenting brew znai How to install Znai To install Znai use znai preview How to run preview mode To run Znai in preview mode Note renders files of the specified directory based on the filename by default in descending alphabetical order","include markdown # Included Markdown This markdown and the sub heading above were included using the `include markdown` plugin include markdown markdown dir md to include md include markdown firstAvailable include markdown firstAvailable markdown dir getting started step internal md markdown dir getting started step external md surroundedBy readme md # Section One Some text # Section Two comment <> marker one Use these parameters to setup your work environment ``` parameter value ``` comment <> marker one include markdown markdown dir markdown with markers md surroundedBy <> marker one content ` markdown path to file md` content Use the latest version ` markdown markdown dir inlined md` to get the feature ` badge 2 34` firstAvailable Use the latest version ` markdown firstAvailable markdown dir inlined alternative md markdown dir inlined md ` to get the feature include markdowns ### How to install Znai To install Znai use ```cli brew install testingisdocumenting brew znai ``` ### How to run preview mode To run Znai in preview mode ```cli znai preview ``` include markdowns faq collection sort ascending include markdowns"],["visuals@@attention-signs@@speed-bump","Visuals","Attention Signs","Speed Bump","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon","Keyword message"],["visuals@@attention-signs@@note","Visuals","Attention Signs","Note","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts","Keyword message Note It is very important to not overuse signs Make sure each sign counts"],["visuals@@attention-signs@@warning","Visuals","Attention Signs","Warning","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs"],["visuals@@attention-signs@@question","Visuals","Attention Signs","Question","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs"],["visuals@@attention-signs@@exercise","Visuals","Attention Signs","Exercise","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language"],["visuals@@attention-signs@@avoid","Visuals","Attention Signs","Avoid","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS"],["visuals@@attention-signs@@do-not","Visuals","Attention Signs","Do Not","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project Don t commit node_modules to your repository Do not commit node_modules to your repository","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS Don t commit node_modules to your repository Do not commit node_modules to your repository"],["visuals@@attention-signs@@tip","Visuals","Attention Signs","Tip","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload"],["visuals@@attention-signs@@recommendation","Visuals","Attention Signs","Recommendation","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic"],["visuals@@attention-signs@@fence-block","Visuals","Attention Signs","Fence Block","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic Use fence block to create an explicit attention block hello world By default there is only icon Use to add text hello world Using block makes it easier to include other plugins inside mycommand setup Use this command to setup fresh environment","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic ```attention note hello world ``` label ```attention note label Custom Label hello world ``` `````attention note Use this command to setup fresh environment ```cli mycommand setup ``` `````"],["visuals@@attention-signs@@attention-block-types","Visuals","Attention Signs","Attention Block Types","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic Use fence block to create an explicit attention block hello world By default there is only icon Use to add text hello world Using block makes it easier to include other plugins inside mycommand setup Use this command to setup fresh environment note warning avoid question recommendation","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic ```attention note hello world ``` label ```attention note label Custom Label hello world ``` `````attention note Use this command to setup fresh environment ```cli mycommand setup ``` ````` attention "],["visuals@@attention-signs@@attention-block-types","Visuals","Attention Signs","Attention Block Types","People skim through documentation You can grab users attention by using attention signs To create an attention sign start a paragraph with one of the predefined keywords followed by a colon Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring extra attention to the main idea of a page What is the point of the Exercise write a hello world example in this language Avoid using multiple versions of inside one project Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic Use fence block to create an explicit attention block hello world By default there is only icon Use to add text hello world Using block makes it easier to include other plugins inside mycommand setup Use this command to setup fresh environment note warning avoid question recommendation","Keyword message Note It is very important to not overuse signs Make sure each sign counts Warning Bring attention to a common mistake or an often missed configuration step using a warning sign Do not use too many warning signs Question Use the question sign to bring an extra attention to the main idea of a page What is the point of the `attention signs` attention signs Exercise write a hello world example in this language Avoid using multiple versions of `ReactJS` inside one project ReactJS Don t commit node_modules to your repository Do not commit node_modules to your repository Tip use temporary directory to generate the summary file for upload Recommendation write automated tests for new business logic ```attention note hello world ``` label ```attention note label Custom Label hello world ``` `````attention note Use this command to setup fresh environment ```cli mycommand setup ``` ````` attention "],["visuals@@images@@standard-markdown","Visuals","Images","Standard Markdown","An image can be included using standard Markdown syntax alt text custom title alt text","alt text regular image png alt text castle jpg custom title"],["visuals@@images@@extension","Visuals","Images","Extension","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode","alt text regular image png alt text castle jpg custom title Znai include image"],["visuals@@images@@title","Visuals","Images","Title","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle"],["visuals@@images@@anchor","Visuals","Images","Anchor","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image"],["visuals@@images@@border","Visuals","Images","Border","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true"],["visuals@@images@@fit","Visuals","Images","Fit","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true"],["visuals@@images@@scale","Visuals","Images","Scale","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3"],["visuals@@images@@align","Visuals","Images","Align","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen Use option to align images left or right","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3 align include image books jpg align left scale 0 3 include image books jpg align right scale 0 3"],["visuals@@images@@collapse","Visuals","Images","Collapse","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen Use option to align images left or right Use to make image collapsible Note option is required","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3 align include image books jpg align left scale 0 3 include image books jpg align right scale 0 3 collapsed true|false title include image books jpg fit true title books anchorId my books collapsed true"],["visuals@@images@@no-gap","Visuals","Images","No Gap","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen Use option to align images left or right Use to make image collapsible Note option is required Use to remove top bottom margins when there are multiple images in a row","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3 align include image books jpg align left scale 0 3 include image books jpg align right scale 0 3 collapsed true|false title include image books jpg fit true title books anchorId my books collapsed true noGap true include image books jpg fit true title books collapsed true noGap true include image castle jpg fit true title castle collapsed false"],["visuals@@images@@external-image","Visuals","Images","External Image","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen Use option to align images left or right Use to make image collapsible Note option is required Use to remove top bottom margins when there are multiple images in a row Pass external url in place of image to render image from a remote site Note Pass parameter to validate image urls","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3 align include image books jpg align left scale 0 3 include image books jpg align right scale 0 3 collapsed true|false title include image books jpg fit true title books anchorId my books collapsed true noGap true include image books jpg fit true title books collapsed true noGap true include image castle jpg fit true title castle collapsed false text https external url include image https external url align left"],["visuals@@images@@mobile-and-desktop-only","Visuals","Images","Mobile And Desktop Only","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen Use option to align images left or right Use to make image collapsible Note option is required Use to remove top bottom margins when there are multiple images in a row Pass external url in place of image to render image from a remote site Note Pass parameter to validate image urls Use to only render an image in mobile screen size Use to only render an image in desktop screen size","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3 align include image books jpg align left scale 0 3 include image books jpg align right scale 0 3 collapsed true|false title include image books jpg fit true title books anchorId my books collapsed true noGap true include image books jpg fit true title books collapsed true noGap true include image castle jpg fit true title castle collapsed false text https external url include image https external url align left mobileOnly desktopOnly include image small book png title only visible in mobile screen size mobileOnly true include image books jpg title only visible in desktop screen size desktopOnly true fit true"],["visuals@@images@@mobile-and-desktop-only","Visuals","Images","Mobile And Desktop Only","An image can be included using standard Markdown syntax alt text custom title alt text has extension to provide additional features annotations fit scale alignment border presentation mode Use to add a title to an image When you specify a title hover mouse over it to see a clickable anchor Use to override auto generated identifier Use to include a border around image By default image occupies all available horizontal space Use parameter to fit an image to the text column width Note You can click on the scaled down images to display it full screen To scale image up or down use option is default is half an image size Note You can click on the scaled down images to display it full screen Use option to align images left or right Use to make image collapsible Note option is required Use to remove top bottom margins when there are multiple images in a row Pass external url in place of image to render image from a remote site Note Pass parameter to validate image urls Use to only render an image in mobile screen size Use to only render an image in desktop screen size","alt text regular image png alt text castle jpg custom title Znai include image title include image castle jpg title beautiful castle anchorId include image castle jpg title beautiful castle anchorId castle image border true include image image png border true fit include image books jpg fit true scale 1 0 5 include image books jpg scale 0 3 align include image books jpg align left scale 0 3 include image books jpg align right scale 0 3 collapsed true|false title include image books jpg fit true title books anchorId my books collapsed true noGap true include image books jpg fit true title books collapsed true noGap true include image castle jpg fit true title castle collapsed false text https external url include image https external url align left mobileOnly desktopOnly include image small book png title only visible in mobile screen size mobileOnly true include image books jpg title only visible in desktop screen size desktopOnly true fit true"],["visuals@@image-annotations@@badges","Visuals","Image Annotations","Badges","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ```"],["visuals@@image-annotations@@manual-coordinates","Visuals","Image Annotations","Manual Coordinates","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ```"],["visuals@@image-annotations@@badge-textual-description","Visuals","Image Annotations","Badge Textual Description","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ```"],["visuals@@image-annotations@@pixel-ratio","Visuals","Image Annotations","Pixel Ratio","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ```"],["visuals@@image-annotations@@rectangles-and-arrows","Visuals","Image Annotations","Rectangles And Arrows","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations Use and as first column value to render arrow or rectangle annotation Add a text block after coordinates to provide tooltip data Markdown is supported Note Hover over image annotations to display automatic tooltip","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ``` rect arrow ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 arrow 485 810 310 474 ``` ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** ```"],["visuals@@image-annotations@@annotations-file","Visuals","Image Annotations","Annotations File","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations Use and as first column value to render arrow or rectangle annotation Add a text block after coordinates to provide tooltip data Markdown is supported Note Hover over image annotations to display automatic tooltip also supports file format","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ``` rect arrow ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 arrow 485 810 310 474 ``` ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** ``` include image testingisdocumenting png annotationsPath testingisdocumenting csv pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** include image JSON"],["visuals@@image-annotations@@annotations-path-shortcut","Visuals","Image Annotations","Annotations Path Shortcut","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations Use and as first column value to render arrow or rectangle annotation Add a text block after coordinates to provide tooltip data Markdown is supported Note Hover over image annotations to display automatic tooltip also supports file format You don t need to specify annotations path if annotations file matches file name and path of the image and has or extension Add to automatically use matching annotations file","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ``` rect arrow ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 arrow 485 810 310 474 ``` ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** ``` include image testingisdocumenting png annotationsPath testingisdocumenting csv pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** include image JSON json csv annotate true include image testingisdocumenting png annotate true pixelRatio 2"],["visuals@@image-annotations@@integration-with-testing","Visuals","Image Annotations","Integration With Testing","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations Use and as first column value to render arrow or rectangle annotation Add a text block after coordinates to provide tooltip data Markdown is supported Note Hover over image annotations to display automatic tooltip also supports file format You don t need to specify annotations path if annotations file matches file name and path of the image and has or extension Add to automatically use matching annotations file Use UI testing frameworks to automatically generate annotations file and capture screenshot For example WebTau automatically generates an annotations file in addition to capturing a screenshot Type question you want to be answered anonymously Scan through results and pick the most relevant one Note WebTau captures additional data such as","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ``` rect arrow ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 arrow 485 810 310 474 ``` ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** ``` include image testingisdocumenting png annotationsPath testingisdocumenting csv pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** include image JSON json csv annotate true include image testingisdocumenting png annotate true pixelRatio 2 package webtauexamples import static org testingisdocumenting webtau WebTauGroovyDsl * def homeSearchInput $ input id* search def resultSearchInput $ #search_form_input def result $ article data testid result scenario capture screenshot browser open https duckduckgo com homeSearchInput waitToBe visible homeSearchInput setValue testing is documenting homeSearchInput sendKeys browser keys enter result waitTo visible browser doc withAnnotations resultSearchInput result capture duckduckgo search include image doc artifacts duckduckgo search png annotate true pixelRatio"],["visuals@@image-annotations@@presentation-mode","Visuals","Image Annotations","Presentation Mode","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations Use and as first column value to render arrow or rectangle annotation Add a text block after coordinates to provide tooltip data Markdown is supported Note Hover over image annotations to display automatic tooltip also supports file format You don t need to specify annotations path if annotations file matches file name and path of the image and has or extension Add to automatically use matching annotations file Use UI testing frameworks to automatically generate annotations file and capture screenshot For example WebTau automatically generates an annotations file in addition to capturing a screenshot Type question you want to be answered anonymously Scan through results and pick the most relevant one Note WebTau captures additional data such as Annotated images automatically participate in presentation mode Annotations will appear one by one","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ``` rect arrow ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 arrow 485 810 310 474 ``` ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** ``` include image testingisdocumenting png annotationsPath testingisdocumenting csv pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** include image JSON json csv annotate true include image testingisdocumenting png annotate true pixelRatio 2 package webtauexamples import static org testingisdocumenting webtau WebTauGroovyDsl * def homeSearchInput $ input id* search def resultSearchInput $ #search_form_input def result $ article data testid result scenario capture screenshot browser open https duckduckgo com homeSearchInput waitToBe visible homeSearchInput setValue testing is documenting homeSearchInput sendKeys browser keys enter result waitTo visible browser doc withAnnotations resultSearchInput result capture duckduckgo search include image doc artifacts duckduckgo search png annotate true pixelRatio"],["visuals@@image-annotations@@presentation-mode","Visuals","Image Annotations","Presentation Mode","Use fence plugin to display Image and manually provide badge coordinates Note Color of badges change based on the background color Hover mouse over image during Preview Mode to display coordinates under the cursor Use the displayed coordinates to update the position Put ordered list right before or after an annotated image to associate text with the badges Note Hover over image annotations to display automatic tooltip Hover over an item text to highlight the annotation on the image Use automated testing to exercise happy paths and capture test artifacts Use captured test artifacts to supercharge your documentation Use to display HiDPI images and use logical coordinates for the annotations Use and as first column value to render arrow or rectangle annotation Add a text block after coordinates to provide tooltip data Markdown is supported Note Hover over image annotations to display automatic tooltip also supports file format You don t need to specify annotations path if annotations file matches file name and path of the image and has or extension Add to automatically use matching annotations file Use UI testing frameworks to automatically generate annotations file and capture screenshot For example WebTau automatically generates an annotations file in addition to capturing a screenshot Type question you want to be answered anonymously Scan through results and pick the most relevant one Note WebTau captures additional data such as Annotated images automatically participate in presentation mode Annotations will appear one by one","image ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` 1 Use automated testing to exercise happy paths and capture test artifacts 2 Use captured test artifacts to supercharge your documentation ```image testingisdocumenting png scale 0 5 840 600 1680 1400 ``` pixelRatio ```image testingisdocumenting png pixelRatio 2 420 300 840 700 ``` rect arrow ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 arrow 485 810 310 474 ``` ```image testingisdocumenting png pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** ``` include image testingisdocumenting png annotationsPath testingisdocumenting csv pixelRatio 2 rect 60 110 420 430 Note zone description arrow 485 810 310 474 destination **description** include image JSON json csv annotate true include image testingisdocumenting png annotate true pixelRatio 2 package webtauexamples import static org testingisdocumenting webtau WebTauGroovyDsl * def homeSearchInput $ input id* search def resultSearchInput $ #search_form_input def result $ article data testid result scenario capture screenshot browser open https duckduckgo com homeSearchInput waitToBe visible homeSearchInput setValue testing is documenting homeSearchInput sendKeys browser keys enter result waitTo visible browser doc withAnnotations resultSearchInput result capture duckduckgo search include image doc artifacts duckduckgo search png annotate true pixelRatio"],["visuals@@cards@@image-and-title","Visuals","Cards","Image And Title","Use fenced block plugin to render a card Markdown content of the card goes here item one item two item three Note Card scales down large image to fit","card ```card books jpg title My Card Markdown content of the card goes here * item one * item two * item three ```"],["visuals@@cards@@image-height-and-background","Visuals","Cards","Image Height And Background","Use fenced block plugin to render a card Markdown content of the card goes here item one item two item three Note Card scales down large image to fit When you use icon like images e g SVGs then they will take all the horizontal available space and it may not be ideal Use to force image height Use to specify a background color gradient Markdown content of the card goes here item one item two item three","card ```card books jpg title My Card Markdown content of the card goes here * item one * item two * item three ``` imageHeight imageBackground ```card diamond svg title My Card imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content of the card goes here * item one * item two * item three ```"],["visuals@@cards@@multiple-columns","Visuals","Cards","Multiple Columns","Use fenced block plugin to render a card Markdown content of the card goes here item one item two item three Note Card scales down large image to fit When you use icon like images e g SVGs then they will take all the horizontal available space and it may not be ideal Use to force image height Use to specify a background color gradient Markdown content of the card goes here item one item two item three Use Colums to arrange cards side by side class JsClass constructor usefulAction export default JsClass Markdown content goes here Markdown content of the card goes here item one item two item three Easy to use API firstName String description with markdown support score Integer another description line with markdown support Note Card plugin is designed to work with code snippets Tables and API Parameters by reducing spacing and integrating borders List Item One List Item Two column A column B hello world of cards","card ```card books jpg title My Card Markdown content of the card goes here * item one * item two * item three ``` imageHeight imageBackground ```card diamond svg title My Card imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content of the card goes here * item one * item two * item three ``` ```````columns left ```card diamond svg title Card Title imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content goes here include file snippets file name js ``` middle ```card small book png title Book imageHeight 120 Markdown content of the card goes here * item one * item two * item three ``` right `````card star svg title API for the Win imageHeight 120 imageBackground linear gradient to right rgb 154 128 145 0% rgb 255 206 206 Easy to use API ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ````` ````````"],["visuals@@cards@@links","Visuals","Cards","Links","Use fenced block plugin to render a card Markdown content of the card goes here item one item two item three Note Card scales down large image to fit When you use icon like images e g SVGs then they will take all the horizontal available space and it may not be ideal Use to force image height Use to specify a background color gradient Markdown content of the card goes here item one item two item three Use Colums to arrange cards side by side class JsClass constructor usefulAction export default JsClass Markdown content goes here Markdown content of the card goes here item one item two item three Easy to use API firstName String description with markdown support score Integer another description line with markdown support Note Card plugin is designed to work with code snippets Tables and API Parameters by reducing spacing and integrating borders List Item One List Item Two column A column B hello world of cards Card plugin automatically converts links at the end of the fenced block content into dedicated card links class JsClass constructor usefulAction export default JsClass Markdown content goes here Learn More","card ```card books jpg title My Card Markdown content of the card goes here * item one * item two * item three ``` imageHeight imageBackground ```card diamond svg title My Card imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content of the card goes here * item one * item two * item three ``` ```````columns left ```card diamond svg title Card Title imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content goes here include file snippets file name js ``` middle ```card small book png title Book imageHeight 120 Markdown content of the card goes here * item one * item two * item three ``` right `````card star svg title API for the Win imageHeight 120 imageBackground linear gradient to right rgb 154 128 145 0% rgb 255 206 206 Easy to use API ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ````` ```````` ```card diamond svg title Card Title imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content goes here include file snippets file name js Learn More snippets external code snippets ```"],["visuals@@cards@@links","Visuals","Cards","Links","Use fenced block plugin to render a card Markdown content of the card goes here item one item two item three Note Card scales down large image to fit When you use icon like images e g SVGs then they will take all the horizontal available space and it may not be ideal Use to force image height Use to specify a background color gradient Markdown content of the card goes here item one item two item three Use Colums to arrange cards side by side class JsClass constructor usefulAction export default JsClass Markdown content goes here Markdown content of the card goes here item one item two item three Easy to use API firstName String description with markdown support score Integer another description line with markdown support Note Card plugin is designed to work with code snippets Tables and API Parameters by reducing spacing and integrating borders List Item One List Item Two column A column B hello world of cards Card plugin automatically converts links at the end of the fenced block content into dedicated card links class JsClass constructor usefulAction export default JsClass Markdown content goes here Learn More","card ```card books jpg title My Card Markdown content of the card goes here * item one * item two * item three ``` imageHeight imageBackground ```card diamond svg title My Card imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content of the card goes here * item one * item two * item three ``` ```````columns left ```card diamond svg title Card Title imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content goes here include file snippets file name js ``` middle ```card small book png title Book imageHeight 120 Markdown content of the card goes here * item one * item two * item three ``` right `````card star svg title API for the Win imageHeight 120 imageBackground linear gradient to right rgb 154 128 145 0% rgb 255 206 206 Easy to use API ```api parameters firstName String description with *markdown* support score Integer another description line with *markdown* support ``` ````` ```````` ```card diamond svg title Card Title imageHeight 120 imageBackground linear gradient to right rgb 29 41 41 rgb 145 152 229 Markdown content goes here include file snippets file name js Learn More snippets external code snippets ```"],["visuals@@charts@@pie","Visuals","Charts","Pie","To build a pie chart use","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50"],["visuals@@charts@@bar","Visuals","Charts","Bar","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250"],["visuals@@charts@@line","Visuals","Charts","Line","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100"],["visuals@@charts@@time-series","Visuals","Charts","Time Series","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true"],["visuals@@charts@@legend","Visuals","Charts","Legend","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true"],["visuals@@charts@@wide-mode","Visuals","Charts","Wide Mode","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart Use to use available horizontal space Use in combination with height to fit larger charts","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true wide true include linechart charts daily genres csv wide true include linechart charts daily genres csv wide true height 800"],["visuals@@charts@@inlined-data","Visuals","Charts","Inlined Data","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart Use to use available horizontal space Use in combination with height to fit larger charts Use fence block plugin to inline chart data into markdown","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true wide true include linechart charts daily genres csv wide true include linechart charts daily genres csv wide true height 800 ```piechart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` ```linechart legend true day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 ``` ```barchart genre preference RPG 75 Action 50 RTS 40 FPS 50 ```"],["visuals@@charts@@filtering-columns","Visuals","Charts","Filtering columns","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart Use to use available horizontal space Use in combination with height to fit larger charts Use fence block plugin to inline chart data into markdown You can filter for specific columns from a CSV input by using the parameter","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true wide true include linechart charts daily genres csv wide true include linechart charts daily genres csv wide true height 800 ```piechart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` ```linechart legend true day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 ``` ```barchart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` columns ```barchart columns genre rating genre preference rating RPG 75 8 Action 50 9 RTS 40 1 FPS 50 1 ```"],["visuals@@charts@@presentation","Visuals","Charts","Presentation","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart Use to use available horizontal space Use in combination with height to fit larger charts Use fence block plugin to inline chart data into markdown You can filter for specific columns from a CSV input by using the parameter Charts automatically participate in slides Each chart becomes an individual slide Use to add extra slides transitions To try it press on icon next to the Presentation header Use as breakpoint value to create a slide for each textual entry","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true wide true include linechart charts daily genres csv wide true include linechart charts daily genres csv wide true height 800 ```piechart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` ```linechart legend true day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 ``` ```barchart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` columns ```barchart columns genre rating genre preference rating RPG 75 8 Action 50 9 RTS 40 1 FPS 50 1 ``` breakpoint include linechart charts competitors csv legend true breakpoint 17 42 include piechart charts genres csv breakpoint Action all include barchart charts genres csv legend true breakpoint all"],["visuals@@charts@@echarts","Visuals","Charts","ECharts","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart Use to use available horizontal space Use in combination with height to fit larger charts Use fence block plugin to inline chart data into markdown You can filter for specific columns from a CSV input by using the parameter Charts automatically participate in slides Each chart becomes an individual slide Use to add extra slides transitions To try it press on icon next to the Presentation header Use as breakpoint value to create a slide for each textual entry uses the beautiful and functional EChart library to render charts","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true wide true include linechart charts daily genres csv wide true include linechart charts daily genres csv wide true height 800 ```piechart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` ```linechart legend true day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 ``` ```barchart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` columns ```barchart columns genre rating genre preference rating RPG 75 8 Action 50 9 RTS 40 1 FPS 50 1 ``` breakpoint include linechart charts competitors csv legend true breakpoint 17 42 include piechart charts genres csv breakpoint Action all include barchart charts genres csv legend true breakpoint all Znai"],["visuals@@charts@@echarts","Visuals","Charts","ECharts","To build a pie chart use To build a bar chart use Add more columns to CSV data to use multiple bars per X axis tick Use to render multiple bars stacked Use and parameter to change render direction To build a line chart use Use multiple CSV columns to add more lines Use numbers in first column to have a regular X Y plots Use to treat as time series Use to add legend to a chart Use to use available horizontal space Use in combination with height to fit larger charts Use fence block plugin to inline chart data into markdown You can filter for specific columns from a CSV input by using the parameter Charts automatically participate in slides Each chart becomes an individual slide Use to add extra slides transitions To try it press on icon next to the Presentation header Use as breakpoint value to create a slide for each textual entry uses the beautiful and functional EChart library to render charts","include piechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include barchart charts game activities csv game walking fighting reading Oblivion 100 100 20 Elden Ring 110 110 5 Persona 5 20 30 50 Divinity 30 30 10 stack true include barchart charts game activities csv stack true horizontal true height include barchart charts game activities csv stack true horizontal true height 250 include linechart charts genres csv genre preference RPG 75 Action 50 RTS 40 FPS 50 include linechart charts daily genres csv day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 include linechart charts competitors csv x company one company two 10 100 150 15 5 110 145 30 120 130 40 110 145 50 115 100 time true X day RPG 2022 08 01 100 2022 08 04 50 2022 08 05 10 2022 08 08 5 2022 09 12 22 include linechart charts time series csv time true legend true include linechart charts daily genres csv legend true wide true include linechart charts daily genres csv wide true include linechart charts daily genres csv wide true height 800 ```piechart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` ```linechart legend true day RPG RTS FPS Monday 100 10 0 Tuesday 50 50 20 Wednesday 10 30 50 Thursday 5 5 100 Friday 0 100 10 ``` ```barchart genre preference RPG 75 Action 50 RTS 40 FPS 50 ``` columns ```barchart columns genre rating genre preference rating RPG 75 8 Action 50 9 RTS 40 1 FPS 50 1 ``` breakpoint include linechart charts competitors csv legend true breakpoint 17 42 include piechart charts genres csv breakpoint Action all include barchart charts genres csv legend true breakpoint all Znai"],["visuals@@mermaid-diagrams@@fenced-block","Visuals","Mermaid Diagrams","Fenced Block","Use Mermaid to create diagrams using text and code written in a Markdown style Surround Mermaid expressions with a fenced block and specify as a language The result will be a diagram flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End In presentation mode rendered expressions will automatically scale to make use of the screen space Note Rendering is done by using Mermaid library","mermaid ```mermaid flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End ```"],["visuals@@mermaid-diagrams@@external-file","Visuals","Mermaid Diagrams","External File","Use Mermaid to create diagrams using text and code written in a Markdown style Surround Mermaid expressions with a fenced block and specify as a language The result will be a diagram flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End In presentation mode rendered expressions will automatically scale to make use of the screen space Note Rendering is done by using Mermaid library Use include plugin to render a Mermaid diagram from a file classDiagram Animal <| Duck Animal <| Fish Animal <| Zebra Animal int age Animal String gender Animal isMammal Animal mate class Duck String beakColor swim quack class Fish int sizeInFeet canEat class Zebra bool is_wild run","mermaid ```mermaid flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End ``` include mermaid mermaid class diagram mmd classDiagram Animal <| Duck Animal <| Fish Animal <| Zebra Animal int age Animal String gender Animal isMammal Animal mate class Duck String beakColor swim quack class Fish int sizeInFeet canEat class Zebra bool is_wild run"],["visuals@@mermaid-diagrams@@wide-mode","Visuals","Mermaid Diagrams","Wide Mode","Use Mermaid to create diagrams using text and code written in a Markdown style Surround Mermaid expressions with a fenced block and specify as a language The result will be a diagram flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End In presentation mode rendered expressions will automatically scale to make use of the screen space Note Rendering is done by using Mermaid library Use include plugin to render a Mermaid diagram from a file classDiagram Animal <| Duck Animal <| Fish Animal <| Zebra Animal int age Animal String gender Animal isMammal Animal mate class Duck String beakColor swim quack class Fish int sizeInFeet canEat class Zebra bool is_wild run Use to use as much horizontal space as required and available or sequenceDiagram par Alice to Bob Alice >>Bob Go help John and Alice to John Alice >>John I want this done today par John to Charlie John >>Charlie Can we do this today and John to Diana John >>Diana Can you help us today and Alice to Carl Alice >>Carl I also want this done today end end","mermaid ```mermaid flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End ``` include mermaid mermaid class diagram mmd classDiagram Animal <| Duck Animal <| Fish Animal <| Zebra Animal int age Animal String gender Animal isMammal Animal mate class Duck String beakColor swim quack class Fish int sizeInFeet canEat class Zebra bool is_wild run wide true ```mermaid wide true sequenceDiagram par Alice to Bob Alice >>Bob Go help John and Alice to John Alice >>John I want this done today par John to Charlie John >>Charlie Can we do this today and John to Diana John >>Diana Can you help us today and Alice to Carl Alice >>Carl I also want this done today end end ``` include mermaid mermaid sequence diagram mmd wide true"],["visuals@@mermaid-diagrams@@wide-mode","Visuals","Mermaid Diagrams","Wide Mode","Use Mermaid to create diagrams using text and code written in a Markdown style Surround Mermaid expressions with a fenced block and specify as a language The result will be a diagram flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End In presentation mode rendered expressions will automatically scale to make use of the screen space Note Rendering is done by using Mermaid library Use include plugin to render a Mermaid diagram from a file classDiagram Animal <| Duck Animal <| Fish Animal <| Zebra Animal int age Animal String gender Animal isMammal Animal mate class Duck String beakColor swim quack class Fish int sizeInFeet canEat class Zebra bool is_wild run Use to use as much horizontal space as required and available or sequenceDiagram par Alice to Bob Alice >>Bob Go help John and Alice to John Alice >>John I want this done today par John to Charlie John >>Charlie Can we do this today and John to Diana John >>Diana Can you help us today and Alice to Carl Alice >>Carl I also want this done today end end","mermaid ```mermaid flowchart TD A Start > B Is it B Yes > C OK C > D Rethink D > B B No > E End ``` include mermaid mermaid class diagram mmd classDiagram Animal <| Duck Animal <| Fish Animal <| Zebra Animal int age Animal String gender Animal isMammal Animal mate class Duck String beakColor swim quack class Fish int sizeInFeet canEat class Zebra bool is_wild run wide true ```mermaid wide true sequenceDiagram par Alice to Bob Alice >>Bob Go help John and Alice to John Alice >>John I want this done today par John to Charlie John >>Charlie Can we do this today and John to Diana John >>Diana Can you help us today and Alice to Carl Alice >>Carl I also want this done today end end ``` include mermaid mermaid sequence diagram mmd wide true"],["visuals@@SVG@@retina-displays","Visuals","SVG","Retina Displays","To have crisp documentation images on high DPI displays use images","SVG include svg with groups svg"],["visuals@@SVG@@ids-to-reveal","Visuals","SVG","Ids To Reveal","To have crisp documentation images on high DPI displays use images If you have that you want to display while hiding everything else pass the IDs to the property In presentation mode groups will be displayed one at a time in the order specified To force all specified parts to appear at once add this before either in the same section or at the start of a document This SVG image is taken and modified from https www shareicon net pyramid piramid draw stock 877888","SVG include svg with groups svg groups idsToReveal include svg with groups svg idsToReveal partA partB include meta allAtOnce true < xml version 1 0 >