1// config.js - Central configuration for site structure and navigation 2 3const SiteConfig = (function() { 4 'use strict'; 5 6 // Menu configuration with semantic names 7 const menuConfig = { 8 home: { 9 id: 'home', 10 sections: ['goal', 'news', 'supervise'], // Sections visible on home 11 icon: 'fa fa-home', 12 iconSize: '22px', 13 label: 'Home' 14 }, 15 publications: { 16 id: 'publications', 17 sections: ['pubWrapper'], 18 icon: 'fa fa-book', 19 iconSize: '19px', 20 label: 'Publications' 21 }, 22 service: { 23 id: 'service', 24 sections: ['activities'], 25 icon: 'fa fa-briefcase', 26 iconSize: '17px', 27 label: 'Service' 28 }, 29 teaching: { 30 id: 'teaching', 31 sections: ['teaching'], 32 icon: 'fa fa-chalkboard-teacher', 33 iconSize: '15px', 34 label: 'Teaching & Talks' 35 }, 36 awards: { 37 id: 'awards', 38 sections: ['awards'], 39 icon: 'fa fa-award', 40 iconSize: '20px', 41 label: 'Awards' 42 } 43 }; 44 45 // All section IDs in the site 46 const allSections = ['goal', 'news', 'supervise', 'pubWrapper', 'activities', 'teaching', 'awards']; 47 48 // Get menu item by ID 49 function getMenuItem(menuId) { 50 return menuConfig[menuId]; 51 } 52 53 // Get all menu items in order 54 function getAllMenuItems() { 55 return Object.values(menuConfig); 56 } 57 58 // Get sections to show for a given menu 59 function getSectionsForMenu(menuId) { 60 const item = menuConfig[menuId]; 61 return item ? item.sections : []; 62 } 63 64 // Get all section IDs 65 function getAllSections() { 66 return allSections; 67 } 68 69 // Public API 70 return { 71 getMenuItem, 72 getAllMenuItems, 73 getSectionsForMenu, 74 getAllSections 75 }; 76})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.