Better coding style

This commit is contained in:
Lucien Cartier-Tilet 2020-05-10 12:37:22 +02:00
parent aa4600b588
commit 8ca55cb710
Signed by: phundrak
GPG Key ID: BD7789E705CB8DCA
3 changed files with 20 additions and 22 deletions

View File

@ -9,9 +9,7 @@ String getPageTitle() {
Element makeIcon(List<String> 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<Element> 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) {

View File

@ -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<String> fetchRemoteSitemap() async {
@ -31,7 +31,9 @@ Map<String, String> detectPages(List<dom.Element> 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<html.Element> getSitemap() async {
drop_container = html.querySelector('#drop-page');
} while (drop_container != null);
pages.forEach((link) => drop_container.append(link));
return drop_container;
}

View File

@ -30,7 +30,7 @@ Future<void> wrapTables() async {
}
// All images that are not nested inside a link will be linkified to themselves.
void linkifyImg() {
Future<void> 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<void> 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 <br> tags from HTML
querySelectorAll('br').forEach((br) => br.remove());