Escaping, table layout, and document fixes
Quoted Klammertext specials (^@ ^| ^# ^^ ^: ^*) and ^'...'^ regions now survive re-processing (held as escape markers until final output); :after_apply phase functions receive and return raw target text. Tables: :hpos element position (center|left|right|<length>) replaces the unimplemented :center/:indent; the ranged cell override is renamed :justify; :column_width works in html (colgroup widths) and gains 'fill' -- the remaining width, capped at the column's widest entry, in both targets; a table wider than the text column warns on the console; table edges without an outer line set their text flush on the margins. @document: no empty title bar for untitled documents; @vfill fills to the bottom of the window in html (pure CSS); @vspace in plain text; new @dot klammer; monospace email links.
This commit is contained in:
@@ -86,8 +86,23 @@ ANDY: QUOTE: *s*
|
||||
@@extendpage.tex :: \enlargethispage{*linecount*\baselineskip} @@
|
||||
@@extendpage.txt :: @@
|
||||
|
||||
@@vspace.k length : Vertical space @@
|
||||
@@vspace.tex :: \vspace*{*length*} @@
|
||||
@@vspace.k lines.float : Vertical space, in multiples of the current line height @@
|
||||
@@vspace.tex :: \vspace{*lines*\baselineskip} @@
|
||||
@@vspace.html :: <div style="height: *lines*lh"></div> @@
|
||||
@@vspace.txt :: @eval "__VSPACE__" * round(*lines*) @ @@
|
||||
|
||||
@@vfill.k :
|
||||
Fill the vertical space so that any following text is flush with the bottom
|
||||
of the page (in HTML, the bottom of the window; once the content is taller
|
||||
than the window the space collapses, as on a full LaTeX page). Several
|
||||
vfills divide the space equally, like LaTeX's \vfill glue. In plain text,
|
||||
only makes some vertical space. @@
|
||||
@@vfill.tex :: \vfill @@
|
||||
# An empty glue div; block.css gives it flex-grow 1 and makes the text
|
||||
# column a flex column only in documents that use it (the :has() rule).
|
||||
@@vfill.html :: <div class="vfill"></div> @@
|
||||
@@vfill.txt :: @vspace 3 @ @@
|
||||
|
||||
|
||||
@@qa.k question | answer : Question and answer formatting @@
|
||||
@@qa ::
|
||||
|
||||
@@ -24,3 +24,28 @@ p {
|
||||
.indent {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
/* @vfill: LaTeX's \vfill glue as flex-grow. The :has() rule turns the
|
||||
text column into a flex column ONLY in documents that use @vfill (flex
|
||||
containers do not collapse vertical margins, so paragraph spacing
|
||||
shifts slightly there); several vfills share the free space equally,
|
||||
like \vfill. The min-height ties the fill to the window: with a title
|
||||
or status bar the column overshoots by their height (a small scroll);
|
||||
content taller than the window collapses the glue, as on a full LaTeX
|
||||
page. Fills the window, not a browser-printed page. */
|
||||
#text:has(.vfill) {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: calc(100vh - 1lh);
|
||||
}
|
||||
|
||||
/* One line of whitespace below the filled content, so the last block
|
||||
does not touch the bottom of the window. A margin on the last flex
|
||||
item, not #text padding: #middle's overflow clips the padding. */
|
||||
#text:has(.vfill) > :last-child {
|
||||
margin-bottom: 1lh;
|
||||
}
|
||||
|
||||
.vfill {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user