Skip to main content

HTML to Markdown converter.

Project description

html2md

HTML to Markdown converter

Installation

pip install -U html2md

Usage

As a command line tool:

# To convert a file.
html2md examples/hello.html

# To convert from stdin.
cat examples/hello.html | html2md

From a Python script:

import html2md

html = '''
<h1>Header</h1>
<b><i>Hello</i></b> from <code>html2md</code>
<pre class="py"><code>
print('Hello')
</code></pre>
'''

md = html2md.convert(html)
print(md)

Contributing

Clone the repository

First, fork the project.

# Clone your fork into your local machine.
# This will create the `origin` remote pointing to your fork.
git clone git@github.com:<your-username>/html2md.git
cd html2md

# Add an `upstream` remote pointing to the original repository.
git remote add upstream git@github.com:davidcavazos/html2md.git

Setting up your environment

Make sure you have virtualenv installed.

pip install -U virtualenv

Create and activate a new virtualenv.

python -m virtualenv env
source env/bin/activate

Note: Once you are all done, you can deactivate it by running deactivate.

Install the requirements.

pip install -U -r requirements.txt

Modifying the code

First, make sure you're on the latest version.

git checkout master
git pull upstream master

Now, create a new branch for your changes. Try to use a short and descriptive name for your changes.

# Create a new branch and change to it.
git checkout -b your-branch

You can now modify whatever you want.

Running tests

Make sure you add tests for any new functionality or fix you do. If it's in a new file, append the *_test.py prefix to the file.

# To run all the tests.
python setup.py test

# To run a specific test suite.
# python setup.py test -s <package>.<test_file>.<TestSuite>
python setup.py test -s html2md.convert_test.ConvertTest

# To run a specific test.
# python setup.py test -s <package>.<test_file>.<TestSuite>.<test_name>
python setup.py test -s html2md.convert_test.ConvertTest.test_code_block

Creating a Pull Request

After all the tests pass, you'll have to create a "Pull Request" with your changes. You can create a single commit with all the changes.

Note: You can check your changes with git status.

# Create a commit and push it to your fork's branch.
git add .
git commit -m 'One line description of your changes'
git push origin your-branch

Then you can follow the link in your terminal, or navigate to html2md, to create a "Pull Request".

If you need to add further modifications, you'll have to:

git add .
git commit -m 'One line description of further changes'
git push origin your-branch

Afterwards, it will reflect automatically on the Pull Request.

Once everything is okay, it can be merged.

Publishing a new version

Make sure you have some more tools installed.

pip install -U twine

Change the version on setup.py. Then, generate the distribution archives.

# Make sure there are no previous builds.
rm -rf dist/

# Build the distribution package.
python setup.py sdist bdist_wheel

# Check any problems with the README.
twine check dist/*

Note: It is highly recommended to publish to TestPyPI before publishing to PyPI.

# To upload to TestPyI.
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

# To install from TestPyPI.
pip install --index-url https://test.pypi.org/simple/ --no-deps html2md

If everything is working correctly, go ahead and publish to PyPI.

To upload to PyPI.

twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

html2md-0.1.5.tar.gz (6.4 kB view hashes)

Uploaded source

Built Distribution

html2md-0.1.5-py3-none-any.whl (15.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page