efront 3.35.0 → 3.35.2

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.
package/docs/main.xht CHANGED
@@ -3,6 +3,7 @@
3
3
  --leftwidth: 260px;
4
4
  display: block;
5
5
  width: auto;
6
+ top: 0;
6
7
  left: 0;
7
8
  right: 0;
8
9
  margin-right: -16px;
@@ -10,6 +11,7 @@
10
11
  position: absolute;
11
12
  padding-left: var(--leftwidth);
12
13
  overflow: hidden;
14
+ background: #fff;
13
15
  }
14
16
 
15
17
  :root+scrollbar {
@@ -21,16 +23,25 @@
21
23
  vertical-align: top;
22
24
  }
23
25
 
24
- div2 test:before {
26
+ :root>menu f {
27
+ margin-left: 6px;
28
+ }
29
+
30
+ :root>menu f[test]:before {
25
31
  color: #fc0;
26
32
  content: "测";
27
33
  }
28
-
29
- div2 dang:before {
34
+
35
+ :root>menu f[dang]:before {
30
36
  color: #2cf;
31
37
  content: "档";
32
38
  }
33
39
 
40
+ :root>menu f[less]:before {
41
+ color: #2c9;
42
+ content: "样";
43
+ }
44
+
34
45
  menu {
35
46
  width: var(--leftwidth);
36
47
  margin-left: -var(--leftwidth);
@@ -51,6 +62,13 @@
51
62
  position: relative;
52
63
  background: linear-gradient(#f2f4ff, 70%, #e9fff2);
53
64
  }
65
+
66
+ :root>menu v {
67
+ display: inline-block;
68
+ font-size: 12px;
69
+ color: #79a;
70
+ margin-left: 12px;
71
+ }
54
72
  </style>
55
73
  <menu #mulu inline -src="m in menus" @active="openMenu(m)">
56
74
  <div2></div2>
@@ -92,10 +110,15 @@
92
110
  }
93
111
  ]);
94
112
  })
113
+ var initVersionInfo = async function () {
114
+ var xhr = await cross("get", "version");
115
+ var version = xhr.response.split(",");
116
+ menus[0].name += ` <v>${version[0]}</v>`;
117
+ }
95
118
  var initCommandsDocs = async function () {
96
119
  var helps = await init("docs$helps");
97
120
  var m = {
98
- name: "命令详解",
121
+ name: "命令参考",
99
122
  children: [
100
123
  { name: "防御系", a: "f" },
101
124
  { name: "强攻系", a: "q" },
@@ -129,11 +152,13 @@
129
152
  }
130
153
  for (var cc of children) {
131
154
  cc.data = {
132
- mark: !!map[cc.name.replace(/\.js$/i, ".md")],
133
- test: !!map[cc.name.replace(/\.js$/i, "_test.js")]
155
+ mark: !!map[cc.name.replace(/\.[tj]sx?$/i, ".md")],
156
+ test: !!map[cc.name.replace(/\.[tj]sx?$/i, "_test.js")],
157
+ less: !!map[cc.name.replace(/\.[tj]sx?$/i, ".less")]
134
158
  }
135
- if(cc.data.mark)cc.name+="<dang></dang>"
136
- if(cc.data.test)cc.name+="<test></test>"
159
+ if (cc.data.less) cc.name += "<f less></f>"
160
+ if (cc.data.mark) cc.name += "<f dang></f>"
161
+ if (cc.data.test) cc.name += "<f test></f>"
137
162
  }
138
163
  c.children = children;
139
164
  c.closed = true;
@@ -144,6 +169,7 @@
144
169
  var initMenus = async function () {
145
170
  menus[0].children.forEach(c => { c.path = "/mark/" + c.md });
146
171
  zimoli.switch('', scope.content, menus[0].children[0].path);
172
+ await initVersionInfo();
147
173
  await initCommandsDocs();
148
174
  await initComponentDocs();
149
175
  var route = await init("frame$route");
package/docs/mark.xht CHANGED
@@ -143,11 +143,16 @@
143
143
  var target = this;
144
144
  var href = target.getAttribute("href");
145
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);
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
+ }
151
156
  }
152
157
  else {
153
158
  window.open(href);
@@ -155,7 +160,7 @@
155
160
  };
156
161
  var page = document.createElement("markdown");
157
162
  on("mounted")(page, async function () {
158
- var xhr = await cross('get', "./welcome:" + md);
163
+ var xhr = await cross('get', "./welcome:" + encodeURI(md));
159
164
  page.innerHTML = markdown(xhr.response, md);
160
165
  for (var target of page.querySelectorAll("a")) {
161
166
  onclick(target, clickAnchor);
@@ -0,0 +1,3 @@
1
+ <script serverside>
2
+ return __efront.version;
3
+ </script>
package/docs/welcome.jsp CHANGED
@@ -1,4 +1,5 @@
1
1
  <script serverside>
2
+ __efront = String(__efront);
2
3
  var fullpath = path.join(__efront, req.id);
3
4
  if (!/^\.\./.test(path.relative(fullpath, __efront)) || !/\.md$/.test(req.id)) {
4
5
  return forbidden("禁止访问!");
@@ -5,11 +5,13 @@
5
5
  display: block;
6
6
  }
7
7
 
8
- p {
8
+ p4 {
9
9
  line-height: 1.8;
10
+ display: block;
11
+ margin: 20px 0;
10
12
  }
11
13
 
12
- m {
14
+ p4 m{
13
15
  line-height: 1.2;
14
16
  display: inline-block;
15
17
  margin-right: 6px;
@@ -34,46 +36,68 @@
34
36
  color: #29f;
35
37
  }
36
38
 
39
+ b[l] {
40
+ color: #29c;
41
+ }
42
+
37
43
  h2 b {
38
44
  font-size: 14px;
39
45
  display: inline-block;
40
46
  border: 1.2px solid;
47
+ margin-left: 6px;
48
+ padding: 2px 4px;
41
49
  }
42
- markdown{
50
+
51
+ markdown {
43
52
  margin: 0 -20px;
44
53
  }
45
54
  </style>
46
55
  <h2>
47
56
  <span -bind="name"></span>
57
+ <b -if="doc?.less" l>有样式表</b>
48
58
  <b -if="doc?.mark" w>有文档</b>
49
59
  <b -if="doc?.test" t>有测试代码</b>
50
60
  </h2>
51
61
  <container -if="doc?.url" .src="doc.url">
52
62
  </container>
53
- <p envs>
54
- <span -if="com?.args.length">
55
- 环境依赖项:&nbsp; <m -repeat="c in com.args" -bind="c"> </m>
63
+ <p4 envs>
64
+ <span -if="envs?.length">
65
+ 环境依赖项:&nbsp; <m -repeat="c in envs" -bind="c"> </m>
56
66
  </span>
57
67
  <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>
68
+ </p4>
69
+ <p4 imported>
70
+ <span -if="required?.length">
71
+ 导入项:&nbsp;<m -repeat="c in required" -bind="c"></m>
62
72
  </span>
63
73
  <span -else>
64
74
  无导入项
65
75
  </span>
66
- </p>
76
+ </p4>
67
77
  <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;
78
+ var 分析 = lazy(async function (com, props) {
74
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);
75
99
  render.refresh();
76
- };
100
+ });
77
101
  var page = document.createElement("component");
78
102
  page.innerHTML = template;
79
103
  var scope = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "3.35.0",
3
+ "version": "3.35.2",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {