From cb009c93a8a9841068b5ff8bd7e7edc4c3ed37e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Vav=C5=99=C3=ADk?= Date: Sat, 16 Nov 2024 01:00:31 +0100 Subject: [PATCH] Add copy button for configuration property --- .../maven/config/doc/GenerateConfigDocMojo.java | 16 +++++++++++++--- .../default/tags/configProperty.qute.adoc | 3 +++ .../default/tags/propertyCopyButton.qute.adoc | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/propertyCopyButton.qute.adoc diff --git a/devtools/config-doc-maven-plugin/src/main/java/io/quarkus/maven/config/doc/GenerateConfigDocMojo.java b/devtools/config-doc-maven-plugin/src/main/java/io/quarkus/maven/config/doc/GenerateConfigDocMojo.java index ba0cf3fff9f25..be0d17b360bce 100644 --- a/devtools/config-doc-maven-plugin/src/main/java/io/quarkus/maven/config/doc/GenerateConfigDocMojo.java +++ b/devtools/config-doc-maven-plugin/src/main/java/io/quarkus/maven/config/doc/GenerateConfigDocMojo.java @@ -40,6 +40,7 @@ import io.quarkus.maven.config.doc.generator.GenerationReport; import io.quarkus.maven.config.doc.generator.GenerationReport.GenerationViolation; import io.quarkus.qute.Engine; +import io.quarkus.qute.EngineBuilder; import io.quarkus.qute.ReflectionValueResolver; import io.quarkus.qute.UserTagSectionHelper; import io.quarkus.qute.ValueResolver; @@ -296,7 +297,7 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) th } private static Engine initializeQuteEngine(Formatter formatter, Format format, String theme) { - Engine engine = Engine.builder() + EngineBuilder engineBuilder = Engine.builder() .addDefaults() .addSectionHelper(new UserTagSectionHelper.Factory("configProperty", "configProperty")) .addSectionHelper(new UserTagSectionHelper.Factory("configSection", "configSection")) @@ -402,9 +403,13 @@ private static Engine initializeQuteEngine(Formatter formatter, Format format, S .applyToName("formatName") .applyToNoParameters() .resolveSync(ctx -> formatter.formatName((Extension) ctx.getBase())) - .build()) - .build(); + .build()); + + if (format == Format.asciidoc) { + engineBuilder.addSectionHelper(new UserTagSectionHelper.Factory("propertyCopyButton", "propertyCopyButton")); + } + Engine engine = engineBuilder.build(); engine.putTemplate("configReference", engine.parse(getTemplate("templates", format, theme, "configReference", false))); engine.putTemplate("allConfig", @@ -420,6 +425,11 @@ private static Engine initializeQuteEngine(Formatter formatter, Format format, S engine.putTemplate("memorySizeNote", engine.parse(getTemplate("templates", format, theme, "memorySizeNote", true))); + if (format == Format.asciidoc) { + engine.putTemplate("propertyCopyButton", + engine.parse(getTemplate("templates", format, theme, "propertyCopyButton", true))); + } + return engine; } diff --git a/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/configProperty.qute.adoc b/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/configProperty.qute.adoc index b57486b8dbc47..86b1fa460b48d 100644 --- a/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/configProperty.qute.adoc +++ b/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/configProperty.qute.adoc @@ -1,7 +1,10 @@ a|{#if configProperty.phase.fixedAtBuildTime}icon:lock[title=Fixed at build time]{/if} [[{configProperty.toAnchor(extension, additionalAnchorPrefix)}]] [.property-path]##link:#{configProperty.toAnchor(extension, additionalAnchorPrefix)}[`{configProperty.path.property}`]## +{#propertyCopyButton configProperty.path.property /} + {#for additionalPath in configProperty.additionalPaths} `{additionalPath.property}` +{#propertyCopyButton additionalPath.property /} {/for} [.description] diff --git a/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/propertyCopyButton.qute.adoc b/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/propertyCopyButton.qute.adoc new file mode 100644 index 0000000000000..ec74dcdd7846e --- /dev/null +++ b/devtools/config-doc-maven-plugin/src/main/resources/templates/asciidoc/default/tags/propertyCopyButton.qute.adoc @@ -0,0 +1,3 @@ +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++{it}+++[] +endif::add-copy-button-to-config-props[]