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.1.tar.gz (70.4 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.1-cp38-abi3-win_amd64.whl (215.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

turnip_text-0.0.1-cp38-abi3-win32.whl (207.0 kB view details)

Uploaded CPython 3.8+Windows x86

turnip_text-0.0.1-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.1-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.1-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.1-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.1-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.1-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.1-cp38-abi3-macosx_11_0_arm64.whl (339.2 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

turnip_text-0.0.1-cp38-abi3-macosx_10_7_x86_64.whl (353.6 kB view details)

Uploaded CPython 3.8+macOS 10.7+ x86-64

File details

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

File metadata

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

File hashes

Hashes for turnip_text-0.0.1.tar.gz
Algorithm Hash digest
SHA256 86c6bcc07833b6d104893b36d164271a3eb21268575bd5b74e754ecc3670d620
MD5 6bea83914b56f292766694e811c5924c
BLAKE2b-256 709448db08b1337c2dfe4a87a9eb1214c7049df4a3f0e564c4b01fa6de7d6b9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b3a138700b9a3ee028e4dccf5ed88ff7beb9b022d619eebbc33c7bfc343f4230
MD5 8cfce0dc7fd9c87f638f566458f202b7
BLAKE2b-256 d17dbfa751cde1f77345444e4f82143a30d5222aa1eaeb5f8dbb45711bd955df

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 f9a13388cf8623b34d07484995b3125f1c4bf971e92016b2e8628efcffc871e0
MD5 dc39833d76a84330eb1321201cbcfdce
BLAKE2b-256 84a61b813d729f8b9c181ebdd2858df61001053ead2a26cc99badc5d31f399f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee47e07d99f386e4a530cb78cd955ef933ed707b7ab5bbdf24fb1167698e58de
MD5 3cb9b8aecce686820cca9844692e5edc
BLAKE2b-256 dc60cdca5efa3ab8645ba8e9ede21e6ce8d88f8e2daf7be5584cc3d352cd09b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1cd4a1af04a97e310f452908d34d704bd390c634e579c77a19d847b25687492c
MD5 ddaf1b0f0087f797cc532e4074c049b8
BLAKE2b-256 b9a9145a742bd965858c6b59723420ee9deb80cf9e38ed6fdef0b80182863220

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 99e2dd31dd8f9a7f9075505e24d7452aec01116e8655ae5d7416c3fc4cc3e871
MD5 b120c68e9a2f86206267ededa62dfcb1
BLAKE2b-256 d2efc5c394eb3657b202cf90de4080da67a35b10bc6ca6088e03d3ca9f57d62d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0309b9fb9260549899eafc7be1ed8aa6ddbb4d56a2944a84a0ccafde91a0b95e
MD5 824961ec5b96427dbad0fd094d1ddf7a
BLAKE2b-256 15f443a418ab8aed286ca76072880a321277079c7ff38cc8e43de8ea9e356a4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d17a4ca0f0acc1b69baeb6c7aafe0f6763e82f97353a69e1e6b41767916ce155
MD5 07e39685dc7dc817d9a3911ea140c0b8
BLAKE2b-256 e9ceaa961451b7b0f9eddd0031dfcb5df551f7ba319fec158b3612643b6a0604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c7f2495119c40b9bcb6827913c6a6346a1a9f5d0812a76f60792f45fba86187c
MD5 5e79493ef6e97036ab83275f953eca48
BLAKE2b-256 aaa0bb751854237a307bd4799d8eef7c1b293e0b765e362da15c58bc76d56fcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac72456326caabc0b94fbe5fde10b9c612866fd0fe8fc5a389962749bf635183
MD5 8b9d0325489a27b1f223f6306ab35680
BLAKE2b-256 e0fe2525894037f10290ba1df34e5972dd093569bf27ca20c49b28446f598327

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turnip_text-0.0.1-cp38-abi3-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 171f057452e8d666b9281afdef359bb362bd8277e587fea612e8867d9b18f287
MD5 9fe564cc4c192a9acbb53a26d2c69a7a
BLAKE2b-256 887a7805747d404a3cc2f32f46650c1678f37715270fc0873aa6bfde15d322ef

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