aboutsummaryrefslogtreecommitdiff
path: root/src/.vuepress/enhanceApp.js
blob: 7b620baf9be2d2ada8abed7ba79edf8234d5789b (plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
function integrateGitalk(router) {
  const linkGitalk = document.createElement('link')
  linkGitalk.href = '/assets/css/gitalk.css'
  linkGitalk.rel = 'stylesheet'
  document.body.appendChild(linkGitalk)
  const scriptGitalk = document.createElement('script')
  scriptGitalk.src = '/assets/js/gitalk.min.js'
  document.body.appendChild(scriptGitalk)

  router.afterEach((to) => {
    if (scriptGitalk.onload) {
      loadGitalk(to)
    } else {
      scriptGitalk.onload = () => {
        loadGitalk(to)
      }
    }
  })

  function loadGitalk(to) {
    const commentsContainer = document.createElement('div')
    commentsContainer.id = 'gitalk-container'
    commentsContainer.classList.add('content')
    const $page = document.querySelector('.page')
    if ($page) {
      $page.appendChild(commentsContainer)
      renderGitalk(to.fullPath)
    }
  }
  function renderGitalk(fullPath) {
    const gitalk = new Gitalk({
      clientID: 'cb53dd42b1b654202a55',
      clientSecret: '8a9a0e7feadc575b8bba9770cd9454d7423028ac',
      repo: 'xmake-docs',
      owner: 'waruqi',
      admin: ['waruqi'],
      id: 'comment',
      distractionFreeMode: false  
    })
    gitalk.render('gitalk-container')
  }
}

export default ({Vue, options, router, siteData}) => {
  try {
    document && integrateGitalk(router)
  } catch (e) {
    console.error(e.message)
  }
}