html插件多个页面同步,html_reuse: 最近做的一些静态页面,经常需要反复修改,例如页面顶部和底部这些区域,相同的代码,却需要一个个页面打开去修改a标签的跳转,页面层级不一样还要注意是../...

html_reuse

项目介绍

最近做的一些静态页面,经常需要反复修改,例如页面顶部和底部这些区域,相同的代码,却需要一个个页面打开去修改a标签的跳转,页面层级不一样还要注意是../还是./。一旦改错了,就等于做了无用功,回头还要一个个去检查。这样耗费的时间和精力实在是太多了。因此就有了本文的思考,很幸运目前已有gulp-file-include这样的插件去实现html的复用,减少我们的修改维护成本。以下就是介绍本实践项目的目录结构与gulp配置使用

软件架构

软件架构说明

RUN DEMO

# 1.进入项目根目录

# 2.安装依赖

npm install

# 运行服务编译文件

gulp

编译完成浏览器自动打开入口链接页面

gulpfile.js

var gulp = require('gulp');

var browserSync = require('browser-sync');

var reload = browserSync.reload;

var fileinclude = require('gulp-file-include');

var imagemin = require('gulp-imagemin');

var less = require('gulp-less');

var autoprefixer = require('gulp-autoprefixer');

var browserArr = ['last 2 versions', 'ie 9'];

var app = { // 定义目录

srcPath: './src/',

// buildPath:'./build/',

distPath: './dist/'

}

// 处理公用html

gulp.task('fileinclude', function () {

return gulp.src([app.srcPath + 'html/**/*.html'])

.pipe(fileinclude({

prefix: '@@', // 自定义标识前缀

basepath: app.srcPath + 'html/components' // 复用组件目录

}))

.pipe(gulp.dest(app.distPath + 'html'));

});

// 处理完lib文件后返回流

gulp.task('lib', function () {

return gulp.src(app.srcPath + 'lib/**/*')

.pipe(gulp.dest(app.distPath + 'lib'));

});

// 处理完JS文件后返回流

gulp.task('js', function () {

return gulp.src(app.srcPath + 'js/**/*.js')

.pipe(gulp.dest(app.distPath + 'js'));

});

// 处理less文件后返回流

gulp.task('less', function () {

return gulp.src(app.srcPath + 'less/**/*.less')

.pipe(less())

.pipe(autoprefixer({

browsers: browserArr,

cascade: true, //是否美化属性值 默认:true 像这样:

//-webkit-transform: rotate(45deg);

// transform: rotate(45deg);

}))

.pipe(gulp.dest(app.distPath + 'css'))

.pipe(reload({stream: true}));

});

// 处理完CSS文件后返回流

gulp.task('css', function () {

return gulp.src(app.srcPath + 'css/**/*.css')

.pipe(autoprefixer({

browsers: browserArr,

cascade: true, //是否美化属性值 默认:true

}))

.pipe(gulp.dest(app.distPath + 'css'))

.pipe(reload({stream: true}));

});

/*处理图片*/

gulp.task('image', function () {

return gulp.src(app.srcPath + 'images/**/*')

.pipe(imagemin())

.pipe(gulp.dest(app.distPath + 'images'))

});

// 创建一个任务确保JS任务完成之前能够继续响应

// 浏览器重载

gulp.task('lib-watch', ['lib'], reload);

gulp.task('js-watch', ['js'], reload);

gulp.task('img-watch', ['image'], reload);

gulp.task('html-watch', ['fileinclude'], reload);

//静态服务器+监听

gulp.task('server', ['js', 'css', 'image', 'lib', 'less'], function () {

gulp.start('fileinclude');

browserSync.init({

port: 80,

server: {

baseDir: './',

}

});

// 无刷新方式更新

gulp.watch(app.srcPath + 'less/*.less', ['less']);

gulp.watch(app.srcPath + 'css/*.css', ['css']);

// 添加 browserSync.reload 到任务队列里

// 所有的浏览器重载后任务完成。

// 刷新页面方式

gulp.watch(app.srcPath + 'lib/**/*', ['lib-watch']);

gulp.watch(app.srcPath + 'js/**/*.js', ['js-watch']);

gulp.watch(app.srcPath + 'images/**/*', ['img-watch']);

gulp.watch(app.srcPath + 'html/**/*.html', ['html-watch']);

// gulp.watch(app.distPath + 'html/**/*.html').on('change', reload)

})

/*默认任务*/

gulp.task('default', ['server']);

编写html页面示例

1.导入复用组件----变量的使用

@@include options - type: JSON

index.html

@@include('./view.html')

@@include('./var.html', {

"name": "haoxin",

"age": 12345,

"socials": {

"fb": "facebook.com/include",

"tw": "twitter.com/include"

}

})

view.htm

view

var.html

@@name

@@age

@@socials.fb

@@socials.tw

编译出来的index.html

view

haoxin

12345

facebook.com/include

twitter.com/include

也就是说我们可以复用类似但又不完全一样的html代码,通过变量去控制内容

2.导入复用组件----if的使用

index.html

@@include('./navbar.html',{

"index": "active"

})

navbar.html

编译出来的index.html

另一种:控制不同的html导入

index.html:

@@include('nav.html', { "nav": 1 })

nav.html

@@if (nav === 1) {

@@include('navbar1.html')

}

@@if (nav === 2) {

@@include('navbar2.html')

}

@@if (nav === 3) {

@@include('navbar3.html')

}

也就是说我们可以通过if去控制不同的选中状态,或者控制不同的html导入

3.导入复用组件----for的使用

index.html

@@include('list.html',{

"arr": "[1,2,3]"

})

list.html

@@for (var i = 0; i < arr.length; i++) {

`+arr[i]+`

}

编译后的index.html

  • 1
  • 2
  • 3

也就是说我们可以通过for去生成多条html代码

4.导入复用组件----loop的使用

index.html

@@loop('loop-article.html', [

{ "title": "My post title", "text": "

lorem ipsum...

" },

{ "title": "Another post", "text": "

lorem ipsum...

" },

{ "title": "One more post", "text": "

lorem ipsum...

" }

])

loop-article.html

@@title

@@text

也就是说我们可以通过loop循环去生成多条代码,相比for方法少写了for循环语句

5.导入复用组件----webRoot的使用

home.html

Support Contact Info

Home

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<p>在帝国软件官网创建15周年之际,帝国CMS7.5版发布了。帝国CMS经历过18个版本更新,7.5是第19个版本。我们一直不断在实践中突破创新,帝国CMS7.2版在移动互联实现与全面安全防御实现突破创新,让网站发展无后顾之忧。而帝国CMS7.5版则是全面完善,功能更加强大实用,精品中的精品,只为让您用上更放心、更省心的产品。在原来7.2版本的基础上更加完善,打造更完美的产品。安全稳定的程序为网站发展与壮大提供更加可靠的保障!</p><p> </p><p>帝国CMS 7.5版新增了:</p><p>多访问端升级:支持在主端后台刷新生成各访问端静态页面,多访问端用静态模式下使用更方便。</p><p>多访问端升级:支持任意切换各访问端后台,无需重新登录,多访问端管理超方便。</p><p>多访问端新增静态页面同步功能,支持多端定时同步、双端实时同步。</p><p>多访问端支持设置子端是否开启后台权限,更高安全性,维护更方便。</p><p>后台支持直接修改模板ID,方便使用多访问端功能模板ID不一致处理。</p><p>动态页面新增支持缓存,让采用动态页面模式的网站访问速度更快,效率更高。</p><p>新增对PHP7.*系列运行环境的支持,兼容性更好。</p><p>针对信息访问、下载等权限进行升级,新增“访问组”这一新概念,控制会员访问权限更细、更灵活、更实用。</p><p>新增会员内部组,方便对会员进行内部分类,客户管理更方便。</p><p>新增会员管理组和会员管理员设置,为以后前台管理员和客服系统管理员设置打下基础。</p><p>后台新增浏览器USER-AGENT验证功能,更高安全性。</p><p>新增支持HTTPS传输协议,更安全。</p><p>COOKIE安全设置升级,更上一台阶。</p><p>后台认证码新增预加密验证功能,超安全。</p><p>编辑器升级为CKEditor编辑器,兼容性更好、功能更实用。</p><p>支持自定义后台登录文件,安全性更高。</p><p>“来源HASH验证”功能升级,防护更强。</p><p>来源地址新增严格模式验证,更严谨,防护外部提交更严格。</p><p>TAGS功能升级,更完善。</p><p>各系统模型新增记录信息审核人功能,对查看责任人和绩效考核更方便。</p><p>视频播放器更新,视频站更方便。</p><p>自定义工作流功能升级,更完善。</p><p>会员充值有效期升级,更完善。让网站内容商业化更顺畅。</p><p>栏目新增单页内容设置,直接用栏目公司简介、联系方式等单页更方便。</p><p>对WAP模块进行升级,展示类手机站更方便。</p><p>采用全新的日期时间和颜色选择模块,更方便。</p><p>用户发布信息统计升级,统计项更详细。让管理员更方便的查看编辑发布绩效。</p><p>采集功能升级,更灵活。</p><p>备份系统升级,兼容性更高。</p><p>验证码功能升级,更有效防止灌水机。</p><p>系统模型新增发布后和修改后处理函数扩展。</p><p>DIGG顶功能升级,可依网站实际情况设置,更实用。</p><p>栏目列表式页面新增支持附加SQL条件设置,可依特殊情况设定栏目列表显示特定的信息,更个性化。</p><p>信息头条和推荐级别由原来支持的9级头条和9级推荐,升级为最大支持255级头条和255级推荐,组织信息更灵活。</p><p>新增更多一键关闭模块功能,将网站不需要的模块关闭更方便。</p><p>支持设置某些会员组才能拥有会员空间。</p><p>后台信息发布限制可设置更严格,对网站内部管理员要求安全性更高的可以增加限制。</p><p>针对后台内部管理员操作的安全性完善更新。</p><p>专题子类支持自定义文件名,让页面更个性化。</p><p>支持限制单个栏目单个会员发布信息数。</p><p>新增详细管理会员列表功能,审核内容更方便。</p><p>新增更多安全特性,系统更牢固。</p>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值