Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iakdis/buhocms

A free and open source local CMS for static site generators
https://github.com/iakdis/buhocms

11ty blog cms content-management-system gui headless-cms hugo jekyll markdown static-site-generator

Last synced: about 1 month ago
JSON representation

A free and open source local CMS for static site generators

Awesome Lists containing this project

README

        

## 🌟 New release: v0.9.0 🌟
### Take a look at all the changes [here](https://github.com/iakmds/buhocms/releases/tag/v0.9.0)!














BuhoCMS app icon

BuhoCMS


A free and open source local CMS for static site generators written in Flutter and Dart licensed under the GPLv3

Table of Contents




  1. What is BuhoCMS?



  2. Downloads



  3. Contributing


  4. Roadmap

  5. Packages used

  6. License

# What is BuhoCMS?

BuhoCMS is a **local Content Management System** for **static site generators** ([list of supported SSGs](#features)).

See BuhoCMS as a **GUI for static site generators**. Easily **create or open a website**, **choose your theme** and **add your first posts**. With BuhoCMS, adding and editing content is as easy as a few clicks. No more terminal commands, folder hunting or manual Front matter edits πŸ₯³

### Who is BuhoCMS for?

BuhoCMS is made for... you πŸ˜ƒ

...that is, everyone using a static site generator who wants an **easy to use**, **graphical way** to **edit content**, so that you can make the best use out of the power of a static site generator: *Creating and editing content.*

BuhoCMS is for you if you land in at least one of the following categories:

- You **already have a static site** from a supported SSG and want to easily edit your content from now on
- You want to **create a new static site from zero** with a graphical user interface
- You are a **beginner** looking for a **simple way to begin your journey** in using static site generators

## :warning: Alpha warning
BuhoCMS is currently in Alpha. While most things should work as expected, bugs :bug: are likely to exist. It is a good idea to backup πŸ’Ύ your website folders just in case. Also, remember that [many more features](https://github.com/iakmds/buhocms#roadmap) are planned! :sparkles:

# Screenshots


Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

# Downloads

- Currently supported platforms: Windows, Linux
- Planned: macOS, Web (possibly in the future)

### Windows

Download and execute the [BuhoCMS-Windows.exe](https://github.com/iakmds/buhocms/releases) file from the GitHub [releases](https://github.com/iakmds/buhocms/releases) page.

### macOS

macOS support is planned. Unfortunately I do not currently own a macOS device; to build and test BuhoCMS, a macOS device is needed.

### Linux

Supported | Planned
|-|-|
| Flatpak (Flathub) | Snap |
| AppImage | AUR |
| .deb | .rpm |


To install BuhoCMS as a **Flatpak**, head over to Flathub. In order to run executable commands on your host system, you need to give the following permission in your Terminal: `flatpak --user override org.buhocms.BuhoCMS --talk-name=org.freedesktop.Flatpak`

[Download on Flathub](https://flathub.org/apps/details/org.buhocms.BuhoCMS)


To install BuhoCMS as an **AppImage**, download the [BuhoCMS-Linux.AppImage](https://github.com/iakmds/buhocms/releases) file from the GitHub [releases](https://github.com/iakmds/buhocms/releases) page, make it executable and run it. For better desktop integration consider using [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher).

[Download as an AppImage](https://github.com/iakmds/buhocms/releases)


To install BuhoCMS as a **.deb** package, download the [BuhoCMS-Linux.deb](https://github.com/iakmds/buhocms/releases) file from the GitHub [releases](https://github.com/iakmds/buhocms/releases) page and install it.

# Features

- **SSGs supported**:
- [Hugo](https://gohugo.io/)
- [Jekyll](https://jekyllrb.com/)
- [11ty](https://11ty.dev/)
- **Create** or **open** a site
- **Install themes** for your site
- **Add new posts** and **edit** your Markdown content and Front matter with ease
- **Edit content**: Use the Markdown toolbar for quickly adding styles
- **Markdown preview**: Use the Markdown viewer to check your syntax
- **Front matter**: Graphical User Interface (GUI) for each field like a Text field, Switch, Date picker, Tag editor, and more
- **Switch** between **GUI and raw text mode**
- **Start, open and stop** your **local server** with a click
- **Build your final website** and open its folder
- **Privacy**: BuhoCMS is a local program with no internet connection required – no ads, no tracking
- **Free and open source**: Licensed under the [GPLv3](LICENSE)
- **Themes**: Material Design with multiple color themes, both light and dark
- **Fully responsive**
- **Multiple languages supported** – [Contribute translating your language!](#translating)
- *...and [many more features planned](#roadmap)*

# Contributing

These are the ways you can contribute to BuhoCMS:

### Translating

Languages currently supported:
- English πŸ‡¬πŸ‡§
- German (Deutsch) πŸ‡©πŸ‡ͺ
- Chinese (δΈ­ζ–‡) πŸ‡¨πŸ‡³

**First steps:**
1. If not already supported (see above), request a new language by [opening an issue](https://github.com/iakmds/buhocms/issues) on GitHub and I will add the necessary code for the second step.
2. Translate an already existing language (see below).

**Translating guide:** Weblate support is planned. For now, go to the .arb file of the language you want to translate (for example, [app_de.arb](https://github.com/iakmds/buhocms/blob/master/assets/l10n/app_de.arb) file for German) and change the text inside the "" quotation marks. Use the [English](https://github.com/iakmds/buhocms/blob/master/assets/l10n/app_en.arb) translation as a reference for the text to be translated to the target language. If the keys listed in the [untranslatedMessages.txt](https://github.com/iakmds/buhocms/blob/master/untranslatedMessages.txt) don't exist, simply create them just like the others.

Send in your translated files as a [Pull request](https://github.com/iakmds/buhocms/pulls)

### Bug Reports, Feature Requests and Improvements

Open an issue on GitHub: [Open issue](https://github.com/iakmds/buhocms/issues). Remember to check for duplicates and try to give important information such as the app version, your operating system, etc.

### Code

Feel free to send in a [pull request](https://github.com/iakmds/buhocms/pulls)! To get started with Flutter, follow this link: [https://docs.flutter.dev/get-started/install](https://docs.flutter.dev/get-started/install)

1. Clone this repository
2. Switch to the project's directory and run `flutter pub get` to get all necessary packages. To receive all localized strings, run `flutter gen-l10n`. To test the app, run the project in debug mode by selecting a device in your preferred Flutter IDE and running the app in debug mode
3. Build BuhoCMS (see steps for the different platforms below)

**Windows** executable: Run the following command in your terminal on a Windows machine: `flutter build windows` – the output file will be generated at `buhocms\build\windows\runner\Release\buhocms.exe`.

**Linux** executable: Run the following command in your terminal: `flutter build linux` – the output files, including the executable, will be generated at `buhocms/build/linux/x64/release/bundle`.

# Roadmap

**General:**
- [ ] Integration with git when "publishing" site (optional)
- [ ] Language filter for l10n
- [ ] Fix system light/dark color scheme
- [ ] Custom app theme colors
- [ ] Markdown Toolbar: "Add media" button for images for selecting an image
- [ ] Configurable shortcuts
- [x] Markdown Toolbar: Shortcuts (v0.5.0)
- [x] Localization: Markdown Toolbar tooltip texts (v0.4.0)
- [x] Show terminal output (v0.3.0)

**Hugo specific:**
- [ ] Work with both hugo.* and config.* names ([see Hugo Documentation](https://gohugo.io/getting-started/configuration/#hugotoml-vs-configtoml))
- [ ] hugo/config.toml, hugo/config.yaml, hugo/config.json editor (+ create a .bak backup file)
- [ ] Be able to delete themes and open the theme folder button
- [ ] [Git-submodules](https://gohugo.io/getting-started/quick-start/#explanation-of-commands) for themes support

**Project:**
- [ ] Support more static site generators
- [x] [Jekyll](https://jekyllrb.com/) support (v0.6.0)
- [x] [11ty](https://11ty.dev/) support (v0.7.0)
- [ ] More supported languages (See [#translating](#translating) above)
- [ ] [Your features](https://github.com/iakmds/buhocms/issues)

# Packages used

The packages used for this app, also listed in the pubspec.yaml file. See their respective licenses.

Package | Use case
-|-
[context_menus](https://pub.dev/packages/context_menus) | Right click context menus
[convert](https://pub.dev/packages/convert) | Convert json
[dropdown_search](https://pub.dev/packages/dropdown_search) | Add Front matter with a searchable Dropdown button
[file_picker](https://pub.dev/packages/file_picker) | Picking file paths
[flex_color_scheme](https://pub.dev/packages/flex_color_scheme) | App color schemes
[flutter](https://pub.dev/packages/flutter) | Flutter SDK
[flutter_localizations](https://pub.dev/packages/flutter_localizations) | Localization
[flutter_markdown](https://pub.dev/packages/flutter_markdown) | Markdown preview
[flutter_svg](https://pub.dev/packages/flutter_svg) | Displaying SVG files
[intl](https://pub.dev/packages/intl) | Localization
[markdown_toolbar](https://pub.dev/packages/markdown_toolbar) | Markdown Toolbar
[menu_bar](https://pub.dev/packages/menu_bar) | Menu Bar
[package_info_plus](https://pub.dev/packages/package_info_plus) | Display the programs version number
[process_run](https://pub.dev/packages/process_run) | Run terminal commands
[provider](https://pub.dev/packages/provider) | State management for localization, themes, navigation, etc.
[shared_preferences](https://pub.dev/packages/shared_preferences) | Saving local app data, including settings
[smooth_page_indicator](https://pub.dev/packages/smooth_page_indicator) | Page indicator in the onboarding screen
[url_launcher](https://pub.dev/packages/url_launcher) | Open links in Browser
[window_manager](https://pub.dev/packages/window_manager) | Set minimum window size and window title

# License

This project is licensed under the [GNU General Public License Version 3](https://www.gnu.org/licenses/gpl-3.0.html). For details, see [LICENSE](LICENSE)