具有Markdown渲染功能的静态Web服务器
项目描述
Static Markdown
具有Markdown渲染功能的静态Web服务器。
它提供常规HTTP内容(HTML、JS、CSS、图片等),但当您浏览.md
、.mdown
或.markdown
文件时,它将转换为HTML并以(希望)可读的页面进行渲染。
重要警告
不建议在生产环境中使用此服务器。它是一个用于提供静态文件和Markdown内容的玩具,但对安全性、性能、可用性等没有保证。
安装
通过PyPI
使用pip安装此工具以从PyPI下载它。您可能更喜欢使用virtualenv,但也可能想要全局安装。
pip install static-markdown
pip install --user static-markdown
使用源代码
我们建议您使用virtualenv
安装此软件包。克隆此存储库,然后在您的virtualenv内部运行以下命令
pip install -e ./
用法
安装完成后,您只需将当前shell会话切换到指定目录并运行以下命令
cd /path/to/directory
serve-md
或者,您也可以从任何位置运行此命令行,但需要将目标路径作为命令参数设置
serve-md /path/to/directory
使用这些默认选项,您现在可以通过将浏览器指向以下地址来浏览您的“静态网站”: http://127.0.0.1:8080/。
使用Ctrl-C停止服务器。
选项
usage: serve-md [-h] [-p PORT] [--markdown-template MARKDOWN_TEMPLATE]
[--stylesheet STYLESHEET] [--version]
[root]
positional arguments:
root Path to serve statically
optional arguments:
-h, --help show this help message and exit
-p PORT, --port PORT Port number (0-65535)
--markdown-template MARKDOWN_TEMPLATE
Path to an alternate HTML template for Markdown files
--stylesheet STYLESHEET
Path to a custom stylesheet
--version Return version and exit
浏览
让我们考虑以下路径树
.
├── empty
├── images
│ └── knight.png
├── index.html
├── mdown
│ └── index.md
├── mdown-readme
│ └── README.md
└── subdir
└── index.html
以下表格描述了使用给定URL在浏览器中渲染的不同页面
URL | 内容 | 内容类型 | 状态码 |
---|---|---|---|
/ | index.html | text/html | 200 OK |
/empty | 目录列表 | text/html | 200 OK |
/images/knight.png | knight.png (二进制) | image/png | 200 OK |
/mdown/ | index.md (HTML格式) | text/html | 200 OK |
/mdown/index.md | index.md (HTML格式) | text/html | 200 OK |
/mdown-readme | README.md (HTML格式) | text/html | 200 OK |
/subdir | 重定向到 /subdir/ | - | 301 永久移动 |
/subdir/ | subdir/index.html | text/html | 200 OK |
索引
当浏览目录时,serve-md
会按照以下顺序查找以下文件:“index.html”、“index.htm”、“index.md”、“README.md”、“readme.md”。找到的第一个文件将作为目录的索引页面提供服务。
如果没有找到任何一个文件,serve-md
将返回目录列表。如果您正在使用“Markdown模板”功能,它将在渲染此页面时使用。
HTTP动词
实现了GET和HEAD动词。
POST、PUT、DELETE将返回405方法不允许错误。
Markdown模板
默认情况下,Markdown文件将使用最小化CSS渲染为HTML。使用--markdown-template
选项,您可以使用自定义CSS和自己的HTML模板来渲染生成text/html
。您可以在源代码库中的example-options
目录中找到各种示例。
我们使用了各种极简CSS框架来进行渲染和布局
自定义样式
如果您只需要自定义样式,而不是HTML页面的结构,您可以使用--stylesheet
选项来指向一个CSS文件。
示例
serve-md /path/to/directory --stylesheet ~/my-style.css
黑客
- 克隆此存储库。
- 编写测试。
- 实现功能。
- 打开一个拉取请求。
重要:每次您修改服务器代码的任何一行,如果您想实时测试您的补丁,您必须停止并重新启动应用程序。
运行自动化测试
在shell会话中,使用以下命令运行测试
make test