feed: render poem fenced blocks as verse, not code

This commit is contained in:
blog-dev
2026-09-20 19:18:11 +00:00
parent 589a745c5b
commit d244a34fc9
2 changed files with 40 additions and 17 deletions
+24 -17
View File
@@ -13,41 +13,48 @@ previewImg: './if-an-ode-to-data-control.jpeg'
Rudyard Kipling wrote "If" in 1895 and published it in his 1910 collection Rewards and Fairies. This ode to data control was first published in 2022. Here is the full text. Rudyard Kipling wrote "If" in 1895 and published it in his 1910 collection Rewards and Fairies. This ode to data control was first published in 2022. Here is the full text.
``` ```poem
If you can keep your data when all about you If you can keep your data when all about you
Are losing theirs and blaming it on you; Are losing theirs and blaming it on you;
If you can trust your metrics when analysts doubt you, If you can trust your metrics when analysts doubt you,
But make allowance for their doubting too: But make allowance for their doubting too:
If you can query and not be tired by waiting,
If you can query and not be tired by waiting,
Or building models, adjust for outliers, Or building models, adjust for outliers,
Define ETL modules that are self-validating, Define ETL modules that are self-validating,
And require contracts from data suppliers; And require contracts from data suppliers;
If you can report - and not make KPIs your master;
If you can report - and not make KPIs your master;
If you can forecast - and not make compliance your aim, If you can forecast - and not make compliance your aim,
If you can make the overnight batch faster If you can make the overnight batch faster
And ensure the end results are just the same: And ensure the end results are just the same:
If you can't bear two versions of truth spoken
If you can't bear two versions of truth spoken
Produced by silos to make a trap for fools, Produced by silos to make a trap for fools,
Or watch systems you gave your life to, broken, Or watch systems you gave your life to, broken,
And stoop and build 'em up with off-the-shelf tools; And stoop and build 'em up with off-the-shelf tools;
If you would make one lake with all your data
If you would make one lake with all your data
And risk it on one vendor's big bang plan, And risk it on one vendor's big bang plan,
And lose, and start again at invitation-to-tender And lose, and start again at invitation-to-tender
And salvage from the project, what you can: And salvage from the project, what you can:
If you can force your flat files and mainframe
If you can force your flat files and mainframe
To serve datamarts when key DBAs retire, To serve datamarts when key DBAs retire,
And so hold on when stakeholders proclaim And so hold on when stakeholders proclaim
Why (oh why) is our Data Quality so dire? Why (oh why) is our Data Quality so dire?
If you can talk with architects & keep your virtue,
If you can talk with architects & keep your virtue,
Or walk with CEOs - nor lose the accounting touch, Or walk with CEOs - nor lose the accounting touch,
If neither UTF-8 nor PII can hurt you, If neither UTF-8 nor PII can hurt you,
If all teams count with you, but none too much: If all teams count with you, but none too much:
If you can keep Data Owners beholden
If you can keep Data Owners beholden
To uploads that are timely and accurate and whole, To uploads that are timely and accurate and whole,
Yours is the Earth and clean records (golden), Yours is the Earth and clean records (golden),
And - which is more - you'll have Data Control! And - which is more - you'll have Data Control!
``` ```
+16
View File
@@ -118,6 +118,22 @@ const StyledContent = styled.div`
line-height: 2em; line-height: 2em;
font-family: Monaco, 'Andale Mono', 'Courier New', Courier, monospace; font-family: Monaco, 'Andale Mono', 'Courier New', Courier, monospace;
} }
/* A fenced block tagged with the 'poem' language is verse, not code: drop
the code chrome and set it in the serif face, keeping the author's line
breaks and blank lines (which read as stanza breaks). */
pre:has(> code.language-poem) {
background-image: none;
border: none;
padding: 0;
margin: 1.8rem 0;
line-height: 1.75;
}
pre > code.language-poem {
font-family: Georgia, 'Times New Roman', serif;
font-size: 1.05rem;
color: #222222;
white-space: pre-wrap;
}
` `
interface PostProps { interface PostProps {