";
+ for (const [index, tab] of tabs.entries()) {
+ output += `\
+ `;
+ }
+ output += "
";
+ for (const [index, tab] of tabs.entries()) {
+ output += `\
+`;
+ for (const setting of tab.settings) {
+ const js_data_name = setting["js_name"];
+ const setting_name = setting["name"];
- if (setting["options"] !== undefined) {
- // This is a select setting.
- output += `\
+ if (setting["options"] !== undefined) {
+ // This is a select setting.
+ output += `\
`;
- } else {
- // This is a checkbox toggle.
- const checked = setting["default"] === true ? " checked" : "";
- output += `\
+ } else {
+ // This is a checkbox toggle.
+ const checked = setting["default"] === true ? " checked" : "";
+ output += `\
\
\
`;
+ }
}
+ output += "
";
}
return output;
}
@@ -176,96 +189,133 @@
.split(",").filter(t => t);
theme_names.push("light", "dark", "ayu");
- const settings = [
- {
- "name": "Theme",
- "js_name": "theme",
- "default": "system preference",
- "options": theme_names.concat("system preference"),
- },
- {
- "name": "Preferred light theme",
- "js_name": "preferred-light-theme",
- "default": "light",
- "options": theme_names,
- },
- {
- "name": "Preferred dark theme",
- "js_name": "preferred-dark-theme",
- "default": "dark",
- "options": theme_names,
- },
- {
- "name": "Auto-hide item contents for large items",
- "js_name": "auto-hide-large-items",
- "default": true,
- },
- {
- "name": "Auto-hide item methods' documentation",
- "js_name": "auto-hide-method-docs",
- "default": false,
- },
- {
- "name": "Auto-hide trait implementation documentation",
- "js_name": "auto-hide-trait-implementations",
- "default": false,
- },
+ const tabs = [
{
- "name": "Directly go to item in search if there is only one result",
- "js_name": "go-to-only-result",
- "default": false,
+ name: "Appearance",
+ settings: [
+ {
+ "name": "Theme",
+ "js_name": "theme",
+ "default": "system preference",
+ "options": theme_names.concat("system preference"),
+ },
+ {
+ "name": "Preferred light theme",
+ "js_name": "preferred-light-theme",
+ "default": "light",
+ "options": theme_names,
+ },
+ {
+ "name": "Preferred dark theme",
+ "js_name": "preferred-dark-theme",
+ "default": "dark",
+ "options": theme_names,
+ },
+ {
+ "name": "Use sans serif fonts",
+ "js_name": "sans-serif-fonts",
+ "default": false,
+ },
+ ],
},
{
- "name": "Show line numbers on code examples",
- "js_name": "line-numbers",
- "default": false,
+ name: "Interface",
+ settings: [
+ {
+ "name": "Hide persistent navigation bar",
+ "js_name": "hide-sidebar",
+ "default": false,
+ },
+ {
+ "name": "Hide table of contents",
+ "js_name": "hide-toc",
+ "default": false,
+ },
+ {
+ "name": "Hide module navigation",
+ "js_name": "hide-modnav",
+ "default": false,
+ },
+ {
+ "name": "Disable keyboard shortcuts",
+ "js_name": "disable-shortcuts",
+ "default": false,
+ },
+ {
+ "name": "Directly go to item in search if there is only one result",
+ "js_name": "go-to-only-result",
+ "default": false,
+ },
+ ],
},
{
- "name": "Hide persistent navigation bar",
- "js_name": "hide-sidebar",
- "default": false,
- },
- {
- "name": "Hide table of contents",
- "js_name": "hide-toc",
- "default": false,
- },
- {
- "name": "Hide module navigation",
- "js_name": "hide-modnav",
- "default": false,
- },
- {
- "name": "Disable keyboard shortcuts",
- "js_name": "disable-shortcuts",
- "default": false,
- },
- {
- "name": "Use sans serif fonts",
- "js_name": "sans-serif-fonts",
- "default": false,
- },
- {
- "name": "Word wrap source code",
- "js_name": "word-wrap-source-code",
- "default": false,
- },
- {
- "name": "Hide deprecated items",
- "js_name": "hide-deprecated-items",
- "default": false,
+ name: "Content",
+ settings: [
+ {
+ "name": "Show line numbers on code examples",
+ "js_name": "line-numbers",
+ "default": false,
+ },
+ {
+ "name": "Word wrap source code",
+ "js_name": "word-wrap-source-code",
+ "default": false,
+ },
+ {
+ "name": "Auto-hide item contents for large items",
+ "js_name": "auto-hide-large-items",
+ "default": true,
+ },
+ {
+ "name": "Auto-hide item methods' documentation",
+ "js_name": "auto-hide-method-docs",
+ "default": false,
+ },
+ {
+ "name": "Auto-hide trait implementation documentation",
+ "js_name": "auto-hide-trait-implementations",
+ "default": false,
+ },
+ {
+ "name": "Hide deprecated items",
+ "js_name": "hide-deprecated-items",
+ "default": false,
+ },
+ ],
},
];
// Then we build the DOM.
const elementKind = isSettingsPage ? "section" : "div";
- const innerHTML = `