Skip to main content

velocitous markup language to JSON parser

Project description

vml

velocitous markup language

(Totally not related with VML-SVG)
This is a JSON parser for a markup language, if you want to call it like that, that i found myself using while jolting notes in the fastest most velocitous, and laziest way that i could think of... It goes pretty much like this:

element 1
	things
		dog
		[x] snacks
			[ ] apple
			pear
		house
	names
		james
		alfred
[ ] element 2
	foo
	bar
	baz
foobar

That translates to this bulky JSON. You see, it makes JSON look bulky!!!

[
    {
        "element 1": [
            {
                "things": [
                    "dog",
                    {
                        "snacks": [
                            {
                                "apple": [],
                                "checked": false
                            },
                            "pear"
                        ],
                        "checked": true
                    },
                    "house"
                ]
            },
            {
                "names": [
                    "james",
                    "alfred"
                ]
            }
        ]
    },
    {
        "element 2": [
            "foo",
            "bar",
            "baz"
        ],
        "checked": false
    },
    "foobar"
]

vml uses tabs to differentiate the hierarchical level of the current line... i think you got what i mean. Plus, you can also add checkboxes to every line with "[ ]", and you can check it with "[x]", and all this translates to a "checked" property in the JSON representation. It's easy to write vml with vi, for example you might check an empty checkbox with rx and move around tabulations efficiently with >> or <<. In fact, this should really have been called tml, as in tab markup language, but unfortunately, that resembled too much TOML, dammit you Tom!!
Install this with pip3 install vml-parser.
import it with from vml_parser import vml, so you that you can access the vml.parse(s : list[str]) -> list[Element] method. A list of Elements gives you a middleware representation of what's in your vml. You might, vice versa, build up programmatically your list of Elements, and vml.dump(obj: list[Element]) -> list[str] for a later use. You now can also dump a list of JSON strings to a vml-formatted list of lines with vml.dumps(lines: list[str]) -> list[str].
You will also get the vml command line script for free! (it pairs neatly with the jq cli). You can pipe it to stdout or you can pass it any number of filenames for it to read, and with -d you can use the included JSON to vml dumper. Have fun with it laying crazy pipes like ... | vml | vml -d | vml | vml -d | ...!! Now there is also a -m or --markdown option to convert vml to markdown. When passing a single file, top level elements will be converted to a h1 header, and subelements to h2 headers. When passing multiple files, each file name will be a h1 header, where _ and - are replaced with . All other sub elements will be converted to list items, indented accordingly.

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

vml-parser-0.0.12.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vml_parser-0.0.12-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file vml-parser-0.0.12.tar.gz.

File metadata

  • Download URL: vml-parser-0.0.12.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for vml-parser-0.0.12.tar.gz
Algorithm Hash digest
SHA256 74d0e195eba5eb3d15f3656d09d61bb0232a5fc2bd91e33c37f9f51876de149f
MD5 2e6ff87f00c343d9cc9b26eef5178642
BLAKE2b-256 fb3f136eb6736c9e55b91755bae76f117b67a359b2548336ff4c412b096d304d

See more details on using hashes here.

File details

Details for the file vml_parser-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: vml_parser-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for vml_parser-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 2206c71223f41fe5e513772bd9e2192b272187ce6b449dd352fa1e3dfa138397
MD5 b3824bfb6f7c6540daf3eb50f7562d07
BLAKE2b-256 1278a1eae76ada5f0dff61d30afa6e9c46e6b7b84a5a5e5b5f4b1e2e011a54fb

See more details on using hashes here.

Supported by

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