Git Product home page Git Product logo

charm-blog's Introduction

A Blog Module for Charm Framework 3.1+

This provides blog functionalities for Charm apps.

All blog posts are markdown files with YAML frontmatter. You can easily add thumbnails and hero images and assets of all kind.

The whole blog engine runs flat-file, including comments handling. But you can also provide Redis for better performance and caching.

Installation

Begin your quest by adding charm-blog to your project via Composer:

composer require neoground/charm-blog

Next, install charm-markdown in your application:

bob cm:i neoground/charm-blog

If you haven't installed charm-markdown yet, install it as well:

bob cm:i neoground/charm-markdown

Usage

Todo. This module is in early alpha. A usage guide will follow once we reach a beta state soon.

For a reference implementation see the Markcoon project. It's a simple-to-use blog which uses this module under the hood.

Configuration

Configuration in your app's user.yaml:

rss:
  # Title, link, description can be multilingual, e.g. "description_de" for german
  title_en: My English Blog
  link_en: https://example.com/en/blog
  # Description of RSS feed
  description_en: Description of our blog
  # Absolute URL to blog index page
  blog_base_url: https://example.com/blog
  # Generator + Copyright tags
  generator: Charm Blog v1.0
  copyright: (c) ACME Corp - All rights reserved
  # Path to feed icon, relative to base URL
  image_relpath: icon.png
  # Prefix to add to each post slug for the guid
  guid_prefix: blog

charm-blog's People

Contributors

neoground avatar

Stargazers

 avatar

Watchers

 avatar

charm-blog's Issues

Implement base blog

Implement base system based on internal system with custom template support.

Add search

Add a simple post search, similar to filters.

Add documentation

Add basic documentation on how to implement a blog and customize it (theming, custom authors, ...).

Add posts API

Add a simple API to fetch posts for overviews etc.

Add general API

Add API for general data so that the whole blog area could be an app on the client, getting all data via API (overview, post details, list of authors, ...). Add authentication like usually.

Add publish API

Add an optional API which allows publishing new posts to the blog.

Add recommended blog posts

Recommend blog posts of the same category. Feature the latest few ones. If not enough in the current category, simply take the latest few ones, but prevent duplicates and don't feature the current blog post.

Allow multiple instances per app

Besides the main blog a user should be able to have multiple sections in the app / site where the blog engine can be used (e.g. special areas which are like a blog). Also add the default blog and make an config entry so the user can disable the default blog.

Add more elements to markdown texts

Easily embed custom plugins / elements in a markdown document, like a poll, specific ads or recommendations, like they are embedded in blog posts on many platforms nowadays to improve content variety and useful stuff like info boxes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.