applyToDom method
Implementation
void applyToDom(SeoData data, SFWFConfig config) {
if (!kIsWeb) return;
try {
final title = data.title?.isNotEmpty == true
? '${data.title}${config.seoDefaults.titleSuffix}'
: config.appName;
web.document.title = title;
_setMeta('description',
data.description ?? config.seoDefaults.defaultDescription);
_setMeta('og:title', data.title ?? config.appName);
_setMeta('og:description',
data.description ?? config.seoDefaults.defaultDescription);
_setMeta('og:image', data.image ?? config.seoDefaults.defaultImage);
_setMeta('og:url',
config.baseUrl + web.window.location.pathname);
_setMeta('og:type', data.ogType ?? 'website');
_setMeta('og:site_name', config.appName);
_setMeta('og:locale',
data.locale ?? config.supportedLocales.first.toLanguageTag());
_setMeta(
'twitter:card', data.twitterCard ?? 'summary_large_image');
_setMeta('twitter:title', data.title ?? config.appName);
_setMeta('twitter:description',
data.description ?? config.seoDefaults.defaultDescription);
_setMeta('twitter:image',
data.image ?? config.seoDefaults.defaultImage);
_setMeta('twitter:site', config.seoDefaults.twitterHandle);
if (data.keywords != null) {
_setMeta('keywords', data.keywords!);
}
if (data.themeColor != null) {
_setMeta('theme-color', data.themeColor!);
_setMeta('msapplication-TileColor', data.themeColor!);
}
if (data.canonicalUrl != null) {
_setLink('canonical', data.canonicalUrl!);
}
if (data.structuredData != null) {
_injectJsonLd(data.structuredData!);
}
if (data.noIndex == true) {
_setMeta('robots', 'noindex, nofollow');
}
} catch (_) {}
}