Gitment 配置

Gitment 原版的貌似没有在维护,后来改用了 Gitmint (加了统计和翻译),然而发现 gitment 的评论区是一个裸的 textarea,外面没有包上 form,然后 mkdocs-material 是判断不在 form 里来触发搜索功能的关键字的…… https://github.com/Ir1d/gitment/issues/20 (鸣谢褚老板发现这个坑)

然后为了修这个给 mkdocs-material 开 pr,人家表示正常的 textarea 都在 form 里面,你这种完全可以通过自定义 gitment 来搞定。

搜了下发现需要改 gitment 里面 render 的过程:https://github.com/24OI/OI-wiki/blob/master/static/disqus.html#L13-L26

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const myTheme = {
render(state, instance) {
const container = document.createElement('div')
container.lang = "zh-CN"
container.className = 'gitment-container gitment-root-container'
const divv = document.createElement('form')
// container.appendChild(instance.renderSomething(state, instan)
container.appendChild(instance.renderHeader(state, instance))
divv.appendChild(instance.renderEditor(state, instance))
container.appendChild(divv)
container.appendChild(instance.renderComments(state, instance))
container.appendChild(instance.renderFooter(state, instance))
return container
},
renderSomething(state, instance) {
const container = document.createElement('div')
container.lang = "zh-CN"
if (state.user.login) {
container.innerText = `Hello, ${state.user.login}, 来说点什么吧?`
}
return container
}
}
const gitment = new Gitment({
id: '{{ page.title | default("404", true) }}',
theme: myTheme,
owner: 'Ir1d',
repo: 'gitment',
oauth: {
client_id: 'd6a911c8fba0194626d4',
client_secret: '867ec7e13cc99b420bd147cbb62d5cfec271ba81',
},
})
gitment.render('gitment_container')

然后直接推上生产(昨晚 Travis CI 和 Github 的通讯 bug 了,CI 过了但是 Github 上还是 pending = =)

然后发现点预览的时候会刷新整个页面= =,然后之前评论框里还没有提交的东西就丢了= =

搜了下发现 form 里面的 button 需要加上个 type='button' 才可以不跳转。

这个就必须要改 renderEditor 里面的东西了,索性把整个 gitment.js 都给换掉好了……

在 gitment 的 issue 里搜了下,发现 https://www.kymjs.com 的这位大佬搞了个翻译好的,就稍微改下,拿过来用了。

修改在:https://github.com/24OI/24oi.github.io/blob/master/gitment.js#L3063

其他的修改都是细节上魔改,与整体配置无关(x

所以就让 mkdocs 用上 gitment 啦!

完整配置在:https://github.com/24OI/OI-wiki/blob/master/static/disqus.html