基于yaml语法文件的flatpages
yamlpage的Python项目详细描述
安装
pip install yamlpage
用法
>>> import os >>> from yamlpage import YamlPage, SingleFolderBackend, MultiFolderBackend >>> p = YamlPage('./content')
放置页面
>>> url = '/my/url' >>> p.put(url, ( ... ('title', 'foo'), ... ('body|md', '- foo\n- bar'), ... ))>>> path = './content/^my^url.yaml' >>> content = open(path).read() >>> print(content) title: foo body|md: |- - foo - bar <BLANKLINE>
获取页面
>>> p.get(url) == {'body|md': '- foo\n- bar', 'title': 'foo'} True>>> p.get('/not/found/') is None True
检查页面是否存在
>>> p.exists(url) True >>> p.exists('/not/found/') False
内置后端
singleFolderbackend(默认)将“my/url”映射到文件名“my^url.yaml”
>>> p = YamlPage('./content') >>> p.put('single/folder/backend', 'data') >>> os.path.exists('./content/single^folder^backend.yaml') True
多文件夹包将“my/url”映射到文件名“my/url.yaml”
>>> p = YamlPage('./content', backend=MultiFolderBackend) >>> p.put('multi/folder/backend', 'data') >>> os.path.exists('./content/multi/folder/backend.yaml') True
过滤器
您可以自动将筛选器应用于特定页字段。 作为一个例子,我们将body标记为html。
>>> import misaka >>> p = YamlPage('./content', filters={"md": misaka.html}) >>> p.get(url)["body"] == '<ul>\n<li>foo</li>\n<li>bar</li>\n</ul>\n' True