Home | History | Annotate | Download | only in docs
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 var outline_root = null;
      6 var root = null;
      7 var outline_ptr = null;
      8 
      9 function onEnter(node) {
     10   var li = document.createElement('li');
     11   outline_ptr.appendChild(li);
     12 
     13   var header = node.querySelector('h1');
     14   header.id = 'sec_' + header.textContent.replace(/ /g, '_');
     15   var link = document.createElement('a');
     16   link.href = '#' + header.id;
     17   link.textContent = header.textContent;
     18   li.appendChild(link);
     19   var ul = document.createElement('ul');
     20   li.appendChild(ul);
     21   outline_ptr = ul;
     22 }
     23 
     24 function onExit(node) {
     25   outline_ptr = outline_ptr.parentNode.parentNode;
     26 }
     27 
     28 function outline(node) {
     29   var in_toc = !node.classList.contains('not_in_toc');
     30   if (in_toc) {
     31     onEnter(node);
     32   }
     33   var child = node.firstChild;
     34   while (child) {
     35     if (child.tagName === 'SECTION') {
     36       outline(child);
     37     }
     38     child = child.nextSibling;
     39   }
     40   if (in_toc) {
     41     onExit(node);
     42   }
     43 }
     44 
     45 
     46 window.onload = function () {
     47   outline_root = document.getElementById('outline');
     48   root = document.getElementById('root');
     49 
     50   var ul = document.createElement('ul');
     51   outline_root.appendChild(ul);
     52   outline_ptr = ul;
     53 
     54   outline(root);
     55 };