config.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. function getTimestamp() {
  2. return parseInt(new Date() / 1000, 10);
  3. }
  4. function setReadState() {
  5. localStorage.setItem('leader.url', location.href);
  6. localStorage.setItem('leader.time', getTimestamp());
  7. localStorage.setItem('leader.top', document.documentElement.scrollTop || document.body.scrollTop);
  8. setTimeout(setReadState, 5000);
  9. }
  10. function getReadState() {
  11. if (window.localStorage) {
  12. var time = ~~localStorage.getItem('leader.time');
  13. if (getTimestamp() - time > 300) {
  14. var url = localStorage.getItem('leader.url');
  15. if (url && location.href != url) {
  16. location.href = url;
  17. setTimeout(function () {
  18. var top = ~~localStorage.getItem('leader.top');
  19. window.scrollTo(0, top);
  20. }, 300);
  21. }
  22. setTimeout(setReadState, 5000);
  23. }
  24. }
  25. }
  26. // Docsify配置
  27. window.$docsify = {
  28. name: '《团队领袖培养计划》',
  29. repo: 'https://github.com/js-cool/leader.js.cool.git',
  30. loadSidebar: true,
  31. subMaxLevel: 2,
  32. formatUpdated: '{YYYY}-{MM}-{DD} {HH}:{mm}',
  33. executeScript: true,
  34. auto2top: true,
  35. alias: {
  36. '/basic/_sidebar.md': '/_sidebar.md',
  37. '/basic/algorithm/_sidebar.md': '/_sidebar.md',
  38. '/basic/db/_sidebar.md': '/_sidebar.md',
  39. '/basic/framework/_sidebar.md': '/_sidebar.md',
  40. '/basic/js/_sidebar.md': '/_sidebar.md',
  41. '/basic/knowledge/_sidebar.md': '/_sidebar.md',
  42. '/basic/md/_sidebar.md': '/_sidebar.md',
  43. '/basic/node/_sidebar.md': '/_sidebar.md',
  44. '/basic/resource/_sidebar.md': '/_sidebar.md',
  45. '/experience/_sidebar.md': '/_sidebar.md',
  46. '/experience/advanced/_sidebar.md': '/_sidebar.md',
  47. '/experience/azure/_sidebar.md': '/_sidebar.md',
  48. '/experience/design/_sidebar.md': '/_sidebar.md',
  49. '/experience/operation/_sidebar.md': '/_sidebar.md',
  50. '/experience/project/_sidebar.md': '/_sidebar.md',
  51. '/experience/project/user/_sidebar.md': '/_sidebar.md',
  52. '/mind/_sidebar.md': '/_sidebar.md',
  53. '/mind/capability/_sidebar.md': '/_sidebar.md',
  54. '/mind/team/_sidebar.md': '/_sidebar.md',
  55. '/mind/thinking/_sidebar.md': '/_sidebar.md'
  56. },
  57. search: {
  58. placeholder: '搜索',
  59. noData: '未找到结果'
  60. },
  61. plugins: [
  62. function (hook, vm) {
  63. hook.ready(function () {
  64. if (mermaid) { mermaid.initialize({ startOnLoad: false }); }
  65. var adScript = document.createElement('script');
  66. adScript.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
  67. adScript.setAttribute('async', true);
  68. document.body.appendChild(adScript);
  69. getReadState();
  70. });
  71. hook.beforeEach(function (md) {
  72. var url = 'https://github.com/js-cool/leader.js.cool/blob/master' + vm.route.file
  73. var editUrl = '[:memo: 编辑本章节](' + url + ')\n'
  74. return md
  75. + '\n----\n'
  76. + '最后更新 {docsify-updated} '
  77. + editUrl
  78. });
  79. hook.doneEach(function () {
  80. if (mermaid) { mermaid.init(undefined, '.mermaid') };
  81. var main = document.getElementById('main');
  82. var paragraphs = main.getElementsByTagName('p');
  83. var ads = [];
  84. if (paragraphs.length > 15) {
  85. ads.push(paragraphs[Math.ceil(Math.random() * 15)]);
  86. }
  87. ads.push(paragraphs[paragraphs.length - 1]);
  88. for (var i = 0; i < ads.length; i += 1) {
  89. ads[i].insertAdjacentHTML('afterend', '<ins class="adsbygoogle" style="display:block;margin: 1.5em auto;" data-ad-client="ca-pub-5059418763237956" data-ad-slot="9518721243" data-ad-format="auto"></ins>');
  90. (adsbygoogle = window.adsbygoogle || []).push({});
  91. }
  92. });
  93. }
  94. ],
  95. markdown: {
  96. renderer: {
  97. code: function (code, lang) {
  98. var html = '';
  99. if (code.match(/^sequenceDiagram/) || code.match(/^graph/) || code.match(/^gantt/)) {
  100. html = '<div class="mermaid">' + code + '</div>';
  101. }
  102. var hl = Prism.highlight(code, Prism.languages[lang] || Prism.languages.markup)
  103. return html + '<pre v-pre data-lang="' + lang + '"><code class="lang-' + lang + '">' + hl + '</code></pre>'
  104. }
  105. }
  106. }
  107. };
  108. // 离线浏览
  109. if (typeof navigator.serviceWorker !== 'undefined') {
  110. navigator.serviceWorker.register('sw.js');
  111. }