esp-idf/docs/_static/js/version_table.js
2023-08-07 09:13:35 +08:00

82 lines
2.6 KiB
JavaScript

$(document).ready(function() {
let version = DOCUMENTATION_OPTIONS.VERSION;
let language = DOCUMENTATION_OPTIONS.LANGUAGE;
let idf_target = DOCUMENTATION_OPTIONS.IDF_TARGET;
let pagename = DOCUMENTATION_OPTIONS.PAGENAME + ".html";
let defaults = DOCUMENTATION_VERSIONS.DEFAULTS;
let versions = DOCUMENTATION_VERSIONS.VERSIONS;
/* Apply the defaults to each version, where needed */
for (let i = 0; i < versions.length; i++) {
let v = versions[i];
for (let d in defaults) {
if (!(d in v)) {
v[d] = defaults[d];
}
}
}
/* Find the (relative) base URL for this project, finding a sibling URL will be built as follows:
<project_base_url>/<language>/<version>/<idf_target>
(Where 'idf_target' path element are optional depending on if the project has multiple target support)
*/
let project_base_url = DOCUMENTATION_OPTIONS.URL_ROOT + "../../..";
if (DOCUMENTATION_OPTIONS.IDF_TARGETS) {
project_base_url += "/..";
}
/* Given a version from the list, return the URL to link to it */
function getVersionUrl(v) {
let result = project_base_url + "/" + language + "/" + v.name;
if (v.has_targets) {
result += "/" + (idf_target || "esp32");
}
return result + "/";
};
function getReleaseNotesUrl(v){
if (v.name.indexOf("release") !== 0) {
let releaseNotesUrl = "https://github.com/espressif/esp-idf/releases/tag/" + v.name;
return releaseNotesUrl;
}
}
old_ver_table = "";
old_ver_table_row = "<tr>"
let row_items = 0;
const ITEMS_PER_ROW = 3;
for (let i = 0; i < versions.length; i++) {
let v = versions[i];
let url = getVersionUrl(v);
let releaseNotesUrl = getReleaseNotesUrl(v);
if (v.old) {
if (releaseNotesUrl){
old_ver_table_row += "<td><a href=\"" + url + "\">" + v.name + "&nbsp;-&nbsp;<a href=\"" + releaseNotesUrl + "\">Release Notes</a></td>";
} else {
old_ver_table_row += "<td><a href=\"" + url + "\">" + v.name + "</td>";
}
row_items++;
if (row_items === ITEMS_PER_ROW) {
old_ver_table_row += "</tr>";
old_ver_table += old_ver_table_row;
/* Prepare a new row */
old_ver_table_row = "<tr>"
row_items = 0
}
}
}
old_ver_table_row += "</tr>";
old_ver_table += old_ver_table_row;
$( "#version_table" ).append(old_ver_table);
});