Nunjucks使用正则表达式示例

我在使用egg.js时,他用的模板引擎是Nunjucks,其中有个地方需要用到正则,可是官方文档基本上写了跟没写一样,官方的[正则表达式](https://mozilla.github.io/nunjucks/templating.html#regular-expressions),于是我便去找例子了。

我在使用egg.js时,他用的模板引擎是Nunjucks,其中有个地方需要用到正则,可是官方文档基本上写了跟没写一样,官方的正则表达式,于是我便去找例子了。

正则表达式

在Nunjucks中使用正则表达式的示例:

{% set regExp = r/^foo.*/g %}
{% if regExp.test('foo') %}
  Foo in the house!
{% endif %}

那么这个就会被正常显示。其他的表达式也是可以的。例如:

<!-- 有个后台存储的未验证的手机号码(mobile)在前端显示,如果格式正确则显示,不正确则显示“暂无” -->
{% set regExp = r/^\d{11}$/g %}
<span>号码:{{mobile if regExp.test(mobile) else '暂无'}}</span>

这两个例子应该看得懂吧。正则这块我并没有看源码,因为搜索出来了,我这里参考的regex exmaple?

后来发现其实很多方法文档并没有写出来,这时候可能真的需要看看源码了,有兴趣的话可以阅读下filter的源码https://github.com/mozilla/nunjucks/blob/master/nunjucks/src/filters.js

2019

2018的总结

不怎么容易,有段时间甚至感觉难受很久。真正感受到的是工作的压力。

时间过得太快,连wordpress都到了v5了。回想去年我还想自己搞一个博客系统,却迟迟没有动静。

2019年

还是希望身体好起来。不要天气一冷不小心就感冒。不要总是脖子颈椎痛。希望头发不要掉完,希望能够学到更多关于提高工作效率,管理情绪的方法,希望能活出自己想活的样子。

祝福自己,2019加油。

W350ET(K590S)无法正常启动(显卡灯和硬盘灯交替闪烁)故障处理

笔记本W350ET(K590S)无法正常启动,开机反复闪灯,随机时长开机,一开始挺快的只要几分钟,能忍,后来甚至要半小时才能开机,无奈去修。原来是刷BIOS就可以解决了。

无奈随着三四月开始出现故障后,起初等几分钟技能开机直到现在甚至需要半个小时才能开机,因为电脑一直放在公司办公用,严重影响到了工作,只好拿去电脑城维修。

这个故障令人感到奇怪的是,启动时长会随着时间推移而增加,总给人一种天冷摩托打不着,或者是硬件老化需要反复启动的感觉。一直陷入了硬件故障的误区。然而,最后拿去维修才知道,原来重新刷BIOS可以解决!分明是软件故障,但是,究竟是什么原因导致软件故障呢,是否跟我使用黑苹果有关呢,这些问题一直是疑惑。

故障现象:按开机键后,硬件开始运转,但是,只见到显卡加速灯核硬盘读写灯交替闪烁,一直反复到正常启动为止。

解决方案:

  • 更换主板电池(对于本机无效)
  • 刷BIOS(Bingo:)

如果有动手能力的建议自行刷BIOS,其实很简单,网上教程也很多。我之前写过Clevo W350ETQ 刷BIOS和EC图文详细教程,也可以参考下。实在不行就拿去维修吧。

维修小记

顺便吐槽,我在广州,去了岗顶,brt天桥出来还没下去有个修电脑的问了下开价280,不过态度很好,我觉得贵了,再去问问几家,然后下楼去随便找了个楼,只记得在一楼,有个说是神舟专修,去问了下,话不多说,开价500,态度不好,我果断开溜,同楼又去了一家老板态度挺好,问了下说大概150,也不知道他是心里有数的还是没数的。我想差不多了能接受就修了,不过还是搞了很久,我上午11点到的,他说大概下午三点,给我电话,我转了好久大概快三点就直接过去了,刚刚修完,老板比较实在,我问啥问题,他说重写了主板程序,我一听就知道刷了BIOS,反正修好就行了,虽然有点可惜,因为之前网上查故障的时候有人提到刷BIOS,我没大注意,要不然自己也能修好,那不是成就感满满。

顺便附上之前的参考贴:

WordPress升级到4.9.6及近期博客改造计划

我的Wordpress博客升级到了4.9.6了, 大概也是最后一次升级了. 同时在目前未发生重大变动的情况下, 我打算通过WP-Markdown插件暂时弥补无法通过markdown语法写作的弊端. 与此同时, 也是该想想怎么改造了~

这篇文章是装了WP markdown插件后, 启用了该插件来写的. 目前我正在使用markdown语法进行写作. 将来我想也是.

WordPress升级4.9.6

其实我一直都不太愿意升级Wordpress, 主要是怕博客出现故障. 而且之前的升级, 都没法自动升级, 每次都要手动下载最新的安装包, 在本地模拟一次升级, 确保无误才更新到线上, 当然之前也是因为用的虚拟主机, 所以有些限制导致无法正常在线升级, 年初, 博客迁移到了腾讯云, 一切管理权限都在我这了, 感觉很棒.

当然一直想着改造博客, 迁移, 年初看了Gatsby, Jekyll等等, 想自己写个简单的模板, 然后数据迁移过来, 发现遇到很多障碍, 非常困难. 也就一直没有实施. 今天有一次试着搜了一下wordpress的markdown插件, 看到这款老插件WP-Markdown更新了, 于是打算再次尝试. 安装后才发现, ~~这个插件支支持4.9.1+版本的wordpress, 而我的还是4.8.6~~(原来我看错了, 是仅测试到了4.9.1…好吧反正升级了也暂时没出现什么问题.) 也是抱着侥幸的态度- -. 直接点击了后台的自动更新, 当然点击之前我还是做了备份的~~ 幸运的是升级很顺利. 插件启用后, 文章编辑器就只有编码模式了. 不过对我来说毫无影响~

那么, 我的博客就这样顺利的升级到了4.9.6了. 同时, 将来也抛弃了自带的富文本编辑器了. 使用Markdown来创作了.

当然还有一个主题更新, 这个是万万不可得. 一旦更新我自己修改的大部分模板内容就会被覆盖(我记得以前是, 现在大概也是吧). 因此, 主题旧点就旧点的吧.

关于WP-Markdown

这个插件小试了下, 勉强还行, 但是样式还是很糟糕. 看来要花点功夫来处理. 毕竟markdown的代码显示部分还是比较常用的.

其实每次对内容改动都是件麻烦事. 因为旧的文章又不是markdown格式, 就会出现很多问题. 之前用的highlight.js, 现在也给禁用了, 估计旧文章的样式会有问题, 目前还在考虑给旧文章加载highlight.js, 新文章就不加了.

话说, 这次更新结束后, 也许也是最后一次更新了. 我备份了数据库, 有个大胆的想法.

如果有时间, 基于目前的MySQL数据库, 尝试搞一套前后端分离的博客系统?

好了, 先写到这吧, 晚上把腾讯云的服务器的yum也更新了, nodejs也更新到8.x最新版本了. 有空就好好想想博客怎么在改造下了.

对了正好昨天公安备案通过了。这个网站属于交互类,非常麻烦给了两个表格过来,有一个表格有170多条,我没啥耐心,就随便填的。不过居然一天就通过了。。。棒棒哒~

VSCode格式化代码功能失效的bug解决方法

我在更换了系统,并使用VSCode的Settings Sync插件同步设置和其他插件后,部分插件功能失效,无法格式化代码等问题的查找和解决

VSCode格式化代码功能失效的bug解决方法

前不久我装上了黑苹果,那么为了快速转移开发环境,我使用了VSCode(Visual Studio Code下面简称VSCode)的插件Settings Sync来同步个人设置和其他常用插件,如果不熟悉Settings Sync的可以参考之前我写的一篇文章《Visual Studio Code 设置同步到github的插件介绍及使用方法(Settings Sync)》来使用。

现象

当然本文并不是介绍同步,而是要说同步后的编码过程中出现的异常。在Mac下安装好VSCode,用Settings Sync同步成功后,接着git clone正在开发的项目到本地,开发过程中,却发现一个非常奇怪的问题:所有的格式化代码的功能都失效了。Mac下使用快捷键“Alt+Shift+F”(我用的windows键盘),却提示,“当前没有安装“xxx”文件的文档格式化程序。”!我的Vue,SCSS代码都无法正常格式化!这个非常令人不爽,难道Mac下的VSCode会有格式化代码功能的缺失?和Windows版本的VSCode功能不一致?我觉得不太可能。于是重启回到Windows 10,重新拉了项目测试,毫无问题。无论是Windows还是Mac,都是最新版的Visual Studio Code。

分析

无奈之下去google了一下格式化代码的问题,发现很多人都遇到过,有的人说重装VSCode,但是我才新装的,所以排除了,但是重装这个词让我想起一个东西,就是这些格式化代码工具,例如VeturPrettier,他们正常运行的时候都是会在编辑器中产生一个服务或者提示,而失效状态下是看不到的。于是我尝试把Vetur插件停用,重新加载再启用,然而还是无效!

想来想去,插件也安装了,编辑器也是新装的,为何插件没起到作用,突然记起之前Windows下的输出面板中是有Vue Language Server的,而现在却没有,是不是要重新安装插件呢,或者说通过Settings Sync自动化同步插件安装的功能还存在一些其他的问题呢?

解决方案

带着疑问我尝试着将Vetur和Prettier卸载,然后再重新安装,启动VSCode,打开项目,切换到一个Vue页面,终于看到了Vetur的服务,比如下面这张图中表现了正常的格式化功能的效果(截图为我解决问题后的图片)

正常的格式化插件效果

图中看到这里有个Vue Language Server,才是真正表示Vetur插件正常,右下角还有个Prettier,说明一切正常,再试了一下使用快捷键“Alt+Shift+F”,也终于可以正常格式化代码了!问题完美解决。

结论

有时候自动化工具安装的插件可能会存在一些问题,虽然不排除我这个问题发生的偶然性。

另一方面,重装软件有时候能解决问题,不过需要针对问题分析,从最小的改变逐渐排除故障。如果我把VSCode重装,再用Settings Sync同步一次,也许的确可以解决问题,但是也有可能依旧存在问题,而从插件重装下手才是比较省时省力的。

那么,如果开发中依赖插件的部分功能失效了,你也可以尝试重装插件,或许问题就能快速解决了~