Skip to main content

Document description language that allows embedded Python to describe document structure

Project description

turnip_text

This is a WIP language that aims to address two gripes I have with LaTeX:

  1. The LaTeX macro engine is horrible to work and program with
  2. LaTeX typesetting output is heavily dependent on how content is laid out in the LaTeX source file
    • i.e. a lack of separation between content and formatting

Key features include:

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Project Structure

Based on the recommended structure from [github.com/PyO3/maturin].

FAQs

Why output LaTeX source code?

Because LaTeX is still in many cases the lingua franca of scientific papers, it is unreasonable to expect to replace it. The TeX typesetting engine is also still great for laying out raw text, and I have no intention of reinventing that wheel. My problem with LaTeX is that it's finnicky, not that it produces bad output. With all this in mind, I'd like this language to create idiomatic LaTeX source files that can then be adjusted manually and passed on to journals.

Why output source code for other text languages, e.g. Markdown?

Recently I had to convert my masters thesis to plain text for a contest submission. I used Pandoc, which is an excellent piece of software, but I ran into issues. First, the LaTeX to Markdown conversion was extremely messy, with Pandoc-specific {:: ::} blocks strewn throughout the code to retain as much information as possible. After cleaning that up I decided to work in Markdown rather than LaTeX, and use Pandoc to convert to plain text and handle footnotes and citations. This was mostly fine, until I realized I wanted to publish the summary on my blog as well.

My blog uses Jekyll and GitHub Pages so it can't handle all of Pandoc's markdown features, particularly citations. I was hoping to get Pandoc to take my Markdown, resolve the footnotes and citations, add a ToC, add section numbering, and save that output to Markdown again. To my knowledge, this is impossible - I ended up having to Pandoc to raw HTML. I would like my language to use the same front-end syntax and output to plain, everything-can-read-it Markdown, plain text, and perhaps more.

Why not use Markdown instead?

I'm not against using Pandoc for some conversions, e.g. I'd be happy to have my language create Markdown which Pandoc turns into HTML, but Markdown isn't a suitable replacement language for LaTeX by itself. Pandoc extensions can make it theoretically possible for Markdown to represent the same documents as LaTeX, but it's too cumbersome to work with directly imo.

Why replace LaTeX macros with Python?

While the LaTeX macro engine is horrible to work with, it is still useful to embed a programming language into text. This allows for e.g. smart citations and collecting TODO messages and notes. The annoyance of LaTeX is that I spend more time figuring out the macro language than I do figuring out any code. With that in mind, I'd like the language to allow embedding a proper programming language like Python or Lua (see notes/code_syntax.md for notes on which languages to embed).

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

turnip_text-0.0.3.tar.gz (74.5 kB view details)

Uploaded Source

Built Distributions

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

turnip_text-0.0.3-cp38-abi3-win_amd64.whl (217.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

turnip_text-0.0.3-cp38-abi3-win32.whl (208.3 kB view details)

Uploaded CPython 3.8+Windows x86

turnip_text-0.0.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

turnip_text-0.0.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

turnip_text-0.0.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

turnip_text-0.0.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

turnip_text-0.0.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

turnip_text-0.0.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

turnip_text-0.0.3-cp38-abi3-macosx_11_0_arm64.whl (345.9 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

turnip_text-0.0.3-cp38-abi3-macosx_10_7_x86_64.whl (354.4 kB view details)

Uploaded CPython 3.8+macOS 10.7+ x86-64

File details

Details for the file turnip_text-0.0.3.tar.gz.

File metadata

  • Download URL: turnip_text-0.0.3.tar.gz
  • Upload date:
  • Size: 74.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.1.0

File hashes

Hashes for turnip_text-0.0.3.tar.gz
Algorithm Hash digest
SHA256 42aebbec0f1cad9eca2b587710dfd5ca87be491f0bafdb21e51c70e43dfaea59
MD5 1ec6ea5ca654abbf982653a28b5f4e6a
BLAKE2b-256 e9ee6278af3a7664d39a0115d04a71e522b244ec70d1ef081a30375190a439cb

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 02778ddcf7f216b8e247b5d4256a6e8976a6684337fbd01fa8e420789b22702d
MD5 38b755a92368daddedfc82d1e0604904
BLAKE2b-256 32133a26990fe090e26fe100dbda11a1eee77cf8d3918808a97795ad3da23145

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-win32.whl.

File metadata

  • Download URL: turnip_text-0.0.3-cp38-abi3-win32.whl
  • Upload date:
  • Size: 208.3 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.1.0

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 d89854eef066e2ba0605efbb354513ce5e87b53dca2a9a193e34c13bdc91d13e
MD5 84200e453940c1a5271c59caa610c6f4
BLAKE2b-256 dd30a17f29fda00febfae17dd5045bdfe60d999fb1596f118bf40aeef6066396

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79eccbb1c9c70f08edc8c305c60786aa907825e81f163b2c95386d2c2fbf75da
MD5 4cc5d627839302fdde66b17973ffc5c5
BLAKE2b-256 0d191c69350f077beda91b0c8f8163f8aa9bf5503f51146a560cda7ce79d2176

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5431dd850d0161c5310f428aba4cfe7355354152864f1b549666d3856addef47
MD5 b41d9d5516e885a0e3d4ea3999f9f410
BLAKE2b-256 b2c53532f8e520117505d3335694ed214b872817286084a4f646a3250745b78c

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 60ed31578eb245ed29d3c709def440080e6274bea5678453350739ba9310b54a
MD5 7d671947fec3f49592659f091611f2bb
BLAKE2b-256 5636a70c298036c0e4e7592c2027b5201f4133f64db0227d36fdcf1d20c9d1b7

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e5ded6a3df09dbc20054a2366f5881d357f9bae9c297598ccfcfb090f6d5c93c
MD5 e2d59610cfd64c137d389fb7c1ad52c0
BLAKE2b-256 0efa9f995d49008d74c1ee53b5a4014946b9e54ac7aa8fbfab80bd004cc28f17

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 557a22d5e4f71419c3bd6bf964335a2816b27ce3b1315d5a507546b781e6e6c6
MD5 81aab83ce648b66feceaf9db2cbe44dc
BLAKE2b-256 94655d8b5d78f2eff0fcfebc4f1523655b9d1e0ffbe1153a23bcc161ba14743d

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c2fad6550b804381b71352bbfdaa52655e9b85624ae5305d36c57be6b169b8f4
MD5 1169ab0f820836e1cf4c2961705c7051
BLAKE2b-256 08ff89cca919675a408c916a9aa5a22a135337af4ef2eaf0de36a079927908ce

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 102612a2728eb023676b316bffa5b906f8d10ab7e9b37423c6242ffa978341dd
MD5 feeb3ca6965ccf077f31a7f09b72f624
BLAKE2b-256 ce41756f5b270dddfd83725270ed27f6213f0c74e69d91ae0bd087d1b61b0653

See more details on using hashes here.

File details

Details for the file turnip_text-0.0.3-cp38-abi3-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for turnip_text-0.0.3-cp38-abi3-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 dcfb4addcd2deb8be285e20d94eae3952038fbf60502418408d23c23e86e7f47
MD5 dae2b0f735e65a3867e1cf7cc90481a2
BLAKE2b-256 3412b32dafb728a4502253cae930d714ff1d305eb2a0f583c073dcc79d3fc4a1

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