跳转到主要内容

作为Django视图提供.md页面。

项目描述

https://travis-ci.org/rgs258/django-markdown-view.svg?branch=master https://coveralls.io/repos/github/rgs258/django-markdown-view/badge.svg?branch=master

作为Django视图提供.md页面。

此软件包旨在使在Django网站上提供.md文件变得简单。

安装

  1. 使用 pip install django-markdown-view 进行安装。

  2. 'markdown_view' 添加到您的 INSTALLED_APPS 设置中。

    INSTALLED_APPS = [
        ...,
        'markdown_view',
        ...
    ]
  3. (可选) 将 MARKDOWN_VIEW_BASE_DIRBASE_DIR 添加到设置中

    应用程序基础字典。参见下文设置

    例如,如果设置在 config/settings/base.py 中,那么

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

使用方法

视图

markdown_view.views 中使用 MarkdownViewLoggedInMarkdownViewStaffMarkdownView 之一来服务 .md 文件

from markdown_view.views import StaffMarkdownView

path('readme/',
    StaffMarkdownView.as_view(file_name='my_app/README.md'),
    name="readme"),

设置

所有设置都是可选的。有关默认值,请参阅 markdown_view/constants.py

  • MARKDOWN_VIEW_BASE_DIRBASE_DIR

    当存在时,该值被视为 Django 的 django.template.utils.get_app_template_dirs 在传递 dirname="" 时返回的目录列表的附加位置。这用于在项目的根目录中定位 .md 文件,例如 README.md 文件。如果找不到 MARKDOWN_VIEW_BASE_DIR,则查找 BASE_DIR

  • MARKDOWN_VIEW_LOADERS

    定位 .md 文件的加载器列表。默认列表仅包括 markdown_view.loaders.MarkdownLoader,它将默认尝试从 INSTALLED_APPS 包的根目录加载 .md 文件,这与 Django 的 django.template.loaders.app_directories.Loader 从“templates”加载的方式大致相同。

  • MARKDOWN_VIEW_LOADER_TEMPLATES_DIR

    在 INSTALLED_APPS 包中查找 .md 文件的目录名称。默认为“”,以便在根目录中查找 .md 文件。

  • MARKDOWN_VIEW_EXTENSIONS

    要启用的扩展。以下扩展默认启用

    • toc:

      生成目录。如果从扩展中删除 toc,则必须将 MARKDOWN_VIEW_TEMPLATE_USE_TOC 设置为 False。

    • tables:

      启用表格。

    • fenced_code:

      启用代码块。如果从扩展中删除 fenced_code,则可以禁用提供代码块高亮的 MARKDOWN_VIEW_TEMPLATE_USE_HIGHLIGHT_JS

    • markdown_view.markdown_extensions.ImageExtension:

      使图片在 bootstrap4 中响应式。

    有关更多扩展,请参阅 https://python-markdown.github.io/extensions/https://github.com/Python-Markdown/markdown/wiki/Third-Party-Extensions

    您可以通过遵循 https://github.com/Python-Markdown/markdown/wiki/Tutorial-1—Writing-Extensions-for-Python-Markdown 创建自己的扩展

  • MARKDOWN_VIEW_TEMPLATE

    将用于将 Markdown 生成的 HTML 渲染的 Django 模板。设置自己的模板以设置您的页面样式。上下文包括

    • markdown_content:

      从 Markdown 生成的 HTML。

    • use_highlight_js:

      如果启用了 highlight.js。

    • use_toc:

      如果应该渲染目录。

    • markdown_toc:

      Markdown 标题的目录。当 use_toc 为 False 时未设置。

    • page_title:

      对页面标题的猜测,目前它是 TOC 的第一行。当 use_toc 为 False 时未设置。

  • MARKDOWN_VIEW_TEMPLATE_USE_TOC

    是否渲染目录。如果为 false,在模板上下文中,use_toc 为 False,且 markdown_tocpage_title 不存在。

  • MARKDOWN_VIEW_TEMPLATE_USE_HIGHLIGHT_JS

    是否在模板中加载和激活 highlight.js 库。

实验设置

  • MARKDOWN_VIEW_USE_REQUEST_CONTEXT

    如果请求上下文应作为创建内部渲染 Markdown 的上下文的基础时使用。这是因为 Markdown 首次渲染,以便在前面添加 {% load static %}。这没有经过很好的测试;请自行尝试。

  • MARKDOWN_VIEW_EXTRA_CONTEXT

    要发送到 Markdown 内部渲染的任何额外上下文。可用于将上下文暴露给嵌入在 Markdown 中的模板标记。这没有经过很好的测试;请自行尝试。

实现

在较高层次上,MarkdownView

  1. 使用模板加载器定位 file_name 给出的 .md

  2. 以模板形式渲染,将 .md 文件的 内容与 {% load static %} 预加到几个上下文变量中

  3. 使用上下文变量服务 MARKDOWN_VIEW_TEMPLATE

发行说明和贡献者

贡献

所有贡献都十分受欢迎。建议、问题、错误和增强功能通过 GitHub 问题 跟踪,补丁通过 拉取请求 提交。

我们使用 Travis 结合 Coveralls 作为持续集成工具。

需求

我们期望支持目前支持的 Django 版本。

“已测试与”部分描述了期望目标。

已测试与

  • Python: 3.6, 3.7, 3.8, 3.9, 3.10

  • Django: 2.2, 3.2, 4.0

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

django-markdown-view-0.0.5.tar.gz (9.8 kB 查看哈希)

上传时间

构建分布

django_markdown_view-0.0.5-py2.py3-none-any.whl (9.9 kB 查看哈希)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面