mirror of https://github.com/axmolengine/axmol.git
89 lines
3.2 KiB
JavaScript
89 lines
3.2 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
var url_re = /(axmol\.dev\/manual\/)(latest|(\d\.\d+|\d\.\d+\.\d+)(-beta\d)?)\//;
|
|
var url_local = /docs\/dist\/manual\/(latest|(\d\.\d+|\d\.\d+\.\d+)(-beta\d)?)\//;
|
|
var current_version_local = '@VERSION@'
|
|
var all_versions = [
|
|
@VERLIST@
|
|
];
|
|
|
|
function build_select(current_version) {
|
|
if( current_version == 'latest') {
|
|
let top_elt = document.getElementById("top");
|
|
|
|
let first_element = top_elt.childNodes[0];
|
|
let new_div = document.createElement("p");
|
|
new_div.innerHTML = '⚠️ This documentation corresponds to the <a style="font-familly: monospace;" href="https://github.com/axmolengine/axmol/tree/dev">latest</a> development branch of axmol. It might diverge from the official releases.';
|
|
new_div.style.cssText = "background-color: #ff9800; margin: 1ex auto 1ex 1em; padding: 1ex; border-radius: 1ex; display: inline-block;"
|
|
let OK = top_elt.insertBefore(new_div, first_element);
|
|
}
|
|
var buf = ['<select>'];
|
|
$.each(all_versions, function(id) {
|
|
var version = all_versions[id];
|
|
buf.push('<option value="' + version + '"');
|
|
if (version == current_version) {
|
|
buf.push(' selected="selected">' + version);
|
|
} else {
|
|
buf.push('>' + version);
|
|
}
|
|
buf.push('</option>');
|
|
});
|
|
if ( !all_versions.includes(current_version)) {
|
|
buf.push('<option value="' + current_version + '"');
|
|
buf.push(' selected="selected">' + current_version);
|
|
buf.push('</option>');
|
|
}
|
|
buf.push('</select>');
|
|
return buf.join('');
|
|
}
|
|
|
|
function patch_url(url, new_version) {
|
|
if(url.includes("axmol.dev")){
|
|
return url.replace(url_re, 'axmol.dev/manual/' + new_version + '/');
|
|
}
|
|
else {
|
|
return url.replace(url_local, 'docs/dist/manual/' + new_version + '/');
|
|
}
|
|
}
|
|
|
|
function on_switch() {
|
|
var selected = $(this).children('option:selected').attr('value');
|
|
var url = window.location.href,
|
|
new_url = patch_url(url, selected);
|
|
if (new_url != url) {
|
|
window.location.href = new_url;
|
|
}
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
var motherNode=$("#back-nav ul")[0];
|
|
var node = document.createElement("LI");
|
|
var spanNode = document.createElement("SPAN");
|
|
var titleNode =document.createTextNode("axmol Version: ");
|
|
var textNode = document.createTextNode("x.y");
|
|
spanNode.setAttribute("class", "version_menu");
|
|
spanNode.appendChild(textNode);
|
|
node.appendChild(titleNode);
|
|
node.appendChild(spanNode);
|
|
motherNode.insertBefore(node, motherNode.firstChild);
|
|
$("#back-nav").css("padding-top", "0").css("padding-bottom", "0");
|
|
var match = url_re.exec(window.location.href);
|
|
if (match) {
|
|
var version = match[2];
|
|
var select = build_select(version);
|
|
spanNode.innerHTML=select;
|
|
$('.version_menu select').bind('change', on_switch);
|
|
}
|
|
else {
|
|
match = url_local.exec(window.location.href);
|
|
if (match) {
|
|
var version = current_version_local;
|
|
var select = build_select(version);
|
|
spanNode.innerHTML=select;
|
|
$('.version_menu select').bind('change', on_switch);
|
|
}
|
|
}
|
|
});
|
|
})();
|