如何建立自己的文章系统(数据库版)

· · 科技·工程

你是否想要一个个人博客,但是嫌 github 上的 commit 太慢了?现在,我向您提供一个文章模版,按照下面的步骤做,你就可以有一个个人博客了!

仓库地址

准备

  1. 注册一个 github 账号。

  2. fork 我的仓库。

    开始

    数据库

  3. 访问 Supabase 数据库。这是动态文章的原理,它把文章存在数据库。选择 Continue with GitHub,使用 GitHub 登录

  4. 创建组织,输入好名字后,点击 Create organization。在弹出的页面里创建项目。接着,会跳转到 https://supabase.com/dashboard/project/项目ip

  5. 左侧侧边栏点击 Authentication。在第二级侧边栏选择 Sign In / Providers,把 User Signups 里的所有选项关掉,保存。然后在第二级侧边栏选择 Users,创建用户,一定要记住你的密码,因为只有这个密码能发布、删除、创建文章。最后,复制一下用户 id

  6. 在左侧侧边栏点击 SQL Editor,输入下面代码:

    
    -- 创建article表
    CREATE TABLE article (
    id VARCHAR(8) PRIMARY KEY,
    title TEXT NOT NULL,
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW(),
    md TEXT,
    teg TEXT
    );

-- 启用行级安全性 ALTER TABLE article ENABLE ROW LEVEL SECURITY;

-- 创建策略:允许匿名用户查询 CREATE POLICY "anon_can_select" ON article FOR SELECT USING (true);

-- 创建策略:允许指定用户插入 CREATE POLICY "user_can_insert" ON article FOR INSERT WITH CHECK (auth.uid() = '用户id');

-- 创建策略:允许指定用户更新 CREATE POLICY "user_can_update" ON article FOR UPDATE USING (auth.uid() = '用户id');

-- 创建策略:允许指定用户删除 CREATE POLICY "user_can_delete" ON article FOR DELETE USING (auth.uid() = '用户id');


运行以后,数据库就配置好了。
### 仓库
返回你 fork 好的仓库,编辑`index.html`和`404.html`。
1. 找到第 $450$ 和 $451$ 的两个变量。

2. 第一个变量的前面,设置为你的项目 ip;

3. 第二个变量设置为`https://supabase.com/dashboard/project/项目ip/settings/api-keys/legacy`的`anon
public`。

4. 去到 github 设置,设置一下 pages。然后,你就可以在`你的用户名.github.io/article`看到你的文章啦!
## 注意事项
1. **不要泄露自己的 Supabace 数据库里的任何本文没有提到的秘钥!**
2. **不要用常用密码**,因为密码泄露的后果很严重!
3. 可以自定义风格,但是 script 标签的内容不能动,不然可能导致功能不全。
4. 404.html 也要更新;一定要放在单独仓库,不然会有页面显示问题。
5. 给我点 star!

## 效果预览
![](https://img.cbpan.org/image.php?file=6975cfecb15b1.png)

![](https://img.cbpan.org/image.php?file=6975d01417077.png)

![](https://img.cbpan.org/image.php?file=6975d0604f127.png)