共计 47 篇文章

手记7:从单人博客到多人博客全程记录

上一篇手记是讲“改造Gitment”的(在这里)。其实这个“改造”花了不少功夫,以至于后来还出了一个给hexo-theme-next的版本。 这是推迟了“做多人博客”的一个原因,另一个原因则是我以前的博文需要更新的太多,花了很多时间。当然,那个叫Monster的项目(在这里)也是花销时间的大户。 所以,结果就是:这篇“手记7”被推迟了很久...很久... 多人博客的功能其实我一早就做出来了——至少,大概的框架是完成了的。 ...

Monster 1.0.6开启的新功能

多人博客 经过几个版本的更新,Monster已经开始有了丰富的功能,这其中就包括对Ghost多人博客的支持。 Monster主要是在updatesite.sh模式中支持多人博客,也就是说这个功能在update模式下可用。当在.monster配置文件的EMAIL参数中使用一个列表,例如: EMAIL=("aiming@gmail.com" "qomo@gmail.com") 那么多人博客的模式就自动开启,并在--sync-removed命令中有效。 注:如果你只是删除post,或更新theme中post的风格, ...

Monster的三种工作模式

Monster有三种工作模式generate、update和preview。可以通过Monster的第一个参数来指定,在第一个参数缺省时直接使用generate模式。例如: # 下面两个指令是相同的 > monster --generate > monster generate --generate 但Monster也有自己的--help参数,所以与generate模式下的--help参数不一致,后者显示的makesite.sh的帮助: # 显示monster的帮助 > monster --help # 显示generate模式(即makesite.sh)的帮助 > ...

详解Monster的初始化及配置

尽管Monster并不强制你创建与初始化工作目录,并且也不强制依赖Ghost来工作,但是“Ghost + 工作目录”仍然 是Monster的最佳使用场景。 关于在没有Ghost的情况下使用Monster的说明请看这里:将Monster用作网站离线下载的方法。 预备工作 你需要先启动Ghost并了解它运行在的本地地址 > npm start Ghost is running in development... Listening on 127.0.0.1:2368 ...

Monster - 用Ghost写博客的终极利器

是时候从Buster转到Monster了 我最先开始用Ghost写博客时,用来生成静态页面(并发布到aimingoo.github.io)的工具是Buster。首先它确实不太好用,其次用它生成(generate)出来的页面还需要做许多的后续处理才能使用。由于这个缘故,我写了Monster这个工具的第一代产品并放在了我的ghost-utils仓库中,名为makesite.sh。 makesite.sh其实是类似Buster的。由于采用了相同的实现方案,所以也就有着Buster的最根本的问题:每次都要对全站做重新生成。为此,我另外又写了一个脚本,名为updatesite.sh,用来实现增量生成基于Ghost的静态网站。 再之后, ...

在电子书中使用SVG

在之前的文章中,我们讨论了《Kindle电子书中该用多大的图片》,以及《详解ImageMagick中SVG的支持》,本文可以看作它们的后续。 在高版本的电子书格式中是可以支持使用.svg作为图片的,并且看起来与.png/.jpg的使用并没有什么不同。但是,如何制作合适大小的.svg却是一个相当烦恼的问题。 因为电子书在.svg文件上采用了与.png/.jpg不一样的排版规则。 一些.svg相关的基础知识 与.pdf一样,事实上.svg文件中也是没有DPI信息的,因为它们都是以矢量格式为基础的。而且它们也都相同的使用Points( ...

详解ImageMagick中SVG的支持

事实上ImageMagick是可以很好地支持svg的——当然,它只是将svg转成图片格式而不能反过来,毕竟它只是个图片处理工具。不论是在使用convert,identify还是mogrify等等时,只要操作的对象是一个.svg文件,那么ImageMagick就会启动这一机制。例如,当你使用identify查看一个.svg信息的时候,事实上你是在查看它转换后得到的一张.png图片: > identify -verbose your.svg Image: /var/folders/w9/fy0l4xgj3w73j4d71748v9nw0000gn/T/magick-481524PstlAlieWiB ...

手记6:改造Gitment

本文所述的修改请参考我在Fork Gitment项目的基础上改造的Gitmint:Gitmint: a mint on gitment 接下来我们要大力修改Gitment,打造一个『好用那么一点点儿』的博客评论。 11. 改造Gitment 折腾到现在,我们有了一个在Github pages上的博客,以及一个用来写本地博客的Ghost,以及一些相关的工具,例如makesite.sh(在这里)。 最后,我们还有了一个第三方提供的支持PHP+HTTPs的空间,这个空间只用来放Gitment的服务端,并且这个服务器事实上也只做一下API的CORS转发而已。 ...

博客迁移手记之快速导航

本来没想把《博客迁移手记》写得这么长这么多,所以写了这么久之后再来看,博客的标题感觉就很Low了。 于是决定给这一组《博客迁移手记(1~n)》写个导航,也算整理一下思路。 快速导航 博客迁移手记(一) 使用BlogToWordpress迁移你的博客 使用本地博客Ghost的快速指南与导入工具 博客迁移手记(二) 从本地博客到Github Pages的最佳指南 makesite.sh使用手册 博客迁移手记(三) 以kaldorei为例详解Ghost Theme的定制 ...

手记4:谈谈Gitment中泄露secret的前因后果与解决方法

本来我接下来只是想在博客中加上一个支持评论的功能(使用Gitment),然而诸多的尝试之后,我却发现我需要创建一个支持https的web站点…… 这一切的目的,只是使得我们的Gitment有跨域访问的Api接口可用。 8. 问题出在哪里 Gitment(项目)是极棒的一个利用Github Issues来实现博客评论功能的项目,作者(https://imsun.net/)在介绍中特别提到,这种对Issues功能的使用方法是Github团队支持许可的。这也意味着只要你能接受以下两点可能存在的限制/隐患,你就可以长期地使用它: Github真的可能被屏蔽,尽管这种可能性已经越来越小 要发表评论的话必须先注册Github的账号,不过浏览评论是不受限制的 但是使用Gitment是有问题的。 ...

手记2:从本地博客到Github Pages的最佳指南及工具

现在你来到了Ghost的世界(或别的什么本地博客系统),怎么写博客以及格式等等问题都是这个博客系统的问题了,你应该去搜搜相关的教程。就我来说,Ghost挺好用的,偶尔还有些很便利使用的小惊喜。 如果你成功的导入了历史博客(或者你只是随手写了几篇),那么现在你面临的问题是:怎么把它放到网上去。当然可以是某个免费主页空间(只需要静态的就可以了),也可以是——比如我选择的就是Github Pages。这样一来,就可以有一个名为xxxxxx.github.io的博客地址了,而且博客文章和维护等等都使用Github的后台或Git命令行,又熟悉又自然,对吧。 4. Github开工 你得先有Github账号。 ...

确定的世界 - The Promise's World

确定的世界 - The Promise’s World —— Promise的逻辑以及在Lua中的实现 本文基于如下项目(ES6 Promise in lua v1.0.1): https://github.com/aimingoo/Promise 有这样一个世界 有这样的一个世界在持续地向前推进着,这个世界充满着无穷多个选择,也就是说有无穷多的可能;但对每一个选择来说,存在决定/ ...

QoBean的元语言系统(二)

上一篇:<< 第一部分:元语言系统基础,以及程序的基础元素 第二部分:元语言下的编程基本方法 三、代码组织形式 1. 物理代码块(代码文本、代码行) 代码到底应该如何组织?如果我们认为代码是由序列调用的例程构成的,那么我们可以把代码的形式回溯到很“远古”的时代,例如: function func1() { } function func2() { } function main( ...

QoBean的元语言系统(一)

QoBean是从元语言系统开始构建整个语言系统的,从本文开始,我开始讲述QoBean所理解的元语言。不过,不同的人、从不同的侧面所理解的“元语言”是不一样的,不必求同。 “QoBean的元语言系统”包括三篇,分别是: 元语言系统基础,以及程序的基础元素 元语言下的编程基本方法 元语言的应用:虚拟执行环境 QoBean的项目地址: https://qomo.svn.sourceforge.net/svnroot/qomo/qobean ...