saywebsolutions / lets-blog
Laravel 5的博客包
Requires
- php: >=5.3.0
- illuminate/support: ~5
- michelf/php-markdown: 1.5.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-23 07:04:53 UTC
README
一个简单的基于命令行和Markdown的博客插件包,适用于Laravel,包括标签和关联帖子系列的支持。
安装和快速入门
通过Composer包含包
composer require "saywebsolutions/letsblog"
将服务提供者添加到config/app.php
'providers' => [
...
SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider::class,
...
]
发布配置文件
了解配置选项的最佳方式是发布配置并查看文件
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider" --tag=config
在config/letsblog.php中找到配置文件。
迁移Let's Blog表
php artisan migrate --path=/vendor/saywebsolutions/lets-blog/database/migrations
您的主blade布局必须命名为app.blade.php才能使默认主题正常工作;如果不是,有一个配置键theme_extends允许您定义要扩展的blade布局。
导航到/blog并查看默认博客页面。
添加和更新帖子
使用Markdown格式编写帖子,默认情况下帖子应放在./blog/posts目录中。
在添加/编辑帖子后,运行letsblog:build命令以添加新帖子或应用您的编辑
php artisan letsblog:build
用于检查现有帖子的主要键将是identifier字段,默认情况下使用文件名。
帖子格式
帖子格式应如下所示
---
title: LetsBlog Package Released
slug: letsblog-package-released-laravel
meta: LetsBlog package released for Laravel.
keywords: letsblog, package, laravel, release
published_at: 2018-03-17
tags: LetsBlog, Laravel
---
## Post Title
Post contents...
您可以在文件的上部(前文)设置任何字段。可用的解析器接收定义在前文的每个字段中的数据,并在保存到posts表之前可以操作这些数据。
当前解析器包括
- 标题
- 元数据(描述)
- 正文
- 发布日期
- 别名(如未定义,将回退到文件名)
- 标签
- 系列(可选的系列名称,帖子所属系列)
迁移
可以从包的migrations文件夹直接运行迁移
php artisan migrate --path=/vendor/saywebsolutions/lets-blog/database/migrations
php artisan migrate:rollback
如果需要将迁移发布到父应用,请使用vendor:publish命令
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider" --tag=migrations
主题
要设置主题,请将配置中的'letsblog.theme'属性设置。为了简化问题,所有视图都应该简单地使用letsblog::theme.master作为主要视图。然后,一个view作为发送到视图的数据的一部分设置。
return view('letsblog::themes.master', [
'view' => lb_view('post.show'),
]);
lb_view是一个快捷助手,用于避免每次都要使用主题设置完整路径。这允许通过只需更改配置参数即可轻松更换主题。
到目前为止,目前支持的主题包括
- 默认
- 扩展
默认主题
默认主题目前未经测试,可能或可能不工作。
扩展主题
如果希望在现有blade布局中嵌入博客,扩展主题很有用。目前,扩展主题期望父应用程序中可用Bootstrap 3。
请确保在父布局中有一个用于javascript的yield指令,例如)
@yield ('javascript')
覆盖布局
在许多情况下,您可能希望对布局进行一些定制,例如添加一些分析跟踪或广告。为了允许这样做,主题包括许多可以替换或修改现有布局的块。
开始时,在视图目录中创建一个overrides文件
/resources/views/vendor/lets-blog/themes/overrides.blade.php
从那里可以开始使用以下部分块,希望它们是自解释的。
meta.opensearchmeta.titlemeta.keywordsmeta.descriptionmeta.oghead.fileshead.stylessidebar.seriessidebar.popularcomponent.searchcomponent.relatedfooter-nav.leftfooter-nav.rightpost.listpost.headpost.seriespost.bodypost.relatedpage.headpage.bodylayout.viewlayout.end
自定义
为了进行自定义,可以使用 LetsBlog 门面。
'aliases' => [
'Blog' => SayWebSolutions\LetsBlog\Facades\LetsBlogFacade::class,
...
]
门面提供了以下快捷函数的访问权限
published()- 带分页的帖子列表。search($q)- 通过搜索的帖子分页列表。all()- 所有帖子。last()- 最后一条帖子(按 published_at 日期排序)。post($slug)- 根据slug的帖子或页面。count()- 帖子数量。top($amount)- 热门帖子(默认10)。tags()- 所有标签。publishedWhereTag($tag)- 根据标签的帖子分页列表。
资源
发布包中的所有文件
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider"
或者单独发布
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider" --tag=migrations
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider" --tag=views
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider" --tag=config
php artisan vendor:publish --provider="SayWebSolutions\LetsBlog\Providers\LetsBlogServiceProvider" --tag=assets
页眉和页脚
每个主题都应该支持页眉和页脚部分(以及可能更多的标准部分)。想法是提供一个视图列表,并按此顺序包含它们。
这允许包含任何广告或分析跟踪代码。
添加解析器
要添加解析器,创建一个具有要解析的键名称的类。例如,title 将查找 SayWebSolutions\LetsBlog\Parser\Field\Title。这样就可以添加额外的字段或覆盖现有的字段。
待办事项
还有一些需要完成的事情。
- 管理员部分(带有WYSIWYG MD编辑器)
- 更多主题
- 评论