import 'dart:html'; import './navbar.dart' show makeNavbar; const image_header = 'https://phundrak.fra1.cdn.digitaloceanspaces.com/img/mahakala-monochrome.png'; Future makeHeader() async { var header = Element.tag('header'); header ..append(Element.img() ..attributes['src'] = image_header ..attributes['alt'] = 'Logo' ..attributes['heigh'] = '150px' ..attributes['width'] = '150px') ..append(querySelector('h1')); var subt = querySelector('.subtitle'); if (subt != null) { header.append(subt); } return header; } Future wrapTables() async { for (var table in querySelectorAll('table')) { var largetable = DivElement()..className = 'largetable'; table.before(largetable); largetable.children.add(table); } } // All images that are not nested inside a link will be linkified to themselves. void linkifyImg() { querySelectorAll('img').forEach((img) { if (img.parent.tagName == 'P') { final link = Element.a()..attributes['href'] = img.attributes['src']; img.insertAdjacentElement('beforeBegin', link); link.append(img); } }); } Future reorganizeHtml() async { final content = querySelector('#content'); // Make navbar await makeNavbar().then((navbar) { querySelector('body').insertAdjacentElement('afterBegin', navbar); }); // Make header await makeHeader().then((header) { content.insertAdjacentElement('beforeBegin', header); final subtitle = querySelector('.subtitle'); if (subtitle != null) { header.append(subtitle); } }); // wrap tables in container for better SCSS display await wrapTables(); linkifyImg(); // Add correct class to TOC final toc = (querySelector('#table-of-contents') ?? Element.div() ..attributes['id'] = 'table-of-contents') ..classes.add('dropdown') ..innerText = "Table of Contents Unavailable"; querySelector('#toc-drop').append(toc); // Remove all
tags from HTML querySelectorAll('br').forEach((br) => br.remove()); }