function render(url,id)
{const div = document.getElementById(id)var request = new XMLHttpRequest()request.open("get",url)request.send()var data = request.responseTextvar ini = parseIni(data)generateHTML(ini,div)}
function parseIni(data) {var regex = {section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,comment: /^\s*;.*$/};var value = {};var lines = data.split(/\r\n|\r|\n/);var section = null;lines.forEach(function (line) {if (regex.comment.test(line)) {return;} else if (regex.param.test(line)) {var match = line.match(regex.param);if (section) {value[section][match[1]] = match[2];} else {value[match[1]] = match[2];}} else if (regex.section.test(line)) {var match = line.match(regex.section);value[match[1]] = {};section = match[1];} else if (line.length === 0 && section) {section = null;}});return value;
}
function generateHTML(ini,root) {var container = document.createElement('div');container.id = 'ini-container';for (var section in ini) {if (ini.hasOwnProperty(section)) {var sectionDiv = document.createElement('div');sectionDiv.className = 'section';var sectionHeader = document.createElement('h2');sectionHeader.textContent = section;sectionDiv.appendChild(sectionHeader);var paramsDiv = document.createElement('div');paramsDiv.className = 'params';for (var param in ini[section]) {if (ini[section].hasOwnProperty(param)) {var paramDiv = document.createElement('div');paramDiv.className = 'param';var paramName = document.createElement('span');paramName.className = 'param-name';paramName.textContent = param + ': ';var paramValue = document.createElement('span');paramValue.className = 'param-value';paramValue.textContent = ini[section][param];paramDiv.appendChild(paramName);paramDiv.appendChild(paramValue);paramsDiv.appendChild(paramDiv);}}sectionDiv.appendChild(paramsDiv);container.appendChild(sectionDiv);}}root.appendChild(container)
}