efront 3.34.11 → 3.35.0

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 (76) hide show
  1. package/apps/moue/content//344/275/240/345/245/275/344/270/226/347/225/214.vue +21 -0
  2. package/apps/moue/content//344/275/240/345/245/275/345/274/200/345/217/221/350/200/205.html +1 -0
  3. package/apps/moue/{home/index.js → content//344/275/240/345/245/275/345/274/200/345/217/221/350/200/205.js} +4 -2
  4. package/apps/moue/content//344/275/240/345/245/275/345/274/200/345/217/221/350/200/205.less +4 -0
  5. package/apps/moue/home/index2.vue +97 -18
  6. package/apps/moue/index.html +1 -1
  7. package/coms/basic/ArrayFill.md +9 -0
  8. package/coms/basic/awaitable.md +10 -0
  9. package/coms/basic/backEach.md +7 -0
  10. package/coms/basic/combine.md +23 -0
  11. package/coms/basic/renderExpress.js +1 -1
  12. package/coms/basic/wait.js +5 -0
  13. package/coms/basic_/readme.md +27 -9
  14. package/coms/compile/#/350/257/264/346/230/216.md +1 -0
  15. package/coms/compile/Html.js +263 -0
  16. package/coms/compile/Html_test.js +5 -0
  17. package/coms/compile/Javascript.js +594 -0
  18. package/coms/compile/Program.js +664 -0
  19. package/coms/compile/autoenum.js +179 -0
  20. package/coms/compile/autoenum_test.js +17 -0
  21. package/coms/compile/autoeval.js +50 -0
  22. package/coms/compile/autoeval_test.js +28 -0
  23. package/coms/compile/autoiota.js +121 -0
  24. package/coms/compile/breakcode.js +83 -0
  25. package/coms/compile/common.js +1063 -0
  26. package/coms/compile/downLevel.js +901 -0
  27. package/coms/compile/downLevel_test.js +111 -0
  28. package/coms/compile/formatcode.js +57 -0
  29. package/coms/compile/iso8859.js +9 -0
  30. package/coms/compile/iso8859_test.js +2 -0
  31. package/coms/compile/keywords.js +6 -0
  32. package/coms/compile/namelist.js +154 -0
  33. package/coms/compile/namelist_test.js +7 -0
  34. package/coms/compile/polyfill.js +31 -0
  35. package/coms/compile/required.js +20 -0
  36. package/coms/compile/richcss.js +237 -0
  37. package/coms/compile/richcss_test.js +7 -0
  38. package/coms/compile/scanner.js +653 -0
  39. package/coms/compile/scanner2.js +202 -0
  40. package/coms/compile/scanner2_test.js +110 -0
  41. package/coms/compile/scanner_test.js +10 -0
  42. package/coms/compile/unstruct.js +712 -0
  43. package/coms/compile/unstruct_test.js +54 -0
  44. package/coms/compile/washcode.js +237 -0
  45. package/coms/compile/washcode_test.js +17 -0
  46. package/coms/docs/helps.js +71 -0
  47. package/coms/docs/markdown.js +248 -0
  48. package/coms/frame/route.js +1 -1
  49. package/coms/reptile/colored_console.js +2 -1
  50. package/coms/zimoli/cless.js +1 -0
  51. package/coms/zimoli/css.js +1 -9
  52. package/coms/zimoli/html.js +1 -1
  53. package/coms/zimoli/menu.js +1 -1
  54. package/coms/zimoli/menuItem.html +1 -1
  55. package/coms/zimoli/menuItem.js +1 -1
  56. package/coms/zimoli/render.js +14 -3
  57. package/coms/zimoli/text.js +1 -1
  58. package/coms/zimoli/transition.js +4 -4
  59. package/coms/zimoli/tree.js +2 -2
  60. package/coms/zimoli/zimoli.js +39 -12
  61. package/docs/compare.md +5 -5
  62. package/docs/components.jsp +17 -0
  63. package/docs/index.html +16 -26
  64. package/docs/main.xht +182 -0
  65. package/docs/mark.xht +166 -0
  66. package/docs/welcome.jsp +7 -0
  67. package/docs//345/221/275/344/273/244.xht +100 -0
  68. package/docs//347/211/210/346/234/254/350/257/264/346/230/216.md +9 -0
  69. package/docs//347/273/204/344/273/266.xht +87 -0
  70. package/package.json +1 -1
  71. package/public/efront.js +1 -1
  72. package/readme.md +6 -11
  73. package/apis/docs/getAllComponents.js +0 -69
  74. package/apps/moue/home/index.html +0 -1
  75. package/apps/moue/home/index.less +0 -0
  76. package/docs/main.js +0 -17
package/docs/mark.xht ADDED
@@ -0,0 +1,166 @@
1
+ <style>
2
+ :scope {
3
+ line-height: 1.8;
4
+ display: block;
5
+ padding: 0 20px;
6
+ font-family: Times, "宋体", sans-serif;
7
+ }
8
+
9
+ [type="xml"] stamp,
10
+ [type="html"] stamp {
11
+ color: #808080;
12
+ }
13
+
14
+ m {
15
+ padding: 0 6px;
16
+ margin: 0 4px;
17
+ border: 1.2px solid #ccc6;
18
+ border-radius: 3px;
19
+ background: #ccc2;
20
+ }
21
+
22
+ p {
23
+ line-height: 1.6;
24
+ margin: 6px 0;
25
+ }
26
+
27
+ a {
28
+ text-decoration: none;
29
+ color: #16c;
30
+ }
31
+
32
+ a:hover {
33
+ outline: 1.1px solid;
34
+ }
35
+
36
+ a:active {
37
+ color: #069;
38
+ }
39
+
40
+ thead td {
41
+ font-weight: 600;
42
+ }
43
+
44
+ table td {
45
+ line-height: 1.4;
46
+ padding: 6px 10px;
47
+ }
48
+
49
+ table tr {
50
+ border-bottom: 1px solid #0003;
51
+ }
52
+
53
+ table {
54
+ border-collapse: collapse;
55
+ border: 1.2px solid #0007;
56
+ }
57
+
58
+ code {
59
+ padding: 10px 20px;
60
+ border-radius: 3px;
61
+ display: inline-block;
62
+ background: #333;
63
+ color: #d4d4d4;
64
+ vertical-align: top;
65
+ }
66
+
67
+ strap,
68
+ value {
69
+ color: #569cd6;
70
+ }
71
+
72
+ regexp {
73
+ color: #d16969;
74
+ }
75
+
76
+ text {
77
+ color: #ce9178;
78
+ }
79
+
80
+ flow {
81
+ color: #c586c0;
82
+ }
83
+
84
+ digit {
85
+ color: #b5cea8;
86
+ }
87
+
88
+ label {
89
+ color: #569cd6;
90
+ }
91
+
92
+ @deep(@num, @color) {
93
+ deep@num {
94
+ color: @color;
95
+ }
96
+ }
97
+
98
+ @deep(0, #ffd700);
99
+ @deep(1, #da70d6);
100
+ @deep(2, #179fff);
101
+ @deep(3, #ffd700);
102
+ @deep(4, #da70d6);
103
+ @deep(5, #179fff);
104
+ @deep(6, #ffd700);
105
+ @deep(7, #da70d6);
106
+ @deep(8, #179fff);
107
+ @deep(9, #ffd700);
108
+ @deep(10, #da70d6);
109
+ @deep(11, #179fff);
110
+ @deep(12, #ffd700);
111
+ @deep(13, #da70d6);
112
+ @deep(14, #179fff);
113
+ @deep(15, #ffd700);
114
+ @deep(16, #da70d6);
115
+ @deep(17, #179fff);
116
+
117
+ express,
118
+ property {
119
+ color: #9cdcfe;
120
+ }
121
+
122
+ invoke,
123
+ method {
124
+ color: #dcdcaa;
125
+ }
126
+
127
+ predef {
128
+ color: #4ec9b0;
129
+ }
130
+
131
+ outside {
132
+ color: #4fc1ff;
133
+ }
134
+
135
+ comment {
136
+ color: #6a9955;
137
+ }
138
+ </style>
139
+ <script>
140
+ var history = [];
141
+ function main(md) {
142
+ var clickAnchor = function (event) {
143
+ var target = this;
144
+ var href = target.getAttribute("href");
145
+ event.preventDefault();
146
+ if (!/^\w+:/.test(href) && /\.md$/i.test(href)) {
147
+ href = md.replace(/[^\/]+$/, "") + href;
148
+ href = decodeURI(href);
149
+ console.log(href)
150
+ go('/mark/' + href);
151
+ }
152
+ else {
153
+ window.open(href);
154
+ }
155
+ };
156
+ var page = document.createElement("markdown");
157
+ on("mounted")(page, async function () {
158
+ var xhr = await cross('get', "./welcome:" + md);
159
+ page.innerHTML = markdown(xhr.response, md);
160
+ for (var target of page.querySelectorAll("a")) {
161
+ onclick(target, clickAnchor);
162
+ }
163
+ });
164
+ return page;
165
+ }
166
+ </script>
@@ -0,0 +1,7 @@
1
+ <script serverside>
2
+ var fullpath = path.join(__efront, req.id);
3
+ if (!/^\.\./.test(path.relative(fullpath, __efront)) || !/\.md$/.test(req.id)) {
4
+ return forbidden("禁止访问!");
5
+ }
6
+ return fs.promises.readFile(fullpath);
7
+ </script>
@@ -0,0 +1,100 @@
1
+ <style>
2
+ efront:after {
3
+ content: " ";
4
+ }
5
+
6
+ efront:before {
7
+ color: #69c;
8
+ content: "efront";
9
+ }
10
+
11
+ topic {
12
+ display: block;
13
+ padding-left: 3.5em;
14
+ }
15
+
16
+ w {
17
+ color: #c3c;
18
+ }
19
+
20
+ m {
21
+ display: block;
22
+ padding: .2em 0;
23
+ }
24
+
25
+ m+m {
26
+ border-top: 1px solid #fff3;
27
+ }
28
+
29
+ [head] {
30
+ background-color: #26c;
31
+ box-shadow: inset 0 3px 6px #7cf, inset 0 -3px 6px #069;
32
+ font-size: 16px;
33
+ margin: -40px 0 0 0;
34
+ color: #fff;
35
+ padding: 10px 16px;
36
+ }
37
+ [body]{
38
+ background: #222;
39
+ }
40
+ :scope {
41
+ height: 100%;
42
+ width: 100%;
43
+ margin: 0;
44
+ border: 2px solid #069;
45
+ border-top: none;
46
+ position: absolute;
47
+ display: block;
48
+ color: #ccc;
49
+ width: 600px;
50
+ height: 400px;
51
+ margin: 0 auto;
52
+ font-family: "宋体", sans-serif;
53
+ border-radius: 8px;
54
+ }
55
+ </style>
56
+ <h2 head -bind="help?.info"></h2>
57
+ <div body>
58
+ <div>可以使用的命令有:</div>
59
+ <m -repeat="c in help?.cmds">
60
+ <cmds></cmds>
61
+ <topic></topic>
62
+ </m>
63
+
64
+ </div>
65
+ <script>
66
+ var position = [.2, .2];
67
+ var page = view();
68
+ page.innerHTML = template;
69
+ once("append")(page, function () {
70
+ move.setPosition(this, position);
71
+ });
72
+ var scope = {
73
+ help: null,
74
+ dict: helps.topics,
75
+ cmds(elem, scope) {
76
+ var topics = scope.topics = [];
77
+ var cmds = scope.c.split(/\s+/).map(a => a.split("|"));
78
+ cmds = combine(...cmds).map(a => "<efront></efront>" + a.join("&ensp;")).join("<br/>");
79
+ elem.innerHTML = cmds.replace(/[A-Z]+(\_[A-Z]+)*/g, m => {
80
+ if (topics.indexOf(m) < 0) topics.push(m);
81
+ return `<w>${m}</w>`;
82
+ });
83
+ },
84
+ topic(elem, s) {
85
+ if (!s.topics.length) return;
86
+ elem.innerHTML = "其中," + s.topics.filter(a => scope.dict[a]).map(a => {
87
+ var [n, d] = scope.dict[a].split('|');
88
+ return `${a}是${n},默认值是${d}`;
89
+ }).join(';');
90
+ }
91
+ }
92
+ drag.on(page, page.firstElementChild);
93
+ resize.on(page);
94
+ render(page, scope);
95
+ function main(dict) {
96
+ var [help] = helps.helps.filter(h => dict === h.info);
97
+ scope.help = help;
98
+ return page;
99
+ }
100
+ </script>
@@ -0,0 +1,9 @@
1
+ `efront`是一个成长中的项目,很多功能不完善,也有很多待优化的点存在。到目前为止,主要经历了三个大版本的更新,以及很多小版本的修订。目前,`efront`没有为每个小版本都做详细的发布说明,您可以从代码[提交日志](https://github.com/yunxu1019/efront/commits/develop)中查看更新内容。
2
+
3
+ # 大版本的更新说明如下:
4
+
5
+ 1.x版本 `efront`以源码形式发布,主要依赖`esprima`、`esmangle`、`escodegen`、`pngjs`、`less-node`、`typescript`提供编译支持
6
+
7
+ 2.x版本 `efront`采用自我编译的形式发布,依赖项基本不变
8
+
9
+ 3.x版本 `efront`拥有自建的语法解析器,不再依赖`esprima`、`esmangle`、`escodegen`,自我编译耗时由原来的10分钟github工作流,逐步减少到2分钟左右。
@@ -0,0 +1,87 @@
1
+ <style>
2
+ :scope {
3
+ line-height: 1.2;
4
+ padding: 0 20px;
5
+ display: block;
6
+ }
7
+
8
+ p {
9
+ line-height: 1.8;
10
+ }
11
+
12
+ m {
13
+ line-height: 1.2;
14
+ display: inline-block;
15
+ margin-right: 6px;
16
+ background: #222;
17
+ padding: 2px 6px;
18
+ border-radius: 3px;
19
+ }
20
+
21
+ [envs] m {
22
+ color: #4ec9b0;
23
+ }
24
+
25
+ [imported] m {
26
+ color: #c586c0;
27
+ }
28
+
29
+ b[t] {
30
+ color: #c40;
31
+ }
32
+
33
+ b[w] {
34
+ color: #29f;
35
+ }
36
+
37
+ h2 b {
38
+ font-size: 14px;
39
+ display: inline-block;
40
+ border: 1.2px solid;
41
+ }
42
+ markdown{
43
+ margin: 0 -20px;
44
+ }
45
+ </style>
46
+ <h2>
47
+ <span -bind="name"></span>
48
+ <b -if="doc?.mark" w>有文档</b>
49
+ <b -if="doc?.test" t>有测试代码</b>
50
+ </h2>
51
+ <container -if="doc?.url" .src="doc.url">
52
+ </container>
53
+ <p envs>
54
+ <span -if="com?.args.length">
55
+ 环境依赖项:&nbsp; <m -repeat="c in com.args" -bind="c"> </m>
56
+ </span>
57
+ <span -else> 无环境依赖项 </span>
58
+ </p>
59
+ <p imported>
60
+ <span -if="com?.required.length">
61
+ 导入项:&nbsp;<m -repeat="c in com.required" -bind="c"></m>
62
+ </span>
63
+ <span -else>
64
+ 无导入项
65
+ </span>
66
+ </p>
67
+ <script>
68
+ var 分析 = async function (com, props) {
69
+ scope.name = com;
70
+ await new Promise(ok => load(com, ok));
71
+ var loaded = loadedModules[com];
72
+ scope.com = loaded;
73
+ scope.doc = props;
74
+ if (props.mark) props.url = '/mark/coms/' + com.replace(/\.js$/i, '.md');
75
+ render.refresh();
76
+ };
77
+ var page = document.createElement("component");
78
+ page.innerHTML = template;
79
+ var scope = {
80
+ container,
81
+ };
82
+ render(page, scope);
83
+ function main(name) {
84
+ 分析(name, this.data);
85
+ return page;
86
+ }
87
+ </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "3.34.11",
3
+ "version": "3.35.0",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {