docs/solutions/best-practices/input-rules-should-register-explicit-rule-instances-while-packages-export-markdown-families.md
The old inputRules shape mixed two separate ideas:
That made the public API worse than the runtime actually needed. Users were not really choosing "keys". They were choosing concrete markdown behaviors.
inputRules: { hash: true }.trigger into closed canonical package
families when the package already knew the syntax shape.Use explicit rule-instance registration:
H1Plugin.configure({
inputRules: [HeadingRules.markdown()],
});
Packages export semantic markdown families:
BoldRules.markdown({ variant: '*' })
HeadingRules.markdown()
HorizontalRuleRules.markdown({ variant: '-' })
TaskListRules.markdown({ checked: false })
LinkRules.markdown()
LinkRules.autolink({ variant: 'paste' })
MathRules.markdown({ variant: '$' })
The runtime stores only concrete rules. It does not need an "available rules" registry or string-key activation layer.
variant value, not
a top-level config key.trigger
unless the family is intentionally open-ended.FeatureRules.markdown(...).BulletedListRules.markdown(...), OrderedListRules.markdown(...), and
TaskListRules.markdown(...).LinkRules.autolink.