edpx-zhixin [](<a href="https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-">https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-</a>[](<a href="https://github.com/eco EDP 扩展

程序名称:edpx-zhixin [](<a href="https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-">https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-</a>[](<a href="https://github.com/eco

授权协议: MIT

操作系统: 跨平台

开发语言: PHP

edpx-zhixin [](<a href="https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-">https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-</a>[](<a href="https://github.com/eco 介绍

edpx-zhixin 是 edp 的一个扩展,提供给百度的FE开发搜索结果页模板的工具

[](https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-

zhixin)启动edpx-zhixin

通过下面的命令,将根据默认的配置文件edpx-zhixin-config.js,启动edpx-zhixin,edpx-
zhixin会在当前目录查找配置文件,如果没找到,会一直向上级目录查找,找到为止。在默认情况下,edpx-
zhixin会使用8848作为默认端口,并且将当前目录作为 documentRoot

$ edp zhixin start
10:45:21 [INFO] monitor -> /Users/sekiyika/Documents/work/src
10:45:21 all plugins have been loaded.
edp INFO EDP WebServer start, http://192.168.1.106:8848
edp INFO root = [/Users/sekiyika/Documents/work/src/], listen = [8848]

[](https://github.com/ecomfe/edpx-

zhixin#%E6%8C%87%E5%AE%9A%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6)指定配置文件

通过--config参数,可以指定edpx-zhixin的配置文件

$ edp zhixin start --config=src/edpx-zhixin-config.js
10:52:26 [INFO] monitor -> /Users/sekiyika/Documents/work/src
10:52:26 all plugins have been loaded.
edp INFO EDP WebServer start, http://192.168.1.106:8848
edp INFO root = [/Users/sekiyika/Documents/work/src/], listen = [8848]

[](https://github.com/ecomfe/edpx-

zhixin#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84)目录结构

edpx-zhixin要求开发者遵循目录规范,如下:

edpx-zhixin-config.js
src
    page
        ecl_ec_weigou
            config.js
            _page.tpl
            page.tpl
            page.html
            data.json
            ...

[](https://github.com/ecomfe/edpx-zhixin#%E9%85%8D%E7%BD%AEedpx-

zhixin)配置edpx-zhixin

运行edp zhixin start时,需要edpx-zhixin-config.js文件,下面是构成edpx-zhixin- config.js的默认配置

/** * @file edpx-zhixin-config.js *//** * edpx-zhixin的配置 */exports.server = {
    documentRoot: './', // documentRoot以配置文件所在的目录来计算绝对路径,默认为process.cwd()
    port: 8848 // edpx-zhixin的启动端口,默认为8848};/** * 用来配置开发环境依赖的结果页机器地址,可以配置线下机器 * 默认hostname是www.baidu.com,port为80 */exports.proxy = {
    hostname: 'www.baidu.com',
    port: 80};/** * 如果网页中有同名模板,默认干掉同名模板 */exports.removeSameTpl = true;/** * wise相关的host *///exports.proxy = {//    hostname: 'm.baidu.com',//    port: 80//};/** * 指定php可执行的路径 * @type {string} */exports.php = 'php'; // 指定渲染模板使用的php路径,如果path中有,写php即可/** * 指定依赖的base文件,默认会使用edpx-zhixin中自带的c_base.tpl和c_right_base.tpl文件 */exports.base = {
    left: 'c_base.tpl',
    right: 'c_right_base.tpl'};/** * wise相关的base文件 */// exports.base = 'wise';

[](https://github.com/ecomfe/edpx-

zhixin#%E5%BC%80%E5%8F%91%E6%A8%A1%E6%9D%BF)开发模板

从新建模板到release,都提供了相应的命令和工具

在行业目录下运行edp zhixin init ecl_fn_demo,如下:

$ edp zhixin init ecl_fn_demo
>> Do you really want to init `ecl_fn_demo` project in `/Users/sekiyika/Documents/work/src/finance` ?(y/n)y
>> There is a exist project, cover it ?(y/n)y
edp INFO >> `/Users/sekiyika/Documents/work/src/finance/page/ecl_fn_demo` create success.
...
edp INFO >> `/Users/sekiyika/Documents/work/src/finance/page/ecl_fn_demo/config.js` create success.

这样就构建好了一个模板开发所需的基本文件

initwise

创建wise相关的模板命令:

edp zhixin initwise [--root|-r] [--platform|-p] [--data|-d]

目前支持的wise平台为 iphone,utouch,big,在访问的时候url后缀添加

&tn=iphone、&tn=utouch、&tn=big, 切换到相应的平台

例如:

http://m.baidu.com/s?word=%E7%94%B7%E7%A7%91%E5%8C%BB%E9%99%A2&sa=tb&st=111041&tn=utouch

会调用utouch版本的模板

zhixin#%E4%BD%BF%E7%94%A8-utpl-%E6%94%AF%E6%8C%81%E6%A8%A1%E6%9D%BF%E7%BC%96%E5%86%99)使用
utpl 支持模板编写

集成utpl的模板功能,在_page.tpl中引入后,自动编译成相关的函数使用,
utpl语法同underscore.js的模板语法类似,请参考underscore
获取更多信息

例如:

_page.tpl 内容:

{%*include file="./ajax-list.utpl"*%}

注:形如:ajax-list.utpl会被编译成ajaxListRender函数,可以在js中直接调用

ajax-list.utpl 内容:

/*utpl:innerFn=false,trim=false*/
<!--列表项目-->
<ul>
    {%each(tplData.list, function(item, index){%}
        <li><a href="{%=item.link%}">{%-item.title%}</a></li>
    {%});%}
</ul>
<!--记录数-->
{%len = tplData.list.length%}
{%if (len!==0) {%}
    {%=len%}条记录
{%}%}

其中

/*utpl:innerFn=false,strip=false*/

为编译选项:

  1. innerFn=false,表示each,escape等函数不会在模板中内置,需要外部提供

  2. strip=false,表示不会自动去除空格、注释

config.js

config.js是每个模板目录下都需要的一个配置文件,主要包含和该模板相关的配置

exports.config = {
    tpl: 'ecl_fn_demo', // 模板名
    querys: [
        'iphone',  // 命中该模板时的query,不指定data会默认使用data.json文件作为数据文件
        {
            query: '游戏',
            data: 'data.json' // 指定渲染所需要使用的数据文件
        }
    ],
    side: 'left', // 模渲染的位置,有left和right的取值
    platform: ['ipad', 'pc'], // 该模板适用于ipad或者pc,根据url中的dsp参数来区分,可以为platform: 'pc'
    //platform: ['iphone', 'utouch', 'big'], //wise相关的platform,根据url中的tn参数来区分,tn=utouch,会切换到简版模板
    ajaxs: [ // 代理请求的数据,常用于代理/ecomui的请求
        {
            url: /a.js/,
            file: 'a_1.js', // file和handler是互斥的关系,handler优先级更高
            handler: function(request) {
                return fs.readFileSync('data.json')
            }
        }
    ],
    //build: 'release', // 缺省相当于 edp zhixin build,加上相当于 edp zhixin release (下文提及)
    watch: { // 监控源文件的变化并编译产出page.tpl文件
        filters: [
            '_page.tpl',
            '*.less'
        ],
        events: [
            'addedFiles',
            'modifiedFiles'
        ]
    }};

start

edpx- zhixin启动时,会查找documentRoot目录下的所有config.js文件,然后根据config.js文件建立query到模板之间的索引

启动之后,可以通过http://127.0.0.1:8848访问

注意 :在这里推荐配一个host,搜索结果页大部分静态文件都做了referrer过滤,非百度域可能会遇到403
forbidden,导致文件加载失败

build

build可以让用户手动编译生成page.tpl文件,代码不压缩

release

开发完成模板之后,需要发布压缩后的代码,release比build多做了一步就是编译压缩

edpx-zhixin [](<a href="https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-">https://github.com/ecomfe/edpx-zhixin#%E5%90%AF%E5%8A%A8edpx-</a>[](<a href="https://github.com/eco 官网

https://github.com/ecomfe/edpx-zhixin

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


MuPlayer 是一款跨平台、轻量级的音频播放解决方案,是百度@音乐前端团队开发维护的浏览端音频播放内核,它基于HTML5
OS FLV 是一个 开源和可嵌入网页的flv播放器。 这个播放器拥有大量的选项可以通过嵌入代码进行设置.
DewPlayer音乐播放器,样式很简单,而且很实用.播放器可以根据自己的喜好改变颜色,也算比较个性化吧.但唯一的不足就是只支持MP3格式的音乐。
JW FLV MEDIA PLAYER是一个开源的在网页上使用的Flash视频、音频以及图片播放器,支持 Sliverlight
Speakker 是一个基于 Web 浏览器的音乐播放器,只提供很多高级播放功能包括播放列表管理和分享。
Player Framework 是一个开源的支持 HTML5 的视频播放器框架,同时也支持 Silverlight 和 Windows Phone
Sewise Player是一款专业的免费网页视频、流播放器,它功能强大,体积小,跨平台,使用方便简洁、随心所欲:
SoundManager 2 利用 HTML5 和 Flash 技术提供了稳定和阔平台的音乐播放功能,只有 10K 的 JS 包。
xPlayer v1.0 特性: 文件大小 9.78kb; 可以自定义皮肤; 3.支持 http 和 rtmp 视频; 4.音量调节,全屏播放,拖拽播放;
XPlayer 豆瓣音乐播放器 特点: 1.自动侦测Douban网页的歌曲 2.Douban网页关闭,歌曲能够继续播放
歌词 插件 最新更新,扩展性能稍微有点提升了, 不多说了,更多敬请查看首页http://luochunzong.sinaapp.com/?p=84
ABPlayerHTML5是一个在HTML5下的弹幕播放器(同步显示视频于评论)实现。类似功能的播放器可以参考基于Flash的MukioPlayer和PADPlayer。
AudioPlayer.js 是一个 jQuery 的插件,实现了 HTML5 的音乐播放器,无需任何图片,实现了响应式布局,支持触摸操作。
替换中国大陆主流视频网站的 Flash 播放器为 HTML5 播放器 使用 Mac 的同学都可能碰到过在线看视频引起机子风扇狂转、机身发烫等情况,这是因为 Flash 占用了过多系统资源的缘故。
AetherPlayer 是一个类CD的轻量HTML5播放器,特别适合博客及个人站点使用。它漂亮得不像……咳,这边吹牛的话就不说了。
专注、极致、智慧,国内外为数不多不依赖开源框架、跨平台(windows/android/iOS)、公网推送(支持rtmp)-播放(支持rtmp/rtsp)业界真正靠谱 的超低延迟。
node-kugou-client 是 Node.js 酷狗客户端。 安装 npm install node-kugou-client 使用 var kugou = require(\"node-kugou-client\");
Youku HTML5 播放器扩展 —— 告别 flash 和广告 关于官方内测 html5 播放器 Firefox ( xpi 直接安装) ( firefox 50.0+)
Chimee 由奇舞团研制的 h5 播放器,它支持 mp4、m3u8、flv 等多种格式。通过插件式开发,能满足业务方快速迭代、灰度发布等要求。让开发者能够轻松快捷地完成视频场景的开发。
OneVideo是一款基于OneBase+UniApp开发的小视频播放移动应用。