Skip to content

Commit 3317dc0

Browse files
authored
Update about-hackeros.html
1 parent c124e3f commit 3317dc0

1 file changed

Lines changed: 244 additions & 5 deletions

File tree

about-hackeros.html

Lines changed: 244 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,90 @@
311311
margin-left: auto;
312312
margin-right: auto;
313313
}
314+
.hacker-lang-section h3 {
315+
font-size: 24px;
316+
margin: 20px 0 10px;
317+
color: #FFFFFF;
318+
}
319+
.hacker-lang-section ol, .hacker-lang-section ul {
320+
text-align: left;
321+
max-width: 800px;
322+
margin: 0 auto 20px;
323+
color: #B0B0B0;
324+
}
325+
.hacker-lang-section ol li, .hacker-lang-section ul li {
326+
margin-bottom: 10px;
327+
}
328+
.hacker-lang-section pre {
329+
background-color: #1A1A1A;
330+
padding: 10px;
331+
border-radius: 5px;
332+
font-family: 'Courier New', Courier, monospace;
333+
color: #B0B0B0;
334+
text-align: left;
335+
max-width: 800px;
336+
margin: 0 auto 20px;
337+
overflow-x: auto;
338+
}
339+
.tabs-container {
340+
display: flex;
341+
max-width: 800px;
342+
margin: 0 auto;
343+
background-color: #1A1A1A;
344+
border-radius: 8px;
345+
overflow: hidden;
346+
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
347+
}
348+
.tab-menu {
349+
width: 200px;
350+
background-color: #121212;
351+
padding: 20px;
352+
border-right: 1px solid #2F3A44;
353+
}
354+
.tab-menu ul {
355+
list-style: none;
356+
}
357+
.tab-menu li {
358+
margin-bottom: 15px;
359+
cursor: pointer;
360+
padding: 10px;
361+
border-radius: 5px;
362+
transition: background-color 0.3s, color 0.3s;
363+
color: #B0B0B0;
364+
font-weight: bold;
365+
}
366+
.tab-menu li:hover {
367+
background-color: #2F3A44;
368+
color: #FFFFFF;
369+
}
370+
.tab-menu li.active {
371+
background-color: #2F3A44;
372+
color: #FFFFFF;
373+
}
374+
.tab-content {
375+
flex: 1;
376+
padding: 20px;
377+
text-align: left;
378+
}
379+
.tab-pane {
380+
display: none;
381+
}
382+
.tab-pane.active {
383+
display: block;
384+
}
385+
.tab-pane h3 {
386+
font-size: 24px;
387+
margin-bottom: 15px;
388+
color: #FFFFFF;
389+
}
390+
.tab-pane p, .tab-pane ul, .tab-pane ol {
391+
color: #B0B0B0;
392+
}
393+
.tab-pane img {
394+
max-width: 100%;
395+
border-radius: 10px;
396+
margin-top: 20px;
397+
}
314398
.hacker-kernel-section {
315399
max-width: 1200px;
316400
margin: 50px auto;
@@ -384,6 +468,21 @@
384468
.hacker-lang-section p {
385469
font-size: 16px;
386470
}
471+
.tabs-container {
472+
flex-direction: column;
473+
}
474+
.tab-menu {
475+
width: 100%;
476+
border-right: none;
477+
border-bottom: 1px solid #2F3A44;
478+
}
479+
.tab-menu ul {
480+
display: flex;
481+
justify-content: space-around;
482+
}
483+
.tab-menu li {
484+
margin-bottom: 0;
485+
}
387486
.hacker-kernel-section {
388487
padding: 20px;
389488
}
@@ -460,8 +559,14 @@
460559
gamingPs[0].innerHTML = 'Gaming on Windows games on HackerOS is possible thanks to a tool called Proton (90% of games work). Unfortunately, some online games, e.g., Fortnite, are blocked on Linux HackerOS. You can find more information on: <a href="https://www.protondb.com" target="_blank" class="protondb">ProtonDB</a>, <a href="https://areweanticheatyet.com" target="_blank" class="anticheat">Are We Anti-Cheat Yet?</a>.';
461560
gamingPs[1].textContent = 'By default, it uses the XanMod kernel.';
462561
gamingPs[2].innerHTML = 'You can see how HackerOS handles games: <a href="https://www.youtube.com/channel/UCwYT5jqUhZHoRhNKOrjKTrQ" target="_blank" class="youtube">YouTube</a>.';
463-
document.querySelector('.hacker-lang-section h2').textContent = 'Hacker Programming Language';
464-
document.querySelector('.hacker-lang-section p').textContent = 'HackerOS features its own scripting programming language called Hacker. To use this tool, simply run the command "hackerc".';
562+
document.querySelector('.hacker-lang-section h2').textContent = 'Programming Languages HackerOS';
563+
// Update tab menu and content for English
564+
document.querySelectorAll('.tab-menu li')[0].textContent = 'Hacker Lang';
565+
document.querySelectorAll('.tab-menu li')[1].textContent = 'HackerScript';
566+
const tabPanes = document.querySelectorAll('.tab-pane');
567+
tabPanes[0].querySelector('h3').textContent = 'Hacker Lang Programming Language';
568+
tabPanes[0].querySelector('p:first-of-type').textContent = 'Syntax description:';
569+
// Similarly update other texts in tabPanes[0] and tabPanes[1] for English if needed
465570
document.querySelector('.hacker-kernel-section h2').textContent = 'Hacker Kernel';
466571
const kernelPs = document.querySelectorAll('.hacker-kernel-section p');
467572
kernelPs[0].innerHTML = 'Do you want to develop the hacker kernel? Report to gmail hackeros068@gmail.com or to <a href="https://github.com/HackerOS-Linux-System/HackerOS-Website/issues">issues</a> or <a href="https://github.com/HackerOS-Linux-System/HackerOS-Website/discussions">discussions</a> (apply if you want to actively develop this project)';
@@ -476,6 +581,17 @@
476581
});
477582
});
478583
});
584+
// Tab switching logic
585+
const tabLinks = document.querySelectorAll('.tab-link');
586+
const tabPanes = document.querySelectorAll('.tab-pane');
587+
tabLinks.forEach(link => {
588+
link.addEventListener('click', () => {
589+
tabLinks.forEach(l => l.classList.remove('active'));
590+
link.classList.add('active');
591+
tabPanes.forEach(p => p.classList.remove('active'));
592+
document.getElementById(link.dataset.tab).classList.add('active');
593+
});
594+
});
479595
});
480596
</script>
481597
</head>
@@ -597,9 +713,132 @@ <h2>Granie na HackerOS</h2>
597713
</div>
598714
</section>
599715
<section class="hacker-lang-section">
600-
<h2>Język Programowania Hacker</h2>
601-
<p>HackerOS posiada własny skryptowy język programowania o nazwie Hacker. Aby korzystać z tego narzędzia, użyj komendy <span style="font-family: 'Courier New', Courier, monospace;">hackerc</span> lub dla większych projektów <span style="font-family: 'Courier New', Courier, monospace;">hli</span> oraz do instalacji bibliotek <span style="font-family: 'Courier New', Courier, monospace;">bytes</span>.</p>
602-
<img src="hacker-lang-screenshot.png" alt="Hacker Language Screenshot">
716+
<h2>Języki programowania HackerOS</h2>
717+
<div class="tabs-container">
718+
<div class="tab-menu">
719+
<ul>
720+
<li class="tab-link active" data-tab="hacker-lang">Hacker Lang</li>
721+
<li class="tab-link" data-tab="hacker-script">HackerScript</li>
722+
</ul>
723+
</div>
724+
<div class="tab-content">
725+
<div id="hacker-lang" class="tab-pane active">
726+
<h3>Język Programowania Hacker Lang</h3>
727+
<p>Opis składni:</p>
728+
<ol>
729+
<li>Podstawowe operatory (Prefiksy)<br>Każda linia zaczyna się od symbolu definiującego jej przeznaczenie:
730+
<ul>
731+
<li>* > – Zwykła komenda systemowa.</li>
732+
<li>* >> – Komenda z obsługą zmiennych.</li>
733+
<li>* >>> – Komenda wykonywana jako oddzielny plik/proces.</li>
734+
<li>* & – Uruchomienie komendy w tle (background).</li>
735+
<li>* ^ – (Modyfikator) Dodany przed operatorem (np. ^>) wymusza użycie sudo.</li>
736+
<li>* !! – Blokowy komentarz (przełącznik: włącz/wyłącz).</li>
737+
<li>* \\ – Ładowanie pluginu.</li>
738+
</ul>
739+
</li>
740+
<li>Zarządzanie zmiennymi i typowanie<br>Język obsługuje typy: int, bool, str, list (składnia [a,b]), dict (składnia {k:v}).
741+
<ul>
742+
<li>* @nazwa:typ = wartość – Zmienna globalna.</li>
743+
<li>* $nazwa:typ = wartość – Zmienna lokalna.</li>
744+
<li>* $nazwa – Odwołanie do zmiennej wewnątrz komend lub funkcji.</li>
745+
</ul>
746+
</li>
747+
<li>Funkcje i Biblioteki
748+
<ul>
749+
<li>* :nazwa(param:typ=default) – Definicja funkcji.</li>
750+
<li>* : – Zakończenie bloku funkcji.</li>
751+
<li>* .nazwa(argumenty) – Wywołanie funkcji.</li>
752+
<li>* #prefiks:nazwa – Import bibliotek zewnętrznych:</li>
753+
<li> * #rust:..., #python:..., #java:... – Biblioteki językowe.</li>
754+
<li> * #bytes:... – Inne skrypty Hacker Lang (szuka pliku main.hacker).</li>
755+
<li>* // – Deklaracja zależności systemowych (system deps).</li>
756+
</ul>
757+
</li>
758+
<li>Struktury sterujące<br>Język mapuje specyficzne skróty na konstrukcje powłoki:
759+
<ul>
760+
<li>* Pętle: =liczba > komenda (wykonuje komendę określoną liczbę razy).</li>
761+
<li>* Warunki: ?warunek > komenda (generuje if warunek; then komenda; fi).</li>
762+
<li>* Foreach: %lista > komenda (iteracja po elementach listy).</li>
763+
<li>* Try-Catch: T> try C> catch F> finally (obsługa błędów wykonania).</li>
764+
</ul>
765+
</li>
766+
<li>Konfiguracja
767+
<ul>
768+
<li>* [ oraz ] – Sekcja konfiguracyjna (klucz = wartość), parsująca ustawienia do słownika config_data.</li>
769+
</ul>
770+
</li>
771+
</ol>
772+
<p>Komendy/narzędzia CLI:</p>
773+
<ul>
774+
<li>hl - główne narzędzie Hacker Lang - kompiluj/uruchamiaj programy w .hk lub .hacker</li>
775+
<li>hli - interfejs dla narzędzia hl - zainstaluj za pomocą hacker unpack hl-utils</li>
776+
<li>hlh - informacje o narzędziach cli + informacje o Hacker Lang</li>
777+
<li>bytes - manager bibliotek dla Hacker Lang</li>
778+
</ul>
779+
<img src="hacker-lang-screenshot.png" alt="Hacker Lang Screenshot">
780+
</div>
781+
<div id="hacker-script" class="tab-pane">
782+
<h3>Język programowania HackerScript</h3>
783+
<p>Przykładowa składnia:</p>
784+
<ol>
785+
<li>Struktura i Importy
786+
<ul>
787+
<li>* Dyrektywy: --- automatic --- (domyślne zarządzanie pamięcią) lub --- manual ---.</li>
788+
<li>* Importy: * import <c:stdio> (biblioteki systemowe C).</li>
789+
<li> * import <virus:nmap> (lokalne moduły .hcs).</li>
790+
</ul>
791+
</li>
792+
<li>Zmienne i Typy
793+
<ul>
794+
<li>* Typowanie: Dynamiczne/Inferred (kompilator sam zgaduje typy: int, char*, Array, struct).</li>
795+
<li>* Literały: * tekst = "Hacker" (Stringi).</li>
796+
<li> * liczba = 100 (Integery).</li>
797+
<li> * lista = ["a", "b"] (Tablice).</li>
798+
<li>* Interpolacja: "Wartość: {zmienna}" (Automatyczne formatowanie tekstu).</li>
799+
</ul>
800+
</li>
801+
<li>Programowanie Obiektowe (OOP)
802+
<ul>
803+
<li>* Klasy: Definiowane za pomocą class Nazwa [ ... ].</li>
804+
<li>* Metody: Pierwszy parametr to zawsze self.</li>
805+
<li>* Tworzenie obiektów: obj = new Klasa().</li>
806+
<li>* Dostęp do pól: self.pole = wartość (Działa jak struktury w C).</li>
807+
</ul>
808+
</li>
809+
<li>Kontrola Przepływu
810+
<ul>
811+
<li>* Bloki kodu: Zawsze w nawiasach kwadratowych [...].</li>
812+
<li>* Instrukcje warunkowe: if expr [...] else if expr [...] else [...].</li>
813+
<li>* Pętle: for element in kolekcja [...] (Iteracja po tablicach).</li>
814+
</ul>
815+
</li>
816+
<li>Funkcje i System
817+
<ul>
818+
<li>* Definicja: func nazwa(paramy) [ return wartość ].</li>
819+
<li>* Funkcja Main: func main(args) [...] – punkt startowy programu.</li>
820+
<li>* Wbudowane:</li>
821+
<li> * log "msg" – Wypisywanie do konsoli.</li>
822+
<li> * curl_get(url) – Żądania HTTP.</li>
823+
<li> * allocate(size) / deallocate(ptr) – Zarządzanie pamięcią.</li>
824+
</ul>
825+
</li>
826+
</ol>
827+
<p>Narzędzia/komendy:</p>
828+
<ul>
829+
<li>virus - kompiluj programy napisane w .hcs do binarki (wszystkie narzędzia hackerscript możesz zainstalować za pomocą hacker unpack hackerscript)</li>
830+
</ul>
831+
<p>Jakie repozytoria biblioteki obsługuje HackerScript:</p>
832+
<ul>
833+
<li>virus - zamknięte repo zwykły użytkownik nie może dawać tu własnych bibliotek jest to repo zarządzane przez wybranych ludzi</li>
834+
<li>vira - otwarte repo każdy użytkownik może tu dawać biblioteki</li>
835+
<li>HackerScript obsługuje również biblioteki c i c++</li>
836+
</ul>
837+
<p>Jakie pliki posiada HackerOS - do konfiguracji projektu używaj pliku Virus.hcs, gdzie znajdę kod źródłowy HackerScript w /cmd, jaki format plików ma HackerScript ? Posiada .hcs co oznacza ten skrót ? Hacker C Script</p>
838+
<img src="hackerscript-screenshot.png" alt="HackerScript Screenshot">
839+
</div>
840+
</div>
841+
</div>
603842
</section>
604843
<section class="hacker-kernel-section">
605844
<h2>Hacker Kernel</h2>

0 commit comments

Comments
 (0)