From 6425fe8c128a6f16768cb48a83ef9232c31063a3 Mon Sep 17 00:00:00 2001 From: Julian LaNeve Date: Mon, 29 May 2023 17:26:10 -0400 Subject: [PATCH] Update option anchors to include group name (#4711) --- crates/ruff_dev/src/generate_docs.rs | 4 ++-- crates/ruff_dev/src/generate_options.rs | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/crates/ruff_dev/src/generate_docs.rs b/crates/ruff_dev/src/generate_docs.rs index d636905174..864b030ad4 100644 --- a/crates/ruff_dev/src/generate_docs.rs +++ b/crates/ruff_dev/src/generate_docs.rs @@ -104,7 +104,7 @@ fn process_documentation(documentation: &str, out: &mut String) { "unknown option {option}" ); - let anchor = option.rsplit('.').next().unwrap(); + let anchor = option.replace('.', "-"); out.push_str(&format!("- [`{option}`][{option}]\n")); after.push_str(&format!("[{option}]: ../../settings#{anchor}")); @@ -152,7 +152,7 @@ Something [`else`][other]. [other]: http://example.com. -[mccabe.max-complexity]: ../../settings#max-complexity\n" +[mccabe.max-complexity]: ../../settings#mccabe-max-complexity\n" ); } } diff --git a/crates/ruff_dev/src/generate_options.rs b/crates/ruff_dev/src/generate_options.rs index cbea31d99f..4e6bfe280f 100644 --- a/crates/ruff_dev/src/generate_options.rs +++ b/crates/ruff_dev/src/generate_options.rs @@ -5,7 +5,18 @@ use ruff::settings::options::Options; use ruff::settings::options_base::{OptionEntry, OptionField}; fn emit_field(output: &mut String, name: &str, field: &OptionField, group_name: Option<&str>) { - output.push_str(&format!("#### [`{name}`](#{name})\n")); + // if there's a group name, we need to add it to the anchor + if let Some(group_name) = group_name { + // the anchor used to just be the name, but now it's the group name + // for backwards compatibility, we need to keep the old anchor + output.push_str(&format!("\n")); + + output.push_str(&format!( + "#### [`{name}`](#{group_name}-{name}) {{: #{group_name}-{name} }}\n" + )); + } else { + output.push_str(&format!("#### [`{name}`](#{name})\n")); + } output.push('\n'); output.push_str(field.doc); output.push_str("\n\n");