Cloudflare analytics statement, history corrections, drink page report line, Bar tab tiers, manifest screenshots, skip links, 32px chips, built highball or flute - #120
Merged
Conversation
…t line, Bar tab tiers, manifest screenshots, skip links, 32px chips, built highball or flute Info tab Analytics section and humans.txt name the Cloudflare Web Analytics script beside Google Analytics. History fixes in data/cocktails.json: Scofflaw winner Henry Irving Dale and the 1923 contest, Bee's Knees 22 April 1929, Saucier's Bottoms Up 1951 in cock-n-bull-special and vodka-martini, Gaige 1941 in barbary-coast, Pegu Club lime as a teaspoonful, Whiskey Sour 1826 attributed to the Oxford Companion, Bar Basso's 1972 in negroni-sbagliato, "printed menu" in ritz. pages.py: a Key tab line under the code, the all-drinks line rewritten, and a footer line pointing corrections at github.com/cjimti/drink/issues. The same footer line on 404.html and offline.html, and once on the Info tab under Version. The new page lines are hidden in print. bar.json: Campari, Luxardo, Bénédictine, St-Germain, Cynar and Fernet-Branca filed solid; El Dorado, Sazerac 6, Old Forester Rye, Rittenhouse and Lucid names normalised. Brand ids and prices unchanged. app.js renders a gloss under the Alternatives tier and a new Next bottles lead line. manifest.webmanifest: id, lang, dir, categories, and narrow and wide screenshots in assets/screens. check_assets.py check_screenshots refuses a missing file, a sizes value that does not match the PNG, or a missing form factor, with four cases in test_checks.py. index.html: Skip to content and Skip to tabs links; app.js moves focus by hand so the hash router is not triggered, and sets tabindex only while the target holds focus. .chip is 32px tall via line-height and padding, and the bottle chip clamp is 70px. The With <bottle> chip is a span, not a button. Offline page sentence and the Info tab imperatives rewritten. notation.json glass h carries label_built and gloss_built. app.js glassFor and llms.py serve_line use them for built drinks, so Champagne Cocktail, Death in the Afternoon and Seelbach read Highball or flute in the app, the drink pages, llms-full.txt and their three redrawn cards. Closes #100. Closes #103. Closes #106. Closes #115. Closes #116.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five tickets from the #99 deep QA. Hand-written change is about 220 lines added and 50 removed across 17 files; the rest is regenerated output (185 drink pages,
sitemap.xml,llms-full.txt, three share cards) and two new screenshot PNGs.Closes #100. Closes #103. Closes #106. Closes #115. Closes #116.
#100 Analytics statement
Cloudflare Web Analytics is still auto-injected on the live zone (checked with a browser User-Agent on 12 September), so this takes the "keep it and say so" outcome.
index.htmlInfo tab, Analytics: a sentence naming Cloudflare's cookieless script beside Google Analytics; "That is the whole list" becomes "Those two are the whole list"; "It tells me nothing" becomes "Neither tells me"; the last paragraph says Cloudflare's script is added at the edge and is not in the source.humans.txt:Analytics: Google Analytics and Cloudflare Web Analytics, aggregate only.If the beacon is later turned off in the dashboard, both sentences need to come back out.
#103 History corrections
Prose only, in
data/cocktails.json. No recipe, code, build or ref changed.scofflaw: Henry Irving Dale (was Shaw); the contest ran in late 1923 and the word was announced in January 1924.bees-knees: Brooklyn Standard Union 22 April 1929 (was 23), matchingstingless-bee.cock-n-bull-special: Bottoms Up, no apostrophe.vodka-martini: the 1951 Bottoms Up (was 1952). The 1962 revised edition insalty-dogstays.barbary-coast: Gaige's Cocktail Guide and Ladies' Companion 1941 (was 1945), matchingfancy-free.pegu-club: "Craddock's lime is a teaspoonful" (Rose's dropped).whiskey-sour: the Oxford Companion entry in its refs does carry 1826 ("first appears in print as early as 1826, in a list of ways that whisky could be drunk"), so the date stays and the sentence now attributes it.negroni-sbagliato: adds "Bar Basso itself says 1972."ritz: "The printed menu left the Champagne off" (was "printed card"), from Papercuts: manifest fields and screenshots, a skip link, 32px chips, the offline sentence, three imperatives, hat-tip refs, card in the Ritz, the flute, the With chip #116.#106 Drink pages say what the site is and where corrections go
scripts/pages.py:/#key(.page__key).REPORT).The same footer sentence is added by hand to
404.htmlandoffline.html, and once to the Info tab under Version..page__keyjoins.page__open,.page__alland.page__footin the print rule that hides them.#115 Bar tab
data/bar.jsontiers: Campari, Luxardo Maraschino, Bénédictine, St-Germain, Cynar 33 Proof and Fernet-Branca move tosolid, so no tier heading sits over a lone bottle that the copy defines as a mixing bottle. Chartreuse staysexcellent: Green and Yellow are two bottles of one brand, not a category with a mixing tier.El Dorado 12 Year,Sazerac 6 Year Rye,Old Forester Rye 100 Proof,Rittenhouse Rye 100 Proof,Lucid Absinthe Supérieure. Brand ids unchanged (they arelocalStoragekeys). No price changed.assets/app.js:TIER_GLOSSrenders one line under the Alternatives heading, "A different bottle that does the same job. The drink changes and still pours." (.brands__gloss).grep -c "recommended\|grow your" assets/app.jsis 0.Not changed, for a look against a receipt: Tanqueray 1.75L is listed at $25 beside Beefeater 1.75L at $35.
#116 Papercuts
id: "/"(resolves to the samehttps://fewbottles.com/identity installed apps already carry, since it previously defaulted tostart_url),lang,dir,categories, and twoscreenshotswithform_factornarrow(780×1688) andwide(2560×1600) inassets/screens/. Taken from the live site at v1.5.0, dark, Martini open, via headless Chrome device emulation at 2x, quantised to 59 KB and 99 KB.theme_colorleft as the dark ground;index.htmlalready carries per-schemetheme-colormeta tags. Newcheck_screenshots()inscripts/check_assets.pyrefuses a missing file, asizesthat does not match the PNG header, or a missing narrow or wide form factor; four cases intest_checks.py(shot/clean,shot/wrong size,shot/no file,shot/no wide). Screenshot paths join the manifest referencescheck_servedwalks.Skip to content(to#main) andSkip to tabs(to the newid="tabbar", hidden at 900px and up where the tabs are in the top bar). A plain#mainhref would reachroute()and switch to the Menu, soskipTo()inapp.jsprevents the navigation and focuses the target. The target getstabindex="-1"only while it holds focus and loses it on blur; a permanent one on#mainwould let Safari hand focus to the whole scroller on any tap that lands on a button it does not focus. Wired before the data fetch. Off screen until focused, offset byenv(safe-area-inset-top)..chipis 32px tall throughline-height: 14px; padding: 8px 11px. Aninline-flexversion was tried first and dropped: it collapses the space inside✓ All bottlesand before the arrow inStarter Shelves →. The two-row bottle chip clamp moves from 60px to 70px.main.pages.pyandrenderRefs()both omit the block whenrefsis empty; confirmed on the page and in the app. No change.data/notation.jsonglasshgainslabel_built: "Highball or flute"andgloss_built: "no ice, sparkling wine on top". No glass letter changed.glassFor(d)inapp.jsandserve_line()inscripts/llms.pyuse them for a built drink inh(a fizz is shaken, so every builthis a Champagne top). Champagne Cocktail, Death in the Afternoon and Seelbach read "Highball or flute (no ice, sparkling wine on top)" in the app, "Highball or flute, lemon twist." on their pages and in the JSON-LD steps, "Highball or flute" inllms-full.txt, and "Built, highball or flute, orange twist" on their three redrawn cards. The short label is used off the app because the card's serve line is a single unwrapped line beside the glass. The unusedglassfield is removed fromreadServe().unlockLabel()renders a<span class="chip chip--pour is-on chip--label">instead of abutton aria-pressed="true"that no click branch handled. Out of the tab order,cursor: default, same height and look.Verification
make verifypasses: 260 test cases, 185 pages current, 185 cards current,served7151 references insideSERVED.Adversarial pass before testing found and fixed three things: the
inline-flexwhitespace collapse in chips, the permanenttabindex="-1"on#main, and the skip link sitting under the notch in standalone mode.Browser checks, headless Chrome over the DevTools protocol against
make serveon 8010:✓ All bottlesandStarter Shelves →keep their spaces; the wide bottle row still clamps at two rows under "All 28 bottle filters".tabindex="-1", the next Tab lands on the Menu tab, and the attribute is gone after blur. At 1280px only Skip to content is in the order. Skip to content clicked on the Bar tab focuses#mainand leaves the address at#barwith the Bar view still shown.SPANlabel "✓ With Bénédictine · 3", 32px,tabIndex -1..page__key,.page__alland.page__footcompute todisplay: none.offline.htmlcarries the new sentence and footer;hat-tiprenders no.recipe-refs.Not verified: a real phone, VoiceOver, Safari or iOS (including the safe-area offset and the blur removal of
tabindex), Chrome's install sheet actually showing the screenshots, Lighthouse, a print preview of the Menu list (no list markup changed), and the Rich Results Test on the changed JSON-LD steps.