@jx3box/jx3box-editor 2.2.48 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/config/global.js +79 -0
  2. package/config/global.less +16 -0
  3. package/index.js +21 -8
  4. package/package.json +64 -63
  5. package/readme.md +25 -99
  6. package/src/Article.vue +96 -57
  7. package/src/ArticleMarkdown.vue +54 -47
  8. package/src/BoxResource.vue +67 -42
  9. package/src/Buff.vue +18 -7
  10. package/src/GameText.vue +32 -45
  11. package/src/Item.vue +143 -235
  12. package/src/ItemSimple.vue +27 -37
  13. package/src/Markdown.vue +362 -210
  14. package/src/Npc.vue +51 -30
  15. package/src/Resource.vue +296 -252
  16. package/src/Skill.vue +36 -26
  17. package/src/Tinymce.vue +124 -137
  18. package/src/Upload.vue +238 -155
  19. package/src/UploadAlbum.vue +189 -118
  20. package/{assets → src/assets}/css/article.less +1 -0
  21. package/src/assets/css/markdown.less +4 -0
  22. package/{assets → src/assets}/css/module/author.less +4 -3
  23. package/{assets → src/assets}/css/module/directory.less +23 -32
  24. package/{assets → src/assets}/css/module/talent.less +2 -2
  25. package/{assets → src/assets}/css/resource.less +56 -22
  26. package/src/assets/css/tinymce/_.less +28 -0
  27. package/src/assets/css/tinymce/a.less +21 -0
  28. package/{assets → src/assets}/css/tinymce/code.less +1 -1
  29. package/{assets/css → src/assets/css/tinymce}/combo.less +123 -18
  30. package/{assets → src/assets}/css/tinymce/fold.less +3 -6
  31. package/src/assets/css/tinymce/h.less +90 -0
  32. package/{assets → src/assets}/css/tinymce/latex.less +14 -14
  33. package/{assets → src/assets}/css/tinymce/macro.less +3 -3
  34. package/{assets → src/assets}/css/tinymce/pz.less +2 -2
  35. package/{assets → src/assets}/css/tinymce/table.less +5 -10
  36. package/{assets → src/assets}/css/tinymce.less +8 -4
  37. package/src/assets/css/upload.less +195 -0
  38. package/src/assets/css/upload_album.less +164 -0
  39. package/src/assets/css/var.less +2 -0
  40. package/src/assets/img/other/qr-code.svg +1 -0
  41. package/{assets → src/assets}/js/audio.js +2 -2
  42. package/{assets → src/assets}/js/directory.js +51 -23
  43. package/src/assets/js/hljs_languages.js +177 -0
  44. package/src/assets/js/katex.js +211 -0
  45. package/src/assets/js/renderImgPreview.js +49 -0
  46. package/{assets → src/assets}/js/xss.js +48 -5
  47. package/src/components/Author.vue +32 -13
  48. package/src/components/Avatar.vue +22 -3
  49. package/src/components/Combo.vue +118 -72
  50. package/src/components/PostAuthor.vue +13 -11
  51. package/src/components/QRcode.vue +136 -0
  52. package/src/components/SkillMartial.vue +13 -12
  53. package/src/pages/article.js +14 -0
  54. package/src/pages/index.js +5 -0
  55. package/src/pages/markdown.js +14 -0
  56. package/src/pages/tinymce.js +49 -0
  57. package/src/pages/upload.js +14 -0
  58. package/{service → src/service}/author.js +2 -2
  59. package/{service → src/service}/cms.js +5 -3
  60. package/{service → src/service}/database.js +4 -2
  61. package/{service → src/service}/item.js +1 -1
  62. package/{service → src/service}/node.js +1 -1
  63. package/{service → src/service}/resource.js +1 -1
  64. package/src/views/article.vue +72 -0
  65. package/src/views/index.vue +11 -0
  66. package/src/views/markdown.vue +58 -0
  67. package/src/views/tinymce.vue +58 -0
  68. package/src/views/upload.vue +111 -0
  69. package/.env +0 -2
  70. package/.vscode/settings.json +0 -5
  71. package/assets/css/katex-fix.css +0 -20
  72. package/assets/css/tinymce/_.less +0 -30
  73. package/assets/css/tinymce/a.less +0 -30
  74. package/assets/css/tinymce/combo.less +0 -111
  75. package/assets/css/tinymce/h.less +0 -58
  76. package/assets/css/upload.less +0 -105
  77. package/assets/js/katex.js +0 -191
  78. package/assets/js/renderImgPreview.js +0 -25
  79. package/babel.config.js +0 -3
  80. package/docs/markdown.md +0 -16
  81. package/jsconfig.json +0 -9
  82. package/public/article.html +0 -15
  83. package/public/css/article.css +0 -2481
  84. package/public/css/article.less +0 -3
  85. package/public/favicon.ico +0 -0
  86. package/public/tinymce.html +0 -33
  87. package/src/Equip.vue +0 -301
  88. package/src/components/LetterDemo.vue +0 -93
  89. package/src/components/medal.vue +0 -43
  90. package/test-audio.html +0 -121
  91. package/vue.config.js +0 -147
  92. /package/{assets → src/assets}/css/markdown/_.less +0 -0
  93. /package/{assets → src/assets}/css/markdown/macro.less +0 -0
  94. /package/{assets/css/article_markdown.less → src/assets/css/markdown/markdown-article.less} +0 -0
  95. /package/{assets/css/markdown.less → src/assets/css/markdown/markdown-editor.less} +0 -0
  96. /package/{assets → src/assets}/css/markdown/talent.less +0 -0
  97. /package/{assets → src/assets}/css/markdown/video.less +0 -0
  98. /package/{assets → src/assets}/css/module/buff.less +0 -0
  99. /package/{assets → src/assets}/css/module/icon.less +0 -0
  100. /package/{assets → src/assets}/css/module/item.less +0 -0
  101. /package/{assets → src/assets}/css/module/item_simple.less +0 -0
  102. /package/{assets → src/assets}/css/module/jx3_element.less +0 -0
  103. /package/{assets → src/assets}/css/module/macro.less +0 -0
  104. /package/{assets → src/assets}/css/module/npc.less +0 -0
  105. /package/{assets → src/assets}/css/module/resource.less +0 -0
  106. /package/{assets → src/assets}/css/module/skill.less +0 -0
  107. /package/{assets → src/assets}/css/tinymce/hr.less +0 -0
  108. /package/{assets → src/assets}/css/tinymce/img.less +0 -0
  109. /package/{assets → src/assets}/css/tinymce/imgpreview.less +0 -0
  110. /package/{assets → src/assets}/css/tinymce/list.less +0 -0
  111. /package/{assets → src/assets}/css/tinymce/nextpage.less +0 -0
  112. /package/{assets → src/assets}/css/tinymce/p.less +0 -0
  113. /package/{assets → src/assets}/css/tinymce/plugin.less +0 -0
  114. /package/{assets → src/assets}/css/tinymce/qixue.less +0 -0
  115. /package/{assets → src/assets}/css/tinymce/quote.less +0 -0
  116. /package/{assets → src/assets}/css/tinymce/video.less +0 -0
  117. /package/{assets → src/assets}/css/tinymce/voice.less +0 -0
  118. /package/{assets → src/assets}/data/detach_type.json +0 -0
  119. /package/{assets → src/assets}/data/game_font.json +0 -0
  120. /package/{assets → src/assets}/data/markdown_whitelist.json +0 -0
  121. /package/{assets → src/assets}/data/weapon_type.json +0 -0
  122. /package/{assets → src/assets}/img/buff.svg +0 -0
  123. /package/{assets → src/assets}/img/equip_bg.png +0 -0
  124. /package/{assets → src/assets}/img/file.svg +0 -0
  125. /package/{assets → src/assets}/img/icons.svg +0 -0
  126. /package/{assets → src/assets}/img/item/pve.png +0 -0
  127. /package/{assets → src/assets}/img/item/pvp.png +0 -0
  128. /package/{assets → src/assets}/img/item/pvx.png +0 -0
  129. /package/{assets → src/assets}/img/item/std.png +0 -0
  130. /package/{assets → src/assets}/img/item/wujie.png +0 -0
  131. /package/{assets → src/assets}/img/item.svg +0 -0
  132. /package/{assets → src/assets}/img/jx3.svg +0 -0
  133. /package/{assets → src/assets}/img/jx3box.svg +0 -0
  134. /package/{assets → src/assets}/img/npc/attack.svg +0 -0
  135. /package/{assets → src/assets}/img/npc/buff.svg +0 -0
  136. /package/{assets → src/assets}/img/npc/energy.svg +0 -0
  137. /package/{assets → src/assets}/img/npc/miss.svg +0 -0
  138. /package/{assets → src/assets}/img/npc/npc.svg +0 -0
  139. /package/{assets → src/assets}/img/npc/radar.svg +0 -0
  140. /package/{assets → src/assets}/img/npc/shield.svg +0 -0
  141. /package/{assets → src/assets}/img/npc/sight.svg +0 -0
  142. /package/{assets → src/assets}/img/npc/skull.svg +0 -0
  143. /package/{assets → src/assets}/img/npc/target.svg +0 -0
  144. /package/{assets → src/assets}/img/skill.svg +0 -0
  145. /package/{assets → src/assets}/img/skillset.png +0 -0
  146. /package/{assets → src/assets}/js/a.js +0 -0
  147. /package/{assets → src/assets}/js/code.js +0 -0
  148. /package/{assets → src/assets}/js/combo.js +0 -0
  149. /package/{assets → src/assets}/js/drag.js +0 -0
  150. /package/{assets → src/assets}/js/filter2.js +0 -0
  151. /package/{assets → src/assets}/js/fold.js +0 -0
  152. /package/{assets → src/assets}/js/gallery.js +0 -0
  153. /package/{assets → src/assets}/js/iframe.js +0 -0
  154. /package/{assets → src/assets}/js/img.js +0 -0
  155. /package/{assets → src/assets}/js/item/attribute_percent.js +0 -0
  156. /package/{assets → src/assets}/js/item/bind.js +0 -0
  157. /package/{assets → src/assets}/js/item/border.js +0 -0
  158. /package/{assets → src/assets}/js/item/border_quest.js +0 -0
  159. /package/{assets → src/assets}/js/item/color.js +0 -0
  160. /package/{assets → src/assets}/js/item/hljs_languages.js +0 -0
  161. /package/{assets → src/assets}/js/item/icon_url.js +0 -0
  162. /package/{assets → src/assets}/js/item/second_format.js +0 -0
  163. /package/{assets → src/assets}/js/jx3_element.js +0 -0
  164. /package/{assets → src/assets}/js/macro.js +0 -0
  165. /package/{assets → src/assets}/js/nextpage.js +0 -0
  166. /package/{assets → src/assets}/js/pswp.js +0 -0
  167. /package/{assets → src/assets}/js/pswp_template.js +0 -0
  168. /package/{assets → src/assets}/js/pz_iframe.js +0 -0
  169. /package/{assets → src/assets}/js/qixue.js +0 -0
  170. /package/{assets → src/assets}/js/script.js +0 -0
  171. /package/{assets → src/assets}/js/talent2.js +0 -0
  172. /package/{assets → src/assets}/js/tex-mml-chtml.js +0 -0
  173. /package/{service → src/service}/enum/CollectionPublic.js +0 -0
  174. /package/{service → src/service}/enum/EquipPosition.js +0 -0
  175. /package/{service → src/service}/enum/EquipType.js +0 -0
@@ -0,0 +1,79 @@
1
+ module.exports = {
2
+
3
+ // 编辑器
4
+ /*------------------*/
5
+ plugins: [
6
+ "link autolink",
7
+ "hr lists advlist table codeinline codesample checklist foldtext latex anchor",
8
+ "image emoticons media videox macro qixue talent2 pz audiox",
9
+ "code fullscreen wordcount powerpaste pagebreak printpage",
10
+ ],
11
+ toolbar: [
12
+ "undo | formatselect | fontsizeselect | forecolor backcolor | bold italic underline strikethrough superscript subscript | link unlink | fullscreen code", //restoredraft
13
+
14
+ "removeformat | hr alignleft aligncenter alignright alignjustify indent outdent | bullist numlist checklist table blockquote foldtext codeinline codesample latex | emoticons image media videox audiox | macro pz qixue talent2 pagebreak printpage", // template anchor jx3icon
15
+
16
+ ],
17
+ mobile: {
18
+ toolbar_drawer: true,
19
+ toolbar: [
20
+ "undo emoticons bold forecolor backcolor removeformat pagebreak fullscreen",
21
+ "hr alignleft aligncenter alignright alignjustify indent outdent bullist numlist checklist table blockquote codesample latex media",
22
+ ],
23
+ },
24
+ color_map: [
25
+ "FF99CC",
26
+ "浅粉",
27
+ "FF3399",
28
+ "深粉",
29
+ "FF0000",
30
+ "正红",
31
+ "CC99FF",
32
+ "紫色",
33
+ "9933ff",
34
+ "深紫",
35
+
36
+ "FFFF99",
37
+ "浅黄",
38
+ "FFFF00",
39
+ "金黄",
40
+ "FFCC00",
41
+ "亮黄",
42
+ "FFCC99",
43
+ "浅桃",
44
+ "FF6600",
45
+ "橘色",
46
+
47
+ "CCFFCC",
48
+ "浅绿",
49
+ "9bf915",
50
+ "荧光绿",
51
+ "00FF00",
52
+ "辣眼绿",
53
+ "49c10f",
54
+ "深绿",
55
+ "008080",
56
+ "深青",
57
+
58
+ "CCFFFF",
59
+ "浅蓝",
60
+ "00FFFF",
61
+ "参考线",
62
+ "00CCFF",
63
+ "天蓝",
64
+ "99CCFF",
65
+ "蔚蓝",
66
+ "0000FF",
67
+ "辣眼蓝",
68
+
69
+ "4f46e5",
70
+ "靛蓝色",
71
+ "CC0000",
72
+ "深红",
73
+ ],
74
+
75
+ // 上传组件
76
+ /*------------------*/
77
+ imgTypes: ["jpg", "png", "gif", "bmp", "webp", "jpeg", "heic", "heif", "avif", "tif", "tiff","svg"],
78
+ videoTypes: ["mp4", "mov", "avi", "flv", "3gp", "wmv", "mkv", "webm", "m4v"]
79
+ }
@@ -0,0 +1,16 @@
1
+ // 主题色(链接等)
2
+ // 旧主题色
3
+ // @primary:#0366d6;
4
+ @primary:#4f46e5;
5
+
6
+ // 文字颜色(黑底、白底)
7
+ @color: #3d454d;
8
+
9
+ // 适配
10
+ @smallpc: 1680px; //21寸显示器
11
+ @notebook: 1440px; //笔记本电脑
12
+ @mininote: 1280px; //小屏笔记本
13
+ @ipad: 1133px; //平板,适配到8.3mini6
14
+ @ipad-y: 1023px; //竖屏
15
+ @phone: 720px; //手机
16
+ @ip5: 374px; //iphone5超小屏
package/index.js CHANGED
@@ -1,15 +1,28 @@
1
- import Article from './src/Article.vue'
1
+ // TODO:上传等组件
2
+ import Article from "./src/Article.vue";
3
+ import Buff from "./src/Buff.vue";
4
+ import GameText from "./src/GameText.vue";
5
+ import Item from "./src/Item.vue";
6
+ import ItemSimple from "./src/ItemSimple.vue";
7
+ import Npc from "./src/Npc.vue";
8
+ import Skill from "./src/Skill.vue";
2
9
 
3
10
  const components = {
4
11
  Article,
5
- }
12
+ Buff,
13
+ GameText,
14
+ Item,
15
+ ItemSimple,
16
+ Npc,
17
+ Skill,
18
+ };
6
19
 
7
20
  const install = function (Vue, Option) {
8
- Object.keys(components).forEach((key) => {
9
- Vue.component(components[key].name, components[key])
10
- })
11
- }
21
+ Object.keys(components).forEach((key) => {
22
+ Vue.component(components[key].name, components[key]);
23
+ });
24
+ };
12
25
 
13
26
  export default {
14
- install
15
- }
27
+ install,
28
+ };
package/package.json CHANGED
@@ -1,89 +1,90 @@
1
1
  {
2
2
  "name": "@jx3box/jx3box-editor",
3
- "version": "2.2.48",
3
+ "version": "3.0.1",
4
4
  "description": "JX3BOX Article & Editor",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
- "dev": "env DEV_SERVER=true vue-cli-service serve",
8
- "serve": "vue-cli-service serve",
9
- "less": "less-watch-compiler public/css public/css",
10
- "build": "vue-cli-service build",
7
+ "dev": "npm run dev:vue & npm run dev:tinymce",
8
+ "dev:vue": "vue-cli-service serve",
9
+ "dev:tinymce": "serve -l 5120 ./tinymce",
10
+ "serve": "npm run dev",
11
+ "build": "npx lessc -x ./tinymce/skins/content/default/content.less ./tinymce/skins/content/default/content.min.css",
11
12
  "lint": "vue-cli-service lint",
12
- "inspect": "vue inspect > output.js",
13
- "update": "npm --registry https://registry.npmjs.org install @jx3box/jx3box-common@latest @jx3box/jx3box-macro@latest @jx3box/jx3box-talent@latest @jx3box/jx3box-emotion@latest @jx3box/jx3box-data@latest @jx3box/markdown@latest",
14
- "article": "vue-cli-service build --target lib --name jx3box_article src/Article.vue --mode production",
15
- "tinymce": "vue-cli-service build --target lib --name tinymce src/Tinymce.vue && cp public/tinymce.html dist/tinymce.html"
13
+ "update": "npm --registry https://registry.npmjs.org install @jx3box/jx3box-common@latest @jx3box/jx3box-data@latest @jx3box/jx3box-macro@latest @jx3box/jx3box-talent@latest @jx3box/jx3box-emotion@latest"
16
14
  },
17
- "eslintConfig": {
18
- "root": true,
19
- "env": {
20
- "node": true
21
- },
22
- "extends": [
23
- "plugin:vue/essential"
24
- ],
25
- "rules": {},
26
- "parserOptions": {
27
- "parser": "babel-eslint"
28
- }
29
- },
30
- "browserslist": [
31
- "> 1%",
32
- "last 2 versions"
33
- ],
34
15
  "dependencies": {
35
- "@jx3box/jx3box-common": "^8.7.4",
36
- "@jx3box/jx3box-data": "^3.8.9",
37
- "@jx3box/jx3box-emotion": "^1.2.14",
38
- "@jx3box/jx3box-macro": "^1.0.1",
39
- "@jx3box/jx3box-talent": "^1.3.11",
40
- "@jx3box/markdown": "^0.1.5",
41
- "@tinymce/tinymce-vue": "^3.2.2",
16
+ "@element-plus/icons-vue": "^2.0.10",
17
+ "@imengyu/vue3-context-menu": "^1.5.4",
18
+ "@jx3box/jx3box-common": "^9.1.1",
19
+ "@jx3box/jx3box-data": "^3.9.2",
20
+ "@jx3box/jx3box-emotion": "^1.3.0",
21
+ "@jx3box/jx3box-macro": "^1.0.3",
22
+ "@jx3box/jx3box-talent": "^1.3.12",
23
+ "@tinymce/tinymce-vue": "^5.0.0",
42
24
  "axios": "^0.19.2",
43
25
  "cheerio": "^1.1.2",
44
- "core-js": "^3.6.5",
45
- "csslab": "^4.0.3",
46
- "dayjs": "^1.10.7",
47
- "element-ui": "^2.13.2",
26
+ "dayjs": "^1.11.19",
27
+ "element-plus": "^2.2.29",
28
+ "github-markdown-css": "^5.9.0",
48
29
  "hevue-img-preview": "^5.0.0",
49
- "highlight.js": "^11.3.1",
30
+ "highlight.js": "^11.7.0",
50
31
  "jquery": "^3.5.1",
51
32
  "js-base64": "^3.6.1",
52
- "katex": "^0.13.0",
53
- "lodash": "^4.17.15",
33
+ "katex": "^0.16.4",
34
+ "lodash": "^4.17.21",
54
35
  "photoswipe": "^4.1.2",
55
- "postcss": "^8.5.6",
56
- "postcss-safe-parser": "^7.0.1",
57
- "prismjs": "^1.20.0",
58
36
  "sanitize-html": "^2.17.0",
59
37
  "sortablejs": "^1.15.0",
60
- "vue": "^2.6.11",
61
- "vue-contextmenujs": "^1.4.9",
62
- "vue-gallery-slideshow": "^1.5.2",
63
- "vue-photoswipe.js": "^2.0.23",
38
+ "uuid": "^9.0.1",
39
+ "vditor": "^3.11.2",
40
+ "viewerjs": "^1.11.6",
41
+ "vue": "^3.2.13",
64
42
  "vue-plugin-load-script": "^1.3.6",
65
- "vuedraggable": "^2.24.3",
43
+ "vuedraggable": "^4.1.0",
66
44
  "xss": "^1.0.8"
67
45
  },
68
46
  "devDependencies": {
69
- "@babel/plugin-proposal-optional-chaining": "^7.16.5",
70
- "@vue/cli-plugin-babel": "~4.3.0",
71
- "@vue/cli-plugin-eslint": "~4.3.0",
72
- "@vue/cli-plugin-vuex": "^4.0.0",
73
- "@vue/cli-service": "~4.3.0",
74
- "babel-eslint": "^10.1.0",
75
- "eslint": "^6.7.2",
76
- "eslint-plugin-vue": "^6.2.2",
77
- "less": "^3.0.4",
78
- "less-loader": "^5.0.0",
47
+ "@babel/core": "^7.12.16",
48
+ "@babel/eslint-parser": "^7.12.16",
49
+ "@typescript-eslint/eslint-plugin": "^5.31.0",
50
+ "@typescript-eslint/parser": "^5.31.0",
51
+ "@vue/cli-plugin-babel": "~5.0.0",
52
+ "@vue/cli-plugin-eslint": "~5.0.0",
53
+ "@vue/cli-plugin-typescript": "~5.0.0",
54
+ "@vue/cli-service": "~5.0.0",
55
+ "@vue/eslint-config-typescript": "^11.0.0",
56
+ "babel-loader": "^8.2.5",
57
+ "csslab": "^6.0.1",
58
+ "eslint": "^7.32.0",
59
+ "eslint-plugin-vue": "^9.3.0",
60
+ "husky": "^8.0.0",
61
+ "less": "^3.11.1",
62
+ "less-loader": "^11.0.0",
79
63
  "less-watch-compiler": "^1.16.3",
80
- "style-resources-loader": "^1.3.3",
81
- "vue-cli-plugin-element": "~1.0.1",
82
- "vue-svg-inline-loader": "^1.4.6",
83
- "vue-template-compiler": "^2.6.11"
64
+ "lint-staged": "^13.0.2",
65
+ "postcss": "^8.5.6",
66
+ "postcss-safe-parser": "^7.0.1",
67
+ "prettier": "2.7.1",
68
+ "sass": "^1.97.3",
69
+ "sass-loader": "^16.0.7",
70
+ "serve": "^14.2.0",
71
+ "style-resources-loader": "^1.5.0",
72
+ "typescript": "~4.5.5",
73
+ "unplugin-vue-define-options": "^1.2.1",
74
+ "url": "^0.11.0",
75
+ "vue-svg-inline-loader": "^2.1.3"
76
+ },
77
+ "browserslist": [
78
+ "> 1%",
79
+ "last 2 versions",
80
+ "not dead",
81
+ "not ie 11"
82
+ ],
83
+ "lint-staged": {
84
+ "**/*": "prettier --write --ignore-unknown"
84
85
  },
85
86
  "repository": {
86
87
  "type": "git",
87
- "url": "git+https://github.com/JX3BOX/jx3box-editor.git"
88
+ "url": "git+https://github.com/iruxu/iruxu-editor.git"
88
89
  }
89
90
  }
package/readme.md CHANGED
@@ -1,107 +1,33 @@
1
- # Article & Editor
1
+ ## 组件清单
2
2
 
3
- # Dev
4
- ```
5
- $ npm install
6
- $ npm run serve
7
- $ open http://localhost:8080 //文章渲染
8
- $ open http://localhost:8080/tinymce //tinymce编辑器
9
- $ open http://localhost:8080/markdown //markdown编辑器
10
- $ tinymce http://localhost:5000
11
- ```
3
+ 名称|说明|是否支持全局注册
4
+ ---|---|---
5
+ Article|文章详情|✅
6
+ Tinymce|编辑器|❌
7
+ Markdown|MD编辑器|❌
8
+ Upload|上传(按钮+弹窗)|❌
9
+ UploadAlbum|上传(仅图片)|❌
10
+ BoxResource|魔盒资源|❌
11
+ Resource|剑三资源|❌
12
+ ---|---|---
13
+ Buff|剑三Buff|✅
14
+ Skill|剑三Skill|✅
15
+ Item|剑三物品|✅
16
+ ItemSimple|剑三物品(简化)|✅
17
+ Npc|剑三NPC|✅
18
+ GameText|剑三文字|✅
12
19
 
13
- ## Step.1 Install
14
20
 
15
- ```
16
- npm install @jx3box/jx3box-editor
17
- ```
21
+ ## 组件文档
22
+ + [Article](./docs/article.md)
23
+ + [Tinymce](./docs/tinymce.md)
24
+ + [Markdown](./docs/markdown.md)
25
+ + [Upload](./docs/upload.md)
18
26
 
19
- ## Step.2 Import
20
27
 
21
- - 指定模块
22
-
23
- ```javascript
24
- import Article from "@jx3box/jx3box-editor/src/Article.vue";
25
- import Tinymce from "@jx3box/jx3box-editor/src/Tinymce.vue";
26
- //import Markdown from "@jx3box/jx3box-article/src/Markdown.vue"
28
+ ## 开发
27
29
  ```
28
-
29
- ## Step.3 Usage
30
-
31
- 文章
32
-
33
- ```html
34
- <article :content="content" directorybox="#directory" />
35
- ```
36
-
37
- 编辑器
38
-
39
- ```html
40
- <script src="https://cdn.jx3box.com/static/tinymce/tinymce.min.js?v=$version"></script>
41
- <Tinymce
42
- v-model="content"
43
- :attachmentEnable="true"
44
- :resourceEnable="true"
45
- :height="300"
46
- />
30
+ $ npm install
31
+ $ npm run dev //本地调试
47
32
  ```
48
33
 
49
- 批量附件上传插入/资源快捷查询插入
50
-
51
- ```html
52
- <Upload @insert="insertWhere" @update="getList" @htmlUpdate="getHTML" />
53
- <Resource @insert="insertWhere" @update="getHTML" />
54
- ```
55
-
56
- ---
57
-
58
- # 页面远程引入文章渲染模块
59
-
60
- 1. head标签:头部引入文件
61
- 注意应带上查询参数以防本地缓存,版本号请读取https://github.jx3box.com/jx3box-editor/package.json中的version
62
- app 启动的时候读一次存到本地就可以,之后本地页面可以直接使用对应版本号。
63
- 后续 11 月会新增一个文本物品浮层功能(关联物品百科)。
64
-
65
- ```html
66
- <script src="https://cdn.jx3box.com/static/jx3box-lib/vue.js?v="></script>
67
- <script src="https://cdn.jx3box.com/static/jx3box-editor/jx3box_article.umd.min.js?v="></script>
68
- ```
69
-
70
- 2. body标签:需要插入的位置
71
-
72
- ```html
73
- <div id="app">
74
- <jx3box_article id="article" content="loading.."></jx3box_article>
75
- </div>
76
- ```
77
-
78
- 3. body末尾:初始化脚本
79
-
80
- ```html
81
- <script>
82
-
83
- var username = "$token"; //使用正确的token
84
- var password = "android"; //安卓端使用
85
- var headers = new Headers();
86
- headers.set("Authorization", "Basic " + btoa(username + ":" + password));
87
-
88
- // 1.异步加载设置数据,将420改成正确的文章ID
89
- fetch("https://cms.jx3box.com/api/cms/post/420", {
90
- method: "GET",
91
- headers: headers,
92
- credentials: "include",
93
- mode: "cors",
94
- }).then((res) => {
95
- res.json().then((data) => {
96
- let content = data && data.data && data.data.post.post_content;
97
- document.getElementById("article").setAttribute("content", content);
98
- // 2.实例化
99
- new Vue({
100
- components: {
101
- jx3box_article,
102
- },
103
- }).$mount("#app");
104
- });
105
- });
106
- </script>
107
- ```