{"id":26692960,"url":"https://github.com/reesmichael1/burro","last_synced_at":"2025-03-26T17:38:38.057Z","repository":{"id":148627189,"uuid":"596334629","full_name":"reesmichael1/burro","owner":"reesmichael1","description":"A digital typesetting language. Mirror of https://git.sr.ht/~reesmichael1/burro","archived":false,"fork":false,"pushed_at":"2023-10-12T13:25:29.000Z","size":952,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-10-13T11:24:54.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reesmichael1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-02-02T00:31:07.000Z","updated_at":"2023-08-11T20:39:21.000Z","dependencies_parsed_at":"2023-05-20T18:00:20.636Z","dependency_job_id":null,"html_url":"https://github.com/reesmichael1/burro","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reesmichael1%2Fburro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reesmichael1%2Fburro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reesmichael1%2Fburro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reesmichael1%2Fburro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reesmichael1","download_url":"https://codeload.github.com/reesmichael1/burro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245704017,"owners_count":20658911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-26T17:38:37.539Z","updated_at":"2025-03-26T17:38:38.051Z","avatar_url":"https://github.com/reesmichael1.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Burro\n\nA digital typesetting language that's easy to type.\n\n## Demo\n\n```\n.margins[2in]\n.pt_size[12]\n.page_width[8.5in]\n.page_height[11in]\n.par_space[8pt]\n.leading[3pt]\n.family[Cardo]\n.start\n.align[center]\n.family[default]\n.letter_space[1.5pt]\n.pt_size[18]\n.smallcaps[Burro]\n\n.family[-]\n.letter_space[-]\n.align[justify]\n; Lines beginning with a ; are commented out (have no effect on the output)\n; The \"-\" argument resets the value of this command \n; to its previous value (here, 11 pts)\n.pt_size[-]\nThis is a demonstration of .italic[Burro], a new typesetting language \ndesigned for text-heavy documents.\n\nBurro is designed to be easy to type while retaining complete control \nover the output. It aims to be a middle ground between the~limited power \nof Markdown and the heaviness of TeX and friends. Burro is directly inspired by,\nand hopes to be a spiritual successor to, groff with the mom macro set. \n\nBurro does not try to guess where things should go on the~page; \nrather, as a typographer, .bold[you] choose your layout settings \nand Burro applies those to the text. \nBurro aims to feel more like setting type in a printing press \nthan just typing into a document.\n```\n\n![output demonstration](demo.png)\n\n## Vision\n\nBurro is an attempt to find a middle ground between the verbosity of [`TeX`](http://tug.org), the excessive newlines of [`groff`](https://www.gnu.org/software/groff/), and the limited flexibility and power of compiling to a PDF from Markdown. A fundamental guiding principle is that the language _should be easy to type_, since it is, well, a typesetting language. \n\nBurro is meant for easy typesetting of mostly-text documents (i.e., it makes no attempt to replace TeX and friends for scientific documents). Burro is directly inspired by, and aims to be a spiritual successor to, [`groff`](https://www.gnu.org/software/groff/) with the [`mom`](http://www.schaffter.ca/mom/) macro set. \n\nIt is also important that the user should have easy yet complete control over where everything goes on the page. Burro aims to have sensible defaults (mostly taken from Bringhurst's classic _The Elements of Typographic Style_) that can all be customized, anywhere in the document.\n\n## Why Burro when TeX exists?\n\nTeX has been the gold standard of digital typography for the past several decades, so Burro has a high standard to reach! Burro is __not__ intended to be a toy poject but instead a fully capable competitor to TeX--at least within its own domain. Burro intentionally restricts that domain to __text__ documents. (In other words, for your latest math homework, just use LaTeX!)\n\nRather than trying to find the optimal layout using its own idea of typographic beauty, Burro puts those choices in your hands. Burro looks at the current document settings: margins, page dimensions, spacing, leading, etc., and applies those to the input text, just as a typographer setting text in a printing press would do. You, as the typographer, have the freedom to change those settings at any point in the document. \n\nNotably, Burro does not concern itself with ideas like floating blocks. Instead, Burro will happily put content on top of existing content if that is what it's told to do. To avoid this, the typographer must specify different sections and positions where the text should be written. While this system may seem odd to those used to an automatic layout algorithm, it opens up a surprisingly powerful amount of typographic freedom.\n\n## Usage\n\nFor now, Burro requires a font map, telling it where to find font files for each family/font combination it encounters. See `examples/fontmap` for the necessary syntax.\n\nSaved as `example.bur`, this file can be compiled with `burro example.bur` (assuming the fontmap is stored next to `example.bur`). The command will output `example.pdf`. \n\n## Project History\n\nI first worked on Burro in 2018, but couldn't settle on a syntax I liked, so the project sat dormant for some time. This latest rewrite is already more powerful than the original version was, and has a much more flexible and pleasant syntax.\n\n## Roadmap\n\nThese are many more features planned for Burro, including an extensive list of typographic commands, user defined variables, and more. See the file `examples/syntax.bur` for some of the current long term vision. Burro is not yet tested on non-Latin scripts (or even non-English languages), but good international support is a blocker for the 1.0 release.\n\nBurro is currently undocumented beyond the `examples` directory, but that will improve over time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freesmichael1%2Fburro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freesmichael1%2Fburro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freesmichael1%2Fburro/lists"}