首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Hyde 快速构建轻量级的静态站点(1)简介诶

使用 Hyde 快速构建轻量级的静态站点(1)简介诶

概述在 Web 开发早期,大多数网页只是某个服务器上文件系统中的一个页面。随着 Web 的日益成熟,借助动态站点、电子商务、大规模发布和 Web 上的应用程序,从使用简单文件转换到使用复杂的 Web 内容管理系统 (CMS) 和发布工具也变得越来越普遍。每天都有数以千计的站点在以下平台上运行:
  • IBM®WebSphere®
  • 其他 Java®框架或 .NET
  • 其他流行的可供替换的 Web 发布框架,比如 Ruby on Rails 和 Django
  • 面向社区的 CMS,比如 WordPress
除了最简单的站点以外,其他任何站点似乎都需要一个配备了现代设施和工作流的 CMS。
但是,许多 Web 老手(比如我)依然记得过去简单站点的一些优势。首先,提供静态文件需要的服务器功率较少。另一个问题是备份和内容可移植性。在选择 CMS 或 Web 发布框架时,可能需要依赖于它们呈现给您的内容。将内容绑定到数据库表中,这样就无法轻易接触或拿出一个文件来共享。迁移到不同的基础架构可能是一项艰巨的任务,必须依靠特殊工具才能实现备份和恢复。
导致这些问题的根本原因就是透明性。Web 发布框架和 CMS 通常都不是透明的,这意味着要了解它们是如何存储、管理和提供内容的,就需要掌握大量的专业知识。从某种程度上讲,对于所有站点(即使是最简单的网站),这项要求都是不可避免的,近期新兴的项目提供了一些优势的框架,而且不会丢失在服务器上处理和发布简单文件的核心元素。较为流行的一个框架是 Jekyll。一些开发人员以 Jekyll 核心理念为基础,使用一组在开源 Hyde 项目上创建的构造块进行构建。Hyde 也是我使用的 Web 发布系统。Hyde 虽然很简单,但提供了许多功能,它将大多数业务限制为处理简单文件,以便生成一个静态站点,这带来了高效性和灵活性。
Hyde 入门Hyde 是使用 Python 编写的一个系统,它支持您在 Web 开发机的文件系统上管理目录中的内容和模板。您可以使用常规文本编辑器和命令行工具创建或更新内容,也可以使用 IDE(如果您喜欢的话)。如果您想看看站点的外观,那么可以使用 Hyde 生成站点,并使用测试 Web 服务器在本地运行。如果您对测试模式下的站点比较满意,可以将静态生成的文件导入适用于 Apache、Lighttpd、Nginx 或任何快速提供文件服务的 Web 服务器的生产 Web 服务器。
安装和设置如果您在 Mac 或 Linux 系统上进行 Web 开发,那么可以获得的主要工具就是 Python。Python 很容易安装在 Microsoft®Windows® 以及其他大多数平台上。要将 Hyde 安装在您的 Python 库中,请调用 sudo easy_install hyde 或 pip install hyde,具体根据您的设置而定。安装成功后,就可以使用 hyde 命令了。首先,在一个带有文件框架的目录下设置 Hyde,对于典型网站,可以使用以下命令:
1
hyde -s $PATH_TO_DIRECTORY create




使用您想用来保存内容和模板文件的目录替换 $PATH_TO_DIRECTORY。
上述命令使用了一个默认站点布局,但 Hyde 允许您选择其他站点布局。如果想对您的站点使用一些著名的工具包或设置,这个选项非常有用,例如,在使用 Twitter Bootstrap 框架的时候,或者在您知道目标站点是一个博客的时候。
如果使用默认布局切换到最近创建的站点目录,那么应该看到下列子目录:
1
README.markdown content info.yaml layout site.yaml




每个条目都提供了 Hyde 的一个不同侧面。
Markdown很多人不喜欢编写 HTML,有了 Hyde 就可以将处理 HTML 的工作量降至最低。大多数内容系统都提供了一种方法来避免手工编辑 HTML,通常使用特定的所见即所得 (WYSIWYG) 小部件,在生成 HTML 时,会给人一种使用文字处理器的感觉。另一种方法非常著名,来自维基。您可以使用特殊字符表示各种 HTML 标记,以这种方式编辑纯文本。该标记被称为轻量级标记语言,其中一个较为流行的样本就是 Markdown。
Hyde 内置在一个允许您使用 Markdown 而不是 HTML 来编写 Web 页面处理器中。在本文中,我不会对 Markdown 进行详细介绍,是 Markdown 格式的丰富内容的一个小示例。            
清单 1. Markdown 格式的丰富内容的示例
1
2
3
4
5
6
7
8
For immediate release. **Boulder, Colorado, 1 January 2012** The new year began
with a bang.... At city hall a local first nation elder was invited to offer
residents a greeting of *Heebee*, or "Hello" in Arapaho, and recorded for the
[city Web page](http://www.bouldercolorado.gov/). One resident said his New Year
resolutions were to:
* Lose weight
* Go camping for at least one week in the summer
* Pay off one credit card




Markdown 处理器(比如与 Hyde 绑定在一起的处理器)可以将此文本转换成 HTML,如所示。            
清单 2. 清单 1 中的 Markdown 内容的 HTML 输出
1
2
3
4
5
6
7
8
9
10
11
12
<p>For immediate release.
<strong>Boulder, Colorado, 1 January 2012</strong>
The new year began with a bang....</p>
<p>At city hall a local first nation elder was invited to offer residents
    a greeting of <em>Heebee</em>, or "Hello" in Arapaho, and recorded
    for the <a href="http://www.bouldercolorado.gov/">city Web page</a>.</p>
<p>One resident said his New Year resolutions were to:</p>
<ul>
    <li>Lose weight</li>
    <li>Go camping for at least one week in the summer</li>
    <li>Pay off one credit card</li>
</ul>




站点配置和 YAMLYAML Ain't Markup Language (YAML) 是一种语言,许多编程人员都喜欢用它来编写配置文件。使用 Hyde 构建的站点需要进行一些配置,例如,控制如何应用模板。Hyde 生成的默认 site.yaml 文件指定了一些插件,指示如何将一些本地文件目录转化成 Web 服务器路径,并提供关键页面的基本元数据。
模板和 Jinja2目前,大多数网站从某种程度上讲都可以从模板中受益。模板系统可帮助您将站点结构和页面的共同元素与每个页面的独立内容分隔开。通过阅读博客就会发现,有时候页面上超过一半的 HTML 内容都是样板复制的。模板使得您能够将 50% 的内容仅呈现一次,然后自动应用于所有页面。模板系统也可以支持智能特性,比如自动生成博客档案日历。
Hyde 使用了一种类似于流行 Django 框架的模板语言,是通过 Jinja2 项目实现的。每个模板看起来像是对模板命令使用额外的特殊语法的 HTML,下面会进一步探讨它们。模板位于 layout 目录下,您可以在那里添加或更新模板,从而操纵站点的整体内容大纲。
您的内容最重要的是您站点的内容,该内容可在同名目录下维护。每个 Web 页面对应一个文件。每个内容文件都从页面元数据开始,然后是页面 HTML 和模板代码。您还可以在该目录下找到支持站点的静态文件,比如图像、表单和脚本文件。
返回列表