To get a sense of what I mean, see this editor which lets you interactively construct a treemap: https://beta.observablehq.com/@mbostock/treemap-o-matic
To get a sense of what I mean, see this editor which lets you interactively construct a treemap: https://beta.observablehq.com/@mbostock/treemap-o-matic
country,value
World/Asia/China, 1409517397
World/Asia/India, 1339180127
World/Asia/Indonesia, 263991379
An added benefit of this approach is that you can have hierarchies in multiple columns. For example: datetime, source_account, destination_account, amount
2016-07-01, Assets/ProjectFunding, Assets/Capital/Delivery, 134.2
2017-07-01, Assets/ProjectFunding, Assets/Capital/Delivery, 72.2
2016-07-01, Assets/ProjectFunding, Assets/Capital/Other, 5.0
2016-07-01, Assets/ProjectFunding, Expenses/Development, 4.7
2017-07-01, Assets/ProjectFunding, Expenses/Development, 1.6
2017-07-01, Assets/Cash, Expenses/OPEX, 0.96
2018-07-01, Assets/Cash, Expenses/OPEX, 1.62I feel like the fixpoint of this function is going back to only one separator, or something, but I am not seeing the reasoning clearly.
It can be good because each line is now an independent idea and doesn't require the indentation context, the items can be sorted or moved easily.
As for hard to work with... a lot of editors have multi-cursor support these days, which makes editing these things in bulk pretty straight forward for smaller sizes and then there's always sed and awk. ;)
Given all that, CST seems like it might be cool for building some quick trees like the given UIs you present.
I'd probably keep to to rows for longer storage though.
I've taken to using XSV to pretty-print CSV data in bug reports or feature requests for coworkers who give me CSV or spreadsheets to work with. The data doesn't need to go any further, it's already been processed, it just needs to be clearer to understand than raw CSV/JSON/XML:
https://github.com/BurntSushi/xsv
(link has examples of pretty-printed CSV)