Xiao

Swift Optional 的嵌套

intro

在 Swift 的世界里,一切皆对象,包括 Int Float 这些基本数据类型,所以我们可以这么写:print(1.description)

而对象一般都是存储在指针中,Swift 也不例外,这就造成了一个问题,指针为空的情况需要处理。在 Objective-C 中,向一个 nil 的对象发消息是默认不产生任何效果的行为,但是在 Swift 中,这种行为被严格地禁止了。

Swift 是一个强类型语言,它希望在编译期做更多的安全检查,所以引入了类型推断。而类型推断上如果要做到足够的安全,避免空指针调用是一个最基本的要求。于是,Optional 这种类型出现了。Optional 在 Swift 语言中其实是一个枚举类型:

public enum Optional<Wrapped> : _Reflectable, NilLiteralConvertible {
    case None
    case Some(Wrapped)
}
More...


静态页面生成器装备持续集成 · 下

之前的两篇文章已经理顺了思路,实现起来也就容易不少。每个步骤网上都能查阅到相当多的资料,这里简单记录一下我的过程。

More...


静态页面生成器装备持续集成 · 中

工作流

有了对 Jekyll, Travis CI 和 GitHub Pages 的了解,我们对于自动构建 Jekyll 工作流的构思是:
本地向 Github 上 push 代码后,如果该代码属于目标源(暂时称为 Dev repo),Travis CI 就自动构建 Jekyll 环境编译它,并将产出的静态博客 push 回我们的 Github pages 源(暂时称为 Pages repo)。然后即可在 pages 上查看新发布的博客。 如下图:

intro

More...


静态页面生成器装备持续集成 · 上

intro

最近把博客全盘折腾成了 Jekyll 静态页面,部署到了 GitHub Pages 上面,并且利用 Travis CI 做了自动化构建和部署。这篇文章是一个简要的备忘记录。上部分主要写概念和工作流,下部分主要记录 Travis 对 Jekyll 的配置细节。

More...


Jekyll 大括号 {% %} 转义

使用 GitHub 做静态网站,写文章的时候避免不了要显示大括号这个符号,但是大括号是 Jekyll 的转义字符,所以我们需要想办法输出这个符号了。

{% raw %} {% endraw %}

这是一个 Jekyll 中用来对大括号进行转义的函数。 对于一般的文本,直接将其放到 {% raw %} {% endraw %} 中即可转义, 比如:

{% raw %}

    content

{% endraw %}
More...