git.schokokeks.org
Repositories
Help
Report an Issue
fs-draft.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
dcda8f5
Branches
Tags
master
midgard
vorlage
fs-draft.git
source
logic
client
draft.js
advanced
bfadmin-master
commited
dcda8f5
at 2016-04-25 00:47:49
draft.js
Blame
History
Raw
"use strict"; function load_file(url, usage) { let request = new XMLHttpRequest(); request.open("GET", url, true); request.send(null); request.onreadystatechange = function () { usage(null, request.responseText); }; } function add_tooltips() { for (let dom_node of document.querySelectorAll(".word_fs")) { let url = "http://folksprak.org/munin.php?query=translation_fs_" + dom_node.textContent + "_en"; load_file ( url, function (error, content) { try { let object = JSON.parse(content); dom_node.setAttribute("title", object.map(entry => entry.to.stem).join(", ")); } catch (exception) { console.warn("couldn't parse ", content); } } ) } } function convert_to_list(structure) { let list = []; for (let index = 0; index < structure.length; index += 1) list.push(structure[index]); return list; } class class_contentnode { constructor(id, title, children) { this.id = id; this.title = title; this.children = children; } generate(path = []) { let that = this; let dom_fragment = document.createDocumentFragment(); { if (this.title != null) { let dom_link = document.createElement("a"); dom_link.setAttribute("href", "#" + that.id); dom_link.textContent = path.map(x => (x+1).toString()).join(".") + " " + this.title; dom_fragment.appendChild(dom_link); } } { let dom_list = document.createElement("ol"); this.children.forEach ( function (child, index) { if (child != null) { let dom_element = document.createElement("li"); dom_element.appendChild(child.generate(path.concat(index))); dom_list.appendChild(dom_element); } } ); dom_fragment.appendChild(dom_list); } return dom_fragment; } static read(dom_context = document, classes = ["chapter","section","subsection"], id = null, title = null) { return ( new class_contentnode ( id, title, (classes.length == 0) ? [] : convert_to_list(dom_context.querySelectorAll("section" + ("." + classes[0]) + ":not(.pseudo)")).map ( function (dom_context_) { return ( class_contentnode.read ( dom_context_, classes.slice(1), dom_context_.getAttribute("id"), dom_context_.querySelector("header").textContent ) ); } ) ) ); } } function main() { document.querySelector("#toc").appendChild(class_contentnode.read().generate()); // add_tooltips(); } document.addEventListener("DOMContentLoaded", function (event) {main();});