博客增加附件系统与自定义Markdwon

# 附件系统 很早之前我就对企业微信API感兴趣,特别是邮件系统,我还用他的邮件系统搞过公共邮箱服务(后面因为限制与诸多不便所以不玩了) 这次我看到了他的微盘系统 正好我之前看到其他人的博客都有一个资源分享的服务 于是我灵机一动,打算用这个免费的微盘做一个资源分享储存 ## 搭建 我创建了API应用的专属盘,然后上传了几个文件进去,再直接curlAPI,确定端点无误,开始写完整的代码 可就在最终Web实现时我却犯难了。 企业微信的DownloadAPI返回的是需要cookies认证是下载链接,需要带上cookies再访问url才能下载文件,这直接增加了开发难度,我只能再套了一层EdgeOne作为代理 不过还好,我用了一层边缘函数将请求参数转为回源cookies,终于成功搭建好了资源分享站 现在直接访问博客下/pan路径就可以使用了。 ## 吐槽 为什么企业微信必须要限制IP,还不给搞IP端白名单?密钥有那么容易泄露吗,边缘函数节点那么多,我现在已经至少在后台添加了21个IP了,接下来可能还要继续面对IP的更新,我真的服了wwww🤣 # 自定义Markdown ## Github仓库 我添加了一个格式`![github](zeroqms/blogstatic)` ![github](zeroqms/blogstatic) 它可以直接渲染为Github仓库外链,并且通过GithubAPI请求仓库实时信息。 代码示例: ``` marked.setOptions({ breaks: true, gfm: true, renderer: { image: function(href, title, text) { // 检测GitHub仓库引用格式: ![github](username/repo) const githubMatch = href.match(/^github\/([\w-]+\/[\w.-]+)$/i); if (githubMatch) { return `<!-- GITHUB_REPO_START:${githubMatch[1]} -->`; } // 检测文件下载格式: ![file](name,type,fileid) const fileMatch = href.match(/^file\/([^,]+),([^,]+),([^,]+)$/); if (fileMatch) { const [, name, type, fileid] = fileMatch; return `<!-- FILE_DOWNLOAD_START:${name}|${type}|${fileid} -->`; } // 否则使用原始渲染器 return originalRenderer.call(this, href, title, text); } } ``` ## 附件 没错,为了与新开发的附件系统做一个适配,我还做了一个自定义解析,可以直接在文章中添加下载卡片,点击后直接下载,非常方便。 示例:`![file](测试,jpg,s.ww497d2a82f9615a88.768635337y2K_f.768636469m8aW)` ![file](测试,jpg,s.ww497d2a82f9615a88.768635337y2K_f.768636469m8aW)

©2026 秋名山香蕉 ,文章内容采用 CC BY-NC-SA 4.0 许可

SupabaseTencent Cloud 强力驱动

萌ICP备20250480号