efront 3.34.12 → 3.35.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 (81) 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 +3 -2
  12. package/coms/basic/wait.js +5 -0
  13. package/coms/basic_/readme.md +5 -4
  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 +627 -0
  18. package/coms/compile/Program.js +666 -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/tree.js +2 -4
  59. package/coms/zimoli/zimoli.js +39 -12
  60. package/docs/compare.md +5 -5
  61. package/docs/components.jsp +24 -0
  62. package/docs/index.html +18 -26
  63. package/docs/main.xht +207 -0
  64. package/docs/mark.xht +171 -0
  65. package/docs/version.jsp +3 -0
  66. package/docs/welcome.jsp +8 -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 +111 -0
  70. package/package.json +1 -1
  71. package/public/efront.js +1 -1
  72. package/readme.md +8 -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/data/iconfont-kugou.eot +0 -0
  77. package/docs/data/iconfont-kugou.otf +0 -0
  78. package/docs/data/iconfont-kugou.ttf +0 -0
  79. package/docs/data/iconfont-kugou.woff +0 -0
  80. package/docs/data/web.xml +0 -4742
  81. package/docs/main.js +0 -17
package/docs/mark.xht ADDED
@@ -0,0 +1,171 @@
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)) {
147
+ if (/\.md$/i.test(href)) {
148
+ href = md.replace(/[^\/]+$/, "") + href;
149
+ href = decodeURI(href);
150
+ console.log(href)
151
+ go('/mark/' + href);
152
+ }
153
+ else {
154
+ window.open('https://github.com/yunxu1019/efront/blob/develop/' + md.replace(/[^\/]+$/, "") + href);
155
+ }
156
+ }
157
+ else {
158
+ window.open(href);
159
+ }
160
+ };
161
+ var page = document.createElement("markdown");
162
+ on("mounted")(page, async function () {
163
+ var xhr = await cross('get', "./welcome:" + md);
164
+ page.innerHTML = markdown(xhr.response, md);
165
+ for (var target of page.querySelectorAll("a")) {
166
+ onclick(target, clickAnchor);
167
+ }
168
+ });
169
+ return page;
170
+ }
171
+ </script>
@@ -0,0 +1,3 @@
1
+ <script serverside>
2
+ return __efront.version;
3
+ </script>
@@ -0,0 +1,8 @@
1
+ <script serverside>
2
+ __efront = String(__efront);
3
+ var fullpath = path.join(__efront, req.id);
4
+ if (!/^\.\./.test(path.relative(fullpath, __efront)) || !/\.md$/.test(req.id)) {
5
+ return forbidden("禁止访问!");
6
+ }
7
+ return fs.promises.readFile(fullpath);
8
+ </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,111 @@
1
+ <style>
2
+ :scope {
3
+ line-height: 1.2;
4
+ padding: 0 20px;
5
+ display: block;
6
+ }
7
+
8
+ p4 {
9
+ line-height: 1.8;
10
+ display: block;
11
+ margin: 20px 0;
12
+ }
13
+
14
+ p4 m{
15
+ line-height: 1.2;
16
+ display: inline-block;
17
+ margin-right: 6px;
18
+ background: #222;
19
+ padding: 2px 6px;
20
+ border-radius: 3px;
21
+ }
22
+
23
+ [envs] m {
24
+ color: #4ec9b0;
25
+ }
26
+
27
+ [imported] m {
28
+ color: #c586c0;
29
+ }
30
+
31
+ b[t] {
32
+ color: #c40;
33
+ }
34
+
35
+ b[w] {
36
+ color: #29f;
37
+ }
38
+
39
+ b[l] {
40
+ color: #29c;
41
+ }
42
+
43
+ h2 b {
44
+ font-size: 14px;
45
+ display: inline-block;
46
+ border: 1.2px solid;
47
+ margin-left: 6px;
48
+ padding: 2px 4px;
49
+ }
50
+
51
+ markdown {
52
+ margin: 0 -20px;
53
+ }
54
+ </style>
55
+ <h2>
56
+ <span -bind="name"></span>
57
+ <b -if="doc?.less" l>有样式表</b>
58
+ <b -if="doc?.mark" w>有文档</b>
59
+ <b -if="doc?.test" t>有测试代码</b>
60
+ </h2>
61
+ <container -if="doc?.url" .src="doc.url">
62
+ </container>
63
+ <p4 envs>
64
+ <span -if="envs?.length">
65
+ 环境依赖项:&nbsp; <m -repeat="c in envs" -bind="c"> </m>
66
+ </span>
67
+ <span -else> 无环境依赖项 </span>
68
+ </p4>
69
+ <p4 imported>
70
+ <span -if="required?.length">
71
+ 导入项:&nbsp;<m -repeat="c in required" -bind="c"></m>
72
+ </span>
73
+ <span -else>
74
+ 无导入项
75
+ </span>
76
+ </p4>
77
+ <script>
78
+ var 分析 = lazy(async function (com, props) {
79
+ if (props.mark) props.url = '/mark/coms/' + com.replace(/\.js$/i, '.md');
80
+ scope.doc = props;
81
+ scope.name = com;
82
+ var xhr = await cross("get", "./components:" + com);
83
+ var code = compile$scanner2(xhr.response);
84
+ code.fix();
85
+ var envs = code.envs;
86
+ if (props.less) envs.cless = true;
87
+ var required = [];
88
+ if (envs.require) code.used.require.forEach(r => {
89
+ var next = r.next;
90
+ if (!next) return;
91
+ if (next.type !== code.SCOPED || next.entry !== '(') return;
92
+ var first = next.first;
93
+ if (!first || first.type !== code.QUOTED) return;
94
+ var req = code.program.createString([first]);
95
+ required.push(req);
96
+ });
97
+ scope.required = required;
98
+ scope.envs = Object.keys(envs);
99
+ render.refresh();
100
+ });
101
+ var page = document.createElement("component");
102
+ page.innerHTML = template;
103
+ var scope = {
104
+ container,
105
+ };
106
+ render(page, scope);
107
+ function main(name) {
108
+ 分析(name, this.data);
109
+ return page;
110
+ }
111
+ </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "3.34.12",
3
+ "version": "3.35.1",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {