曾经使用过typecho、wordpress等博客系统,
但因为服务器花费贵、内容编辑器不够强大等原因没有持续运行下去。
在这之后一直在使用语雀记录各种学习资料,感觉非常的方便,还支持数学公式、思维导图、插入PDF、代码高亮等功能。突然有一天在账号设置中看到了Personal Access Token,去官网一查发现语雀是支持使用api的,也就是能通过api去获取语雀的数据。那岂不是能用语雀的数据做个博客了。在手机上浏览语雀文章还是挺麻烦的,得安装语雀客户端,或者登录网页版语雀。如果做成博客网页就可以直接看到文章了,并且可以对知识库进行二次分类,过滤一些不常用的文章。
说干就干,但有个问题,服务器怎么解决,因为我打算使用php开发这个博客,少说一年也得花费几百块。还好平时经常冲浪,vercel成为了我的首选目标,它是支持php的,甚至python。
Vercel + PHP:https://php.vercel.app/
对php的支持:
有了免费的运行平台,那还得有域名、证书,这些vercel都免费提供(域名是二级域名),当你完成部署后vercel会自动添加证书。既然已经白嫖了那么多东西,那再来点免费劳动力-chatgpt帮我写代码。
语雀开发者文档
此处为语雀内容卡片,点击链接查看:Overview · 语雀
程序部分
后端使用php调用语雀api
主要用到两个接口:
1.https://www.yuque.com/api/v2/repos/{知识库id}/docs//获取一个仓库知识库的文档列表2.https://www.yuque.com/api/v2/repos/{知识库id}/docs/{文章id}//获取单篇文档的详细信息
接口2返回的数据解析:
-
id - 文档编号slug - 文档路径title - 标题book_id - 仓库编号,就是 repo_idbook - 仓库信息
,就是 repo 信息user_id - 用户/团队编号user - 用户/团队信息 format - 描述了正文的格式 [lake , markdown]body - 正文 Markdown 源代码body_draft - 草稿 Markdown 源代码body_html - 转换过后的正文 HTMLbody_lake - 语雀 lake 格式的文档内容creator_id - 文档创建人 User Idpublic - 公开级别 [0 - 私密, 1 - 公开]status - 状态 [0 - 草稿, 1 - 发布]likes_count - 赞数量comments_count - 评论数量content_updated_at - 文档内容更新时间deleted_at - 删除时间,未删除为 nullcreated_at - 创建时间updated_at - 更新时间
body_html 为需要的部分,用["data"]["body_html"]提取出来。
然后用js处理body_html 显示异常的问题:代码没有高亮、图片显示过大。
代码高亮(来源知乎):
来源地址:https://blog.csdn.net/qq_28247201/article/details/129802769