珍珠蜂是Perl的下一个伟大的博客平台吗?

去年基于Perl的Movable Type博客平台转为闭源,导致Perl失去了主要的开源博客平台。等待结束了;珍珠蜂是一个由Evozon开发的新开源博客平台,用Perl编写。但它好吗?我们试用了一下来找出答案。

设置

我在运行Fedora 19、MariaDB v5.5.34和Perl 5.16.3的机器上测试了珍珠蜂。安装很简单,我遵循了项目GitHub 仓库中的readme说明。

撰写博客文章

珍珠蜂附带一个管理门户,您可以通过它来撰写新博客文章。它通过/admin路径下的登录页面访问。默认登录凭证是“admin”和“password”。

PearlBee login page screenshot

登录后,默认情况下,新文章表单将显示

PearlBee new post page screenshot

表单组织得很好:它有标题、缩略图和封面图像文件上传控件,以及用于主要博客文本的所见即所得编辑器。在主表单的右侧是一个详细信息表单,用于设置博客文章分类和添加标签。珍珠蜂为每个输入的标签文本创建一个标签对象,允许标签在后续文章中被搜索和重用。

PearlBee new post page screenshot

完成表单后,按“发布”保存文章并使其公开。珍珠蜂将显示一条有用的成功消息

PearlBee saved post page screenshot

现在这篇文章将出现在主博客页面上

PearlBee page frontpage screenshot

请注意,珍珠蜂如何更新屏幕右侧的分类和标签,以方便筛选。

有一件事可以改进的是图像处理。我发现一个正方形图像被不均匀地拉平成横向比例(但在博客首页上显示正确)。

PearlBee saved post flat image page screenshot

我用jpeg和png文件测试了珍珠蜂的图像上传,两者都工作正常。

基本管理

珍珠蜂的管理门户有一个简洁的界面。菜单下拉列表平滑展开和收缩,并提供了管理网站数据的表单。我们已经遇到了一些数据库模型对象:文章、分类和标签。以下是文章管理页面

PearlBee post management page screenshot

页面列出了所有文章,并提供了一些高级属性,如作者、标题和分类。它还提供了快速更改文章状态的开关。如果文章需要撤下并编辑或重新发布,这将很有用。在审查时,页面包含了一些错误,不幸的是,查看文章的链接没有工作(无论是标题上的链接还是眼睛图标)。这些问题可以通过其他方式解决。

这里还有另一个改进的机会:珍珠蜂应该为博客文章创建适当的META标签,使用文章的属性。这将有助于SEO。

还有一个博客的全局设置页面。从这里,您可以设置博客的时区并启用/禁用社交媒体按钮的使用。

评论

珍珠蜂内置了一个评论系统。评论表单出现在博客文章下方,其中也显示了现有评论

PearlBee comment management page screenshot

我认为评论表单的风格看起来很专业,让我想起了“Disqus”评论系统设计。珍珠蜂提供了开箱即用的CAPTCHA,这有助于过滤垃圾邮件。

所有评论都需要经过审核,才能公开发布。我测试了评论提交和审核过程,它第一次就成功了。这是评论管理页面

PearlBee comment management page screenshot

一旦审核通过,评论将出现在博客文章下方。

评论可能存在安全风险,因为它们允许用户上传文本,然后将其显示在网站上。例如,如果用户上传恶意JavaScript,那么每次访问者加载包含评论的页面(或管理员审核它)时,他们都可以执行XSS攻击。PearlBee尚未实现评论内容过滤功能,该功能可以通过从评论文本中删除代码字符来防止此类攻击。在PearlBee网站用于生产环境之前,这需要得到实施。

用户管理

PearlBee识别两种类型的用户:“管理员”,他们可以管理网站的数据,“作者”,他们可以撰写博客文章但不能做很多其他事情。与其他数据库对象一样,PearlBee提供了一种基于表单的界面来管理网站用户。在测试过程中,我能够创建一个新的作者,使用该作者登录并撰写博客文章。它工作得很好。PearlBee为账户创建了一个默认的、随机的、加密的密码,并通过电子邮件发送了新用户的登录说明(实际上邮件并没有发送,稍后会有更多关于这一点的内容)。PearlBee使用Crypt::RandPasswd来生成初始密码,并使用Digest::SHA1来加密它。应该将其设置为更强的加密方法,因为Digest::SHA1包含安全漏洞

这里可能还有额外的角色是有用的:一个编辑角色可以编辑和发布文章,但不能更改网站的设置或创建新用户,这将填补当前管理员和作者角色之间的差距。我可能还会取消作者角色发布文章的权限。

自定义

PearlBee使用Twitter Bootstrap框架构建了一个响应式设计。设计巧妙,可以在许多不同的屏幕分辨率和形态下良好工作。在撰写本文时,没有公开可用的替代主题,因此除非你自己编写一个替代主题,否则你只能使用现有的主题。我在网上找到了一个示例替代主题:“内置Perl”博客

除了设计之外,你还将想要编辑PearlBee模板以使用你博客的名称,并更新默认页脚信息。如果PearlBee能够从config.yml文件中读取这些信息,而不是要求对模板工具包视图文件进行代码编辑,那就太棒了。

PearlBee需要一个本地的SMTP服务器来发送电子邮件(例如新用户欢迎电子邮件)。我发现电子邮件设置被硬编码为使用默认设置,而不是可配置的,这意味着我无法测试电子邮件功能。与Makefile相反,PearlBee使用Email::Template而不是MIME::Email或Email::Sender::Simple来处理电子邮件。PearlBee附带了一些预配置的电子邮件模板,看起来很有用。

结论

PearlBee是一个有希望的仍在开发中的平台。它看起来不错,有一个坚实的基础数据模型,并在Dancer2框架和DBIx::Class上运行得很快。在与开发团队的互动中,他们反应迅速、乐于助人。感觉大约完成了80% - 核心功能已经到位,但还有一些粗糙的边缘。PearlBee需要更好的安全性、SEO集成和更高的可配置性。如果开发团队能在PearlBee的第一个主要版本中及时解决这些问题,它可能将成为过去几年博客技术荒芜时期的一个里程碑式Perl开发。

喜欢这篇文章?帮助我们,转发它!


这篇文章最初发表在PerlTricks.com上。

标签

David Farrell

David是一位专业程序员,他经常推文并在博客上关于代码和编程艺术进行撰写。

浏览他们的文章

反馈

这篇文章有什么问题吗?请通过在GitHub上创建一个issue或pull request来帮助我们。GitHub链接