Grav - 蓝图


蓝图是有关资源(信息源)的元数据信息。它有两个目的 -

  • 首先是资源标识本身。
  • 其次是关于形式。

此完整信息保存在每个插件或主题中的blueprints.yaml文件中。

资源身份

blueprints.yaml文件中,为每个主题和插件定义了身份。在蓝图未完美格式化和编译之前,资源不会添加到 Grav 存储库中。

蓝图示例

name: plugin name
version: 0.6.0
description: Adds an advanced plugin to manage your site
icon: empire
author:
   name: Team Grav
   email: devs@getGrav.org
   url: http://getGrav.org
homepage: https://github.com/getGrav/Grav-plugin-assets
keywords: assets, plugin, manager, panel
bugs: https://github.com/getGrav/Grav-plugin-assets/issues
readme: https://github.com/getGrav/Grav-plugin-assets/blob/develop/README.md
license: MIT

dependencies:
   - form
   - email
   - login

form:
   validation: loose
   fields:
      Basics:
         type: section
         title: Basics
         underline: false
      enabled:
         type: hidden
         label: Plugin status
         highlight: 1
         default: 0
         options:
            1: Enabled
            0: Disabled
         validate:
            type: bool

以下几个属性是可选的,其中一些属性用于提供您的身份和资源。

先生。 属性及说明
1

姓名*

提及资源的名称。

2

版本*

指定资源的版本。

3

描述*

提供有关资源的简要描述。不应超过 200 个字符。

4

图标*

指定用于开发新主题或插件的图标库。

5

作者.姓名*

指定开发者的名称。

6

作者.电子邮件(可选)

指定开发者的电子邮件地址。

7

作者.url(可选)

指定开发者主页的URL。

8

主页(可选)

指定为您的资源分配的主页 URL。

9

文档(可选)

指定您为资源编写的文档链接。

10

演示(可选)

指定演示资源的链接。

11

指南(可选)

指定资源的指南或教程的链接。

12

关键词(可选)

指定与您的资源相关的关键字列表。

13

错误(可选)

指定可以报告问题或错误的 URL。

14

许可证(可选)

指定您的资源许可证,即 MIT、GPL 等。

15

依赖项(可选)

指定插件或主题所需的依赖项的名称。

以下是登录插件蓝图的示例 -

name: Login
version: 0.3.3
description: Enables user authentication and login screen.
icon: sign-in
author:
   name: Team Grav
   email: devs@getGrav.org
   url: http://getGrav.org
keywords: admin, plugin, login
homepage: https://github.com/getGrav/Grav-plugin-login
keywords: login, authentication, admin, security
bugs: https://github.com/Getgrav/Grav-plugin-login/issues
license: MIT

形式

如果您希望主题或插件具有可从管理界面直接配置的选项,您可以使用表单填充blueprints.yaml文件。该资源的一部分可以通过Admin Plugin进行配置,该插件由Forms元数据定义。

以下是档案插件archives.yaml文件的示例。

enabled: true
built_in_css: true
date_display_format: 'F Y'
show_count: true
limit: 12
order:
   by: date
   dir: desc
filter_combinator: and
filters:
   category: blog

这些是插件的默认设置。要在不使用管理插件的情况下配置它们,用户必须将此文件复制到/user/config/plugins/archives.yaml文件夹中并进行更改。您可以正确提供archives.yaml文件;您可以选择从用户更改管理界面中的设置。

保存更改后,它将自动写入<your_folder_name>/user/config/plugins/archives.yaml

Archives 插件的blueprint.yaml文件包含如下所示的结构 -

name: Archives
version: 1.3.0
description: The **Archives** plugin creates links for pages grouped by month/year
icon: university
author:
   name: Team Grav
   email: devs@getGrav.org
   url: http://getGrav.org
homepage: https://github.com/getGrav/Grav-plugin-archives
demo: http://demo.getGrav.org/blog-skeleton
keywords: archives, plugin, blog, month, year, date, navigation, history
bugs: https://github.com/getGrav/Grav-plugin-archives/issues
license: MIT

form:
   validation: strict
   fields:
      enabled:
         type: toggle
         label: Plugin status
         highlight: 1
         default: 1
         options:
            1: Enabled
            0: Disabled
         validate:
            type: bool

      date_display_format:
         type: select
         size: medium
         classes: fancy
         label: Date Format
         default: 'jS M Y'
         options:
            'F jS Y': "January 1st 2014"
            'l jS of F': "Monday 1st of January"
            'D, m M Y': "Mon, 01 Jan 2014"
            'd-m-y': "01-01-14"
            'jS M Y': "10th Feb 2014"

      limit:
         type: text
         size: x-small
         label: Count Limit
         validate:
            type: number
            min: 1

      order.dir:
         type: toggle
         label: Order Direction
         highlight: asc
         default: desc
         options:
            asc: Ascending
            desc: Descending

以下是archive.yaml中存在的表单元素。

切换

enabled:
   type: toggle
   label: Plugin status
   highlight: 1
   default: 1
   options:
      1: Enabled
      0: Disabled
   validate:
      type: bool

选择

date_display_format:
   type: select
   size: medium
   classes: fancy
   label: Date Format
   default: 'jS M Y'
   options:
      'F jS Y': "January 1st 2014"
      'l jS of F': "Monday 1st of January"
      'D, m M Y': "Mon, 01 Jan 2014"
      'd-m-y': "01-01-14"
      'jS M Y': "10th Feb 2014"

文本

limit:
   type: text
   size: x-small
   label: Count Limit
   validate:
      type: number
      min: 1

根元素Enabled、date_display_formatlimit是选项。此根元素中存在的字段确定类型、大小、标签、默认值和选项。根据字段类型,其他字段可能会发生变化;例如,选择字段需要选项列表。

订单方向

order.dir:
   type: toggle
   label: Order Direction
   highlight: asc
   default: desc
   options:
      asc: Ascending
      desc: Descending

该字段由嵌套选项组成。在plugins/admin/themes/Grav/templates/forms/fields中有很多可以使用的字段类型。正如我们在archive.yaml文件中看到的,表单验证设置为严格。当验证设置为严格时,所有选项都必须添加蓝图表单,否则保存时会弹出错误。当您只想自定义管理界面的两个字段时,可以将 form.validation设置为宽松。

下表给出了与上述表单元素相关的字段的简要说明。

先生。 字段和描述
1

类型

字段类型。

2

尺寸

指定字段的大小。

3

标签

指定字段的标签。

4

证实

它验证字段的类型以及在字段中输入的最小长度。

5

默认

设置默认字段。

6

选项

指定选项列表。

7

课程

指定字段的类。

管理员中可用的表单字段

有许多内置表单字段可供插件和主题使用,或者可以创建自己的表单字段。下表列出了可用的表单字段 -

通用表单字段

先生。 字段和描述
1

复选框

显示单个复选框。

2

复选框

显示复选框列表。

3

日期

包含日期字段。

4

约会时间

包含日期和时间字段。

5

电子邮件

包含带有验证的电子邮件地址字段。

6

密码

包含以点格式显示的密码字段。

7

包含隐藏的输入字段。

8

收音机

只允许从列表中选择一个选项。

9

选择

该字段包含几个选项。

10

垫片

向表单添加标题、文本或水平线。

11

文本

包含普通文本字段。

12

文本区

包含多行文本输入。

特殊表单字段

先生。 字段和描述
1

大批

添加多个键值行。

2

忽略

未使用的字段将被删除。

3

将表单分为多列。

4

柱子

显示单列。

5

日期格式

设置日期和时间格式。

6

展示

显示没有任何输入值的文本值。

7

前题

该页面以原始格式显示。

8

列表

显示没有密钥的项目列表。

9

降价

显示 Markdown 编辑器。

10

页数

显示页面列表。

11

部分

设置页面分为几个部分,每个部分都有一个标题。

12

选择

它用于选择框。

13

选项卡

设置分为选项卡列表。

14

标签

选项卡字段用于提供选项卡。

15

分类

它是预先配置的选择以选择分类法。

16

切换

它表示指定输入打开或关闭类型的切换效果。