Open CloudyCity opened 5 years ago
安排上了!
Cool, 欢迎使用github issue migrator。
之前,我也曾经想gitment提过一个issue [1],想办法把两者结合起来(在同一个issue下面,内容就是博客内容,评论就是博客评论),但是原作者没有回复。所以,我只是自己维护了一个私有分支。你可以参考下。
[1] https://github.com/imsun/gitment/issues/33 [2] https://github.com/Yikun/gitment/tree/gh-pages
@Yikun 我也看到你之前在gitment提的issue了,感谢你的分享!
@Yikun Hi, 我clone了你的分支,然后用webpack打包,将dist
目录覆盖到node_modules/gitment/
中,但评论的时候还是另外新建了一个Issue,请问是哪个步骤不对吗?对NodeJs不太熟悉
@CloudyCity 我看[1],你的博客页面上,还是引的gitment旧链接,这个也需要fix。可以参考下[2]的修改。
[1] https://github.com/CloudyCity/CloudyCity.github.io/blob/master/index.html#L943 [2] https://github.com/Yikun/gitment/commit/bb24c87a46fcfe46c79ffcba14fcce1f8ad070df
@Yikun 谢谢回复,现在已经修复了引用,还想请问如何在主题模板的gitment.swig
中获取文章Front-matter
中的issue-number
?
{% if theme.gitment.enable %}
{% set id = '' %}
{% set owner = theme.gitment.githubID %}
{% set repo = theme.gitment.repo %}
{% set cid = theme.gitment.ClientID %}
{% set cs = theme.gitment.ClientSecret %}
<link rel="stylesheet" href="https://www.wenjunjiang.win/css/gitment.css">
<script type="text/javascript" src="{{ url_for(theme.js) }}/src/gitment.js"></script>
{% if not theme.gitment.lazy %}
<script type="text/javascript">
var gitment = new Gitment({
id: '{{id}}',
owner: '{{owner}}',
repo: '{{repo}}',
oauth: {
client_id: '{{cid}}',
client_secret: '{{cs}}'
}});
gitment.render('gitment-container');
</script>
{% else %}
<script type="text/javascript">
function ShowGitment(){
document.getElementById("gitment-display-button").style.display = "none";
document.getElementById("gitment-container").style.display = "block";
var gitment = new Gitment({
id: '{{id}}',
owner: '{{owner}}',
repo: '{{repo}}',
oauth: {
client_id: '{{cid}}',
client_secret: '{{cs}}',
}});
gitment.render('gitment-container');
}
</script>
{% endif %}
{% endif %}
任何一篇通过hexo-github-issue-migrator导出的文章都会在生成的过程[0]中,加上number的标签,比如[1]的number为3。
然后,通过post.number
引就行了,就像使用post.title[3]一样。我的那个代码貌似没上传,还是搞不定的话,有空我update下吧。
[0] https://github.com/Yikun/hexo-migrator-github-issue/blob/master/index.js#L44 [1] https://raw.githubusercontent.com/Yikun/yikun.github.com/hexo/source/_posts/%E6%90%AD%E5%BB%BAGit%E6%9C%8D%E5%8A%A1%E5%99%A8.md [3] https://github.com/Yikun/hexo-theme-yilia/blob/master/layout/_partial/article.ejs#L77
@Yikun 我用的是Next主题,但在模板[0][1][2]中使用post.number
没获取成功,见[3]。请问是不是需要include某些文件才能使用post对象?
[3] https://github.com/CloudyCity/CloudyCity.github.io/blob/master/p/9414.html#L517
post改成page试下?
@Yikun 改成page.number
可以了!谢谢~
Great, enjoy it.
cover: https://i.imgur.com/P2E0Xkw.jpg
Hexo
默认文章存放于source
分支,没有评论系统,不过都可以通过插件进行扩展。本文介绍如何将hexo
的文章与评论存放于Github Issue中(issue内容为博客内容,issue评论为博客评论)。使用github issue存放文章
这种方案主要优点是可以直接使用GitHub的图床。 注意: 19年10月开始
githubusercontent.com
域名被墙,需要科学才能看到图片安装插件
新建issue文章
使用GitHub图床非常简单,把图片文件拖到编辑框就行了~
导入文章
例如 然后生成部署即可。
插件扩展
该插件会根据issue的label为文章生成标签,如果要想生成分类和置顶参数,需要做一些修改。
我提了一个PR还没通过,这里直接使用我fork的分支替换。
使用github issue存放评论
安装插件
Next主题自带gitment,主文件是
/themes/next/source/js/src/gitment.browser.js
。如果是其他主题,需要安装
gitment
,主文件是/node_modules/gitment/dist/gitment.browser.js
。创建授权应用
点击这里创建,名称随意,两个url都填hexo博客的url,创建完成就得到应用ID和密钥。
创建新仓库在GitHub中创建一个新仓库,其issue将用于存放评论。配置
在Next主题的配置文件
_config.yaml
中更改以下配置修改CORS转发代理原作者提供的转发服务目前正常,无需更换
插件修改
此插件原本是使用另一个仓库存放评论,现在的需求是用博客所在仓库的对应文章issue中存放评论,需要修改
loadMeta()
,让插件使用id
获取issue。这里使用
hexo-migrator-github-issue
作者Yikun
fork的分支,用webpack
打包,覆盖gitment
主文件。Next
主题可参考本博客的gitment.browser.js非
Next
主题可参考我写的替换脚本gitment.sh主题修改
这里使用的是Next主题,需要修改三个模板文件,将
hexo-migrator-github-issue
插件获取到的issue-number
作为id
,供gitment
插件中的loadMeta()
使用。\themes\next\layout\_partials\comments\gitment.swig
\themes\next\layout\_script\comments\gitment.swig
\themes\next\layout\_third-party\comments\gitment.swig
可以将主题加入版本控制,更换机器后就不需要再操作一遍,不过也会导致
gitment
的密钥泄漏:(最后
最终效果参照本文章对应issue
如果大家觉得上面两个插件好用的话可以去给插件的项目点个星支持开发者哦~ hexo-migrator-github-issue gitment