TextEdit (macOS) settings:
1. “New Document” → “Format” → “Plain text.”
2. “Open and Save” → “When Opening a File” → “Display HTML files as HTML code instead of formatted text.”
Webpages — all in the same iCloud Drive folder named “justin-reeves”:
1. TextEdit .html files — including “index.html” (becomes the home page or apex domain, in this case “justin-reeves.net”).
2. .png (image) files — Apple’s Photos app’s files have to be “exported.”
3. a TextEdit .xml (RSS 2.0) file (“rss.xml”).
E-mail: iCloud Mail with iCloud+ custom domain name — e-mail @ justin-reeves.net, not @ icloud.com.
Domain name (web address) registrar: Cloudflare.
Web server (host): Cloudflare Pages.
Cloudflare Pages:
1. “Direct Upload,” not GitHub.
2. Graphical interface, not command-line interface (Wrangler).
3. “select from computer,” not “drag and drop.”
4. “upload folder,” not “upload zip.”
(“Dashboard” @ Dash.Cloudflare.com → “Workers & Pages: Overview” → “justin-reeves” (my Cloudflare project’s name) → “Create deployment” → “select from computer” → “Upload folder” → “justin-reeves” (my iCloud Drive folder’s name) → “Upload.”)Web design: W3Schools’ “TryIt Editor” and CodePen’s “Pen.”
Cost: $24/year — $1/month for iCloud+, $12/year for my Cloudflare domain.
Had to disable Cloudflare’s “Parking Page” before I could “upload folder” (deploy site) to server.
Had used .htm — not .html — but Cloudflare didn’t redirect justin-reeve.net/index.htm to justin-reeves.net, justin-reeves.net/me.htm to justin-reeves.net/me, etcetera.
justin-reeves.net/rss.xml doesn’t redirect to justin-reeves/rss, so I set two (of three free) Cloudflare permanent “URL forwarding” “Page Rules” (justin-reeves.net/rss and justin-reeves.net/rss/* to justin-reeves.net/rss.xml).
The asterisk after the slash is a “wildcard” that, in this case, captures domains that include justin-reeves.net/rss/ — but not domains without the “trailing slash,” for example: “justin-reeves.net/rss-is-not-dead-yet.”
Redirect Cloudflare subdomains — www.justin-reeves.net, static.justin-reeves.net, etcetera:
1. “Dashboard” (@ Dash.Cloudflare.com) → “Account Home / Websites” → “Select a domain: justin-reeves.net” (“Overview”) → “DNS: Records” → “Add record” → “Type: CNAME” → “Name: *” → “Target: @” → “Save.”
2. “Dashboard” (@ Dash.Cloudflare.com) → “Account Home / Websites” → “Select a domain: justin-reeves.net” (“Overview”) → “Rules: Page Rules” → “Create Page Rule” → “URL: *.justin-reeves.net/*” → “Setting: Forwarding URL” → “status code: Permanent Redirect” → “destination URL: https://justin-reeves.net” → “Save & Deploy.”
1. Verified with Google Search Console: “URL-prefix property,” not “Domain property”; “HTML tag,” not “HTML file upload.” (Didn’t want to download the file, nor keep an extra file.)
2. Another TextEdit .xml file (“sitemap.xml”) in the iCloud Drive folder.
3. Sitemap (https://justin-reeves.net/sitemap.xml) and RSS (https://justin-reeves.net/rss.xml) URLs pasted into Search Console.
4. Imported Search Console sitemaps into Bing Webmaster. (Used “Sign in with Google.”)
Cloudflare:
1. “Always Use HTTPS: on.”
2. “Basic Features: on.”
3. “SSL/TLS encryption mode: Full (strict).”
1. Changed Page Rule (“justin-reeves.net/rss” targets “justin-reeves.net/rss.xml” now “justin-reeves.net/*.htm” targets “https://justin-reeves.net”).
2. Deleted Page Rule (“justin-reeves.net/rss/*” targets “justin-reeves.net/rss.xml”).
3. Kept Page Rule (“*.justin-reeves.net/*” targets “https://justin-reeves.net”).
Two (of ten free) “Redirect Rules”:
1. “Rule name: Redirect from rss and rss/* to rss.xml” → “Custom filter expression” → “Field: URI Full” → “Operator: wildcard” → “Value: *justin-reeves.net/rss” → “Or” → “Field: URI Full” → “Operator: wildcard” → “Value: *justin-reeves.net/rss/*” → “Type: Static” → “URL: https://justin-reeves.net/rss.xml” → “Status code: 301” → “Deploy.”
2. “Rule name: *justin-reeves.net/*/*” → “Custom filter expression” → “Field: URI Full” → “Operator: wildcard” → “Value: *justin-reeves.net/*/*” → “Type: Static” → “URL: https://justin-reeves.net/” → “Status code: 301” → “Select order: custom” → “Select which rule this will fire after: Redirect from rss and rss/* to rss.xml” → “Deploy.”
Redirect “*.pages.dev” (“justin-reeves.pages.dev” for project named “justin-reeves”) URLs to custom domain (“justin-reeves.net”):
1. “Bulk Redirects” → “Create Bulk Redirect List” → “Name: pages_dev” → “Source URL: https://justin-reeves.pages.dev” → “Target URL: https://justin-reeves.net” → “Status: 301” → “Edit parameters: Include subdomains, Subpath matching” → “Save.”
2. “Bulk Redirects” → “Create Bulk Redirect Rule” → "Rule name: pages_dev” → “Redirect . . . list: pages_dev” → “Save & Deploy.”
Used the “Markup Validation Service” of the W3C (World Wide Web Consortium).
Discovered that button tags “nested” within link tags are considered “invalid errors” (despite working in browsers).
Wrapping button tags with link tags creates a link that looks like a button but with no colored and underlined “link decoration.”
Wrapping link tags with button tags also works, but is also considered an error, and, by default, does have link decoration (can be removed).
Solution was to remove button tags, remove link decoration, and style links to look like buttons.
Errors part of a broader class of “nested interactive controls,” for example: a button inside another button (when I tested this, the browser made two — separate — buttons).
I don’t know why the convention was adopted, some discussion I found came across circular: it’s not standard because it’s invalid, and not valid because non-standard.
But most emphasize possible problems with keyboard navigation and / or screen reading software (albeit unclear if the problems were created by its adoption).
“HTML Editors” @ W3Schools.com
¶ “XML RSS” @ W3Schools.com
¶ “TryIt” @ W3Schools.com
¶ “Pen” @ CodePen.io
¶ “Deploy Your [Cloudflare] Project” @ Cloudflare.com
¶ “Disable Landing Page” @ Cloudflare.com
¶ “URL Forwarding” @ Cloudflare.com
¶ “Wildcard DNS Records” @ Cloudflare.com
¶ “Wildcard Matching” @ Cloudflare.com
¶ “Search Console” @ Google.com
¶ “Types of Website Properties” @ Google.com
¶ “Sitemaps XML Format” @ Sitemaps.org
¶ “Webmaster” @ Bing.com
¶ “Redirecting *.pages.dev to a Custom Domain” @ Cloudflare.com
¶ “Create [Bulk Redirects] in the Dashboard” @ Cloudflare.com
¶ “Matching the Source URL of Redirects” @ Cloudflare.com
¶ “Markup Validation Service” @ W3.org
Oct 2024