diff --git a/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartFenceBasePlugin.java b/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartFenceBasePlugin.java index 93422eb38..5e2d0a3e1 100644 --- a/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartFenceBasePlugin.java +++ b/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartFenceBasePlugin.java @@ -20,10 +20,15 @@ import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.fence.FencePlugin; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public abstract class ChartFenceBasePlugin implements FencePlugin { + private String csvContent; + abstract protected String type(); @Override @@ -31,6 +36,12 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams, String csvContent) { + this.csvContent = csvContent; return ChartPluginResult.create(pluginParams, type(), csvContent); } + + @Override + public List textForSearch() { + return csvContent != null ? List.of(SearchScore.STANDARD.text(csvContent)) : List.of(); + } } diff --git a/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartIncludeBasePlugin.java b/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartIncludeBasePlugin.java index 5661542c9..d97f16bdd 100644 --- a/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartIncludeBasePlugin.java +++ b/znai-charts/src/main/java/org/testingisdocumenting/znai/charts/ChartIncludeBasePlugin.java @@ -24,8 +24,11 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; abstract public class ChartIncludeBasePlugin implements IncludePlugin { @@ -39,6 +42,7 @@ abstract public class ChartIncludeBasePlugin implements IncludePlugin { protected static String COLUMNS = "columns"; private Path fullPath; + private String csvContent; abstract protected String type(); @@ -58,7 +62,7 @@ public PluginParamsDefinition parameters() { @Override public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler parserHandler, Path markupPath, PluginParams pluginParams) { fullPath = componentsRegistry.resourceResolver().fullPath(pluginParams.getFreeParam()); - String csvContent = componentsRegistry.resourceResolver().textContent(fullPath); + csvContent = componentsRegistry.resourceResolver().textContent(fullPath); return ChartPluginResult.create(pluginParams, type(), csvContent); } @@ -67,4 +71,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler public Stream auxiliaryFiles(ComponentsRegistry componentsRegistry) { return Stream.of(AuxiliaryFile.builtTime(fullPath)); } + + @Override + public List textForSearch() { + return csvContent != null ? List.of(SearchScore.STANDARD.text(csvContent)) : List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/Plugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/Plugin.java index b2085c610..5c6bc45d3 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/Plugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/Plugin.java @@ -22,6 +22,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public interface Plugin { @@ -44,9 +45,7 @@ default Stream auxiliaryFiles(ComponentsRegistry componentsRegist return Stream.empty(); } - default SearchText textForSearch() { - return null; - } + List textForSearch(); default String markdownRepresentation() { return ""; diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingFencePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingFencePlugin.java index f70b8739e..082d6b997 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingFencePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingFencePlugin.java @@ -22,6 +22,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class TrackingFencePlugin implements FencePlugin { @@ -65,7 +66,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { + public List textForSearch() { return delegate.textForSearch(); } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingIncludePlugin.java index de00a2665..7e7b4faf0 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingIncludePlugin.java @@ -23,6 +23,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class TrackingIncludePlugin implements IncludePlugin { @@ -45,7 +46,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { + public List textForSearch() { return delegate.textForSearch(); } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingInlineCodePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingInlineCodePlugin.java index d5a11effe..51e444657 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingInlineCodePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/TrackingInlineCodePlugin.java @@ -22,6 +22,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class TrackingInlineCodePlugin implements InlinedCodePlugin { @@ -49,7 +50,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { + public List textForSearch() { return delegate.textForSearch(); } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePlugin.java index c8bfdb647..324850d35 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePlugin.java @@ -26,6 +26,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class ApiParametersFencePlugin implements FencePlugin { private ApiParameters apiParameters; @@ -55,7 +56,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(apiParameters.combinedTextForSearch()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(apiParameters.combinedTextForSearch())); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePlugin.java index a7e9e2ddc..7fa3d671c 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePlugin.java @@ -19,16 +19,17 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.PluginParams; +import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.search.SearchScore; import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class ApiParametersIncludePlugin implements IncludePlugin { @@ -69,7 +70,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(apiParameters.combinedTextForSearch()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(apiParameters.combinedTextForSearch())); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/attention/AttentionSignFencePluginBase.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/attention/AttentionSignFencePluginBase.java index 88c5ac06c..83ad89946 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/attention/AttentionSignFencePluginBase.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/attention/AttentionSignFencePluginBase.java @@ -29,6 +29,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -66,8 +67,8 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileIncludePlugin.java index 2b8c62e2e..742be5597 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileIncludePlugin.java @@ -20,7 +20,10 @@ import org.testingisdocumenting.znai.codesnippets.CodeSnippetsProps; import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.*; +import org.testingisdocumenting.znai.extensions.PluginParamType; +import org.testingisdocumenting.znai.extensions.PluginParams; +import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; +import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.features.PluginFeatureList; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; @@ -29,6 +32,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -92,8 +96,8 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.HIGH.text(contentProvider.snippetContent()); + public List textForSearch() { + return List.of(SearchScore.HIGH.text(contentProvider.snippetContent())); } @Override diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileInlinedCodePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileInlinedCodePlugin.java index 5fc9b2eca..ef8d2d4fc 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileInlinedCodePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/file/FileInlinedCodePlugin.java @@ -29,6 +29,7 @@ import java.nio.file.Path; import java.util.Collections; +import java.util.List; import java.util.stream.Stream; public class FileInlinedCodePlugin implements InlinedCodePlugin { @@ -64,7 +65,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(text); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(text)); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/html/IframeIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/html/IframeIncludePlugin.java index 587f1be99..e158effee 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/html/IframeIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/html/IframeIncludePlugin.java @@ -23,10 +23,12 @@ import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; import org.testingisdocumenting.znai.parser.docelement.DocElement; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.UrlUtils; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; import java.util.UUID; import java.util.stream.Stream; @@ -72,4 +74,9 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr private String generatePreviewMarker() { return UUID.randomUUID().toString(); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/inlinedcode/IdentifierInlinedCodePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/inlinedcode/IdentifierInlinedCodePlugin.java index 93370c408..ce585270a 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/inlinedcode/IdentifierInlinedCodePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/inlinedcode/IdentifierInlinedCodePlugin.java @@ -101,7 +101,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(identifier); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(identifier)); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/json/JsonBasePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/json/JsonBasePlugin.java index 1666c2fae..046a4c359 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/json/JsonBasePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/json/JsonBasePlugin.java @@ -31,6 +31,7 @@ import org.testingisdocumenting.znai.parser.table.CsvTableParser; import org.testingisdocumenting.znai.parser.table.MarkupTableData; import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.JsonUtils; import java.nio.file.Path; @@ -284,4 +285,10 @@ private Map>> convertMarkdownToDocElements(Mark private static Set buildPaths(Object json) { return new JsonPaths(json).getPaths(); } + + @Override + public List textForSearch() { + // TODO implement + return List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexFencePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexFencePlugin.java index 91db50a61..1fbf36093 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexFencePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexFencePlugin.java @@ -26,6 +26,7 @@ import java.nio.file.Path; import java.util.Collections; +import java.util.List; public class LatexFencePlugin implements FencePlugin { public static final String ID = "latex"; @@ -49,7 +50,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(this.content); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(this.content)); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexInlinedCodePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexInlinedCodePlugin.java index 2ee1708c4..36463995b 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexInlinedCodePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/latex/LatexInlinedCodePlugin.java @@ -21,12 +21,16 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.inlinedcode.InlinedCodePlugin; import org.testingisdocumenting.znai.parser.docelement.DocElement; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class LatexInlinedCodePlugin implements InlinedCodePlugin { public static final String ID = "latex"; public static final String SRC_KEY = "src"; + private String latex; @Override public String id() { @@ -40,7 +44,12 @@ public InlinedCodePlugin create() { @Override public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams) { - String latex = pluginParams.getOpts().getRequiredString(SRC_KEY); + latex = pluginParams.getOpts().getRequiredString(SRC_KEY); return PluginResult.docElement(new DocElement("InlinedLatex", "latex", latex)); } + + @Override + public List textForSearch() { + return latex != null ? List.of(SearchScore.STANDARD.text(latex)) : List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/meta/MetaIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/meta/MetaIncludePlugin.java index 289754e16..81587bc54 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/meta/MetaIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/meta/MetaIncludePlugin.java @@ -21,8 +21,10 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class MetaIncludePlugin implements IncludePlugin { public static final String ID = "meta"; @@ -44,4 +46,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, PluginParams pluginParams) { return PluginResult.docElement("Meta", pluginParams.getOpts().toMap()); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/ocaml/OcamlCommentIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/ocaml/OcamlCommentIncludePlugin.java index 1027dff2b..8f4c159bb 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/ocaml/OcamlCommentIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/ocaml/OcamlCommentIncludePlugin.java @@ -18,7 +18,10 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.*; +import org.testingisdocumenting.znai.extensions.PluginParamType; +import org.testingisdocumenting.znai.extensions.PluginParams; +import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; +import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.MarkupParserResult; import org.testingisdocumenting.znai.parser.ParserHandler; @@ -26,6 +29,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class OcamlCommentIncludePlugin implements IncludePlugin { @@ -66,8 +70,8 @@ public PluginResult process(ComponentsRegistry componentsRegistry, } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } @Override diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reactjs/ReactJsComponentIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reactjs/ReactJsComponentIncludePlugin.java index ed46a3f95..7f0a81f4a 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reactjs/ReactJsComponentIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reactjs/ReactJsComponentIncludePlugin.java @@ -21,9 +21,11 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.CollectionUtils; import java.nio.file.Path; +import java.util.List; public class ReactJsComponentIncludePlugin implements IncludePlugin { @Override @@ -65,4 +67,9 @@ private static class ComponentPath { this.name = name; } } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/ReadMoreFencePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/ReadMoreFencePlugin.java index c915f7864..36313f89e 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/ReadMoreFencePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/ReadMoreFencePlugin.java @@ -18,7 +18,10 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.*; +import org.testingisdocumenting.znai.extensions.PluginParamType; +import org.testingisdocumenting.znai.extensions.PluginParams; +import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; +import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.fence.FencePlugin; import org.testingisdocumenting.znai.parser.MarkupParser; import org.testingisdocumenting.znai.parser.MarkupParserResult; @@ -27,6 +30,7 @@ import org.testingisdocumenting.znai.utils.CollectionUtils; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class ReadMoreFencePlugin implements FencePlugin { @@ -67,7 +71,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/SpoilerFencePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/SpoilerFencePlugin.java index 8526291f5..ca6d821ef 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/SpoilerFencePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/reveal/SpoilerFencePlugin.java @@ -28,6 +28,7 @@ import org.testingisdocumenting.znai.utils.CollectionUtils; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class SpoilerFencePlugin implements FencePlugin { @@ -60,7 +61,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/textbadge/TextBadgeInlinedCodePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/textbadge/TextBadgeInlinedCodePlugin.java index 34b012753..008e4273f 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/textbadge/TextBadgeInlinedCodePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/textbadge/TextBadgeInlinedCodePlugin.java @@ -20,11 +20,16 @@ import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.inlinedcode.InlinedCodePlugin; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.Collections; +import java.util.List; public class TextBadgeInlinedCodePlugin implements InlinedCodePlugin { + private String text; + @Override public String id() { return "badge"; @@ -37,6 +42,12 @@ public InlinedCodePlugin create() { @Override public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams) { - return PluginResult.docElement("TextBadge", Collections.singletonMap("text", pluginParams.getFreeParam())); + text = pluginParams.getFreeParam(); + return PluginResult.docElement("TextBadge", Collections.singletonMap("text", text)); + } + + @Override + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(text)); } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/toc/PageTocIncludePlugin.java b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/toc/PageTocIncludePlugin.java index 1a5fc0e2c..4be388dfb 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/toc/PageTocIncludePlugin.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/extensions/toc/PageTocIncludePlugin.java @@ -22,6 +22,7 @@ import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.PageSectionIdTitle; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.structure.TableOfContents; import org.testingisdocumenting.znai.structure.TocItem; @@ -64,4 +65,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler .map(PageSectionIdTitle::toMap) .collect(Collectors.toList()); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-core/src/main/java/org/testingisdocumenting/znai/search/SearchCrawlerParserHandler.java b/znai-core/src/main/java/org/testingisdocumenting/znai/search/SearchCrawlerParserHandler.java index e517f93a9..e457dd66e 100644 --- a/znai-core/src/main/java/org/testingisdocumenting/znai/search/SearchCrawlerParserHandler.java +++ b/znai-core/src/main/java/org/testingisdocumenting/znai/search/SearchCrawlerParserHandler.java @@ -105,12 +105,12 @@ public void onSnippet(PluginParams pluginParams, String lang, String lineNumber, @Override public void onIncludePlugin(IncludePlugin includePlugin, PluginResult pluginResult) { - processPluginSearchText(includePlugin.textForSearch()); + processPluginSearchTexts(includePlugin.textForSearch()); } @Override public void onFencePlugin(FencePlugin fencePlugin, PluginResult pluginResult) { - processPluginSearchText(fencePlugin.textForSearch()); + processPluginSearchTexts(fencePlugin.textForSearch()); } @Override @@ -142,14 +142,18 @@ private void flush() { flushTextParts(); } - private void processPluginSearchText(SearchText searchText) { - if (searchText == null) { + private void processPluginSearchTexts(List searchTexts) { + if (searchTexts == null || searchTexts.isEmpty()) { return; } - switch (searchText.getScore()) { - case HIGH -> addHighWithSpaceSeparator(searchText.getText()); - case STANDARD -> addStandardWithSpaceSeparator(searchText.getText()); + for (SearchText searchText : searchTexts) { + if (searchText != null) { + switch (searchText.getScore()) { + case HIGH -> addHighWithSpaceSeparator(searchText.getText()); + case STANDARD -> addStandardWithSpaceSeparator(searchText.getText()); + } + } } } diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePluginTest.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePluginTest.groovy index 80cd30850..aa1f62703 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePluginTest.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersFencePluginTest.groovy @@ -61,7 +61,7 @@ class ApiParametersFencePluginTest { pluginParamsFactory.create("api-parameters", "", [:]), "firstName, String, first name").fencePlugin - plugin.textForSearch().text.should == "firstName String first name" + plugin.textForSearch().text.should == ["firstName String first name"] } @Test diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePluginTest.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePluginTest.groovy index c38ddd6bd..5b7f9628c 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePluginTest.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/api/ApiParametersIncludePluginTest.groovy @@ -65,7 +65,7 @@ class ApiParametersIncludePluginTest { def plugin = PluginsTestUtils.processAndGetIncludePluginAndParserHandler( ":include-api-parameters: api-params-simple.json").includePlugin - plugin.textForSearch().text.should == 'firstName String first name' + plugin.textForSearch().text.should == ['firstName String first name'] } @Test void "should register local anchors"() { diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/fence/DummyFencePlugin.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/fence/DummyFencePlugin.groovy index bf3274ed1..042cd82ad 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/fence/DummyFencePlugin.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/fence/DummyFencePlugin.groovy @@ -23,6 +23,7 @@ import org.testingisdocumenting.znai.extensions.PluginParams import org.testingisdocumenting.znai.extensions.PluginParamsDefinition import org.testingisdocumenting.znai.extensions.PluginResult import org.testingisdocumenting.znai.parser.docelement.DocElement +import org.testingisdocumenting.znai.search.SearchText import java.nio.file.Path @@ -62,4 +63,9 @@ class DummyFencePlugin implements FencePlugin { return PluginResult.docElements([dummy].stream()) } + + @Override + List textForSearch() { + return [] + } } diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/include/DummyIncludePlugin.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/include/DummyIncludePlugin.groovy index 7bcfd743d..db20fc10c 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/include/DummyIncludePlugin.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/include/DummyIncludePlugin.groovy @@ -24,6 +24,7 @@ import org.testingisdocumenting.znai.extensions.PluginParamsDefinition import org.testingisdocumenting.znai.extensions.PluginResult import org.testingisdocumenting.znai.parser.ParserHandler import org.testingisdocumenting.znai.parser.docelement.DocElement +import org.testingisdocumenting.znai.search.SearchText import java.nio.file.Path @@ -72,6 +73,11 @@ class DummyIncludePlugin implements IncludePlugin { return "**Dummy plugin content**: " + pluginParams.getFreeParam() } + @Override + List textForSearch() { + return [] + } + private static void callThatThrows(String message) { throw new RuntimeException(message) } diff --git a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/inlinedcode/DummyInlinedCodePlugin.groovy b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/inlinedcode/DummyInlinedCodePlugin.groovy index c8371a8ca..e58810f01 100644 --- a/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/inlinedcode/DummyInlinedCodePlugin.groovy +++ b/znai-core/src/test/groovy/org/testingisdocumenting/znai/extensions/inlinedcode/DummyInlinedCodePlugin.groovy @@ -23,6 +23,7 @@ import org.testingisdocumenting.znai.extensions.PluginParams import org.testingisdocumenting.znai.extensions.PluginParamsDefinition import org.testingisdocumenting.znai.extensions.PluginResult import org.testingisdocumenting.znai.parser.docelement.DocElement +import org.testingisdocumenting.znai.search.SearchText import java.nio.file.Path @@ -57,4 +58,9 @@ class DummyInlinedCodePlugin implements InlinedCodePlugin { return PluginResult.docElements([dummy].stream()) } + + @Override + List textForSearch() { + return [] + } } diff --git a/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppCommentsIncludePlugin.java b/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppCommentsIncludePlugin.java index 1cf8090fe..df11b9d3e 100644 --- a/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppCommentsIncludePlugin.java +++ b/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppCommentsIncludePlugin.java @@ -26,6 +26,8 @@ import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.MarkupParserResult; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.List; @@ -36,6 +38,7 @@ public class CppCommentsIncludePlugin implements IncludePlugin { private static final String ZNAI_PREFIX = "@znai"; private Path cppPath; + private MarkupParserResult parserResult; @Override public String id() { @@ -57,7 +60,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, String text = componentsRegistry.resourceResolver().textContent(fileName); String comments = extractComments(text, pluginParams.getOpts()); - MarkupParserResult parserResult = componentsRegistry.defaultParser().parse(cppPath, comments); + parserResult = componentsRegistry.defaultParser().parse(cppPath, comments); return PluginResult.docElements(parserResult.docElement().getContent().stream()); } @@ -66,6 +69,13 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr return Stream.of(AuxiliaryFile.builtTime(cppPath)); } + @Override + public List textForSearch() { + return parserResult != null ? + List.of(SearchScore.STANDARD.text(parserResult.getAllText())) : + List.of(); + } + private String extractComments(String text, PluginParamsOpts opts) { String entry = opts.getRequiredString("entry"); String body = CppSourceCode.entryBodyOnly(text, entry); diff --git a/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppIncludePlugin.java b/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppIncludePlugin.java index fd2e7bc09..51c28b0b3 100644 --- a/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppIncludePlugin.java +++ b/znai-cpp/src/main/java/org/testingisdocumenting/znai/cpp/extensions/CppIncludePlugin.java @@ -31,6 +31,8 @@ import org.testingisdocumenting.znai.parser.ParserHandler; import org.testingisdocumenting.znai.parser.docelement.DocElement; import org.testingisdocumenting.znai.parser.docelement.DocElementType; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.Collections; @@ -41,6 +43,7 @@ public class CppIncludePlugin implements IncludePlugin { private MarkupParser markupParser; private Path cppPath; + private String snippet; @Override public String id() { @@ -66,7 +69,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, String text = componentsRegistry.resourceResolver().textContent(fileName); - String snippet = extractSnippet(text, opts); + snippet = extractSnippet(text, opts); List codeParts = commentsType.equals("inline") ? CppSourceCode.splitOnComments(snippet): @@ -86,6 +89,11 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr return Stream.of(AuxiliaryFile.builtTime(cppPath)); } + @Override + public List textForSearch() { + return snippet != null ? List.of(SearchScore.STANDARD.text(snippet)) : List.of(); + } + private Stream parseComments(String data) { MarkupParserResult parserResult = markupParser.parse(cppPath, data); return parserResult.docElement().getContent().stream(); diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/DiagramLegendIncludePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/DiagramLegendIncludePlugin.java index 57582be81..3680db54f 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/DiagramLegendIncludePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/DiagramLegendIncludePlugin.java @@ -27,6 +27,7 @@ import java.nio.file.Path; import java.util.HashMap; +import java.util.List; import java.util.Map; public class DiagramLegendIncludePlugin implements IncludePlugin { @@ -58,8 +59,8 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(String.join(" ", legend.values())); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(String.join(" ", legend.values()))); } private Map extractLegend(PluginParamsOpts opts) { diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/FlowChartIncludePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/FlowChartIncludePlugin.java index ba89cf262..02d5645f2 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/FlowChartIncludePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/FlowChartIncludePlugin.java @@ -16,26 +16,31 @@ package org.testingisdocumenting.znai.diagrams; +import org.testingisdocumenting.znai.core.AuxiliaryFile; +import org.testingisdocumenting.znai.core.ComponentsRegistry; import org.testingisdocumenting.znai.diagrams.graphviz.Graphviz; import org.testingisdocumenting.znai.diagrams.graphviz.GraphvizDiagram; +import org.testingisdocumenting.znai.diagrams.graphviz.GraphvizEngine; import org.testingisdocumenting.znai.diagrams.graphviz.gen.DiagramNode; import org.testingisdocumenting.znai.diagrams.graphviz.gen.GraphvizFromJsonGen; import org.testingisdocumenting.znai.diagrams.graphviz.gen.GraphvizGenConfig; import org.testingisdocumenting.znai.diagrams.graphviz.gen.GraphvizGenResult; -import org.testingisdocumenting.znai.core.AuxiliaryFile; -import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.structure.DocStructure; import org.testingisdocumenting.znai.structure.DocUrl; import org.testingisdocumenting.znai.utils.JsonUtils; -import org.testingisdocumenting.znai.diagrams.graphviz.GraphvizEngine; import java.nio.file.Path; -import java.util.*; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -49,6 +54,7 @@ public class FlowChartIncludePlugin implements IncludePlugin { private List nodeLibPath; private DocStructure docStructure; private Path markupPath; + private GraphvizGenResult genResult; @Override public String id() { @@ -77,7 +83,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, genConfig.setVertical(pluginParams.getOpts().get("vertical", false)); Map graph = JsonUtils.deserializeAsMap(graphJson); - GraphvizGenResult genResult = new GraphvizFromJsonGen(graph, + genResult = new GraphvizFromJsonGen(graph, loadNodeLibraries(componentsRegistry.resourceResolver(), pluginParams), genConfig).generate(); @@ -102,7 +108,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, private Map extractUrls(Collection nodes) { return nodes.stream() .filter(DiagramNode::hasUrl) - .collect(Collectors.toMap(DiagramNode::getId, DiagramNode::getUrl)); + .collect(Collectors.toMap(DiagramNode::id, DiagramNode::url)); } private void validateUrls(Path markupPath, Map urls) { @@ -136,4 +142,23 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr Stream.of(AuxiliaryFile.builtTime(filePath)), nodeLibPath.stream().map(AuxiliaryFile::builtTime)); } + + @Override + public List textForSearch() { + if (genResult == null) { + return List.of(); + } + + StringBuilder searchText = new StringBuilder(); + genResult.getUsedNodes().forEach(node -> { + searchText.append(node.id()).append(" "); + if (node.label() != null && !node.label().isEmpty()) { + searchText.append(node.label()).append(" "); + } + }); + + return !searchText.isEmpty() ? + List.of(SearchScore.STANDARD.text(searchText.toString().trim())) : + List.of(); + } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizFencePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizFencePlugin.java index 2a5cc509f..fa5d93b63 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizFencePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizFencePlugin.java @@ -21,10 +21,15 @@ import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.fence.FencePlugin; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class GraphvizFencePlugin implements FencePlugin { + private String diagramContent; + @Override public String id() { return "graphviz"; @@ -42,6 +47,12 @@ public PluginParamsDefinition parameters() { @Override public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams, String content) { + diagramContent = content; return GraphvizPlugin.pluginResult(componentsRegistry.globalAssetsRegistry(), pluginParams, content); } + + @Override + public List textForSearch() { + return diagramContent != null ? List.of(SearchScore.STANDARD.text(diagramContent)) : List.of(); + } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizIncludePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizIncludePlugin.java index f5765f51c..17666526b 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizIncludePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GraphvizIncludePlugin.java @@ -24,12 +24,16 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class GraphvizIncludePlugin implements IncludePlugin { private Path diagramPath; + private String diagramContent; @Override public String id() { @@ -52,13 +56,19 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams) { diagramPath = componentsRegistry.resourceResolver().fullPath(pluginParams.getFreeParam()); + diagramContent = componentsRegistry.resourceResolver().textContent(diagramPath); return GraphvizPlugin.pluginResult(componentsRegistry.globalAssetsRegistry(), pluginParams, - componentsRegistry.resourceResolver().textContent(diagramPath)); + diagramContent); } @Override public Stream auxiliaryFiles(ComponentsRegistry componentsRegistry) { return Stream.of(AuxiliaryFile.builtTime(diagramPath)); } + + @Override + public List textForSearch() { + return diagramContent != null ? List.of(SearchScore.STANDARD.text(diagramContent)) : List.of(); + } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GvDiagramSlidesIncludePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GvDiagramSlidesIncludePlugin.java index 54e6ee823..131d7864b 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GvDiagramSlidesIncludePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/GvDiagramSlidesIncludePlugin.java @@ -16,17 +16,18 @@ package org.testingisdocumenting.znai.diagrams.graphviz; +import org.testingisdocumenting.znai.core.AuxiliaryFile; +import org.testingisdocumenting.znai.core.ComponentsRegistry; import org.testingisdocumenting.znai.diagrams.DiagramsGlobalAssetsRegistration; import org.testingisdocumenting.znai.diagrams.slides.DiagramSlides; import org.testingisdocumenting.znai.diagrams.slides.MarkupDiagramSlides; -import org.testingisdocumenting.znai.core.AuxiliaryFile; -import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.MarkupParser; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.NameUtils; import java.nio.file.Path; @@ -39,6 +40,7 @@ public class GvDiagramSlidesIncludePlugin implements IncludePlugin { private List auxiliaryFiles; private Path diagramPath; private Path slidesPath; + private DiagramSlides diagramSlides; @Override public String id() { @@ -70,7 +72,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, String slidesContent = resourcesResolver.textContent(slidesPath); MarkupDiagramSlides markupSlides = new MarkupDiagramSlides(parser); - DiagramSlides diagramSlides = markupSlides.create(markupPath, slidesContent); + diagramSlides = markupSlides.create(markupPath, slidesContent); auxiliaryFiles = markupSlides.getAuxiliaryFiles(); @@ -90,4 +92,10 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr AuxiliaryFile.builtTime(diagramPath), AuxiliaryFile.builtTime(slidesPath))); } + + @Override + public List textForSearch() { + // TODO implement search entries + return List.of(); + } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/DiagramNode.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/DiagramNode.java index 531e85c0e..b182678dd 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/DiagramNode.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/DiagramNode.java @@ -1,4 +1,5 @@ /* + * Copyright 2025 znai maintaiers * Copyright 2019 TWO SIGMA OPEN SOURCE, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,62 +17,10 @@ package org.testingisdocumenting.znai.diagrams.graphviz.gen; -public class DiagramNode { - private final String id; - private final String label; - private final String url; - private final String colorGroup; - private final String shape; - private final Boolean highlight; - - private final Number width; - private final Number height; - - public DiagramNode(String id, String label, String url, String colorGroup, String shape, Boolean highlight, - Number width, Number height) { - this.id = id; - this.label = label; - this.url = url; - this.colorGroup = colorGroup; - this.shape = shape; - this.highlight = highlight; - this.width = width; - this.height = height; - } - - public String getId() { - return id; - } - - public String getLabel() { - return label; - } - - public Boolean getHighlight() { - return highlight; - } - - public String getColorGroup() { - return colorGroup; - } - - public String getShape() { - return shape; - } +public record DiagramNode(String id, String label, String url, String colorGroup, String shape, Boolean highlight, + Number width, Number height) { public Boolean hasUrl() { return !url.isEmpty(); } - - public String getUrl() { - return url; - } - - public Number getWidth() { - return width; - } - - public Number getHeight() { - return height; - } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/GraphvizFromJsonGen.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/GraphvizFromJsonGen.java index 9d2104edd..1916db26f 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/GraphvizFromJsonGen.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/GraphvizFromJsonGen.java @@ -160,7 +160,7 @@ private String generateNodes(Collection nodes) { } private String generateNode(DiagramNode node) { - return StringUtils.wrapInDoubleQuotes(node.getId()) + " [label=\"" + generateNodeLabel(node) + "\"" + + return StringUtils.wrapInDoubleQuotes(node.id()) + " [label=\"" + generateNodeLabel(node) + "\"" + generateSizeAttributesIfRequired(node) + "];"; } @@ -183,19 +183,19 @@ private String generateSizeAttributesIfRequired(DiagramNode node) { private String generateNodeLabel(DiagramNode node) { List metaParts = new ArrayList<>(); - if (node.getHighlight()) { + if (node.highlight()) { metaParts.add("h"); - } else if (!node.getColorGroup().isEmpty()) { - metaParts.add(node.getColorGroup()); + } else if (!node.colorGroup().isEmpty()) { + metaParts.add(node.colorGroup()); } - if (!node.getShape().isEmpty()) { - metaParts.add(node.getShape()); + if (!node.shape().isEmpty()) { + metaParts.add(node.shape()); } String labelSuffix = metaParts.isEmpty() ? "" : "[" + String.join(" ", metaParts) + "]"; - return preProcessLabel(node.getLabel()) + labelSuffix; + return preProcessLabel(node.label()) + labelSuffix; } private String generateEdges(List edges) { diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/NodesConfig.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/NodesConfig.java index bd0350cd2..83e0fc6e2 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/NodesConfig.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/graphviz/gen/NodesConfig.java @@ -49,12 +49,12 @@ public boolean isSizeDefined(DiagramNode node) { } public Number getWidth(DiagramNode node) { - Number nodeWidth = node.getWidth(); + Number nodeWidth = node.width(); return nodeWidth != null ? nodeWidth : getWidth(); } public Number getHeight(DiagramNode node) { - Number nodeHeight = node.getHeight(); + Number nodeHeight = node.height(); return nodeHeight != null ? nodeHeight : getHeight(); } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidFencePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidFencePlugin.java index cc428013c..1e75a6674 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidFencePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidFencePlugin.java @@ -17,7 +17,6 @@ package org.testingisdocumenting.znai.diagrams.mermaid; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.PluginParamType; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; import org.testingisdocumenting.znai.extensions.PluginResult; @@ -27,6 +26,7 @@ import java.nio.file.Path; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; public class MermaidFencePlugin implements FencePlugin { @@ -57,7 +57,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(this.content); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(this.content)); } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidIncludePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidIncludePlugin.java index 2c3e2cfef..9fab8e9b4 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidIncludePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/mermaid/MermaidIncludePlugin.java @@ -28,6 +28,7 @@ import java.nio.file.Path; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -67,7 +68,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(this.content); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(this.content)); } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlFencePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlFencePlugin.java index 15a423b09..a60c42533 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlFencePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlFencePlugin.java @@ -20,11 +20,16 @@ import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.fence.FencePlugin; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.Collections; +import java.util.List; public class PlantUmlFencePlugin implements FencePlugin { + private String plantUmlSource; + @Override public String id() { return "plantuml"; @@ -37,6 +42,12 @@ public FencePlugin create() { @Override public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams, String content) { + plantUmlSource = content; return PluginResult.docElement("Svg", Collections.singletonMap("svg", PlantUml.generateSvg(content))); } + + @Override + public List textForSearch() { + return plantUmlSource != null ? List.of(SearchScore.STANDARD.text(plantUmlSource)) : List.of(); + } } diff --git a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlIncludePlugin.java b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlIncludePlugin.java index b20ca90c9..6c2f62473 100644 --- a/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlIncludePlugin.java +++ b/znai-diagrams/src/main/java/org/testingisdocumenting/znai/diagrams/plantuml/PlantUmlIncludePlugin.java @@ -18,18 +18,22 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.Collections; +import java.util.List; import java.util.stream.Stream; public class PlantUmlIncludePlugin implements IncludePlugin { private Path fullPath; + private String plantUmlSource; @Override public String id() { @@ -49,12 +53,18 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ResourcesResolver resourcesResolver = componentsRegistry.resourceResolver(); fullPath = resourcesResolver.fullPath(pluginParams.getFreeParam()); + plantUmlSource = resourcesResolver.textContent(fullPath); return PluginResult.docElement("Svg", Collections.singletonMap("svg", - PlantUml.generateSvg(resourcesResolver.textContent(fullPath)))); + PlantUml.generateSvg(plantUmlSource))); } @Override public Stream auxiliaryFiles(ComponentsRegistry componentsRegistry) { return Stream.of(AuxiliaryFile.builtTime(fullPath)); } + + @Override + public List textForSearch() { + return plantUmlSource != null ? List.of(SearchScore.STANDARD.text(plantUmlSource)) : List.of(); + } } diff --git a/znai-docs/znai/release-notes/1.81/add-2025-10-12-search-for-plugins.md b/znai-docs/znai/release-notes/1.81/add-2025-10-12-search-for-plugins.md new file mode 100644 index 000000000..9d560926a --- /dev/null +++ b/znai-docs/znai/release-notes/1.81/add-2025-10-12-search-for-plugins.md @@ -0,0 +1 @@ +* Add: Search text for various plugins like `TextBadge` and `Latex` \ No newline at end of file diff --git a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenCompoundIncludePlugin.java b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenCompoundIncludePlugin.java index a7061f852..52b87c482 100644 --- a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenCompoundIncludePlugin.java +++ b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenCompoundIncludePlugin.java @@ -90,8 +90,8 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler } @Override - public SearchText textForSearch() { - return SearchScore.HIGH.text(compound.getName()); + public List textForSearch() { + return List.of(SearchScore.HIGH.text(compound.getName())); } @Override diff --git a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocIncludePlugin.java b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocIncludePlugin.java index a7b6adf27..de9ee7aa9 100644 --- a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocIncludePlugin.java +++ b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocIncludePlugin.java @@ -29,6 +29,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class DoxygenDocIncludePlugin implements IncludePlugin { @@ -76,10 +77,10 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler } @Override - public SearchText textForSearch() { - return membersList.isEmpty() ? + public List textForSearch() { + return List.of(membersList.isEmpty() ? SearchScore.HIGH.text(compound.getDescription().textForSearch()): - SearchScore.HIGH.text(membersList.first().getDescription().textForSearch()); + SearchScore.HIGH.text(membersList.first().getDescription().textForSearch())); } @Override diff --git a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocParamsIncludePlugin.java b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocParamsIncludePlugin.java index 576765e22..1d54f6431 100644 --- a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocParamsIncludePlugin.java +++ b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenDocParamsIncludePlugin.java @@ -30,6 +30,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -81,10 +82,10 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler } @Override - public SearchText textForSearch() { + public List textForSearch() { ApiParameters apiParameters = membersList.first().getDescription().getFull().getApiParameters(); if (apiParameters != null) { - return SearchScore.HIGH.text(apiParameters.combinedTextForSearch()); + return List.of(SearchScore.HIGH.text(apiParameters.combinedTextForSearch())); } return null; diff --git a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenMemberIncludePlugin.java b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenMemberIncludePlugin.java index 73eabcc24..c88e95b38 100644 --- a/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenMemberIncludePlugin.java +++ b/znai-doxygen/src/main/java/org/testingisdocumenting/znai/doxygen/plugin/DoxygenMemberIncludePlugin.java @@ -26,8 +26,11 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.Map; public class DoxygenMemberIncludePlugin implements IncludePlugin { @@ -131,4 +134,13 @@ private void memberAnchorAndSignature(DoxygenMember member) { parserHandler.onCustomNode("DoxygenMember", member.toMap()); } + + @Override + public List textForSearch() { + if (membersList == null || membersList.isEmpty()) { + return List.of(); + } + + return List.of(SearchScore.HIGH.text(membersList.first().getDescription().textForSearch())); + } } diff --git a/znai-groovy/src/main/groovy/org/testingisdocumenting/znai/groovy/extensions/GroovyIncludePlugin.groovy b/znai-groovy/src/main/groovy/org/testingisdocumenting/znai/groovy/extensions/GroovyIncludePlugin.groovy index 285085536..294df9da4 100644 --- a/znai-groovy/src/main/groovy/org/testingisdocumenting/znai/groovy/extensions/GroovyIncludePlugin.groovy +++ b/znai-groovy/src/main/groovy/org/testingisdocumenting/znai/groovy/extensions/GroovyIncludePlugin.groovy @@ -23,11 +23,7 @@ import org.testingisdocumenting.znai.core.ComponentsRegistry import org.testingisdocumenting.znai.extensions.PluginParams import org.testingisdocumenting.znai.extensions.PluginResult import org.testingisdocumenting.znai.extensions.features.PluginFeatureList -import org.testingisdocumenting.znai.extensions.file.CodeReferencesFeature -import org.testingisdocumenting.znai.extensions.file.ManipulatedSnippetContentProvider -import org.testingisdocumenting.znai.extensions.file.SnippetAutoTitleFeature -import org.testingisdocumenting.znai.extensions.file.SnippetHighlightFeature -import org.testingisdocumenting.znai.extensions.file.SnippetRevealLineStopFeature +import org.testingisdocumenting.znai.extensions.file.* import org.testingisdocumenting.znai.extensions.include.IncludePlugin import org.testingisdocumenting.znai.groovy.parser.GroovyCode import org.testingisdocumenting.znai.parser.ParserHandler @@ -95,8 +91,8 @@ class GroovyIncludePlugin implements IncludePlugin { } @Override - SearchText textForSearch() { - return SearchScore.STANDARD.text(contentProvider.snippetContent()) + List textForSearch() { + return List.of(SearchScore.STANDARD.text(contentProvider.snippetContent())) } @Override diff --git a/znai-java/src/main/java/org/testingisdocumenting/znai/java/extensions/JavaIncludePluginBase.java b/znai-java/src/main/java/org/testingisdocumenting/znai/java/extensions/JavaIncludePluginBase.java index 406ab6ade..430c8a1dd 100644 --- a/znai-java/src/main/java/org/testingisdocumenting/znai/java/extensions/JavaIncludePluginBase.java +++ b/znai-java/src/main/java/org/testingisdocumenting/znai/java/extensions/JavaIncludePluginBase.java @@ -90,8 +90,8 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.HIGH.text(javaIncludeResult.text()); + public List textForSearch() { + return List.of(SearchScore.HIGH.text(javaIncludeResult.text())); } protected JavaDocElementsMapsAndSearchText javaDocTextToDocElements(String html, CodeReferencesFeature codeReferencesFeature) { diff --git a/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocIncludePluginTest.groovy b/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocIncludePluginTest.groovy index 3151f6c2b..6fab7ed2f 100644 --- a/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocIncludePluginTest.groovy +++ b/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocIncludePluginTest.groovy @@ -25,13 +25,13 @@ class JavaDocIncludePluginTest { @Test void "method in doc with signature"() { def plugin = processAndGetPlugin('{entry: "sampleMethod(String, List)"}') - plugin.textForSearch().text.should == 'overloaded method java doc' + plugin.textForSearch().text.should == ['overloaded method java doc'] } @Test void "method in doc without signature"() { def plugin = processAndGetPlugin('{entry: "sampleMethod"}') - plugin.textForSearch().text.should == 'method level java doc package Class' + plugin.textForSearch().text.should == ['method level java doc package Class'] } @Test @@ -46,37 +46,37 @@ class JavaDocIncludePluginTest { // the rest of search text is not present due to TestMarkdownParser ignores fine grained elements and therefore // SearchCrawler doesn't get enough info. // textForSearch is fully tested in HtmlToDocElementConverterTest - pluginAndParserHandler.includePlugin.textForSearch().text.should == 'package Class' + pluginAndParserHandler.includePlugin.textForSearch().text.should == ['package Class'] } @Test void "method in doc inner class"() { def plugin = processAndGetPlugin('{entry: "InnerClass.sampleMethod"}') - plugin.textForSearch().text.should == 'inner class method level java doc package Class' + plugin.textForSearch().text.should == ['inner class method level java doc package Class'] } @Test void "static variable in doc"() { def plugin = processAndGetPlugin('{entry: "SAMPLE_CONST"}') - plugin.textForSearch().text.should == 'variable level java doc' + plugin.textForSearch().text.should == ['variable level java doc'] } @Test void "variable in doc with clashing name in inner class"() { def plugin = processAndGetPlugin('{entry: "myField"}') - plugin.textForSearch().text.should == 'outer field description' + plugin.textForSearch().text.should == ['outer field description'] } @Test void "variable in doc with inner class name qualifier"() { def plugin = processAndGetPlugin('{entry: "InnerClass.myField"}') - plugin.textForSearch().text.should == 'inner field description' + plugin.textForSearch().text.should == ['inner field description'] } @Test void "variable with a link in doc"() { def plugin = processAndGetPlugin('{entry: "SAMPLE_CONST_WITH_LINK"}') - plugin.textForSearch().text.should == 'variable level java doc package Class' + plugin.textForSearch().text.should == ['variable level java doc package Class'] } private static IncludePlugin processAndGetPlugin(String params) { diff --git a/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocParamsIncludePluginTest.groovy b/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocParamsIncludePluginTest.groovy index b33519338..5b099a4b9 100644 --- a/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocParamsIncludePluginTest.groovy +++ b/znai-java/src/test/groovy/org/testingisdocumenting/znai/java/extensions/JavaDocParamsIncludePluginTest.groovy @@ -26,13 +26,13 @@ class JavaDocParamsIncludePluginTest { @Test void "text for search with no return"() { def plugin = processAndGetIncludePlugin('{entry: "sampleMethod(String)"}') - plugin.textForSearch().text.should == 'test String test param package.Param' + plugin.textForSearch().text.should == ['test String test param package.Param'] } @Test void "text for search with return"() { def plugin = processAndGetIncludePlugin('{entry: "sampleMethod(String, List)"}') - plugin.textForSearch().text.should == 'test String test param name List name of the param return List list of samples' + plugin.textForSearch().text.should == ['test String test param name List name of the param return List list of samples'] } @Test diff --git a/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterIncludePlugin.java b/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterIncludePlugin.java index a14b69ce8..1b79805f4 100644 --- a/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterIncludePlugin.java +++ b/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterIncludePlugin.java @@ -20,11 +20,15 @@ import org.testingisdocumenting.znai.codesnippets.CodeSnippetsProps; import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.*; -import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.extensions.PluginParamType; +import org.testingisdocumenting.znai.extensions.PluginParams; +import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; +import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; import org.testingisdocumenting.znai.parser.commonmark.MarkdownParser; +import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.JsonUtils; import java.nio.file.Path; @@ -77,10 +81,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler .parse(JsonUtils.deserializeAsMap(resourcesResolver.textContent(path))); lang = notebook.getLang(); - List cells = - !includeSection.isEmpty() ? - collectCells(notebook.getCells(), includeSection, excludeSectionTitle) : - notebook.getCells(); + List cells = !includeSection.isEmpty() ? + collectCells(notebook.getCells(), includeSection, excludeSectionTitle) : + notebook.getCells(); cells.forEach(this::processCell); return PluginResult.docElements(Stream.empty()); @@ -104,6 +107,11 @@ private List collectCells(List cells, List inc return result; } + @Override + public List textForSearch() { + return List.of(); + } + private void processCell(JupyterCell cell) { processMarkdownCell(cell); @@ -191,6 +199,6 @@ private Map convertInputData(JupyterCell cell) { } private Map convertOutputData(JupyterOutput output) { - return Collections.singletonMap(output.getFormat(), output.getContent()); + return Collections.singletonMap(output.format(), output.content()); } } diff --git a/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterOutput.java b/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterOutput.java index 0ae528967..de9b89391 100644 --- a/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterOutput.java +++ b/znai-jupyter/src/main/java/org/testingisdocumenting/znai/jupyter/JupyterOutput.java @@ -1,4 +1,5 @@ /* + * Copyright 2025 znai maintainers * Copyright 2019 TWO SIGMA OPEN SOURCE, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,25 +17,10 @@ package org.testingisdocumenting.znai.jupyter; -public class JupyterOutput { +public record JupyterOutput(String format, String content) { public static final String HTML_FORMAT = "html"; public static final String SVG_FORMAT = "svg"; public static final String IMG_FORMAT = "img"; public static final String TEXT_FORMAT = "text"; - private final String format; - private final String content; - - public JupyterOutput(String format, String content) { - this.format = format; - this.content = content; - } - - public String getFormat() { - return format; - } - - public String getContent() { - return content; - } } diff --git a/znai-open-api/src/main/java/org/testingisdocumenting/znai/openapi/OpenApi3IncludePlugin.java b/znai-open-api/src/main/java/org/testingisdocumenting/znai/openapi/OpenApi3IncludePlugin.java index 1d88ad03f..c88942eea 100644 --- a/znai-open-api/src/main/java/org/testingisdocumenting/znai/openapi/OpenApi3IncludePlugin.java +++ b/znai-open-api/src/main/java/org/testingisdocumenting/znai/openapi/OpenApi3IncludePlugin.java @@ -28,6 +28,8 @@ import org.testingisdocumenting.znai.parser.ParserHandler; import org.testingisdocumenting.znai.parser.commonmark.MarkdownParser; import org.testingisdocumenting.znai.parser.docelement.DocElement; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.CollectionUtils; import java.nio.file.Path; @@ -51,6 +53,7 @@ public class OpenApi3IncludePlugin implements IncludePlugin { private OpenApi3Spec spec; private MarkdownParser markdownParser; private OpenApiMarkdownParser openApiMarkdownParser; + private List processedOperations; @Override public String id() { @@ -84,10 +87,10 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler spec = OpenApi3Spec.parse(specContent); - List operations = findOperations(pluginParams); - validateOperations(operations); + processedOperations = findOperations(pluginParams); + validateOperations(processedOperations); - operations.forEach(operation -> renderOperation(operation, pluginParams)); + processedOperations.forEach(operation -> renderOperation(operation, pluginParams)); return PluginResult.docElements(Stream.empty()); } @@ -287,4 +290,31 @@ private SchemaWithCollapsedAndExample(String mimeType, OpenApi3Schema schema, bo this.example = example; } } + + @Override + public List textForSearch() { + if (processedOperations == null || processedOperations.isEmpty()) { + return List.of(); + } + + StringBuilder searchText = new StringBuilder(); + processedOperations.forEach(operation -> { + searchText.append(operation.getMethod()).append(" "); + searchText.append(operation.getPath()).append(" "); + + if (operation.getSummary() != null && !operation.getSummary().isEmpty()) { + searchText.append(operation.getSummary()).append(" "); + } + + if (operation.getDescription() != null && !operation.getDescription().isEmpty()) { + searchText.append(operation.getDescription()).append(" "); + } + + operation.getParameters().forEach(param -> searchText.append(param.getName()).append(" ")); + }); + + return !searchText.isEmpty() ? + List.of(SearchScore.HIGH.text(searchText.toString().trim())) : + List.of(); + } } diff --git a/znai-python/src/main/java/org/testingisdocumenting/znai/python/PythonIncludePluginBase.java b/znai-python/src/main/java/org/testingisdocumenting/znai/python/PythonIncludePluginBase.java index 8fe8e00e7..691a16008 100644 --- a/znai-python/src/main/java/org/testingisdocumenting/znai/python/PythonIncludePluginBase.java +++ b/znai-python/src/main/java/org/testingisdocumenting/znai/python/PythonIncludePluginBase.java @@ -30,6 +30,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -111,7 +112,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.HIGH.text(pythonResult.text()); + public List textForSearch() { + return List.of(SearchScore.HIGH.text(pythonResult.text())); } } diff --git a/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonClassIncludePlugin.java b/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonClassIncludePlugin.java index 2de37aeb6..76ac20bbb 100644 --- a/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonClassIncludePlugin.java +++ b/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonClassIncludePlugin.java @@ -21,10 +21,16 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; +import java.util.Map; public class PythonClassIncludePlugin implements IncludePlugin { + private Map opts; + @Override public String id() { return "python-class"; @@ -40,6 +46,27 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler parserHandler, Path markupPath, PluginParams pluginParams) { - return PluginResult.docElement("LangClass", pluginParams.getOpts().toMap()); + opts = pluginParams.getOpts().toMap(); + return PluginResult.docElement("LangClass", opts); + } + + @Override + public List textForSearch() { + if (opts == null) { + return List.of(); + } + + StringBuilder searchText = new StringBuilder(); + if (opts.containsKey("name")) { + searchText.append(opts.get("name")).append(" "); + } + + if (opts.containsKey("description")) { + searchText.append(opts.get("description")).append(" "); + } + + return !searchText.isEmpty() ? + List.of(SearchScore.HIGH.text(searchText.toString().trim())) : + List.of(); } } diff --git a/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonFunctionIncludePlugin.java b/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonFunctionIncludePlugin.java index 244b34d34..e2149e6bb 100644 --- a/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonFunctionIncludePlugin.java +++ b/znai-sphinx/src/main/java/org/testingisdocumenting/znai/parser/sphinx/python/PythonFunctionIncludePlugin.java @@ -21,10 +21,16 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; +import java.util.Map; public class PythonFunctionIncludePlugin implements IncludePlugin { + private Map opts; + @Override public String id() { return "python-function"; @@ -40,6 +46,27 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler parserHandler, Path markupPath, PluginParams pluginParams) { - return PluginResult.docElement("LangFunction", pluginParams.getOpts().toMap()); + opts = pluginParams.getOpts().toMap(); + return PluginResult.docElement("LangFunction", opts); + } + + @Override + public List textForSearch() { + if (opts == null) { + return List.of(); + } + + StringBuilder searchText = new StringBuilder(); + if (opts.containsKey("name")) { + searchText.append(opts.get("name")).append(" "); + } + + if (opts.containsKey("description")) { + searchText.append(opts.get("description")).append(" "); + } + + return !searchText.isEmpty() ? + List.of(SearchScore.HIGH.text(searchText.toString().trim())) : + List.of(); } } diff --git a/znai-testing-examples/examples/webtauexamples/imageCapture.groovy b/znai-testing-examples/examples/webtauexamples/imageCapture.groovy index 6d0345b32..25e35a46b 100644 --- a/znai-testing-examples/examples/webtauexamples/imageCapture.groovy +++ b/znai-testing-examples/examples/webtauexamples/imageCapture.groovy @@ -2,7 +2,7 @@ package webtauexamples import static org.testingisdocumenting.webtau.WebTauGroovyDsl.* -def homeSearchInput = $('input[class*="search-input"]') +def homeSearchInput = $('input[class*="searchbox_input"]') def resultSearchInput = $("#search_form_input") def result = $('article[data-testid="result"]') diff --git a/znai-typescript/src/main/java/org/testingisdocumenting/znai/typescript/TypeScriptIncludePlugin.java b/znai-typescript/src/main/java/org/testingisdocumenting/znai/typescript/TypeScriptIncludePlugin.java index 536412d9c..f0f1b3c22 100644 --- a/znai-typescript/src/main/java/org/testingisdocumenting/znai/typescript/TypeScriptIncludePlugin.java +++ b/znai-typescript/src/main/java/org/testingisdocumenting/znai/typescript/TypeScriptIncludePlugin.java @@ -24,6 +24,7 @@ import org.testingisdocumenting.znai.parser.MarkupParserResult; import org.testingisdocumenting.znai.parser.ParserHandler; import org.testingisdocumenting.znai.parser.commonmark.MarkdownParser; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.nio.file.Paths; @@ -124,4 +125,9 @@ public static void main(String[] args) { List> parsedFile = ParserSingleton.INSTANCE.parsedFile(Paths.get("/Users/mykolagolubyev/work/TestingIsDocumenting/znai-typescript/src/main/javascript/test-data/Sample.ts")); System.out.println(parsedFile); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/asciinema/AsciinemaIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/asciinema/AsciinemaIncludePlugin.java index 5830f45b6..d4c6e69f5 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/asciinema/AsciinemaIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/asciinema/AsciinemaIncludePlugin.java @@ -18,12 +18,17 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.extensions.*; +import org.testingisdocumenting.znai.extensions.PluginParamType; +import org.testingisdocumenting.znai.extensions.PluginParams; +import org.testingisdocumenting.znai.extensions.PluginParamsDefinition; +import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -68,4 +73,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler return PluginResult.docElement("Asciinema", props); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/card/CardFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/card/CardFencePlugin.java index 1f61135c3..9fe0b156e 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/card/CardFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/card/CardFencePlugin.java @@ -27,6 +27,7 @@ import java.nio.file.Path; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -93,8 +94,8 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(contentParseResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(contentParseResult.getAllText())); } private AuxiliaryFile createAuxiliaryFileIfRequired(String imageSrc) { diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliCommandIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliCommandIncludePlugin.java index c016c35ca..f40c6f409 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliCommandIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliCommandIncludePlugin.java @@ -29,6 +29,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -70,8 +71,8 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.HIGH.text(command); + public List textForSearch() { + return List.of(SearchScore.HIGH.text(command)); } private String extractCommand(PluginParams pluginParams) { diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliFencePlugin.java index 1a44f2c43..16526478b 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliFencePlugin.java @@ -68,8 +68,8 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.HIGH.text(String.join(" ", commands)); + public List textForSearch() { + return List.of(SearchScore.HIGH.text(String.join(" ", commands))); } @Override diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliOutputIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliOutputIncludePlugin.java index 0bd4d7d02..873172d2a 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliOutputIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/cli/CliOutputIncludePlugin.java @@ -24,7 +24,10 @@ import org.testingisdocumenting.znai.extensions.PluginParamsDefinitionCommon; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.features.PluginFeatureList; -import org.testingisdocumenting.znai.extensions.file.*; +import org.testingisdocumenting.znai.extensions.file.ManipulatedSnippetContentProvider; +import org.testingisdocumenting.znai.extensions.file.SnippetHighlightFeature; +import org.testingisdocumenting.znai.extensions.file.SnippetRevealLineStopFeature; +import org.testingisdocumenting.znai.extensions.file.SnippetsCommon; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; import org.testingisdocumenting.znai.resources.ResourcesResolver; @@ -97,7 +100,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(contentProvider.snippetContent()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(contentProvider.snippetContent())); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePlugin.java index d513e91e3..454d78a4f 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePlugin.java @@ -97,10 +97,10 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { + public List textForSearch() { String textFromAllColumns = columnsParserResult.stream().map(MarkupParserResult::getAllText) .collect(joining(" ")); - return SearchScore.STANDARD.text(textFromAllColumns); + return List.of(SearchScore.STANDARD.text(textFromAllColumns)); } } \ No newline at end of file diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/icons/IconInlinedCodePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/icons/IconInlinedCodePlugin.java index 61fbe4028..9857ef646 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/icons/IconInlinedCodePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/icons/IconInlinedCodePlugin.java @@ -21,9 +21,11 @@ import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.inlinedcode.InlinedCodePlugin; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.HashMap; +import java.util.List; import java.util.Map; public class IconInlinedCodePlugin implements InlinedCodePlugin { @@ -43,4 +45,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa props.put("id", pluginParams.getFreeParam()); return PluginResult.docElement("Icon", props); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImageFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImageFencePlugin.java index 5f119c88f..268193bb8 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImageFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImageFencePlugin.java @@ -71,5 +71,4 @@ protected PluginParamsDefinition additionalParameters() { protected Stream additionalAuxiliaryFiles() { return Stream.empty(); } - } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImagePluginBase.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImagePluginBase.java index aa99add4e..2d6d6e8f0 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImagePluginBase.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/image/ImagePluginBase.java @@ -22,13 +22,18 @@ import org.testingisdocumenting.znai.extensions.file.AnchorFeature; import org.testingisdocumenting.znai.extensions.paramtypes.PluginParamTypeEnum; import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.structure.DocStructure; import org.testingisdocumenting.znai.structure.DocUrl; import org.testingisdocumenting.znai.utils.UrlUtils; import java.awt.image.BufferedImage; import java.nio.file.Path; -import java.util.*; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Stream; abstract class ImagePluginBase implements Plugin { @@ -51,6 +56,7 @@ abstract class ImagePluginBase implements Plugin { protected boolean isExternal; protected Double pixelRatioFromOpts; + private PluginParamsOpts opts; @Override public PluginParamsDefinition parameters() { @@ -100,7 +106,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr protected abstract Stream additionalAuxiliaryFiles(); protected PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams) { - PluginParamsOpts opts = pluginParams.getOpts(); + opts = pluginParams.getOpts(); pixelRatioFromOpts = opts.has(PIXEL_RATIO_KEY) ? opts.getNumber(PIXEL_RATIO_KEY).doubleValue(): null; @@ -159,4 +165,20 @@ private static void updateTitleProp(Map props, PluginParamsOpts props.put(TITLE_KEY, opts.get(CAPTION_KEY)); } } + + @Override + public List textForSearch() { + if (opts == null) { + return List.of(); + } + + String title = null; + if (opts.has(TITLE_KEY)) { + title = opts.getString(TITLE_KEY); + } else if (opts.has(CAPTION_KEY)) { + title = opts.getString(CAPTION_KEY); + } + + return title != null ? List.of(SearchScore.STANDARD.text(title)) : List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/keyboard/KeyboardShortcutInlinedCodePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/keyboard/KeyboardShortcutInlinedCodePlugin.java index fc805d8fe..8874e1a34 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/keyboard/KeyboardShortcutInlinedCodePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/keyboard/KeyboardShortcutInlinedCodePlugin.java @@ -25,6 +25,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class KeyboardShortcutInlinedCodePlugin implements InlinedCodePlugin { private String shortcut; @@ -46,8 +47,8 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(shortcut); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(shortcut)); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownAndResultFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownAndResultFencePlugin.java index ada5d9844..7234caee7 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownAndResultFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownAndResultFencePlugin.java @@ -24,12 +24,17 @@ import org.testingisdocumenting.znai.parser.MarkupParser; import org.testingisdocumenting.znai.parser.MarkupParserResult; import org.testingisdocumenting.znai.parser.docelement.DocElementType; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; public class MarkdownAndResultFencePlugin implements FencePlugin { + private MarkupParserResult parserResult; + @Override public String id() { return "markdown-and-result"; @@ -43,7 +48,7 @@ public FencePlugin create() { @Override public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPath, PluginParams pluginParams, String content) { MarkupParser parser = componentsRegistry.defaultParser(); - MarkupParserResult parserResult = parser.parse(markupPath, content); + parserResult = parser.parse(markupPath, content); Map markdown = CodeSnippetsProps.create("markdown", content); markdown.put("type", DocElementType.SNIPPET); @@ -54,4 +59,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa return PluginResult.docElement("MarkdownAndResult", props); } + + @Override + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownBasePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownBasePlugin.java index 607e6560a..de208cba0 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownBasePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownBasePlugin.java @@ -109,7 +109,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownsIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownsIncludePlugin.java index aadb08f5a..e3fc0179e 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownsIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/markup/MarkdownsIncludePlugin.java @@ -113,11 +113,11 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { + public List textForSearch() { String textFromMarkupResults = parserResults.stream() .map(MarkupParserResult::getAllText) .collect(joining(" ")); - return SearchScore.STANDARD.text(textFromMarkupResults); + return List.of(SearchScore.STANDARD.text(textFromMarkupResults)); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/rest/RestTestIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/rest/RestTestIncludePlugin.java index 77b0883cc..ab070c701 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/rest/RestTestIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/rest/RestTestIncludePlugin.java @@ -22,10 +22,12 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.utils.JsonUtils; import java.nio.file.Path; import java.util.Collections; +import java.util.List; import java.util.stream.Stream; public class RestTestIncludePlugin implements IncludePlugin { @@ -56,4 +58,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, public Stream auxiliaryFiles(ComponentsRegistry componentsRegistry) { return Stream.of(AuxiliaryFile.builtTime(fullPath)); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/structure/PageRedirectIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/structure/PageRedirectIncludePlugin.java index 3968d4646..50bf8476b 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/structure/PageRedirectIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/structure/PageRedirectIncludePlugin.java @@ -21,10 +21,12 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.structure.DocUrl; import java.nio.file.Path; import java.util.Collections; +import java.util.List; public class PageRedirectIncludePlugin implements IncludePlugin { @Override @@ -44,4 +46,9 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler return PluginResult.docElement("Redirect", Collections.singletonMap("url", url)); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/svg/SvgIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/svg/SvgIncludePlugin.java index 5af148e73..3b841f082 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/svg/SvgIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/svg/SvgIncludePlugin.java @@ -18,22 +18,26 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.resources.ResourcesResolver; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.structure.DocStructure; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.stream.Stream; public class SvgIncludePlugin implements IncludePlugin { private AuxiliaryFile svgAuxiliaryFile; + private String svgContent; @Override public String id() { @@ -55,6 +59,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, String svgSrc = pluginParams.getFreeParam(); svgAuxiliaryFile = resourcesResolver.runtimeAuxiliaryFile(svgSrc); + svgContent = resourcesResolver.textContent(svgSrc); Map props = new LinkedHashMap<>(); props.put("svgSrc", docStructure.fullUrl(svgAuxiliaryFile.getDeployRelativePath().toString()) + @@ -77,4 +82,18 @@ private long timestamp() { throw new RuntimeException(e); } } + + @Override + public List textForSearch() { + if (svgContent == null) { + return List.of(); + } + return List.of(SearchScore.STANDARD.text(extractTextFromSvg(svgContent))); + } + + private String extractTextFromSvg(String svg) { + return svg.replaceAll("<[^>]+>", " ") + .replaceAll("\\s+", " ") + .trim(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableFencePlugin.java index 78581878b..1e56c1b91 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableFencePlugin.java @@ -27,6 +27,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class TableFencePlugin implements FencePlugin { private TableDocElementFromParams docElementFromParams; @@ -65,7 +66,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, Path markupPa } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(docElementFromParams.getModifiedTable().allText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(docElementFromParams.getModifiedTable().allText())); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableIncludePlugin.java index cc019e0d3..9686294df 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/table/TableIncludePlugin.java @@ -29,6 +29,7 @@ import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; import java.util.stream.Stream; public class TableIncludePlugin implements IncludePlugin { @@ -81,7 +82,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(docElementFromParams.getModifiedTable().allText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(docElementFromParams.getModifiedTable().allText())); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/tabs/TabsFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/tabs/TabsFencePlugin.java index 12e12429c..9d542751d 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/tabs/TabsFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/tabs/TabsFencePlugin.java @@ -119,8 +119,8 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(String.join(" ", texts)); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(String.join(" ", texts))); } private record ParsedTab(String name, MarkupParserResult parserResult) { diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateFencePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateFencePlugin.java index cc43ea498..822b2a546 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateFencePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateFencePlugin.java @@ -18,19 +18,20 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.ColonDelimitedKeyValues; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.fence.FencePlugin; import org.testingisdocumenting.znai.parser.MarkupParser; import org.testingisdocumenting.znai.parser.MarkupParserResult; +import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.search.SearchScore; import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.template.TextTemplate; import java.nio.file.Path; import java.util.Collections; +import java.util.List; import java.util.stream.Stream; public class TemplateFencePlugin implements FencePlugin { @@ -71,7 +72,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateIncludePlugin.java index 860ec7641..895abc6fc 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/templates/TemplateIncludePlugin.java @@ -18,7 +18,6 @@ import org.testingisdocumenting.znai.core.AuxiliaryFile; import org.testingisdocumenting.znai.core.ComponentsRegistry; -import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.extensions.PluginParams; import org.testingisdocumenting.znai.extensions.PluginParamsOpts; import org.testingisdocumenting.znai.extensions.PluginResult; @@ -26,6 +25,7 @@ import org.testingisdocumenting.znai.parser.MarkupParser; import org.testingisdocumenting.znai.parser.MarkupParserResult; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.resources.ResourcesResolver; import org.testingisdocumenting.znai.search.SearchScore; import org.testingisdocumenting.znai.search.SearchText; import org.testingisdocumenting.znai.template.TextTemplate; @@ -34,6 +34,7 @@ import java.nio.file.Path; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.stream.Stream; @@ -90,7 +91,7 @@ public Stream auxiliaryFiles(ComponentsRegistry componentsRegistr } @Override - public SearchText textForSearch() { - return SearchScore.STANDARD.text(parserResult.getAllText()); + public List textForSearch() { + return List.of(SearchScore.STANDARD.text(parserResult.getAllText())); } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/twosides/EmptyBlockIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/twosides/EmptyBlockIncludePlugin.java index 34d1015ea..117c90028 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/twosides/EmptyBlockIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/twosides/EmptyBlockIncludePlugin.java @@ -21,8 +21,10 @@ import org.testingisdocumenting.znai.extensions.PluginResult; import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; +import java.util.List; public class EmptyBlockIncludePlugin implements IncludePlugin { @Override @@ -39,4 +41,9 @@ public IncludePlugin create() { public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler parserHandler, Path markupPath, PluginParams pluginParams) { return PluginResult.docElement("EmptyBlock", pluginParams.getOpts().toMap()); } + + @Override + public List textForSearch() { + return List.of(); + } } diff --git a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/xml/XmlIncludePlugin.java b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/xml/XmlIncludePlugin.java index 570f8c8bc..f24e39585 100644 --- a/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/xml/XmlIncludePlugin.java +++ b/znai-website-gen/src/main/java/org/testingisdocumenting/znai/extensions/xml/XmlIncludePlugin.java @@ -24,6 +24,8 @@ import org.testingisdocumenting.znai.extensions.include.IncludePlugin; import org.testingisdocumenting.znai.extensions.validation.EntryPresenceValidation; import org.testingisdocumenting.znai.parser.ParserHandler; +import org.testingisdocumenting.znai.search.SearchScore; +import org.testingisdocumenting.znai.search.SearchText; import java.nio.file.Path; import java.util.List; @@ -33,6 +35,7 @@ public class XmlIncludePlugin implements IncludePlugin { private String fileName; + private Map xmlAsJson; @Override public String id() { @@ -51,7 +54,7 @@ public PluginResult process(ComponentsRegistry componentsRegistry, ParserHandler Map props = pluginParams.getOpts().toMap(); - Map xmlAsJson = XmlToMapRepresentationConverter.convert(xml); + xmlAsJson = XmlToMapRepresentationConverter.convert(xml); List paths = pluginParams.getOpts().getList("paths"); validatePaths(xmlAsJson, paths); @@ -74,4 +77,39 @@ private static void validatePaths(Map xmlAsJson, List paths) private static Set buildPaths(Map xmlAsJson) { return new XmlPaths(xmlAsJson).getPaths(); } + + @Override + public List textForSearch() { + if (xmlAsJson == null) { + return List.of(); + } + return List.of(SearchScore.STANDARD.text(extractTextFromXmlMap(xmlAsJson))); + } + + private String extractTextFromXmlMap(Map map) { + StringBuilder result = new StringBuilder(); + extractTextRecursively(map, result); + return result.toString().trim(); + } + + @SuppressWarnings("unchecked") + private void extractTextRecursively(Object obj, StringBuilder result) { + if (obj == null) { + return; + } + + if (obj instanceof Map) { + Map map = (Map) obj; + for (Map.Entry entry : map.entrySet()) { + result.append(entry.getKey()).append(" "); + extractTextRecursively(entry.getValue(), result); + } + } else if (obj instanceof List list) { + for (Object item : list) { + extractTextRecursively(item, result); + } + } else { + result.append(obj).append(" "); + } + } } diff --git a/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/cli/CliFencePluginTest.groovy b/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/cli/CliFencePluginTest.groovy index 0089b0bd8..c9a085fc2 100644 --- a/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/cli/CliFencePluginTest.groovy +++ b/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/cli/CliFencePluginTest.groovy @@ -32,7 +32,7 @@ class CliFencePluginTest { def pluginParams = pluginParamsFactory.create("cli", "", [highlight: "prob"]) def result = processAndGetFencePluginAndParserHandler(pluginParams, " my-script prob twice\n ") - result.fencePlugin.textForSearch().text.should == "my-script prob twice" + result.fencePlugin.textForSearch().text.should == ["my-script prob twice"] result.parserHandler.docElement.contentToListOfMaps().should == [ [command: "my-script prob twice", paramsToHighlight: ["prob"], type: "CliCommand"]] } @@ -44,7 +44,7 @@ class CliFencePluginTest { " my-script1 prob twice\n " + " my-script2 three\n ") - result.fencePlugin.textForSearch().text.should == "my-script1 prob twice my-script2 three" + result.fencePlugin.textForSearch().text.should == ["my-script1 prob twice my-script2 three"] result.parserHandler.docElement.contentToListOfMaps().should == [ [command: "my-script1 prob twice", paramsToHighlight: ["prob"], type: "CliCommand"], [command: "my-script2 three", paramsToHighlight: ["prob"], type: "CliCommand"] diff --git a/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePluginTest.groovy b/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePluginTest.groovy index 342c57784..90ec20892 100644 --- a/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePluginTest.groovy +++ b/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/columns/ColumnsFencePluginTest.groovy @@ -36,7 +36,7 @@ class ColumnsFencePluginTest { """left:text on the left right:text on the right""") - plugin.textForSearch().text.should == 'text on the left text on the right' + plugin.textForSearch().text.should == ['text on the left text on the right'] } @Test diff --git a/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/tabs/TabsFencePluginTest.groovy b/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/tabs/TabsFencePluginTest.groovy index f1f135068..f5b36e543 100644 --- a/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/tabs/TabsFencePluginTest.groovy +++ b/znai-website-gen/src/test/groovy/org/testingisdocumenting/znai/extensions/tabs/TabsFencePluginTest.groovy @@ -64,7 +64,7 @@ class TabsFencePluginTest { FencePlugin plugin = processAndGetPluginWithResult("java:test java markup\n" + "groovy:test groovy markup").plugin - plugin.textForSearch().text.should == 'java test java markup groovy test groovy markup' + plugin.textForSearch().text.should == ['java test java markup groovy test groovy markup'] } @Test