From 779a9352c98674d3fc4b4c34d3dfbd9077a59f60 Mon Sep 17 00:00:00 2001 From: Tanuj Kanti Date: Sat, 7 Dec 2024 14:37:22 +0530 Subject: [PATCH 1/4] docs: edit this page link to different branches --- docs/.eleventy.js | 13 +++++++++++++ docs/src/_data/sites/en.yml | 1 + docs/src/_data/sites/zh-hans.yml | 1 + docs/src/_includes/layouts/doc.html | 10 +++++++++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/.eleventy.js b/docs/.eleventy.js index c526abae509c..7c96532473bc 100644 --- a/docs/.eleventy.js +++ b/docs/.eleventy.js @@ -55,11 +55,24 @@ module.exports = function(eleventyConfig) { // Load site-specific data const siteName = process.env.ESLINT_SITE_NAME || "en"; + // Current version of ESLint + const currentVersion = require("../package.json").version; + + /** + * Determines whether the given version is a prerelease. + * @param {string} version The version to check. + * @returns {boolean} `true` if it is a prerelease, `false` otherwise. + */ + function isPreRelease(version) { + return /[a-z]/u.test(version); + } + eleventyConfig.addGlobalData("site_name", siteName); eleventyConfig.addGlobalData("GIT_BRANCH", process.env.BRANCH); eleventyConfig.addGlobalData("HEAD", process.env.BRANCH === "main"); eleventyConfig.addGlobalData("NOINDEX", process.env.BRANCH !== "latest"); eleventyConfig.addGlobalData("PATH_PREFIX", pathPrefix); + eleventyConfig.addGlobalData("is_pre_release", isPreRelease(currentVersion)); eleventyConfig.addDataExtension("yml", contents => yaml.load(contents)); //------------------------------------------------------------------------------ diff --git a/docs/src/_data/sites/en.yml b/docs/src/_data/sites/en.yml index da1ab1818f58..2434aadb9f8b 100644 --- a/docs/src/_data/sites/en.yml +++ b/docs/src/_data/sites/en.yml @@ -117,4 +117,5 @@ footer: edit_link: start_with: https://github.com/eslint/eslint/edit/main/docs/ + start_with_latest: https://github.com/eslint/eslint/edit/latest/docs/ text: Edit this page diff --git a/docs/src/_data/sites/zh-hans.yml b/docs/src/_data/sites/zh-hans.yml index 99bbd5ce8600..84b34ad6a773 100644 --- a/docs/src/_data/sites/zh-hans.yml +++ b/docs/src/_data/sites/zh-hans.yml @@ -114,4 +114,5 @@ footer: edit_link: start_with: https://github.com/eslint/eslint/edit/main/docs/ + start_with_latest: https://github.com/eslint/eslint/edit/latest/docs/ text: 编辑此页 diff --git a/docs/src/_includes/layouts/doc.html b/docs/src/_includes/layouts/doc.html index 3c9837947817..04d091388e76 100644 --- a/docs/src/_includes/layouts/doc.html +++ b/docs/src/_includes/layouts/doc.html @@ -102,7 +102,15 @@

{{ title }}

{% if edit_link %} {{ edit_link }} {% else %} - {{ site.edit_link.start_with }}{{ page.inputPath }} + {% if is_pre_release %} + {% if PATH_PREFIX === '/docs/latest/' %} + {{ site.edit_link.start_with_latest }}{{ page.inputPath }} + {% else %} + {{ site.edit_link.start_with }}{{ page.inputPath }} + {% endif %} + {% else %} + {{ site.edit_link.start_with }}{{ page.inputPath }} + {% endif %} {% endif %} " class="c-btn c-btn--secondary">{{ site.edit_link.text }} From b356efe6c66a8f51bcec568fbb2cd445519a764e Mon Sep 17 00:00:00 2001 From: Tanuj Kanti Date: Tue, 17 Dec 2024 12:22:05 +0530 Subject: [PATCH 2/4] apply suggestion --- docs/.eleventy.js | 13 ++++++------- docs/src/_includes/layouts/doc.html | 10 ++++------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/docs/.eleventy.js b/docs/.eleventy.js index 7c96532473bc..63574d095345 100644 --- a/docs/.eleventy.js +++ b/docs/.eleventy.js @@ -55,16 +55,14 @@ module.exports = function(eleventyConfig) { // Load site-specific data const siteName = process.env.ESLINT_SITE_NAME || "en"; - // Current version of ESLint - const currentVersion = require("../package.json").version; - /** * Determines whether the given version is a prerelease. - * @param {string} version The version to check. * @returns {boolean} `true` if it is a prerelease, `false` otherwise. */ - function isPreRelease(version) { - return /[a-z]/u.test(version); + async function isPreRelease() { + const eslintVersions = await require("./src/_data/eslintVersions")(); + + return eslintVersions.items.some(item => item.branch === "next"); } eleventyConfig.addGlobalData("site_name", siteName); @@ -72,7 +70,8 @@ module.exports = function(eleventyConfig) { eleventyConfig.addGlobalData("HEAD", process.env.BRANCH === "main"); eleventyConfig.addGlobalData("NOINDEX", process.env.BRANCH !== "latest"); eleventyConfig.addGlobalData("PATH_PREFIX", pathPrefix); - eleventyConfig.addGlobalData("is_pre_release", isPreRelease(currentVersion)); + eleventyConfig.addGlobalData("is_pre_release", isPreRelease); + eleventyConfig.addGlobalData("is_number_version", process.env.BRANCH && /^v\d+\.x$/u.test(process.env.BRANCH)); eleventyConfig.addDataExtension("yml", contents => yaml.load(contents)); //------------------------------------------------------------------------------ diff --git a/docs/src/_includes/layouts/doc.html b/docs/src/_includes/layouts/doc.html index 04d091388e76..5629cab7d93e 100644 --- a/docs/src/_includes/layouts/doc.html +++ b/docs/src/_includes/layouts/doc.html @@ -102,12 +102,10 @@

{{ title }}

{% if edit_link %} {{ edit_link }} {% else %} - {% if is_pre_release %} - {% if PATH_PREFIX === '/docs/latest/' %} - {{ site.edit_link.start_with_latest }}{{ page.inputPath }} - {% else %} - {{ site.edit_link.start_with }}{{ page.inputPath }} - {% endif %} + {% if is_pre_release and GIT_BRANCH === 'latest' %} + {{ site.edit_link.start_with_latest }}{{ page.inputPath }} + {% elseif is_number_version %} + https://github.com/eslint/eslint/edit/{{ GIT_BRANCH }}/docs/{{ page.inputPath }} {% else %} {{ site.edit_link.start_with }}{{ page.inputPath }} {% endif %} From 17db95fd604b54e58c1e9b9eb024ae86fee1a649 Mon Sep 17 00:00:00 2001 From: Tanuj Kanti Date: Fri, 3 Jan 2025 12:00:23 +0530 Subject: [PATCH 3/4] update variable names --- docs/.eleventy.js | 13 +++++++------ docs/src/_includes/layouts/doc.html | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/.eleventy.js b/docs/.eleventy.js index 63574d095345..b510825be34a 100644 --- a/docs/.eleventy.js +++ b/docs/.eleventy.js @@ -37,6 +37,7 @@ module.exports = function(eleventyConfig) { */ let pathPrefix = "/docs/head/"; + const isNumberVersion = process.env.BRANCH && /^v\d+\.x$/u.test(process.env.BRANCH); if (process.env.CONTEXT === "deploy-preview") { pathPrefix = "/"; @@ -44,7 +45,7 @@ module.exports = function(eleventyConfig) { pathPrefix = "/docs/latest/"; } else if (process.env.BRANCH === "next") { pathPrefix = "/docs/next/"; - } else if (process.env.BRANCH && /^v\d+\.x$/u.test(process.env.BRANCH)) { + } else if (isNumberVersion) { pathPrefix = `/docs/${process.env.BRANCH}/`; // `/docs/v8.x/`, `/docs/v9.x/`, `/docs/v10.x/` ... } @@ -56,10 +57,10 @@ module.exports = function(eleventyConfig) { const siteName = process.env.ESLINT_SITE_NAME || "en"; /** - * Determines whether the given version is a prerelease. - * @returns {boolean} `true` if it is a prerelease, `false` otherwise. + * Determines whether we are in the prerelease phase. + * @returns {Promise} `true` if there is a prerelease of the next major version, `false` otherwise. */ - async function isPreRelease() { + async function isPrereleasePhase() { const eslintVersions = await require("./src/_data/eslintVersions")(); return eslintVersions.items.some(item => item.branch === "next"); @@ -70,8 +71,8 @@ module.exports = function(eleventyConfig) { eleventyConfig.addGlobalData("HEAD", process.env.BRANCH === "main"); eleventyConfig.addGlobalData("NOINDEX", process.env.BRANCH !== "latest"); eleventyConfig.addGlobalData("PATH_PREFIX", pathPrefix); - eleventyConfig.addGlobalData("is_pre_release", isPreRelease); - eleventyConfig.addGlobalData("is_number_version", process.env.BRANCH && /^v\d+\.x$/u.test(process.env.BRANCH)); + eleventyConfig.addGlobalData("is_prerelease_phase", isPrereleasePhase); + eleventyConfig.addGlobalData("is_number_version", isNumberVersion); eleventyConfig.addDataExtension("yml", contents => yaml.load(contents)); //------------------------------------------------------------------------------ diff --git a/docs/src/_includes/layouts/doc.html b/docs/src/_includes/layouts/doc.html index 5629cab7d93e..dc595d6a16ed 100644 --- a/docs/src/_includes/layouts/doc.html +++ b/docs/src/_includes/layouts/doc.html @@ -102,7 +102,7 @@

{{ title }}

{% if edit_link %} {{ edit_link }} {% else %} - {% if is_pre_release and GIT_BRANCH === 'latest' %} + {% if is_prerelease_phase and GIT_BRANCH === 'latest' %} {{ site.edit_link.start_with_latest }}{{ page.inputPath }} {% elseif is_number_version %} https://github.com/eslint/eslint/edit/{{ GIT_BRANCH }}/docs/{{ page.inputPath }} From 52c40cdb0967e85e8a0e6740c2a1eeab086ee05e Mon Sep 17 00:00:00 2001 From: Tanuj Kanti Date: Wed, 8 Jan 2025 12:26:12 +0530 Subject: [PATCH 4/4] get prerelease info from eslintVersion,js --- docs/.eleventy.js | 11 ----------- docs/src/_data/eslintVersions.js | 7 +++++++ docs/src/_includes/layouts/doc.html | 2 +- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/docs/.eleventy.js b/docs/.eleventy.js index b510825be34a..a12ea5f03317 100644 --- a/docs/.eleventy.js +++ b/docs/.eleventy.js @@ -56,22 +56,11 @@ module.exports = function(eleventyConfig) { // Load site-specific data const siteName = process.env.ESLINT_SITE_NAME || "en"; - /** - * Determines whether we are in the prerelease phase. - * @returns {Promise} `true` if there is a prerelease of the next major version, `false` otherwise. - */ - async function isPrereleasePhase() { - const eslintVersions = await require("./src/_data/eslintVersions")(); - - return eslintVersions.items.some(item => item.branch === "next"); - } - eleventyConfig.addGlobalData("site_name", siteName); eleventyConfig.addGlobalData("GIT_BRANCH", process.env.BRANCH); eleventyConfig.addGlobalData("HEAD", process.env.BRANCH === "main"); eleventyConfig.addGlobalData("NOINDEX", process.env.BRANCH !== "latest"); eleventyConfig.addGlobalData("PATH_PREFIX", pathPrefix); - eleventyConfig.addGlobalData("is_prerelease_phase", isPrereleasePhase); eleventyConfig.addGlobalData("is_number_version", isNumberVersion); eleventyConfig.addDataExtension("yml", contents => yaml.load(contents)); diff --git a/docs/src/_data/eslintVersions.js b/docs/src/_data/eslintVersions.js index 16e6235df0e3..40ba029011d2 100644 --- a/docs/src/_data/eslintVersions.js +++ b/docs/src/_data/eslintVersions.js @@ -31,6 +31,7 @@ module.exports = async function() { const { items } = data; let foundItemForThisBranch = false; + let isPrereleasePhase = false; for (const item of items) { const isItemForThisBranch = item.branch === thisBranch; @@ -54,6 +55,10 @@ module.exports = async function() { if (isItemForThisBranch) { item.selected = true; } + + if (item.branch === "next") { + isPrereleasePhase = true; + } } // Add an empty item if this is not a production branch @@ -67,5 +72,7 @@ module.exports = async function() { }); } + data.isPrereleasePhase = isPrereleasePhase; + return data; }; diff --git a/docs/src/_includes/layouts/doc.html b/docs/src/_includes/layouts/doc.html index dc595d6a16ed..87917676b2fd 100644 --- a/docs/src/_includes/layouts/doc.html +++ b/docs/src/_includes/layouts/doc.html @@ -102,7 +102,7 @@

{{ title }}

{% if edit_link %} {{ edit_link }} {% else %} - {% if is_prerelease_phase and GIT_BRANCH === 'latest' %} + {% if eslintVersions.isPrereleasePhase and GIT_BRANCH === 'latest' %} {{ site.edit_link.start_with_latest }}{{ page.inputPath }} {% elseif is_number_version %} https://github.com/eslint/eslint/edit/{{ GIT_BRANCH }}/docs/{{ page.inputPath }} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy