# Baklib开发者中心 - Full documentation > Baklib 模板开发中心主要介绍了如何通过低代码开发基于Baklib Wiki模板,CMS 的站点模板,以及数字体验场景定制,包括Liquid语言、Tailwind CSS、API 的使用和配置。 This file contains the full Markdown content of each page. Append `.md` to any page URL to view a single page in Markdown format. --- URL: https://dev.baklib.cn/overview/enter Updated: 2024-11-17 ## 标题 进入界面 ## 内容 ## 开发入口 当创建好一个应用以后,我们可以通过几个入口进入到模板开发界面。 ### 1. 通过应用 welcome 界面进入 当创建好一个应用后,在 `welcome` 界面,可以看到“低代码开发平台”入口,点击进入。 ### ![welcome-代码编辑器入口.png](https://saas.v2.bk-cdn.com/yslxukg5bfv1uf51nhmz47z0d0d5?response-content-type=image%2Fpng&e=1778326044&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:KavMBLW3_NTiBbwiOJ6YdJa3Sek=) 2. 通过应用管理界面进入 1. 当创建好一个应用后,在应用管理中的侧边栏导航中,点击【模板开发】进入。 2. 在【应用设置】--【界面展示】中,查看【模板】Tab栏,进入模板开发。 3. 在【首页布局】中,可以进入首页的模板开发(如果首页有多个展示主题,则这里可以切换不同的主题模板)。 ### ![应用-模板切换.png](https://saas.v2.bk-cdn.com/akbivu2gzrqxoqrhsmpf2njvax4v?response-content-type=image%2Fpng&e=1778326044&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:bFiOTIq-H78E-hUbU28Zb5Kx8ik=) 3. 通过页面管理界面进入 1. 在【页面管理】中,选择任意一个页面,在【内容编辑】--【页面模板】Tab里面可查看该页面的模板,点击并进入页面模板编辑。 2. 在【页面内容】Tab展示了当前页面模板定义的动态表单信息。 ## 开发界面 进入模板开发界面,我们可以看到当前的模板信息;版本信息。 * 开发版本:为非固定版本,可进行编辑和修改。 * 发布版本:为固定版本,发布以后不可修改。 ![网站模板-版本列表.png](https://saas.v2.bk-cdn.com/gkd1d5n7td89je6g71ohtzv8fx62?response-content-type=image%2Fpng&e=1778326044&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:ksSrB9Gb2vvpbLHFDPKcTUsbIZc=) 点击某个开发版本,进入代码编辑器界面,这里内置了一个在线的代码编辑器,用户可以在线进行实时编程和调试、预览。 1. 版本信息:提示当前所属的模板,以及当前的版本。 2. 目录结构:提示模板即有的文件目录结构,每一个目录具备不同的功能。 3. 代码编辑区域:代码编辑区域,代码往往由 HTML + Javascript + Liquid 语法组成。 4. 预览和保存:点击保存,新修改的内容就可以立刻应用到站点中,你可以刷新站点页面预览内容变化。 ![低代码-编辑器界面.png](https://saas.v2.bk-cdn.com/81i2egqkd0c64xqb3mp76savb0iw?response-content-type=image%2Fpng&e=1778326044&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:aJM_5lZI4gunW9hRQVRYW3nTwsM=) --- URL: https://dev.baklib.cn/theme/config Updated: 2024-11-28 ## 标题 config/ ## 内容 该目录只有一个 `settings_schema.json` 配置文件,用于定义模板的元数据信息包括名称、作者、版本号,定义的全局变量等。这些信息对于标识和管理主题非常重要,同时在主题编辑器中也会显示该主题的基本信息。 --- URL: https://dev.baklib.cn/liquid/basics Updated: 2025-01-02 ## 标题 基础(Basics) --- URL: https://dev.baklib.cn/guide/objects Updated: 2024-12-09 ## 标题 变量和方法 ## 内容 本教程介绍 Liquid 模板开发中的变量和方法使用。 ## **Object(对象)** | 类型名称 | 解释 | | --- | --- | | site | 当前cms站点信息 | | page | 页面的详细信息 | | current_user | 当前登录用户信息 | | tag | 标签 | | author | 作者 | | comment | 评论 | | plugins.feedback | 用户反馈插件 | ### **site(当前站点)** | 属性/方法 | 类型 | 解释 | 示例 | | --- | --- | --- | --- | | name | string | 站点名称 | 开心农场 | | favicon_url | string | 站点图标 | <url> | | time_zone | string | 站点时区 | Beijiang | | language | string | 站点语言 | zh-CN \| en <html lang="{{ site.language }}"> | | url | string | 网站地址 | https://help.baklib.com/ | | password_login_enabled | boolean | 是否开启密码登录 | true \| false | | sso_login_enabled | boolean | 是否开启 SSO 登录 | true \| false | | baklib_login_enabled | boolean | 是否开启 Baklib 登录 | true \| false | | nav_tree_path | | 树状导航地址 | /-/nav_tree | | pages | page[] | 通过 PATH 查找页面, 返回query关系 . 支持 created_at/edited_at/visit_count 排序 | site.pages['/'] => 获取首页 site.pages['/blogs'] | | comments | comment[] | 通过 id 查找页面, 返回query关系 . 支持 created_at/published_replies_count 排序 | site.pages['7zkpc0'] 获取对应评论 | | pages_in_list | page[] | 获取全站的页面列表 | site.pages_in_list * 数组默认返回 50 条记录,你可以自定义返回记录数: \| limit: 100 | | tags | tag[] | 站点所有标签列表,返回query关系 *-可选项,通过settings.tags自定义 | tags['tag_name'] => 获取指定名称的标签 site.tags(见下面 Tags 介绍) | | plugins | json | 插件配置信息 | plugins.feedback | | settings | json | 站点模板定义的变量信息 | | | theme_colors_css | string | 当前站点的主题颜色 | --theme-color-primary: 3 169 244 | | mcp_url | string | 当前站点的mcp地址 | site.mcp_url | ### **current\_user(当前用户)** | 属性/方法 | 类型 | 解释 | 示例 | | --- | --- | --- | --- | | name | string | 用户名称 | 张三 | | image | string | 用户头像url | <url> | | provider | string | 标标识用户的来源类型或认证方式。例如baklib sso dingtalk | baklib | | department_ids | array | 用户所属部门id | [1,2] | | group_ids | array | 用户所属用户组id | [] | | employee_id | string | 用户组织架构中员工id | 123 | | member_id | string | 用户的成员id | 123 | | uid | string | oauth授权返回第三方平台用户的唯一标识与provider 共同唯一确定一个外部账号 | vwqAvmlqGqwiSkZ8syW4zogiEiE | | id | string | provider是baklib情况下是用户id | | | profile_url | string | 个人中心地址 | <url> | | present? | boolean | 用户是否登录 | true \| false | | blank? | boolean | !present? | true \| false | | pages | page[] | 用户创建的页面集合 | | ### **page(页面)** | 属性/方法 | 类型 | 使用方法 | 返回值 | 说明 | | --- | --- | --- | --- | --- | | id | string | page.id  | 9g5hkd | 页面的ID唯一标识 | | slug | string | page.slug  | guide | 页面path/url的唯一标识 | | link_text | string | page.link_text  | 操作教程 | 页面标题 | | path | string | page.path  | /guide | 页面相对路径 | | url | string | page.url  | http://abc.example.com/guide | 页面绝对路径 | | visits_count | integer | page.visits_count  | 0 | 页面访问量 | | edited_at | datetime | page.edited_at  | | <待开放> | | published_at | datetime | page.published_at  | 2024-03-21 19:23:59 +0800 | {{ page.published_at \| time_ago }} {{ page.published_at \| date: "%Y-%m-%d" }} | | seo_title | string | page.seo_title  | | SEO 标题 | | seo_keywords | string | page.seo_keywords  | | SEO 关键词 | | seo_description | string | page.seo_description  | | SEO 描述 | | settings | json{} | page.settings  | {"title"=>"操作教程", "description"=>nil, "tags"=>[]} | page.settings.title page.settings.tags | | author | author | page.author  | | 本页面作者 page.author.name page.author.avatar_url | | parent | page | page.parent  | | 本页面的父页面 | | children | page[] | page.children  | | 子页面集合 *数组默认返回 50 条记录,你可以自定义返回记录数: page.children \|limit: 100 | | children_in_list | page[] | page.children_in_list  | | 子页面集合,排除不在列表中显示的。 | | children_in_nav_menu | page[] | page.children_in_nav_menu  | | 子页面集合,排除不在菜单中显示的。 | | pages | page[] | page.pages  | | 子孙页面集合 | | pages_in_list | page[] | page.pages_in_list  | | 子孙页面集合,排除不在列表中显示的。 | | prev_page | page | page.prev_page  | | 上一个页面 | | next_page | page | page.next_page  | | 下一个页面 | | comments | comment[] | page.comments | | 页面评论集合 | | breadcrumb | json | page.breadcrumb  | | 页面面包屑 {"link_text"=>"首页", "path"=>"/"}{"link_text"=>"操作教程", "path"=>"/guide"} | | visitor_posted_feedback | boolean | page.visitor_posted_feedback  | false | 是否已提交反馈 | | last_feedback_emoji | string | page.last_feedback_emoji  | | 反馈的项 | | versions | page[] | page.versions  | | 版本页面集合 | | markdown_path | string | page.markdown_path | | 当前页面的markdown 输出path(请配合 页面属性 to_markdown 属性 模板变量 Markdown 输出 | | markdown_url | string | page.markdown_url | | 当前页面的markdown 输出url(请配合 页面属性 to_markdown 属性 模板变量 Markdown 输出 | ### **Comment(页面)** | 属性/方法 | 类型 | 使用方法 | 返回值 | 说明 | | --- | --- | --- | --- | --- | | id | string | comment.id  | 9g5hkd | 评论的ID唯一标识 | | body | string | comment.body  | guide | 评论的内容 | | created_at | datetime | comment.created_at  | | 评论创建时间 { page.created_at \| time_ago }} {{ page.created_at \| date: "%Y-%m-%d" }} | | author | author | comment.author  | | 评论作者 | | reply_to_user | author | comment.reply_to_user | | 回复内容作者 | | target | page | comment.target  | | 评论主题 | | parent | comment | comment.parent  | | 回复的评论 | | root | comment | comment.root  | | 评论所属一级评论 | | replies | comment[] | comment.replies  | | 评论回复集合 | ### **version(版本)** 返回当前 `page` 页面的前 50 个版本信息。 | 属性/方法 | 类型 | 解释 | 示例 | | --- | --- | --- | --- | | name | string | 版本名称 | v1.0 | | url | string | 版本 URL | url | 用法 {% assign version_count = page.versions | size %} {% if version_count > 0 %} {% endif %} ### **tag(标签)** | 属性/方法 | 类型 | 解释 | 示例 | | --- | --- | --- | --- | | path | string | 标签页面的路径 | /-/tags/AxdEf | | name | string | 名称 | 测试标签 | | color | string | 字体颜色 | #42445A | | bg_color | string | 背景颜色 | #42445A | | color_hls | string | 颜色计算 | background-color: hsl({{ tag.color_hls[0] }}, {{ tag.color_hls[1] }}%, 90%); | | pages_count | integer | 含有该标签的页面数量 | <待开放> | | pages | page[] | 含有该标签的页面列表 | | 页面的标签通过在 `settings` 中动态定义,通过 `page.settings.tags` 方法调用。 {% schema %} { "settings": [ { "id": "tags", "type": "tag_picker", "multiple": true, "label": "标签" } ] } {% schemaend %} * 页面中的调用示例: {% for tag in page.settings.tags %} {{ tag.name }} {% endfor %} site.tags 则返回当前站点的 Tag 标签集合 通过 tag\_name名称获得 tag变量 {% assign tag = site.tags[params.tag_name] %} ### **author(作者)** | 属性/方法 | 类型 | 解释 | 示例 | | --- | --- | --- | --- | | name | string | 作者名称 | 张三 | | avatar_url | string | 作者头像 | | 操作示例: {% assign avatar_url = 'images/icons/icon.svg' | asset_url %} {{ page.author.name }} ### **plugins.feedback (用户反馈配置信息)** | 属性/方法 | 类型 | 解释 | 示例 | | --- | --- | --- | --- | | helpful_types | Array(JSON) | 用户可选择的表情列表 | plugins.feedback.helpful_types | | helpful_types[0].emoji | string | 表情符 | 😊 | | helpful_types[0].label | string | 表情符对应的意思 | 有用 | | helpful_label | string | 提示用户选择表情 | 您的反馈是对我们的产品极其重要 | | message_enabled | boolean | 是否启用反馈留言 | | | message_required | boolean | 当开启反馈留言,反馈留言是否必填 | | | login_required | boolean | 反馈是否必须登录 | | ## **Filter(函数)** | 名称 | 解释 | | --- | --- | | order_by | 排序 | #### **order\_by** 对`page`列表进行排序,排序规则: | 参数 | 解释 | | --- | --- | | created_at | 按照创建时间排列 | | edited_at | 按照修改时间排列 | | visits_count | 按照访问量排列 | > ***在参数前添加***`-`,代表倒序排列 示例: {% assign tag_pages = tag.pages | order_by: '-created_at' %} | 名称 | 解释 | | --- | --- | | where | 筛选 | #### **where** 对`page`列表进行筛选,筛选参数 | 参数 | 解释 | | --- | --- | | template_name | 模板名称 | 示例: {% assign pages = search.pages | where: 'template_name', 'post' %} | 名称 | 解释 | | --- | --- | | feedback_count | 反馈数量 | | feedback_type_count(page, useful_type) | 某个反馈类型的反馈数量 | #### **feedback\_count、feedback\_type\_count** 获取`page`的反馈数量 示例: {{ page | feedback_type_count: '😊' }} //😊表情的反馈数量 {{ page | feedback_count }} //页面总反馈数 | roots | 一级评论 | #### **roots** `comment`列表一级评论 示例: {{ post.comments | roots | size }} #### **meta\_tags** {% meta_tags %} 这个标签会在 head 中自动添加如下内容 * 参考: meta-tags gem * charset=utf-8 * title SEO 标题 * theme-name 模板代号 * theme-version 模板版本 * theme-scope 模板类型 * 模板配色变量 * favicon/image-src/share 都在mate\_tag实现了 * <link rel=\"icon\" href=\"\{\{ site.settings.favicon\_url}}\"> 删掉,集成到了 meta\_tags #### **paginate\_tag** 这个可以对数组或数据库查询分页,在这个标记内,会自动生成一个 paginate 变量,可获取如下属性: `engines/theme_engine/lib/theme_engine/liquid/drops/pagy_drop.rb:26` { 'total_count' => @pagy.count, # 总数量 'total_pages' => @pagy.pages, # 总页数 'per_page' => @pagy.items, # 每页数量 'current_page' => @pagy.page, # 当前页码 'prev_page' => @pagy.prev, # 上一页页码 'next_page' => @pagy.next, # 下一页页码 'last_page' => @pagy.last, # 最后一页页码 'from' => @pagy.from, # 当前页码的第一条记录的序号 'to' => @pagy.to, # 当前页码的最后一条记录的序号 'series' => @pagy.series, # 页码序列 'page_param' => @pagy.vars[:page_param], # 页码参数名称 'url_for' => UrlFor.new(@pagy) } 分页不需要传 page 参数{% paginate_tag products, per: 5, page: params.page %} => {% paginate_tag products, per: 5 %} 其中 `url_for` 是一个自定义函数,可以通过 `paginate.url_for[2]` 生成第二页的链接,生成分页链接的例子。 前端用法:`themes/cms/test/snippets/_paginate.liquid` {% assign pages = site.pages['/'].pages_in_list %} {% paginate_tag pages, per: 4 %} {% for page in pages %} {% render "card", page: page %} {% else %} {% assign empty_i18n = "empty.name" | t %} {% render 'empty', message: empty_i18n %} {% endfor %} {% render 'paginate', paginate: paginate %} {% endpaginate_tag %} #### **search - 搜索表单** 可以通过关键字或者标签搜索,搜索页面的可使用的变量包含: * site - 全站通用变量 * search - 搜索页变量,其属性如下: * pages - 搜索结果 * keywords - 搜索的关键字 * tag - 搜索的标签 `app/drops/search_result_drop.rb` {% form_tag 'search' %} {% endform_tag %} 2024.1.27 提交新代码,以上代码已废弃 搜索表单,可通过 `form.keywords_field_name` 获取搜索输入框的 name 值 {% form_tag 'search' %}
{% endform_tag %} 结果返回: {% paginate_tag search.pages, as: 'items' %} {% for page in items %}
  • 搜索判断(新增){% if search.tag or search.keywords %}

    {{ "search.result.t1" | t }} {% if search.tag %} {{ search.tag.name }} {% endif %} {% if search.keywords %} {{ search.keywords }} {% endif %} {{ "search.result.t2" | t }}

    {% endif %} #### **Breadcrumb** 用户可以通过 `page.breadcrumb` 输出的 JSON 数组,自己循环生成,如: `themes/cms/test/snippets/_breadcrumb.liquid` {% comment %} @params breadcrumb array of objects with keys: link_text: string path: string {% endcomment %}#引用: page.liquid {% render 'breadcrumb', breadcrumb: page.breadcrumb %}#实现: snippets/_breadcrumb.liquid # 前端最佳实践一个优秀的面包屑导航需要满足:1)移动端不会因为面包屑太长而被挤压;超出的部分可自动水平滚动;2)文本不会因为被挤压而截断。前端生成的代码: 解析:overflow-x-auto 实现了溢出部分水平滚动breadcrumb 必须;为面包屑自定义cssbreadcrumb-item 必须;为面包屑自定义cssflex 使“/”和文本在一行(不被挤压)break-keep 使文本在一行(不被挤压) #### **feedback - 用户反馈表单** {% form_tag 'feedback' %} {% endform_tag %} #### **password - 密码登录** {% form_tag 'sign_in_with_password' %} {% endform_tag %} #### **ssb - Baklib 账号一键登录** {% form_tag 'sign_in_with_ssb' %} {% endform_tag %} #### **sso - 企业 SSO 账号一键登录** {% form_tag 'sign_in_with_sso' %} {% endform_tag %} #### **I18n翻译** 模板设置翻译: `"t:setings_schema.beian.title"` 页面翻译: `_("备案号")` 模板翻译: `{{ 'setings_schema.beian.title' | t : '默认值' }}` #### **颜色选项卡** 站点主题设置默认添加的颜色选项卡,共6种色卡可定制,如图所示: 在站点设置页面定制好色卡颜色后,可在代码中使用,具体方法: text-primary text-primary-lighten text-primary-darken text-primary-50 text-primary-600/50 --- URL: https://dev.baklib.cn/install/introduction Updated: 2024-11-28 ## 标题 模板介绍 ## 内容 **阅读对象:**Baklib模板开发人员, IT部门前端开发人员 **阅读场景:**1)新开发一个站点模板;2)定制化修改已有站点模板。 ### **模板介绍** Baklib 是一个混合 CMS 系统,系统中的每一个应用站点(包括 CMS、Wiki、Community)的前端界面都是由一个模板驱动的。一个模板构成了一个应用站点的基本构架,后端负责承接知识库内容,前端负责体验界面展示。以下是Baklib模板引擎流程图: ![Baklib-Theme-Engine.png](https://saas.v2.bk-cdn.com/egecz4aer6hqla0ccck2xzokmaxb?response-content-type=image%2Fpng&e=1778326044&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:Fj6M5z6CNviKIeldxqq7C1G4mCc=) 模板引擎流程 你可以把模板理解为启动一个应用站点的初始化库,前端界面都在这个模板库中实现,而且前端模板完全开放,方便用户对前端界面进行任意形式的修改。 * 模板具有固定的文件目录结构。 * 模板语言由开源的Liquid语法实现。 * 后台输出固定的模板变量 API,供Liquid调用。 * 你可以将模板托管在Baklib默认的git仓库中,也可以托管在Github/Gitlab/Gitee等第三方存储库。 ### 模板分类 * **公共模板:**系统内置的标准模板,在【工作台】--【市场】中查看。 * **组织模板:**组织从公共模板复制的模板,或者从外部git仓库导入的模板。 🙋 公共模板不可编辑(但可以复制为组织模板),组织模板可以在线编辑并发布。 ### 在哪里查看模板?
    1. 首先,当我们新安装一个应用站点的时候,会进入【工作台】--【市场】中查看模板列表。 2. 其次,在应用站点创建成功后,可进入【后台管理】--【模板开发】到模板开发界面。 ### --- URL: https://dev.baklib.cn/overview/themes/support-portal Updated: 2024-11-17 ## 标题 CMS: Support Portal ## 内容 ![index-1.png](https://saas.v2.bk-cdn.com/hchz1ehyai8o5a342dwir0zh2j5u?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:mUHED89uHc92GeL8dnMFj19wWnA=) **模板类型:**CMS 模板名称: Support Portal **模板介绍:**Support Portal 是一个功能强大、操作简单的在线支持平台,包含知识库、发布日志、FAQ、视频、博客等。 ## 首页主题 该模板预设了三个首页主题风格:List书目风格、Help Center风格、Docs文档风格。 **List书目风格:**首页直接呈现了整个站点的页面层级导航,类似图书目录,简单直接。 ![index-list.png](https://saas.v2.bk-cdn.com/p9xvjvzcnfnrfbdtodvws8qewuae?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:7x4p5t5jBm4kof4g5uOMdlNpWYk=) **Help Center主题风格:**首页横幅图片背景+大搜索框。 ![index-help-center.png](https://saas.v2.bk-cdn.com/3kkl9xyjdsy4dtbr0elqhdfx76r3?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:qgvJq5VTclLXIAJGOtxQ7ILlh_E=) help center主题风格 ![index-full.png](https://saas.v2.bk-cdn.com/0xqiqb5dk6tpywln4g73fzmjzrrk?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:QwGF89BlZYvZHrn7TRrQAc2XEuU=) **Docs风格:** 首页Card版块栏目布局,适合做企业帮助中心、技术文档、客户支持文档。 ![index-docs.png](https://saas.v2.bk-cdn.com/31x14gr0py33eutui6kxfbkink72?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:NQ_qDwoq3bqIXyX14fyc-xp_Kbc=) ![docs.jpeg](https://saas.v2.bk-cdn.com/u8v00h5ua2kkxb98qo7rgr8bn1a8?response-content-type=image%2Fjpeg&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:tPEU5EHAA26U3wFU6U7Jn0xiy4Q=) ## 其他页面预览 内部页面、搜索页、标签页预览效果。 ![search.png](https://saas.v2.bk-cdn.com/vx2w9xttvd0xzstsiu169bwrsvhv?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:OIEL3Q3kJ5hBD8cYf35cHBDhpRQ=) ![page-full.png](https://saas.v2.bk-cdn.com/vwf0x02625qy63dzoxuyhmm68czf?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:mkM4uBsFpgSdNfSzkD9gS_0b4ec=) ![page-dark.png](https://saas.v2.bk-cdn.com/bmkn0oj1b2nqmntny75342b3fkw6?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:_HCjAQdpHmF_StwHfFOEUx-v0mk=) ![page-dark (2).png](https://saas.v2.bk-cdn.com/vasqfxud3arqo7arl5qegs892aq4?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:zmBPElsv-4XwQHQaaQekQJbffjw=) ![page.png](https://saas.v2.bk-cdn.com/f37mavbmq8ii93aanmtdj9vx0mfh?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:C_Vl5e3jB6tbXDYxjlCTDnGEldQ=) --- URL: https://dev.baklib.cn/overview/themes/guide/fe25 Updated: 2024-11-17 ## 标题 主题安装 ## 内容 ## Guide模板介绍 名称: Guide 概述:小型文档内容管理,可用于构建产品手册、指南、FAQ、Release、Blog等 模板特点: 1. 首页简洁明了,一排到底,没有复杂的层级结构。 2. 提供了卡片列表和文本列表两种页面排版。 3. 搭配Tag标签分类更显得内容丰满。 适合场景: 1. 小规模文档内容管理,注重用户体验。 2. 作为无头CMS内嵌到其他软件内,用于移动端访问效果更优。 不适合场景: 1. 不适用于复杂层级(三级及以上)结构的文档排版 ^ 效果预览: 首页Card主题效果 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MjI1ZmYzMjg4NGY2MTY2NDU3YWVhZTg0YWYyODBhOGJfMWdXTmpzV1FEWmN1a2w4OE1wQzk0UFJ0dnc0QlpWVUZfVG9rZW46VG1Bd2JjTUVBb1oxeWN4eGxHNGNLb2JxbjBjXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGZlY2NhNzFjMWU3ZTUxNzUyMzYwYzgzNmNjZWEzZmJfVnkwWDI0aHR5aUNHaE01MEVmSHlwU2hRelJLTkJKYXVfVG9rZW46WUJJN2JyNlY4b09zQVh4Mk1Ib2NCWVBkbkZiXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NjE5NDAwODc2ZDc0Yjg0MTgyMjE4N2M1MWJlOWEyNjVfU2VYemh1N2RZTGdXTFFlclF1SnVoaVg4cjNtZVZYb3FfVG9rZW46V05FeGJyUHdkb0dqVlJ4bFBuNWN5R2dtbmljXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 标签页: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YjFiMzUwODIyMjZkZTNlODQ0YWEzMzExYTkxNmU0NzZfUjZETGJ5ZE1GdlA0SEhnYnVwRFYwV2FueWI5NXhCN25fVG9rZW46Tm50N2IzVU5Qb0FyTEJ4NE5acmNxT0tibmtlXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=Mzc2MWU0NjAzMzg5ZWNmNTZlMmRiOGMwNmEzNmRhY2VfdkNNNUloa0VZYlJkVnR1QWhrWjhST0xudmxmWFhNVFJfVG9rZW46VTRLbWIzcUtzb0dwRmR4UWRjV2NBRmZFbjJwXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 首页List主题效果 搜索页: 详情页效果 ## 视频教程 如何十分钟创建一个Guide模板内容站点 * Guide 模板视频教程制作 ^ ## 创建Guide模板站点 在模板市场中找到“Guide产品指南”的模板,进行应用创建,需要3步完成: 第1步:选择模板 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=N2M5ZTNiODE4ZmJkZGIwOTJiZjY1MjIwMmFkOWVmNjZfQWhGaGNQdDJNS1FYZXBOZlNtMUxuNk93MkxrbDNPbW9fVG9rZW46RGNSVmJNMGxTb3lIWlp4Vmx6OWN5a3ZNbmhjXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZmVhNzQxZjRmMWU5ZDMxOGNiYzFjY2ZmOTM0YjRiMDZfNDYyc3RLTm1RRXpjN0ZnMFZTamxzVjdmNER4ems2V3pfVG9rZW46VUUyMmJCMnRMb2s0d2R4MkhMSGNjbzdFbnViXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGQyYjdiMGNmZDY1MjEzMmFkYzhmMmIxZTAzOTMzYjlfNUdwUzRMeG5PSUozZTdjbklDYThoaTNnb0VubUZsWVRfVG9rZW46Wm5UWmJLbVFBb2NEQnh4TUZ1RGNnSUtUbmNoXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 第2步:设置站点 第3步:初始化页面 创建成功后,进入站点管理界面~ ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZjMxZjUxY2YxZGMzZTNkYjUzOWIwNjEwNjYyNmNjYjlfWHdUY29oMXZJZVdybkR2T1ppQ3BHcW4zT2EzRXdmYUdfVG9rZW46UkdVNGJFRERxb0MyMEt4d0dtN2NuMXhObkNlXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 前端预览效果如下: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MzdhZGIyMWY1NDVlODkyOWM3MmU2ZjEyYjE3ZmU0YzZfU0F4R01SWWpqWWt1YkUzODczQ0FRbTg5cnR0a1FhSnFfVG9rZW46SmhpSWJQSlFzb0kxVk54U3dkSmNjdE9JbjdnXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 可以说一个基本的Guide CMS网站就创建好了。接下来需要做的事情,就是不定期的在后台新增页面即可。 ## 进阶设置 ### 站点设置 关于如何完善一个CMS网站的设置,包括基本信息设置、域名管理、访问控制、多应用关联、反馈设置以及回收站等功能,这里不再一一讲解,大家可以去参考CMS站点的教程。 接下来重点是要讲解基于本模板的一些特别的设置。 导航到工作台“应用设置--> 界面设置”: 站点基本信息: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=OWJjOWJjM2U4NjAyZjc3Yjc3YmM1NzU5MTVjYTdjZmFfbk44VFZGd2R3WG9nQWJ0YmdWanRIWmUzOWVoa1NRVnhfVG9rZW46WVdKbWI1TWlFb2o4OXJ4eE03OGMzd0tHbktkXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NjA1ZmY1YWVjMDdmZjNkMTM4NzVhZGFmZWU3YzI5OWJfNWFKMUNXWW9TMXRrNGRlODNCNGxFTUNVUDAwQzBvQlRfVG9rZW46RnRWb2JOWlZFb2ZNeEd4VTFiQWNPdkIwbjVyXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NzVlMzhkYTdhZTFmZDM3MGM4OTBmMmQ2ZWY3NGM4YjBfb1hLUU9zblMzWDZDUDFHMEtXRGpUaEwyY3hFU2xIelRfVG9rZW46QWpoOWJZQTZXb2JaQVh4MGI5RWN1VjE4bmFkXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MzNlZDE5M2Q1YjUzY2VhM2RlM2M1NTcwN2JiNmRjMDRfdWZMbFlubTdnVFNseVU0eGU3d1h5ODBoRk9mOHFsMUhfVG9rZW46VUs4YmI0TXJ4b1JNOW14dHhFNGNYSWphbkFjXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 品牌相关信息设置: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NGQ5NjNjNzkxMzQ3ZGQ4ZWY0MTUyNGI1MTViOTZmZDFfbTVVWU5ZQW1Id0tWWnRHNDQydXZ5bUV2VmFnTVN2eFNfVG9rZW46S2dtcmJ0VFQ4b2JRMXF4Y0lhb2NYT3NPbnBkXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 站点设置主要包括: 1. 站点基本信息 2. 品牌相关信息 3. 页头页脚导航信息 4. 站点主题颜色 当设置好站点信息以后,一个网站的基本骨架就构建完成了。在接下来的事就是讨论如何添加网站的页面。 ### 页面设置 页面设置 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NzhjYzZjOTJmZTc3YjZkOWVmNTlmYzVlYmY5MjcxODRfVFl5RFlCVFo3aG5wUVh6RldwT3p0UUVOd1FhZGt5blVfVG9rZW46Q0ZhNmIyZVB2b0pybGl4eGV4R2NOcUQwbjJiXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=Y2E4Yzc2ZjBkNTk0ZWY1ZjI3MWQ2NWVjZWU2NDQzODFfcWJiNGpiZVhNTzJHYzVUZUJPU1NnR0tTcDNoeHJBWEZfVG9rZW46SUJMRGJveUgzb0ppTEN4d1hReWNVdVM2bnVmXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 预览 页面的设置也相对比较简单。主要是提供标题、摘要、标签、封面图、和内容。 我们可以看到页面设置的前端效果,同时在移动端也会有很好的适配。 ### 子页面 本模板的页面是支持添加子页面的。且子页面的添加可以无限级,但是在前台只显示本页面的子页面一级,一次类推。 后台 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MWFiM2IyNTcwNDEzZDk0M2VjNGU1MjJkYjdmODVhODlfSm9sSmZ3djVjTmZobHRxcHVzU0tDS2YzMzRKY2dYN3FfVG9rZW46REVtV2JFd0Qyb3BYVU94amFXNmMwSDlibnVQXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YjA4YzA1ZDgwNDA5ZjBmYzlkNTFkYzUzZDQ1NTdmNzdfR2JFdm91N0dmQkFoeEo5Y29JaXIwUlV2TUxRU1hHeWtfVG9rZW46WHRDZGI2bDRxb0NKRnl4QktzSGNUa3FKbkFiXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTA1ZGUxNDk3NmEyMTIzYzg0ZDU3OWZjMzMyNTAxMmRfTlFVUTVpOXFjdkllcGZGZ3lyQVNENEJnY3pwcEE5RDRfVG9rZW46RTB6dmJpdWs1b3ZuNTJ4STRUVGNJQThMbnRoXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 前台 ### 标签设置 本模板还支持标签设置管理,站点设置的标签,在添加页面的时候可以为每个页面打标签,前台实现标签分类: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=Yjg1NTU2NTQxODVmMzc2YTBkNTdmNDFhOGMwMDI2OWRfS1oxeEZ6Njh1R3Mxdkhndno4REFJV0dNSTJUZkRwU3VfVG9rZW46T3o1eWJWQ1dJb2lBMXd4eDVXS2MwaHVjbm9zXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) ### 用户反馈管理 在每个页面内容下方放置了页面反馈表单,可以通过后台设置是否启用反馈,是否启用反馈留言: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MjM4ZmQ0ZWE4ZmM2ZDU1ZDQ5NWY5YTc2NDkwNmJhZjZfSmcwR1BrdXY5SDYydnBxZ2dJUjg2RWpoMkQzNFVxUlVfVG9rZW46UjRRWmJneHI3b0p2RXJ4TUl6TmNsdnVLbkFoXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) ### 首页主题更换 本模板预设了两个首页主题。一个是card模式,基于图片封面展示页面列表,这种风格主要突出图文的表达。 另外一种是list模式,直接展示页面的标题摘要列表。 这两种风格各有特点。 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YmFmNGZhN2FmNGQ0ZDhjN2I3ZjE3ZDc4NGQwY2ViMGFfMjh2OHlIRGt6UDRKRXF6VzJnVlBwcWdRR292QlRINGhfVG9rZW46V1RxcWJubHFDbzZ5eHB4WDNUc2NFNmt3bldlXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) ### 其他特殊技巧 该主题可以设置用户反馈、页头、页脚部分是否显示的状态。同时,本模板创建的应用在移动端的展示效果会非常的简洁流畅,也适合于内嵌在应用当中做帮助中心指引。 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=N2VmNDhmZTAzOTk3NWNlM2FkY2UwNTg2YzVlODYxOWZfSFVaMVp2N1U2RkFDZ0JMREVQbzViNnRvc29jR2tpaTlfVG9rZW46UUhNOGI2NFNRbzBVa0x4d21wcWN5UjhsbkNkXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NDkyYTFlMWIzNzFkMjcxNmY5YTJmYTllZjE1ZTQxZDBfM3Z5allickZMRm4wWEJ3YXh4Y3lwVUFXakJUQ3plTklfVG9rZW46STBuT2J1ekd0b3RsTVZ4dk5HWmNZZEh3bmVkXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MThhNTkzNzU0Yjg2ZmM2NWQ0ZTVkM2U5NzdiOWI2MTNfTmNUTG03dTU1cHR6a0ZyOXdCNU9KSlZwU2JmY3hYenFfVG9rZW46UVV3Z2JpWmRtb2FDUlF4bG9mUWNXVTVqbnloXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) ## 低代码开发 通过以上的配置和说明,已经满足大部分用户的需求了。 但是如果还需要更进一步的魔改网站界面怎么办呢? Baklib低代码平台就该出场了。这一部分将直接进入低代码模板开发环节。 模板layout: {% meta_tags %} {{ 'editor.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {{ 'css/main.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {{ 'javascripts/main.js' | asset_url | script_tag: defer: true, data-turbo-track: 'reload' }} {%# TIPS:在低代码平台开发时,请打开下一行代码注释 %} {% if true %} {{ 'javascripts/cdn.tailwindcss.js' | asset_url | script_tag: data-turbo-track: 'reload' }} {% endif %} {% if site.settings.is_allow_header %} {% render 'header' %} {% endif %}
    {{ content_for_layout }} {% if site.settings.is_allow_footer %} {% render 'footer' %} {% endif %}
    页面模板和片段: themes/cms/guide/templates/ index.card.liquid index.list.liquid page.liquid search.liquid tag.liquid themes/cms/guide/snippets/ _card.liquid _feedback_form.liquid _footer.liquid _header.liquid _list.liquid _page.liquid _sidebar.liquid _sub_page_list.liquid ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTdiZDQxY2VmNDgwYzQ0ZTNjOGVjN2M4MGMzZDA5NmVfU1B3Mm5kYWVOSE9lWkJJdWtXVmViQXVDaE5zOXI4YkNfVG9rZW46U0N2RWJRaDhPb3gxRWx4V1lzZGM3SkpibmxmXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) 暂时无法在飞书文档外展示此内容 当知道模板和对应的页面板块的关系以后。我们就可以针对性的修改。 不同的部分来完全的定制化每一个方面。 ## Guide模板构建的页面参考 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NzBmZDMxYzUyMDcxYjNkOWFmZmU1MTg3ZDA1YzIxZmNfVWRqZFRTODRFN24wbmc3NWtsQW45QzJjblQwTjFRb0FfVG9rZW46VVJWbmJxb2t4b0lYMVN4OTV4a2NmMjE3bmdoXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YjUyMzM1NzM5MGJlYTk4MWQ3ZjE2MGQ1ZmY3NDFhMjZfZVB5bUdHekNxZ2xqNThuazBOaXpzcEhDNE9iRWNua3FfVG9rZW46WXp2OWJzdmVkb0F4QWZ4eTBwYmNlQk1jblRjXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YWYxNWIwNjMwM2M0NDhjMDUwZmVjZDAxODlkNzkxNzNfd1E1bFhad25oNXpXamFtd0p6MFVGRUhFYVN1MlQ3Q2xfVG9rZW46UXRsSWJsaFVqb0Jpem94N0xmRmNyaEVWbjdjXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=OTExOWQ1ZjU4NTM2ZDljNTdlNDBmODU4ODUyODZlZTZfRWlXZVNkMmdTWmlLQ1FHaWJPYzE1bEVkS0Y2VDRzY2NfVG9rZW46TUdFUmJUQjhRb0FCQ1R4ZXhUT2N5ejRibnBGXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MGNiZGYxODhhYTlhOTZjMTcyNjk2M2U3NTlmYmNiZGFfV2hSR21PYmd4bnAwTnZKSTBLNkt1bjdZRll0Y0l0eUpfVG9rZW46Qk5VVWIwQm5Wb0xJOXF4aEtGRmNaMjJQbk5jXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YTczMzUyYzM2ZGRlM2MyM2VkZjFlOWQwMmJlNzc0NWRfc2tESGg5YVlRdGlURzNrMTdNRnRieU01YkVkQUFIdFRfVG9rZW46TlRJeGJ4cEFib25EWTl4TGp6Z2NmZHhTbkxjXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NTBiZWE1MWFlMWVhMWI5Nzc5M2EzMzlhZWE1M2YyZTZfaWEyYVJwUWxoNjJtYkVaQzRBU3pzT0paS0hpOFBKQjBfVG9rZW46RGV2bmJVWXNmbzF6Nmt4c0laSmNkd3NtbndHXzE3MTA5ODA2OTc6MTcxMDk4NDI5N19WNA) --- URL: https://dev.baklib.cn/overview/themes/support-portal/05dd Updated: 2024-11-17 ## 标题 开发指南 ## 内容 ## Docs 模板介绍 名称: Docs 概述:基于CMS的中型文档内容管理,可用于构建在线帮助中心、文档知识库、技术手册,内置多首页主题 模板特点: 1. 首页具有更多样的布局方式,充当站点地图的引导作用。 2. 支持多层级的树状菜单,让用户在任何时候都不迷路。 3. 强调搜索框和搜索自定义功能。 适合场景: 1. 中等规模文档内容管理,注重用户体验。 2. 作为无头CMS内嵌到其他软件内,用于移动端访问效果更优。 不适合场景: 1. 对知识库内容编辑协同、编排管理要求高,知识内容输出需多版本、多复用的场景,建议采用Wiki模板。 ^ 效果预览: 首页预览 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YzhlYTlkMDA5NzA4ZmY3ZDcxZWRiMDQ1NjUzNDVhOWZfaG5PeGpzdmliSktPRWM0UVhObWJJZDdZbEY1NGo5MGNfVG9rZW46S2hLZmJtd2U2b1ZQcXJ4cGpkTGNoWFB0bmplXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MWE2YTE5ZWIxZWM5ZWNhMTA2NjlkNGNjZWE4ZTk2MDFfWjdiNldacEN2WTRXSkNjM2duWXpMQW1pN0JXVUhNTDRfVG9rZW46SXNvV2I4dVowb0h1QzB4bXpuaGNHbzZublBjXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NDc0ZTExYjM5ZjIyNzhiYjMyZmZmZGRhM2E4NTdkMDZfTWhZUklpVXB6U25sdG9EWnNrWER4UWs4SnRkSnVsU1JfVG9rZW46RThWemI5TFVNb0s2VkN4MjN2NGNmZXJ0bjVIXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YTgwOGEwMjk5MTM4YTFkYjZhYTgwMDEzMTAyMzg1M2NfVVhuZEdMYVAzaXpvQ28wTDlQeEs4Z2lPTDZCZWlrZVhfVG9rZW46VVhOZmJjQWx4b1ZQUFN4Zmw5NWNub1FKblVmXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YTkxMzM3N2RjMThiMjc2YjY1MzY5Y2QyYmQ5ODA1ZjRfRUFnSk5PcVlnOU9FTEo3VnBsNGRTeUlST2VPWDkwa2hfVG9rZW46UGR3SGJ1V1Fyb3RBc2N4cUdINWNIYTVCbjRlXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NDNmY2FjYzYyZjIwNzA2MzRjYzIzYWRhNmVhYjllYWFfWllwdWx3OHhZMEtydUhWWUNJRFRGcDFMY2I3V2lTTkFfVG9rZW46SkdDV2JzM2Jsb1FSS2N4eFBaM2NOSWtOblhWXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=NDFkOTBiMDI3YjA4MTYyM2UwZmZlMDNkMjZlODY2NjJfVlg3cThRQld2eWVBTTNNdnlSQnNNZUdjUnFlMnBBZDlfVG9rZW46SjJXdmJMVDdQb1VQNXl4UWE3bmN0R2VNbkFnXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) 详情页预览 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=YTE1NjUzOGI5ZTA2YTI4OTM0MjYyMTUwZjA4YWVlYTRfQVNpSkNTaG5HRnRBdWM3eDNxZWFkTk1Ud0w4bHNWbGVfVG9rZW46WnNOS2JWU1V1b1lmcFR4SUdxWGNNaEhHbm1jXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) ## 创建Docs应用站点 在应用市场找到“docs文档管理系统”模板,点击安装,一共三个步骤: 第一步: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MThkYjI5MTMxZGM4MjFjMTdhMjk3MDJlM2E2MjEyMzNfdWFxeFlwT0xiWDRwakJuUnh2aUxtMFdCNjFyTEhLZVZfVG9rZW46Q3FRYmJzTnBNbzMxSjd4RkJNbGNGRm8ybjFmXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MGVlODk2ZjRjZTVlYTJmOWVlMTc2MWY2MGE0MmU3NDRfOXNGbEVzU0hvU1ZNVVIwS0xkNEdPMFdLQkNOckRnMzFfVG9rZW46QWQ3S2JNR1lob1RtT0h4R3Y4TmN2Q1BQbnViXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA)![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MmVhNjUxODZlNDc2YTQ0YjdmMzFjZTAwOWU2YzAyMTBfQW5wZkNZSGc0VnVHRHFVWTVJeWJFcmxYcE03YzhHUUVfVG9rZW46VFN5Q2JJb29Yb1ZWRGh4Y09BNmNOeWZobmxlXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) 第二步: 第三步: 创建成功后,文档站点的预览效果如下: ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=OWE0YjY3ZGYzMTczYzZjYjg4M2MwNTk3MmFkZTliMDNfc0ZJTTRuYUw4cklqTHpFaG9NendmMmM0d0lUN2l1SEpfVG9rZW46UU05NWJHb09mb0phaGh4Q0tvUmM4c0tSbmhkXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) ## 站点设置 接下来我们将考虑如何打造这个主题模板,进入“站点设置-->界面设置” ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MGZjYjJiMzNiN2E5YzY5MTZiYzM2ZDYyMDMzMzZlZGJfc1FVMHdyTnVrVk1xVmJRcDQ1b0JyVmwzZEJPZVZ2eHdfVG9rZW46TWFHUWJmdkl3b2c0UHV4NFE0Q2M5MjJvbjRnXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) Logo图标:显示在站点页头或页脚 首页背景大图: 搜索框后面的背景图,一般采用虚化的深色图片。 站点描述:即一句话口号 热搜关键词:后台自定义的关键词。这个是Docs模板特殊的设置内容,我们可以看到 ## 首页设置 设置好站点内容,并添加相关页面以后,整个站点的展示效果就丰满了,Docs模板提供了3个首页样式: ### [index.help][1]\_center.liquid 首页样式 特点: 1. 首页显示背景大图和搜索栏(自定义热门搜索) 2. 下面展示六个一级栏目及最近4条更新记录 3. 常见问题栏目,按浏览量展示最近10条最新文章 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=MTJkYTJkNWYxMjdhMDUyNzQxMjFmNzQ3Zjk2OTc3NjBfRERFc3d3dGRzd2g3SVJOZnZ4QWRlSjZNRE4zSEhSWVdfVG9rZW46RVpBM2JlUlZVb0tlWGl4a1pkVGM3bFBSblhlXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) ### [index.docs][2].liquid 首页样式 特点: 1. 首页跟内页保持一致展示效果 2. 左侧树状菜单一目了然 3. 右侧图标展示一级栏目和最新热门文章 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=Y2M3MDc0NTU3NzQ5ZmYzNTg4Y2JkZTYxODBmYjdiYTBfblpDY3Jhdm1BbG05d0pLWTBCbDdMVlpXRnZ3YkFRYnBfVG9rZW46QnNSY2JpZWxOb3h0NE54Q05pNmNnamJXbndkXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) ### index.list.liquid 首页样式 特点: 1. 首页直接通过书目的形式展示知识库所有内容。 ^ ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ZjMxYTY5NjM3ZTliZTlhYWFkNDg3ZDA0YmFlNzc2ZWFfdkVrUDFCNmhJN2xwWDkzajlTNm9ncVRNbVJwcHo3Z2FfVG9rZW46TmdtcWJUSXlab2RSZ0x4NFd4ZmNWYnBTblNsXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) ## 内页设置 内页的展示效果页比较简单清晰,大致分为几个版块: 1. 页头:站点Logo+名称, 右侧自定义导航菜单和暗黑模式切换开关。 2. 左侧:整站内容多层级导航菜单 3. 中间显示文章内容,用户反馈,上一页下一页导航。 4. 右侧将自动提取文章内标题,实现内页导航 5. 底部为页脚,显示品牌信息和自定义导航内容。 ![](https://tanmer001.feishu.cn/space/api/box/stream/download/asynccode/?code=ODlmMWQ4YWUyMzA3ZWEwMTVhNWUwMjE2ZjVlNTNjMzFfVHluRmZ2eEJoR0k4Q0xCS25qdWlOc2RYVnBSQXJ2QWdfVG9rZW46UVFaOWJJbkwxb3UwV2t4WndyQWNDZE1wblFiXzE3MTA5ODA4Mjc6MTcxMDk4NDQyN19WNA) ## 低代码开发 通过以上的配置和说明,已经满足大部分用户的需求了。 但是如果还需要更进一步的魔改网站界面怎么办呢? Baklib低代码平台就该出场了。这一部分将直接进入低代码模板开发环节。 模板layout: {% meta_tags %} {{ 'editor.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {{ 'css/viewer.min.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {{ 'javascripts/main.js' | asset_url | script_tag: defer: true, data-turbo-track: 'reload' }} {{ 'css/main.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {%# TIPS:在低代码平台开发时,请打开下一行代码注释 %} {% if true %} {{ 'javascripts/cdn.tailwindcss.js' | asset_url | script_tag: data-turbo-track: 'reload' }} {% endif %}
    {% render 'header', settings: site.settings %}
    {{ content_for_layout }}
    页面模板和片段: themes/cms/docs/snippets _breadcrumb.liquid _collapse_pages.liquid _empty.liquid _feedback_form.liquid _footer.liquid _header.liquid _sidebar.liquid _tree.liquid themes/cms/docs/templates index.docs.liquid index.help_center.liquid index.liquid nav_tree.liquid page.liquid search.liquid 详情页面的布局解析如下图所示: 暂时无法在飞书文档外展示此内容 [1]: http://index.help [2]: http://index.docs --- URL: https://dev.baklib.cn/install Updated: 2024-11-28 ## 标题 启动指南 ## 内容 了解 Baklib 模板介绍,需要准备的软件和技能,以及随时跟踪了解模板引擎更新日志。 --- URL: https://dev.baklib.cn/theme/config/settings-schema Updated: 2024-07-19 ## 标题 settings_schema.json ## 内容 ## 文件内容 [ { "name": "theme_info", "theme_name": "daisy_wiki", "theme_label": "t:theme_label", "theme_version": "1.0.0", "theme_scope": "wiki", "theme_author": "Baklib", "theme_description": "t:theme_description", "theme_documentation_url": "https://help.baklib.cn/themes/daisy-wiki", "theme_support_url": "https://help.baklib.cn/themes/daisy-wiki/settings", "theme_thumb_url": "images/theme/thumb.png", "theme_preview_images": [ "images/theme/index.png", "images/theme/index-documentation.png", "images/theme/index-portal.png", "images/theme/page-channel.png", "images/theme/page.png" ], "theme_languages": [ { "name": "中文简体", "value": "zh-CN" }, { "name": "English", "value": "en-US" }, { "name": "Germany", "value": "de" }, { "name": "France", "value": "fr" } ], "recommendations": { "color_schemas": { "fashion": { "name": "时尚", "colors": { "--theme-color-primary": "#0d9488", "--theme-color-secondary": "#ea580c", "--theme-color-accent": "#AAAAAA", "--theme-color-info": "#2196F3", "--theme-color-success": "#4CAF50", "--theme-color-warning": "#FFC107" } }, "old_school": { "name": "复古", "colors": { "--theme-color-primary": "#9C27B0", "--theme-color-secondary": "#673AB7", "--theme-color-accent": "#AAAAAA", "--theme-color-info": "#418CC8", "--theme-color-success": "#29B52F", "--theme-color-warning": "#FFC107" } } } } }, { "name": "t:settings_schema.generic.name", "settings": [ { "id": "is_allow_published_at", "type": "checkbox", "label": "文章内是否展示发布日期", "default": true }, { "id": "is_allow_author", "type": "checkbox", "label": "文章内是否展示作者", "default": true } ] }, { "name": "t:settings_schema.generic.head_title", "settings": [ { "id": "head_html", "type": "html", "label": "t:settings_schema.generic.settings.head_html.label", "info": "t:settings_schema.generic.settings.head_html.info", "rows": 10, "placeholder": "t:settings_schema.generic.settings.head_html.placeholder" } ] } ] ## 文件说明 文件内容为 JSON 格式,存储多个配置数组,每个配置必须包含 `name` 属性,表示配置的类型。 ## 配置 name 为 \"theme\_info\" 表示主题模版信息 theme\_info 为特殊配置,每个 settings\_schema.json 必须有且唯一存在。支持的属性如下: | 属性名称 | 必填 | 类型 | 说明 | | --- | --- | --- | --- | | name | 是 | 字符串 | 此属性的值必须是theme_info,不能为其他值,表示此配置段为主题模版信息。 | | theme_name | 是 | 字符串 | 主题模版的名称标识。只允许字母、数字、下划线的组合,如: help_center | | theme_label | 否 | 字符串 | 主题模版的显示名称,如:帮助中心。 | | theme_version | 是 | 字符串 | 主题模版的版本号,格式遵循 1.0.0 标准,用户使用模版时,可选择指定版本的模版。 | | theme_scope | 是 | 字符串 | 主题模板的类型。只允许填写:communitycmswiki | | theme_author | 是 | 字符串 | 模版开发者 | | theme_description | 是 | 字符串 | 描述 | | theme_documentation_url | 否 | 字符串 | 文档地址 | | theme_support_url | 否 | 字符串 | 技术支持地址 | | theme_thumb_url | 是 | 字符串 | 缩略图地址 | | theme_preview_images | 是 | 字符串数组 | 预览图,数组 | | theme_languages | 否 | 字符串数组 | 多语言支持,填写数组,如['en', 'zh-CN', 'ja']表示支持英语、简体中文、日语。允许填写的值参考下表“多语言支持名单” | | color_schemas | 否 | 哈希值 | 默认主题颜色配置 | | theme_syntax_version | 是 | 字符串 | v2。不建议添加v1或不添加此值。 | | miniprogram | 否 | 布尔 | true: 在使用此模板的站点后台中开启小程序下载、配置功能;请在模板适配小程序展示与功能后开启此选项 | ## 配置 name 为其它值表示站点配置项 | 属性名称 | 必填 | 类型 | 说明 | | --- | --- | --- | --- | | name | 是 | 字符串 | 此属性的值必填,不能是theme_info,此名称会展示在站点管理后台 | | settings | 是 | 哈希数组 | 在此定义站点的动态配置项,会展示在站点管理后台。模板代码中可通过 site.settings 获取站点配置的值 | | settings[x].id | 是 | 字符串 | 配置项的标识,如logo_url,模版代码中可通过 site.settings.logo_url 获取值 | | settings[x].type | 是 | 字符串 | 配置项的类型,支持的配置类型参考下表“Setting支持的类型” | | settings[x].label | 是 | 字符串 | 配置项的显示名称 | | settings[x].info | 否 | 字符串 | 配置项的描述信息 | | settings[x].default | 否 | | | | settings[x].placeholder | 否 | | 输入框的提示文字 | ## 附录 ### 多语言支持名单 # 中文 'zh-CN' => '中国大陆简体' 'zh-TW' => '台湾繁体' 'zh-HK' => '香港繁体' 'zh-MO' => '澳门繁体' 'zh-SG' => '新加坡简体' # 英语 'en' => '通用英语' 'en-US' => '英语 (美国)' 'en-GB' => '英语 (英国)' 'en-AU' => '英语 (澳大利亚)' 'en-CA' => '英语 (加拿大)' 'en-NZ' => '英语 (新西兰)' 'en-IE' => '英语 (爱尔兰)' # 葡萄牙语 'pt' => '通用葡萄牙语' 'pt-BR' => '葡萄牙语 (巴西)' 'pt-PT' => '葡萄牙语 (葡萄牙)' # 西班牙语 'es' => '通用西班牙语' 'es-ES' => '西班牙语 (西班牙)' 'es-MX' => '西班牙语 (墨西哥)' 'es-AR' => '西班牙语 (阿根廷)' # 法语 'fr' => '通用法语' 'fr-FR' => '法语 (法国)' 'fr-CA' => '法语 (加拿大)' 'fr-BE' => '法语 (比利时)' 'fr-CH' => '法语 (瑞士)' # 德语 'de' => '通用德语' 'de-DE' => '德语 (德国)' 'de-AT' => '德语 (奥地利)' 'de-CH' => '德语 (瑞士)' # 其他主要语言 'ja' => '日语' 'ko' => '韩语' 'vi' => '越南语' 'th' => '泰语' 'id' => '印尼语' 'ms' => '马来语' 'ar' => '阿拉伯语' 'hi' => '印地语' 'bn' => '孟加拉语' 'ru' => '俄语' 'tr' => '土耳其语' ### Setting支持的类型 | 类型 | 名称 | | --- | --- | | header | 段落标题 | | paragraph | 段落描述 | | text | 单行文字输入框 | | number | 数字输入框 | | range | 数字范围 | | textarea | 多行文字输入框 | | richtext | 富文本输入框 | | html | HTML 源代码输入框 | | liquid | Liquid 源代码输入框 | | link | 链接输入框 | | checkbox | 复选框 | | radio | 单选项 | | select | 下拉选择框 | | color | 颜色选择器 | | color_background | 背景颜色选择器 | | date | 日期选择器 | | font_picker | 字体选择器 | | image_picker | 图片选择器 | | video_picker | 视频选择器 | | type 值 | 类型 | 默认值 | 说明 | | --- | --- | --- | --- | | checkbox | True/False | false | | | color_background | 颜色值 | | 背景颜色选择器,可以生成渐变色。颜色值在模板中的使用方法:
    <!-- 方法 1 --> <div style="height: 32px; background-image: {{ site.settings.banner_bg_color }}"></div> <!-- 方法 2 --> <div style="height: 32px; background-image: linear-gradient({{ site.settings.banner_bg_color.degree }}deg, {{ site.settings.banner_bg_color.from }}, {{ site.settings.banner_bg_color.to }}"></div>
    | | | | | | --- URL: https://dev.baklib.cn/theme/layout/theme Updated: 2024-07-19 ## 标题 theme.liquid ## 内容 ### 文件内容 {% meta_tags %} {{ 'editor.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {{ 'javascripts/main.js' | asset_url | script_tag: defer: true, data-turbo-track: 'reload' }} {{ 'css/main.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} {%# 引用外部资源 %} {%# 引用site全局变量 %} {{ site.settings.head_html }}
    {% render 'header', settings: site.settings, page: page %}
    {{ content_for_layout }}
    {% render 'sidebar', settings: site.settings, page: page %}
    {% render 'footer', settings: site.settings %} ### **文件说明** layout 布局文件是一个标准的 HTML 文件,即包括 <html>、<head>、<body>标签。其中在<head>下引用全局资源文件、定义meta元数据、设置SEO数据、指定站点语言等。 #### content\_for\_layout `{{ content_for_layout }}` 方法用于替换 `templates` 下的文件内容。您需要在 `` 和 `` HTML 标记之间添加对此方法的引用。 #### render `render` 方法用于引用 `snippets` 下的文件内容。比如: {% render 'header', settings: site.settings, page: page %} 表示引用文件: `snippets/_header.liquid` #### 公共资源 |

    文件路径

    |

    是否必须

    |

    类型

    |

    说明

    |

    使用方式

    | | --- | --- | --- | --- | --- | |

    baklib/shared/editor.css

    |

    ⚙️ 可选(如模版中需要使用富文本编辑器)

    |

    样式 (CSS)

    |

    富文本编辑器输出样式文件,使用 TailwindCSS 构建,控制编辑器基础样式(如段落、标题、列表、代码块等)。

    |

    | |

    baklib/shared/main.css

    |

    ✅ 必须

    |

    样式 (CSS)

    |

    全局共享样式文件,提供 bkt- 前缀的 TailwindCSS 公共组件与颜色系统,避免污染外部 CSS 命名空间。

    |

    在模板主布局中加载:{{ 'baklib/shared/main.css' \| asset_url \| stylesheet_tag: data-turbo-track: 'reload' }}

    | |

    baklib/shared/editor.js

    |

    ⚙️ 可选(如模版中需要使用富文本编辑器)

    |

    脚本 (JS)

    |

    编辑器核心逻辑脚本,包含富文本编辑、组件注册、事件绑定等。

    |

    | |

    baklib/shared/main.js

    |

    ✅ 必须

    |

    脚本 (JS)

    |

    全局前端逻辑js入口文件,自动导入全站通用模块:
    turbo — 启用 Turbo Drive/Frame 支持
    stimulus — 初始化 Stimulus 控制器
    ai_search_completion — 启用 AI 搜索建议(stimulus controller)
    expandable_content — 处理可展开内容交互(stimulus controller)
    responsive_attr — 响应式属性调整逻辑(stimulus controller)

    |

    在模板主布局中加载:{{ 'baklib/shared/main.js' \| asset_url \| script_tag: data-turbo-track: 'reload' }}

    | |

    baklib/shared/ai_search_completion.js

    |

    ⚙️ 可选(仅在开启 AI 搜索建议时需要)

    |

    脚本 (JS)

    |

    提供 AI 搜索功能,用于站内搜索输入框或 AI 助手模块。默认由baklib/shared/main.js导入

    |

    | |

    baklib/shared/stimulus.js

    |

    ⚙️ 可选(如页面需要使用 Stimulus js)

    |

    脚本 (JS)

    |

    启用 Stimulus 控制器的初始化入口,负责连接 data-controller 标记的组件。默认由baklib/shared/main.js导入

    |

    | |

    baklib/shared/turbo.js

    |

    ⚙️ 可选(如页面需要使用 Turbo Frames / Turbo Streams)

    |

    脚本 (JS)

    |

    用于支持 Turbo Drive、Turbo Frames 和 Streams 的前端导航与局部更新。默认由baklib/shared/main.js导入

    |

    模版中使用turbo时请勿多次导入子模块,统一使用同一个模块实例,否则可能导致未知冲突问题,可能造成页面turbo导航混乱等问题;baklib/shared/main.js 和 baklib/shared/turbo.js 勿同时使用,默认挂载至window.Turbo

    | --- URL: https://dev.baklib.cn/theme/locales/en-json Updated: 2024-07-19 ## 标题 en.json ## 内容 { "theme_label": "Daisy Wiki", "theme_description": "The web framework for content-driven website based on DaisyUI.", "generic": { "menu": "Menu", "theme": "Theme", "close": "Close", "back": "Back", "search": "Search", "popular_search": "Popular Search", "search_result": "related searching result", "index": "Home", "articles": "articles", "read_more": "read more", "404": "404 not found", "403": "403 No access permission", "empty": "content is empty", "sub_page_list": "Sub Pages", "copyright": "All rights reserved", "published_at": "Published at", "prev_page": "previous page", "next_page": "next page", "hot_pages": "Hot visit articles", "recent_pages": "Recent articles", "tags": "Tags" }, "placeholders": { "search": "Searching..", "input_password": "Please input your password" }, "buttons": { "submit": "Submit", "login": "Login", "sso_login": "SSO Login", "baklib_login": "Baklib Account Login" }, "prompts": { "page_restricted": "This page can only be accessed with authentication" }, "feedback": { "title": "Submit Feedback", "input_placeholder": "Please input feedback" } } --- URL: https://dev.baklib.cn/theme/snippets/header Updated: 2024-07-19 ## 标题 _header.liquid ## 内容 {% assign screen_width = site.settings.screen_width.value | default: 'max-w-screen-xl' %}
    --- URL: https://dev.baklib.cn/theme/statics/about Updated: 2024-07-19 ## 标题 about.liquid ## 内容

    这是一个静态页面样例

    要修改该文件,请在低代码编辑器中打开 docs/statics/about.liquid 文件。

    Deploy faster

    Everything you need to deploy your app

    Quis tellus eget adipiscing convallis sit sit eget aliquet quis. Suspendisse eget egestas a elementum pulvinar et feugiat blandit at. In mi viverra elit nunc.

    Push to deploy
    Morbi viverra dui mi arcu sed. Tellus semper adipiscing suspendisse semper morbi. Odio urna massa nunc massa.
    SSL certificates
    Sit quis amet rutrum tellus ullamcorper ultricies libero dolor eget. Sem sodales gravida quam turpis enim lacus amet.
    Simple queues
    Quisque est vel vulputate cursus. Risus proin diam nunc commodo. Lobortis auctor congue commodo diam neque.
    Advanced security
    Arcu egestas dolor vel iaculis in ipsum mauris. Tincidunt mattis aliquet hac quis. Id hac maecenas ac donec pharetra eget.

    Boost your productivity.
    Start using our app today.

    Incididunt sint fugiat pariatur cupidatat consectetur sit cillum anim id veniam aliqua proident excepteur commodo do ea.

    --- URL: https://dev.baklib.cn/theme/templates/index Updated: 2024-07-19 ## 标题 index.liquid ## 内容 首页模板,文件位置: `docs/templaes/index.liquid`

    模板页面 HTML

    {% render 'footer', settings: site.settings %}
    {% schema %} { "name": "首页样式", "thumb_url": "images/theme/index.png", "preview_image_urls": [ "images/theme/index-demo1.png", "images/theme/index-demo2.png" ], "description": "站点首页", "sub_page_templates": ["products","blog"] } {% endschema %} --- URL: https://dev.baklib.cn/faqs/a121 Updated: 2024-07-19 ## 标题 path 和 url 的区别? ## 内容 比如一篇文章的路径为: `https://help.baklib.cn/my/profile`, 则: * page.path 返回文章的相对路径: `/my/profile` * page.url 返回文章的绝对路径: `https://help.baklib.cn/my/profile` > 一般在模板开发中推荐使用 `page.path`, 如果用 `page.url `可能会导致更换了域名以后,原来引用的地址失效。 --- URL: https://dev.baklib.cn/liquid/basics/introduction Updated: 2024-07-19 ## 标题 介绍(Introduction) ## 内容 **Liquid 使用模板文件**内的[对象][1]、[标签][2]和[过滤器][3]的组合来显示动态内容。 ## 对象 **对象**包含 Liquid 在页面上显示的内容。对象和变量用双花括号括起来时显示:`{{`和`}}`。 输入 {{ page.title }} 输出 Introduction `title`在这种情况下,Liquid 正在渲染对象属性的内容`page`,其中包含文本`Introduction`。 ## 标签 **标签**为模板创建逻辑和控制流。花括号百分比分隔符`{%`和`%}`它们包围的文本在呈现模板时不会产生任何可见的输出。这样您就可以分配变量并创建条件或循环,而无需在页面上显示任何 Liquid 逻辑。 输入 {% if user %} Hello {{ user.name }}! {% endif %} 输出 Hello Adam! 标签可以分为多种类型: * [控制流][4] * [迭代][5] * [模板][6] * [变量赋值][7] 您可以在各自的部分中阅读有关每种标签类型的更多信息。 ## 筛选器 **过滤器**会改变 Liquid 对象或变量的输出。它们用于双花括号`{{ }}`和[变量赋值][7]中,并以竖线字符分隔`|`。 输入 {{ "/my/fancy/url" | append: ".html" }} 输出 /my/fancy/url.html 一个输出上可以使用多个过滤器,并从左到右应用。 输入 {{ "adam!" | capitalize | prepend: "Hello " }} 输出 Hello Adam! [1]: https://shopify.github.io/liquid/basics/introduction/#objects [2]: https://shopify.github.io/liquid/basics/introduction/#tags [3]: https://shopify.github.io/liquid/basics/introduction/#filters [4]: https://shopify.github.io/liquid/tags/control-flow/ [5]: https://shopify.github.io/liquid/tags/iteration/ [6]: https://shopify.github.io/liquid/tags/template/ [7]: https://shopify.github.io/liquid/tags/variable/ --- URL: https://dev.baklib.cn/liquid/tags/control-flow Updated: 2024-07-19 ## 标题 控制流(Control flow) ## 内容 控制流标签创建决定 Liquid 代码块是否被执行的条件。 ## if 仅当满足特定条件时才执行代码块`true`。 输入 {% if product.title == "Awesome Shoes" %} These shoes are awesome! {% endif %} 输出 These shoes are awesome! ## unless 与之相反——仅当**不满足**`if`某个条件时才执行代码块。 输入 {% unless product.title == "Awesome Shoes" %} These shoes are not awesome. {% endunless %} 输出 These shoes are not awesome. 这相当于执行以下操作: {% if product.title != "Awesome Shoes" %} These shoes are not awesome. {% endif %} ## elsif / else `if`在或块内添加更多条件`unless`。 输入 {% if customer.name == "kevin" %} Hey Kevin! {% elsif customer.name == "anonymous" %} Hey Anonymous! {% else %} Hi Stranger! {% endif %} 输出 Hey Anonymous! ## case/when 创建一个 switch 语句,当变量具有指定值时执行特定的代码块。`case`初始化 switch 语句,`when`语句定义各种条件。 一个`when`标签可以接受多个值。当提供多个值时,当变量与标签内的任意值匹配时,就会返回表达式。以逗号分隔列表的形式提供值,或使用运算符分隔它们`or`。 `else`案例末尾的可选语句提供了在没有任何条件满足时执行的代码。 输入 {% assign handle = "cake" %} {% case handle %} {% when "cake" %} This is a cake {% when "cookie", "biscuit" %} This is a cookie {% else %} This is not a cake nor a cookie {% endcase %} 输出 This is a cake --- URL: https://dev.baklib.cn/community/b511 Updated: 2024-10-16 ## 标题 变量和方法 ## 内容 本教程介绍 Liquid 模板 Community 社区开发中的变量和方法使用。 ## **Object(对象)** |

    类型名称

    |

    解释

    | | --- | --- | |

    site

    |

    当前cms站点信息

    | |

    page

    |

    页面的详细信息

    | |

    tag

    |

    标签

    | |

    author

    |

    作者

    | |

    comment

    |

    评论

    | |

    current_user

    |

    当前登录用户

    | |

    plugins.feedback

    |

    用户反馈插件

    | ### **site(当前站点)(同cms站点)** |

    属性/方法

    |

    类型

    |

    解释

    |

    示例

    | | --- | --- | --- | --- | |

    name

    |

    string

    |

    站点名称

    |

    开心农场

    | |

    favicon_url

    |

    string

    |

    站点图标

    |

    <url>

    | |

    time_zone

    |

    string

    |

    站点时区

    |

    Beijiang

    | ### **page(页面)(同cms站点)** |

    属性/方法

    |

    类型

    |

    使用方法

    |

    返回值

    |

    说明

    | | --- | --- | --- | --- | --- | |

    id

    |

    string

    |

    page.id 

    |

    9g5hkd

    |

    页面的ID唯一标识

    | |

    slug

    |

    string

    |

    page.slug 

    |

    guide

    |

    页面path/url的唯一标识

    | |

    link_text

    |

    string

    |

    page.link_text 

    |

    操作教程

    |

    页面标题

    |
    ### **Comment(页面)同cms站点)** |

    属性/方法

    |

    类型

    |

    使用方法

    |

    返回值

    |

    说明

    | | --- | --- | --- | --- | --- | |

    id

    |

    string

    |

    comment.id 

    |

    9g5hkd

    |

    评论的ID唯一标识

    | |

    body

    |

    string

    |

    comment.body 

    |

    guide

    |

    评论的内容

    | |

    created_at

    |

    datetime

    |

    comment.created_at 

    |

    |

    评论创建时间

    { page.created_at \| time_ago }} {{ page.created_at \| date: "%Y-%m-%d" }}

    | |

    author

    |

    author

    |

    comment.author 

    |

    |

    评论作者

    | |

    reply_to_user

    |

    author

    |

    comment.reply_to_user

    |

    |

    回复内容作者

    | |

    target

    |

    page

    |

    comment.target 

    |

    |

    评论主题

    | |

    parent

    |

    comment

    |

    comment.parent 

    |

    |

    回复的评论

    | |

    root

    |

    comment

    |

    comment.root 

    |

    |

    评论所属一级评论

    | |

    replies

    |

    comment[]

    |

    comment.replies 

    |

    |

    评论回复集合

    | ### **current\_user(当前登录用户)同cms站点)** |

    uid

    |

    string

    |

    current_user.uid 

    |

    10001

    |

    用户的ID唯一标识

    | | --- | --- | --- | --- | --- | |

    name

    |

    string

    |

    current_user.name 

    |

    张三

    |

    用户名称

    | |

    image

    |

    string

    |

    current_user.image

    |

    http://site-5zw8rxj1.free.lvh.me:3000/-/avatars/ey…CJ9fQ==--f3bb19439273b4e1f05ffbdbd9ce7108485c7f75

    |

    用户头像地址

    | |

    member_id

    |

    integer

    |

    current_user.member_id 

    |

    |

    用户成员的ID唯一标识

    | |

    profile_url

    |

    string

    |

    current_user.profile_url

    |

    http://tanmer.lvh.me:3000/my/profile

    |

    个人中心链接

    | |

    pages

    |

    page[]

    |

    current_user.pages 

    |

    |

    当前用户创建的页面集合

    | ### **tag(标签)同cms站点)** |

    属性/方法

    |

    类型

    |

    解释

    |

    示例

    | | --- | --- | --- | --- | |

    path

    |

    string

    |

    标签页面的路径

    |

    /-/tags/AxdEf

    | |

    name

    |

    string

    |

    名称

    |

    测试标签

    | |

    color

    |

    string

    |

    字体颜色

    |

    #42445A

    | |

    bg_color

    |

    string

    |

    背景颜色

    |

    #42445A

    | |

    color_hls

    |

    string

    |

    颜色计算

    |

    background-color: hsl({{ tag.color_hls[0] }}, {{ tag.color_hls[1] }}%, 90%);

    | |

    pages_count

    |

    integer

    |

    含有该标签的页面数量

    |

    <待开放>

    | |

    pages

    |

    page[]

    |

    含有该标签的页面列表

    |

    | 页面的标签通过在 `settings` 中动态定义,通过 `page.settings.tags` 方法调用。 {% schema %} { "settings": [ { "id": "tags", "type": "tag_picker", "multiple": true, "label": "标签" } ] } {% schemaend %} * 页面中的调用示例: ^ {% for tag in page.settings.tags %} {{ tag.name }} {% endfor %} site.tags 则返回当前站点的 Tag 标签集合

    ### **author(作者)** |

    属性/方法

    |

    类型

    |

    解释

    |

    示例

    | | --- | --- | --- | --- | |

    name

    |

    string

    |

    作者名称

    |

    张三

    | |

    avatar_url

    |

    string

    |

    作者头像

    |

    | 操作示例: {% assign avatar_url = 'images/icons/icon.svg' | asset_url %} {{ page.author.name }} ### **plugins.feedback (用户反馈配置信息)(同cms站点)** |

    属性/方法

    |

    类型

    |

    解释

    |

    示例

    | | --- | --- | --- | --- | |

    helpful_types

    |

    Array(JSON)

    |

    用户可选择的表情列表

    |

    plugins.feedback.helpful_types

    | |

    helpful_types[0].emoji

    |

    string

    |

    表情符

    |

    😊

    | |

    helpful_types[0].label

    |

    string

    |

    表情符对应的意思

    |

    有用

    | |

    helpful_label

    |

    string

    |

    提示用户选择表情

    |

    您的反馈是对我们的产品极其重要

    | |

    message_enabled

    |

    boolean

    |

    是否启用反馈留言

    |

    | |

    message_required

    |

    boolean

    |

    当开启反馈留言,反馈留言是否必填

    |

    | |

    login_required

    |

    boolean

    |

    反馈是否必须登录

    |

    | ## **Filter(函数)** |

    名称

    |

    解释

    | | --- | --- | |

    order_by

    |

    排序

    | #### **order\_by** 对`page`列表进行排序,排序规则: |

    参数

    |

    解释

    | | --- | --- | |

    created_at

    |

    按照创建时间排列

    | |

    edited_at

    |

    按照修改时间排列

    | |

    visits_count

    |

    按照访问量排列

    | > ***在参数前添加***`-`,代表倒序排列 示例: {% assign tag_pages = tag.pages | order_by: '-created_at' %} |

    名称

    |

    解释

    | | --- | --- | |

    where

    |

    筛选

    | #### **where** 对`page`列表进行筛选,筛选参数 |

    参数

    |

    解释

    | | --- | --- | |

    template_name

    |

    模板名称

    | 示例: {% assign pages = search.pages | where: 'template_name', 'post' %} |

    名称

    |

    解释

    | | --- | --- | |

    feedback_count

    |

    反馈数量

    | |

    feedback_type_count(page, useful_type)

    |

    某个反馈类型的反馈数量

    | #### **feedback\_count、feedback\_type\_count** 获取`page`的反馈数量 示例: {{ page | feedback_type_count: '😊' }} //😊表情的反馈数量 {{ page | feedback_count }} //页面总反馈数 |

    roots

    |

    一级评论

    | #### **roots** `comment`列表一级评论 示例: {{ post.comments | roots | size }} --- URL: https://dev.baklib.cn/liquid/filters/abs Updated: 2025-01-02 ## 标题 abs ## 内容 返回一个数字的绝对值。 输入 {{ -17 | abs }} 输出 17 输入 {{ 4 | abs }} 输出 4 如果组成字符串的各个字符全是数字,`abs` 也能够对此字符串求绝对值。 输入 {{ "-19.86" | abs }} 输出 19.86 --- URL: https://dev.baklib.cn/api/55c38 Updated: 2025-08-05 ## 标题 📢 接口更新声明 · 2025 年 8 月 5日 ## 内容 ``` --- 为提升接口一致性与功能完备性,`Baklib` 已对页面内容相关接口做出以下更新: --- ### 🔁 1. 页面详情查询接口区分 `id` 与 `full_path` * **通过 ID 查询页面详情(保留原接口)** `GET /v1/sites/{site_id}/pages/{page_id}` * **通过 full\_path 查询页面详情(新接口,之前通过/v1/sites/{site_id}/pages/{page_id}传递full_path查询废弃)** `GET /v1/sites/{site_id}/pages/by_path/{full_path}` ⚠️ `full_path` 需进行 URL 编码(如 `encodeURIComponent`)以避免路由冲突。 --- ### ✏️ 2. 页面草稿查询接口新增 * **通过 ID 获取草稿内容:** `GET /v1/sites/{site_id}/pages/{page_id}/draft` * **通过 full\_path 获取草稿内容:** `GET /v1/sites/{site_id}/pages/by_path/{full_path}/draft` --- ### 🕓 3. 页面版本内容接口新增 #### ✅ 支持通过 ID 与 full\_path 两种路径访问页面版本信息: | 操作 | 通过 page\_id 路径 | 通过 full\_path 路径 | | ------ | ------------------------------------------------------------------ | ---------------------------------------------------------------------------- | | 获取版本列表 | `GET /v1/sites/{site_id}/pages/{page_id}/versions` | `GET /v1/sites/{site_id}/pages/by_path/{full_path}/versions` | | 获取单个版本 | `GET /v1/sites/{site_id}/pages/{page_id}/versions/{version_id}` | `GET /v1/sites/{site_id}/pages/by_path/{full_path}/versions/{version_id}` | | 创建版本 | `POST /v1/sites/{site_id}/pages/{page_id}/versions` | `POST /v1/sites/{site_id}/pages/by_path/{full_path}/versions` | | 更新版本 | `PUT /v1/sites/{site_id}/pages/{page_id}/versions/{version_id}` | `PUT /v1/sites/{site_id}/pages/by_path/{full_path}/versions/{version_id}` | | 删除版本 | `DELETE /v1/sites/{site_id}/pages/{page_id}/versions/{version_id}` | `DELETE /v1/sites/{site_id}/pages/by_path/{full_path}/versions/{version_id}` | > ⚠️ 所有通过 full\_path 查询的接口都要求将full_path转义编码。 --- ### 🗑 4. 页面列表默认不返回已删除数据 * **获取页面列表(默认仅返回未删除页面):** `GET /v1/sites/{site_id}/pages` * **如需获取回收站中的已删除页面,请传入参数:** `GET /v1/sites/{site_id}/pages?deleted=true` --- ### ✅ 总结更新内容一览 | 功能模块 | 说明/变更 | | -------- | ------------------------------------------------------------- | | 页面详情查询 | 区分 ID 与 full\_path 查询方式,full\_path 新增专用路径 | | 页面草稿接口 | 新增通过 ID 或 full\_path 获取草稿内容的接口 | | 页面版本接口 | **新增完整的版本内容 CRUD 接口**,支持通过 ID 与 full\_path 路径访问 | | 页面列表行为调整 | 默认不返回删除页面,如需获取回收站数据请添加 `deleted=true` 查询参数 | | URL 编码提醒 | 所有涉及 full\_path 的接口必须对路径进行 URL 编码(如使用 `encodeURIComponent()`) | --- 如对更新内容有任何疑问,请联系技术支持。建议所有接入方及时适配新的接口路径,并根据需要对 `full_path` 做 URL 编码处理,确保兼容性与稳定性。 --- ``` --- URL: https://dev.baklib.cn/liquid/e1712/8bb8d Updated: 2025-09-12 ## 标题 动态表单 - setting 默认值引用 ## 内容 当在settings配置中需要为默认值添加复杂的值时,可通过使用 `preset:`关键字引用 presets 目录下的文件 ##### **示例**: 模版根目录添加presets文件夹,并添加 footer_nav_links.html 文件 - snippets - footer_nav_links.html - styles - templates # setting 默认值引用 footer_nav_links.html 的内容作为默认值 { "id": "footer_nav_links", "type": "code", "language": "html", "label": "t:schema.settings.footer.nav_links.label", "info": "t:schema.settings.footer.nav_links.info", "default": "preset:footer_nav_links.html" } --- URL: https://dev.baklib.cn/theme Updated: 2024-11-28 ## 标题 目录结构 ## 内容 主题模板决定了用户站点的布局、功能和样式。模板主题是使用`Liquid`以及`HTML`,`CSS`,`JavaScript`和`JSON`构建的,使用这些语言,开发人员可以创建客户想要的任何外观。同时提供了多种工具和最佳实践来加速开发过程。 > ***作为开发人员,您可以为特定客户构建自定义主题模板以满足客户的需求,或构建要在模板商店中销售的模板。*** ## **概述** 主题模板决定了用户站点的布局、功能和样式。主题代码需要按照主题的标准目录结构组织,同时还包括配套资源,如`images`,`stylesheets`和`scripts`。 ## **文件资源** 主题文件分为以下一般类别: * 标记和功能 - 这些文件控制主题的布局和功能。他们使用Liquid生成站点页面的HTML标记。 * 配套资源 - 这些文件是主题中其他文件调用或使用的资产、脚本或本地化文件。 * 配置文件 - 这些文件使用JSON存储配置数据,用户可以通过主题编辑器进行自定义设置。 ## **目录结构** 模板固定的目录结构: . ├── assets └── images └── css └── javascripts └── ... ├── config └── settings_schema.json ├── layout └── theme.liquid ├── locales ├── src ├── snippets └── templates ## **目录介绍** 一个名为 `docs` 的模板的目录结构如下所示:`themes/cms/docs/` |

    |

    一级目录

    |

    二级目录

    |

    备注

    | | --- | --- | --- | --- | |

    |

    assets/

    |

    |

    | |

    |

    |

    css/

    |

    存放从 src 中编译后的 css 文件

    | |

    |

    |

    javascripts/

    |

    存放从 src 中编译后的 js 文件

    | |

    |

    |

    images/

    |

    存放本地引用的资源

    | |

    |

    config/

    |

    |

    | |

    |

    |

    settings_schema.json

    |

    存放模板的配置信息

    | |

    |

    layout/

    |

    |

    | |

    |

    |

    theme.liquid

    |

    模板框架布局文件,其他模板文件都

    | |

    |

    locales/

    |

    |

    多语言版本翻译文件

    | |

    |

    src/

    |

    |

    原始 css/js 资源文件

    | |

    |

    snippets/

    |

    |

    存放模板页面片段

    | |

    |

    statics/

    |

    |

    存放静态模板文件

    | |

    |

    templates/

    |

    |

    存放模板文件,必须有一个 index.liquid

    | |

    |

    .gitignore

    |

    |

    git 忽略文件

    | |

    |

    package-lock.json

    |

    |

    js 库打包文件

    | |

    |

    package.json

    |

    |

    js 库打包文件

    | |

    |

    README.md

    |

    |

    模板教程

    | |

    |

    tailwind.config.js

    |

    |

    TailwindCss 框架引用文件

    | |

    |

    yarn.lock

    |

    |

    yarn 打包文件

    | --- URL: https://dev.baklib.cn/theme/assets Updated: 2024-07-19 ## 标题 assets/ ## 内容 资源文件目录,存放 css 、javascript、图片、字体等文件,通过 `asset_url` 方法生成可访问的 URL。 ## 示例 ### 插入 css 文件 把网站样式文件存放在 `assets/stylesheets/application.css` {{ 'stylesheets/application.css' | asset_url | stylesheet_tag: data-turbo-track: 'reload' }} 渲染输出 ### 插入 javascript 文件 把 javascript 文件存放在 `assets/javascripts/application.js` {{ 'javascripts/application.js' | asset_url | script_tag: defer: true, data-turbo-track: 'reload' }} 渲染输出 ### 显示图片 把图片存放`assets/images/welcome.png`
    渲染输出
    --- URL: https://dev.baklib.cn/liquid/tags Updated: 2025-01-02 ## 标题 标记(Tags) ## 内容 条件判断、循环、变量和注释。 --- URL: https://dev.baklib.cn/guide/forms Updated: 2024-12-09 ## 标题 动态表单 ## 内容 用于模版定义动态字段,设计的表单类型,以达到自定义模版变量的目的: # **表单 type: **`checkbox` |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Type

    |

    |

    checkbox

    | |

    Label

    |

    |

    | |

    Default

    |

    |

    0 1 false true

    | |

    Info

    |

    |

    | **前端变量值** 类型:TrueClass true **前端变量显示** \{\{page.settings.foo}} `true` **示例:** 表单代码: { "id": "recommend_to_index", "type": "checkbox", "label": "推荐到首页展示", "default": true } --- 表单预览: ![liquid_form_checkbox.png](https://saas.v2.bk-cdn.com/o-pry3c5/kcun0dzogptedmbiqo4ncavbbib5?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:Cv6PooggB78MOGtT9F0yOUT0A34=) # **表单 type: **`color` |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Type

    |

    |

    color

    | |

    Label

    |

    |

    | |

    Default

    |

    |

    #00AA00

    | |

    Colors

    |

    |

    #FF0000\|#00FF00\|#0000FF

    | |

    Info

    |

    |

    | **前端变量值** 类型:String **前端变量显示** \{\{ page.settings.text\_color }} `#00AA00` **示例:** 代码: { "id": "text_color", "type": "color", "label": "Hero 文字颜色" } --- 预览: ![liquid_form_color.png](https://saas.v2.bk-cdn.com/o-pry3c5/r51w15wimc8k9g8sx61nd00peh40?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:mceVr4LgLWEySk7lIEsAIVLPLAQ=) # **表单 type: **`color_background` |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Id

    |

    |

    bg_color

    | |

    Label

    |

    |

    | |

    Info

    |

    |

    | |

    Default

    |

    |

    {"from":"#0F69E8","to":"#1C0597"}

    | |

    Colors

    |

    |

    rgba(244, 67, 54, 1)\|rgba(233, 30, 99, 1)

    | **前端变量值** 类型:DynamicForm::ColorBackgroundComponent::Value **前端变量显示** \{\{page.settings.bg\_color}} `linear-gradient(90deg, #0F69E8, #1C0597)` \{\{page.settings.bg\_color.to}} `#1C0597` \{\{page.settings.bg\_color.degree}} `90` \{\{page.settings.bg\_color.from}} `#0F69E8` **示例:** 代码: { "id": "banner_background", "label": "Hero 背景色", "type": "color_background" } --- 预览: ![liquid_form_color_background.png](https://saas.v2.bk-cdn.com/o-pry3c5/1kyszinxzopuiptsvtbd23cfan06?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:KCKyaKZuJADPhNDpGm0AUopAaAQ=) # **表单 type: **`date` |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Type

    |

    |

    date

    | |

    Label

    |

    |

    foo

    | |

    Default

    |

    |

    2024-01-28

    | |

    Info

    |

    |

    这是一个日期选择器

    | **前端变量值** 类型:Date "2024-01-28" **前端变量显示** \{\{page.settings.foo}} `2024-01-28` **示例:** 代码: { "id": "start_at", "type": "date", "label": "开始时间", "default": "2025-01-01" } --- 预览: ![liquid_form_date.png](https://saas.v2.bk-cdn.com/o-pry3c5/qsqfeny6zv16mb9obibcbfbl0zip?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:P1-5cJIfRhbaP0a2x8kgsN2g7Hc=) # **表单 type: **`font_picker` |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Type

    |

    |

    font_picker

    | |

    Label

    |

    |

    | |

    Default

    |

    |

    arial

    | |

    Fonts

    |

    |

    ["system-ui", "arial"]

    | |

    Info

    |

    |

    选择一个字体

    | **前端变量值** 类型:String "arial" **前端变量显示** \{\{page.settings.font\_name}} `arial` **示例:** 代码: { "id": "font", "type": "font_picker", "label": "字体", "default": "Arial" } --- 预览: # **表单 type: **`header` 动态表单分类标题,用于分组表单字段。 > \* 没有前端变量 |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Content

    |

    |

    | **示例:** 代码: { "type": "header", "content": "分组 1" } --- 预览: ![liquid_form_header.png](https://saas.v2.bk-cdn.com/o-pry3c5/opppnlgaj1jq8mndng2sjb0pzz01?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:XnDNacJfwTNxLk2nCsbSkXaIU_Y=) # **表单 type: **`paragraph` 这是一段文字介绍,用于动态表单的说明文字, 支持安全的 **HTML** 标签,自动过滤 script 标签。 > \* 没有前端变量 |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Content

    |

    |

    | **示例:** 代码: { "type": "paragraph", "content": "paragraph" } --- 预览: ![liquid_form_paragraph.png](https://saas.v2.bk-cdn.com/o-pry3c5/e5zg0x6t4a897o2154zyslqiaxgv?response-content-type=image%2Fpng&e=1778326045&token=HXrvQOeDfAizpMzdanxSMiotX60zWuDXAseybFcx:ddLyGmD5PpFbkfam_4DX1pTYKPY=) # **表单 type: **`html` |

    Param

    |

    Description

    |

    Input

    | | --- | --- | --- | |

    Id

    |

    |

    google_ads

    | |

    Label

    |

    |

    谷歌广告代码

    | |

    Default

    |

    |

    | |

    Info

    |

    |

    粘贴谷歌广告 HTML 代码

    | **前端变量值** 类型:ActiveSupport::SafeBuffer "这是蓝色粗体字" **前端变量显示** \{\{page.settings.google\_ads}} `这是蓝色粗体字` **示例:** 代码: { "id": "third_party_video_url", "type": "html", "label": "Youtube或其他视频地址", "info": "