inject static method
void
inject({
- required String title,
- String? description,
- List<
NoscriptLink> ? links, - String? content,
- List<
NoscriptHeading> ? headings, - List<
String> ? paragraphs,
Inject noscript fallback content
Implementation
static void inject({
required String title,
String? description,
List<NoscriptLink>? links,
String? content,
List<NoscriptHeading>? headings,
List<String>? paragraphs,
}) {
if (!Webify.isInitialized) return;
final buffer = StringBuffer();
// Main heading
buffer.writeln('<h1>${_escape(title)}</h1>');
// Description
if (description != null) {
buffer.writeln('<p>${_escape(description)}</p>');
}
// Additional headings
if (headings != null) {
for (final heading in headings) {
final tag = 'h${heading.level.clamp(1, 6)}';
buffer.writeln('<$tag>${_escape(heading.text)}</$tag>');
}
}
// Paragraphs
if (paragraphs != null) {
for (final p in paragraphs) {
buffer.writeln('<p>${_escape(p)}</p>');
}
}
// Navigation links
if (links != null && links.isNotEmpty) {
buffer.writeln('<nav>');
buffer.writeln(' <ul>');
for (final link in links) {
final ariaLabel = link.ariaLabel != null
? ' aria-label="${_escape(link.ariaLabel!)}"'
: '';
final rel = link.rel != null ? ' rel="${_escape(link.rel!)}"' : '';
buffer.writeln(
' <li><a href="${_escape(link.href)}"$ariaLabel$rel>'
'${_escape(link.text)}</a></li>',
);
}
buffer.writeln(' </ul>');
buffer.writeln('</nav>');
}
// Raw content
if (content != null) {
buffer.writeln(content);
}
Webify.instance.platform.injectNoscriptContent(buffer.toString());
}