Ragged Blocks: Rendering Structured Text with Style
Sam Cohen, Ravi Chugh
TL;DR
The paper tackles rendering deeply structured text (code, prose, and beyond) without sacrificing typographic fidelity by introducing ragged blocks (rocks). It develops a base L1_P layout that uses a region-based representation to tightly pack nested content, and extends this with L2a/L2b variants and stateful regions to improve alignment, line breaking, sharing, and performance. Through benchmarks on multi-language code samples, it demonstrates that rocks yield substantially more compact layouts than traditional rectangular-box approaches and provides metrics like mesh distance to quantify layout fidelity. The work also explores simplification and outline optimization as post-processing, discusses limitations, and outlines practical pathways to integrate rocks into editors and document renderers, with future work focusing on scalability, user studies, and domain-specific styling. Overall, Ragged Blocks offer a flexible, scalable framework for richly styled, structurally informative text visualization in IDEs and beyond.
Abstract
Whether it be source code in a programming language, prose in natural language, or otherwise, text is highly structured. Currently, text visualizations are confined either to _flat, line-based_ decorations, which can convey only limited information about textual structure, or _nested boxes_, which convey structure but often destroy the typographic layout of the underlying text. We hypothesize that the lack of rich styling options limits the kinds of information that are displayed alongside text, wherever it may be displayed. In this paper, we show that it is possible to achieve arbitrarily nested decorations while minimally disturbing the underlying typographic layout. Specifically, we present a layout algorithm that generates _ragged blocks_, or _rocks_, which are rectilinear polygons that allow nested text to be compactly rendered even when styled with borders and padding. Our layout algorithm is evaluated on a benchmark suite comprising representative source code files in multiple programming languages. The (ragged block) layouts produced by our algorithm are substantially more compact than the (rectangular block) layouts produced by conventional techniques, when uniformly styling every element in the syntax tree with borders and padding.
