From f3e2e444830a01f72453c0dda039db54f270d036 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Fri, 29 Jul 2022 20:00:06 -0400 Subject: [PATCH] chore(website): lower formatting rules in sidebar --- packages/website/sidebars/sidebar.rules.js | 66 +++++++++++++--------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/packages/website/sidebars/sidebar.rules.js b/packages/website/sidebars/sidebar.rules.js index 4399d2da65f9..b429359d13b3 100644 --- a/packages/website/sidebars/sidebar.rules.js +++ b/packages/website/sidebars/sidebar.rules.js @@ -10,9 +10,20 @@ const rules = Object.entries(plugin.rules).map(([name, rule]) => { }; }); -const notDeprecatedRules = rules.filter(rule => !rule.meta.deprecated); +const deprecatedRules = new Set(rules.filter(rule => rule.meta.deprecated)); -const deprecatedRules = rules.filter(rule => rule.meta.deprecated); +const formattingRules = new Set( + rules.filter( + rule => !rule.meta.deprecated && rule.meta.fixable === 'whitespace', + ), +); + +const emphasizedRules = rules.filter( + rule => + !rule.meta.deprecated && + !deprecatedRules.has(rule) && + !formattingRules.has(rule), +); const paths = globby .sync('*.md', { @@ -31,34 +42,35 @@ const paths = globby ); }); -module.exports = { - someSidebar: [ - 'README', - { - type: 'category', - label: 'Rules', - collapsible: true, - collapsed: false, - items: notDeprecatedRules.map(item => { - return { - type: 'doc', - id: item.name, - label: item.name, - }; - }), - }, - { - type: 'category', - label: 'Deprecated', - collapsible: true, - collapsed: false, - items: [...deprecatedRules, ...paths].map(item => { +function createCategory(label, rules, additionalItems = []) { + const collapsed = !additionalItems.length; + return { + collapsed, + collapsible: collapsed, + items: [ + ...rules.map(rule => { return { type: 'doc', - id: item.name, - label: item.name, + id: rule.name, + label: rule.name, }; }), - }, + ...additionalItems, + ], + label, + type: 'category', + }; +} + +module.exports = { + someSidebar: [ + 'README', + createCategory('Rules', emphasizedRules, [ + createCategory('Formatting Rules', Array.from(formattingRules)), + createCategory('Deprecated Rules', [ + ...Array.from(deprecatedRules), + ...paths, + ]), + ]), ], };