index.html 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>四维看看SDK·开发文档</title>
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  7. <meta name="description" content="Description" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
  9. <!-- <link rel="stylesheet" href="./libs/npm/docsify@4/lib/themes/vue.css"> -->
  10. <link rel="stylesheet" href="./libs/npm/docsify-themeable@0/dist/css/theme-simple.css" />
  11. <link rel="stylesheet" href="./libs/doc.css" />
  12. <link rel="stylesheet" href="./libs/codemirror/codemirror.css" />
  13. <link rel="stylesheet" href="./libs/npm/docsify-sidebar-collapse.min.css" />
  14. <script src="./libs/codemirror/codemirror.js"></script>
  15. <script src="./libs/codemirror/mode/xml/xml.js"></script>
  16. <script src="./libs/codemirror/mode/javascript/javascript.js"></script>
  17. <script src="./libs/codemirror/mode/css/css.js"></script>
  18. <script src="./libs/codemirror/mode/htmlmixed/htmlmixed.js"></script>
  19. <script src="./libs/codemirror/addon/edit/matchbrackets.js"></script>
  20. </head>
  21. <body>
  22. <nav></nav>
  23. <div id="app"></div>
  24. <script>
  25. window.$docsify = {
  26. //repo: 'https://github.com/4Dage-Developer/4dage-sdk',
  27. name: '4DKanKan SDK Docs',
  28. coverpage: ['/', '/zh-cn/'],
  29. loadSidebar: true,
  30. loadNavbar: '_navbar.md',
  31. subMaxLevel: 4,
  32. sidebarDisplayLevel: 0,
  33. mergeNavbar: true,
  34. onlyCover: false,
  35. search: 'auto',
  36. relativePath:true,
  37. search: {
  38. maxAge: 86400000,
  39. paths: '/',
  40. placeholder: window.location.href.indexOf('/zh-cn/')!=-1?'搜索':'Type to search',
  41. noData: 'No Results',
  42. },
  43. markdown: {
  44. renderer: {
  45. code: function (code, lang) {
  46. if (/^\s*\/\*\s*online-demo\s*\*\//.test(code)) {
  47. if (code) {
  48. code = code.replace(/^\s*\/\*\s*online-demo\s*\*\//, '')
  49. }
  50. return `
  51. <div class="kankan-online-demo">
  52. <iframe class="kankan-online-demo-iframe"></iframe>
  53. <div class="kankan-online-demo-code">
  54. <div class="kankan-online-demo-codebar">
  55. <span>源代码编辑器</span>
  56. <div>
  57. <div data-copy>复制</div>
  58. <div data-run>运行</div>
  59. <div style="display:none">还原</div>
  60. </div>
  61. </div>
  62. <textarea class="kankan-online-demo-editor">${code}</textarea>
  63. </div>
  64. </div>
  65. `
  66. }
  67. return this.origin.code.apply(this, arguments)
  68. },
  69. },
  70. },
  71. plugins: [
  72. function (hook, vm) {
  73. hook.init(function () {
  74. // 初始化完成后调用,只调用一次,没有参数。
  75. // window.$docsify.markdown = window.$docsify.markdown || {}
  76. // window.$docsify.markdown.renderer = window.$docsify.markdown.renderer || {}
  77. // window.$docsify.markdown.renderer.code = exec(window.$docsify.markdown.renderer.code)
  78. })
  79. hook.beforeEach(function (content) {
  80. // 每次开始解析 Markdown 内容时调用
  81. return content
  82. })
  83. hook.afterEach(function (html, next) {
  84. // 解析成 html 后调用。
  85. // beforeEach 和 afterEach 支持处理异步逻辑
  86. // ...
  87. // 异步处理完成后调用 next(html) 返回结果
  88. next(html)
  89. var demos = document.querySelectorAll('.kankan-online-demo')
  90. if (demos) {
  91. demos.forEach(el => {
  92. var iframe = el.querySelector('iframe')
  93. var editor = CodeMirror.fromTextArea(el.querySelector('textarea'), {
  94. lineNumbers: true,
  95. mode: 'text/html',
  96. matchBrackets: true,
  97. })
  98. editor.lineAtHeight(0)
  99. var iframeDoc = iframe.contentDocument || iframe.contentWindow.document
  100. iframeDoc.open()
  101. iframeDoc.write(editor.getValue())
  102. iframeDoc.close()
  103. el.querySelector('[data-run]').addEventListener(
  104. 'click',
  105. (function (iframe, editor) {
  106. return function () {
  107. var doc = iframe.contentDocument || iframe.contentWindow.document
  108. doc.open()
  109. doc.write(editor.getValue())
  110. doc.close()
  111. }
  112. })(iframe, editor)
  113. )
  114. el.querySelector('[data-copy]').addEventListener(
  115. 'click',
  116. (function (iframe, editor) {
  117. return function () {
  118. navigator.clipboard.writeText(editor.getValue());
  119. alert('复制成功')
  120. }
  121. })(iframe, editor)
  122. )
  123. })
  124. }
  125. })
  126. hook.doneEach(function () {
  127. // 每次路由切换时数据全部加载完成后调用,没有参数。
  128. // ...
  129. if (document.querySelectorAll('.kankan-online-demo').length) {
  130. document.querySelector('section.content').classList.add('full')
  131. } else {
  132. document.querySelector('section.content').classList.remove('full')
  133. }
  134. })
  135. hook.mounted(function () {
  136. // 初始化并第一次加载完成数据后调用,只触发一次,没有参数。
  137. if(window.location.href.indexOf('/product/')!=-1){
  138. var link = document.querySelector('.app-name-link')
  139. if(window.location.href.indexOf('/zh-cn/')!=-1){
  140. link.innerHTML = '用户手册'
  141. } else {
  142. link.innerHTML = 'User Document'
  143. }
  144. link.href = 'javascript:;'
  145. }
  146. })
  147. hook.ready(function () {
  148. // 初始化并第一次加载完成数据后调用,没有参数。
  149. })
  150. },
  151. ],
  152. }
  153. </script>
  154. <!-- Docsify v4 -->
  155. <script src="./libs/example/sync.js"></script>
  156. <script src="./libs/npm/docsify.min.js"></script>
  157. <script src="./libs/npm/docsify/lib/plugins/emoji.min.js"></script>
  158. <script src="./libs/npm/docsify/lib/plugins/zoom-image.min.js"></script>
  159. <script src="./libs/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>
  160. <script src="./libs/npm/docsify-pagination/dist/docsify-pagination.min.js"></script>
  161. <script src="./libs/npm/prismjs@1/components/prism-bash.min.js"></script>
  162. <script src="./libs/npm/docsify/lib/plugins/search.min.js"></script>
  163. <script src="./libs/npm/docsify/lib/plugins/external-script.min.js"></script>
  164. <script src="./libs/npm/docsify-sidebar-collapse.min.js"></script>
  165. </body>
  166. </html>