split javascript file into multiple
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { loadContent, loadImageConfig } from "./core/data.js";
|
||||
import { detectLanguage, setupLanguageDropdown } from "./ui/language.js";
|
||||
import { setupThemeToggle } from "./ui/theme.js";
|
||||
import { createNavbar, setupMobileNavbar, hideMobileNavbar } from "./ui/navbar.js";
|
||||
import { setupScrollRestoration, restoreScroll, setupScrollSpy } from "./ui/scroll.js";
|
||||
import { renderSidebarTop } from "./sections/sidebar.js";
|
||||
import { renderIntroduction } from "./sections/introduction.js";
|
||||
import { renderWork } from "./sections/work.js";
|
||||
import { renderProjects } from "./sections/projects.js";
|
||||
|
||||
const lang = detectLanguage();
|
||||
|
||||
// Each control exists twice: sidebar (desktop) and mobile bar.
|
||||
setupThemeToggle("themeToggle", ["themeToggle2"]);
|
||||
setupThemeToggle("themeToggle2", ["themeToggle"]);
|
||||
setupLanguageDropdown(lang, "lang-button", "lang-menu", "lang-dropdown");
|
||||
setupLanguageDropdown(lang, "lang-button2", "lang-menu2", "lang-dropdown2");
|
||||
|
||||
setupScrollRestoration();
|
||||
|
||||
async function init() {
|
||||
const data = await loadContent(lang);
|
||||
const imageConfig = await loadImageConfig();
|
||||
|
||||
document.getElementById("website_title").textContent = data.title_website;
|
||||
|
||||
setupMobileNavbar();
|
||||
const navbar = createNavbar();
|
||||
const container = document.getElementById("projects-section");
|
||||
|
||||
renderSidebarTop(data);
|
||||
renderIntroduction(data, navbar);
|
||||
renderWork(container, navbar, data);
|
||||
renderProjects(container, navbar, data, imageConfig);
|
||||
|
||||
restoreScroll();
|
||||
setupScrollSpy();
|
||||
hideMobileNavbar();
|
||||
}
|
||||
|
||||
init();
|
||||
Reference in New Issue
Block a user