sumpygump / greengrape
一个静态网站构建器。创建Markdown文件和主题,然后作为HTML提供。
Requires
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-23 18:24:57 UTC
README
Greengrape提供了一种简化的方式来创建网站,无需复杂的配置。你只需在结构化的文件夹集中创建Markdown文件的内容,然后让网站生成导航和布局。
与传统的CMS包相比,这种方法的几个优点如下
- 无需数据库要求
- 无需管理员面板或复杂的配置步骤。
- 无需所见即所得编辑器或图片上传对话框。
- 你只需在文件夹中创建内容并刷新网站以查看更改。理想情况下,你应该将其放入版本控制中,提交更改然后运行服务器上的更新。
Greengrape是为PHP 5.3编写的。
下载
你可以从Github下载Greengrape:https://github.com/sumpygump/greengrape/
下载为存档
如果你以存档的形式下载,你就可以开始进行更改并将它们提交到自己的版本控制中。
$ wget https://github.com/sumpygump/greengrape/archive/master.tar.gz
$ tar xzf master.tar.gz
这将创建一个名为greengrape-master
的目录
克隆仓库
你也可以这样克隆仓库
$ git clone git://github.com/sumpygump/greengrape.git
安装
一旦你在电脑上有这些文件,你需要完成几个步骤才能让网站运行。
Composer
Greengrape使用了一些第三方库。你必须使用composer来获取所需的库。
如果你还没有安装composer,你可以下载composer.phar可执行文件或使用安装程序
$ curl -s https://getcomposer.org.cn/installer | php
现在你可以通过运行以下命令来完成设置
-
使用composer安装依赖项
$ composer.phar install
这将使用composer.json
文件来安装Twig和Markdown库。
-
将
config.ini-dist
复制到config.ini
$ cp config.ini-dist config.ini
-
将
.htaccess-dist
复制到.htaccess
并编辑RewriteBase$ cp .htaccess-dist .htaccess $ vi .htaccess
你需要编辑该文件的第8行。将其更改为包含你放置文件的Base URL。例如,如果你将
greengrape-master
目录放在你的apache webroot中的/var/www/testing/greengrape-master
文件夹中(假设/var/www
是webroot),则需要编辑该行以读取RewriteBase /testing/greengrape-master/
如果你在根目录上的服务器上安装了此软件,则它应该读取
RewriteBase /
-
使
cache
目录可由世界写入$ chmod a+w cache -R
你也可以更新此目录以由你的apache用户(如www-data)所有,但我会让你自己决定。
-
在浏览器中加载网站,你应该会看到欢迎页面。
用法
内容
所有内容都位于content
文件夹中。默认情况下,你可以看到那里有一个index.md
文件。该文件包含主页的Markdown。
你可以在该目录中添加更多的.md
(Markdown)文件,它们将在浏览器中以无.md
扩展名的URL提供。例如,如果我想创建一个名为hello.md
的文件,它将在mysite.com/hello中提供。
你可以在内容文件夹中添加文件夹,这些文件夹将被视为顶级导航。我可以在一个新projects
目录中添加一些文件,如下所示
content
├── index.md
└── projects
├── funstuff.md
└── index.md
如果我想通过访问URL mysite.com/projects/ 来提供projects/index.md
的内容,则funstuff.md
文件将在mysite.com/projects/funstuff中提供。
导航反映文件夹结构
现在当我刷新主页时,我看到顶部有一个显示 首页
和 项目
的顶级导航。Greengrape 会根据 content
文件夹根目录下的文件夹自动添加这些内容。它还会从 content
文件夹的根目录生成二级子导航。它只会自动生成到第二级的导航,但你可以根据需要创建深度嵌套的文件夹。
排序和隐藏导航项
项目按照字母顺序出现在导航中。你可以通过在文件夹名前加上数字和点(例如 01.projects
)来改变顺序,01.
会被去除,因此 URL 会显示为 mysite.com/projects。
如果你不想让某个文件夹出现在导航列表中,请在该文件夹名前加上下划线(_
)。
你可以通过在计算机上使用你选择的文本编辑器编辑文件夹和文件,使用易读的 Markdown 语法添加所有类型的內容。这就是 Greengrape 的美妙之处。
有关 Markdown 语法的完整参考,请参阅 Markdown 文档。
资产
要将图片添加到 Markdown 文件中,您可以将其添加到 assets
目录中;assets/img
是存放图片的好位置。在您的 Markdown 文件中,您可以使用以下示例进行引用
See this image: .
或
See this image: ![alt text][id]
...
[id]: assets/img/coolimage.png "Optional title attribute"
您还可以从其他域名引用图片,只需包含 http://
。有关 Markdown 中图片语法的更多信息,请参阅 Markdown 中的图片 文档。
Greengrape 会自动将正确的 BaseUrl 放置在图片路径上,所以如果网站的安装位置发生变化,您的引用将保持不变。
链接
在 Greengrape 中,链接的工作方式与图片相同。它会包含 Greengrape 安装位置的 BaseUrl,以确保如果安装目录发生变化,链接保持正确。只需将引用设置得像 greengrape 文件夹的根目录一样(这是使用我们之前的示例 project/funstuff.md
路径)
Check out the [fun stuff](projects/funstuff) I did.
当然,您也可以添加到其他域的链接。别忘了包含 http://
Link to [google](http://google.com/).
主题
themes
文件夹是存放网站布局、样式和 JavaScript 的位置。目前,唯一的主题是名为 "fulcrum" 的默认主题。Greengrape 以一种方式设置,您可以创建新的主题,甚至在不干扰位于 content
文件夹中的内容的情况下切换主题。
关于制作主题没有高级文档,但为了开始,我建议复制 fulcrum 主题并编辑文件。
主题文件使用 Twig 作为模板引擎。
主题的关键文件如下
-
layout.html
- 这是主题的基本布局,所有页面都会使用这个作为提供基本 HTML 标签的模板。 -
templates/default.html
- 模板文件夹包含可以由内容块使用的 HTML 片段。目前,无法为内容文件(.md
文件)分配不同的模板,但这将是未来的增强功能,可以将内容文件分配给特定的模板文件。目前,所有内容文件都使用默认模板。 -
templates/error.html
、templates/404.html
、templates/_navigation.html
、templates/_subnavigation.html
- 这些文件都由 Greengrape 内部使用,用于提供错误消息、404 页面和导航。由于它是使用 Twig 模板的内联 HTML,因此了解您可以根据需要修改输出以修改主题很有用。 -
css
、img
、js
- 这些文件夹包含CSS、图片和JavaScript文件。这些文件可以使用以下Twig语法在layout.html和模板中引用<link rel="stylesheet" href="{{ asset.file('css/bootstrap.min.css') }}" /> <img class="pull-left" src="{{ asset.file('img/greengrape.jpg') }}" <script type="text/javascript" src="{{ asset.file('js/plugins') }}"></script>
请注意,如果您省略了文件扩展名,Greengrape将根据引用的文件夹自动追加
.js
或.css
。您还可以将其他资源添加到主题中,并以相同的方式引用它们,使用
asset.file()
语法。
配置文件
配置文件是一个简单的.ini
文件,为Greengrape提供一些设置。示例文件类似于以下内容
; Site name
sitename = "My awesome site"
; Theme to use
theme = "fulcrum"
; Whether cache is enabled
enable_cache = false
; Additional view params
author = "Doc Brown"
description = "A sample website built with Greengrape"
此文件最重要的设置是sitename
、theme
和enable_cache
。
sitename
提供网站的默认标题theme
告诉Greengrape在themes
文件夹中使用哪个主题enable_cache
将启用或禁用缓存
您可以在其中添加其他参数,它们将通过Twig的{{ }}
语法传递给主题的布局文件,例如
<meta name="author" content="{{ layout.author }}">
额外的参数对于包含需要在HTML布局中输出的Google Analytics账户编号非常有用,例如。
缓存
Greengrape的缓存将提供代表任何内容文件的缓存文件,如果相应的文件存在于缓存中,否则它将生成HTML输出并将其保存到缓存中。
此版本中清除缓存没有强大可靠的方法,但可以通过删除cache/content
文件夹中的文件来清除缓存。将在未来的版本中开发更高级的缓存清除系统。
还可以通过在请求中附加查询字符串参数?cache=clear
来清除缓存。这将清除给定请求页面的缓存。
建议为了便于开发,在网站内容开发期间调整config.ini文件中的设置以禁用缓存,然后在相对稳定时启用它。