mirror of
https://github.com/videojs/video.js.git
synced 2024-12-23 02:04:34 +02:00
123 lines
4.2 KiB
JavaScript
123 lines
4.2 KiB
JavaScript
|
var BCLS = ( function () {
|
||
|
var heading = document.getElementsByTagName('h1')[0],
|
||
|
title = document.getElementsByTagName('title')[0],
|
||
|
sections = document.getElementsByTagName('h2'),
|
||
|
links = document.getElementsByTagName('a'),
|
||
|
sidenav = document.getElementById('sidenav'),
|
||
|
navList,
|
||
|
navA,
|
||
|
navItem,
|
||
|
navText,
|
||
|
i,
|
||
|
iMax,
|
||
|
item;
|
||
|
|
||
|
/**
|
||
|
* tests for all the ways a variable might be undefined or not have a value
|
||
|
* @param {*} x the variable to test
|
||
|
* @return {Boolean} true if variable is defined and has a value
|
||
|
*/
|
||
|
function isDefined (x){
|
||
|
if ( x === "" || x === null || x === undefined || x === NaN) {
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
function buildSideNav() {
|
||
|
if (isDefined(sections)) {
|
||
|
var homeHead = document.createElement('p'),
|
||
|
homeLink = document.createElement('a');
|
||
|
homeLink.setAttribute('href', '../../index.html');
|
||
|
homeLink.setAttribute('style', 'font-size:1.4em;font-weight:bold;text-align:right;margin:0;padding-left:1em');
|
||
|
homeLink.textContent = 'Docs Index';
|
||
|
homeHead.appendChild(homeLink);
|
||
|
navList = document.createElement('ul');
|
||
|
navList.setAttribute('class', 'sidenav-list');
|
||
|
navItem = document.createElement('li');
|
||
|
navA = document.createElement('a');
|
||
|
navA.setAttribute('href', '#toc0');
|
||
|
navText = document.createTextNode('Top');
|
||
|
navA.appendChild(navText);
|
||
|
navItem.appendChild(navA);
|
||
|
navList.appendChild(navItem);
|
||
|
iMax = sections.length;
|
||
|
for (i = 0; i < iMax; i++) {
|
||
|
item = sections[i];
|
||
|
navItem = document.createElement('li');
|
||
|
navA = document.createElement('a');
|
||
|
navA.setAttribute('href', '#' + item.id );
|
||
|
navText = document.createTextNode(item.textContent);
|
||
|
navA.appendChild(navText);
|
||
|
navItem.appendChild(navA);
|
||
|
navList.appendChild(navItem);
|
||
|
}
|
||
|
sidenav.appendChild(homeHead);
|
||
|
sidenav.appendChild(navList);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* fix link paths to point to html instead of md
|
||
|
*/
|
||
|
function fixLinks() {
|
||
|
var i,
|
||
|
iMax = links.length,
|
||
|
link,
|
||
|
url;
|
||
|
for (i = 0; i < iMax; i += 1) {
|
||
|
link = links[i];
|
||
|
url = link.getAttribute('href');
|
||
|
if (isDefined(url)) {
|
||
|
// if CONTRIBUTING.md, don't change
|
||
|
if (url.indexOf('CONTRIBUTING.md' === -1)) {
|
||
|
url.replace('.md', '.html');
|
||
|
link.setAttribute('href', url);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* set the doc title
|
||
|
*/
|
||
|
function setTitle() {
|
||
|
title.textContent = 'Videojs ' + heading.textContent;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* add the page footer
|
||
|
*/
|
||
|
function addFooter() {
|
||
|
var path = document.location.pathname,
|
||
|
footer = document.createElement('div'),
|
||
|
srcLink = document.createElement('a'),
|
||
|
srcLink2 = document.createElement('a'),
|
||
|
main = document.getElementById('main'),
|
||
|
srcPath,
|
||
|
srcPath2;
|
||
|
// extract file name
|
||
|
if (path.indexOf('#') > 0) {
|
||
|
path = path.substring(0, path.indexOf('#'));
|
||
|
}
|
||
|
path = path.substring(path.lastIndexOf('/') + 1);
|
||
|
srcPath = 'https://github.com/videojs/video.js/blob/master/docs/guides/' + path;
|
||
|
srcPath2 = 'https://github.com/videojs/docs';
|
||
|
footer.setAttribute('class', 'footer');
|
||
|
srcLink.setAttribute('href', srcPath);
|
||
|
srcLink.appendChild(document.createTextNode('content source'));
|
||
|
srcLink2.setAttribute('href', srcPath2);
|
||
|
srcLink2.appendChild(document.createTextNode('doc generator'));
|
||
|
footer.innerHTML = 'Want to contribute? Go to the ';
|
||
|
footer.appendChild(srcLink);
|
||
|
footer.innerHTML += ' or the ';
|
||
|
footer.appendChild(srcLink2);
|
||
|
main.appendChild(footer);
|
||
|
}
|
||
|
|
||
|
setTitle();
|
||
|
buildSideNav();
|
||
|
fixLinks();
|
||
|
addFooter();
|
||
|
})();
|