ingress-it-solutions / ultim8e-blogger
适用于您的Laravel项目的即插即用扁平文件Markdown博客
Requires
- laravel/framework: ^8|^9
- spatie/sheets: ^1.7
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^5|^6
- orchestra/testbench: ^6.15|^7
- squizlabs/php_codesniffer: ^3.5
This package is not auto-updated.
Last update: 2024-09-29 16:31:30 UTC
README
适用于您的Laravel项目的即插即用扁平文件Markdown博客工具。在您的网站上创建文章或博客部分,无需设置表格、模型或自己的扁平文件系统。
基于spatie/sheets构建,用于处理Markdown文件和YAML前序解析。
注意:此软件包旨在快速、轻松设置和使用 – 不要期望完整的CMS功能。
🛠 安装和配置
需要包
$ composer require ingress-it-solutions/ultim8e-blogger
发布配置文件和视图
$ php artisan vendor:publish --provider="IngressITSolutions\Ultim8eBlogger\Ultim8eBloggerServiceProvider"
在 config/ultim8e-blogger.php
中,您现在可以自定义设置以符合您的喜好。视图位于 resources/views/vendor/ultim8e-blogger
✏️ 写文章
文件名格式
所有文章应存储在您的 posts_path
目录中,文件名为 2021-03-30.my-post.md
,即 {date:Y-m-d}.{slug}.md
。
slug 决定了文章将在哪个URL下可用。
Artisan命令
您可以通过Artisan命令快速创建新文章
php artisan ultim8e-blogger:new
YAML前序
文章可以通过YAML前序包含任意数量的属性
---
title: This is a new post
date: '2020-01-01 20:00:01'
cover: https://ultim8e.com/my-cover.jpg
---
My post in **Markdown**
🖥 显示文章
此软件包包含两个视图;索引视图和显示视图(用于单篇文章)。安装后,它们位于 /resources/vendor/views/ultim8e-blogger
,并且可以完全自定义。
在 index.blade.php
中,通过 $posts
变量可以获得文章对象的集合。它的工作方式类似于标准Eloquent集合。
@foreach ($posts as $post) <h2>{{ $post->title }}</h2> <div> {!! $post->contents !!} </div> @endforeach
还有分页链接可用
{{ $posts->links() }}
文章对象包含所有前序属性以及 slug
、date
和 contents
。
{{ $post->slug }} // my-post {{ $post->date->format('Y-m-d') }} // 2021-03-30 {{ $post->contents }} // <p>My post in <strong>markdown</strong></p> {{ $post->cover }} // https://ultim8e.com/my-cover.jpg
在您的应用程序中检索文章
您可以在应用程序的任何位置使用Post模型检索文章并过滤它们作为集合
use IngressITSolutions\Ultim8eBlogger\Models\Post; // Reject posts where is_draft is true or has a date in the future $posts = Post::all()->reject(function ($item) { return $item->is_draft || $post->date->lessThan(now()); });
默认情况下,文章按降序日期排序,因此要获取最新文章
// Get first post $post = Post::all()->first();
🚦 路由
软件包路由为 ultim8e-blogger.index
和 ultim8e-blogger.show
{{ route('ultim8e-blogger.index') }} // http://mysite.test/blog @foreach ($posts as $post) // The show-route accepts either a IngressITSolutions\Ultim8eBlogger\Models\Post-object // or a string; the post's slug {{ route('ultim8e-blogger.show', $post) }} // http://mysite.test/blog/post-slug {{ route('ultim8e-blogger.show', 'post-slug') }} // http://mysite.test/blog/post-slug @endforeach
定义自己的路由
默认路由使用ultim8e-blogger名称和默认web中间件组进行注册。
如果您出于任何原因想要覆盖此(例如,如果您希望文章位于登录之后,或者您不使用标准的web中间件组),您可以将ultim8e-blogger.php中的register_routes设置为false,然后自行注册它们
// /routes/web.php use IngressITSolutions\Ultim8eBlogger\Http\Controllers\PostController; Route::group(['middleware' => 'can:read', function() { Route::get('/articles', [PostController::class, 'index'])->name('article.index'); Route::get('/articles/{post}', [PostController::class, 'show'])->name('article.show'); }]); // A link to the blog index in some view {{ route('article.index') }} // http://mysite.test/articles
看看实际效果
使用Ultim8eBlogger的野生动态网站
Ingress IT Solutions已经开发了各种Laravel产品,我们希望将所有这些产品都集中在一个屋檐下,因此我们决定推出Ultim8e Apps
此Ultim8eBlogger软件包目前正在Ultim8e.com中使用
您使用Ultim8eBlogger并希望您的网站在此处展示?提交PR!
许可
MIT许可(MIT)。请参阅LICENSE.md获取更多信息。
© 2023 Ingress IT Solutions。