# CodePress CMS A lightweight, file-based Content Management System built with PHP and Bootstrap. ## Overview 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. ## Features ### 🎯 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 ### 🔧 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 ## Quick Start 1. **Requirements**: PHP 8.4+ 2. **Installation**: ```bash git clone https://git.noorlander.info/E.Noorlander/CodePress.git cd CodePress ``` 3. **Start server**: ```bash # For Apache: Set DocumentRoot to public/ # For Development: php -S localhost:8080 -t public router.php ``` 4. **Visit**: `http://localhost:8080` ## Project Structure ``` codepress/ ├── public/ # Web-accessible directory (DocumentRoot) │ ├── index.php # Main entry point │ ├── .htaccess # Apache security and routing │ └── router.php # PHP development server router ├── content/ # Content files (MD/PHP/HTML) - outside web root ├── engine/ # CMS engine and assets │ ├── core/ # PHP application logic │ │ ├── index.php # CMS class and logic │ │ └── config.php # Site configuration │ ├── templates/ # HTML templates │ └── assets/ # Static assets (CSS, JS, fonts) │ ├── css/ # Bootstrap and custom CSS │ ├── js/ # JavaScript files │ └── fonts/ # Font files ├── .htaccess # Root security └── README.md # This documentation ``` ## Security CodePress includes built-in security features: - **Content isolation** - Content files stored outside web root - **.htaccess protection** for sensitive files and directories - **Direct access blocking** - Content files not accessible via URL - **Security headers** for XSS protection - **PHP file blocking** in content directory - **Offline capable** - All assets (Bootstrap) stored locally - **Directory access control** ## Content Management ### Supported File Types #### Markdown (.md) ```markdown # Page Title Content with **bold** and *italic* text. [Link to page](?page=other/page) ``` #### PHP (.php) ```php

Date:

``` #### HTML (.html) ```html

Static HTML Page

Custom HTML content
``` ### Directory Structure ``` 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__ . '/../../content', 'templates_dir' => __DIR__ . '/../templates', '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 `content/home.md` - **Issues**: Report on GitLab - **Community**: Join discussions --- *Built with ❤️ and PHP*