General note: This site’s appearance, configuration, hosting, and other basic considerations will change over time. As a result, certain content on this page could be at variance with what you’re currently seeing on the site, but the two were consistent when this post originally appeared.
` 4 | return disclaimer 5 | } 6 | 7 | // The HTML above is escaped properly only if white space is *not* used, hence the lack of indentation above. For more details, see https://github.com/11ty/eleventy/issues/180. -------------------------------------------------------------------------------- /_data/eleventyComputed.js: -------------------------------------------------------------------------------- 1 | // for excluding "future" content from production builds 2 | // https://saneef.com/tutorials/hiding-posts-with-future-dates-in-eleventy/ 3 | 4 | const isPageFromFuture = ({ date }) => 5 | process.env.ELEVENTY_ENV === "production" && date.getTime() > Date.now() 6 | 7 | module.exports = { 8 | permalink: (data) => { 9 | const { permalink, page } = data 10 | if (isPageFromFuture(page)) return false 11 | 12 | return permalink 13 | }, 14 | eleventyExcludeFromCollections: (data) => { 15 | const { eleventyExcludeFromCollections, page } = data 16 | if (isPageFromFuture(page)) return true 17 | 18 | return eleventyExcludeFromCollections 19 | }, 20 | } -------------------------------------------------------------------------------- /src/assets/css/intervf.css: -------------------------------------------------------------------------------- 1 | /* === handling Inter VF obliquing */ 2 | .italic, i, cite, em, var, address, dfn, h3, h5 { /* dealing with Inter VF */ 3 | font-variation-settings: 'slnt' -8; 4 | /* previous is needed by Chromium and Safari; its presence makes Firefox "over-slant" Inter VF, so we override that below with the media query for Firefox */ 5 | font-style: oblique 8deg; 6 | /* previous is needed by Firefox and Safari; it apparently has no effect on Chromium */ 7 | } 8 | 9 | @supports (-moz-appearance: none) { 10 | .italic, i, cite, em, var, address, dfn, h3, h5 { 11 | /* font-variation-settings: normal; */ 12 | font-style: normal; 13 | } 14 | } 15 | /* === end, handling Inter VF obliquing */ -------------------------------------------------------------------------------- /src/404.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: 404 - Page not found 3 | layout: base 4 | permalink: 404.html 5 | eleventyExcludeFromCollections: true 6 | #Comes into play only on Netlify -- see https://www.11ty.dev/docs/quicktips/not-found/ 7 | --- 8 | 9 |Sorry, that page isn’t on this site.
12 |Please use the navigation menu (above) or the sitemap to find another page.
13 |{{ description }}
{% endif %} 5 |
6 | {{ page.date | htmlDateString }}{% if lastmod %}
Last modified {{ lastmod | htmlDateString }}{% endif %}
7 |
{{ post.data.subtitle | safe }}
19 |
20 |
21 | {% if post.data.lastmod %}
22 |
Last modified
23 | {% endif %}
24 |
26 | {{ post.data.description | safe }} 27 |
28 |All {{ collections.post.length }} posts (listed five per page)
32 |and
20 | (Older comments imported from previous comments host, Talkyard.) 21 |
22 |Cap Pike 2019-09-07
23 |People that use Word that don't "get" styles and formatting in general are generally just annoying. Like people who drive that don't bother with turn signals.
24 | ...and then there's Excel...
26 | {{ page.date | htmlDateString }}
27 |
28 | {% if lastmod %}
29 | Last modified {{ lastmod | htmlDateString }}
30 | {% else %}
31 |
32 | {% endif %}
33 |
34 |
36 | {% if featured_image_caption %} 37 | {{ featured_image_caption | safe }} 38 | {% else %} 39 | 40 | {% endif %} 41 |
42 |64 | Next: 65 | {{ nextPost.data.title }} 66 |
67 | {% endif %} 68 | {% if prevPost.url %} 69 |70 | Previous: 71 | {{ prevPost.data.title }} 72 |
73 | {% else %} 74 |75 | {% endif %} 76 |
31 | Next: 32 | {{ collections.post[idx].data.title }} 33 |
34 | {% endif %} 35 | {% if collections.post[idx-2] %} 36 |37 | Previous: 38 | {{ collections.post[idx-2].data.title }} 39 |
40 | {% endif %} 41 | 42 | ``` 43 | {% endraw %} 44 | 45 | Yes, it worked, but I wanted a "set-and-forget" method---something that would survive post deletions or any other possibility that might come up, not to mention a simple human failure to give the correct and unique `idx` assignment to a new post. And [so](https://github.com/11ty/eleventy/issues/211) [did](https://github.com/11ty/eleventy/issues/529) [others](https://github.com/11ty/eleventy/issues/819). 46 | 47 | I suspected there was a solution in the Eleventy API that was so ridiculously simple that, if I found it, I'd have two immediate reactions: joy from finding it and pain from the slap I'd give myself on top of the head for having missed it. 48 | 49 | Early yesterday morning, after having asked about an [earlier](https://github.com/11ty/eleventy/issues/529#issuecomment-532393625) proposed answer to the question, I saw a [reply](https://github.com/11ty/eleventy/issues/529#issuecomment-568257426) that quickly proved to be *The* Answer **(THIS one is what you're seeking, folks)** from [Pascal Widdershoven](https://pascalw.me) in the form of a wonderfully simple and elegant addition to one's `.eleventy.js` file: 50 | 51 | {% raw %} 52 | ```js 53 | eleventyConfig.addCollection("posts", function(collection) { 54 | const coll = collection.getFilteredByTag("posts"); 55 | 56 | for(let i = 0; i < coll.length ; i++) { 57 | const prevPost = coll[i-1]; 58 | const nextPost = coll[i + 1]; 59 | 60 | coll[i].data["prevPost"] = prevPost; 61 | coll[i].data["nextPost"] = nextPost; 62 | } 63 | 64 | return coll; 65 | }); 66 | ``` 67 | 68 | {% endraw %} 69 | 70 | Ah. A thing of beauty. 71 | 72 | Once you've added that to your site's `.eleventy.js` file, all you have to do is put something like the following in the appropriate place in your Eleventy template for single posts (this is in [Nunjucks](https://www.11ty.dev/docs/languages/nunjucks/), so please adjust according to the [template language](https://www.11ty.dev/docs/languages/) of your choice): 73 | 74 | {% raw %} 75 | 76 | ```html 77 | {% if nextPost.url %} 78 |79 | Next: 80 | {{ nextPost.data.title }} 81 |
82 | {% endif %} 83 | {% if prevPost.url %} 84 |85 | Previous: 86 | {{ prevPost.data.title }} 87 |
88 | {% endif %} 89 | ``` 90 | 91 | {% endraw %} 92 | 93 | And, no, I didn't swat myself, but I did get the joy. 94 | 95 | **Thank you, Mr. Widdershoven**, for the eye-opener! This has been an FAQ in the truest sense of that term, and you got us over the goal line. As I gratefully [told you yesterday](https://github.com/11ty/eleventy/issues/529#issuecomment-568258911): "You da man!" -------------------------------------------------------------------------------- /src/posts/2021/03/beginners-luck-update.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: singlepost 3 | tags: post 4 | title: "Beginner’s luck: an update" 5 | subtitle: "New and updated starter sets for Eleventy and Hugo" 6 | description: "The inventory has grown, so here’s what I currently offer for those interested in the two best SSGs." 7 | author: Bryce Wray 8 | date: 2021-03-25T20:25:00-05:00 9 | lastmod: 2021-04-22T12:57:00-05:00 10 | discussionId: "2021-03-beginners-luck-update" 11 | featured_image: susan-holt-simpson-H7SCRwU1aiM-unsplash_4608x3072.jpg 12 | featured_image_width: 4608 13 | featured_image_height: 3072 14 | featured_image_alt: "Colorful toy alphabet blocks" 15 | featured_image_caption: | 16 | Image: Susan Holt Simpson; Unsplash 17 | 18 | --- 19 | 20 | Interested in building a new website with, or converting an existing site to, either of the two best [static site generators](https://jamstack.org/generators) (SSGs)? Please read on, my friend. 21 | 22 | Recently, I've been spending spare hours working on [Eleventy](https://11ty.dev) and [Hugo](https://gohugo.io) **starter sets** for folks like you. And they're not only updated versions of the ones I [announced last July](/posts/2020/07/beginners-luck), but also **two new ones** I'm announcing today. 23 | 24 | Rather than expect you to find them on your own in my various scattered references across my humble little site, I thought I'd write this brief post to list them all together. Maybe you'll find them helpful in whatever you choose to do in Eleventy or Hugo. Each is always based on the current appearance and layout of this site, which I hope will make clearer the connection between the code and the result. 25 | 26 | I'll list each by the name of its respective [repository](https://en.wikipedia.org/wiki/Software_repository) ("repo") in [GitHub](https://github.com). I've also linked each to its live demo on [Vercel](https://vercel.com). 27 | 28 | ## Eleventy starters 29 | 30 | Incidentally: the *eleventy_solo* in each Eleventy starter's name comes from that of [**this** site's repo](https://github.com/brycewray/eleventy_solo) (and, if you're wondering why I chose that name, you may want to see my [post from last year](/posts/2020/05/going-solo-eleventy) about when, and why, I converted the site over from Eleventy/[webpack](https://webpack.js.org) to Eleventy-only). 31 | 32 | The Eleventy starters are distinguished by two things: which of the [numerous Eleventy **templating choices**](https://www.11ty.dev/docs/languages/) they use, [JavaScript](https://www.11ty.dev/docs/languages/javascript/) or [Nunjucks](https://www.11ty.dev/docs/languages/nunjucks/); and how they're **styled**. 33 | 34 | So, here we go. 35 | 36 | - **[eleventy_solo_starter](https://github.com/brycewray/eleventy_solo_starter)**---JavaScript templating; [Tailwind CSS](https://tailwindcss.com), which as of version 2.1.0 includes the just-in-time (JIT) compiler (for details about the advantages of this experimental addition to Tailwind, refer to the [official announcement](https://blog.tailwindcss.com/just-in-time-the-next-generation-of-tailwind-css) as well as [my related post](/posts/2021/03/jit-game-changer-tailwind-css/)). [View the demo](https://eleventy-solo-starter-alpha.vercel.app/). 37 | - **[eleventy_solo_starter_njk](https://github.com/brycewray/eleventy_solo_starter_njk)**---[Nunjucks](https://mozilla.github.io/nunjucks) templating; Tailwind CSS, now with the JIT compiler. [View the demo](https://eleventy-solo-starter-njk.vercel.app/). 38 | - **[eleventy_solo_starter_scss](https://github.com/brycewray/eleventy_solo_starter_scss)** *(**new**)*---JavaScript templating; [Sass/SCSS](https://sass-lang.com). [View the demo](https://eleventy-solo-starter-scss.vercel.app). 39 | - **[eleventy_solo_starter_njk_scss](https://github.com/brycewray/eleventy_solo_starter_njk_scss)** *(**new**)*---Nunjucks templating; Sass/SCSS. [View the demo](https://eleventy-solo-starter-njk-scss.vercel.app). 40 | 41 | ## Hugo starters 42 | 43 | For now, I still have only two Hugo starters. This is for two reasons: there's only one form of templating in Hugo (Go-based templating); and the Tailwind JIT compiler isn't yet compatible with Hugo. One is based on Tailwind CSS (again, no JIT) and the other on Sass/SCSS. Once the Hugo-*vs.*-JIT issues are resolved, I'll likely add a JIT-equipped Hugo starter, too. 44 | 45 | - [hugo_twcss](https://github.com/brycewray/hugo_twcss)---Tailwind CSS. [View the demo](https://hugo-twcss.vercel.app). 46 | - [hugo_solo](https://github.com/brycewray/hugo_solo)---Sass/SCSS. [View the demo](https://hugo-solo.vercel.app). 47 | 48 | ## Enjoy 49 | 50 | As usual, I've learned a few things while working on these, including the need to fix some embarrassing oversights in the older ones. Regardless of your proficiency with Eleventy and/or Hugo, perhaps you'll find them similarly educational. Have fun with them. 51 | 52 | If you use one of the repos, you'll probably want to "watch" that repo for changes (which have been frequent of late). Also, please [let me know](/contact)---including with [GitHub issues](https://guides.github.com/features/issues/), if you prefer---if you encounter difficulties with any of them. 53 | 54 | Happy SSG-ing! -------------------------------------------------------------------------------- /src/posts/2018/10/web-typography-part-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: singlepost 3 | tags: post 4 | title: "Readable web text, pretty please" 5 | subtitle: "Part 1 of a two-part series on web typography" 6 | description: "Can we just agree that type on the web should be, y’know, readable?" 7 | author: Bryce Wray 8 | date: 2018-10-17T14:40:00-05:00 9 | lastmod: 2020-09-23T07:07:00-05:00 10 | discussionId: "2018-10-web-typography-part-1" 11 | featured_image: "letters-691842_2504x1676.jpg" 12 | featured_image_width: 2504 13 | featured_image_height: 1676 14 | featured_image_alt: "Letters for old-style typesetting" 15 | featured_image_caption: | 16 | Image: Free-Photos; Pixabay 17 | --- 18 | 19 | As I suggested in a [recent post](/posts/2018/09/why-finally-settled-ulysses), I'm more than a little hung up on on-screen type; so I thought I'd do a little two-part series on website typography and share some appropriate insights and tips. They come from two decades as a web designer and three-and-a-half decades as a writer and formatter---oh, and nearly six decades of reading. Perhaps you'll find them useful. 20 | 21 | ## Readability . . . ! Do you _speak_ it? 22 | 23 | One would hope the following statement wouldn't be too terribly controversial but, given the appearance of many pages on the web these days, I fear it may be: 24 | 25 | _At a minimum, body type on web pages should be **easily readable** by anyone with **reasonably** normal vision and a **reasonably** functional and **reasonably** sized display_. 26 | 27 | (Note that I said, "body type." That's an important distinction. There should be a little more leeway for headlines, especially large ones.) 28 | 29 | By "easily readable," I mean: 30 | 31 | - **It should have decent contrast**.---In other words, there should be enough difference between the color of the type and the color of the background. 32 | I don't mean stark black on stark white, or vice versa, because that's _too_ much contrast on a display---especially on a super-high-contrast [OLED](https://en.wikipedia.org/wiki/OLED) display such as is becoming _de rigueur_ for [smartphones](https://www.oled-info.com/oled_devices/mobile_phones). UI experts have told me they suggest a combination of #333 (really dark gray) on \#fff (white). That's what I have on this site, except for headlines and the nav menu. 33 | So, no, having a substantial part of your page's body text appear as light-to-medium gray on white (or, worse, dark gray on black) isn't a good idea. By the way, the same is true for link text, particularly if you don't underline links (which I formerly didn't because I thought it was too 1990s-ish, but changed my mind after learning about the [difficulty that non-underlined links can cause, especially for the visually impaired](https://webaim.org/techniques/hypertext/link_text)). Link text should be a **different** color from your body text and **not** some color that melts into the background. Don't make me come over there and lecture you about ["mystery meat" navigation](http://www.webpagesthatsuck.com/mysterymeatnavigation.html). 34 | However, there's more to this. 35 | - **It should have sufficient width**.---With the ready availability of web fonts (a separate subject which I'll address in Part 2), many website designers want to use some of the slick, ultra-thin type they've seen, or implemented, in video or print. And, again, that's fine in sufficiently large **headline** text. But I draw the line on body text for a web page; that's no place for super-thin type. Indeed, it's yet another barrier to sufficient contrast. 36 | 37 | ## Now that's (not) what I'm talkin' about 38 | 39 | But, rather than rant aimlessly, let me show you some examples of sins against either or both of these principles of web typography. They were current as of when I originally posted this. 40 | 41 | {% imgc "Typography-scr-cap-2-2018-10-16_1344x200.jpg", "Thin and dim text that is hard to read", 1344, 200 %} 42 | 43 | {% imgc "Typography-scr-cap-3-2018-10-16_1398x252.jpg", "More dim text that is hard to read", 1398, 252 %} 44 | 45 | {% imgc "Typography-scr-cap-4-2018-10-16_1398x164.jpg", "Still more dim text that is hard to read", 1398, 164 %} 46 | 47 | We can do better, friends. 48 | 49 | I close with these comments, by blogger Kevin Marks, taken from a [2016 article](https://www.telegraph.co.uk/science/2016/10/23/internet-is-becoming-unreadable-because-of-a-trend-towards-light/) in _The Telegraph_: 50 | 51 | > To arbitrarily throw away contrast based on a fashion that looks good on my perfect screen in my perfectly lit office is abdicating [designers'] responsibilities to the very people for whom they are designing. My plea to designers and software engineers: Ignore the fads and go back to the typographic principles of print. You'll be making things better for people who read on smaller, dimmer screens, even if their eyes aren't aging like mine. It may not be trendy, but it's time to consider who is being left out by the web's aesthetic. 52 | 53 |54 | 55 | _In [Part 2](/posts/2018/10/web-typography-part-2/), I'll cover why_ this _site's typography looks the way it does, including why it doesn't look the same on different platforms---and why that's not only on purpose but also just fine and dandy. (Heresy!)_ -------------------------------------------------------------------------------- /src/posts/2020/11/mixed-nuts-2020-11.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: singlepost 3 | title: "Mixed nuts • November, 2020" 4 | subtitle: "Another set of odd-servations" 5 | description: "Follow my erratic mind, if you dare, as it proves anew that it deserves that adjective." 6 | author: Bryce Wray 7 | date: 2020-11-07T10:10:00-06:00 8 | lastmod: 2020-12-12T13:20:00-06:00 9 | draft: false 10 | discussionId: "2020-11-mixed-nuts-2020-11" 11 | featured_image: "usman-yousaf-qHETVV5u7Wk-unsplash_5184x3456.jpg" 12 | featured_image_width: 5184 13 | featured_image_height: 3456 14 | featured_image_alt: "Overhead view of mixed nuts in a decorative glass dish on an orange surface" 15 | featured_image_caption: | 16 | Image: Usman Yousaf; Unsplash 17 | --- 18 | 19 | Given the course of recent events in our storm-tossed existence, both here in the United States and elsewhere, it seems a good time to whip out another set of those miscellaneous observations I typically call "mixed nuts" (most recent such assortment was [this example](/posts/2020/09/mixed-nuts-2020-09)) . . . 20 | 21 | ---- 22 | 23 | Regardless of which country you inhabit or which party (if any) you follow, you can be sure of this about elections: the good guys always want all legally qualified citizens to vote *and* want all the votes to be counted, no matter how long it takes. 24 | 25 | *Trying to sell your house? Don't rely on those "we-buy-it-quick-so-you-can-get-out" companies, hereafter referred to as* ZeeCOs. *Folks I know contracted with a ZeeCO to buy their old house so they could get a new one. Just days before the dual closings, the ZeeCO suddenly backed out because the neighborhood's homeowners' association (HOA) was being sued for reasons that had zero effect on the [saleability](https://dictionary.cambridge.org/us/dictionary/english/saleable) of these folks' old house.[^1] Fortunately, they made other arrangements and still got the new house, but they'd learned never to trust ZeeCOs.* 26 | 27 | O, for the return of *real* cable news channels, fashioned after the way they operated before the mid-1990s, back when they actually spent most of their 24-hour cycles *reporting* and (mostly) separated editorial comments into a blissfully few specific panel shows. 28 | 29 | *Although this site is [now more than two years old](/posts/2020/09/two-but-not-terrible), only recently have I grasped the [importance of making a website properly cache its static assets](https://gtmetrix.com/leverage-browser-caching.html)---so, for example, your browser doesn't have to reload the CSS file every time you go from one of my pages to another. Thus, it was my pleasant surprise, on this site's recent, temporary return to the [Hugo](https://gohugo.io) static site generator (SSG), to discover how easy Hugo makes this process, thanks to its [fingerprinting capability](https://gohugo.io/hugo-pipes/fingerprint/). With [Eleventy](https://11ty.dev), you need some additional, external trickiness about which I learned and will be writing in the near future.* 30 | 31 | While writing a few days ago in [Ulysses](https://ulysses.app), I suddenly found I couldn't add footnotes, among other usually available elements, within "sheets" (as they're called in Ulysses-ese) created with the latest version. Reported to Big U Support. Turned out that, somehow, I'd switched Ulysses to vanilla [Markdown](https://daringfireball.net/projects/markdown) rather than its default flavor, Markdown XL. Oops. Just noting it in case other Ulysses users run into similar problems. 32 | 33 | *My "lurch" among [Jamstack](https://jamstack.wtf)-savvy website hosts [over](/posts/2020/07/goodbye-hello) [the](/posts/2020/07/goodbye-hello-part-2) [last](/posts/2020/08/goodbye-hello-part-3) [few](/posts/2020/09/goodbye-hello-part-4) [months](/posts/2020/09/goodbye-hello-part-5) makes it clear that, of the "automatic" hosts[^2], [Vercel](https://vercel.com)'s free tier has by far the best combination of superior worldwide performance (especially because of the [recent enhancements](https://vercel.com/blog/new-edge-dev-infrastructure) to its [Edge Network](https://vercel.com/docs/edge-network/overview)) and clean, no-fuss maintenance. That said, my [experiment](/posts/2020/10/forward-paas) with [Cloudflare Workers sites](https://workers.cloudflare.com) and [Workers KV storage](https://developers.cloudflare.com/workers/learning/how-kv-works) was extremely interesting from a geekiness standpoint and, were I to drop Vercel for some reason, a Cloudflare Workers site---although **not** free---would be the very close second choice.* 34 | 35 | **Update**: Cloudflare's subsequent announcement of a **free** tier for Cloudflare Workers KV storage followed by my successful test of that tier's performance further changed the equation, as explained in the updates I've since made to "[Forward PaaS](/posts/2020/10/forward-paas)." {.yellowBox} 36 | 37 | [^1]: If you think HOAs don't often get sued, you're kidding yourself. 38 | 39 | [^2]: By "automatic" host, I mean one that deploys your website every time you push a change to the site's remote repository. By contrast, you have to set up your own continuous deployment---*e.g.*, a [GitHub Action](https://github.com/features/actions/)---to deploy a [Firebase](https://firebase.google.com) site or a [Cloudflare Workers site](https://workers.cloudflare.com) that way. -------------------------------------------------------------------------------- /src/about/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: singlepost 3 | title: About me 4 | subtitle: Just who do I think I am? 5 | description: Not a bio (you’d fall asleep), but just some explanatory observations. 6 | author: Bryce Wray 7 | date: 2018-09-14T15:00:00-05:00 8 | lastmod: 2021-01-30T13:55:00-05:00 9 | discussionId: "about" 10 | featured_image: question-mark-over-mac-keyboard-49958_1280x905.jpg 11 | featured_image_width: 1280 12 | featured_image_height: 905 13 | featured_image_alt: Stylistic image of question mark superimposed over computer keyboard 14 | featured_image_caption: | 15 | Image: Dalomo; Pixabay 16 | --- 17 | 18 | Welcome. 19 | 20 | Eons ago, when [the web was a new thing](http://info.cern.ch/hypertext/WWW/TheProject.html)---and people still capitalized *Web* and used two words for *Web site*, consarn it---[ISPs](https://en.wikipedia.org/wiki/Internet_service_provider) tended to provide free file space for people to have [little personal websites](https://consumerist.com/2015/03/20/where-did-everyone-from-the-90s-go-when-we-all-got-facebook-and-quit-web-1-0/). Back in those days, one did so with whatever [FTP](https://en.wikipedia.org/wiki/File_Transfer_Protocol) client one could find, what we now know as static [HTML](https://www.w3schools.com/html/html_intro.asp) files (but not [CSS](https://www.w3schools.com/Css/), not yet anyway), and lots and lots of [dialup modem noise](https://en.wikipedia.org/wiki/File:Dial_up_modem_noises.ogg). 21 | 22 | And, yes, I had one, back on what then was called [GTE.net](https://en.wikipedia.org/wiki/GTE). In fact, I was a "Charter Subscriber" to that ISP. 23 | 24 | {% imgc "gte-net_HTML_1997-04-17_crop_1280x715.jpg", "HTML code from a 1997 website", 1280, 715 %} 25 | 26 | Yet, as that free-file-space thing gradually went away, so, too, did many personal sites---mine among them. 27 | 28 | Over the years, database-driven content management systems ([CMSs](https://en.wikipedia.org/wiki/Web_content_management_system)) like [WordPress](https://wordpress.org) appeared. They provide click-and-drag ease in building a personal site, but they tend to be [security nightmares unless properly maintained](https://ithemes.com/2017/01/16/wordpress-security-issues/), which many aren't. They also introduce a great deal of technical overhead. 29 | 30 | And then there are creatures like Facebook, Instagram, and Twitter, which [for all too many people](https://ia.net/topics/take-the-power-back) have become the only Web-based locations for ordinary folks’ thoughts. Of course, [all these platforms want](https://adammclane.com/2013/03/in-social-media-you-are-the-product/) is to grab your information, show you ads, and---particularly in the case of Facebook---contribute to the [dumbing-down of your culture](https://www.salon.com/2017/07/16/how-social-media-is-dumbing-down-our-communication/) and the [political polarization of your society](https://www.sciencedirect.com/science/article/pii/S0736585317305208). What's the harm??!? 31 | 32 | (Don't worry. This site is, and will remain, apolitical by design unless we're nearing World War III or something along those lines. Maybe even then, since I doubt my little ol’ site is going to stop The Really Big One.) 33 | 34 | Anyway, it seemed a lot of the fun had gone out of puttering around on the web and actually creating content. Then---first among the techno-cognoscenti and, more recently, among us ordinary folks---came websites powered by [static site generators (SSGs)](https://www.staticgen.com) and written in [Markdown](https://daringfireball.net/projects/markdown/). I found them a source of curiosity at first but gradually became more interested in the prospect, especially as I learned more about their [technical advantages](https://www.makeuseof.com/tag/reasons-ditch-cms-static-site-generator/); and, so, here we are. 35 | 36 | ## As for me . . . 37 | 38 | So, who am I, and what business do I have putting yet another site on this already overstuffed web? 39 | 40 | I love to write. More often than not, the muse is in one of her oh-let's-go-"techy"-instead-of-"fictiony" moods and so she tells me to write more stuff on this site. Sometimes it's even about the app or apps I use to write, which leads me to the next point . . . 41 | 42 | Am I anybody special? Nope; just an ordinary working guy who, for decades, has used a multitude of computing devices, operating systems, and apps---and learned a few things (and formed more than a few opinions) along the way. I've been told I can make complicated things easier to understand, and I try to do the same here. 43 | 44 | Finally: since the Kewl Kids went off and left us non-SSG users in the dust, it behooved me and my geek's curiosity to give this stuff a try, and that was the main reason I started the site in the first place. As one who's long delighted in hand-coding websites whenever possible, I love seeing the comeback of static sites. 45 | 46 | Thank you for stopping by. I hope you find this site a source of various little nuggets of helpful info, and occasionally a laugh or two---even if I hadn't intended it, but especially if I had. 47 | 48 | Again, welcome. 49 | 50 | **Note**: For those familiar with the site, you'll see that this text now encompasses both the long-time "About me" text and the site's original home page "welcome" text. 51 | {.yellowBox} -------------------------------------------------------------------------------- /src/posts/2021/07/gems-in-rough-07.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: singlepost 3 | title: "Gems in the rough #7" 4 | subtitle: "Eleventy Meetup #1, Firefox’s woes, and other website-related arcana" 5 | description: "Static site generator fans, here’s another (sorta) brief set of goodies for your edification." 6 | author: Bryce Wray 7 | date: 2021-07-17T14:23:00-05:00 8 | lastmod: 2021-07-18T13:28:00-05:00 9 | discussionId: "2021-07-gems-in-rough-07" 10 | featured_image: "gemstones-1419780_3648x2736.jpg" 11 | featured_image_width: 3648 12 | featured_image_height: 2736 13 | featured_image_alt: "Close-up view of colorful gemstones" 14 | featured_image_caption: | 15 | Image: cabotots; Pixabay 16 | --- 17 | 18 | Each entry in the "Gems in the rough" series is a collection of tips, explanations, and/or idle observations which I hope will be at least somewhat useful to those of you with websites built by [static site generators (SSGs)](https://jamstack.org/generators). 19 | {.blueBox} 20 | 21 | ## Eleventy Meetup #1 22 | 23 | The inaugural **[Eleventy Meetup](https://11tymeetup.dev/)** occurred earlier this week, and it was a blast. We heard interesting talks from [Eleventy](https://11ty.dev) creator [Zach Leatherman](https://zachleat.com) and [Mike Aparicio](https://twitter.com/peruvianidol) of [11ty.recipes](https://11ty.recipes) fame (and Mike's dog, too, albeit briefly). A good time was had by all. If you have the slightest interest in Eleventy, I urge you to check the [Meetup site](https://11tymeetup.dev) and sign up for the newsletter so you can be advised of future sessions. 24 | 25 | ## Firefox slips further 26 | 27 | Things are not great in the world of [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/) right now, and they got even sadder this week with news that, according to [StatCounter](https://gs.statcounter.com/browser-market-share), Firefox's share of the browser market in June dipped below that of [Microsoft Edge](https://www.microsoft.com/en-us/edge) and is nearing that of the [browser that ships with Samsung phones](https://en.wikipedia.org/wiki/Samsung_Internet) (which I'd guess many Samsung users eschew in favor of, yep, [Chrome](https://www.google.com/chrome/)): 28 | 29 | {% imgc "2021-07-17_StatCounter-browser-mkt-shr_June-2021_1872x576.png", "Screen capture of StatCounter’s June 2021 display of worldwide browser market share", 1872, 576 %} 30 | 31 | As for the elephant in the room represented by these numbers: we've clearly reached a phase of browser use like that of the "Internet Explorer *is* the internet" days where Chrome's massive and *non*-imperiled market share is concerned. Barring outside action by regulators that could affect this in ways not currently expected, I guess we who build websites will just have to hope our [new insect overlords](https://knowyourmeme.com/memes/i-for-one-welcome-our-new-insect-overlords) don't abuse this. (Yeah, right.) 32 | 33 | ## Azure Static Web Apps 34 | 35 | It escaped my notice until this week that Microsoft's [Azure Static Web Apps](https://azure.microsoft.com/en-us/services/app-service/static/) service [has been in general availability for two months](https://azure.microsoft.com/en-us/blog/develop-production-scale-modern-web-apps-quickly-with-azure-static-web-apps/). On learning this, I decided to give ASWA a try with the same Eleventy-based test repo I use on various [Jamstack](https://jamstack.org)-savvy hosts. 36 | 37 | Getting signed up was, well, challenging, as one tends to find for most things [Azure](https://azure.microsoft.com/en-us/); and the build process was lengthy[^ASWAslowbuild] and supports only a limited number of SSGs, *not* including Eleventy as of now. Still, I got it going. 38 | 39 | In my tests so far, the ASWA site's performance is so-so, especially compared to that of hosts with *far* less up-front hassle. It's not terrible, but I'd have expected more from an Azure-hosted site. Will keep a watch on it but, for now, I'm of the opinion that Microsoft is content to let the usual Jamstack hosts lead the way since ASWA probably doesn't fit its business model all that well. 40 | 41 | [^ASWAslowbuild]: To be fair, I should note that it depends on [GitHub Actions](https://github.com/features/actions), which in my experience adds about ninety to 120 seconds to the process on its own. That said, a build process taking nearly three times as long on ASWA compared to a similarly GitHub Actions-fueled one on a [CloudFlare Workers site](https://workers.cloudflare.com) doesn't augur well for Microsoft's setup right now. 42 | 43 | ## Comment-by-email 44 | 45 | On one of my at-least-daily visits to the [Eleventy Discord](https://www.11ty.dev/blog/discord/), I noticed a link to "[Emails, not comments](https://luke.work/blog/2021/07/alternative-to-comments/)" by [Luke Harris](https://twitter.com/lkhrs). The article described how, having decided not to have a commenting platform on his Eleventy site anymore, Mr. Harris made it a one-click action for anyone to reply to his articles by email. (He'd probably want me to add that he got the idea from [Kev Quirk's site](https://kevq.uk/), as the linked article duly notes.) 46 | 47 | The process was both appealingly simple and, to me, geekily interesting; so I stole, um, adopted his approach---as you can see at the bottom of this post, as well as all other pages on the site using the same template. Thank you, sir! -------------------------------------------------------------------------------- /src/posts/2021/02/tailwind-head-hugo-pipes.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: singlepost 3 | title: "Tailwind-to-head with Hugo Pipes" 4 | subtitle: "An easy way to get internal CSS" 5 | description: "If your website draws that “render-blocking resource” gripe during tests, here’s one method for fighting it." 6 | author: Bryce Wray 7 | date: 2021-02-02T16:25:00-06:00 8 | lastmod: 2021-03-20T17:30:00-05:00 9 | #draft: false 10 | discussionId: "2021-02-tailwind-head-hugo-pipes" 11 | featured_image: "code-html-head-5421210_5103x3403.jpg" 12 | featured_image_width: 5103 13 | featured_image_height: 3403 14 | featured_image_alt: "Closeup of display of web page's HTML HEAD section" 15 | featured_image_caption: | 16 | Image: Sárfi Benjámin; Pixabay 17 | --- 18 | 19 | **Note**: For a [Eleventy](https://11ty.dev)-based solution, see "[Tailwind-to-head with Eleventy](/posts/2021/03/tailwind-head-eleventy)" from a few weeks later. 20 | {.yellowBox} 21 | 22 | External *vs.* internal---that is the question. At least, it is when you're considering how and where to provide CSS in your website. 23 | 24 | Among the CSS *cognoscenti*, there are endless debates about whether your site's CSS should be in one or more separate files (external) or included in ` 52 | {{ end }} 53 | ``` 54 | {% endraw %} 55 | 56 | ## SCSS, anyone? 57 | 58 | Finally, as a bonus, here's how you do it if you prefer to use [SCSS](https://sass-lang.com) (for which Hugo Pipes has its own out-of-the-box capabilities, not requiring either PostCSS or Node.js) rather than Tailwind CSS. As before, **external** first: 59 | 60 | {% raw %} 61 | ```go 62 | {{ $options := (dict "targetPath" "css/index.css" "outputStyle" "compressed" ) }} 63 | {{ $css := resources.Get "scss/index.scss" | resources.ToCSS $options | fingerprint }} 64 | ``` 65 | {% endraw %} 66 | 67 | . . . and then, **internal**: 68 | 69 | {% raw %} 70 | ```go 71 | {{ with resources.Get "scss/index.scss" | resources.ToCSS (dict "outputStyle" "compressed") }} 72 | 73 | {{ end }} 74 | ``` 75 | {% endraw %} 76 | 77 | Whichever way you roll on each choice above---external *vs.* internal, Tailwind/PostCSS *vs.* SCSS---here's hoping this is useful information for you Hugo aficionados. -------------------------------------------------------------------------------- /src/posts/posts.njk: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | tags: 4 | - nav 5 | navtitle: Posts 6 | title: Posts 7 | description: Posts for this website 8 | eleventyExcludeFromCollections: true 9 | pagination: 10 | data: collections.post 11 | size: 5 12 | reverse: true 13 | alias: posts 14 | --- 15 | 16 |
22 | {% if pagination.firstPageHref != page.url %} 23 | {{ '/src/assets/svg/svgPrevPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgPrevPageIcon.svg' | svgContents | safe }} 24 | 25 | {{ '/src/assets/svg/svgPrevPageIcon.svg' | svgContents | safe }} 26 | {% else %} 27 | {{ '/src/assets/svg/svgFirstPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgFirstPageIcon.svg' | svgContents | safe }} 28 | 29 | {{ '/src/assets/svg/svgFirstPageIcon.svg' | svgContents | safe }} 30 | {% endif %} 31 | 32 | {% if pagination.lastPageHref != page.url %} 33 | {{ '/src/assets/svg/svgNextPageIcon.svg' | svgContents | safe }} 34 | 35 | {{ '/src/assets/svg/svgNextPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgNextPageIcon.svg' | svgContents | safe }} 36 | {% else %} 37 | {{ '/src/assets/svg/svgLastPageIcon.svg' | svgContents | safe }} 38 | 39 | {{ '/src/assets/svg/svgLastPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgLastPageIcon.svg' | svgContents | safe }} 40 | {% endif %} 41 |
42 |{{ post.data.subtitle | safe }}
47 |
48 | {% if post.data.lastmod %}
49 |
Last modified
50 | {% endif %}
51 |
53 | {{ post.data.description | safe }} 54 |
55 |59 | {% if pagination.firstPageHref != page.url %} 60 | {{ '/src/assets/svg/svgPrevPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgPrevPageIcon.svg' | svgContents | safe }} 61 | 62 | {{ '/src/assets/svg/svgPrevPageIcon.svg' | svgContents | safe }} 63 | {% else %} 64 | {{ '/src/assets/svg/svgFirstPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgFirstPageIcon.svg' | svgContents | safe }} 65 | 66 | {{ '/src/assets/svg/svgFirstPageIcon.svg' | svgContents | safe }} 67 | {% endif %} 68 | 69 | {% if pagination.lastPageHref != page.url %} 70 | {{ '/src/assets/svg/svgNextPageIcon.svg' | svgContents | safe }} 71 | 72 | {{ '/src/assets/svg/svgNextPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgNextPageIcon.svg' | svgContents | safe }} 73 | {% else %} 74 | {{ '/src/assets/svg/svgLastPageIcon.svg' | svgContents | safe }} 75 | 76 | {{ '/src/assets/svg/svgLastPageIcon.svg' | svgContents | safe }}{{ '/src/assets/svg/svgLastPageIcon.svg' | svgContents | safe }} 77 | {% endif %} 78 |
79 |