From 8ca55cb710ca9e462046975b261a84ecd0b519dd Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Sun, 10 May 2020 12:37:22 +0200 Subject: [PATCH] Better coding style --- web/dart/navbar.dart | 6 ++---- web/dart/parse_sitemap.dart | 7 +++++-- web/dart/reorganize_html.dart | 29 +++++++++++++---------------- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/web/dart/navbar.dart b/web/dart/navbar.dart index 8eae5e9..9f9822e 100644 --- a/web/dart/navbar.dart +++ b/web/dart/navbar.dart @@ -9,9 +9,7 @@ String getPageTitle() { Element makeIcon(List classes, [String id]) { final icon = Element.tag('i')..classes.addAll(classes); - if (id != null) { - icon.attributes['id'] = id; - } + icon.attributes['id'] = id ?? ''; return icon; } @@ -33,7 +31,7 @@ Future makePages() async { ..attributes['href'] = 'javascript:void(0)' ..append(makeIcon(['fas', 'fa-flag']))) ..classes.addAll(['nav-item', 'has-dropdown']) - ..insertAdjacentElement('beforeEnd', pages); + ..append(pages); } Element makeShareLink(Element icon, String url) { diff --git a/web/dart/parse_sitemap.dart b/web/dart/parse_sitemap.dart index 67dc69c..4d36d91 100644 --- a/web/dart/parse_sitemap.dart +++ b/web/dart/parse_sitemap.dart @@ -3,7 +3,7 @@ import 'dart:html' as html show HttpRequest, Element, querySelector; import 'package:html/parser.dart' show parse; import 'package:html/dom.dart' as dom show Element; -final excluded_keywords = ['index', 'CONTRIBUTING', 'LICENSE', 'README']; +final excluded_keywords = {'index', 'CONTRIBUTING', 'LICENSE', 'README'}; // Get the sitemap content Future fetchRemoteSitemap() async { @@ -31,7 +31,9 @@ Map detectPages(List sitemap, [String prefix]) { final text = elem.firstChild.text; links[url] = (prefix == null) ? text : '$text ($prefix)'; } else { - final prefix = elem.firstChild.text; + prefix = (prefix == null) + ? elem.firstChild.text + : '$prefix / ${elem.firstChild.text}'; final ul = elem.children[0].children; links.addAll(detectPages(ul, prefix)); } @@ -68,4 +70,5 @@ Future getSitemap() async { drop_container = html.querySelector('#drop-page'); } while (drop_container != null); pages.forEach((link) => drop_container.append(link)); + return drop_container; } diff --git a/web/dart/reorganize_html.dart b/web/dart/reorganize_html.dart index 3182cdf..e0209ca 100644 --- a/web/dart/reorganize_html.dart +++ b/web/dart/reorganize_html.dart @@ -30,7 +30,7 @@ Future wrapTables() async { } // All images that are not nested inside a link will be linkified to themselves. -void linkifyImg() { +Future linkifyImg() async { querySelectorAll('img').forEach((img) { if (img.parent.tagName == 'P') { final link = Element.a()..attributes['href'] = img.attributes['src']; @@ -41,34 +41,31 @@ void linkifyImg() { } Future reorganizeHtml() async { - final content = querySelector('#content'); - // Make navbar - await makeNavbar().then((navbar) { - querySelector('body').insertAdjacentElement('afterBegin', navbar); - }); + final navbar = await makeNavbar(); // Make header - await makeHeader().then((header) { - content.insertAdjacentElement('beforeBegin', header); - final subtitle = querySelector('.subtitle'); - if (subtitle != null) { - header.append(subtitle); - } - }); + final header = await makeHeader(); // wrap tables in container for better SCSS display await wrapTables(); - linkifyImg(); + // Make images not linking somewhere link to themselves + await linkifyImg(); + + // Add navbar to page + querySelector('body').insertAdjacentElement('afterBegin', navbar); + + // Add headet to page + querySelector('#content').insertAdjacentElement('beforeBegin', header); // Add correct class to TOC final toc = (querySelector('#table-of-contents') ?? (Element.div() ..attributes['id'] = 'table-of-contents' - ..innerText = "Table of Contents Unavailable")) + ..innerText = 'Table of Contents Unavailable')) ..classes.add('dropdown'); - querySelector('#toc-drop').append(toc); + navbar.querySelector('#toc-drop').append(toc); // Remove all
tags from HTML querySelectorAll('br').forEach((br) => br.remove());