import 'dart:html' show HttpRequest, Element, querySelector;
final excluded_keywords = {'index', 'CONTRIBUTING', 'LICENSE', 'README'};
// Get the sitemap content
Future fetchRemoteSitemap() async {
const path = '/sitemap.html';
try {
return await HttpRequest.getString(path);
} catch (e) {
print('Couldn’t open $path');
}
return 'Error';
}
// Parse the list of elements and detect pages from this list
Map detectPages(List t_sitemap,
[String t_prefix, Map t_links]) {
t_links ??= {};
// parse each element in sitemap
for (var elem in t_sitemap) {
// if it’s a link
if (elem.innerHtml.startsWith('> parseSitemap() async {
final content = await fetchRemoteSitemap();
final sitemap = Element.ul()..innerHtml = content;
final sitemapNodes = sitemap.querySelector('ul').children;
return detectPages(sitemapNodes);
}
Future createSitemap() async {
final sitemap = await parseSitemap();
final pages = querySelector('#drop-page');
sitemap.forEach((url, name) {
final link = Element.li()
..classes.add('dropdown-item')
..append(Element.a()
..attributes['href'] = url
..innerText = name);
pages.append(link);
});
}