站内搜索
“plugin” 找到 70 条结果
ThinkJS 开发之前端热更新
用过 ThinkJS 的人都知道,开发模式下 ThinkJS 是支持实时更新的,也就是说不需要我们重启服务就能让修改生效,不得不说这种开发方式真的非常方便。然而对于前端代码我们还是得老老实实的刷新页面才能看到效果,我们能不能让前端代码也支持热更新呢?答案是肯定的。首先我们看一张动图了解我们最终想要功能是什么样的(点击图片查看大图)。
关于前端页面自动刷新,其实有非常多的方案了,从简单的 F5, Live Reload 到 Browser Sync 都是非常不错的方案,当然按照套路本文的主角肯定不是它们了。用过 webpack 的同学应该都用过或者知道 webpack-dev-server 吧,想必大家都对它的不刷新页面热更新代码的方式眼前一亮,没错,今天我们的主角是它!
The webpack-dev-server is a little Node.js Express server, which uses the webpack-dev-middleware to serve a webpack bundle. It also has a little runtime which is connected to the server via Sock.js.
正如官方文档开头写的那样,webpack-dev-server 本质上内部是用了 express ,使用 webpack-dev-middleware 在服务端编译,并使用 websocket 通知页面进行更新。那么问题来了,我们是一个 ThinkJS 的项目,为啥为了使用热更新还非得去再启一个别家的服务,这什么鬼!好在不是我一个人这么想的,所以有人开发了 webpack-hot-middleware 这个项目,将 webpack-dev-server 热更新功能脱离出来,让我们能自由自在的在自己的服务上搭建。所以我们只要 webpack-dev-middleware 和 webpack-hot-middleware 配合就能实现 webpack-dev-server 的热更新功能了。
不过 webpack-dev-middleware 和 webpack-hot-middleware 都是 express 的中间件,在 ThinkJS 上无法直接使用。所以我将它们简单的包装成了 ThinkJS 的插件:think-webpack-dev-middleware 和 think-webpack-hot-middleware,大家直接安装就能使用了。具体的添加过程如下:
-
安装中间件:
npm install think-webpack-hot-middleware think-webpack-dev-middleware --save-dev -
修改
src/common/bootstrap/middleware.js定义中间件:import webpackDevMiddleware from 'think-webpack-dev-middleware'; import webpackHotMiddleware from 'think-webpack-hot-middleware'; import webpack from 'webpack'; import config from '../../../webpack.config.js'; const compiler = webpack(config); think.middleware('webpack-dev', webpackDevMiddleware( compiler, { stats: { colors: true } } )); think.middleware('webpack-hot', webpackHotMiddleware( compiler, { log: think.log } )) -
修改
src/common/config/hook.js将定义好的中间件添加到resource的钩子中:export default { resource: ['webpack-dev', 'webpack-hot'] } -
修改
webpack.config.js添加监听客户端webpack-hot-middleware/client以及热更新插件:var webpack = require('webpack'); module.exports = { entry: { main: [ 'src/index.js', 'webpack-hot-middleware/client?reload=true' ] }, plugin: [ new webpack.HotModuleReplacementPlugin() ] };
这样就可以实现 ThinkJS 内部前后端热更新了,如果有不是很懂的同学可以参考 think-webpack-hot-middleware/example 这个示例项目,直接 npm start 就可以看到效果。
PMBlog 转火麒麟
别院以前一直用的是我三年前开发的静态博客系统 PMBlog。这款程序(确切的说只能叫脚本)我自己还是比较喜欢的,插件主题什么该有的都有。不过这两年维护的时间越发的少了起来,加上最近参与到另一款基于 Node.js 的博客程序 Firekylin 的开发中,遂起了心想把这个静态博客切过来。
firekylin 有提供 WXR 导入功能,WXR 是 WordPress eXtend Rss 的简称,基本上可以算是博客程序数据转换的通用格式了。所以我只要把 PMBlog 的数据转换成 WXR 文件就好啦,为此特地将其写成了插件 Export2WXR。将插件拷贝到 plugins 目录下后再次编译会提示下载一个 .xml 文件。下载下来之后直接进入到 Firekylin 后台设置-导入数据将文件导入即可。
制作插件的过程主要是将数据转换成 XML 的过程,由于用的别人的 wxr 生成代码以及数据的不对应导致转换过程非常颠婆,具体就不多表了。由于之前就使用了 Disqus 的社交评论,新程序的文章地址和原来的略有不同,需要使用 Disqus 的 URL Mapper 工具对原来的文章网址进行重映射,将文章 URL 列表下下来之后用文本编辑器的正则批量替换基本上就能搞定了,这里给一个示例:
Find: http://blog.imnerd.org/(.+?)$
Replace: http://blog.imnerd.org/$1, http://blog.imnerd.org/post/$1
Disqus 的服务还是比较稳定的,不像之前帮 75team 转多说评论一样,各种导入导出功能失败,批量删除失败,数据太多失败,缓存抽风失败。只能说毕竟在国内,不赚钱的项目是没人管的,以后还是老老实实的用着 Disqus 吧。
博客程序切过来之后希望能像月影大大那样激发热情高产起来!哈哈!
冬至也在码代码
昨天晚上不知道是不是因为冬至的原因,大家都表现的异常的兴奋,快两点了大家都还没上传睡觉。因为昨天下午睡了挺久了,把这个礼拜的《爸爸去哪》看完了才滚床上睡觉去了。总觉得林志颖被导演故意演成了黑脸,不过是越来越喜欢kimi那随时都能脱线的神经了。不过说到脱线,另外一个王者就是Angela了,哈哈,做游戏的时候那脱线的表情简直就在想象吃大餐的感觉有没有!虽然男神张亮我是比较欣赏的啦,不过相比较之下我反而不是很喜欢天天呢。主要原因是他在海岛小伙伴寻宝给我的感觉太差了。看来男神以后的路还有很长啊,哎!
冬至到,吃水饺。中午也跟风和宋哥两人去三楼吃了个水饺。别说人还真是多,排着队买饺子的人比比皆是,看来北方这方面过的还是比较隆重的。昨天古哥推荐我们来这家,味道感觉还可以,价钱也比较实惠。每次吃饺子的时候总是会回忆起小学的时候,一群小伙伴补习完回家的路上吃一碗两块钱(没错我就是来吐槽当今的物价的)的水饺,那种感觉特别温馨。回忆起当时的味道,虽然是淡淡的,但一种非常香甜可口的感觉一直萦绕在我的脑海中,回味无穷。
今天下定决心,花了一天的时间先研究了一地啊@defe 之前写的CommetToMail插件,然后就一直在捣鼓我之前写的At插件了。之前只是简单的用At.js实现了列表@的功能。随着群众的欲望无限膨胀,邮件通知的功能的需求越来越强烈。之前稍微看了一眼CommentToMail插件,有点懵里懵懂,所以对新功能的增加就有点望而却步。这回一不做二不休努力赶工总算是做出来了。刚把代码放线上测试的时候还有各种小问题,不过也慢慢都解决了。看明天如果没什么大BUG的话我就把代码放出来进行大面积测试吧。
FtpUpload插件
由于我本人比较喜欢将日志中的图片上传到我的一个FTP服务器中,但是一边写一遍开着FlashFXP上传实在是蛋疼了,所以萌生了写这个插件的想法。总的来说这个插件能让你远程传送文件(不限于图片,其它文件也可以)到FTP服务器中,并及时返回文件的URL地址插入到日志当中。
启用插件的时候,Typecho会提示"Server Error"错误的信息,虽然不知道为什么(有知道的同学请一定要告诉我!),但是并不影响正常的使用。
启用插件后记得在设置中填写自己的FTP服务器信息,以及希望将文件上传到哪个文件夹中。请一定要记得这个设置的文件夹要是存在的,否则会产生错误。
插件的基体是我拿着之前写过的XiaMiPlayer插件修改的,所以样式也是从那里继承过来的。
由于本插件写的非常潦草,纯粹为了实现功能而实现功能,所以肯定有许多不足的地方,希望大家多多反馈!
以上。
XiaMiPlayer插件 for typecho 0.8(更新至2.1版)
2.1版对应的是typecho 0.8版,如果想要下载对应最新版(typecho 0.9)的同学,请跳转到此页:XiaMiPlayer插件 for typecho 0.9
2.1版新增自定义播放器颜色(换颜色,全球浪潮~),默认提供了六种颜色,同时用户也可以自定义颜色哟!
2.0版本新增同步显示歌词和外链MP3地址的支持,提供移动端支持(需要支持html5)!欢迎大家更新使用!
本插件是基于MiniPlay1g1g插件的基础上修改过来的,所以插件的基本样式和MiniPlay1g1g是一样的,如果大家介意的话我会在下个版本中修改过来。在此感谢MiniPlay1g1g插件的作者vfasky君给我们带来了这么好的一个插件。
XiaMiPlayer插件的主要功能:
- 根据关键词获取虾米音乐搜索结果
- 生成音乐播放器代码,并自动插入到文中
- 歌曲同步显示歌词(如果歌曲有歌词的话,2.0版本以上支持)
- 支持插入外链MP3地址(2.0版本以上支持)
- 自定义播放器样式(2.1版以上支持)
本插件是在typecho 0.8的基础上开发的,没有做对老版本兼容的测试,没有做对其它编辑器兼容的测试,同时没有做浏览器兼容测试,以及各种其它有的没有的测试。如果有不能用的,欢迎大家来报BUG,我会尽我所能DeBug的。
更新: 2.1 - 新增自定义播放器样式功能 2.0 - 更换播放器代码,支持所有支持HTML5平台的客户端。增加同步显示歌词功能,以及支持外链MP3地址。 1.3 - 修改翻页样式,修复了开启插件之后无法使用附件的插入功能。 1.2 - 增加了Ckeditor, xheditor编辑器的支持,修复了之前支持的编辑器无法插入的问题。 1.1 - 增加了TinyMce, KindEditor, FCKeditor三个编辑器的支持。
四川那些事
前言
前些日子去四川实习了小半个月,领略了一下西南大四川风情,果真是别有味道,非一语能言之。废话不多说,照片走起。
山
水
店
路
那景
路边发现的,之前以为是值钱的景天,结果发现原来只是不值钱的瓦松T_T_
_
_
同路边发现具体刻了什么大家自己看吧,总之是槽点满满的啊←←
无意之中进了一个金矿,这是矿区里头的小藏獒
大四川的精髓,四川麻将,血战到底!
叶子好像蝴蝶的说,拍了一张之后立马就夹书里头了0.0
看到那坑了没..地震的时候山顶上滚下来的这巨货搞得!
有木有觉得那片云朵跟❤很像?
取样之敲断的钢钎,后来又敲弯了一根LOL
迷路的羊咩咩~
移植主题Publish(更新至1.3版)
之前发布过一款移植主题TwentyTwelve,挺受大家喜欢的。@想往同学求助希望能制作Publish的Typecho版,所以有了此文。
很久不接触WordPress后发现快连WordPress的主题都看不懂了,各种神奇而又复杂的函数让人看的晕乎乎的。查询函数功能费了好些时间,好在最后是凑合着弄出来了。吐槽一句,能够提交到官方库里头的主题果然都是神一般的主题。
目前已经更新至1.3版,修复了评论框无法记录账号,作者登录判断登录等问题
目前已经更新至1.2版,修复了评论回复点击回复需要重新载入页面的问题,如果使用此版还会出现重新载入现象的同学可以考虑在

