diff --git a/README.md b/README.md
index d4b66959..f4c733d8 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ docker run --name devdocs -d -p 9292:9292 devdocs
DevDocs is made of two pieces: a Ruby scraper that generates the documentation and metadata, and a JavaScript app powered by a small Sinatra app.
-DevDocs requires Ruby 3.3.0 (defined in [`Gemfile`](./Gemfile)), libcurl, and a JavaScript runtime supported by [ExecJS](https://github.com/rails/execjs#readme) (included in OS X and Windows; [Node.js](https://nodejs.org/en/) on Linux). Once you have these installed, run the following commands:
+DevDocs requires Ruby 3.4.1 (defined in [`Gemfile`](./Gemfile)), libcurl, and a JavaScript runtime supported by [ExecJS](https://github.com/rails/execjs#readme) (included in OS X and Windows; [Node.js](https://nodejs.org/en/) on Linux). Once you have these installed, run the following commands:
```sh
git clone https://github.com/freeCodeCamp/devdocs.git && cd devdocs
diff --git a/assets/javascripts/app/settings.js b/assets/javascripts/app/settings.js
index 1dbe3440..617830ec 100644
--- a/assets/javascripts/app/settings.js
+++ b/assets/javascripts/app/settings.js
@@ -16,6 +16,7 @@ app.Settings = class Settings {
"autoInstall",
"spaceScroll",
"spaceTimeout",
+ "noDocSpecificIcon",
];
static INTERNAL_KEYS = ["count", "schema", "version", "news"];
@@ -38,6 +39,7 @@ app.Settings = class Settings {
theme: "auto",
spaceScroll: 1,
spaceTimeout: 0.5,
+ noDocSpecificIcon: false,
};
constructor() {
diff --git a/assets/javascripts/lib/favicon.js b/assets/javascripts/lib/favicon.js
index c4be8d74..6b58016c 100644
--- a/assets/javascripts/lib/favicon.js
+++ b/assets/javascripts/lib/favicon.js
@@ -19,7 +19,7 @@ const withImage = function (url, action) {
};
this.setFaviconForDoc = function (doc) {
- if (currentSlug === doc.slug) {
+ if (currentSlug === doc.slug || app.settings.get("noDocSpecificIcon")) {
return;
}
diff --git a/assets/javascripts/templates/pages/settings_tmpl.js b/assets/javascripts/templates/pages/settings_tmpl.js
index 1fae3975..cfd30de1 100644
--- a/assets/javascripts/templates/pages/settings_tmpl.js
+++ b/assets/javascripts/templates/pages/settings_tmpl.js
@@ -66,6 +66,12 @@ app.templates.settingsPage = (settings) => `\
}>Enable tracking cookies
With this checked, we enable Google Analytics and Gauges to collect anonymous traffic information.
+
diff --git a/assets/javascripts/views/content/settings_page.js b/assets/javascripts/views/content/settings_page.js
index 8b1dd32c..46cacb3c 100644
--- a/assets/javascripts/views/content/settings_page.js
+++ b/assets/javascripts/views/content/settings_page.js
@@ -20,6 +20,7 @@ app.views.SettingsPage = class SettingsPage extends app.View {
settings.analyticsConsent = app.settings.get("analyticsConsent");
settings.spaceScroll = app.settings.get("spaceScroll");
settings.spaceTimeout = app.settings.get("spaceTimeout");
+ settings.noDocSpecificIcon = app.settings.get("noDocSpecificIcon");
settings.autoSupported = app.settings.autoSupported;
for (var layout of app.Settings.LAYOUTS) {
settings[layout] = app.settings.hasLayout(layout);