惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
Vercel News
Vercel News
C
Check Point Blog
G
Google Developers Blog
博客园 - 司徒正美
量子位
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
A
About on SuperTechFans
美团技术团队
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Cloudflare Blog
U
Unit 42

Ruby on Rails

以后发软件库是不是只用发 spec? OpenCode + GLM-4.7 还是弟弟, Antigravity + Gemini 3 Pro 还是强不少,不写一行代码转译了一个 Gem: rb-edge-tts Ruby on Rails 用着太舒服了 我回来了, Ruby on Rails Ruby on Rails 国内使用情况 推荐一个 Admin Panel 当我更换 mac m2 芯片 无法使用使用 mysql2 报错 symbol not found in flat namespace (_mysql_affected_rows) 后端收到两次重复 api 请求,如何判断第二次是重复的? Rails 7 发布 大家写 ruby on rails applications 的时候一般怎么写前端页面? 如何动态显示和保存一系列输入框中的内容 ruby on rails: no implicit conversion of nil into String Rails 现在国内是不是有点凉了? Rails 6.1 升级记录 使用 Vue 前端、Rails 后端实现图片上传的功能 写了个在线约会的日历,已经部署在公有云上了,正文有访问链接 Ruby, Rails 不值一学 Rails new 命令一直转圈怎么办? 大家都用什么来部署 ROR 的? ruby on rails 做 web 开发,效率真是杠杠的啊 如果有一天 DHH 没有再维护 ror 了怎么办? Ruby on Rails 怎么样? 世界无人帆船锦标赛,招募两名 Ruby 志愿者的参与 正在看 restful rail development 这本书,按照书上写的测试报错了,大佬帮我看看 spree 电商框架怎么样 送几本《Rails 5 敏捷开发》 Rails 布署最佳实践 Rails Seed Migration 问题 心好累 ruby 发一个 OAuth1.0 的请求怎么这么难 Ruby on Rails 的工程怎么做 heap dump?
手把手教您在 Baklib 上搭建一个模板网站
xuejiangavvo32 · 2024-12-01 · via Ruby on Rails

说到建站这个事情,作为开发者的你可以有非常多的解决方案,更何况是 2024 年了,建站交给 AI 也能快速完成。用 WordPress 开源系统,用 Wix 、SXL 等 SaaS 平台,或者直接“Rails new"从零搭建。

本文将为你介绍一个建站新范式:Baklib 。Baklib 是用 Rails 框架构建的基于 Liquid 语言的模版建站平台,作为 Ruby/Rails 开发者,这道菜应该再熟悉不过了。

1. 注册 Baklib 账号

账号注册地址: https://baklib.com/get-started

首先咱们需要在 Baklib 上注册一个组织管理者账号(免费的)。当你注册好一个组织管理者账号登录到组织后台以后,我们可以看到在组织管理端有一个模板管理,点击即可进入到组织模板管理中心。

*** 如果提示试用版本,则联系客服注明来自 V2EX 申请免费版本 ***

2. 添加网站模板

Baklib 上的模板都是开源的,托管在: https://gitlab.com/baklib/themes

你可以做公共模板中选择喜欢的模板,复制 git 链接并添加到 Baklib 上,也可以参考 Baklib 的模板开发要求,自行打造权限的模板。具体参考:Baklib 模板开发中心

3. 安装站点

在 [市场] 中可以看到所有公共的模板,以及组织自己挂载的模板,选择安装,根据流程即可创建一个站点。

4. 站点管理

一旦创建好一个站点,就可以有三个入口:前端会自动生成一个独立域名的网站(可解析到自有域名),后台有个独立的网站内容管理端,以及模板在线编辑器。

参考用此模板创建的真实案例: https://release.baklib.cn

5. 模板开发

重头戏是对模板的二次开发支持,Baklib 设计了一个灵活的网站模板结构,你可以随时在线实时开发、实时预览,包括复杂的自定义字段、排版布局、查询检索等能力。

模板结构


├── assets
    └── images
    └── css
    └── javascripts
    └── ...
├── config
    └── settings_schema.json
├── layout
    └── theme.liquid
├── locales
├── src
├── statics
├── snippets
└── templates

静态文件可直接添加到 statics 目录中,比如添加一个 about.liquid ,直接前端输入地址: /s/about 即可打开。 模板片段添加到 snippets 目录中,比如添加文件 _header.liquid,在其他文件引用: {% render 'header' %}

模板文件添加到 templates 目录中,比如添加文件 blog.liquid

模板代码

每个模板的页内代码由 HTML ( CSS/JS ) + Liquid 组成,以下是模板首页代码示例:index.liquid

{% assign pages = site.pages['/'].children_in_list %}


<div class="overflow-visible h-auto pb-[70px] min-h-screen bg-slate-100">

  <div class="max-w-5xl mx-auto relative  flex flex-col sm:flex-row sm:space-x-2 px-3 sm:px-0  pt-[220px]">
    <div class="w-full space-y-2 lg:space-y-4 -mt-[60px]">
      {% paginate_tag pages, per: 6 %}
        {% for page in pages %}
          {% render "card", page: page %}
        {% else %}
          {{ 'generic.empty' | t }}
        {% endfor %}
        {% render 'paginate', paginate: paginate %}
      {% endpaginate_tag %}
    </div>

    <!-- Sidebar Section -->
    <aside class="hidden w-64 pl-4 sm:block shrink-0">
      {% render 'sidebar', site: site %}
    </aside>
  </div>
</div>

{% schema %}
  {
      "name": "Index",
      "description": "Card Style",
      "thumb_url": "images/theme/index-card.png",
      "sub_page_templates": ["page"]
  }
{% endschema %}

自定义模板字段

如果需要自定义模板页面的字段,则只需要做模板页面的 schame 中声明即可。

"settings": [
  {
    "id": "tags",
    "type": "tag_picker",
    "multiple": true,
    "label": "标签"
  },

Baklib 支持 18+ 动态表单(见 https://dev.baklib.cn/2a32/forms),足以满足各种类型字段的自定义。