Add a simple, flat-file markdown blog to your existing Laravel application.
You can install the package via composer:
# Require it as a dependency
composer require swiftmade/blogdown
# Publish the config file
php artisan vendor:publish --provider "Swiftmade\Blogdown\BlogdownProvider"Go to config/blogdown.php to configure authors (example included in the file).
Simply run this command to make a new article:
php artisan blog:newFollow the instructions, and you'll have your first blog post ready in seconds.
Each post consists of a meta section (mandatory) and the content. You can use Markdown to enrich your post's format.
To use markdown inside blade, simply invoke @markdown / @endmarkdown. Or, you can also add .md extension before .blade.php and skip the markdown calls.
{{--
title: Hello World!
tags: blog, first post
date: 18.03.2020
--}}
Use blade to compose post content.
@markdown
**Or even use markdown** if you want.
### Isn't that great?
@endmarkdownLet's say you're working on a long post and it's not production ready yet. Just do this:
{{--
... other attributes
draft: true
--}}
... Your awesome content ...Since you added the draft meta attribute, this post will be hidden in production environments.
You can declare as many meta attributes as you want.
{{--
random_attribute: 51231
--}}You can access your post's meta attributes like so:
$post->random_attribute; // 51231php artisan blog:index
You can change most things about Blogdown. To get started, publish the config:
php artisan vendor:publish --provider "Swiftmade\Blogdown\BlogdownProvider"Things you can customize
- Override views to change how your blog looks
- Add list of authors to quickly load author meta
- Format and content of post slugs
- Enable/disable default routes.
- Change date format.
- And probably more...
By default, this is how a post's slug is built:
public function slug()
{
return Str::slug($this->view_name);
}If needed, you can override the Post model and build a better slug:
public function slug()
{
return Str::slug($this->date->format('Y-m-d') . ' ' . $this->title);
}Don't forget to register your custom Post model in config/blogdown.php!
If you want to see more features or report bugs feel free to open issues and send pull requests.
Contributors: