-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsidebar.js
More file actions
57 lines (53 loc) · 3.91 KB
/
Copy pathsidebar.js
File metadata and controls
57 lines (53 loc) · 3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(function(){'use strict';try{
if(document.getElementById('hamburger'))return;
var isOpen=false,sidebar,overlay,hamburger;
function init(){
var header=document.querySelector('.header-content');
if(!header||document.getElementById('hamburger'))return;
hamburger=document.createElement('button');
hamburger.id='hamburger';
hamburger.setAttribute('aria-label','Menu');
hamburger.setAttribute('aria-expanded','false');
hamburger.innerHTML='<span></span><span></span><span></span>';
hamburger.addEventListener('click',function(e){e.preventDefault();toggle();});
header.appendChild(hamburger);
overlay=document.createElement('div');
overlay.id='sidebar-overlay';
overlay.addEventListener('click',close);
document.body.appendChild(overlay);
sidebar=document.createElement('div');
sidebar.id='sidebar';
sidebar.setAttribute('role','dialog');
sidebar.setAttribute('aria-label','Site navigation');
var sidebarLinks=[
{href:'index.html',label:'Home',icon:'bi-house'},
{href:'flash.html',label:'Downloads',icon:'bi-download'},
{href:'wiki.html',label:'Wiki',icon:'bi-book'},
{href:'about.html',label:'About',icon:'bi-info-circle'},
{href:'status.html',label:'Status',icon:'bi-activity'},
{href:'newsletter.html',label:'Newsletter',icon:'bi-envelope'},
{href:'contact.html',label:'Contact',icon:'bi-envelope-paper'},
{href:'hosting.html',label:'ISO Hosting',icon:'bi-hdd-stack'},
{href:'unofficial.html',label:'Community Editions',icon:'bi-grid'},
{href:'git-tracker.html',label:'Git Tracker',icon:'bi-git'},
{href:'https://github.com/AcreetionOS-Code',label:'GitHub',icon:'bi-github'},
{href:'https://gitlab.acreetionos.org',label:'GitLab',icon:'bi-gitlab'},
{href:'https://github.com/AcreetionOS-Code/acreetionos-code.github.io/issues',label:'Issues',icon:'bi-bug'},
{href:'https://security.archlinux.org',label:'Security',icon:'bi-shield-check'},
];
var links='';
for(var i=0;i<sidebarLinks.length;i++){
var l=sidebarLinks[i];
links+='<li><a href="'+l.href.replace(/&/g,'&').replace(/"/g,'"')+'"><i class="bi '+l.icon+'" style="width:1.3rem;text-align:center"></i> '+l.label+'</a></li>';
}
var externalSection='<div class="sidebar-section-title">External</div><div class="sidebar-external"><a href="https://flatfree.acreetionos.org" target="_blank" rel="noopener" class="sidebar-external-btn"><i class="bi bi-box"></i> FlatFree</a></div>';
sidebar.innerHTML='<div class="sidebar-body"><ul>'+links+'</ul>'+externalSection+'</div><div class="sidebar-authors"><a href="https://darren.acreetionos.org" target="_blank" rel="noopener" class="sidebar-author-link"><img src="darren_avatar_new.png" alt="Darren Clift" class="sidebar-author-avatar"> Darren</a><a href="https://natalie.acreetionos.org" target="_blank" rel="noopener" class="sidebar-author-link"><img src="natalie_avatar_new.png" alt="Natalie Cole-Clift Spiva" class="sidebar-author-avatar"> Natalie</a></div><div class="sidebar-footer"><a href="https://discord.gg/VHqQkJASw7" target="_blank" rel="noopener">Discord</a><a href="contact.html">Contact</a></div>';
document.body.appendChild(sidebar);
}
function toggle(){if(isOpen){close();}else{open();}}
function open(){isOpen=true;document.body.classList.add('sidebar-open');if(hamburger){hamburger.classList.add('active');hamburger.setAttribute('aria-expanded','true');}if(sidebar){sidebar.classList.add('open');}}
function close(){isOpen=false;document.body.classList.remove('sidebar-open');if(hamburger){hamburger.classList.remove('active');hamburger.setAttribute('aria-expanded','false');}if(sidebar){sidebar.classList.remove('open');}}
document.addEventListener('keydown',function(e){if(e.key==='Escape'&&isOpen)close();});
window.addEventListener('pageshow',function(){document.body.classList.remove('sidebar-open');});
if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init);}else{init();}
}catch(e){console.error('Sidebar init error:',e);}})();