D.H.Q的烂笔头

Just code for fun~

Articles about: zotonic

在 Heroku 上部署 Erlang 的 CMS -- Zotonic

对于 Zotonic 部署的环境, Heroku 是最合适不过了,提供免费的 Erlang 环境,还有对 PostgreSQL 数据库的支持,市面上是鲜有这种云服务平台。这得益于 Heroku 的 Cedar 平台架构,让 WEB 应用程序运行在任何语言的运行时栈(runtime stack)成为了可能。 其实之前在 twitter 上也有人提过在 Heroku 上部署 Zotonic 的问题,不过官方给出的回复是觉得 Zotonic 的架构不适合在 Heroku 上部署,还是建议在 VPS 上独立搭建比较好些,也许官方没时间做这种移植吧(前段时间人手不足,在讨论组里发广告招一个开发者进核心开发团队)。

不过有趣的事总会激发人去做,一位来自法国的 Zotonic 开发者 -- Eric,就做了一个 Zotonic 在 Heroku 上的构建包(buildpack),成功地把 Zotonic 移植到 Heroku 上。出于好奇,我也去看了下构建包的使用说明,不过要吐槽下构建包的介绍 README 写得相当简单,很多安装细节都省略了,不折腾还不给你搭起来了。这里先奉上 demo 地址:http://genevent.herokuapp.com/,下面就是这个折腾过程的大概记录: 

安装配置 Heroku 的开发环境

其实之前《在 heroku 上部署 webmachine + mochiweb + erlydtl 组合的Erlang Web应用》也提到过 heroku 开发环境的配置,这里就不赘述了,无非就是:

继续阅读 »

zotonic 下的 wordpress 版 more 标签实现

对于文章摘要,zotonic 在后台写作页面那里专门有一个栏,给你填写文章的大概内容摘要,当然,摘要显示的格式也是纯文本来了。写完了文章内容还要去写文章的摘要,挺麻烦的。对于一个之前体验过 wordpress 的用户来说,是很怀念 wordpress 下的 more 标签。

什么是 more 标签

其实 more 标签只是一个内容是 "<!--more-->" 的 html 注释,因此这个 more 标签的内容是不会在文章正文中显示出来的,它允许你在文章正文中选择一个断点,插入 more 标签内容 -- "<!--more-->",这个断点的以上的文章内容将作为文章的摘要显示在首页上。

wordpress 下 more 标签的实现

也不难实现,就是以 more 标签为标记,对文章正文内容做一个截取了。wordpress 就是用 php 的正则匹配方法 -- preg_match 来实现的:

preg_match('/<!--more(.*?)?-->/', $content, $matches)

'/<!--more(.*?)?-->/' 是匹配 more 标签的正则表达式,$content 是文章的内容,$matches 就是匹配成功后返回的结果。

zotonic 下的实现

zotonic 下可以用 re:split 方法对文章正文进行正则截取:

[Summary | _] = re:split(Content, "<!--more(.*?)?-->", [{return, list}])

Content 是文章的正文,Summary 则是匹配后返回的摘要。

继续阅读 »

在 Heroku 上部署 Webmachine + Mochiweb + ErlyDTL 组合的 Erlang Web 应用

最近在看 ZotonicWebmachine 的代码,恰好在网上碰到一篇关于在 Heroku 上部署 webmachine 的文章。本着学习一样东西最好就是直接使用它的精神,也加上之前也没玩过 Heroku 这个 Paas(Platform as a service) 云服务应用平台,所以就参考那篇文章,在 Heroku 也部署了自己的一个 Erlang Web 应用

安装配置 Heroku 的开发环境

如果还没有 Heroku 账号,先注册一个。接着安装 Heroku 的本地开发工具 -- Toolbelt,打开 Heroku Toolbelt 主页,下载相应操作系统(以下操作都是在 mac 系统下进行)的安装文件,根据安装提示和自己的安装癖好一直点就行。

Toolbelt 安装好后,在终端上输入:

heroku login

继续阅读 »

Zotonic 模块制作 -- HTML Sitemap

其实 Zotonic 已经有一个sitemap 的模块 -- mod_seo_sitemap,在 /moudules/mod_seo_sitemap 目录下,不过这个模块只生成 xml 格式的 sitemap,不方便浏览。恰好之前了解了下 Zotonic 模块结构 一些相关知识,学以致用,所以就仿照 mod_seo_sitemap 模块,做一个 HTML 版的sitemap -- mod_html_sitemap。

下面是 mod_html_sitemap 模块的目录结构图:

|----mod_sitemap_html
| |----dispatch
| | |----dispatch
| |----mod_sitemap_html.erl
| |----templates
| | |----_sitemap_html.tpl
| | |----sitemap_html.tpl

继续阅读 »

zotonic 的模块结构

zotonic 的模块是把跟模块功能相关的一些文件或文件夹统一放在一个以模块名命名的文件夹里。以之前介绍过的 mod_syntaxhighlighter 模块为例,它的目录架构如下:

|----mod_syntaxhighlighter
| |----lib
| | |----css
| | |----js
| |----templates
| | |----_html_body.tpl
| |----mod_syntaxhighlighter.erl

从上往下,mod_syntaxhighlighter 是模块的文件夹,模块文件夹下包含有资源文件夹lib、模板文件夹templates和模块的初始信息文件 mod_syntaxhighlighter.erl (跟模块名一样的erl文件),资源文件夹lib下还包含有css 文件夹和js文件夹(这两个文件夹里还含有若干css和js文件,由于篇幅省略)。

其实,zotonic 的模块一般由以下文件或文件夹组成:

继续阅读 »
返回顶部