summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Dolbec <dolsen@gentoo.org>2017-03-30 17:57:47 -0700
committerBrian Dolbec <dolsen@gentoo.org>2017-03-31 14:08:51 -0700
commite8d6dbf2b8657c9e5f695c4e663b6d862ed46e87 (patch)
tree8f3c729dfaedba9dc1c3e39ac3ab02f591b43ec7 /dev-python/m2r
parentsys-fs/btrfs-progs: bump up to 4.10.2 (diff)
downloadgentoo-e8d6dbf2b8657c9e5f695c4e663b6d862ed46e87.tar.gz
gentoo-e8d6dbf2b8657c9e5f695c4e663b6d862ed46e87.tar.bz2
gentoo-e8d6dbf2b8657c9e5f695c4e663b6d862ed46e87.zip
dev-python/m2r: New package, dep of dev-python/automat
Package-Manager: Portage-2.3.5, Repoman-2.3.2_p30
Diffstat (limited to 'dev-python/m2r')
-rw-r--r--dev-python/m2r/Manifest1
-rw-r--r--dev-python/m2r/files/m2r.1515
-rw-r--r--dev-python/m2r/files/test.md5
-rw-r--r--dev-python/m2r/files/test.rst8
-rw-r--r--dev-python/m2r/m2r-0.1.5.ebuild50
-rw-r--r--dev-python/m2r/metadata.xml19
6 files changed, 598 insertions, 0 deletions
diff --git a/dev-python/m2r/Manifest b/dev-python/m2r/Manifest
new file mode 100644
index 000000000000..721b61b97fc7
--- /dev/null
+++ b/dev-python/m2r/Manifest
@@ -0,0 +1 @@
+DIST m2r-0.1.5.tar.gz 13202 SHA256 3448f770aed05ca10390d0917cd51836cbf82a2f095bc91507e6291cfab03223 SHA512 78e9e8daa293b2466c95f0adad937fa0bbefaf0dd9663695bb916be13182633e0d462afa5331a595db424420485ef54bbfd4e0625962026fab4ce0c63104bc84 WHIRLPOOL c701aa0a735eda9b7eaab7ff6f384bad7535337f6a7adcfce2d729f33b01aed9213d04fcfe1dc3521b2df0687f2b849a3eb5df628a87ea3ea2697ae389ad8438
diff --git a/dev-python/m2r/files/m2r.1 b/dev-python/m2r/files/m2r.1
new file mode 100644
index 000000000000..1a6c10b48a90
--- /dev/null
+++ b/dev-python/m2r/files/m2r.1
@@ -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.
+.
diff --git a/dev-python/m2r/files/test.md b/dev-python/m2r/files/test.md
new file mode 100644
index 000000000000..e54ac950e527
--- /dev/null
+++ b/dev-python/m2r/files/test.md
@@ -0,0 +1,5 @@
+# Title
+
+## SubTitle
+
+__content__
diff --git a/dev-python/m2r/files/test.rst b/dev-python/m2r/files/test.rst
new file mode 100644
index 000000000000..f45558879567
--- /dev/null
+++ b/dev-python/m2r/files/test.rst
@@ -0,0 +1,8 @@
+
+Title
+=====
+
+SubTitle
+--------
+
+**content**
diff --git a/dev-python/m2r/m2r-0.1.5.ebuild b/dev-python/m2r/m2r-0.1.5.ebuild
new file mode 100644
index 000000000000..04da2c374106
--- /dev/null
+++ b/dev-python/m2r/m2r-0.1.5.ebuild
@@ -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
+}
diff --git a/dev-python/m2r/metadata.xml b/dev-python/m2r/metadata.xml
new file mode 100644
index 000000000000..c560383e607f
--- /dev/null
+++ b/dev-python/m2r/metadata.xml
@@ -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>