Skip to main content

fa2svg

A small Python package that converts Font Awesome <i>/<span> tags into email‑friendly inline images. You can embed either raw SVG (to_inline_svg) or high‑density PNG (to_inline_png_img), preserving font‑size, color, aspect ratio, and baseline alignment. Includes a simple test script at tests/run_test.py to verify basic functionality.


Installation

pip install fa2svg

Or for local development:

git clone https://github.com/meena-erian/fa2svg.git
cd fa2svg
pip install -e .

Upload to PyPI

Ensure your .pypirc is configured, then:

# from project root
env/bin/python -m build
twine upload --config-file "./.pypirc" dist/*

Usage

from fa2svg.converter import to_inline_svg, to_inline_png_img

html = '''
  <p>
    Coffee time:
    <i class="fas fa-mug-saucer" style="font-size:64px;color:#c60"></i>
    and stars:
    <span class="far fa-star" style="font-size:48px;color:gold"></span>
  </p>
'''

# Embed as SVG data URI:
converted_svg = to_inline_svg(html)

# Embed as higher-resolution PNG data URI:
converted_png = to_inline_png_img(html)

print(converted_svg)
print(converted_png)

API

  • to_inline_svg(html: str) -> str

    Fetches the correct FA SVG, inlines your font-size and color, and outputs an <img> tag with a base64‑encoded SVG data URI, plus width, height, and vertical-align CSS.

  • to_inline_png_img(html: str) -> str

    Same as above but renders a PNG at higher pixel density (default 2×) for crisper images in clients with varying DPI.


Testing

A basic test harness is provided at tests/run_test.py:

python -m tests.run_test

Contributing

  1. Fork the repo
  2. Create a feature branch
  3. Commit & push your changes
  4. Open a Pull Request

Issues and PRs are very welcome!

Metadata

Release files for fa2svg 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fa2svg 0.1.10
File Size Uploaded
fa2svg-0.1.10.tar.gz 19.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fa2svg 0.1.10
File Interpreter ABI Platform
fa2svg-0.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 36.5 kB

Release files / fa2svg-0.1.10.tar.gz

Download URL fa2svg-0.1.10.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e78bdbd27c6ce735d124f6e8d63b14d3bf6242a2aec55c4e0e71db3661ddaa1c
BLAKE2b-256 checksum
How to use checksums
395d03f5cf7e098e319652193fb62d819c02a55d98ef5af8a9468fb3f9104c93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release files / fa2svg-0.1.10-py3-none-any.whl

Download URL fa2svg-0.1.10-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fb4e919f449a0036f637cc4b67a759092723adf25d569bc28816e64a9bbcac7e
BLAKE2b-256 checksum
How to use checksums
e706e785344fbdbd3c597527b733840336c910c92f2215a7c350d9f92ba1c896
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page