den1n / nova-blog

该包已被废弃,不再维护。没有建议的替代包。

Laravel Nova 博客资源。

v1.3.4 2020-05-20 06:39 UTC

This package is auto-updated.

Last update: 2023-09-22 19:32:20 UTC


README

Laravel Nova 博客资源。

安装

使用Composer安装包。

composer require den1n/nova-blog

发布包资源。

php artisan vendor:publish --provider="Den1n\NovaBlog\ServiceProvider"

这将发布以下资源

  • 配置文件 config/nova-blog.php
  • 迁移文件 database/migrations/*_create_blog_tables.php
  • 翻译 resources/lang/vendor/nova-blog
  • 视图 resources/views/vendor/nova-blog
  • JavaScript 资产 resources/js/vendor/nova-blog
  • CSS 资产 resources/sass/vendor/nova-blog

Vue 初始化之前,将包提供的 noba-blog 组件添加到文件 resources\js\app.js 中。

require('./vendor/nova-blog');

将包提供的 noba-blog 样式添加到文件 resources\sass\app.scss 中。

@import './vendor/nova-blog';

迁移数据库。

php artisan migrate

Den1n\NovaBlog\Tool 类的实例添加到您的 App\Providers\NovaServiceProvider::tools() 方法中,以在您的 Nova 资源中显示博客文章、评论、分类和标签。

/**
 * Get the tools that should be listed in the Nova sidebar.
 *
 * @return array
 */
public function tools()
{
    return [
        new \Den1n\NovaBlog\Tool,
    ];
}

服务博客文章

将此路由追加到您的 routes/web.php 文件中。

Route::novaBlogRoutes();

您可以使用前缀定义路由。

Route::novaBlogRoutes('/blog');

您可以使用 Laravel route 助手获取现有帖子的 URL。

use \Den1n\NovaPosts\Models\Post;

$url = route('nova-blog.post', [
    'post' => Post::find(1),
]);

// Or you can pass a post slug.
$url = route('nova-blog.post', [
    'post' => 'my-post-slug',
]);

默认模板

博客控制器将使用 default 模板提供帖子。

模板发布到视图目录 resources/views/vendor/nova-blog/templates/default.blade.php

模板处理时会接收这些变量

  • $post: Post 模型的实例。
  • $sidebarPosts: Post 模型的集合。
  • $sidebarCategories: Category 模型的集合。
  • $sidebarTags: Tag 模型的集合。

您可以自由修改 default 模板。

创建自定义模板

首先在 resources/views/vendor/nova-blog/templates 目录中创建一个自定义 blade 模板。

例如, rich.blade.php

然后在配置文件 config/nova-blog.php 中注册它。

/**
 * Array of templates used by controller.
 */

'templates' => [
    // ...
    [
        'name' => 'rich',
        'description' => 'A rich template',
    ],
],

之后,您的自定义模板将在创建博客文章或更新现有文章时可供选择。

所见即所得编辑器

默认情况下,包使用 Nova 提供的默认所见即所得编辑器 (Trix 字段)

您可以替换默认编辑器。例如,使用 froala/nova-froala-field

为此,安装该包 并更新 config/nova-pages.php 文件中的 editor 设置。

    /**
     * Settings for WYSIWYG editor.
     */

    'editor' => [
        /**
         * Nova field class name.
         */

        'class' => \Froala\NovaFroalaField\Froala::class,

        /**
         * Options which will be applied to te field instance.
         * Key: name of field method.
         * Value: list of method arguments.
         */

        'options' => [
            'withFiles' => ['public', 'nova-pages'],

            // Froala options.
            'options' => [[
                'heightMax' => 800,
                'heightMin' => 300,
            ]],
        ],
    ],

截图

帖子

Posts

帖子表单

Post Form

帖子详情

Post Detail

博客示例

Blog Example

贡献

  1. 分支。
  2. 创建您的功能分支: git checkout -b my-new-feature
  3. 提交您的更改: git commit -am 'Add some feature'
  4. 推送到分支: git push origin my-new-feature
  5. 提交拉取请求。

支持

如果您需要任何支持,请在此存储库中打开一个问题。

许可

MIT