48 Commits

Author SHA1 Message Date
79eb010fa5 Implement language-specific content system
- Rename guide files: nl.md → nl.codepress.md, en.md → uk.codepress.md
- Add language filtering in scanDirectory() for nl.* and uk.* files/folders
- Update formatDisplayName() to remove language prefixes from display names
- Update getGuidePage() to use new naming convention (en → uk mapping)
- Content with nl. prefix only shows when Dutch language is selected
- Content with uk. prefix only shows when English language is selected
2025-11-22 16:14:59 +01:00
9bb21579f7 Fix guide content language and language switcher context
- Change getGuidePage() to use currentLanguage instead of detectLanguage()
- Add lang_switch_url template variable for proper context-aware switching
- Language switcher now stays on guide page when switching languages
- Guide content now displays in correct language based on URL parameter
2025-11-22 16:05:33 +01:00
d95ef42783 Fix language persistence for guide link and navbar brand
- Add lang parameter to guide link in footer template
- Add lang parameter to navbar brand link in header template
- Ensures language selection persists when clicking logo or guide icon
- Completes language persistence across all navigation elements
2025-11-22 15:59:27 +01:00
2d934702cd Fix language persistence across navigation and breadcrumbs
- Add lang parameter to all navigation links in scanDirectory method
- Update homepage link in navigation template to include current language
- Fix breadcrumb navigation to preserve language parameter
- Ensure language selection persists when clicking any navigation element
2025-11-22 15:54:40 +01:00
ceeeb5e7b3 Add empty content directory to Git
- Added content/.gitkeep to track empty content directory
- Updated .gitignore to allow .gitkeep but ignore other content files
- Ensures content/ directory is visible on Git server
- Maintains security by ignoring actual content files
2025-11-22 15:45:26 +01:00
0d8e02ae4b Merge branch 'development' 2025-11-22 15:42:19 +01:00
efd9e0b9ff Remove old public/content/ directory from Git
- Deleted all files from public/content/ that were tracked
- Content is now stored in content/ directory (ignored by .gitignore)
- Improves security by keeping content outside web root
- Matches new directory structure
2025-11-22 15:42:09 +01:00
32c8cf9385 Merge branch 'development' 2025-11-22 15:35:04 +01:00
db39995f7e Update .gitignore: ignore content/ directory instead of public/content/
- Changed from 'public/content/*' to 'content/'
- Matches new content directory structure outside web root
- Improves security by keeping content separate from public files
2025-11-22 15:34:55 +01:00
0ef42c120e Merge branch 'development' 2025-11-22 15:30:06 +01:00
a2b7fcb1a8 ## Complete Multi-language System & Navigation Enhancement
### Features Added:
- **Multi-language Support**: Dutch/English with URL-based switching (?lang=nl|en)
- **Theme Customization**: Configurable header/navigation colors via config.json
- **Navigation Improvements**: Active states, dropdown chevron icons, visual distinction
- **Mobile Responsive**: Separate desktop/mobile search layouts
- **Template System**: Fixed rendering pipeline for all partials

### Technical Fixes:
- Fixed language file path (engine/lang/ vs engine/core/class/../lang/)
- Added template data rendering to layout template
- Implemented navigation active state for default/home page
- Added chevron icons to dropdown folders for visual distinction
- Removed hardcoded navigation opacity class for theme colors

### Files Modified:
- config.json: Added theme and language configuration
- engine/core/class/CodePressCMS.php: Multi-language and navigation logic
- engine/templates/: Enhanced header, footer, navigation, layout
- engine/lang/: Dutch and English translation files
- public/assets/css/mobile.css: Mobile responsive fixes

### Result:
Fully functional multi-language CMS with proper navigation states and theme customization.
2025-11-22 15:29:47 +01:00
e4047aaf09 Merge branch 'development' 2025-11-21 20:23:36 +01:00
863661612a ## Major CodePress CMS Enhancement
### 🚀 New Features
- **League CommonMark Integration**: Replaced basic Markdown parser with full CommonMark 2.7 support
- **Bootstrap Sass Architecture**: Modern SCSS build system with Bootstrap 5.3.8
- **Enhanced Navigation**: Uses filenames instead of H1 titles for consistency
- **Improved Styling**: Transparent navigation backgrounds, no rounded corners

### 🎨 UI/UX Improvements
- Navigation items now use formatted filenames (e.g., "kennis-boven-aantallen" → "Kennis Boven Aantallen")
- Transparent navigation backgrounds with subtle hover effects
- Removed rounded corners from first-level navigation
- 50% opacity navigation background using Bootstrap variables

### 🔧 Technical Improvements
- **Class Organization**: Extracted CodePressCMS and SimpleTemplate to separate files
- **Full PHPDoc Documentation**: Complete documentation for all methods
- **Modern Build Process**: npm scripts for SCSS compilation
- **Enhanced Markdown Support**: Tables, strikethrough, task lists, autolinks
- **Security**: Proper HTML sanitization with CommonMark

### 📦 Dependencies
- Added `league/commonmark` for professional Markdown parsing
- Added `bootstrap` for SCSS-based styling
- Updated `sass` build process

### 🐛 Bug Fixes
- Fixed content directory path configuration
- Resolved navigation title inconsistencies
- Improved Markdown bold/italic formatting
- Fixed homepage 404 issues

### 🔄 Migration Notes
- Content directory moved from `content/` to `public/content/`
- Navigation now displays filenames instead of content H1 titles
- CSS now compiled from SCSS source files

The CMS now provides a professional, modern experience with robust Markdown support and clean, maintainable code architecture.
2025-11-21 20:23:20 +01:00
dfe2df141b Complete CodePress CMS refactoring
- 🏠 Refactored layout system with flexbox
- 🎨 Implemented tab-style navigation with dropdowns
- 📱 Added responsive design with mobile support
- 🔧 Enhanced template system with content type detection
- 📝 Added comprehensive documentation (guide.md, README.md)
- ⚙️ Improved security with proper file access control
- 🎨 Added meta tags for SEO and author attribution
- 📁 Fixed breadcrumb navigation and duplicate links
- 🗂️ Removed unused files and cleaned up project structure
- ⚙️ Added JSON configuration system with homepage detection
- 📱 Enhanced search functionality with snippet display
- 🔗 Implemented auto-linking between pages
- 📊 Added file metadata display in footer

Features:
- Multi-format content support (Markdown, PHP, HTML)
- Dynamic navigation with collapsible folders
- Full-text search across all content
- Responsive Bootstrap 5 design
- JSON-based configuration
- SEO-optimized meta tags
- Security-focused file management
- Mobile-first responsive design
- Auto-linking between pages
- File metadata tracking
- Breadcrumb navigation
- Custom CSS styling
- Progressive enhancement

Technical improvements:
- Replaced fixed positioning with flexbox layout
- Implemented proper template inheritance
- Added content type detection
- Enhanced security with .htaccess
- Optimized for performance
- Added proper error handling
- Implemented caching mechanisms
- Enhanced accessibility features
2025-11-21 16:58:37 +01:00
a86809c243 Refactor: Replace sidebar with horizontal navigation bar
- Remove sidebar and toggle functionality
- Add Bootstrap navbar with dropdown menus
- Move navigation to top between header and content
- Update menu rendering for Bootstrap dropdowns
- Clean up unused files (header.mustache, sidebar.mustache, sidebar.js)
- Add guide link with book icon in footer
- Simplify layout structure
- Remove duplicate code and fix syntax errors
- Add .gitignore for node_modules and other temp files
2025-11-21 14:23:41 +01:00
704cd0ff0c Merge branch 'e.noorlander' 2025-11-19 18:07:15 +01:00
0f1c7234b8 Implement modern sidebar navigation with hamburger menu
- Add responsive sidebar with hamburger toggle functionality
- Implement dual toggle buttons (inner/outer) for better UX
- Fix sidebar positioning to not overlap header and footer
- Add sticky footer with proper z-index layering
- Download and integrate Bootstrap source maps locally
- Optimize toggle icons: smaller, cleaner, no button styling
- Ensure sidebar respects footer boundaries
- Add smooth transitions and hover effects
- Fix active page highlighting and folder auto-expansion
- Create professional W3Schools-style navigation
- Maintain full offline capability with local assets
2025-11-19 18:02:48 +01:00
494ae7dc3b Restructure project for security and offline capability
- Move content outside public web root for security
- Consolidate all code and assets in engine/ directory
- Download Bootstrap locally for offline functionality
- Update public/ to contain only entry point files
- Add router.php for PHP development server security
- Update README.md with new structure and setup instructions
- Block direct access to content files via URL
- Maintain clean separation between content and code
2025-11-19 17:05:25 +01:00
277f86346d Enhance directory listing with article previews
- Replaced simple list with card-based layout
- Added article previews (title + excerpt)
- Removed rounded corners (rounded-0)
- Added 'Lees meer' button
- Improved visual hierarchy for folders vs files
2025-11-19 16:05:24 +01:00
8e781fcdc4 Enable directory browsing and clickable breadcrumbs
- Made all breadcrumb items clickable
- Added automatic directory listing generation for folders without index files
- Folders now show a list of their contents instead of 404
- Improved navigation UX by allowing browsing through folder structure
2025-11-19 16:02:18 +01:00
f2e06f3a75 Simplify icon design to </..> style
- Changed icon to minimalist </..> design
- Unified icon.svg and favicon.svg to be identical
- Improved readability at small sizes
- Removed text in favor of abstract dots representation
2025-11-19 15:52:09 +01:00
57fd9f303c Refine icon design for better readability
- Adjusted spacing between elements
- Balanced size of brackets and text
- Improved alignment of </CP> components
- Cleaner SVG path definitions
2025-11-19 15:31:13 +01:00
5f91e6c41c Update icon with larger CP text
- Increased font size of CP text to 16px
- Adjusted positioning for better balance
- Made brackets slightly wider
- Improved visual hierarchy of logo
2025-11-19 15:27:24 +01:00
fdf95cc233 Update footer with E.Noorlander link and new icons
- Added E.Noorlander link to footer pointing to https://noorlander.info
- Updated icons to new </CP> design (white/transparent)
- Improved footer attribution
2025-11-19 15:14:27 +01:00
7d3bc24e13 Fix sidebar collapse functionality
- Restored .sidebar.collapsed CSS class that was accidentally removed
- Sidebar toggle now works correctly with fixed header/footer layout
2025-11-19 15:10:14 +01:00
d948dd72a6 Make header and footer fixed
- Updated CSS layout to use flexbox for full-height layout
- Header and footer are now fixed (flex-shrink: 0)
- Main content area scrolls independently between header and footer
- Sidebar also scrolls independently
- Ensures header and footer are always visible
2025-11-19 15:08:20 +01:00
d1e6471502 Update footer link to point to CodePress repository
- Updated 'Powered by CodePress CMS' text to be a clickable link
- Link points to https://git.noorlander.info/E.Noorlander/CodePress
- Added target='_blank' and rel='noopener' for security
2025-11-19 15:02:25 +01:00
231c73c5af Fix breadcrumb navigation for directories
- Breadcrumb items for directories are now only clickable if an index file exists
- Prevents 404 errors when clicking on folder names in breadcrumb
- Non-clickable directory items are shown as active text
- Improves navigation UX and prevents broken links
2025-11-19 14:55:33 +01:00
a6461abede Move sidebar toggle to header and fix animation
- Moved toggle button to header (next to logo)
- Removed floating button to prevent content overlap
- Changed sidebar animation to use margin-left for proper layout reflow
- Main content now automatically expands when sidebar collapses
- Simplified JS logic for cleaner toggle behavior
2025-11-19 14:48:05 +01:00
ab54985176 Fix sidebar toggle and add title to Home link
- Added sidebar toggle button with proper CSS and JavaScript
- Fixed missing sidebar toggle functionality in template
- Added title attribute to Home link for better UX
- Sidebar now properly slides in/out with smooth animations
- All toggle functionality working correctly
2025-11-19 14:43:28 +01:00
f26597f31f Merge branch 'development' into e.noorlander 2025-11-19 14:40:01 +01:00
86d42e096a Sync sidebar toggle to e.noorlander branch
- Updated e.noorlander branch with sidebar toggle functionality
- All branches now have identical toggle features
- Resolved template synchronization across branches
2025-11-19 14:39:52 +01:00
4ebf97a039 Add sidebar toggle functionality to all branches
- Added toggle button with list/chevron-right icon
- Sidebar slides in/out with smooth CSS transitions
- Button positioned fixed with proper z-index
- Main content adjusts margin when sidebar collapsed
- JavaScript handles toggle state and icon changes
- All branches now have identical functionality
2025-11-19 14:39:36 +01:00
569931d1dd Merge main branch into e.noorlander
- Resolved merge conflict by keeping e.noorlander layout.html
- All branches now have identical content and functionality
- Sidebar toggle functionality available on all branches
- Complete blog content synchronized across branches
2025-11-19 14:36:47 +01:00
45aa4712a5 Sync blog content from e.noorlander to main branch
- Copied all blog content from e.noorlander branch
- Main branch now has complete blog with 10 articles
- All branches now have identical content structure
- Includes: Over mij, Open Source, Leren, ICT, Hardware, Retro Gaming, Micro-electronica, Linux categories
2025-11-19 14:36:22 +01:00
c68e8cd141 Add sidebar toggle functionality
- Added toggle button for left sidebar collapse/expand
- Sidebar slides in/out with smooth animation
- Toggle button changes icon (list/chevron-right)
- Main content adjusts margin when sidebar is collapsed
- Added CSS transitions for smooth animations
- Button positioned fixed with z-index for accessibility
2025-11-19 14:35:57 +01:00
be220d79b3 Remove old content directory from root
- Removed duplicate content/ directory from project root
- All content is now properly located in public/content/
- Clean project structure with only public/ directory for web content
- Prevents confusion between old and new content locations
2025-11-19 14:32:19 +01:00
0f7e4ccc07 Fix auto-linking order and add dash-dash underline styling
- Moved auto-linking before markdown link processing to avoid conflicts
- Added dash-dash (dashed) underline for auto-links instead of dotted
- Improved pattern matching to avoid linking inside existing markdown links
- Enhanced detection of existing HTML tags and links
- Auto-links now have 2px dashed underline with hover effect
2025-11-19 14:29:00 +01:00
b0483f5882 Add automatic page title linking functionality
- Added autoLinkPageTitles() function to link page titles
- Added getAllPageTitles() to scan all content pages
- Added extractPageTitle() for MD/PHP/HTML files
- Added CSS styling for auto-links with dotted underline
- Page titles in content now automatically link to their pages
- Prevents linking inside existing HTML tags and links
2025-11-19 14:23:12 +01:00
35a990ecf3 Add remaining blog content from noorlander.info
- Added 'Wat is Arduino' in micro-electronica category
- Added 'Leren gaat niet over perfectie' with open-source explanation
- Added 'De ware aard van ICT' in hardware category
- Added 'Commodore 64' in retro-gaming category
- Updated home.md with all new category links
- Complete blog content now available (10 articles total)
2025-11-19 14:19:29 +01:00
e5839d10a1 Add remaining blog content from noorlander.info
- Added 'Excel als Database' article in ICT category
- Added 'Open Source Voorbeelden' article in Linux category
- Updated home.md with new category links
- Complete blog content now available
- All 6 articles from noorlander.info imported
2025-11-19 14:16:18 +01:00
8a01d0bc99 Fix e.noorlander branch - add missing PHP files to public
- Copied index.php, config.php, and templates to public/
- e.noorlander branch now works correctly
- Personal blog content accessible again
- All branches now have proper public directory structure
2025-11-19 14:12:43 +01:00
bab8d2db87 Fix icon paths and complete public directory setup
- Copied assets/ directory to public/ for proper icon access
- Icons now work correctly with new public structure
- Fixed missing assets directory in public folder
- Server ready on port 8080 with full functionality
2025-11-19 14:10:16 +01:00
e392bb8d09 Clean main branch for CodePress CMS
- Removed personal blog content from main branch
- Added comprehensive CodePress documentation in home.md
- Updated README.md for general CodePress usage
- Main branch now contains clean CMS framework
- Ready for general CodePress distribution
2025-11-19 14:01:16 +01:00
2e5672ee60 Add secure public directory structure with .htaccess
- Created public/ directory for web-accessible files
- Moved content and assets to public/ subdirectories
- Added .htaccess files for security and routing
- Updated config.php to use public/content path
- Blocked direct access to PHP files and sensitive directories
- Added URL routing to index.php
- Enhanced security headers and PHP settings
2025-11-19 14:00:03 +01:00
bd0f6ecbfc Fix Markdown link conversion in parseMarkdown function
- Added regex to convert [text](url) to HTML links
- Added conversion for relative internal links to CMS format
- Links now work properly in blog posts and home page
2025-11-19 13:49:39 +01:00
0dbe4317e2 Remove old content, keep only noorlander.info blog posts
- Removed demo content and old structure
- Updated home.md to showcase blog categories
- Clean content directory with only Edwin's blog posts
2025-11-19 13:45:07 +01:00
4d3c3391f7 Initial commit: CodePress CMS with blog content from noorlander.info
- Complete PHP CMS with Bootstrap 5
- Multi-format content support (MD/PHP/HTML)
- Dynamic navigation with collapsible folders
- Search functionality with snippets
- WCAG compliant design
- Blog content imported from Edwin Noorlander's personal blog
- README with project background and credits
2025-11-19 13:41:28 +01:00