first commit
This commit is contained in:
7
Template/.gitignore
vendored
Executable file
7
Template/.gitignore
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
.DS_Store
|
||||
node_modules/
|
||||
.git-credentials
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
package-lock.json*
|
||||
1
Template/.pydio
Normal file
1
Template/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e90a6ca3-776a-4719-8af9-f7a80ab8b6dd
|
||||
21
Template/CHANGES.md
Executable file
21
Template/CHANGES.md
Executable file
@@ -0,0 +1,21 @@
|
||||
## 1.1.7
|
||||
* 增加`sh`文件夹,实现在`Linux`系统上的一键提交代码至`git`
|
||||
* 增加对`public`css文件和`font`文件的同步`src`删除操作
|
||||
* 增加对`public`中第三方css文件的编译支持
|
||||
* 增加对字体文件夹`font`的编译支持
|
||||
* 更改`less`为`stylus`,使语法更简洁美观
|
||||
* 增加更多的代码详细的代码注释,一目了然
|
||||
|
||||
## 1.1.6
|
||||
* `tinify` 速度实在太慢已去除这个模块,等白天我来自己写个。
|
||||
* 修改优化 gulp 代码,去除冗余!
|
||||
|
||||
## 1.1.2
|
||||
* 这个模块`tinify`超过500次使用就要钱,所以正在开发自己的图片压缩插件(尽请期待..)
|
||||
* 去除gulp-imagemin模块,增加 `tinify` 模块的自动图片压缩
|
||||
|
||||
## 1.0.2
|
||||
* 去除gulp.js图片压缩模块,因为这个模块问题太多用不了
|
||||
* 根据朋友建议增加对css编译的修改,page/ 文件合并,public/ 公共模块不合并
|
||||
* 根据朋友建议去除对 less,js,jade代码编译后的自动压缩
|
||||
* 增加更多源码注释
|
||||
201
Template/LICENSE
Normal file
201
Template/LICENSE
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
72
Template/README.md
Executable file
72
Template/README.md
Executable file
@@ -0,0 +1,72 @@
|
||||
<p align="center"><img src="docs/_media/img/gen.svg"/></p>
|
||||
<p align="center"><a href="http://nodejs.cn/"><img src="https://img.shields.io/badge/Node.js%20-v8.9.3-green.svg" alt="Node"></a> <a href="https://www.gulpjs.com.cn/"><img src="https://img.shields.io/badge/gulp.js-3.9.1-red.svg" alt="gulpjs"></a> <a href="http://www.expressjs.com.cn/"><img src="https://img.shields.io/badge/express.js-4.16.3-blue.svg" alt="expressjs"></a></p>
|
||||
|
||||
## WHtml
|
||||
|
||||
> 一款让你用更加丝滑更符合组件化思想的方式来编写传统前端HTML页面
|
||||
- 1: **脚手架地址:[whtml-cli](https://www.npmjs.com/package/whtml-cli)**
|
||||
- 2: 文档地址:[Whtml](https://helpcode.github.io/Whtml/#/)
|
||||
- 2: 创想工作室QQ群:[399041912](http://shang.qq.com/wpa/qunwpa?idkey=6311ead3dd326b975b76cb90590535973515776cf83d0854c0dc7b4a5c9cebfb)
|
||||
|
||||
|
||||
## 介绍
|
||||
|
||||
当你在编写传统HTML页面的时候是否曾经遇到过静态页面众多导致html,css,ja代码过度冗余,将大部分时间花在不断的ctrl+c,ctrl+v上,是否想过能将传统静态页面的公共部分例如头部和底部分离出来,不需要每次的复制粘贴,是否想过css代码频繁重复为何不能像写JavaScript那样封装成函数直接调用。
|
||||
|
||||
是否想过省去每次写css3时需要手动去加浏览器前缀的烦恼等,是否不想让自己辛勤编码的成果被别人轻而易举的获取到。是否抱怨过美工给的素材太大等。。。?
|
||||
|
||||
|
||||
为何我们不能换种方式来进行更加优雅自动化的编码,我们只关心核心页面的编写,其他一切交给程序帮助我们自动化实现?
|
||||
|
||||
|
||||
## 特性
|
||||
|
||||
`WHtml`能够让你获得以下更加爽快的体验:
|
||||
|
||||
|
||||
- 1: 将静态页面组件化模块化,降低重复代码的重复编写。
|
||||
|
||||
- 2: 基于Node.js + Gulp 自动化构建项目,让前端的你无缝对接
|
||||
|
||||
- 3: 采用jade + stylus,用更加简洁高效的方式去书写html和css
|
||||
|
||||
- 4: 自动压缩合并编译html,css,JavaScript使的项目具备更加优秀的响应速度
|
||||
|
||||
- 5: 更加自由的框架配置和详细的中文代码注释,一键轻松配置源码实现定制化
|
||||
|
||||
- 6: 简洁明了的ES6+语法,代码赏心悦目,提升编码乐趣。
|
||||
|
||||
- 7: 程序实时编译同步你的每一行修改,删除,重命名,新建为你自动构建输出到 dist/,代码写完程序自动zip压缩打包,你需要做的是将zip发给你的后端即可。
|
||||
|
||||
- 9: ....等
|
||||
|
||||
更多的功能期待你的切身尝试!
|
||||
|
||||
## 版本更新
|
||||
|
||||
- 1.1.7
|
||||
* 增加`sh`文件夹,实现在`Linux`系统上的一键提交代码至`git`
|
||||
* 增加对`public`css文件和`font`文件的同步`src`删除操作
|
||||
* 增加对`public`中第三方css文件的编译支持
|
||||
* 增加对字体文件夹`font`的编译支持
|
||||
* 更改`less`为`stylus`,使语法更简洁美观
|
||||
* 增加更多的代码详细的代码注释,一目了然
|
||||
|
||||
- 1.1.6
|
||||
* `tinify` 速度实在太慢已去除这个模块,等白天我来自己写个。
|
||||
* 修改优化 gulp 代码,去除冗余!
|
||||
|
||||
- 1.1.2
|
||||
* 这个模块`tinify`超过500次使用就要钱,所以正在开发自己的图片压缩插件(尽请期待..)
|
||||
* 去除gulp-imagemin模块,增加 `tinify` 模块的自动图片压缩
|
||||
|
||||
- 1.0.2
|
||||
* 去除gulp.js图片压缩模块,因为这个模块问题太多用不了
|
||||
* 根据朋友建议增加对css编译的修改,page/ 文件合并,public/ 公共模块不合并
|
||||
* 根据朋友建议去除对 less,js,jade代码编译后的自动压缩
|
||||
* 增加更多源码注释
|
||||
|
||||
## 捐赠
|
||||
|
||||
|
||||
如果你觉得 `WHtml` 对你有帮助,或者想对我微小的工作一点资瓷,欢迎给我提建议。
|
||||
11
Template/app.js
Executable file
11
Template/app.js
Executable file
@@ -0,0 +1,11 @@
|
||||
// express 框架部分
|
||||
const express = require('express')
|
||||
const app = express()
|
||||
// 站点配置
|
||||
const config = require('./config')
|
||||
// 工具函数
|
||||
const { OpenBrowser } = require('./utils')
|
||||
// 核心,需要被 express 托管的静态资源文件路径
|
||||
app.use(express.static('./dist'))
|
||||
// 监听 1314 端口,运行网站
|
||||
app.listen(config.nodeService.port, () => OpenBrowser() );
|
||||
1
Template/config/.pydio
Normal file
1
Template/config/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
aea4f241-7eed-4c98-bf2f-69f0b3d246e7
|
||||
38
Template/config/index.js
Executable file
38
Template/config/index.js
Executable file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 网站配置信息
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
jade: {
|
||||
// jade -> html 需要监听转换的jade文件路径
|
||||
jadeTohtml: "./src/view/main/*.jade",
|
||||
// html 输出的路径
|
||||
jadeTodist: "./dist/"
|
||||
},
|
||||
styl: {
|
||||
// 将 public/ 公共的 styl 文件直接编译在 dist/ 中生成对应的
|
||||
stylTocssPublic: "./src/assets/css/public/*.styl",
|
||||
cssToDist: "",
|
||||
// 将 page/ 中 styl 编译合并
|
||||
stylTocssPage: "./src/assets/css/layout.styl",
|
||||
// styl 转换完成后,需要将多个文件合并成一个的文件名
|
||||
stylToFileName: "main.css",
|
||||
// css 输出的路径
|
||||
stylTodist: "./dist/css/"
|
||||
},
|
||||
watch: {
|
||||
// gulp 需要监听的文件路径,当我们在src修改源码时,gulp会动态编译输出到dist
|
||||
watchFile: "src/**/*"
|
||||
},
|
||||
nodeService: {
|
||||
// 访问ip
|
||||
host: "http://127.0.0.1:",
|
||||
// 访问端口
|
||||
port: 1314,
|
||||
default: "about.html",
|
||||
// 提示信息
|
||||
log: "app is run here: ",
|
||||
// 是否开始自动打开浏览器功能,取值:true,false
|
||||
isOpenBrowser: false
|
||||
}
|
||||
};
|
||||
0
Template/docs/.nojekyll
Executable file
0
Template/docs/.nojekyll
Executable file
1
Template/docs/.pydio
Normal file
1
Template/docs/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
6a94895c-3a6d-4067-b249-c52d03b04bce
|
||||
49
Template/docs/README.md
Executable file
49
Template/docs/README.md
Executable file
@@ -0,0 +1,49 @@
|
||||
# WHtml
|
||||
|
||||
> 一款让你用更加丝滑的方式来编写传统前端HTML页面
|
||||
|
||||
- 1: 文档地址:[Whtml](https://helpcode.github.io/Whtml/#/)
|
||||
- 2: 创想工作室QQ群:[399041912](http://shang.qq.com/wpa/qunwpa?idkey=6311ead3dd326b975b76cb90590535973515776cf83d0854c0dc7b4a5c9cebfb)
|
||||
|
||||
# 介绍
|
||||
|
||||
---
|
||||
|
||||
当你在编写传统HTML页面的时候是否曾经遇到过静态页面众多导致html,css,ja代码过度冗余,将大部分时间花在不断的ctrl+c,ctrl+v上,是否想过能将传统静态页面的公共部分例如头部和底部分离出来,不需要每次的复制粘贴,是否想过css代码频繁重复为何不能像写JavaScript那样封装成函数直接调用。
|
||||
|
||||
是否想过省去每次写css3时需要手动去加浏览器前缀的烦恼等,是否不想让自己辛勤编码的成果被别人轻而易举的获取到。是否抱怨过美工给的素材太大等。。。?
|
||||
|
||||
|
||||
为何我们不能换种方式来进行更加优雅自动化的编码,我们只关心核心页面的编写,其他一切交给程序帮助我们自动化实现?
|
||||
|
||||
|
||||
## 特性
|
||||
|
||||
`WHtml`能够让你获得以下更加爽快的体验:
|
||||
|
||||
---
|
||||
|
||||
- 1: 将静态页面组件化模块化,降低重复代码的重复编写。
|
||||
|
||||
- 2: 基于Node.js + Gulp 自动化构建项目,让前端的你无缝对接
|
||||
|
||||
- 3: 采用jade + stylus,用更加简洁高效的方式去书写html和css
|
||||
|
||||
- 4: 自动压缩合并编译html,css,JavaScript使的项目具备更加优秀的响应速度
|
||||
|
||||
- 5: 更加自由的框架配置和详细的中文代码注释,一键轻松配置源码实现定制化
|
||||
|
||||
- 6: 简洁明了的ES6+语法,代码赏心悦目,提升编码乐趣。
|
||||
|
||||
- 7: 程序实时编译同步你的每一行修改,删除,重命名,新建为你自动构建输出到 dist/,代码写完程序自动zip压缩打包,你需要做的是将zip发给你的后端即可。
|
||||
|
||||
- 9: ....等
|
||||
|
||||
更多的功能期待你的切身尝试!
|
||||
|
||||
|
||||
## 捐赠
|
||||
|
||||
---
|
||||
|
||||
如果你觉得 `WHtml` 对你有帮助,或者想对我微小的工作一点资瓷,欢迎给我提建议。
|
||||
12
Template/docs/_coverpage.md
Executable file
12
Template/docs/_coverpage.md
Executable file
@@ -0,0 +1,12 @@
|
||||

|
||||
|
||||
# WHtml <small>v1.1.0</small>
|
||||
|
||||
> 一款自动化模块化的HTML页面编写框架
|
||||
|
||||
* 轻量小巧,编译丝滑
|
||||
* 免费开源
|
||||
* 适用强,高度订制
|
||||
|
||||
[GitHub](https://github.com/QingWei-Li/docsify/)
|
||||
[开始](#WHtml)
|
||||
1
Template/docs/_media/.pydio
Normal file
1
Template/docs/_media/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e1a88b3c-ca75-40a9-aebd-d20d2e27f4ee
|
||||
1
Template/docs/_media/img/.pydio
Normal file
1
Template/docs/_media/img/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
61a5299c-304d-450b-88b2-bfc0b2d2b584
|
||||
BIN
Template/docs/_media/img/favicon.ico
Executable file
BIN
Template/docs/_media/img/favicon.ico
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
343
Template/docs/_media/img/gen.svg
Executable file
343
Template/docs/_media/img/gen.svg
Executable file
@@ -0,0 +1,343 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="259px" height="211px" viewBox="0 0 259 211" enable-background="new 0 0 259 211" xml:space="preserve"> <image id="image0" width="259" height="211" x="0" y="0"
|
||||
xlink:href="data:image/png;base64,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
|
||||
4A+sAAAAAElFTkSuQmCC" />
|
||||
</svg>
|
||||
BIN
Template/docs/_media/img/wxpay.png
Executable file
BIN
Template/docs/_media/img/wxpay.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 109 KiB |
14
Template/docs/_sidebar.md
Executable file
14
Template/docs/_sidebar.md
Executable file
@@ -0,0 +1,14 @@
|
||||
* 基础
|
||||
|
||||
* [开始](install.md)
|
||||
* [安装](becareful.md)
|
||||
|
||||
* 架构设计
|
||||
|
||||
* [使用](use.md)
|
||||
* [源码](code.md)
|
||||
|
||||
|
||||
* 关于
|
||||
|
||||
* [关于<sup style="color:red">(赞)<sup>](team.md)
|
||||
73
Template/docs/becareful.md
Executable file
73
Template/docs/becareful.md
Executable file
@@ -0,0 +1,73 @@
|
||||
## 环境准备
|
||||
|
||||
---
|
||||
|
||||
### windows
|
||||
|
||||
首先安装最基本的Node.js环境,先去官网下载最新版的nodejs,记住根据你的操作系统和位数选择下载。
|
||||
|
||||
> 官网地址: [http://nodejs.cn/download/](http://nodejs.cn/download/)
|
||||
|
||||
虽然在Windows上安装很简单,但是为了避免错误具体的安装过程参考这篇教程:
|
||||
|
||||
[Node.js 安装配置 http://nodejs.cn/download/](http://nodejs.cn/download/)
|
||||
|
||||
!> 注意:安装nodejs的路径杜绝使用中文,记住杜绝包含中文的路径!!!
|
||||
|
||||
### Linux
|
||||
|
||||
Linux下安装比Windows稍微麻烦一点点,这边安装方式很多。不推荐用`apt-get install xxx` 来安装,因为版本老旧。也不推荐下载文件然后改配置,个人感觉不好(你也可以选择这种方法)。
|
||||
|
||||
我这边推荐使用的方法是:**编译源码安装**
|
||||
|
||||
|
||||
具体操作看这篇教程,不再累述:
|
||||
|
||||
> [Linux安装Node.js(源码编译安装)](https://www.yiibai.com/html/node_js/2013/0826201.html)
|
||||
|
||||
## 部署代码
|
||||
|
||||
---
|
||||
|
||||
上面的步骤很简单没有什么可说的,假设你已经完美安装成功,那么我们开始愉快的部署代码吧。
|
||||
|
||||
**1: 解决依赖**
|
||||
|
||||
---
|
||||
|
||||
命令提示符界面输入命令
|
||||
|
||||
> npm install
|
||||
|
||||
如果npm下载速度十分缓慢,请更换npm为cnpm,具体操作百度,太简单懒得详细说!!
|
||||
|
||||
成功更换为cnpm后名称变为下面:
|
||||
|
||||
> cnpm install
|
||||
|
||||
OK,到这一步基本上我们的框架就可以被成功的运行起来来。
|
||||
|
||||
|
||||
## 运行代码
|
||||
|
||||
---
|
||||
|
||||
查看`package.json`文件中`scripts`字段,你可以通过命令:
|
||||
|
||||
> npm run all
|
||||
|
||||
来运行框架。
|
||||
|
||||
## 运行帮助文档
|
||||
|
||||
---
|
||||
|
||||
**如果你想查看网站的帮助文档,那么很简单,运行下面的命令即可:**
|
||||
|
||||
> npm run doc
|
||||
|
||||
## 自动提交
|
||||
|
||||
---
|
||||
|
||||
> npm run push
|
||||
175
Template/docs/code.md
Executable file
175
Template/docs/code.md
Executable file
@@ -0,0 +1,175 @@
|
||||
## 源码分析 - package.json
|
||||
|
||||
---
|
||||
|
||||
上面说过了,我们可以通过`npm run all`命令来运行框架。那么我们这边先从`package.json`开始分析,看看这行命令背后到底发生了哪些事情。
|
||||
|
||||
打开`package.json`你将看到下面这些代码:
|
||||
|
||||
```bash
|
||||
"scripts": {
|
||||
"all": "node_modules/.bin/concurrently \" node_modules/.bin/node-dev app.js \" \"node_modules/.bin/gulp \" ",
|
||||
"doc": "node_modules/.bin/docsify serve ./docs"
|
||||
}
|
||||
```
|
||||
|
||||
1:all :通过nodejs的 `concurrently` 模块来并发执行两条命令,其中`node-dev app.js`是用来启动`express`框架运行我们编译后产生的静态文件`dist/`。而`gulp`命令执行的是`gulpfile.js`中的默认任务`default`
|
||||
|
||||
2:doc :通过 `docsify` 来运行我们网站的帮助文档,这里没有什么好说的。
|
||||
|
||||
---
|
||||
|
||||
我们框架的关键逻辑在`all`命令背后,通过上面知道`all`命令运行后会并发执行`node-dev app.js`,我们打开项目根目录下的`app.js`探究一下:
|
||||
|
||||
```js
|
||||
// express 框架部分
|
||||
const express = require('express')
|
||||
const app = express()
|
||||
// 站点配置
|
||||
const config = require('./config')
|
||||
// 工具函数,OpenBrowser 自动打开浏览器
|
||||
const { OpenBrowser } = require('./utils')
|
||||
// 核心,需要被 express 托管的静态资源文件路径,提供给前端访问静态页面
|
||||
app.use(express.static('./dist'))
|
||||
|
||||
// 监听 1314 端口,运行网站
|
||||
app.listen(config.nodeService.port, () => OpenBrowser() );
|
||||
```
|
||||
|
||||
这部分源码注释很详细也很简单,没什么可说的吧,一看就懂。
|
||||
|
||||
|
||||
我们的核心应该在`gulp`命令背后,打开`gulpfile.js`文件,你将看到以下源码:
|
||||
|
||||
```js
|
||||
const gulp = require('gulp')
|
||||
// 编译jade文件为hrml
|
||||
const jade = require('gulp-jade')
|
||||
// 编译stylus文件为css
|
||||
const stylus = require('gulp-stylus')
|
||||
// 自动为css3属性加前缀
|
||||
const autoprefixer = require('gulp-autoprefixer')
|
||||
// 合并js,css文件
|
||||
const concat = require('gulp-concat')
|
||||
// 压缩css
|
||||
const cssmin = require('gulp-clean-css')
|
||||
// gulp 文件监听
|
||||
const watchPath = require('gulp-watch-path')
|
||||
// zip压缩
|
||||
const zip = require('gulp-zip')
|
||||
// 压缩js文件
|
||||
const uglify = require('gulp-uglify')
|
||||
// 处理gulp错误,防止程序报错终止
|
||||
const plumber = require('gulp-plumber')
|
||||
// 引入gulp的配置文件
|
||||
const config = require('./config/index.js')
|
||||
// 引入全局公共方法
|
||||
const { RemoveFile } = require('./utils')
|
||||
|
||||
/**
|
||||
* 编译jade为html
|
||||
*/
|
||||
gulp.task('jade', function() {
|
||||
return gulp.src(config.jade.jadeTohtml)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(jade({
|
||||
pretty: true
|
||||
}))
|
||||
.pipe(gulp.dest(config.jade.jadeTodist))
|
||||
})
|
||||
|
||||
|
||||
...
|
||||
|
||||
/**
|
||||
* 监听用户在 src/ 的所有文件操作
|
||||
*/
|
||||
gulp.task('file', function() {
|
||||
gulp.watch(config.watch.watchFile, function(event) {
|
||||
let paths = watchPath(event,'src/', 'Template/src/')
|
||||
switch (event.type){
|
||||
case 'deleted':
|
||||
console.log('删除操作...')
|
||||
RemoveFile(paths.srcFilename)
|
||||
break
|
||||
default:
|
||||
console.log('其他操作...')
|
||||
gulp.run('publicstyl','copyfont','pagestyl','jade','copyjs','copyimg','Online')
|
||||
break
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 默认先运行一次 编译过程
|
||||
*/
|
||||
gulp.run('publicstyl','copyfont','pagestyl','jade','copyjs','copyimg','Online')
|
||||
|
||||
|
||||
/**
|
||||
* 执行file任务,当文件被操作后进行相关的编译过程
|
||||
*/
|
||||
gulp.task('default',['file'])
|
||||
```
|
||||
|
||||
这边通过`gulp.watch`实现对`src/`文件夹进行监听,当用户修改被监听的`src/`文件夹里的文件后使用`gulp-watch-path`模块获得被修改文件的路径,然后判断`event.type`的操作类型,根据操作类型来进行对应的操作。
|
||||
|
||||
1:如果是在`src/`文件夹中的删除操作,那么调用`utils/index.js`里的方法`RemoveFile()`同步去删除对应被编译后的文件。
|
||||
|
||||
2:如果是其他操作例如修改,添加等,直接将进行重新编译输出到`dist/`中,保持在`src`中的修改被同步到`dist/`中。这一步就是我们最核心的页面逻辑了。其实也没什么,你会发现还是很简单的。
|
||||
|
||||
## 源码分析 - src/
|
||||
|
||||
---
|
||||
|
||||
`src`文件夹中是前端工程师真正需要关心的源码部分。
|
||||
- 1: `assets`是静态资源的存放。
|
||||
- 2: `view`是页面的存放。
|
||||
- 3: `main/`文件夹中存放主要的页面,
|
||||
- 4: `public/`存放公共的页面组件,而`layout.jade`是页面的核心入口
|
||||
|
||||
## 源码分析 - 配置/
|
||||
|
||||
---
|
||||
|
||||
你可以在网站的`config/index.js`文件来修改基本配置,做到设置端口,打开url地址,是否自动打开浏览器等,具体配置信息如下:
|
||||
|
||||
```js
|
||||
module.exports = {
|
||||
"jade":{
|
||||
// jade -> html 需要监听转换的jade文件路径
|
||||
"jadeTohtml": "./src/view/main/*.jade",
|
||||
// html 输出的路径
|
||||
"jadeTodist": "./dist/"
|
||||
},
|
||||
"styl":{
|
||||
// 将 public/ 公共的 styl 文件直接编译在 dist/ 中生成对应的
|
||||
"stylTocssPublic": "./src/assets/css/public/*.styl",
|
||||
// 将 page/ 中 styl 编译合并
|
||||
"stylTocssPage": "./src/assets/css/layout.styl",
|
||||
// styl 转换完成后,需要将多个文件合并成一个的文件名
|
||||
"stylToFileName":"main.css",
|
||||
// css 输出的路径
|
||||
"stylTodist":"./dist/css/"
|
||||
},
|
||||
"watch":{
|
||||
// gulp 需要监听的文件路径,当我们在src修改源码时,gulp会动态编译输出到dist
|
||||
"watchFile":"src/**/*"
|
||||
},
|
||||
"nodeService": {
|
||||
// 访问ip
|
||||
"host":"http://127.0.0.1:",
|
||||
// 访问端口
|
||||
"port": 1314,
|
||||
// 提示信息
|
||||
"log":"项目运行在:",
|
||||
// 是否开始自动打开浏览器功能,取值:true,false
|
||||
"isOpenBrowser": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
26
Template/docs/index.html
Executable file
26
Template/docs/index.html
Executable file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>WHtml</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="description" content="Description">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
|
||||
<link rel="shortcut icon" href="_media/img/favicon.ico" />
|
||||
<link rel="bookmark" href="_media/img/favicon.ico" type="image/x-icon" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">Loading</div>
|
||||
<script>
|
||||
window.$docsify = {
|
||||
coverpage: true,
|
||||
name: 'WHtml',
|
||||
repo: '',
|
||||
loadSidebar: true,
|
||||
subMaxLevel: 2,
|
||||
}
|
||||
</script>
|
||||
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
26
Template/docs/install.md
Executable file
26
Template/docs/install.md
Executable file
@@ -0,0 +1,26 @@
|
||||
## 说明
|
||||
|
||||
---
|
||||
|
||||
拿到框源码后并不是直接双击HTML通过浏览器来运行,这边需要你根据我的文档说明做好基本的环境配置,然后来运行我们的框架。
|
||||
|
||||
请按照我制定的规范来编写前端HTML代码,其他只需要交由框架来帮你搞定一切,或许你不适应这种代码的编写方式甚至没听过所谓的html模板引擎,css预处理器,gulp自动化工具。
|
||||
|
||||
但你需要习惯这种开发方式,大的团队普遍适用的技术套路你真的有必要去学习,不要抱怨,逼着自己埋头苦练技术提升自己的能力才是最根本。
|
||||
|
||||
## 技术架构
|
||||
|
||||
---
|
||||
|
||||
- 1: 基于Node.js开发
|
||||
- 2: gulp作为自动化构建工具
|
||||
- 3: HTML模板引擎采用jade
|
||||
- 4: stylus作为项目css的预编译器
|
||||
- 5: 使用express的来托管gulp编译后的dist/静态文件夹,启动nodejs服务器来访问静态网站查看效果。
|
||||
- 6: concurrently 实现命令的多条并发执行
|
||||
- 7: cli-color 实现终端命令行输出彩色信息
|
||||
- 8: 采用 node-dev ,当我们修改js文件后自动重启node进程
|
||||
- 9: open模块实现自动为你打开浏览器并运行我们的网站
|
||||
- 10: autoprefixer帮你自动解决css3特性的浏览器前缀问题
|
||||
- 11: minify-css,concat为你自动压缩美化合并多个css文件
|
||||
- 12: imagemin 实现图片的自动高清压缩
|
||||
23
Template/docs/team.md
Executable file
23
Template/docs/team.md
Executable file
@@ -0,0 +1,23 @@
|
||||
## 团队
|
||||
|
||||
---
|
||||
|
||||
我们的团队名叫`创想工作室`由一群热衷技术的小伙伴组成,欢迎加入创想工作室QQ群这里有同样热衷技术,也有很多正在学习过程中的小伙伴。
|
||||
|
||||
> <a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=6311ead3dd326b975b76cb90590535973515776cf83d0854c0dc7b4a5c9cebfb"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="创想工作室(技术)" title="创想工作室(技术)"></a>
|
||||
|
||||
## 源码下载
|
||||
|
||||
---
|
||||
|
||||
项目源码已经上传到github,感兴趣的同学可以去github下载代码,这里贴上地址:
|
||||
|
||||
> [https://github.com/helpcode/Whtml](https://github.com/helpcode/Whtml)
|
||||
|
||||
## 鸣谢感恩
|
||||
|
||||
---
|
||||
|
||||
十分感谢众多优秀开源的技术支持,众多开源技术的帮助才能让我们的项目编码更加方便。
|
||||
|
||||
|
||||
53
Template/docs/use.md
Executable file
53
Template/docs/use.md
Executable file
@@ -0,0 +1,53 @@
|
||||
## 目录解读
|
||||
|
||||
---
|
||||
|
||||
首先我们来看以下框架的文件层级结构,从宏观上了解以下框架的基本架构,然后我们在一一解读其具体的源码实现,目录结构图如下:
|
||||
|
||||
```html
|
||||
.
|
||||
├── app.js #通过nodejs的web框架express来启动打包后的dist/静态网站
|
||||
├── config #基本信息配置,一般修改这里即可实现订制
|
||||
│ └── index.js
|
||||
├── dist # gulp编译src产生的文件,我们写完静态页面需要交给后端的就是它
|
||||
├── docs # 框架的帮助文档
|
||||
├── gulpfile.js # 最核心的 gulp 配置文件,看不懂源码情况下不要修改
|
||||
├── Online.zip # gulp 自动zip打包 dist/ 文件夹产生的,直接将这个压缩包发给后端,省事
|
||||
├── package.json # 项目的基本核心配置,你懂的!看不懂源码情况下不要修改
|
||||
├── .gitignore #git 上传忽略文件配置
|
||||
├── CHANGES.md #版本更新日志
|
||||
├── README.md #帮助文档
|
||||
├── src # 核心源码,主要代码编写在这进行,在这的任何操作都会被同步映射更新到dist/
|
||||
│ ├── assets # 存放静态资源
|
||||
│ │ ├── css # css样式
|
||||
│ │ │ ├── layout.styl #css样式主入口,gulp将会从这里进行对css的编译打包
|
||||
│ │ │ ├── page #对应具体页面的css
|
||||
│ │ │ │ ├── header.styl #公共头部样式
|
||||
│ │ │ │ └── index.styl #首页的样式
|
||||
│ │ │ └── public #全局公共的样式
|
||||
│ │ │ ├── colors.styl #全局css颜色的封装
|
||||
│ │ │ ├── lib.styl #全局css方法的封装
|
||||
| | | ├── reset.styl #清除浏览器默认样式
|
||||
│ │ ├── img #网站用到的图片
|
||||
│ │ │ └── gen.svg #测试用的图片[测试可删除]
|
||||
│ │ └── js #存放js脚本
|
||||
│ │ ├── demo.js #index.jade 页面组件的私有js文件[测试可删除]
|
||||
│ │ └── jquery.js #默认自带的 jquery
|
||||
│ │ └── font #存放网站字体
|
||||
│ │ ├── awesome.woff2 #测试用的字体[测试可删除]
|
||||
│ └── view #存放页面的视图jade
|
||||
│ ├── layout.jade #页面试图的核心入口文件
|
||||
│ ├── main #存放主要的页面
|
||||
│ │ └── index.jade #首页
|
||||
│ └── public #公共页面组件
|
||||
│ ├── footer.jade #公共版权
|
||||
│ └── header.jade #公共头部
|
||||
└── utils #框架需要用的工具类
|
||||
│ └── index.js
|
||||
└── sh #shell脚本
|
||||
└── push.sh #自动提交代码到github
|
||||
|
||||
```
|
||||
|
||||
仔细阅读上面对各个文件的作用的解释,这里很关键。
|
||||
|
||||
202
Template/gulpfile.js
Executable file
202
Template/gulpfile.js
Executable file
@@ -0,0 +1,202 @@
|
||||
const gulp = require('gulp')
|
||||
// 编译jade文件为hrml
|
||||
const jade = require('gulp-jade')
|
||||
// 编译stylus文件为css
|
||||
const stylus = require('gulp-stylus')
|
||||
// 自动为css3属性加前缀
|
||||
const autoprefixer = require('gulp-autoprefixer')
|
||||
// 合并js,css文件
|
||||
const concat = require('gulp-concat')
|
||||
// 压缩css
|
||||
const cssmin = require('gulp-clean-css')
|
||||
// gulp 文件监听
|
||||
const watchPath = require('gulp-watch-path')
|
||||
// zip压缩
|
||||
const zip = require('gulp-zip')
|
||||
// 压缩js文件
|
||||
const uglify = require('gulp-uglify')
|
||||
// 处理gulp错误,防止程序报错终止
|
||||
const plumber = require('gulp-plumber')
|
||||
// 引入gulp的配置文件
|
||||
const config = require('./config/index.js')
|
||||
// 引入全局公共方法
|
||||
const { RemoveFile } = require('./utils')
|
||||
|
||||
const DistPublic = `${config.styl.stylTodist}public`
|
||||
|
||||
/**
|
||||
* 编译jade为html
|
||||
*/
|
||||
gulp.task('jade', function() {
|
||||
return gulp.src(config.jade.jadeTohtml)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(jade({
|
||||
pretty: true
|
||||
}))
|
||||
.pipe(gulp.dest(config.jade.jadeTodist))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 编译公共页 css
|
||||
*/
|
||||
gulp.task('publicstyl', function() {
|
||||
return gulp.src(config.styl.stylTocssPublic)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(stylus())
|
||||
.pipe(autoprefixer({
|
||||
browsers: ['last 2 versions','last 2 Explorer versions','Android >= 4.0'],
|
||||
cascade: true
|
||||
}))
|
||||
/**
|
||||
* 压缩兼容处理css文件,取消注释使用
|
||||
*/
|
||||
// .pipe(cssmin({
|
||||
// advanced: false,
|
||||
// compatibility: 'ie7',
|
||||
// keepBreaks: false,
|
||||
// keepSpecialComments: '*'
|
||||
// }))
|
||||
.pipe(gulp.dest(DistPublic))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 编译主要页面的 css,合并为main.css
|
||||
*/
|
||||
gulp.task('pagestyl', function() {
|
||||
return gulp.src(config.styl.stylTocssPage)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(stylus())
|
||||
.pipe(autoprefixer({
|
||||
browsers: ['last 2 versions','last 2 Explorer versions','Android >= 4.0'],
|
||||
cascade: true
|
||||
}))
|
||||
.pipe(concat(config.styl.stylToFileName))
|
||||
/**
|
||||
* 同上
|
||||
*/
|
||||
// .pipe(cssmin({
|
||||
// advanced: false,
|
||||
// compatibility: 'ie7',
|
||||
// keepBreaks: false,
|
||||
// keepSpecialComments: '*'
|
||||
// }))
|
||||
.pipe(gulp.dest(`${config.styl.stylTodist}page`))
|
||||
})
|
||||
|
||||
/**
|
||||
* 拷贝 public中的第三方css到dist文件夹
|
||||
*/
|
||||
gulp.task('copycss',function(){
|
||||
return gulp.src('src/assets/css/public/*.css')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(cssmin({
|
||||
advanced: false,
|
||||
compatibility: 'ie7',
|
||||
keepBreaks: false,
|
||||
keepSpecialComments: '*'
|
||||
}))
|
||||
.pipe(gulp.dest(DistPublic))
|
||||
})
|
||||
|
||||
/**
|
||||
* 拷贝img 到dist文件夹
|
||||
*/
|
||||
gulp.task('copyimg',function(){
|
||||
return gulp.src('src/assets/img/*')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(gulp.dest('dist/img'))
|
||||
})
|
||||
|
||||
/**
|
||||
* 拷贝字体文件
|
||||
*/
|
||||
gulp.task('copyfont',function(){
|
||||
return gulp.src('src/assets/font/*')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(gulp.dest('dist/font'))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 拷贝js文件
|
||||
*/
|
||||
gulp.task('copyjs',function(){
|
||||
return gulp.src('src/assets/js/*')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
/**
|
||||
* 压缩js代码,取消注释启用
|
||||
*/
|
||||
// .pipe(uglify({
|
||||
// compress: false
|
||||
// }))
|
||||
.pipe(gulp.dest('dist/js'))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 自动zip打包 dist 文件夹,用于提交给后端
|
||||
*/
|
||||
gulp.task('Online',function(){
|
||||
return gulp.src(['./dist/**'])
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(zip('Online.zip'))
|
||||
.pipe(gulp.dest('./'))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 监听用户在 src/ 的所有文件操作
|
||||
*/
|
||||
gulp.task('file', function() {
|
||||
gulp.watch(config.watch.watchFile, function(event) {
|
||||
let paths = watchPath(event,'src/', 'Template/src/')
|
||||
switch (event.type){
|
||||
case 'deleted':
|
||||
console.log('删除操作...')
|
||||
RemoveFile(paths.srcFilename)
|
||||
break
|
||||
default:
|
||||
console.log('其他操作...')
|
||||
gulp.run('publicstyl','copyfont','pagestyl','jade','copyjs','copyimg','copycss','Online')
|
||||
break
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 默认先运行一次 编译过程
|
||||
*/
|
||||
gulp.run('publicstyl','copyfont','pagestyl','jade','copyjs','copyimg','copycss','Online')
|
||||
|
||||
|
||||
/**
|
||||
* 执行file任务,当文件被操作后进行相关的编译过程
|
||||
*/
|
||||
gulp.task('default',['file'])
|
||||
33
Template/package.json
Executable file
33
Template/package.json
Executable file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "whtml",
|
||||
"version": "1.2.8",
|
||||
"description": "An HTML automatic compiler framework",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"all": "node_modules/.bin/concurrently \" node_modules/.bin/node-dev app.js \" \"node_modules/.bin/gulp \" ",
|
||||
"doc": "node_modules/.bin/docsify serve ./docs",
|
||||
"push": "./sh/push.sh"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"cli-color": "^1.2.0",
|
||||
"concurrently": "^3.5.1",
|
||||
"docsify-cli": "^4.2.1",
|
||||
"express": "^4.16.3",
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-autoprefixer": "^5.0.0",
|
||||
"gulp-clean-css": "^3.9.3",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-jade": "^1.1.0",
|
||||
"gulp-minify-css": "^1.2.4",
|
||||
"gulp-plumber": "^1.2.0",
|
||||
"gulp-stylus": "^2.7.0",
|
||||
"gulp-uglify": "^3.0.0",
|
||||
"gulp-watch-path": "^0.1.0",
|
||||
"gulp-zip": "^4.1.0",
|
||||
"node-dev": "^3.1.3",
|
||||
"open": "0.0.5"
|
||||
}
|
||||
}
|
||||
1
Template/sh/.pydio
Normal file
1
Template/sh/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
bbb32e53-9bbc-4537-b22b-2be773a4553a
|
||||
5
Template/sh/push.sh
Executable file
5
Template/sh/push.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 自动提交代码到 github,linux 系统才能使用
|
||||
message="shell的自动提交,更新记录查看CHANGES.md"
|
||||
git add -A && git commit -m $message && git push
|
||||
1
Template/src/.pydio
Normal file
1
Template/src/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
e078f410-1610-4b9e-bbf4-963b92aaf5a3
|
||||
1
Template/src/assets/.pydio
Normal file
1
Template/src/assets/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
26506e85-84b3-4039-b85c-f999565a06e5
|
||||
5
Template/src/assets/README.md
Executable file
5
Template/src/assets/README.md
Executable file
@@ -0,0 +1,5 @@
|
||||
# 帮助信息,该文件可删除
|
||||
|
||||
---
|
||||
|
||||
## 存放网站主体静态资源,例如css,js,img,font
|
||||
1
Template/src/assets/css/.pydio
Normal file
1
Template/src/assets/css/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
2ae432b7-8ee8-4fbd-981f-5687c5687aec
|
||||
2
Template/src/assets/css/layout.styl
Executable file
2
Template/src/assets/css/layout.styl
Executable file
@@ -0,0 +1,2 @@
|
||||
// page 各个主页面用到的less必须在这里先被引用
|
||||
@import "page/index";
|
||||
1
Template/src/assets/css/page/.pydio
Normal file
1
Template/src/assets/css/page/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
57a1e13f-f682-4b48-a7a3-8c9b72ef5e35
|
||||
7
Template/src/assets/css/page/index.styl
Executable file
7
Template/src/assets/css/page/index.styl
Executable file
@@ -0,0 +1,7 @@
|
||||
.index
|
||||
h1
|
||||
color red
|
||||
p
|
||||
font-size 20px
|
||||
|
||||
|
||||
1
Template/src/assets/css/public/.pydio
Normal file
1
Template/src/assets/css/public/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
c3464317-13fd-44ca-aa3a-1d13e0faca43
|
||||
1
Template/src/assets/css/public/config.styl
Executable file
1
Template/src/assets/css/public/config.styl
Executable file
@@ -0,0 +1 @@
|
||||
// 存放全局的颜色,布局,尺寸等配置,可删除
|
||||
1
Template/src/assets/css/public/lib.styl
Executable file
1
Template/src/assets/css/public/lib.styl
Executable file
@@ -0,0 +1 @@
|
||||
// 存放全局的css方法,可删除
|
||||
1
Template/src/assets/css/public/reset.styl
Executable file
1
Template/src/assets/css/public/reset.styl
Executable file
@@ -0,0 +1 @@
|
||||
// 清空默认样式,可删除
|
||||
1
Template/src/assets/font/.pydio
Normal file
1
Template/src/assets/font/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
0fa95758-9641-46d3-8ca0-34924b9afe7e
|
||||
BIN
Template/src/assets/font/awesome.woff2
Executable file
BIN
Template/src/assets/font/awesome.woff2
Executable file
Binary file not shown.
1
Template/src/assets/img/.pydio
Normal file
1
Template/src/assets/img/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
f84b5704-b115-4780-a90d-ffd0826ba29d
|
||||
343
Template/src/assets/img/gen.svg
Executable file
343
Template/src/assets/img/gen.svg
Executable file
@@ -0,0 +1,343 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="259px" height="211px" viewBox="0 0 259 211" enable-background="new 0 0 259 211" xml:space="preserve"> <image id="image0" width="259" height="211" x="0" y="0"
|
||||
xlink:href="data:image/png;base64,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
|
||||
4A+sAAAAAElFTkSuQmCC" />
|
||||
</svg>
|
||||
1
Template/src/assets/js/.pydio
Normal file
1
Template/src/assets/js/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
604b8161-e8a1-404b-bcda-22fd81c1c345
|
||||
3
Template/src/assets/js/demo.js
Executable file
3
Template/src/assets/js/demo.js
Executable file
@@ -0,0 +1,3 @@
|
||||
function demo(){
|
||||
alert('index.jade 组件独有的js')
|
||||
}
|
||||
8829
Template/src/assets/js/jquery.js
vendored
Executable file
8829
Template/src/assets/js/jquery.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1
Template/src/view/.pydio
Normal file
1
Template/src/view/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
1263e9c9-5d9f-4cbe-99b9-2cb359cb43dd
|
||||
26
Template/src/view/layout.jade
Executable file
26
Template/src/view/layout.jade
Executable file
@@ -0,0 +1,26 @@
|
||||
//- 网站的核心的公共父级组件
|
||||
//- 一些全局公共css和js可以在这里被加载
|
||||
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
meta(charset="utf-8")
|
||||
meta(http-equiv="X-UA-Compatible" content="IE=edge")
|
||||
meta(name="viewport" content="width=device-width, initial-scale=1")
|
||||
meta(name="renderer" content="webkit")
|
||||
meta(http-equiv="Cache-Control" content="no-siteapp")
|
||||
link(rel='stylesheet', href='css/page/main.css')
|
||||
script(src="js/jquery.js")
|
||||
|
||||
block title
|
||||
|
||||
body
|
||||
|
||||
//- 公共网站头部
|
||||
include ./public/header
|
||||
|
||||
//- 网站主体内容,从 main/*.jade 被载入
|
||||
block content
|
||||
|
||||
//- 公共网站版权
|
||||
include ./public/footer
|
||||
1
Template/src/view/main/.pydio
Normal file
1
Template/src/view/main/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
7a449871-eada-4915-9eb2-b525abb5539a
|
||||
5
Template/src/view/main/README.md
Executable file
5
Template/src/view/main/README.md
Executable file
@@ -0,0 +1,5 @@
|
||||
# 帮助信息,该文件可删除
|
||||
|
||||
---
|
||||
|
||||
## 存放网站主体页面组件,例如首页,关于我,联系我们等主要页面内容
|
||||
17
Template/src/view/main/index.jade
Executable file
17
Template/src/view/main/index.jade
Executable file
@@ -0,0 +1,17 @@
|
||||
extends ./../layout
|
||||
|
||||
//- 网站的头部信息这边拆分出来,便于每个页面的SEO配置和配置页面独有的css,js
|
||||
block title
|
||||
|
||||
|
||||
title 首页
|
||||
//- 组件独有的js文件,测试案例
|
||||
script(src="js/demo.js")
|
||||
|
||||
|
||||
//- 网站的主体内容区域
|
||||
block content
|
||||
|
||||
.index
|
||||
h1 默认首页de
|
||||
p(onclick="demo()") 通过gulp编译后的html页面,点我触发事件
|
||||
1
Template/src/view/public/.pydio
Normal file
1
Template/src/view/public/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
28f8706c-c280-4197-92ec-243f6f7a0f92
|
||||
5
Template/src/view/public/README.md
Executable file
5
Template/src/view/public/README.md
Executable file
@@ -0,0 +1,5 @@
|
||||
# 帮助信息,该文件可删除
|
||||
|
||||
---
|
||||
|
||||
## 存放网站公共组件,例如swiper轮播,公共导航等
|
||||
3
Template/src/view/public/footer.jade
Executable file
3
Template/src/view/public/footer.jade
Executable file
@@ -0,0 +1,3 @@
|
||||
.footer
|
||||
h3 公共版权
|
||||
|
||||
2
Template/src/view/public/header.jade
Executable file
2
Template/src/view/public/header.jade
Executable file
@@ -0,0 +1,2 @@
|
||||
.header
|
||||
h3 公共头部
|
||||
1
Template/utils/.pydio
Normal file
1
Template/utils/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
89da04c5-c300-4477-ab98-827d25b9deb7
|
||||
119
Template/utils/index.js
Executable file
119
Template/utils/index.js
Executable file
@@ -0,0 +1,119 @@
|
||||
/**
|
||||
* 全局公共函数
|
||||
*/
|
||||
|
||||
// 自动打开浏览器
|
||||
const open = require("open");
|
||||
// 配置信息
|
||||
const config = require("./../config");
|
||||
// 终端输出颜色
|
||||
const clc = require("cli-color");
|
||||
// 文件操作
|
||||
const fs = require("fs");
|
||||
// 路径操作
|
||||
const path = require("path");
|
||||
// 获取文件基准地址
|
||||
const Base = path.resolve(__dirname, "../dist");
|
||||
|
||||
/**
|
||||
* 返回完整的网址
|
||||
*/
|
||||
const URL = () =>
|
||||
`${config.nodeService.host}${config.nodeService.port}/${
|
||||
config.nodeService.default
|
||||
}`;
|
||||
|
||||
/**
|
||||
* open 模块: 自动打开浏览器
|
||||
* 模块地址:https://github.com/pwnall/node-open
|
||||
*/
|
||||
const OpenBrowser = () => {
|
||||
Notice(`${config.nodeService.log}${URL()}`);
|
||||
config.nodeService.isOpenBrowser ? open(URL()) : "";
|
||||
};
|
||||
|
||||
/**
|
||||
* cli-color 模块:设置终端运行信息的颜色
|
||||
* @param {*string} log 需要log的信息
|
||||
* 模块地址: https://github.com/medikoo/cli-color
|
||||
*/
|
||||
const Notice = log => {
|
||||
// 终端输入运行的颜色
|
||||
let notice = clc.greenBright.bold;
|
||||
console.log(notice(log));
|
||||
};
|
||||
|
||||
/**
|
||||
* 当前端从src源码中删除某文件(jade,js,img,css)的时候,那么删除对应dist/中编译后文件
|
||||
* 这里我的思路有点乱,代码等待改进
|
||||
* @param {*string} filename
|
||||
*/
|
||||
const RemoveFile = filename => {
|
||||
if (SearchKey(filename, "jade")) {
|
||||
deleteFile(ReturnFullUrl(ReturnFileName(filename, "jade"), "html"));
|
||||
} else if (SearchKey(filename, "js")) {
|
||||
deleteFile(ReturnFullUrl(ReturnFileName(filename, "js"), "js"));
|
||||
} else if (SearchKey(filename, "styl") || SearchKey(filename, "mp3")) {
|
||||
Notice("忽略该文件...");
|
||||
} else if (SearchKey(filename, "css")) {
|
||||
deleteFile(ReturnFullUrl(ReturnFileName(filename, ".css"), "css"));
|
||||
} else if (SearchKey(filename, "woff2")) {
|
||||
deleteFile(ReturnFullUrl(ReturnFileName(filename, ".woff2"), "woff2"));
|
||||
} else if (SearchKey(filename, "ttf")) {
|
||||
deleteFile(ReturnFullUrl(ReturnFileName(filename, ".ttf"), "ttf"));
|
||||
} else {
|
||||
deleteFile(`${Base}/img/${filename}`);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 返回对应文件类型的 文件地址
|
||||
* @param {*string} name 需要删除的文件名称
|
||||
* @param {*string} type 需要删除的文件类型
|
||||
*/
|
||||
const ReturnFullUrl = (name, type) => {
|
||||
switch (type) {
|
||||
case "html":
|
||||
return `${Base}/${name}${type}`;
|
||||
break;
|
||||
case "js":
|
||||
return `${Base}/js/${name}${type}`;
|
||||
break;
|
||||
case "css":
|
||||
return `${Base}/css/public/${name}.${type}`;
|
||||
break;
|
||||
case "woff2":
|
||||
return `${Base}/font/${name}.${type}`;
|
||||
break;
|
||||
case "ttf":
|
||||
return `${Base}/font/${name}.${type}`;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 返回的文件名称,例如 index.jade,返回 index
|
||||
* @param {*string} file 文件完整名称
|
||||
* @param {*string} plug 需要检测的文件后缀
|
||||
*/
|
||||
const ReturnFileName = (file, plug) => file.replace(plug, "");
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
* @param {*string} path 文件路径
|
||||
*/
|
||||
const deleteFile = path =>
|
||||
fs.unlink(
|
||||
path,
|
||||
err => (err ? console.error(err) : Notice(`${path} 对应文件已删除...`))
|
||||
);
|
||||
|
||||
/**
|
||||
* 检索字符串中是否有匹配的字符
|
||||
* @param {*string} key 需要检索的字符串
|
||||
*/
|
||||
const SearchKey = (par, key) => (par.indexOf(key) != -1 ? true : false);
|
||||
|
||||
module.exports = { OpenBrowser, RemoveFile };
|
||||
Reference in New Issue
Block a user