termimad 0.25.7

Markdown Renderer for the Terminal
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
*If you're reading this because you try make sense of some new API or a breaking change, you might also be interested in coming to the chat for explanations or guidance.*

<a name="v0.25.7"></a>
### v0.25.7 - 2023-10-31
- upgrade coolor, removing the ansi_colours dependency, fixing a license incompatibility - Fix #51

<a name="v0.25.6"></a>
### v0.25.6 - 2023-10-31
- upgrade terminal-clipboard due to RUSTSEC-2021-0019 in its X11 dependency

<a name="v0.25.5"></a>
### v0.25.5 - 2023-10-16
- dependency version updated

<a name="v0.25.3"></a>
### v0.25.3 - 2023-10-12
- coolor updated to 0.5.1

<a name="v0.25.2"></a>
### v0.25.2 - 2023-09-03
- fix shift-key extending the selection

<a name="v0.25.1"></a>
### v0.25.1 - 2023-09-01
- option for rounded corner tables in skin - see test-template example

<a name="v0.25.0"></a>
### v0.25.0 - 2023-08-20
- `skin.limit_to_ascii()` makes the characters used for table borders, bullets, etc. be in the non extended ASCII range - see "high-compatibility" example

<a name="v0.24.1"></a>
### v0.24.1 - 2023-08-15
- attribute parsing support RapidBlink and SlowBlink
- better error reporting on parsing invalid grey level

<a name="v0.24.0"></a>
### v0.24.0 - 2023-08-13
- gray panicking on out of range level has been changed to a silent clamping
- skin now deserializable with serde
- several utilities to parse colors and style elements

<a name="v0.23.2"></a>
### v0.23.2 - 2023-08-02
- utility functions (`FmtText::content_width` and `FmtText::set_rendering_width`) and example (content-align) helping base alignments on the content's width rather than the terminal's width

<a name="v0.23.1"></a>
### v0.23.1 - 2023-06-15
- reexport coolor to ease dependency managment

<a name="v0.23.0"></a>
### v0.23.0 - 2023-03-09
- FmtText::raw_str function to build a text with no markdown interpretation

<a name="v0.22.0"></a>
### v0.22.0 - 2023-03-02
- with 1, 2, or 3 spaces before a bullet, you make a deeper list item - Fix #41

<a name="v0.21.1"></a>
### v0.21.1 - 2023-02-25
- expose the DisplayableLine struct, which can be useful for some widgets

<a name="v0.21.0"></a>
### v0.21.0 - 2023-02-05
- parsing markdown with options (clean indentation, continue spans); see parse-options example - Fix #38

<a name="v0.20.6"></a>
### v0.20.6 - 2022-12-15
- fix cases of selection becoming wider than content in input field

<a name="v0.20.5"></a>
### v0.20.5 - 2022-12-15
- fix coolor version to prevent a dependency version problem with crossterm

<a name="v0.20.4"></a>
### v0.20.4 - 2022-12-03
- reexport crossterm

<a name="v0.20.3"></a>
### v0.20.3 - 2022-09-20
- fix some '\' not being rendered because being incorrectly considered as escaping

<a name="v0.20.2"></a>
### v0.20.2 - 2022-06-07
- update crossterm to 0.23.1 and coolor to 0.5

<a name="v0.20.1"></a>
### v0.20.1 - 2022-04-14
- upgrade coolor to 0.4 (which is pure rust) to fix a cross-compilation problem

<a name="v0.20.0"></a>
### v0.20.0 - 2021-12-25
- better algorithm for fitting tables, taking into account the whole column and not just its max width
- some fitting functions which could panic on an assert in extrem cases now return a Result (there are unlikely to be used directly so this shouldn't lead to breaking changes)

<a name="v0.19.4"></a>
### v0.19.4 - 2021-12-22
- fix a case of crash in input field

<a name="v0.19.3"></a>
### v0.19.3 - 2021-12-01
- fix dimension of drawn Rect

<a name="v0.19.2"></a>
### v0.19.2 - 2021-11-28
- better support of wide characters in InputField

<a name="v0.19.1"></a>
### v0.19.1 - 2021-11-26
- update Crossterm to 0.22.1 to fix some bugs

<a name="v0.19.0"></a>
### v0.19.0 - 2021-11-15
- addition of the small `Rect` utility, which lets you draw rects

<a name="v0.18.0"></a>
### v0.18.0 - 2021-11-11
- MadSkin blend_with function allows blending a skin with a color, with a given weight, enabling for example fading a skin into its background, which can be useful for displaying behind a dialog

<a name="v0.17.1"></a>
### v0.17.1 - 2021-11-06
- InputField: fix suppr key at end of line not joining lines

<a name="v0.17.0"></a>
### v0.17.0 - 2021-10-29
Several event related API have changed in a breaking way in this release
- EventSource now emits instances of TimedEvent, which wrap crossterm events
- InputField: selection & selection based operation (cut, copy, paste)
- InputField: double click selects the word around

<a name="v0.16.4"></a>
### v0.16.4 - 2021-10-22
- Remove the need to explicitly import minimad for crates using mad_print_inline!
- InputField: remove `\r` from edited strings

<a name="v0.16.3"></a>
### v0.16.3 - 2021-10-16
- Minimad's new TableBuilder, a facility to build text templates for tables

<a name="v0.16.2"></a>
### v0.16.2 - 2021-09-27
- insert_str function in InputField

<a name="v0.16.1"></a>
### v0.16.1 - 2021-09-08
- Home and End key now move to start and end of lines (i.e. no more of text) in multi-lines input fields
- several improvements and small fixes in input fields and scrolling
- TextView and MadView don't erase right of their area anymore

<a name="v0.16.0"></a>
### v0.16.0 - 2021-09-05
- some scroll API now use unsigned ints instead of i32
- input fields much improved. Can now be several lines - see examples/inputs
- the API of InputFields changed - but adapting user code should be straighforward:
	- Replace `set_content(&str)` with `set_str(AsRef<str>)` or `clear()`.
	- Use `set_focus(bool)` instead of the `focused` field (now private).
	- Use `area()` and `set_area(Area)` instead of the `area` field (now private).

<a name="v0.15.0"></a>
### v0.15.0 - 2021-08-29
- organize and augment the utilities dedicated to writing text, formatted or not, in a limited size area
- remove the Result type
- upgrade crossterm to 0.21

<a name="v0.14.3"></a>
### v0.14.3 - 2021-08-23
- password mode in input field

<a name="v0.14.2"></a>
### v0.14.2 - 2021-08-09
- add `MadSkin::default_dark` and `MadSkin::default_light`, two default skins suitable for specific kind of terminals

<a name="v0.14.1"></a>
### v0.14.1 - 2021-08-06
- change default skin to ensure it's readable whatever the terminal theme

<a name="v0.14.0"></a>
### v0.14.0 - 2021-07-07
- `ask!` macro and `Question` API
- the `mad_print_inline` and `mad_write_inline` macros now accept any argument supporting `to_string()` and not just `&str`
- fix a bug making tables sometimes exceed the width limit

<a name="v0.13.0"></a>
### v0.13.0 - 2021-06-29
- support wide chars everywhere, rewritten algorithms for markdown wrapping and fitting

<a name="v0.12.1"></a>
### v0.12.1 - 2021-06-24
- improved heuristics for table fitting & wrapping

<a name="v0.12.0"></a>
### v0.12.0 - 2021-06-24
- upgrade crossterm to 0.20 (beware that crossterm's API changed)

<a name="v0.11.1"></a>
### v0.11.1 - 2021-06-03
- fix some problems (including a crash) with input_field.del_word_right

<a name="v0.11.0"></a>
### v0.11.0 - 2021-06-02
- eases imports: it's no more needed to import the lazy_static crate and no import is needed for using macros

<a name="v0.10.3"></a>
### v0.10.3 - 2021-05-28
- fix a pb with wide chars in tables

<a name="v0.10.2"></a>
### v0.10.2 - 2021-04-27
- consider backspace as having a col width of -1 (they move the cursor to the left when printed in terminal)

<a name="v0.10.1"></a>
### v0.10.1 - 2021-03-18
- Fix a crash in `input_field.del_word_left()`

<a name="v0.10.0"></a>
### v0.10.0 - 2021-02-15
- Style characters can now be escaped with a '\' - Fix #24

<a name="v0.9.7"></a>
### v0.9.7 - 2021-02-10
- MadSkin::no_style() builds a skin without any style information, suitable for writing in files

<a name="v0.9.6"></a>
### v0.9.6 - 2021-02-07
- fix a bad column widths reduction

<a name="v0.9.5"></a>
### v0.9.5 - 2021-01-31
- names of variables in templates can now contain digits
- better column balancing in thight tables

<a name="v0.9.4"></a>
### v0.9.4 - 2021-01-29
- update crossbeam dependency to 0.8

<a name="v0.9.3"></a>
### v0.9.3 - 2021-01-27
- new version of minimad -> owning templates allow passing any Display as value

<a name="v0.9.2"></a>
### v0.9.2 - 2020-12-21
- styled_char and compound_style now implement Debug

<a name="v0.9.1"></a>
### v0.9.1 - 2020-11-27
- event source intercepts escape sequences and sends them (when finished) in a dedicated channel
(not reading this bounded channel is possible: escape sequences are just dropped in that case)

<a name="v0.8.30"></a>
### v0.8.30 - 2020-11-13
- add the FitStr utility taken from broot (correct string cutting taking real char width in cols)
(note that not all functions in termimad precisely take all chars width in cols into account)

<a name="v0.8.29"></a>
### v0.8.29 - 2020-10-15
- allow default value in template expansion

<a name="v0.8.29"></a>
### v0.8.29 - 2020-10-15
- allow default value in template expansion

<a name="v0.8.28"></a>
### v0.8.28 - 2020-10-11
- use the OwningTemplateExpander of Minimad 0.6.6

<a name="v0.8.27"></a>
### v0.8.27 - 2020-10-07
- fix inverted move_left and move_to_start

<a name="v0.8.26"></a>
### v0.8.26 - 2020-08-07
- upgrade crossterm to 0.17.7

<a name="v0.8.25"></a>
### v0.8.25 - 2020-07-13
- interpred lines with just ">" as empty quotes
- fix panic on wrapping long strings without space

<a name="v0.8.24"></a>
### v0.8.24 - 2020-06-22
- add a bunch of functions modifying the input (moving the cursor or deleting parts)

<a name="v0.8.23"></a>
### v0.8.23 - 2020-05-29
- fix uppercase letters not used in input field

<a name="v0.8.22"></a>
### v0.8.22 - 2020-05-25
- Prevent overflowing of large text from input field (some ellipsis added if necessary)

<a name="v0.8.21"></a>
### v0.8.21 - 2020-05-13
- EventSource: better manage channel errors

<a name="v0.8.20"></a>
### v0.8.20 - 2020-05-10
- relax the dependency version contraint on crossterm - Fix #18

<a name="v0.8.18"></a>
### v0.8.18 - 2020-05-05
- input fields now have a "focused" bool in their state

<a name="v0.8.17"></a>
### v0.8.17 - 2020-02-28
- added event handling functions in input_field for when you don't use termimad events or have a complex event dispatching

<a name="v0.8.16"></a>
### v0.8.16 - 2020-02-26
- key modifiers in click events in event_source
- the new experimental feature flag: `special-renders` lets you define replacement chars (for now) with a out of skin rendering (contact me if you're interested by this kind of feature)

<a name="v0.8.15"></a>
### v0.8.15 - 2020-02-22
- clear function in compound_style

<a name="v0.8.14"></a>
### v0.8.14 - 2020-02-16
- check w in double-click detection

<a name="v0.8.13"></a>
### v0.8.13 - 2020-02-08
- use crossterm 0.16.0 for slightly improved attributes storage

<a name="v0.8.12"></a>
### v0.8.13 - 2020-01-19
- use crossterm 0.15 to fix ctrl-J being read as Enter

<a name="v0.8.11"></a>
### v0.8.11 - 2020-01-19
- fix missing background on space after bullet in list

<a name="v0.8.10"></a>
### v0.8.10 - 2020-01-11
- use crossterm 0.14.2 for freeBSD compatibility

<a name="v0.8.9"></a>
### v0.8.9 - 2019-12-30
- fix the Enter key not recognized in combinations on some computers by normalizing '\r' and '\n' into 'Enter'

<a name="v0.8.8"></a>
### v0.8.8 - 2019-12-26
- allow language specification in code fences

<a name="v0.8.5"></a>
### v0.8.5 - 2019-12-20
- code fences support

<a name="v0.8.4"></a>
### v0.8.4 - 2019-12-16
- fix a compilation problem on windows (see https://github.com/Canop/termimad/issues/13#issuecomment-565848039)

<a name="v0.8.3"></a>
### v0.8.3 - 2019-12-15
- port to crossterm 0.14

<a name="v0.8.2"></a>
### v0.8.2 - 2019-11-29
- skin.print_expander makes using a text template less verbose

<a name="v0.8.1"></a>
### v0.8.1 - 2019-11-29
- TextView: draw the background till the end of line

<a name="v0.8.0"></a>
### v0.8.0 - 2019-11-24
- Templates allow going further in separating form from content

<a name="v0.7.6"></a>
### v0.7.6 - 2019-11-15
- fix skin's background not applied on empty lines at end of text_view
- use version minimad 0.4.3 to fix case of code not detected when following italic without space in between

<a name="v0.7.5"></a>
### v0.7.5 - 2019-11-13
- fix skin's background not applied on empty lines at end of text_view

<a name="v0.7.4"></a>
### v0.7.4 - 2019-11-11
- introduce inline templates, and especially the `mad_print_inline!` and `mad_write_inline!` macros
- add functions to shrink or extend a composite to a given width, using internal elision if possible

<a name="v0.7.3"></a>
### v0.7.3 - 2019-11-08
- add easy alternate to `skin.print_text` handling IO error

<a name="v0.7.2"></a>
### v0.7.2 - 2019-11-04
- incorporate crossterm 0.13.2 which fixes a regression on input reader

<a name="v0.7.1"></a>
### v0.7.1 - 2019-11-03
- compatibility with crossterm 0.13
- mouse support in stderr

<a name="v0.7.0"></a>
### v0.7.0 - 2019-09-22
- Displaying can be done on stderr or stdout, or in a subshell

<a name="v0.6.6"></a>
### v0.6.6 - 2019-10-05
- provide a default terminal width when the real one can't be measured

<a name="v0.6.5"></a>
### v0.6.5 - 2019-08-31
- list view: autoscroll on selection change
- list view: select_first_line & select_last_line

<a name="v0.6.4"></a>
### v0.6.4 - 2019-08-02
- add ProgressBar

<a name="v0.6.3"></a>
### v0.6.3 - 2019-08-01
- improvements of ListView

<a name="v0.6.2"></a>
### v0.6.2 - 2019-07-31
- fix build inconsistencies due to lack of precise sub crate versionning in crossterm

<a name="v0.6.1"></a>
### v0.6.1 - 2019-07-29
- add modifiable style for the input_field

<a name="v0.6.0"></a>
### v0.6.0 - 2019-07-28
Some tools that were parts of several Termimad based applications are now shared here:
- an event source emmiting events on a crossbeam channel
- an input field
- a list view with auto-resized columns

<a name="v0.5.1"></a>
### v0.5.1 - 2019-07-21
- a few utilies exported for apps with specific usages (compute_scrollbar, spacing.print_str, etc.)

<a name="v0.5.0"></a>
### v0.5.0 - 2019-07-09
- different styles for inline_code and code_block
- rgb now longer a macro but a free function
- two more color functions: ansi and gray
- clean and complete documentation

<a name="v0.4.0"></a>
### v0.4.0 - 2019-07-02
- support for horizontal rule (line made of dashes)
- support for quote (line starting with '>')
- support for bullet style customization (including colors)
- better wrapping, less frequently breaks words
- Skin API *breaking changes* to allow for more customization