checlou/flat-file-cms-bundle

为symfony Web应用添加基于Markdown文件的CMS的Bundle

dev-main 2023-11-17 17:19 UTC

This package is auto-updated.

Last update: 2024-09-17 19:18:51 UTC


README

用于在symfony应用中创建使用平面文件的CMS的symfony Bundle。

目的

为现有symfony应用中的CMS功能提供一个解决方案。

  • Markdown文件中的内容

快速安装

要求:使用composer安装一个基本的symfony应用。

symfony new my_project_directory --version="6.3.*"
composer require checlou/flat-file-cms-bundle

config/packages/checlou_flat_file_cms.yaml中设置配置

checlou_flat_file_cms:
  content_path: '%kernel.project_dir%/var/cms'

Tests/Functional/app/Website/cms中的文件复制到var/cms以创建一个基本的页面数据集。

主题化

默认主题是一个基本的bootstrap 4主题。您可以通过覆盖twig模板来覆盖它。

  • 编写文档说明如何覆盖twig模板

内容示例

文件

文件名:a-page.md

---
title: Page title
type: page
slug: a-page.html
---

Summary

===

Main content

两种不同类型的内容

  • 页面:具有标题、摘要和主要内容的页面
  • 帖子:具有标题、摘要和主要内容的帖子

默认值

  • 类型:页面
  • 别名:带.html扩展名和路径作为前缀的文件名
  • 标题:不带扩展名的文件名

按文件夹组织

content/
├── a-page.md
├── index.md
├── blog/
│   ├── a-post.md
│   └── another-post.md
│   └── a-category/
│       └── a-post.md

index.md文件是用于显示CMS主页的内容。您可以使用这种类型的文件创建具有如下别名的页面:

  • /home,在home/文件夹中有一个index.md文件

其他管理平面文件的方法

Pico CMS或Grav CMS

全功能的应用程序,用于管理使用平面文件的网站。但不能用于向现有应用添加CMS功能。请使用symfony组件。

Symfony Bundles

Twig markdown到html

扩展,用于在twig模板中将markdown转换为html。我们没有使用它。我们应该使用它吗?

https://twig.symfony.ac.cn/doc/3.x/filters/markdown_to_html.html

想法

待办事项

  • Page和Pages类的更多测试以及Twig扩展
  • 短代码系统
  • 通过配置和事件注入全局变量以在markdown中使用
  • 内容缓存,无需解析文件即可重建
  • 配置CMS,即使它在子文件夹中,也说明页面是独立的(没有父级)
    • 用例:一个具有独立页面的特定文件夹
  • 将Markdown文件的链接转换为页面的URL
    • 用例:使用markdown编辑器的自动完成功能链接到另一个页面
  • 命令,用于生成整个网站作为工件
    • 用例:使用GitHub Pages托管网站
  • 是否使用https://twig.symfony.ac.cn/doc/3.x/filters/markdown_to_html.html