--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>Psensor TODO</title>\r
+<style type="text/css">\r
+\r
+body {\r
+ background: #e2e2e2;\r
+ color: #333333;\r
+ font-family: Ubuntu,Arial,sans-serif;\r
+ line-height: 1.6;\r
+ font-weight: lighter;\r
+ margin: 1em 2em 2em 2em;\r
+ padding: 0 0 0 0;\r
+}\r
+\r
+h1 {\r
+ font-size: 2.813em;\r
+ margin: 0 0 0.267em 0;\r
+ padding: 0 0 0 0;\r
+ font-weight: normal;\r
+}\r
+\r
+h2 {\r
+ font-size: 2em;\r
+ margin: 0 0 0.375em;\r
+ padding: 0 0 0 0;\r
+ font-weight: normal;\r
+}\r
+\r
+h3 {\r
+ font-size: 1.438em;\r
+ margin: 0 0 0.522em;\r
+ padding: 0 0 0 0;\r
+ font-weight: normal;\r
+}\r
+\r
+h4 {\r
+ font-size: 1.219em;\r
+ margin: 0 0 0.615em;\r
+ padding: 0 0 0 0;\r
+ font-weight: normal;\r
+}\r
+\r
+h5 {\r
+ font-size: 1em;\r
+ margin: 0 0 0.75em;\r
+ padding: 0 0 0 0;\r
+ font-weight: bold;\r
+}\r
+\r
+h6 {\r
+ font-weight: normal;\r
+ font-size: 0.813em;\r
+ letter-spacing: 0.1em;\r
+ margin: 0 0 0.923em;\r
+ text-transform: uppercase;\r
+ padding: 0 0 0 0;\r
+}\r
+\r
+li {\r
+ margin: 0 0 0 1em;\r
+ line-height: 1.6;\r
+}\r
+\r
+li p {\r
+ margin: 0 0 0 0;\r
+}\r
+\r
+ul {\r
+ margin: 0 0 0 0;\r
+ padding: 0 0 0 0;\r
+}\r
+\r
+a:link, a:visited {\r
+ color: #19B6EE;\r
+ text-decoration: none;\r
+}\r
+\r
+a:hover {\r
+ text-decoration: underline;\r
+}\r
+\r
+code, pre, tt {\r
+ font-family: "Ubuntu Mono","Courier New",Courier,monospace;\r
+ font-weight: normal;\r
+ color: #333333;\r
+}\r
+\r
+pre {\r
+ background: none repeat scroll 0 0 #e0e0e0;\r
+ border-radius: 4px;\r
+ padding: 0.5em 0.5em;\r
+ margin: 0 0 0 0;\r
+ white-space: pre-wrap;\r
+ word-wrap: break-word;\r
+}\r
+\r
+table {\r
+ width: 100%;\r
+ text-align: left;\r
+}\r
+\r
+#footer {\r
+ margin: 0 0 0 0;\r
+ font-size: 0.8em;\r
+ font-weight: lighter;\r
+ clear: both;\r
+ text-align: right;\r
+}\r
+\r
+#page {\r
+ margin: 0 0 0 0;\r
+ padding: 0 0 0 0;\r
+}\r
+\r
+#main {\r
+ background: #ffffff;\r
+\r
+ -moz-box-sizing: border-box;\r
+\r
+ padding: 2em 2em 2em 2em;\r
+\r
+ -moz-border-radius: 4px;\r
+ -webkit-border-radius: 4px;\r
+ border-radius: 4px;\r
+\r
+ -webkit-box-shadow: 0 2px 2px 0 #C2C2C2;\r
+ box-shadow: 0 2px 2px 0 #C2C2C2;\r
+}\r
+\r
+#menu {\r
+ background: #ffffff;\r
+ -moz-box-sizing: border-box;\r
+ padding: 2em 2em 2em 2em;\r
+\r
+ -moz-border-radius: 4px;\r
+ -webkit-border-radius: 4px;\r
+ border-radius: 4px;\r
+\r
+ -webkit-box-shadow: 0 2px 2px 0 #C2C2C2;\r
+ box-shadow: 0 2px 2px 0 #C2C2C2;\r
+}\r
+\r
+#menu-list, #menu-list > li > ul {\r
+ list-style-type: none;\r
+}\r
+\r
+/* menu on left col, content on right col */\r
+\r
+#menu {\r
+ float: left;\r
+ width: 18%;\r
+}\r
+\r
+#main {\r
+ float: right;\r
+ width: 80%;\r
+}\r
+\r
+/* asciidoc */\r
+\r
+#toc, #content {\r
+ margin: 0em 0em 2em 0em;\r
+\r
+ background: #ffffff;\r
+ -moz-box-sizing: border-box;\r
+ padding: 2em 2em 2em 2em;\r
+\r
+ -moz-border-radius: 4px;\r
+ -webkit-border-radius: 4px;\r
+ border-radius: 4px;\r
+\r
+ -webkit-box-shadow: 0 2px 2px 0 #C2C2C2;\r
+ box-shadow: 0 2px 2px 0 #C2C2C2;\r
+}\r
+\r
+\r
+</style>\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+var asciidoc = { // Namespace.\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+// Table Of Contents generator\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+/* Author: Mihai Bazon, September 2002\r
+ * http://students.infoiasi.ro/~mishoo\r
+ *\r
+ * Table Of Content generator\r
+ * Version: 0.4\r
+ *\r
+ * Feel free to use this script under the terms of the GNU General Public\r
+ * License, as long as you do not remove or alter this notice.\r
+ */\r
+\r
+ /* modified by Troy D. Hanson, September 2006. License: GPL */\r
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */\r
+\r
+// toclevels = 1..4.\r
+toc: function (toclevels) {\r
+\r
+ function getText(el) {\r
+ var text = "";\r
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.\r
+ text += i.data;\r
+ else if (i.firstChild != null)\r
+ text += getText(i);\r
+ }\r
+ return text;\r
+ }\r
+\r
+ function TocEntry(el, text, toclevel) {\r
+ this.element = el;\r
+ this.text = text;\r
+ this.toclevel = toclevel;\r
+ }\r
+\r
+ function tocEntries(el, toclevels) {\r
+ var result = new Array;\r
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
+ // Function that scans the DOM tree for header elements (the DOM2\r
+ // nodeIterator API would be a better technique but not supported by all\r
+ // browsers).\r
+ var iterate = function (el) {\r
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {\r
+ var mo = re.exec(i.tagName);\r
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {\r
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);\r
+ }\r
+ iterate(i);\r
+ }\r
+ }\r
+ }\r
+ iterate(el);\r
+ return result;\r
+ }\r
+\r
+ var toc = document.getElementById("toc");\r
+ if (!toc) {\r
+ return;\r
+ }\r
+\r
+ // Delete existing TOC entries in case we're reloading the TOC.\r
+ var tocEntriesToRemove = [];\r
+ var i;\r
+ for (i = 0; i < toc.childNodes.length; i++) {\r
+ var entry = toc.childNodes[i];\r
+ if (entry.nodeName.toLowerCase() == 'div'\r
+ && entry.getAttribute("class")\r
+ && entry.getAttribute("class").match(/^toclevel/))\r
+ tocEntriesToRemove.push(entry);\r
+ }\r
+ for (i = 0; i < tocEntriesToRemove.length; i++) {\r
+ toc.removeChild(tocEntriesToRemove[i]);\r
+ }\r
+\r
+ // Rebuild TOC entries.\r
+ var entries = tocEntries(document.getElementById("content"), toclevels);\r
+ for (var i = 0; i < entries.length; ++i) {\r
+ var entry = entries[i];\r
+ if (entry.element.id == "")\r
+ entry.element.id = "_toc_" + i;\r
+ var a = document.createElement("a");\r
+ a.href = "#" + entry.element.id;\r
+ a.appendChild(document.createTextNode(entry.text));\r
+ var div = document.createElement("div");\r
+ div.appendChild(a);\r
+ div.className = "toclevel" + entry.toclevel;\r
+ toc.appendChild(div);\r
+ }\r
+ if (entries.length == 0)\r
+ toc.parentNode.removeChild(toc);\r
+},\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+// Footnotes generator\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+/* Based on footnote generation code from:\r
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
+ */\r
+\r
+footnotes: function () {\r
+ // Delete existing footnote entries in case we're reloading the footnodes.\r
+ var i;\r
+ var noteholder = document.getElementById("footnotes");\r
+ if (!noteholder) {\r
+ return;\r
+ }\r
+ var entriesToRemove = [];\r
+ for (i = 0; i < noteholder.childNodes.length; i++) {\r
+ var entry = noteholder.childNodes[i];\r
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
+ entriesToRemove.push(entry);\r
+ }\r
+ for (i = 0; i < entriesToRemove.length; i++) {\r
+ noteholder.removeChild(entriesToRemove[i]);\r
+ }\r
+\r
+ // Rebuild footnote entries.\r
+ var cont = document.getElementById("content");\r
+ var spans = cont.getElementsByTagName("span");\r
+ var refs = {};\r
+ var n = 0;\r
+ for (i=0; i<spans.length; i++) {\r
+ if (spans[i].className == "footnote") {\r
+ n++;\r
+ var note = spans[i].getAttribute("data-note");\r
+ if (!note) {\r
+ // Use [\s\S] in place of . so multi-line matches work.\r
+ // Because JavaScript has no s (dotall) regex flag.\r
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+ spans[i].innerHTML =\r
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
+ "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+ spans[i].setAttribute("data-note", note);\r
+ }\r
+ noteholder.innerHTML +=\r
+ "<div class='footnote' id='_footnote_" + n + "'>" +\r
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
+ n + "</a>. " + note + "</div>";\r
+ var id =spans[i].getAttribute("id");\r
+ if (id != null) refs["#"+id] = n;\r
+ }\r
+ }\r
+ if (n == 0)\r
+ noteholder.parentNode.removeChild(noteholder);\r
+ else {\r
+ // Process footnoterefs.\r
+ for (i=0; i<spans.length; i++) {\r
+ if (spans[i].className == "footnoteref") {\r
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");\r
+ href = href.match(/#.*/)[0]; // Because IE return full URL.\r
+ n = refs[href];\r
+ spans[i].innerHTML =\r
+ "[<a href='#_footnote_" + n +\r
+ "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+ }\r
+ }\r
+ }\r
+},\r
+\r
+install: function(toclevels) {\r
+ var timerId;\r
+\r
+ function reinstall() {\r
+ asciidoc.footnotes();\r
+ if (toclevels) {\r
+ asciidoc.toc(toclevels);\r
+ }\r
+ }\r
+\r
+ function reinstallAndRemoveTimer() {\r
+ clearInterval(timerId);\r
+ reinstall();\r
+ }\r
+\r
+ timerId = setInterval(reinstall, 500);\r
+ if (document.addEventListener)\r
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
+ else\r
+ window.onload = reinstallAndRemoveTimer;\r
+}\r
+\r
+}\r
+asciidoc.install();\r
+/*]]>*/\r
+</script>\r
+</head>\r
+<body class="article">\r
+<div id="header">\r
+<h1>Psensor TODO</h1>\r
+</div>\r
+<div id="content">\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Play a sound when a sensor alert is raised. Note that\r
+ it can actually be done by using the script support.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Use max/crit temperature information provided by\r
+ lm-sensor.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Include help/faq directly in psensor UI.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer">\r
+<div id="footer-text">\r
+Last updated 2014-08-22 00:47:22 CEST\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r