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
This commit is contained in:
Edwin Noorlander 2025-11-19 14:36:47 +01:00
commit 569931d1dd
2 changed files with 135 additions and 65 deletions

191
README.md
View File

@ -1,80 +1,157 @@
# CodePress CMS
Een lichtgewicht PHP Content Management System gebouwd met Bootstrap en Mustache-style templating.
A lightweight, file-based Content Management System built with PHP and Bootstrap.
## Project Achtergrond
## Overview
Dit project is ontwikkeld in opdracht van **Edwin Noorlander** als een demonstratie van een modern, file-based CMS. De opdracht was om een eenvoudig maar krachtig systeem te creëren dat content beheert via bestanden in plaats van een database.
CodePress is a modern, secure CMS that manages content through files instead of a database. It's designed for simplicity, flexibility, and ease of use while maintaining powerful features for content management.
## Ontwikkelingsproces
## Features
### Technische Keuzes
- **PHP 8.4+** voor server-side logica
- **Bootstrap 5** voor responsive design
- **File-based content storage** voor eenvoudig beheer
- **Markdown en PHP support** voor flexibele content
- **SVG iconen** voor scherpe graphics
### 🎯 Core Features
- **File-based content** - No database required
- **Multi-format support** - Markdown, PHP, HTML files
- **Dynamic navigation** - Auto-generated from directory structure
- **Search functionality** - Full-text search with snippets
- **Breadcrumb navigation** - Clear page hierarchy
- **Responsive design** - Works on all devices
### Iteratieve Ontwikkeling
Het project is stapsgewijs opgebouwd met continue feedback:
### 🔧 Advanced Features
- **Collapsible folders** - Accordion-style navigation
- **WCAG compliant** - Accessible design with proper contrast
- **File metadata** - Creation and modification dates in footer
- **Progressive styling** - Visual hierarchy with nested levels
- **Security** - Protected PHP files and sensitive directories
1. **Basis structuur** - Configuratie en templating systeem
2. **Content parsing** - Markdown, PHP en HTML ondersteuning
3. **Navigatie** - Dynamische menu generatie met hiërarchie
4. **Zoekfunctionaliteit** - Volledige tekst doorzoeking van content
5. **UI/UX verbeteringen** - Progressieve achtergrondkleuren, collapsible mappen
6. **Toegankelijkheid** - WCAG compliant contrast en navigatie
7. **Footer met metadata** - Bestandsinformatie en aanmaak/bewerkingsdatums
## Quick Start
### Kernfeatures
- ✅ **Multi-format content**: Markdown, PHP, HTML bestanden
- ✅ **Dynamische navigatie**: Automatische menu generatie uit directory structuur
- ✅ **Zoekfunctie**: Volledige tekst doorzoeking met snippets
- ✅ **Kruimelpad**: Navigatie pad indicatie
- ✅ **Collapsible mappen**: Accordion-style navigatie
- ✅ **WCAG compliant**: Goede contrast ratio's en toegankelijkheid
- ✅ **Responsive design**: Werkt op alle schermformaten
- ✅ **File metadata**: Aanmaak- en bewerkingsdatums in footer
## Installatie
1. Zorg dat PHP 8.4+ geïnstalleerd is
2. Clone dit repository
3. Start de development server:
1. **Requirements**: PHP 8.4+
2. **Installation**:
```bash
php -S localhost:8000
git clone https://git.noorlander.info/E.Noorlander/CodePress.git
cd CodePress
```
4. Bezoek `http://localhost:8000` in je browser
3. **Start server**:
```bash
php -S localhost:8000 -t public
```
4. **Visit**: `http://localhost:8000`
## Content Beheer
- Plaats content bestanden in de `content/` map
- Gebruik `.md`, `.php` of `.html` extensies
- De menu structuur volgt automatisch de directory hiërarchie
- Submappen worden genest in de navigatie weergegeven
## Project Structuur
## Project Structure
```
codepress/
├── assets/ # Iconen en static files
├── content/ # Content bestanden (MD/PHP/HTML)
├── templates/ # HTML templates
├── config.php # Site configuratie
├── index.php # Hoofd applicatie logica
└── README.md # Deze documentatie
├── public/ # Web-accessible directory
│ ├── content/ # Content files (MD/PHP/HTML)
│ ├── assets/ # Static assets (images, icons)
│ └── .htaccess # Security and routing
├── templates/ # HTML templates
├── config.php # Site configuration
├── index.php # Main application logic
├── .htaccess # Root security
└── README.md # This documentation
```
## Opdrachtgever
## Security
**Edwin Noorlander**
- Persoonlijke blog: [https://noorlander.info](https://noorlander.info)
- Git repository: [https://git.noorlander.info/E.Noorlander/CodePress.git](https://git.noorlander.info/E.Noorlander/CodePress.git)
CodePress includes built-in security features:
- **.htaccess protection** for sensitive files
- **PHP file blocking** in content directory
- **Security headers** for XSS protection
- **Directory access control**
- **Public directory isolation**
## Licentie
## Content Management
Dit project is ontwikkeld als onderdeel van een opdracht en valt onder de voorwaarden zoals overeengekomen met de opdrachtgever.
### Supported File Types
#### Markdown (.md)
```markdown
# Page Title
Content with **bold** and *italic* text.
[Link to page](?page=other/page)
```
#### PHP (.php)
```php
<?php
$title = "Dynamic Page";
$date = date('Y-m-d');
?>
<h1><?php echo $title; ?></h1>
<p>Date: <?php echo $date; ?></p>
```
#### HTML (.html)
```html
<h1>Static HTML Page</h1>
<div class="alert alert-info">
Custom HTML content
</div>
```
### Directory Structure
```
public/content/
├── home.md # Homepage
├── about/
│ └── company.md # About page
├── blog/
│ ├── tech/
│ │ └── post.md # Blog post
│ └── index.md # Blog overview
└── projects/
└── web-design.md # Project page
```
## Configuration
Edit `config.php` to customize:
```php
return [
'site_title' => 'Your Site Name',
'site_description' => 'Your site description',
'content_dir' => __DIR__ . '/public/content',
'default_page' => 'home',
'markdown_enabled' => true,
'php_enabled' => true,
];
```
## Branches
- **main**: Clean CodePress CMS with documentation
- **e.noorlander**: Personal blog content and customizations
- **development**: Active development branch
## Development
### Adding Features
1. Create feature branch from `development`
2. Implement changes
3. Test thoroughly
4. Submit merge request
### Contributing
- Follow PSR-12 coding standards
- Test security implications
- Update documentation
- Maintain backward compatibility
## License
This project is developed for specific use cases. Contact the maintainer for licensing information.
## Support
- **Documentation**: See `public/content/home.md`
- **Issues**: Report on GitLab
- **Community**: Join discussions
---
*Gebouwd met ❤️ en PHP*
*Built with ❤️ and PHP*

View File

@ -155,13 +155,6 @@
font-size: 0.9rem;
color: #6c757d;
}
.site-info a {
color: #0d6efd;
text-decoration: none;
}
.site-info a:hover {
text-decoration: underline;
}
.search-form {
max-width: 300px;
}
@ -249,7 +242,7 @@
{{file_info}}
</div>
<div class="site-info">
<small class="text-muted">Powered by <a href="https://git.noorlander.info/E.Noorlander/CodePress.git" target="_blank" rel="noopener">CodePress CMS</a></small>
<small class="text-muted">Powered by CodePress CMS</small>
</div>
</div>
</div>