getGenericMarkdownTheme method
MarkdownStyleSheet
getGenericMarkdownTheme(
- BuildContext context, {
- Color? overideTextColor,
})
Implementation
MarkdownStyleSheet getGenericMarkdownTheme(BuildContext context, {Color? overideTextColor}) {
var baseTextStyle = TextStyle(color: overideTextColor ?? textColor);
var tt = Theme.of(context).textTheme;
double bodyMediumFontSize = tt.bodyMedium?.fontSize ?? 14.0;
// Multiplicateurs remappés (max = 1.75 pour h1)
const double h1Multiplier = 1.75; // Titre principal
const double h2Multiplier = 1.5; // Sous-titre principal
const double h3Multiplier = 1.3; // Sous-section
const double h4Multiplier = 1.15; // Sous-sous-section
const double h5Multiplier = 1.05; // Petit titre
const double h6Multiplier = 1.0; // Même taille que le texte (gras uniquement)
return MarkdownStyleSheet.fromTheme(Theme.of(context)).copyWith(
p: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: tt.bodyMedium?.fontSize, // x1 (base)
),
h1: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: bodyMediumFontSize * h1Multiplier,
fontWeight: FontWeight.bold,
),
h2: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: bodyMediumFontSize * h2Multiplier,
fontWeight: FontWeight.bold,
),
h3: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: bodyMediumFontSize * h3Multiplier,
fontWeight: FontWeight.bold,
),
h4: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: bodyMediumFontSize * h4Multiplier,
fontWeight: FontWeight.bold,
),
h5: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: bodyMediumFontSize * h5Multiplier,
fontWeight: FontWeight.bold,
),
h6: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontSize: bodyMediumFontSize * h6Multiplier,
fontWeight: FontWeight.bold,
),
em: tt.bodyMedium?.copyWith(
color: overideTextColor ?? textColor,
fontStyle: FontStyle.italic, // Emphase en italique (pas en gras)
),
strong: baseTextStyle,
code: baseTextStyle,
blockquote: baseTextStyle,
listBullet: baseTextStyle,
horizontalRuleDecoration: BoxDecoration(
border: Border(
top: BorderSide(
color: Colors.grey.withValues(alpha: 0.4), // couleur de la ligne
width: 2.0, // épaisseur
style: BorderStyle.solid,
),
),
),
);
}