Twig Markdown 扩展项目教程
markdown-extension[DEPRECATED] Markdown support for Twig 项目地址:https://gitcode.com/gh_mirrors/ma/markdown-extension
1. 项目的目录结构及介绍
twigphp/markdown-extension/
├── src/
│ ├── Extension/
│ │ └── MarkdownExtension.php
│ ├── Node/
│ │ └── MarkdownNode.php
│ ├── TokenParser/
│ │ └── MarkdownTokenParser.php
│ └── Twig/
│ └── Markdown/
│ └── MarkdownInterface.php
│ └── MarkdownRuntime.php
│ └── MarkdownRuntimeLoader.php
│ └── MarkdownSimple.php
│ └── MarkdownExtra.php
├── tests/
│ ├── IntegrationTest.php
│ └── UnitTest.php
├── .gitignore
├── composer.json
├── LICENSE
├── README.md
└── twig.php
src/
: 包含项目的核心源代码。Extension/
: 包含扩展类MarkdownExtension.php
。Node/
: 包含节点类MarkdownNode.php
。TokenParser/
: 包含令牌解析器类MarkdownTokenParser.php
。Twig/Markdown/
: 包含与 Markdown 解析相关的接口和类。
tests/
: 包含项目的测试文件。.gitignore
: Git 忽略文件。composer.json
: Composer 配置文件。LICENSE
: 项目许可证。README.md
: 项目说明文档。twig.php
: 项目启动文件。
2. 项目的启动文件介绍
twig.php
是项目的启动文件,负责初始化 Twig 环境和加载 Markdown 扩展。以下是文件的主要内容:
require_once __DIR__ . '/vendor/autoload.php';
use TwigEnvironment;
use TwigLoaderFilesystemLoader;
use TwigExtensionMarkdownExtension;
use TwigExtraMarkdownDefaultMarkdown;
use TwigExtraMarkdownMarkdownRuntime;
use TwigRuntimeLoaderRuntimeLoaderInterface;
$loader = new FilesystemLoader(__DIR__ . '/templates');
$twig = new Environment($loader);
$twig->addExtension(new MarkdownExtension());
$twig->addRuntimeLoader(new class implements RuntimeLoaderInterface {
public function load($class) {
if (MarkdownRuntime::class === $class) {
return new MarkdownRuntime(new DefaultMarkdown());
}
}
});
echo $twig->render('index.html.twig', [
'content' => '## Hello World'
]);
- 引入 Composer 自动加载文件。
- 初始化 Twig 环境并加载模板目录。
- 添加 Markdown 扩展。
- 添加 Markdown 运行时加载器。
- 渲染模板并输出内容。
3. 项目的配置文件介绍
composer.json
是项目的配置文件,定义了项目的依赖、脚本和其他元数据。以下是文件的主要内容:
{
"name": "twigphp/markdown-extension",
"type": "library",
"description": "Markdown extension for Twig",
"keywords": ["twig", "markdown"],
"license": "MIT",
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"require": {
"php": "^7.2.5 || ^8.0",
"twig/twig": "^3.0",
"twig/extra-bundle": "^3.0"
},
"autoload": {
"psr-4": {
"Twig\Extra\Markdown\": "src/"
}
},
"require-dev": {
"phpunit/phpunit": "^9.0"
},
"scripts": {
"test": "phpunit"
}
}
name
: 项目名称。type
: 项目类型。description
: 项目描述。keywords
: 项目关键词。license
: 项目许可证。authors
: 项目作者。require
: 项目依赖。autoload
: 自动加载
markdown-extension[DEPRECATED] Markdown support for Twig 项目地址:https://gitcode.com/gh_mirrors/ma/markdown-extension