{"record":{"id":"db00ff34b936598e","repo":"rust-lang/cargo","slug":"not-implemented-db00ff","errorCode":null,"errorMessage":"not implemented","messagePattern":"not implemented","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/mdman/src/format/text.rs","lineNumber":167,"sourceCode":"                        Tag::Item => {\n                            self.flush();\n                            match list.last_mut().expect(\"item must have list start\") {\n                                // Ordered list.\n                                Some(n) => {\n                                    self.push_indent(self.indent);\n                                    write!(self.line, \"{}.\", n)?;\n                                    *n += 1;\n                                }\n                                // Unordered list.\n                                None => {\n                                    self.push_indent(self.indent);\n                                    self.push_to_line(\"o \")\n                                }\n                            }\n                            self.indent += 3;\n                            suppress_paragraph = true;\n                        }\n                        Tag::FootnoteDefinition(_label) => unimplemented!(),\n                        Tag::Table(alignment) => {\n                            assert!(self.table.alignment.is_empty());\n                            self.flush();\n                            self.table.alignment.extend(alignment);\n                            let table = self.table.process(&mut self.parser, self.indent)?;\n                            self.output.push_str(&table);\n                            self.hard_break();\n                            self.table = Table::new();\n                        }\n                        Tag::TableHead | Tag::TableRow | Tag::TableCell => {\n                            bail!(\"unexpected table element\")\n                        }\n                        Tag::Emphasis => {}\n                        Tag::Strong => {}\n                        // Strikethrough isn't usually supported for TTY.\n                        Tag::Strikethrough => self.word.push_str(\"~~\"),\n                        Tag::Link {\n                            link_type,","sourceCodeStart":149,"sourceCodeEnd":185,"githubUrl":"https://github.com/rust-lang/cargo/blob/eb98b54bc9f3c74519f43d066cb3fd02ebc88df0/crates/mdman/src/format/text.rs#L149-L185","documentation":"mdman's plain-text formatter (format/text.rs) does not support footnote definitions. On Tag::FootnoteDefinition it calls unimplemented!(), panicking with 'not implemented'.","triggerScenarios":"Generating plain-text output (`mdman --format txt`) from Markdown containing a footnote definition `[^id]: ...`. The event triggers the panic.","commonSituations":"Using the same Markdown source across man and text outputs where the source has footnotes; generating terminal-friendly text from annotated docs.","solutions":["Remove footnote definitions from the source Markdown before text conversion.","Handle Tag::FootnoteDefinition in crates/mdman/src/format/text.rs (e.g. append a footnotes section) instead of unimplemented!()."],"exampleFix":"// before\nTag::FootnoteDefinition(_label) => unimplemented!(),\n// after\nTag::FootnoteDefinition(_label) => { /* dropped in text output */ }","handlingStrategy":"validation","validationCode":"// Same footnote-detection guard as for man output, applied before text conversion\nlet src = std::fs::read_to_string(&md_path)?;\nif src.lines().any(|l| l.trim_start().starts_with(\"[^\") && l.contains(\":\")) {\n    anyhow::bail!(\"source contains footnote definitions unsupported by text output\");\n}","typeGuard":"null","tryCatchPattern":"null","preventionTips":["Keep text-destined Markdown free of footnotes.","Share a sanitizer between man and text pipelines."],"tags":["mdman","text","markdown","footnote","panic"],"backgroundTag":null,"analyzedSha":"eb98b54bc9f3c74519f43d066cb3fd02ebc88df0","analyzedAt":"2026-08-11T17:42:36.556Z","contentChangedAt":"2026-08-11T17:42:36.556Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}