From 5ff82e1131785d1a78bd0c45dddc332619840f46 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Mon, 27 Jun 2022 21:44:41 +0100 Subject: [PATCH] Setup a Remark plugin to replace [detekt_version] with the current version on website (#5001) --- .../src/main/kotlin/releasing.gradle.kts | 6 +++--- website/docs/_detekt-version-banner.mdx | 5 ----- website/docs/_detekt-version.jsx | 8 -------- website/docs/gettingstarted/cli.mdx | 3 --- website/docs/gettingstarted/gradle.mdx | 4 ---- website/docs/gettingstarted/gradletask.md | 4 ---- website/docs/gettingstarted/mavenanttask.md | 4 ---- website/docs/intro.mdx | 4 ---- website/docs/introduction/extensions.md | 6 +----- website/docusaurus.config.js | 5 ++--- website/src/remark/detektVersionReplace.js | 19 +++++++++++++++++++ 11 files changed, 25 insertions(+), 43 deletions(-) delete mode 100644 website/docs/_detekt-version-banner.mdx delete mode 100644 website/docs/_detekt-version.jsx create mode 100644 website/src/remark/detektVersionReplace.js diff --git a/build-logic/src/main/kotlin/releasing.gradle.kts b/build-logic/src/main/kotlin/releasing.gradle.kts index 3d8dc6b7c1c..c44b5c97a0a 100644 --- a/build-logic/src/main/kotlin/releasing.gradle.kts +++ b/build-logic/src/main/kotlin/releasing.gradle.kts @@ -66,9 +66,9 @@ tasks { register("incrementMajor") { doLast { updateVersion { it.nextMajor() } } } register("applyDocVersion") { - fileToUpdate.set(file("${rootProject.rootDir}/website/docusaurus.config.js")) - linePartToFind.set(" detektVersion:") - lineTransformation.set(" detektVersion: '${Versions.DETEKT}'") + fileToUpdate.set(file("${rootProject.rootDir}/website/src/remark/detektVersionReplace.js")) + linePartToFind.set("const detektVersion = ") + lineTransformation.set("const detektVersion = \"${Versions.DETEKT}\";") } } diff --git a/website/docs/_detekt-version-banner.mdx b/website/docs/_detekt-version-banner.mdx deleted file mode 100644 index 9380373b605..00000000000 --- a/website/docs/_detekt-version-banner.mdx +++ /dev/null @@ -1,5 +0,0 @@ -import DetektVersion from "./_detekt-version.jsx"; - -:::info -The latest released version of Detekt is **** -::: diff --git a/website/docs/_detekt-version.jsx b/website/docs/_detekt-version.jsx deleted file mode 100644 index 376377d0621..00000000000 --- a/website/docs/_detekt-version.jsx +++ /dev/null @@ -1,8 +0,0 @@ -import React from "react"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; - -const DetektVersion = () => ( - {useDocusaurusContext().siteConfig.customFields.detektVersion} -); - -export default DetektVersion \ No newline at end of file diff --git a/website/docs/gettingstarted/cli.mdx b/website/docs/gettingstarted/cli.mdx index a333d7e802c..ef7092c7145 100644 --- a/website/docs/gettingstarted/cli.mdx +++ b/website/docs/gettingstarted/cli.mdx @@ -8,7 +8,6 @@ summary: sidebar_position: 1 --- -import DetektVersionBanner from "../_detekt-version-banner.mdx"; import CliOptions from "./_cli-options.md"; ## Install the cli @@ -31,8 +30,6 @@ detekt [options] ### Any OS: - - ```sh curl -sSLO https://github.com/detekt/detekt/releases/download/v[detekt_version]/detekt-cli-[detekt_version].zip unzip detekt-cli-[detekt_version].zip diff --git a/website/docs/gettingstarted/gradle.mdx b/website/docs/gettingstarted/gradle.mdx index 17425f09d19..70be03c1abd 100644 --- a/website/docs/gettingstarted/gradle.mdx +++ b/website/docs/gettingstarted/gradle.mdx @@ -8,8 +8,6 @@ summary: sidebar_position: 2 --- -import DetektVersionBanner from "../\_detekt-version-banner.mdx"; - Detekt requires **Gradle 6.1** or higher. We, however, recommend using the version of Gradle that is [listed in this table](/docs/introduction/compatibility). ## Available plugin tasks @@ -64,8 +62,6 @@ Using the plugins DSL: #### Groovy DSL - - ```groovy plugins { id "io.gitlab.arturbosch.detekt" version "[detekt_version]" diff --git a/website/docs/gettingstarted/gradletask.md b/website/docs/gettingstarted/gradletask.md index af35e08a118..6fd265f63a3 100644 --- a/website/docs/gettingstarted/gradletask.md +++ b/website/docs/gettingstarted/gradletask.md @@ -8,13 +8,9 @@ summary: sidebar_position: 3 --- -import DetektVersionBanner from "../\_detekt-version-banner.mdx"; - 1. Add following lines to your build.gradle file. 2. Run `gradle detekt` - - ###### Groovy DSL ```groovy repositories { diff --git a/website/docs/gettingstarted/mavenanttask.md b/website/docs/gettingstarted/mavenanttask.md index 86458babead..b832a9bb7c7 100644 --- a/website/docs/gettingstarted/mavenanttask.md +++ b/website/docs/gettingstarted/mavenanttask.md @@ -8,13 +8,9 @@ summary: sidebar_position: 4 --- -import DetektVersionBanner from "../\_detekt-version-banner.mdx"; - 1. Add following lines to your pom.xml. 2. Run `mvn verify` (when using the verify phase as we are doing here) - - ```xml diff --git a/website/docs/intro.mdx b/website/docs/intro.mdx index 5628b9ba8b4..630ee21624c 100644 --- a/website/docs/intro.mdx +++ b/website/docs/intro.mdx @@ -5,8 +5,6 @@ sidebar_position: 1 summary: --- -import DetektVersionBanner from "./\_detekt-version-banner.mdx"; - ![detekt logo](/img/logo.svg "detekt logo") ![detekt in action](/img/tutorial/detekt_in_action.png "detekt in action") @@ -26,8 +24,6 @@ import DetektVersionBanner from "./\_detekt-version-banner.mdx"; Apply the following configuration to your Gradle project build file: - - ```kotlin plugins { id("io.gitlab.arturbosch.detekt").version("[detekt_version]") diff --git a/website/docs/introduction/extensions.md b/website/docs/introduction/extensions.md index 011306f6b25..6d72e9e8a09 100644 --- a/website/docs/introduction/extensions.md +++ b/website/docs/introduction/extensions.md @@ -5,8 +5,6 @@ keywords: [extensions, rulesets] sidebar_position: 9 --- -import DetektVersionBanner from "../\_detekt-version-banner.mdx"; - The following page describes how to extend detekt and how to customize it to your domain-specific needs. The associated **code samples** to this guide can be found in the package [detekt/detekt-sample-extensions](https://github.com/detekt/detekt/tree/main/detekt-sample-extensions). @@ -221,11 +219,9 @@ To enable it, we add the published dependency to `detekt` via the `detektPlugins ###### Gradle (Kotlin/Groovy DSL) - - ```kotlin dependencies { - detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:{{ site.detekt_version }}") + detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:[detekt_version]") } ``` diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 39e821aff07..572d4864085 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -3,6 +3,7 @@ const lightCodeTheme = require('prism-react-renderer/themes/github'); const darkCodeTheme = require('prism-react-renderer/themes/dracula'); +const detektVersionReplace = require('./src/remark/detektVersionReplace'); /** @type {import('@docusaurus/types').Config} */ const config = { @@ -25,6 +26,7 @@ const config = { docs: { sidebarPath: require.resolve('./sidebars.js'), editUrl: 'https://github.com/detekt/detekt/edit/main/website/', + remarkPlugins: [detektVersionReplace], }, blog: { showReadingTime: true, @@ -179,9 +181,6 @@ const config = { }, }), - customFields: { - detektVersion: '1.21.0-RC1' - }, }; module.exports = config; diff --git a/website/src/remark/detektVersionReplace.js b/website/src/remark/detektVersionReplace.js new file mode 100644 index 00000000000..51959a3c428 --- /dev/null +++ b/website/src/remark/detektVersionReplace.js @@ -0,0 +1,19 @@ +const visit = require("unist-util-visit"); + +// Remark plugin that is replacing the [detekt_version] with the latest +// released version. Please note that this field is updated automatically +// by the `:detekt-generator:generateDocumentation` task. +const detektVersion = "1.21.0-RC1"; + +const plugin = (options) => { + const transformer = async (ast) => { + visit(ast, "code", (node) => { + if (node.value.includes("[detekt_version]")) { + node.value = node.value.replace("[detekt_version]", detektVersion); + } + }); + }; + return transformer; +}; + +module.exports = plugin;