index.html 9.1 KB

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