mirror of
https://github.com/ascii-boxes/boxes.git
synced 2025-02-02 02:49:14 +01:00
76 lines
4.9 KiB
Markdown
76 lines
4.9 KiB
Markdown
|
---
|
||
|
layout: post
|
||
|
title: "New release: boxes v2.3.0"
|
||
|
date: 2024-02-17 14:00:00 +0100
|
||
|
release: v2.3.0
|
||
|
---
|
||
|
|
||
|
Adds support for UTF-8 box designs, and color in box designs.<!--break-->
|
||
|
|
||
|
This is the biggest change to the code base since the original implementation. Although we literally added hundreds
|
||
|
of new tests, it is still quite possible that some bugs slipped in. Please bear with us, and take the time to
|
||
|
[report](https://github.com/{{ site.github }}/issues) (and maybe even fix!) them.
|
||
|
|
||
|
#### Functional Changes
|
||
|
|
||
|
- The *boxes* config file is now UTF-8 encoded, which allows for lots of new box designs based on UTF-8 characters.
|
||
|
Some examples are among the newly added designs below. This includes characters that take up more than one column
|
||
|
in a terminal, such as Chinese script. [#72](https://github.com/{{ site.github }}/issues/72)
|
||
|
- ANSI color codes are now allowed in box shapes (see
|
||
|
[colored box shapes]({{ site.baseurl}}/config-syntax.html#colored-shapes)). It's a bit technical, because you
|
||
|
need to write ANSI color codes, but quite powerful and versatile.
|
||
|
- In order to properly support colors in every terminal, we now depend on the
|
||
|
[ncurses](https://invisible-island.net/ncurses/) library.
|
||
|
- The new command line options `--color` and `--no-color` can be used to force whether colors are printed by *boxes*.
|
||
|
The default is to print colors if the terminal is color-capable.
|
||
|
- Add long options capability to command line. Every existing option stays the same, but can now also be written in
|
||
|
long form, for example `--mend` instead of `-m`. The complete list is on the
|
||
|
[man page]({{ site.baseurl}}/{{ page.release }}/boxes-man-1.html) and in the output of `boxes --help`.
|
||
|
- [Alias definitions]({{ site.baseurl}}/{{ page.release }}/config-syntax.html#box-design) are now active in the config
|
||
|
file for some designs. We have "lua-cmt" and "sql-cmt" as aliases for
|
||
|
"[ada-cmt]({{ site.baseurl}}/{{ page.release }}/box-designs.html#ada-cmt)", and "lua-box" and "sql-box" for
|
||
|
"[ada-box]({{ site.baseurl}}/{{ page.release }}/box-designs.html#ada-box)".
|
||
|
- We dropped the (mostly unused) fields `created`, `revision`, and `revdate` from the *boxes* config file. They were
|
||
|
introduced when Git hadn't been invented yet and *boxes* was versioned with RCS. Today, a look into Git tells us all
|
||
|
about when stuff was created or modified, so we felt this was the time to shed some ballast.
|
||
|
|
||
|
#### Technical / Internal Changes
|
||
|
|
||
|
- Add MacOS to GitHub Actions workflow and support all test categories on MacOS
|
||
|
by <span class="atmention">[@mathomp4](https://github.com/mathomp4)</span>
|
||
|
- Removed linker `--wrap` option so unit tests can run on MacOS by
|
||
|
<span class="atmention">[@chorpler](https://github.com/chorpler)</span>
|
||
|
- Speed up GitHub Actions runs by no longer calculating the coverage per test. Instead, we calculate the overall
|
||
|
coverage. If you need coverage per test you can get it by calling the test runner with `--coverage-per-test` instead
|
||
|
of `--coverage`.
|
||
|
|
||
|
#### New Box Designs
|
||
|
|
||
|
- New box designs
|
||
|
"[ansi]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi)",
|
||
|
"[ansi-dashed]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi-dashed)",
|
||
|
"[ansi-double]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi-double)",
|
||
|
"[ansi-heavy]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi-heavy)",
|
||
|
"[ansi-heavy-dashed]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi-heavy-dashed)",
|
||
|
"[ansi-rounded]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi-rounded)", and
|
||
|
"[ansi-rounded-dashed]({{ site.baseurl}}/{{ page.release }}/box-designs-unicode.html#ansi-rounded-dashed)"
|
||
|
by <span class="atmention">[@chorpler](https://github.com/chorpler)</span>, all taking
|
||
|
advantage of Unicode box drawing characters
|
||
|
- New Box designs
|
||
|
"[info]({{ site.baseurl}}/{{ page.release }}/box-designs-color.html#info)",
|
||
|
"[warning]({{ site.baseurl}}/{{ page.release }}/box-designs-color.html#warning)", and
|
||
|
"[critical]({{ site.baseurl}}/{{ page.release }}/box-designs-color.html#critical)"
|
||
|
by <span class="atmention">[@tsjensen](https://github.com/tsjensen)</span> as examples of colored Unicode boxes.
|
||
|
The "critical" box design even colors its box contents. In the
|
||
|
[design list]({{ site.baseurl}}/{{ page.release }}/box-designs-color.html), colored designs feature a little moon
|
||
|
icon that you can hover over in order to try out a dark background.
|
||
|
- New box design "[dragon]({{ site.baseurl}}/{{ page.release }}/box-designs.html#dragon)"
|
||
|
- The box designs
|
||
|
"[stark2]({{ site.baseurl}}/{{ page.release }}/box-designs.html#stark2)",
|
||
|
"[sunset]({{ site.baseurl}}/{{ page.release }}/box-designs.html#sunset)",
|
||
|
"[whirly]({{ site.baseurl}}/{{ page.release }}/box-designs.html#whirly)", and
|
||
|
"[xes]({{ site.baseurl}}/{{ page.release }}/box-designs.html#xes)"
|
||
|
received some default padding, hopefully making them appear nicer by default.
|
||
|
|
||
|
[[Release History]({{ site.baseurl}}/releases.html)]
|