开始求生欲望极强的声明一下,本人刚刚开始玩 Hexo 几天,所以都是以我现在的水平表述操作过程,说得不对还请多多指正。

# 环境说明

  1. Hexo 6.2.0
  2. 主题 Aomori 1.35.0
  3. Remark42 1.9.0
  4. Remark42 部署服务器环境 wind10 操作系统
  5. nginx 1.21.6
  6. 部署环境,Github Pages

# 操作过程

# 配置自己的 remark42 服务器

官方提供两中配置方式,docker 部署和二进制安装部署,本文使用 windwos 环境下的 zip 文件进行安装
点这里下载 Remark42-1.9.0

下载后直接解压,文件结构也很简单

.
+-- _config.yml
+-- var
|   +-- avanta
|   +-- backups
+-- remark42.windows-amd64.exe
+-- README.md
+-- LICENSE

参考官方文档的例子 cmd 到文件夹之后 直接用 remark42.windows-amd64.exe 后面带配置参数就可以跑起来, 官方文档说明

比如使用官方的启动例子就能运行起来:

$ remark42.linux-amd64 server --secret=12345 --url=http://127.0.0.1:8080

运行之后你浏览器打开 http://127.0.0.1:8080/web, 能够看到一个如下的页面,说明你已经跑起来 😄

参考启动参数,结合自身项目情况,我整理了几个可能你和我一样也可能用到的一个一个启动命令:

remark42.windows-amd64.exe server --secret=not4you2know --url=https://sub.yourdomain.com --auth.github.cid=1107********9011b --auth.github.csec=a7665**********05741 --auth.anon --site=mySiteId

其中各个参数说明:

  • --secret 必须参数,官方说明是 secret key, can be any long and hard-to-guess string 具体是起什么作用?没有弄明白,又知道的请留言帮我解惑🤝

  • --url Remark42 服务器的 URL 必须的参数, 这个也不知道起什么作用,我测试是设置内网 http://127.0.0.1:8080 地址,然后用 nginx 映射道外网域名使用自己的域名也没有发现问题

  • --auth 开头的参数,用于配置评论的身份认证,需要开通第三方的登陆认证权限,本例子直配置了 github 登陆认证权限,获取第三方应用分配的 clientId 和 clientScret 分别对应 --auth.github.cid 和 auth.github.csec 两个值

  • --auth.anon 是否允许匿名评论 (匿名评论也需要随便填入一个昵称),只有 key 没有值,加上为 true, 去掉就是 false

  • --site 这个参数默认是 remark, 必须和前端的配置一致,不一致可能导致之前评论会丢失

    其他配置说明请参考官方说明 Remark42 服务器配置说明

# 配置外网映射

由于博客放到外网,所以需要把 Remark42 进行外网映射,具体配置方式这里不做说明,需要注意的两个地方:

  • 因为 GitHub pages 和 GitLab pages 都是默认使用 SSL 协议的 https 进行访问,所以映射需要同样的使用 SSL 部署 Remark42
  • 考虑前端的访问跨域问题 (后面验证好像 Remark42 默认支持跨域访问,但是为了保险最好也不要忽略)

# 配置 Hexo 的_config.yml 文件

Hexo 的根目录 _config.yml, 添加如下配置:

aomori_remark42:
  enable: true
  # 如果要放到 github pages,需要把第 #1 步映射到外网
  host: 'https://sub.yourdomain.com'
  site_id: 'mySiteId'
  # 最多显示评论数量
  max_shown_comments: 10
  theme: "light"
  # 用中文显示评论框
  locale: "zh"
  # 一些组件配置 embed 基本评论小部件 last-comments 最后评论小部件
  components: ['embeded', 'last-comments']
  # 是否显示邮件订阅
  show_email_subscription: true

按照上面的配置做好了之后,基本上就可以用了,其中各个参数的含义如官方说明 (Remark42 前端配置):

host: string (required) – hostname of Remark42 server, same as REMARK_URL in backend config, e.g. "https://demo.remark42.com"
site_id: string (optional, remark by default) – the SITE that you passed to Remark42 instance on start of backend.
url: string (optional, window.location.origin + window.location.pathname by default) – url to the page with comments, it is used as unique identificator for comments thread
Note that if you use query parameters as significant part of URL (the one that actually changes content on page) you will have to configure URL manually to keep query params, as window.location.origin + window.location.pathname doesn't contain query params and hash. For example, default URL for https://example/com/example-post?id=1#hash would be https://example/com/example-post
components: ['embed' | 'last-comments' | 'counter'] (optional, ['embed'] by default) – an array of widgets that should be rendered on a page. You may use more than one widget on a page.
Available components are:
'embed' – basic comments widget
'last-comments' – last comments widget, see Last Comments section below
'counter' – counter widget, see Counter section below
max_shown_comments: number (optional, 15 by default) – maximum number of comments that is renered on mobile version
theme: 'light' | 'dark' (optional, 'light' by default) – changes UI theme
page_title: string (optional, document.title by default) – title for current comments page
locale: enum (optional, 'en' by default) – interface localization, check possible localizations
show_email_subscription: boolean (optional, true by default) – enables email subscription feature in interface when enable it from backend side, if you set this param in false you will get notifications email notifications as admin but your users won't have interface for subscription
simple_view: boolean (optional, false by default) – overrides the parameter from the backend minimized UI with basic info only

# 遇到的问题

# 配置 Remark42 需要 SSL 证书

可以去阿里云官网去申请免费的 ssl 证书,然后在适当的位置配置上就可以

# Remrk 客户端显示不了登陆选项

Remark42 默认没有配置任何登陆选项,请至少打开 --scret.anno 以支持匿名评论,其他的认证方式情参考官网说明 Remark42 认证权限说明

更新于 阅读次数