dev-python/m2r: New package, dep of dev-python/automat

Package-Manager: Portage-2.3.5, Repoman-2.3.2_p30
This commit is contained in:
Brian Dolbec
2017-03-30 17:57:47 -07:00
parent 60dd05244a
commit e8d6dbf2b8
6 changed files with 598 additions and 0 deletions

1
dev-python/m2r/Manifest Normal file
View File

@@ -0,0 +1 @@
DIST m2r-0.1.5.tar.gz 13202 SHA256 3448f770aed05ca10390d0917cd51836cbf82a2f095bc91507e6291cfab03223 SHA512 78e9e8daa293b2466c95f0adad937fa0bbefaf0dd9663695bb916be13182633e0d462afa5331a595db424420485ef54bbfd4e0625962026fab4ce0c63104bc84 WHIRLPOOL c701aa0a735eda9b7eaab7ff6f384bad7535337f6a7adcfce2d729f33b01aed9213d04fcfe1dc3521b2df0687f2b849a3eb5df628a87ea3ea2697ae389ad8438

515
dev-python/m2r/files/m2r.1 Normal file
View File

@@ -0,0 +1,515 @@
.\" Man page generated from reStructuredText.
.
.TH "M2R" "1" "Mar 30, 2017" "0.1.5" "M2R"
.SH NAME
m2r \- M2R Documentation
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
\fI\%PyPI\fP\fI\%PyPI version\fP\fI\%Build Status\fP\fI\%codecov\fP
.sp
.ce
----
.ce 0
.sp
.sp
M2R converts a markdown file including reST markups to a valid reST format.
.SH WHY ANOTHER CONVERTER?
.sp
I wanted to write sphinx document in markdown, since it\(aqs widely used now and
easy to write code blocks and lists. However, converters using pandoc or
recommonmark do not support many reST markups and sphinx extensions. For
example, reST\(aqs reference link like \fBsee \(garef\(ga_\fP (this is very convenient in
long document in which same link appears multiple times) will be converted to
a code block in HTML like \fBsee <code>ref</code>_\fP, which is not expected.
.SH FEATURES
.INDENT 0.0
.IP \(bu 2
Basic markdown and some extensions (see below)
.INDENT 2.0
.IP \(bu 2
inline/block\-level raw html
.IP \(bu 2
fenced\-code block
.IP \(bu 2
tables
.IP \(bu 2
footnotes (\fB[^1]\fP)
.UNINDENT
.IP \(bu 2
Inline\- and Block\-level reST markups
.INDENT 2.0
.IP \(bu 2
single\- and multi\-line directives (\fB\&.. directive::\fP)
.IP \(bu 2
inline\-roles (\fB:code:\(gaprint(1)\(ga ...\fP)
.IP \(bu 2
ref\-link (\fBsee \(garef\(ga_\fP)
.IP \(bu 2
footnotes (\fB[#fn]_\fP)
.IP \(bu 2
math extension inspired by \fI\%recommonmark\fP
.UNINDENT
.IP \(bu 2
Sphinx extension
.INDENT 2.0
.IP \(bu 2
add markdown support for sphinx
.IP \(bu 2
\fBmdinclude\fP directive to include markdown from md or reST files
.UNINDENT
.UNINDENT
.SH INSTALLATION
.sp
Python 2.7 or Python 3.3+ is required.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pip install m2r
.ft P
.fi
.UNINDENT
.UNINDENT
.SH USAGE
.SS Command Line
.sp
\fBm2r\fP command converts markdown file to reST format.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
m2r your_document.md [your_document2.md ...]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Then you will find \fByour_document.rst\fP in the same directory.
.SS Programmatic Use
.sp
Instantiate \fBM2R\fP class and call with markdown text. Then it will return converted text.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
from m2r import M2R
m2r = M2R()
rest = m2r(\(aq# Title\en\enSentence.\(aq)
print(rest)
# Title
# =====
#
# Sentence.
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Or, use \fBparse_from_file\fP function to load markdown file and obtain converted text.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
from m2r import parse_from_file
output = parse_from_file(\(aqmarkdown_file.md\(aq)
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
This is an example of setup.py to write README in markdown, and publish it to PyPI as reST format.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
readme_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), \(aqREADME.md\(aq)
try:
from m2r import parse_from_file
readme = parse_from_file(readme_file)
except ImportError:
# m2r may not be installed in user environment
with open(readme_file) as f:
readme = f.read()
setup(
...,
long_description=readme,
...,
)
.ft P
.fi
.UNINDENT
.UNINDENT
.SS Sphinx Integration
.sp
In your conf.py, add the following lines.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
extensions = [
...,
\(aqm2r\(aq,
]
# source_suffix = \(aq.rst\(aq
source_suffix = [\(aq.rst\(aq, \(aq.md\(aq]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Write index.md and run \fBmake html\fP\&.
.sp
When \fBm2r\fP extension is enabled on sphinx and \fB\&.md\fP file is loaded, m2r
converts to reST and pass to sphinx, not making new \fB\&.rst\fP file.
.SS mdinclude directive
.sp
Like \fB\&.. include:: file\fP directive, \fB\&.. mdinclude:: file\fP directive inserts
markdown file at the line.
.sp
Note: do not use \fB\&.. include:: file\fP directive to include markdown file even if
in the markdown file, please use \fB\&.. mdinclude:: file\fP instead.
.SH RESTRICTIONS
.INDENT 0.0
.IP \(bu 2
In the reST\(aqs directives, markdown is not available. Please write in reST.
.IP \(bu 2
Column alignment of tables is not supported. (reST does not support this feature)
.IP \(bu 2
Heading with overline\-and\-underline is not supported.
.INDENT 2.0
.IP \(bu 2
Heading with underline is OK
.UNINDENT
.UNINDENT
.sp
If you find any bug or unexpected behaviour, please report it to
\fI\%Issues\fP\&.
.SH EXAMPLE
.sp
See \fI\%example document\fP and \fI\%its
source code\fP\&.
.sp
I\(aqm using m2r for writing user guide of \fI\%WDOM\fP\&.
So you can see it as another example. Its \fI\%HTML is
here\fP, and \fI\%its
source code is here\fP\&.
.SH ACKNOWLEDGEMENT
.sp
m2r is written as an extension of
\fI\%mistune\fP, which is highly extensible
pure\-python markdown parser.
Without the mistune, I couldn\(aqt write this. Thank you!
.SH LICENCE
.sp
\fI\%MIT\fP
.SH CONTENTS
.SS Example
.sp
This page is written in mixed markdown and reST.
Source code is \fI\%here\fP\&.
.SS Basic Markups (inline)
.sp
A \fBstrong\fP, \fIemphasis\fP, , \fBcode with single\-backtick\fP,
\fBcode with two\-backticks\fP, ,
\fBreST\(aqs code role\fP, and delete.
.SS Link
.sp
Auto link to \fI\%http://example.com/\fP\&.
.sp
Link to \fI\%example.com\fP in markdown.
.sp
Link to \fI\%example.com\fP in reST.
.sp
Link to \fI\%example\fP in reST_ref.
.SS Basic Markups (block)
.sp
This is a simple sentence.
.nf
sentence with
newlines
(reST)
.fi
.sp
.sp
Sentence with
hard\-wrap (markdown, trailing two spaces)
.INDENT 0.0
.INDENT 3.5
block quote
second line
.INDENT 0.0
.INDENT 3.5
nested quote
.UNINDENT
.UNINDENT
.UNINDENT
.UNINDENT
.sp
.ce
----
.ce 0
.sp
.INDENT 0.0
.INDENT 3.5
Block quote after raw\-html directive
.UNINDENT
.UNINDENT
.SS List
.SS Unordered list
.INDENT 0.0
.IP \(bu 2
unordered list
new line
.IP \(bu 2
next item
.INDENT 2.0
.IP \(bu 2
nested list
with new line
.IP \(bu 2
nested list item 2
.UNINDENT
.IP \(bu 2
original depth
.INDENT 2.0
.IP 1. 3
ordered list item
.IP 2. 3
second
with new line
.UNINDENT
.IP \(bu 2
original depth again
.UNINDENT
.SS Ordered list
.INDENT 0.0
.IP 1. 3
ordered list
in new line
.IP 2. 3
second item
.INDENT 3.0
.IP \(bu 2
nested unordered list
.IP \(bu 2
second item
with new line
.UNINDENT
.IP 3. 3
original depth
.INDENT 3.0
.IP 1. 3
nested ordered list
with new line
.IP 2. 3
again
.UNINDENT
.IP 4. 3
original depth again
.UNINDENT
.SS Code Block
.sp
Simple, indented code block
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pip install sphinx
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Code block with triple backticks and language.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
def a(n: int) \-> None:
for i in range(n):
print(i)
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Triple\-tildes (\fB~~~\fP) are also available.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
def a(n: int) \-> None:
for i in range(n):
print(i)
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Here is reST style code block.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
if True:
print(\(aq\en\(aq)
.ft P
.fi
.UNINDENT
.UNINDENT
.SS Extensions
.SS Table (Markdown\-Style)
.sp
(cell\-alignment is not supported currently)
.TS
center;
|l|l|l|.
_
T{
Table Header 1
T} T{
Table Header 2
T} T{
Table Header 3
T}
_
T{
normal
T} T{
\fIitalic\fP
T} T{
\fBbold\fP
T}
_
T{
\fBcode\fP
T} T{
T} T{
T}
_
.TE
.SS Math
.sp
This is E = mc^2 inline math.
.sp
The below is math\-block (markdown\-style).
.sp
.ce
.ce 0
.sp
The below is reST\-style math\-block.
.sp
.ce
.ce 0
.SS Footnote
.sp
Footnote[2] and footnote[3] with markdown.
.sp
Footnote with reST[1]\&.
.sp
.IP [1] 5
reST footnote
.IP [2] 5
footnote 1
.IP [3] 5
footnote key
.SS Change Log
.SS Version 0.2
.sp
(next version)
.SS Version 0.1.5 (2016\-06\-21)
.INDENT 0.0
.IP \(bu 2
Support multiple backticks in inline code, like:
.UNINDENT
.SS Version 0.1.4 (2016\-06\-08)
.INDENT 0.0
.IP \(bu 2
Support indented directives/reST\-comments
.IP \(bu 2
Support role\-name after backticks (\fB\(gatext\(ga:role: style\fP)
.UNINDENT
.SS Version 0.1.3 (2016\-06\-02)
.INDENT 0.0
.IP \(bu 2
Remove extra escaped\-spaces (\(aq\(aq)
.INDENT 2.0
.IP \(bu 2
before and after normal spaces
.IP \(bu 2
at the beginning of lines
.IP \(bu 2
before dots
.UNINDENT
.UNINDENT
.SS Version 0.1.2 (2016\-06\-01)
.INDENT 0.0
.IP \(bu 2
Add reST\(aqs \fB::\fP marker support
.IP \(bu 2
Add options to disable emphasis by underscore (\fB_\fP or \fB__\fP)
.UNINDENT
.SS Version 0.1.1 (2016\-05\-30)
.INDENT 0.0
.IP \(bu 2
Fix Bug: when code or link is placed at the end of line, spaces to the next word is disappeared
.UNINDENT
.SS Version 0.1 (2016\-05\-30)
.sp
First public release.
.INDENT 0.0
.IP \(bu 2
genindex
.IP \(bu 2
modindex
.IP \(bu 2
search
.UNINDENT
.SH AUTHOR
Hiroyuki Takagi
.SH COPYRIGHT
2016, Hiroyuki Takagi
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,5 @@
# Title
## SubTitle
__content__

View File

@@ -0,0 +1,8 @@
Title
=====
SubTitle
--------
**content**

View File

@@ -0,0 +1,50 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy)
inherit distutils-r1
DESCRIPTION="Markdown to reStructuredText converter"
HOMEPAGE="https://github.com/miyakogi/m2r https://pypi.python.org/pypi/m2r"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
RDEPEND="
dev-python/mistune[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
"
DEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
test? ( $(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7) )
${RDEPEND}
"
#S=${WORKDIR}/${P}
python_prepare_all() {
# fix a Q/A violation, trying to install the tests as an independant package
sed -e "s/packages=\['tests'\],/packages=[],/" -i setup.py
# remove duped old file in the tarball
rm "tests/test_r s.py" || die
# add missing test files
cp "${FILESDIR}/"test.md tests/ || die
cp "${FILESDIR}/"test.rst tests/ || die
cp "${FILESDIR}/"m2r.1 ./ || die
matt
distutils-r1_python_prepare_all
}
python_test() {
py.test -v || die "Tests failed with ${EPYTHON}"
}
python_install_all() {
distutils-r1_python_install_all
doman m2r.1
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>dolsen@gentoo.org</email>
<description>Primary maintainer</description>
</maintainer>
<upstream>
<maintainer>
<email>miyako.dev@gmail.com</email>
<name>Hiroyuki Takagi</name>
</maintainer>
<remote-id type="pypi">m2r</remote-id>
<remote-id type="github">miyakogi/m2r</remote-id>
</upstream>
<longdescription>
M2R converts a markdown file including reST markups to a valid reST format.
</longdescription>
</pkgmetadata>