feed: render poem fenced blocks as verse, not code #18

Merged
allan merged 1 commits from feat/poem-format into main 2026-09-20 19:25:55 +00:00
2 changed files with 40 additions and 17 deletions
Showing only changes of commit d244a34fc9 - Show all commits
@@ -13,38 +13,45 @@ 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),
+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 {