-
Notifications
You must be signed in to change notification settings - Fork 3
chore: rewire blog and RSS feed for 11ty #319
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
b8e661d
76859b5
fa396ec
20ad781
516f923
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| // /blog/:year/:slug/ | ||
| const permalink = ({ page: { date, fileSlug } }) => `/blog/${date.getFullYear()}/${fileSlug}/`; | ||
|
|
||
| export default { | ||
| layout: "blog_post", | ||
| permalink, | ||
| tags: ["posts"], | ||
|
thekaveman marked this conversation as resolved.
|
||
| }; | ||
|
jgravois marked this conversation as resolved.
Outdated
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <!-- | ||
|
|
||
| # Pretty Atom Feed (v3) | ||
|
|
||
| Based on "Pretty RSS Feed": https://github.com/genmon/aboutfeeds/issues/26 | ||
|
|
||
| Styles an Atom feed, making it friendly for humans viewers, and adds a link | ||
| to aboutfeeds.com for new user onboarding. See it in action: | ||
|
|
||
| https://nicolas-hoizey.com/feeds/all.xml | ||
|
|
||
| --> | ||
| <xsl:stylesheet | ||
| version="3.0" | ||
| xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | ||
| xmlns:atom="http://www.w3.org/2005/Atom"> | ||
| <xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/> | ||
| <xsl:template match="/"> | ||
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> | ||
| <head> | ||
| <meta charset="utf-8"/> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1"/> | ||
| <title><xsl:value-of select="atom:feed/atom:title"/></title> | ||
| <style type="text/css">*{box-sizing:border-box}body{background-color:#fff;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";line-height:1.5}a{color:#0366d6;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:40rem;margin:1rem auto;padding:1rem}nav{margin-top:2rem;margin-bottom:2rem}p{margin-top:0;margin-bottom:1rem}h1,h2,h3{margin-top:0;margin-bottom:1rem;font-weight:600;line-height:1.25}h1{padding-bottom:.3em;font-size:2em}h1 svg{padding-right:.25rem;vertical-align:text-bottom;width:1.2em;height:1.2em}h2{margin-top:1.5rem;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}h3{font-size:1.25em;margin-bottom:0}.about{background-color:#fff5b1;margin:.25rem -.25rem;padding:.25rem}header{padding-top:2rem;padding-bottom:2rem}.item{padding-bottom:2rem}.gray{color:#586069}</style> | ||
| </head> | ||
| <body> | ||
| <nav class="container"> | ||
| <p class="about"> | ||
| <strong>This is a web feed,</strong> also known as an RSS or Atom feed.<br /><strong>Subscribe</strong> by copying the URL from the address bar into your newsreader. | ||
| </p> | ||
| <p class="gray"> | ||
| Visit <a href="https://aboutfeeds.com">About Feeds</a> to get started with newsreaders and subscribing. It’s free. | ||
| </p> | ||
| </nav> | ||
| <div class="container"> | ||
| <header> | ||
| <h1> | ||
| <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 256 256"> | ||
| <defs> | ||
| <linearGradient x1="0.085" y1="0.085" x2="0.915" y2="0.915" id="RSSg"> | ||
| <stop offset="0.0" stop-color="#E3702D"/><stop offset="0.1071" stop-color="#EA7D31"/> | ||
| <stop offset="0.3503" stop-color="#F69537"/><stop offset="0.5" stop-color="#FB9E3A"/> | ||
| <stop offset="0.7016" stop-color="#EA7C31"/><stop offset="0.8866" stop-color="#DE642B"/> | ||
| <stop offset="1.0" stop-color="#D95B29"/> | ||
| </linearGradient> | ||
| </defs> | ||
| <rect width="256" height="256" rx="55" ry="55" x="0" y="0" fill="#CC5D15"/> | ||
| <rect width="246" height="246" rx="50" ry="50" x="5" y="5" fill="#F49C52"/> | ||
| <rect width="236" height="236" rx="47" ry="47" x="10" y="10" fill="url(#RSSg)"/> | ||
| <circle cx="68" cy="189" r="24" fill="#FFF"/> | ||
| <path d="M160 213h-34a82 82 0 0 0 -82 -82v-34a116 116 0 0 1 116 116z" fill="#FFF"/> | ||
| <path d="M184 213A140 140 0 0 0 44 73 V 38a175 175 0 0 1 175 175z" fill="#FFF"/> | ||
| </svg> | ||
| <xsl:value-of select="atom:feed/atom:title"/> | ||
| </h1> | ||
| <p><xsl:value-of select="atom:feed/atom:subtitle"/></p> | ||
| <p>This preview only shows titles, but the actual feed contains the full content.</p> | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. #175 was the original issue (submitted by an outside reader) that prompted us to publish a feed. In the same issue, the requestor made the point that publishing the full post body in the feed was more desirable, as it lets folks read the post in their preferred reader app/interface. I don't see a strong reason to change this behavior.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah maybe this is only the case in this XSLT transformation of the feed, displayed in browsers? It seems like the feed as seen by feed readers still contains the full post body, as shown in your validator link: https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fdeploy-preview-319--compilerla.netlify.app%2Fblog%2Ffeed.xml
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. unless i've lost the plot, the that said, i'll make a note to fire up an actual RSS reader to be absolutely certain this is the case before we merge #302
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm pretty sure I'm the one that lost the plot. Got confused between the actual feed and the XSLT styled version of the feed that shows up in the browser. Have to say, I've always hated XSLT 😅 This is the kind of change that I'd rather was either documented in a ticket and/or discussed ahead of implementation. It's a fairly big addition / change from where we were before. I think we can merge it but here are some additional thoughts it would have been worth discussing ahead of time:
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i hear that. if anyone else has reservations about merging as-is i don't mind yanking the .xslt file here and looping back to discuss it independently.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good discussion here, and I'm ok with merging as-is 👍
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, on second thought, maybe let's pull it for now and revisit later.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. works for me 20ad781 |
||
| <a> | ||
| <xsl:attribute name="href"> | ||
| <xsl:value-of select="/atom:feed/atom:link[not(@rel)]/@href"/> | ||
| </xsl:attribute> | ||
| Visit Website → | ||
| </a> | ||
| </header> | ||
| <h2>Recent Items</h2> | ||
| <xsl:apply-templates select="atom:feed/atom:entry" /> | ||
| </div> | ||
| </body> | ||
| </html> | ||
| </xsl:template> | ||
| <xsl:template match="atom:feed/atom:entry"> | ||
| <div class="item"> | ||
| <h3> | ||
| <a> | ||
| <xsl:attribute name="href"> | ||
| <xsl:value-of select="atom:link/@href"/> | ||
| </xsl:attribute> | ||
| <xsl:value-of select="atom:title"/> | ||
| </a> | ||
| </h3> | ||
| <small class="gray"> | ||
| Published: <xsl:value-of select="atom:updated" /> | ||
| </small> | ||
| </div> | ||
| </xsl:template> | ||
| </xsl:stylesheet> | ||
Uh oh!
There was an error while loading. Please reload this page.