diff --git a/pkgs/markdown/analysis_options.yaml b/pkgs/markdown/analysis_options.yaml
index e7748f55a..76bf2549e 100644
--- a/pkgs/markdown/analysis_options.yaml
+++ b/pkgs/markdown/analysis_options.yaml
@@ -11,13 +11,9 @@ analyzer:
# The example app explicitly takes a String of user-generated HTML and
# inserts it straight into a
using innerHtml.
unsafe_html: ignore
- # Waiting on a couple of bug fixes and new features before this should be enabled
- comment_references: ignore
linter:
rules:
- # https://github.com/dart-lang/linter/issues/574
- #- comment_references
- avoid_private_typedef_functions
- avoid_redundant_argument_values
- avoid_unused_constructor_parameters
diff --git a/pkgs/markdown/lib/markdown.dart b/pkgs/markdown/lib/markdown.dart
index 9fac7321d..5cd7468ca 100644
--- a/pkgs/markdown/lib/markdown.dart
+++ b/pkgs/markdown/lib/markdown.dart
@@ -36,6 +36,12 @@
/// - Creating a new [ExtensionSet] from one of the existing flavors
/// and adding your syntaxes.
/// - Passing your syntaxes to [Document] or [markdownToHtml] as parameters.
+/// @docImport 'src/ast.dart';
+/// @docImport 'src/block_syntaxes/block_syntax.dart';
+/// @docImport 'src/document.dart';
+/// @docImport 'src/extension_set.dart';
+/// @docImport 'src/html_renderer.dart';
+/// @docImport 'src/inline_syntaxes/inline_syntax.dart';
library;
import 'src/version.dart';
diff --git a/pkgs/markdown/lib/src/block_parser.dart b/pkgs/markdown/lib/src/block_parser.dart
index efe2352c3..28d4b2797 100644
--- a/pkgs/markdown/lib/src/block_parser.dart
+++ b/pkgs/markdown/lib/src/block_parser.dart
@@ -2,6 +2,9 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+/// @docImport 'block_syntaxes/setext_header_syntax.dart';
+library;
+
import 'ast.dart';
import 'block_syntaxes/block_syntax.dart';
import 'block_syntaxes/blockquote_syntax.dart';
@@ -53,6 +56,10 @@ class BlockParser {
bool encounteredBlankLine = false;
/// The collection of built-in block parsers.
+ // TODO(kevmoo): this should be static const and private!
+ // The fact that it's mutable is a BUG!
+ @Deprecated('Implementation member. '
+ 'Will be removed or make static in the next release.')
final List standardBlockSyntaxes = [
const EmptyBlockSyntax(),
const HtmlBlockSyntax(),
@@ -135,7 +142,7 @@ class BlockParser {
BlockSyntax? get parentSyntax => _parentSyntax;
BlockSyntax? _parentSyntax;
- /// Whether the [SetextHeadingSyntax] is disabled temporarily.
+ /// Whether the [SetextHeaderSyntax] is disabled temporarily.
bool get setextHeadingDisabled => _setextHeadingDisabled;
bool _setextHeadingDisabled = false;
diff --git a/pkgs/markdown/lib/src/inline_syntaxes/footnote_ref_syntax.dart b/pkgs/markdown/lib/src/inline_syntaxes/footnote_ref_syntax.dart
index 155fd74c4..c5d4ef6d6 100644
--- a/pkgs/markdown/lib/src/inline_syntaxes/footnote_ref_syntax.dart
+++ b/pkgs/markdown/lib/src/inline_syntaxes/footnote_ref_syntax.dart
@@ -1,3 +1,6 @@
+/// @docImport 'link_syntax.dart';
+library;
+
import '../ast.dart' show Element, Node, Text;
import '../charcode.dart';
import 'link_syntax.dart' show LinkContext;
diff --git a/pkgs/markdown/lib/src/inline_syntaxes/link_syntax.dart b/pkgs/markdown/lib/src/inline_syntaxes/link_syntax.dart
index bca3efbe0..9ceaf94d3 100644
--- a/pkgs/markdown/lib/src/inline_syntaxes/link_syntax.dart
+++ b/pkgs/markdown/lib/src/inline_syntaxes/link_syntax.dart
@@ -11,7 +11,9 @@ import 'delimiter_syntax.dart';
import 'footnote_ref_syntax.dart';
/// A helper class holds params of link context.
-/// Footnote creation needs other info in [_tryCreateReferenceLink].
+// Footnote creation needs other info in [LinkSyntax._tryCreateReferenceLink].
+// TODO(kevmoo): this type should be private. Ideally a Record.
+@Deprecated('Implementation class that should not be used directly.')
class LinkContext {
final InlineParser parser;
final SimpleDelimiter opener;
@@ -202,8 +204,8 @@ class LinkSyntax extends DelimiterSyntax {
/// Parse a reference link label at the current position.
///
- /// Specifically, [parser.pos] is expected to be pointing at the `[` which
- /// opens the link label.
+ /// Specifically, [InlineParser.pos] is expected to be pointing at the
+ /// `[` which opens the link label.
///
/// Returns the label if it could be parsed, or `null` if not.
String? _parseReferenceLinkLabel(InlineParser parser) {
@@ -245,7 +247,8 @@ class LinkSyntax extends DelimiterSyntax {
/// Parse an inline [InlineLink] at the current position.
///
/// At this point, we have parsed a link's (or image's) opening `[`, and then
- /// a matching closing `]`, and [parser.pos] is pointing at an opening `(`.
+ /// a matching closing `]`, and [InlineParser.pos] is pointing at an opening
+ /// `(`.
/// This method will then attempt to parse a link destination wrapped in `<>`,
/// such as `()`, or a bare link destination, such as
/// `(http://url)`, or a link destination with a title, such as