Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
1c8b40fb
Commit
1c8b40fb
authored
Dec 15, 2011
by
Marko Tibold
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/alazaro/django-rest-framework
into alazaro-master
parents
c1858a2a
4a605751
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
37 deletions
+6
-37
djangorestframework/compat.py
+3
-34
djangorestframework/tests/description.py
+3
-3
No files found.
djangorestframework/compat.py
View file @
1c8b40fb
...
...
@@ -374,48 +374,17 @@ else:
# Markdown is optional
try
:
import
markdown
import
re
class
CustomSetextHeaderProcessor
(
markdown
.
blockprocessors
.
BlockProcessor
):
"""
Override `markdown`'s :class:`SetextHeaderProcessor`, so that ==== headers are <h2> and ---- headers are <h3>.
We use <h1> for the resource name.
"""
# Detect Setext-style header. Must be first 2 lines of block.
RE
=
re
.
compile
(
r'^.*?\n[=-]{3,}'
,
re
.
MULTILINE
)
def
test
(
self
,
parent
,
block
):
return
bool
(
self
.
RE
.
match
(
block
))
def
run
(
self
,
parent
,
blocks
):
lines
=
blocks
.
pop
(
0
)
.
split
(
'
\n
'
)
# Determine level. ``=`` is 1 and ``-`` is 2.
if
lines
[
1
]
.
startswith
(
'='
):
level
=
2
else
:
level
=
3
h
=
markdown
.
etree
.
SubElement
(
parent
,
'h
%
d'
%
level
)
h
.
text
=
lines
[
0
]
.
strip
()
if
len
(
lines
)
>
2
:
# Block contains additional lines. Add to master blocks for later.
blocks
.
insert
(
0
,
'
\n
'
.
join
(
lines
[
2
:]))
def
apply_markdown
(
text
):
"""
Simple wrapper around :func:`markdown.markdown` to
apply our :class:`CustomSetextHeaderProcessor`,
and also set the base level
of '#' style headers to <h2>.
Simple wrapper around :func:`markdown.markdown` to
set the base level
of '#' style headers to <h2>.
"""
extensions
=
[
'headerid(level=2)'
]
safe_mode
=
False
,
output_format
=
markdown
.
DEFAULT_OUTPUT_FORMAT
md
=
markdown
.
Markdown
(
extensions
=
markdown
.
load_extensions
(
extensions
),
safe_mode
=
safe_mode
,
output_format
=
output_format
)
md
.
parser
.
blockprocessors
[
'setextheader'
]
=
CustomSetextHeaderProcessor
(
md
.
parser
)
md
=
markdown
.
Markdown
(
extensions
=
extensions
,
safe_mode
=
safe_mode
)
return
md
.
convert
(
text
)
except
ImportError
:
...
...
djangorestframework/tests/description.py
View file @
1c8b40fb
...
...
@@ -20,16 +20,16 @@ indented
# hash style header #"""
# If markdown is installed we also test it's working (and that our wrapped forces '=' to h2 and '-' to h3)
MARKED_DOWN
=
"""<h2>an example docstring</h2>
MARKED_DOWN
=
"""<h2
id="an-example-docstring"
>an example docstring</h2>
<ul>
<li>list</li>
<li>list</li>
</ul>
<h3>another header</h3>
<h3
id="another-header"
>another header</h3>
<pre><code>code block
</code></pre>
<p>indented</p>
<h2 id="hash
_style_
header">hash style header</h2>"""
<h2 id="hash
-style-
header">hash style header</h2>"""
class
TestViewNamesAndDescriptions
(
TestCase
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment