latexConfigToContext function

RenderContext latexConfigToContext(
  1. LatexConfig config, {
  2. required bool isDark,
  3. required LatexFontFamilies fontFamilies,
  4. MathFontProvider? provider,
})

Creates initial context from external configuration

Implementation

RenderContext latexConfigToContext(
  LatexConfig config, {
  required bool isDark,
  required LatexFontFamilies fontFamilies,
  MathFontProvider? provider,
}) {
  final resolvedTheme = config.theme.resolve(isDark);
  final resolvedColor =
      resolvedTheme.color != Colors.transparent ||
          resolvedTheme.color != const Color(0x00000000)
      ? resolvedTheme.color
      : (isDark
            ? LatexTheme.defaultDarkColors.color
            : LatexTheme.defaultLightColors.color);

  final resolvedErrorColor = isDark
      ? const Color(0xFFFF6666)
      : const Color(0xFFCC0000);
  final resolvedProvider =
      provider ?? MathFontProviderFactory.create(fontFamilies);

  return RenderContext(
    fontSize: config.fontSize,
    baseFontSize: config.fontSize,
    color: resolvedColor,
    errorColor: resolvedErrorColor,
    fontFamily: fontFamilies.main,
    fontFamilies: fontFamilies,
    isVariantFontFamily: false,
    layoutHints: LayoutHints(
      maxLineWidth: config.lineBreaking.enabled
          ? config.lineBreaking.maxWidth
          : null,
      lineBreakingEnabled: config.lineBreaking.enabled,
    ),
    mathFontProvider: resolvedProvider,
  );
}