56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
Laatikoita
|
|
==========
|
|
Laatikoita (Finnish for 'boxes') is a collection of simple one-file
|
|
libraries for creating and working with "ASCII art" boxes in Python.
|
|
It implements an interface in the style of [Box
|
|
combinators](https://mmapped.blog/posts/41-box-combinators), but also has
|
|
support for boxes that have collapsible borders.
|
|
|
|
Examples
|
|
--------
|
|
|
|
```python
|
|
>>> from boxes import from_string as S
|
|
>>> S('hello').print()
|
|
hello
|
|
>>> S('hello').above(S('world')).print()
|
|
hello
|
|
world
|
|
>>> S('hello').above(S('world')).frame().above(S('boxes').frame()).print()
|
|
┌─────┐
|
|
│hello│
|
|
│world│
|
|
├─────┤
|
|
│boxes│
|
|
└─────┘
|
|
>>> from layout import stack, lay
|
|
>>> stack(map(S, 'split across several lines'.split())).print()
|
|
split
|
|
across
|
|
several
|
|
lines
|
|
>>> from boxes import box
|
|
>>> lay([box(1, 0).frame().to_box(), box(0, 1).frame().to_box()]).print()
|
|
┌─┐┌┐
|
|
└─┘││
|
|
└┘
|
|
>>> from layout import align_bottom
|
|
>>> lay([box(1, 0).frame().to_box(), box(0, 1).frame().to_box()], align_bottom).print()
|
|
┌┐
|
|
┌─┐││
|
|
└─┘└┘
|
|
>>> lay([stack([S('possible to'), S('lay out')]).frame(), S('frames too').frame()]).print()
|
|
┌───────────┬──────────┐
|
|
│possible to│frames too│
|
|
│lay out ├──────────┘
|
|
└───────────┘
|
|
```
|
|
|
|
Documentation
|
|
-------------
|
|
At the moment laatikoita is only really documented using the docstrings.
|
|
|
|
License
|
|
-------
|
|
Laatikoita is free software under the terms of Creative Commons Zero 1.0
|
|
Universal ("CC0").
|