%global _empty_manifest_terminate_build 0
Name: python-django-markdown-deux
Version: 1.0.5
Release: 1
Summary: a Django app that provides template tags for using Markdown (using the python-markdown2 processor)
License: MIT
URL: http://github.com/trentm/django-markdown-deux
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/80/a5/d61ee6fc26cbb0d737986ed23e13309c88f2ae7f1fcdf2460a525323a3ed/django-markdown-deux-1.0.5.zip
BuildArch: noarch
%description
A small Django app that provides template tags for using
[Markdown](http://daringfireball.net/projects/markdown/) using the
[python-markdown2](https://github.com/trentm/python-markdown2) library.
# What's with the "deux" in the name?
The obvious name for this project is `django-markdown2`. However, there
[already is one!](http://github.com/svetlyak40wt/django-markdown2) and name
confusion doesn't help anybody. Plus, I took French immersion in school for 12
years: might as well put it to use.
# So why another project then?
Because I wanted to do something slightly different. Django-markdown2's
`markdown` filter takes
["extras"](https://github.com/trentm/python-markdown2/wiki/Extras) as arguments
-- with the one exception that "safe" is transformed to python-markdown2's
`safe_mode` argument. This is handy for quick usage. My use case is more
commonly: lots of `markdown` filter and block usage in my Django templates with
the same set of python-markdown2 options.
# Installation
Choose the *one* of the following that works best for you:
- Install the latest release from PyPI:
pip install django-markdown-deux
or, if you use [ActivePython](http://www.activestate.com/activepython):
pypm install django-markdown-deux
These should install the dependent `python-markdown2` package.
- Get a git clone of the source tree:
git clone git://github.com/trentm/django-markdown-deux.git
You might want a particular tag:
cd django-markdown-deux
git tag -l # list available tags
git checkout $tagname
Then you'll need the "lib" subdir on your PYTHONPATH:
python setup.py install # or 'export PYTHONPATH=`pwd`/lib:$PYTHONPATH'
You'll also need the [python-markdown2
library](https://github.com/trentm/python-markdown2):
git clone git@github.com:trentm/python-markdown2.git
cd python-markdown2
python setup.py install # or 'export PYTHONPATH=`pwd`/python-markdown2/lib'
# Django project setup
1. Add `markdown_deux` to `INSTALLED_APPS` in your project's "settings.py".
2. Optionally set some of the `MARKDOWN_DEUX_*` settings. See the "Settings"
section below.
# Usage
The `markdown_deux` facilities typically take an optional "style" argument. This
is a name for a set of options to the `python-markdown2` processor. There is
a "default" style that is used if no argument is given. See the
`MARKDOWN_DEUX_STYLES` setting below for more.
## `markdown` template filter
{% load markdown_deux_tags %}
...
{{ myvar|markdown:"STYLE" }} {# convert `myvar` to HTML using the "STYLE" style #}
{{ myvar|markdown }} {# same as `{{ myvar|markdown:"default"}}` #}
## `markdown` template block tag
{% load markdown_deux_tags %}
...
{% markdown STYLE %} {# can omit "STYLE" to use the "default" style #}
This is some **cool**
[Markdown](http://daringfireball.net/projects/markdown/)
text here.
{% endmarkdown %}
## `markdown_allowed` template tag
In a template:
{% markdown_allowed %}
will emit a short HTML blurb that says Markdown syntax is allowed. This can be
handy for placing under form elements that accept markdown syntax. You can also
use it as the `help_text` for a form field something like:
# myapp/forms.py
from markdown_deux.templatetags.markdown_deux_tags import markdown_allowed
class MyForm(forms.Form):
#...
description = forms.CharField(
label="Description (required)",
widget=forms.Textarea(attrs={"rows": 5}),
help_text=_secondary_span("A brief description of your thing.
"
+ markdown_allowed()),
required=True)
## `markdown_cheatsheet` tag
{% markdown_cheatsheet %}
This outputs HTML giving a narrow (appropriate for, e.g., a sidebar) listing of
some of the more common Markdown features.
## `markdown_deux.markdown(TEXT, STYLE)` in your Python code
The `markdown` filter and block tags above ultimately use this
`markdown_deux.markdown(...)` function. You might find it useful to do Markdown
processing in your Python code (e.g. in a view, in a model `.save()` method).
# Settings
All settings for this app are optional.
## `MARKDOWN_DEUX_STYLES` setting
A mapping of style name to a dict of keyword arguments for python-markdown2's
`markdown2.markdown(text, **kwargs)`. For example the default setting is
effectively:
MARKDOWN_DEUX_STYLES = {
"default": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
},
}
I.e. only the "default" style is defined and it just uses the [code-friendly
extra](https://github.com/trentm/python-markdown2/wiki/code-friendly) and escapes
raw HTML in the given Markdown (for safety).
Here is how you might add styles of your own, and preserve the default style:
# settings.py
from markdown_deux.conf.settings import MARKDOWN_DEUX_DEFAULT_STYLE
MARKDOWN_DEUX_STYLES = {
"default": MARKDOWN_DEUX_DEFAULT_STYLE,
"trusted": {
"extras": {
"code-friendly": None,
},
# Allow raw HTML (WARNING: don't use this for user-generated
# Markdown for your site!).
"safe_mode": False,
}
# Here is what http://code.activestate.com/recipes/ currently uses.
"recipe": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
"link_patterns": [
# Transform "Recipe 123" in a link.
(re.compile(r"recipe\s+#?(\d+)\b", re.I),
r"http://code.activestate.com/recipes/\1/"),
],
"extras": {
"code-friendly": None,
"pyshell": None,
"demote-headers": 3,
"link-patterns": None,
# `class` attribute put on `pre` tags to enable using
# for syntax
# highlighting.
"html-classes": {"pre": "prettyprint"},
"cuddled-lists": None,
"footnotes": None,
"header-ids": None,
},
"safe_mode": "escape",
}
}
## `MARKDOWN_DEUX_HELP_URL` setting
A URL for to which to link for full markdown syntax default. This link is
only in the output of the `markdown_allowed` and `markdown_cheatsheet`
template tags.
The default is , the
canonical Markdown syntax reference. However, if your site uses Markdown with
specific tweaks, you may prefer to have your own override. For example,
[ActiveState Code](http://code.activestate.com) uses:
MARKDOWN_DEUX_HELP_URL = "/help/markdown/"
To link to [its own Markdown syntax notes
URL](http://code.activestate.com/help/markdown/).
%package -n python3-django-markdown-deux
Summary: a Django app that provides template tags for using Markdown (using the python-markdown2 processor)
Provides: python-django-markdown-deux
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-django-markdown-deux
A small Django app that provides template tags for using
[Markdown](http://daringfireball.net/projects/markdown/) using the
[python-markdown2](https://github.com/trentm/python-markdown2) library.
# What's with the "deux" in the name?
The obvious name for this project is `django-markdown2`. However, there
[already is one!](http://github.com/svetlyak40wt/django-markdown2) and name
confusion doesn't help anybody. Plus, I took French immersion in school for 12
years: might as well put it to use.
# So why another project then?
Because I wanted to do something slightly different. Django-markdown2's
`markdown` filter takes
["extras"](https://github.com/trentm/python-markdown2/wiki/Extras) as arguments
-- with the one exception that "safe" is transformed to python-markdown2's
`safe_mode` argument. This is handy for quick usage. My use case is more
commonly: lots of `markdown` filter and block usage in my Django templates with
the same set of python-markdown2 options.
# Installation
Choose the *one* of the following that works best for you:
- Install the latest release from PyPI:
pip install django-markdown-deux
or, if you use [ActivePython](http://www.activestate.com/activepython):
pypm install django-markdown-deux
These should install the dependent `python-markdown2` package.
- Get a git clone of the source tree:
git clone git://github.com/trentm/django-markdown-deux.git
You might want a particular tag:
cd django-markdown-deux
git tag -l # list available tags
git checkout $tagname
Then you'll need the "lib" subdir on your PYTHONPATH:
python setup.py install # or 'export PYTHONPATH=`pwd`/lib:$PYTHONPATH'
You'll also need the [python-markdown2
library](https://github.com/trentm/python-markdown2):
git clone git@github.com:trentm/python-markdown2.git
cd python-markdown2
python setup.py install # or 'export PYTHONPATH=`pwd`/python-markdown2/lib'
# Django project setup
1. Add `markdown_deux` to `INSTALLED_APPS` in your project's "settings.py".
2. Optionally set some of the `MARKDOWN_DEUX_*` settings. See the "Settings"
section below.
# Usage
The `markdown_deux` facilities typically take an optional "style" argument. This
is a name for a set of options to the `python-markdown2` processor. There is
a "default" style that is used if no argument is given. See the
`MARKDOWN_DEUX_STYLES` setting below for more.
## `markdown` template filter
{% load markdown_deux_tags %}
...
{{ myvar|markdown:"STYLE" }} {# convert `myvar` to HTML using the "STYLE" style #}
{{ myvar|markdown }} {# same as `{{ myvar|markdown:"default"}}` #}
## `markdown` template block tag
{% load markdown_deux_tags %}
...
{% markdown STYLE %} {# can omit "STYLE" to use the "default" style #}
This is some **cool**
[Markdown](http://daringfireball.net/projects/markdown/)
text here.
{% endmarkdown %}
## `markdown_allowed` template tag
In a template:
{% markdown_allowed %}
will emit a short HTML blurb that says Markdown syntax is allowed. This can be
handy for placing under form elements that accept markdown syntax. You can also
use it as the `help_text` for a form field something like:
# myapp/forms.py
from markdown_deux.templatetags.markdown_deux_tags import markdown_allowed
class MyForm(forms.Form):
#...
description = forms.CharField(
label="Description (required)",
widget=forms.Textarea(attrs={"rows": 5}),
help_text=_secondary_span("A brief description of your thing.
"
+ markdown_allowed()),
required=True)
## `markdown_cheatsheet` tag
{% markdown_cheatsheet %}
This outputs HTML giving a narrow (appropriate for, e.g., a sidebar) listing of
some of the more common Markdown features.
## `markdown_deux.markdown(TEXT, STYLE)` in your Python code
The `markdown` filter and block tags above ultimately use this
`markdown_deux.markdown(...)` function. You might find it useful to do Markdown
processing in your Python code (e.g. in a view, in a model `.save()` method).
# Settings
All settings for this app are optional.
## `MARKDOWN_DEUX_STYLES` setting
A mapping of style name to a dict of keyword arguments for python-markdown2's
`markdown2.markdown(text, **kwargs)`. For example the default setting is
effectively:
MARKDOWN_DEUX_STYLES = {
"default": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
},
}
I.e. only the "default" style is defined and it just uses the [code-friendly
extra](https://github.com/trentm/python-markdown2/wiki/code-friendly) and escapes
raw HTML in the given Markdown (for safety).
Here is how you might add styles of your own, and preserve the default style:
# settings.py
from markdown_deux.conf.settings import MARKDOWN_DEUX_DEFAULT_STYLE
MARKDOWN_DEUX_STYLES = {
"default": MARKDOWN_DEUX_DEFAULT_STYLE,
"trusted": {
"extras": {
"code-friendly": None,
},
# Allow raw HTML (WARNING: don't use this for user-generated
# Markdown for your site!).
"safe_mode": False,
}
# Here is what http://code.activestate.com/recipes/ currently uses.
"recipe": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
"link_patterns": [
# Transform "Recipe 123" in a link.
(re.compile(r"recipe\s+#?(\d+)\b", re.I),
r"http://code.activestate.com/recipes/\1/"),
],
"extras": {
"code-friendly": None,
"pyshell": None,
"demote-headers": 3,
"link-patterns": None,
# `class` attribute put on `pre` tags to enable using
# for syntax
# highlighting.
"html-classes": {"pre": "prettyprint"},
"cuddled-lists": None,
"footnotes": None,
"header-ids": None,
},
"safe_mode": "escape",
}
}
## `MARKDOWN_DEUX_HELP_URL` setting
A URL for to which to link for full markdown syntax default. This link is
only in the output of the `markdown_allowed` and `markdown_cheatsheet`
template tags.
The default is , the
canonical Markdown syntax reference. However, if your site uses Markdown with
specific tweaks, you may prefer to have your own override. For example,
[ActiveState Code](http://code.activestate.com) uses:
MARKDOWN_DEUX_HELP_URL = "/help/markdown/"
To link to [its own Markdown syntax notes
URL](http://code.activestate.com/help/markdown/).
%package help
Summary: Development documents and examples for django-markdown-deux
Provides: python3-django-markdown-deux-doc
%description help
A small Django app that provides template tags for using
[Markdown](http://daringfireball.net/projects/markdown/) using the
[python-markdown2](https://github.com/trentm/python-markdown2) library.
# What's with the "deux" in the name?
The obvious name for this project is `django-markdown2`. However, there
[already is one!](http://github.com/svetlyak40wt/django-markdown2) and name
confusion doesn't help anybody. Plus, I took French immersion in school for 12
years: might as well put it to use.
# So why another project then?
Because I wanted to do something slightly different. Django-markdown2's
`markdown` filter takes
["extras"](https://github.com/trentm/python-markdown2/wiki/Extras) as arguments
-- with the one exception that "safe" is transformed to python-markdown2's
`safe_mode` argument. This is handy for quick usage. My use case is more
commonly: lots of `markdown` filter and block usage in my Django templates with
the same set of python-markdown2 options.
# Installation
Choose the *one* of the following that works best for you:
- Install the latest release from PyPI:
pip install django-markdown-deux
or, if you use [ActivePython](http://www.activestate.com/activepython):
pypm install django-markdown-deux
These should install the dependent `python-markdown2` package.
- Get a git clone of the source tree:
git clone git://github.com/trentm/django-markdown-deux.git
You might want a particular tag:
cd django-markdown-deux
git tag -l # list available tags
git checkout $tagname
Then you'll need the "lib" subdir on your PYTHONPATH:
python setup.py install # or 'export PYTHONPATH=`pwd`/lib:$PYTHONPATH'
You'll also need the [python-markdown2
library](https://github.com/trentm/python-markdown2):
git clone git@github.com:trentm/python-markdown2.git
cd python-markdown2
python setup.py install # or 'export PYTHONPATH=`pwd`/python-markdown2/lib'
# Django project setup
1. Add `markdown_deux` to `INSTALLED_APPS` in your project's "settings.py".
2. Optionally set some of the `MARKDOWN_DEUX_*` settings. See the "Settings"
section below.
# Usage
The `markdown_deux` facilities typically take an optional "style" argument. This
is a name for a set of options to the `python-markdown2` processor. There is
a "default" style that is used if no argument is given. See the
`MARKDOWN_DEUX_STYLES` setting below for more.
## `markdown` template filter
{% load markdown_deux_tags %}
...
{{ myvar|markdown:"STYLE" }} {# convert `myvar` to HTML using the "STYLE" style #}
{{ myvar|markdown }} {# same as `{{ myvar|markdown:"default"}}` #}
## `markdown` template block tag
{% load markdown_deux_tags %}
...
{% markdown STYLE %} {# can omit "STYLE" to use the "default" style #}
This is some **cool**
[Markdown](http://daringfireball.net/projects/markdown/)
text here.
{% endmarkdown %}
## `markdown_allowed` template tag
In a template:
{% markdown_allowed %}
will emit a short HTML blurb that says Markdown syntax is allowed. This can be
handy for placing under form elements that accept markdown syntax. You can also
use it as the `help_text` for a form field something like:
# myapp/forms.py
from markdown_deux.templatetags.markdown_deux_tags import markdown_allowed
class MyForm(forms.Form):
#...
description = forms.CharField(
label="Description (required)",
widget=forms.Textarea(attrs={"rows": 5}),
help_text=_secondary_span("A brief description of your thing.
"
+ markdown_allowed()),
required=True)
## `markdown_cheatsheet` tag
{% markdown_cheatsheet %}
This outputs HTML giving a narrow (appropriate for, e.g., a sidebar) listing of
some of the more common Markdown features.
## `markdown_deux.markdown(TEXT, STYLE)` in your Python code
The `markdown` filter and block tags above ultimately use this
`markdown_deux.markdown(...)` function. You might find it useful to do Markdown
processing in your Python code (e.g. in a view, in a model `.save()` method).
# Settings
All settings for this app are optional.
## `MARKDOWN_DEUX_STYLES` setting
A mapping of style name to a dict of keyword arguments for python-markdown2's
`markdown2.markdown(text, **kwargs)`. For example the default setting is
effectively:
MARKDOWN_DEUX_STYLES = {
"default": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
},
}
I.e. only the "default" style is defined and it just uses the [code-friendly
extra](https://github.com/trentm/python-markdown2/wiki/code-friendly) and escapes
raw HTML in the given Markdown (for safety).
Here is how you might add styles of your own, and preserve the default style:
# settings.py
from markdown_deux.conf.settings import MARKDOWN_DEUX_DEFAULT_STYLE
MARKDOWN_DEUX_STYLES = {
"default": MARKDOWN_DEUX_DEFAULT_STYLE,
"trusted": {
"extras": {
"code-friendly": None,
},
# Allow raw HTML (WARNING: don't use this for user-generated
# Markdown for your site!).
"safe_mode": False,
}
# Here is what http://code.activestate.com/recipes/ currently uses.
"recipe": {
"extras": {
"code-friendly": None,
},
"safe_mode": "escape",
"link_patterns": [
# Transform "Recipe 123" in a link.
(re.compile(r"recipe\s+#?(\d+)\b", re.I),
r"http://code.activestate.com/recipes/\1/"),
],
"extras": {
"code-friendly": None,
"pyshell": None,
"demote-headers": 3,
"link-patterns": None,
# `class` attribute put on `pre` tags to enable using
# for syntax
# highlighting.
"html-classes": {"pre": "prettyprint"},
"cuddled-lists": None,
"footnotes": None,
"header-ids": None,
},
"safe_mode": "escape",
}
}
## `MARKDOWN_DEUX_HELP_URL` setting
A URL for to which to link for full markdown syntax default. This link is
only in the output of the `markdown_allowed` and `markdown_cheatsheet`
template tags.
The default is , the
canonical Markdown syntax reference. However, if your site uses Markdown with
specific tweaks, you may prefer to have your own override. For example,
[ActiveState Code](http://code.activestate.com) uses:
MARKDOWN_DEUX_HELP_URL = "/help/markdown/"
To link to [its own Markdown syntax notes
URL](http://code.activestate.com/help/markdown/).
%prep
%autosetup -n django-markdown-deux-1.0.5
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-django-markdown-deux -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Sun Apr 23 2023 Python_Bot - 1.0.5-1
- Package Spec generated