Skip to main content

DSL to HTML conversion

Project description

Description

A Python package to convert DSL into HTML, written in modern C++.

The part that parses DSL into a DOM tree comes from GoldenDict-ng, and I have made a number of changes:

  • Use 8-bit std::string throughout.
  • Use standard library equivalents of Qt classes/functions.
  • Use functional programming wherever appropriate.
  • Some tags are ignored. And some other adjustments.

The part that converts the DOM tree into HTML is written by me, under influence from both pyglossary and GoldenDict-ng. Any bug here is mine :)

Installation

pip install dsl2html

Building

python3 setup.py build

Needless to say, you should have the development package of Python installed. Nothing other than Python.h is needed. Your compiler should support C++11, though.

Usage

>>> import dsl
>>> dsl.to_html(''' [m0][b]com·mu·ta·tor[/b] [p]7[/p] {{id=000008943}} [c rosybrown]\[[/c][c darkslategray][b]commutator[/b][/c] [c darkslategray][b]commutators[/b][/c][c rosybrown]\][/c] [p]BrE[/p] [c darkgray] [/c][c darkcyan]\[ˈkɒmjuteɪtə(r)\][/c] [s]z_commutator__gb_1.wav[/s] [p]NAmE[/p] [c darkgray] [/c][c darkcyan]\[ˈkɑːmjuteɪtər\][/c] [s]z_commutator__us_1.wav[/s] [c orange] noun[/c] [c darkgray] ([/c][c green]physics[/c][c darkgray])[/c]
...  [m1][c darkmagenta][b]1.[/b][/c] {{d}}a device that connects a motor to the electricity supply{{/d}}
...  [m1][c darkmagenta][b]2.[/b][/c] {{d}}a device for changing the direction in which electricity flows{{/d}}''', 'test')
(' <div style="margin-left: 0px;"><b>com·mu·ta·tor</b> <i><font color="green">7</font></i>  <span style="color: rosybrown;">[</span><span style="color: darkslategray;"><b>commutator</b></span> <span style="color: darkslategray;"><b>commutators</b></span><span style="color: rosybrown;">]</span> <i><font color="green">BrE</font></i> <span style="color: darkgray;"> </span><span style="color: darkcyan;">[ˈkɒmjuteɪtə(r)]</span> <audio controls autoplay src="/api/cache/test/z_commutator__gb_1.wav">z_commutator__gb_1.wav</audio> <i><font color="green">NAmE</font></i> <span style="color: darkgray;"> </span><span style="color: darkcyan;">[ˈkɑːmjuteɪtər]</span> <audio controls src="/api/cache/test/z_commutator__us_1.wav">z_commutator__us_1.wav</audio> <span style="color: orange;"> noun</span> <span style="color: darkgray;"> (</span><span style="color: green;">physics</span><span style="color: darkgray;">)</span> </div><div style="margin-left: 9px;"><span style="color: darkmagenta;"><b>1.</b></span> a device that connects a motor to the electricity supply </div><div style="margin-left: 9px;"><span style="color: darkmagenta;"><b>2.</b></span> a device for changing the direction in which electricity flows</div>', ['z_commutator__gb_1.wav', 'z_commutator__us_1.wav'])

The module has only one function: to_html, which takes two arguments: the DSL string and the dictionary name, and returns a tuple of two elements: the HTML string and a list of media file names.

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

dsl2html-0.1.5.tar.gz (21.2 kB view hashes)

Uploaded Source

Built Distributions

dsl2html-0.1.5-cp312-cp312-win_amd64.whl (64.7 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

dsl2html-0.1.5-cp312-cp312-win32.whl (57.7 kB view hashes)

Uploaded CPython 3.12 Windows x86

dsl2html-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

dsl2html-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

dsl2html-0.1.5-cp312-cp312-macosx_11_0_arm64.whl (77.2 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

dsl2html-0.1.5-cp312-cp312-macosx_10_9_x86_64.whl (81.9 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

dsl2html-0.1.5-cp311-cp311-win_amd64.whl (64.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

dsl2html-0.1.5-cp311-cp311-win32.whl (57.6 kB view hashes)

Uploaded CPython 3.11 Windows x86

dsl2html-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

dsl2html-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

dsl2html-0.1.5-cp311-cp311-macosx_11_0_arm64.whl (77.2 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

dsl2html-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl (81.8 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

dsl2html-0.1.5-cp310-cp310-win_amd64.whl (64.7 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

dsl2html-0.1.5-cp310-cp310-win32.whl (57.6 kB view hashes)

Uploaded CPython 3.10 Windows x86

dsl2html-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

dsl2html-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

dsl2html-0.1.5-cp310-cp310-macosx_11_0_arm64.whl (77.2 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

dsl2html-0.1.5-cp310-cp310-macosx_10_9_x86_64.whl (81.8 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

dsl2html-0.1.5-cp39-cp39-win_amd64.whl (64.7 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

dsl2html-0.1.5-cp39-cp39-win32.whl (57.6 kB view hashes)

Uploaded CPython 3.9 Windows x86

dsl2html-0.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

dsl2html-0.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

dsl2html-0.1.5-cp39-cp39-macosx_11_0_arm64.whl (77.2 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

dsl2html-0.1.5-cp39-cp39-macosx_10_9_x86_64.whl (81.8 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

dsl2html-0.1.5-cp38-cp38-win_amd64.whl (64.7 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

dsl2html-0.1.5-cp38-cp38-win32.whl (57.6 kB view hashes)

Uploaded CPython 3.8 Windows x86

dsl2html-0.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

dsl2html-0.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

dsl2html-0.1.5-cp38-cp38-macosx_11_0_arm64.whl (77.2 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

dsl2html-0.1.5-cp38-cp38-macosx_10_9_x86_64.whl (81.8 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

dsl2html-0.1.5-cp37-cp37m-win_amd64.whl (64.7 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

dsl2html-0.1.5-cp37-cp37m-win32.whl (57.6 kB view hashes)

Uploaded CPython 3.7m Windows x86

dsl2html-0.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

dsl2html-0.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

dsl2html-0.1.5-cp37-cp37m-macosx_10_9_x86_64.whl (81.8 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page