mecha-cms / mecha
Minimalist content management system.
Fund package maintenance!
mecha-cms
Opencollective
Paypal
Installs: 218
Dependents: 0
Suggesters: 0
Security: 0
Stars: 174
Watchers: 20
Forks: 23
Open Issues: 0
Type:project
Requires
- php: >=7.3
- ext-json: *
- mecha-cms/composer: ^1.0.0
- mecha-cms/x.asset: ^2.0.0
- mecha-cms/x.layout: ^2.0.0
- mecha-cms/x.link: ^2.0.0
- mecha-cms/x.markdown: ^3.0.0
- mecha-cms/x.page: ^3.1.0
- mecha-cms/x.test: ^1.0.0
- mecha-cms/y.log: ^2.0.0
Suggests
- ext-curl: We will use `file_get_contents()` if `ext-curl` is not installed. It will be more efficient when `curl_*()` functions are available.
- ext-gd: Required if you are interested in installing the `mecha-cms/x.image` extension.
- ext-mbstring: It would be great if `ext-mbstring` is installed. We will use other ways if `ext-mbstring` is not available.
- ext-zip: Required if certain extensions (such as `mecha-cms/x.panel`) need to work with ZIP files.
README
Mecha is a flat-file content management system for minimalists.
Front-End
The default layout uses only Serif and Mono fonts. Different operating systems may produce slightly different results. This preview was taken from a computer running Arch Linux operating system. The Serif font shown in the preview should be DejaVu Serif:
Back-End (Optional)
To be able to activate the back-end feature requires you to install our Alert, Panel, and User extensions. This feature is forever optional. You can use this feature on the local version only, and remove it on the public version to secure your website (only if you don’t trust this extension).
Colors and font types in the control panel preview above are generated from the default skin. Without them, the display will look like the preview below:
Features
- Writing pages with ease using Markdown extension.
- Unlimited page children.
- Unlimited page fields.
- Extensible as hell.
- Create unique design for each blog post by adding special CSS and JavaScript files using Art extension.
- Built-in commenting system using Comment extension.
- RSS and Sitemap using the Feed and Sitemap extension.
- Easy to use and well documented API.
- Almost everything are optional.
- Control panel using Panel extension.
Requirements
- Apache 2.4 and above, with enabled
mod_rewrite
module. - PHP 7.3 and above.
Preparations
- Make sure that you already have the required components.
- Download the available package from the home page.
- Upload Mecha through your FTP/SFTP to the public folder/directory on your site, then extract it!
- Take a look on the available extensions and layouts that you might be interested.
- Upload your extension files to
.\lot\x
and your layout files to.\lot\y
. They’re auto-loaded. - Read on how to add pages and tags. Learn on how to create pages from the author by looking at the source code.
- Install Panel extension if you are stuck by doing everything manually. You always have the full control to remove this extension without having to worry that your site will stop running after doing so.
Alternatives
Command Line
This assumes that your site’s public directory is in /srv/http
. Make sure the folder is empty, or move the existing
files to another place first. Don’t forget with that .
at the end of the command as written in the example below, to
clone the repository into the current root folder.
Using Composer
cd /srv/http composer create-project mecha-cms/mecha .
You may want to install our Panel extension as well:
composer require mecha-cms/x.panel
Using Git
cd /srv/http git clone https://github.com/mecha-cms/mecha.git --depth 1 . git submodule update --init --recursive
You may want to install our Panel extension as well. Here, Alert, and User extension is required to be installed:
git submodule add https://github.com/mecha-cms/x.alert.git --depth 1 lot/x/alert git submodule add https://github.com/mecha-cms/x.user.git --depth 1 lot/x/user git submodule add https://github.com/mecha-cms/x.panel.git --depth 1 lot/x/panel
Web Browser
Download the installer file from https://github.com/mecha-cms/start and then follow the instructions.
Contributors
This project exists and survives because of you. I would like to thank all those who have taken the time to contribute to this project.
Contribute financially to keep the project domain and website accessible to everyone. The website provides complete documentation and latest information regarding the software and future development plans. Some parts of the website also serve to provide a clean and efficient project file download feature which is obtained by managing responses from the GitHub API.