2016-01-14 43 views
3

我一直在计划使用降价为很多网站的静态内容。为什么在Django 1.5+中不推荐使用markdown?

鉴于Python的降价模块,这很容易做到,但我注意到Django曾经有内置markdown支持,它在版本1.5中已被弃用。我认为这是一个很好的理由,如果这是一个坏主意,我自己也没有兴趣走自己的路。

在Django中贬低内置减价支持的原因是什么?这些原因仍然适用于在Django 1.9+中使用降价吗?

+3

我想你会发现你的答案是这些Django Dev列表的讨论:https://groups.google.com/d/msg/django-developers/kaW0z03TWvc/81mdKlRbfYMJ和https://groups.google.com/d/msg/django-developers/tRpwMudkCfo/xXWQNrpOUagJ – Waylan

+0

它仍然可以使用[markdown-deux](https://github.com/trentm/django-markdown-deux) – Sayse

+0

另请注意,它不只是Markdown支持已被删除。对所有轻量级标记语言的支持已被删除(Markdown,reStructuredText和Textile)。 – Waylan

回答

3

首先,它不仅仅是被删除的Markdown支持,而是被删除的contrib.markup库。该库包含Markdown,reStructeredText和Textile的模板过滤器。因此,声明所有轻量级标记语言过滤器都被删除会更准确。据我所知,这有多种原因:

  • 在那段时间,人们正在努力将许多“contrib”包分解为第三方应用程序。 contrib.markup就是这样一个包。一些普遍的原因是它们的特征对于框架的使用不是核心,它们测试不当,或者它们记录不完善等等。
  • 轻量级标记语言库是移动目标。由于它比Django小得多,它们可以在更短的发布周期内发布,并且Django需要很长时间才能“赶上”。然后每种语言都会处于不同的周期。更有意义的是,每种语言都有自己的第三方Django应用程序支持,该应用程序始终可以使用标记语言库“最新”。
  • “contrib”应用程序只提供模板过滤器。但是,在Django中还有其他支持标记语言的方法(数据库字段,表单字段等)。一些第三方库实际上包含了这些功能以获得更全面的支持。
  • 当不受信任的用户被允许将标记发布到您的网站时(如评论),有一些安全问题(主要是XSS)。虽然有些事情可以缓解这种担忧,但Django开发人员并不想承担额外的工作来保证安全的解决方案。请注意,只有受信任的经过身份验证的用户提供内容时才会出现此类问题(有关安全问题的解释,请参阅此article)。

来源:

相关问题