Have the same README both in Markdown and reStructuredText

后端 未结 8 1260
旧时难觅i
旧时难觅i 2020-12-22 16:29

I have a project hosted on GitHub. For this I have written my README using the Markdown syntax in order to have it nicely formatted on GitHub.

As my project is in Py

相关标签:
8条回答
  • 2020-12-22 16:41

    2019 Update

    The PyPI Warehouse now supports rendering Markdown as well! You just need to update your package configuration and add the long_description_content_type='text/markdown' to it. e.g.:

    setup(
        name='an_example_package',
        # other arguments omitted
        long_description=long_description,
        long_description_content_type='text/markdown'
    )
    

    Therefore, there is no need to keep the README in two formats any longer.

    You can find more information about it in the documentation.

    Old answer:

    The Markup library used by GitHub supports reStructuredText. This means you can write a README.rst file.

    They even support syntax specific color highlighting using the code and code-block directives (Example)

    0 讨论(0)
  • 2020-12-22 16:43

    PyPI now supports Markdown for long descriptions!

    In setup.py, set long_description to a Markdown string, add long_description_content_type="text/markdown" and make sure you're using recent tooling (setuptools 38.6.0+, twine 1.11+).

    See Dustin Ingram's blog post for more details.

    0 讨论(0)
  • 2020-12-22 16:46

    I would recommend Pandoc, the "swiss-army knife for converting files from one markup format into another" (check out the diagram of supported conversions at the bottom of the page, it is quite impressive). Pandoc allows markdown to reStructuredText translation directly. There is also an online editor here which lets you try it out, so you could simply use the online editor to convert your README files.

    0 讨论(0)
  • 2020-12-22 16:51

    You might also be interested in the fact that it is possible to write in a common subset so that your document comes out the same way when rendered as markdown or rendered as reStructuredText: https://gist.github.com/dupuy/1855764 ☺

    0 讨论(0)
  • 2020-12-22 16:51

    Using the pandoc tool suggested by others I created a md2rst utility to create the rst files. Even though this solution means you have both an md and an rst it seemed to be the least invasive and would allow for whatever future markdown support is added. I prefer it over altering setup.py and maybe you would as well:

    #!/usr/bin/env python
    
    '''
    Recursively and destructively creates a .rst file for all Markdown
    files in the target directory and below.
    
    Created to deal with PyPa without changing anything in setup based on
    the idea that getting proper Markdown support later is worth waiting
    for rather than forcing a pandoc dependency in sample packages and such.
    
    Vote for
    (https://bitbucket.org/pypa/pypi/issue/148/support-markdown-for-readmes)
    
    '''
    
    import sys, os, re
    
    markdown_sufs = ('.md','.markdown','.mkd')
    markdown_regx = '\.(md|markdown|mkd)$'
    
    target = '.'
    if len(sys.argv) >= 2: target = sys.argv[1]
    
    md_files = []
    for root, dirnames, filenames in os.walk(target):
        for name in filenames:
            if name.endswith(markdown_sufs):
                md_files.append(os.path.join(root, name))
    
    for md in md_files:
        bare = re.sub(markdown_regx,'',md)
        cmd='pandoc --from=markdown --to=rst "{}" -o "{}.rst"'
        print(cmd.format(md,bare))
        os.system(cmd.format(md,bare))
    
    0 讨论(0)
  • 2020-12-22 16:59

    For my requirements I didn't want to install Pandoc in my computer. I used docverter. Docverter is a document conversion server with an HTTP interface using Pandoc for this.

    import requests
    r = requests.post(url='http://c.docverter.com/convert',
                      data={'to':'rst','from':'markdown'},
                      files={'input_files[]':open('README.md','rb')})
    if r.ok:
        print r.content
    
    0 讨论(0)
提交回复
热议问题