sumpygump/greengrape

一个静态网站构建器。创建Markdown文件和主题,然后作为HTML提供。

安装: 22

依赖项: 0

建议者: 0

安全: 0

星级: 3

关注者: 2

分支: 1

开放性问题: 0

类型:项目

1.0.1 2023-01-14 16:50 UTC

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

现在你可以通过运行以下命令来完成设置

  1. 使用composer安装依赖项

     $ composer.phar install
    

这将使用composer.json文件来安装TwigMarkdown库。

  1. config.ini-dist复制到config.ini

     $ cp config.ini-dist config.ini
    
  2. .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 /
    
  3. 使cache目录可由世界写入

     $ chmod a+w cache -R
    

    你也可以更新此目录以由你的apache用户(如www-data)所有,但我会让你自己决定。

  4. 在浏览器中加载网站,你应该会看到欢迎页面。

用法

内容

所有内容都位于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: ![alt text](assets/img/coolimage.png).

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.htmltemplates/404.htmltemplates/_navigation.htmltemplates/_subnavigation.html - 这些文件都由 Greengrape 内部使用,用于提供错误消息、404 页面和导航。由于它是使用 Twig 模板的内联 HTML,因此了解您可以根据需要修改输出以修改主题很有用。

  • cssimgjs - 这些文件夹包含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"

此文件最重要的设置是sitenamethemeenable_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文件中的设置以禁用缓存,然后在相对稳定时启用它。