不成啊这个google抓不到我data,做的太动态的话。
本来应该在github.io上面做的,但是那边被react的blog半成品占着。
所以一下午寻思寻思写个python的静态部署好了,虽然肯定没有自定义模版或者别的啥了。
但好歹这是静态的不是,总归容易索引了。
大部分是通过GPT写出来的。
配置文件是这样的,固定文件名为同文件夹下的blog.yaml
directories:
- dir: "." # 文件夹,不包含子文件夹的
tags: ["main"] # 这个文件夹分类的tag
index: "main" # 主页用的tag,主要是/tag/[tag]-0.html的copy
tags:
- "main" # 显示在头部的tag
dist: "./bulletin" # 编译到这个目录
如果要改更多的话大概要用react框架比较好了。
def convert(self, source: str) -> str:
"""
将 Markdown 字符串转换为指定输出格式的字符串。
参数:
source: 以 Unicode 或 ASCII 字符串格式的 Markdown 文本。
返回:
指定输出格式的字符串。
Markdown 解析分为五个步骤:
1. 一些 [`preprocessors`][markdown.preprocessors] 对输入文本进行处理。
2. 一个 [`BlockParser`][markdown.blockparser.BlockParser] 将预处理文本的高级结构元素解析为一个 [`ElementTree`][xml.etree.ElementTree.ElementTree] 对象。
3. 一些 [`treeprocessors`][markdown.treeprocessors] 在 [`ElementTree`][xml.etree.ElementTree.ElementTree] 对象上运行。一个这样的 `treeprocessor`([`markdown.treeprocessors.InlineProcessor`][])对 [`ElementTree`][xml.etree.ElementTree.ElementTree] 对象运行 [`inlinepatterns`][markdown.inlinepatterns],解析行内标记。
4. 一些 [`postprocessors`][markdown.postprocessors] 在 [`ElementTree`][xml.etree.ElementTree.ElementTree] 对象被序列化为文本后运行。
5. 输出作为字符串返回。
"""
# 修正源文本
if not source.strip():
return '' # 一个空的 Unicode 字符串
try:
source = str(source)
except UnicodeDecodeError as e: # pragma: no cover
# 自定义错误消息,同时保持原始 traceback
e.reason += '. -- 注意:Markdown 只接受 Unicode 输入!'
raise
# 按行分割并运行行预处理器。
self.lines = source.split("\n")
for prep in self.preprocessors:
self.lines = prep.run(self.lines)
# 解析高级元素。
root = self.parser.parseDocument(self.lines).getroot()
# 运行树处理器
for treeprocessor in self.treeprocessors:
newRoot = treeprocessor.run(root)
if newRoot is not None:
root = newRoot
# 正确序列化。去掉顶层标签。
output = self.serializer(root)
if self.stripTopLevelTags:
try:
start = output.index(
'<%s>' % self.doc_tag) + len(self.doc_tag) + 2
end = output.rindex('</%s>' % self.doc_tag)
output = output[start:end].strip()
except ValueError as e: # pragma: no cover
if output.strip().endswith('<%s />' % self.doc_tag):
# 我们有一个空文档
output = ''
else:
# 我们遇到了严重的问题
raise ValueError('Markdown 无法去掉顶层 '
'标签。文档=%r' % output.strip()) from e
# 运行文本后处理器
for pp in self.postprocessors:
output = pp.run(output)
return output.strip()
registerExtensions ext.extendMarkdown(self)
新建一个print看看都有些什么。