博客更换remark42 评论系统
原因
disqus老旧了,loading时候感觉慢;最重要的是,貌似有广告。这个不能忍啊,刚好找到一个新的解决方案remark42,就尝试了一下。很友好,允许使用各种方式google,github,twitter,facebook,匿名登陆,爱留言随时留言;和ghost的植入,在帖子里也写得很清楚,于是就花了一早上套用了,是的,感觉调试很花时间。
第一次安装remark42时,我将remark42的server放到了不同的域名,在使用AUTH_SAME_SITE=none 参数后,成功用电脑登陆其他域名的博客留下评论;问题在于当使用手机登陆时,无法留言,当手机可以在remark42 server本身操作,一番搜索,可能是safari mobile自动的保护机制,无法传递token;忍痛将博客和评论放入同一域名,解决。
我对评论系统的态度就是:
你可以不留评论,但是我不可以没有这个系统。
安装思路
- 采用了docker-compose,我贴出我这边的sample; 我把ghost和remark42放一起了。
version: "3.7"
services:
ghost:
image: ghost:5.2.3
container_name: ghost
volumes:
- ./content:/var/lib/ghost/content
- ./content/config.production.json:/var/lib/ghost/config.production.json
environment:
- url=https://blog.colors4.us
- PROD_DOMAIN=https://blog.colors4.us
restart: unless-stopped
networks:
- docker
remark:
image: umputun/remark42:latest
container_name: "remark42"
hostname: "remark42"
restart: always
networks:
- docker
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
environment:
- REMARK_URL=https://blog.colors4.us/remark42/
- SITE=remark
- TIME_ZONE=Asia/Hong_Kong
- SECRET=14d5e2d2
- AUTH_SAME_SITE=none
- ADMIN_PASSWD=30347
- ADMIN_SHARED_ID=github_5e
- STORE_BOLT_PATH=/srv/var/db
- BACKUP_PATH=/srv/var/backup
- AUTH_GITHUB_CID=fa460
- AUTH_GITHUB_CSEC=d5a7
- AUTH_GOOGLE_CID=106413
- AUTH_GOOGLE_CSEC=GOCSP
- AUTH_FACEBOOK_CID=7919
- AUTH_FACEBOOK_CSEC=69449
#- AUTH_TWITTER_CID=9KRgU6i
#- AUTH_TWITTER_CSEC=TJuB
- AUTH_ANON=true
- SMTP_HOST=
- SMTP_PORT=465
- SMTP_TLS=true
- SMTP_USERNAME=
- SMTP_PASSWORD=
- NOTIFY_EMAIL_FROM=
- NOTIFY_USERS=email
- NOTIFY_EMAIL_VERIFICATION_SUBJ
- NOTIFY_ADMINS=email
- ADMIN_SHARED_EMAIL=
- AUTH_EMAIL_ENABLE=true
- AUTH_EMAIL_FROM=
volumes:
- ./var:/srv/var
networks:
docker:
external:
name: docker
- 设置好后,把remark42系统嵌入ghost blog。登陆ghost后台,下载当前使用的theme template,修改里面的post.hbs,将如下进行修改
#原来的内容
{{!--
<section class="article-comments gh-canvas">
If you want to embed comments, this is a good place to paste your code!
</section>
--}}
#完全替换后的内容
<section class="article-comments gh-canvas">
<div id="remark42"></div>
<script>
var remark_config = {
host: "https://remark42.demo",
site_id: 'remark',
components: ['embed']
};
</script>
<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>
</section>
- 修改后,打包成新的theme zip 上传回ghost,完工。
- 参考这个链接,设置各个服务的callback oauth
- callback 链接相关
#google
https://blog.colors4.us
https://blog.colors4.us/remark42/auth/google/callback
#twitter
https://blog.colors4.us/remark42/
https://blog.colors4.us/remark42/auth/twitter/callback
#github
https://blog.colors4.us/remark42/
https://blog.colors4.us/remark42/auth/github/callback
#facebook
https://blog.colors4.us/remark42/
https://blog.colors4.us/remark42/auth/facebook/callback
- 导入disqus comment
- disqus export
- 导出后按框中命令导入到remark42中,注意的是,还可以先进入container再操作
- 导出的评论发现无法在博文中显示,经过对照,发信comment连接的link末尾少了一个'/',解决方法有两个,一个是disqus中remap,第二个是我采用的方法,手动添加,我以为comment不多,结果洋洋洒洒900多行,但是值,看了一遍博客的留言,有发现的,最早都到05年。
docker exec -it remark42 import -p disqus -f /srv/var/linpx*.xml -s remark --admin-passwd 30347bc4
#进入container
docker exec -it remark42 sh
#设置rule后,对link进行转换
vi ./var/rule
https://blog.colors4.us/habits-of-gold https://blog.colors4.us/habits-of-gold/ #变化前link 变化后link
remark42 remap --admin-passwd 30347b -f /srv/var/rule
# 我实际上找不到comments全文输出的方式,用了个土办法,backup出来,然后一个个考
docker exec -it remark42 backup -s {your site ID}