[Blog]: Happy 25th birthday to the "backbone of my internet": RSS feeds
https://bacardi55.io/2024/03/16/happy-25th-birthday-to-the-backbone-of-my-internet-rss-feeds/
A kind of love letter for RSS birthday (a bit late ^^)
#blog #rss #indieweb
{
"type": "entry",
"author": {
"name": "@bacardi55",
"url": "https://social.bacardi55.io/@bacardi55",
"photo": null
},
"url": "https://social.bacardi55.io/@bacardi55/statuses/01HS4TC23R7407TT073K0E2R4Z",
"content": {
"html": "<p>[Blog]: Happy 25th birthday to the \"backbone of my internet\": RSS feeds</p><p><a href=\"https://bacardi55.io/2024/03/16/happy-25th-birthday-to-the-backbone-of-my-internet-rss-feeds/\">https://bacardi55.io/2024/03/16/happy-25th-birthday-to-the-backbone-of-my-internet-rss-feeds/</a></p><p>A kind of love letter for RSS birthday (a bit late ^^)<br /><a href=\"https://social.bacardi55.io/tags/blog\">#<span>blog</span></a> <a href=\"https://social.bacardi55.io/tags/rss\">#<span>rss</span></a> <a href=\"https://social.bacardi55.io/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "[Blog]: Happy 25th birthday to the \"backbone of my internet\": RSS feeds\n\nhttps://bacardi55.io/2024/03/16/happy-25th-birthday-to-the-backbone-of-my-internet-rss-feeds/\n\nA kind of love letter for RSS birthday (a bit late ^^)\n#blog #rss #indieweb"
},
"published": "2024-03-16T23:43:21+00:00",
"post-type": "note",
"_id": "40569584",
"_source": "8007",
"_is_read": false
}
the 32-bit cafe's third community code jam is up and running from today to the 26th! https://tilde.32bit.cafe/~hermit/community_jam_3/
the prompt is "what has creating a website done for you?"
you have until march 26th to complete & submit your page, which will be compiled into a zine! :) can't wait to see what folks do! <3 the submission form will be up soon.
#indieweb #personalwebsites #code #codejam #web #html #css #coding #website
{
"type": "entry",
"author": {
"name": "@xandra",
"url": "https://tilde.zone/@xandra",
"photo": null
},
"url": "https://tilde.zone/@xandra/112107893804143407",
"content": {
"html": "<p>the 32-bit cafe's third community code jam is up and running from today to the 26th! <a href=\"https://tilde.32bit.cafe/~hermit/community_jam_3/\"><span>https://</span><span>tilde.32bit.cafe/~hermit/commu</span><span>nity_jam_3/</span></a></p><p>the prompt is \"what has creating a website done for you?\"</p><p>you have until march 26th to complete & submit your page, which will be compiled into a zine! :) can't wait to see what folks do! <3 the submission form will be up soon.</p><p><a href=\"https://tilde.zone/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://tilde.zone/tags/personalwebsites\">#<span>personalwebsites</span></a> <a href=\"https://tilde.zone/tags/code\">#<span>code</span></a> <a href=\"https://tilde.zone/tags/codejam\">#<span>codejam</span></a> <a href=\"https://tilde.zone/tags/web\">#<span>web</span></a> <a href=\"https://tilde.zone/tags/html\">#<span>html</span></a> <a href=\"https://tilde.zone/tags/css\">#<span>css</span></a> <a href=\"https://tilde.zone/tags/coding\">#<span>coding</span></a> <a href=\"https://tilde.zone/tags/website\">#<span>website</span></a></p>",
"text": "the 32-bit cafe's third community code jam is up and running from today to the 26th! https://tilde.32bit.cafe/~hermit/community_jam_3/\n\nthe prompt is \"what has creating a website done for you?\"\n\nyou have until march 26th to complete & submit your page, which will be compiled into a zine! :) can't wait to see what folks do! <3 the submission form will be up soon.\n\n#indieweb #personalwebsites #code #codejam #web #html #css #coding #website"
},
"published": "2024-03-16T23:11:43+00:00",
"post-type": "note",
"_id": "40569440",
"_source": "8007",
"_is_read": false
}
My website is finally not broken! The fonts work and everything is responsive! I’m not done with the colors, but I’m really happy with how this is progressing. I knew purchasing that Womprat font would eventually pay off!
#WebDev #IndieWeb #StarWars
{
"type": "entry",
"author": {
"name": "@justin",
"url": "https://holonet.social/@justin",
"photo": null
},
"url": "https://holonet.social/@justin/112107889100112603",
"content": {
"html": "<p>My website is finally not broken! The fonts work and everything is responsive! I\u2019m not done with the colors, but I\u2019m really happy with how this is progressing. I knew purchasing that Womprat font would eventually pay off!</p><p><a href=\"https://holonet.social/tags/WebDev\">#<span>WebDev</span></a> <a href=\"https://holonet.social/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://holonet.social/tags/StarWars\">#<span>StarWars</span></a></p>",
"text": "My website is finally not broken! The fonts work and everything is responsive! I\u2019m not done with the colors, but I\u2019m really happy with how this is progressing. I knew purchasing that Womprat font would eventually pay off!\n\n#WebDev #IndieWeb #StarWars"
},
"published": "2024-03-16T23:10:32+00:00",
"post-type": "note",
"_id": "40569441",
"_source": "8007",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@qubyte",
"url": "https://mastodon.social/@qubyte",
"photo": null
},
"url": "https://mastodon.social/@qubyte/112107857504628928",
"content": {
"html": "<p>New blog post published! <a href=\"https://qubyte.codes/blog/indiewebcamp-brighton-2024\"><span>https://</span><span>qubyte.codes/blog/indiewebcamp</span><span>-brighton-2024</span></a> <a href=\"https://mastodon.social/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "New blog post published! https://qubyte.codes/blog/indiewebcamp-brighton-2024 #IndieWeb"
},
"published": "2024-03-16T23:02:29+00:00",
"post-type": "note",
"_id": "40569342",
"_source": "8007",
"_is_read": false
}
Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:
https://cleverdevil.io/archive
My entire public web life, from 2002 to today.
#IndieWeb
{
"type": "entry",
"published": "2024-03-16T19:25:34+00:00",
"url": "https://cleverdevil.io/2024/was-just-reminded-yet-again-how-great",
"category": [
"IndieWeb"
],
"syndication": [
"https://cleverdevil.club/@jonathan/112107004529911036",
"https://bsky.app/profile/cleverdevil.io/post/3kntkffeull23"
],
"content": {
"text": "Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:\n\nhttps://cleverdevil.io/archive\n\n\nMy entire public web life, from 2002 to today.\n\n#IndieWeb",
"html": "Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:<br /><br /><a href=\"https://cleverdevil.io/archive\">https://cleverdevil.io/archive</a><br /><br />\nMy entire public web life, from 2002 to today.<br /><br /><a href=\"https://cleverdevil.io/tag/IndieWeb\" class=\"p-category\">#IndieWeb</a>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://cleverdevil.io/file/e37c3982acf4f0a8421d085b9971cd71/thumb.jpg"
},
"post-type": "note",
"_id": "40568375",
"_source": "71",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@cory",
"url": "https://social.lol/@cory",
"photo": null
},
"url": "https://social.lol/@cory/112107151793557588",
"content": {
"html": "<p>\ud83d\udd17: On content creation and personal web <a href=\"https://social.lol/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://social.lol/tags/WebDev\">#<span>WebDev</span></a> <a href=\"https://hamatti.org/posts/on-content-creation-and-personal-web/\"><span>https://</span><span>hamatti.org/posts/on-content-c</span><span>reation-and-personal-web/</span></a></p>",
"text": "\ud83d\udd17: On content creation and personal web #IndieWeb #WebDev https://hamatti.org/posts/on-content-creation-and-personal-web/"
},
"published": "2024-03-16T20:03:01+00:00",
"post-type": "note",
"_id": "40568345",
"_source": "8007",
"_is_read": false
}
Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:
https://cleverdevil.io/archive
My entire public web life, from 2002 to today.
#IndieWeb
{
"type": "entry",
"author": {
"name": "@jonathan",
"url": "https://cleverdevil.club/@jonathan",
"photo": null
},
"url": "https://cleverdevil.club/@jonathan/112107004529911036",
"content": {
"html": "<p>Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:</p><p><a href=\"https://cleverdevil.io/archive\"><span>https://</span><span>cleverdevil.io/archive</span><span></span></a></p><p>My entire public web life, from 2002 to today.</p><p><a href=\"https://cleverdevil.club/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:\n\nhttps://cleverdevil.io/archive\n\nMy entire public web life, from 2002 to today.\n\n#IndieWeb"
},
"published": "2024-03-16T19:25:34+00:00",
"post-type": "note",
"_id": "40568125",
"_source": "8007",
"_is_read": false
}
Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:
https://cleverdevil.io/archive
My entire public web life, from 2002 to today.
#IndieWeb
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://indieweb.social/tags/indieweb",
"photo": null
},
"url": "https://cleverdevil.io/2024/was-just-reminded-yet-again-how-great",
"content": {
"html": "<p>Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:<br /><br /><br /><br /><a href=\"https://cleverdevil.io/archive\">https://cleverdevil.io/archive</a><br /><br /><br /><br />\nMy entire public web life, from 2002 to today.<br /><br /><br /><br /><a class=\"p-category\" href=\"https://cleverdevil.io/tag/IndieWeb\">#IndieWeb</a></p>",
"text": "Was just reminded yet again how great it is to have preserved my web presence across platforms by consolidating on my website. Check out my archive:\n\n\n\nhttps://cleverdevil.io/archive\n\n\n\n\nMy entire public web life, from 2002 to today.\n\n\n\n#IndieWeb"
},
"published": "2024-03-16T19:25:34+00:00",
"post-type": "note",
"_id": "40568126",
"_source": "8007",
"_is_read": false
}
In fact, I decided to open this platform before the end of the poll...
So you can grab 1 GB of space for your static website with a subdomain of pages.casa and, if you want, you are allowed to use your OWN domain!
It's free !
https://pages.casa/register-on-pagescasa.html
#indieweb #smolweb
{
"type": "entry",
"author": {
"name": "@adele",
"url": "https://phpc.social/@adele",
"photo": null
},
"url": "https://phpc.social/@adele/112106887710974545",
"content": {
"html": "<p>In fact, I decided to open this platform before the end of the poll...<br />So you can grab 1 GB of space for your static website with a subdomain of pages.casa and, if you want, you are allowed to use your OWN domain!</p><p>It's free !</p><p><a href=\"https://pages.casa/register-on-pagescasa.html\"><span>https://</span><span>pages.casa/register-on-pagesca</span><span>sa.html</span></a></p><p><a href=\"https://phpc.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://phpc.social/tags/smolweb\">#<span>smolweb</span></a></p>",
"text": "In fact, I decided to open this platform before the end of the poll...\nSo you can grab 1 GB of space for your static website with a subdomain of pages.casa and, if you want, you are allowed to use your OWN domain!\n\nIt's free !\n\nhttps://pages.casa/register-on-pagescasa.html\n\n#indieweb #smolweb"
},
"published": "2024-03-16T18:55:52+00:00",
"post-type": "note",
"_id": "40567989",
"_source": "8007",
"_is_read": false
}
#Business #Introductions
Welcome to the IndieWeb · “Let’s make this jungle wild, exciting, and beautiful again.” https://ilo.im/15y9p7
_____
#IndieWeb #SmallWeb #OpenWeb #OwnYourWeb #Website #Blog
{
"type": "entry",
"author": {
"name": "@inautilo",
"url": "https://mastodon.social/@inautilo",
"photo": null
},
"url": "https://mastodon.social/@inautilo/112105981312027793",
"content": {
"html": "<p><a href=\"https://mastodon.social/tags/Business\">#<span>Business</span></a> <a href=\"https://mastodon.social/tags/Introductions\">#<span>Introductions</span></a><br />Welcome to the IndieWeb \u00b7 \u201cLet\u2019s make this jungle wild, exciting, and beautiful again.\u201d <a href=\"https://ilo.im/15y9p7\"><span>https://</span><span>ilo.im/15y9p7</span><span></span></a></p><p>_____<br /><a href=\"https://mastodon.social/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://mastodon.social/tags/SmallWeb\">#<span>SmallWeb</span></a> <a href=\"https://mastodon.social/tags/OpenWeb\">#<span>OpenWeb</span></a> <a href=\"https://mastodon.social/tags/OwnYourWeb\">#<span>OwnYourWeb</span></a> <a href=\"https://mastodon.social/tags/Website\">#<span>Website</span></a> <a href=\"https://mastodon.social/tags/Blog\">#<span>Blog</span></a></p>",
"text": "#Business #Introductions\nWelcome to the IndieWeb \u00b7 \u201cLet\u2019s make this jungle wild, exciting, and beautiful again.\u201d https://ilo.im/15y9p7\n\n_____\n#IndieWeb #SmallWeb #OpenWeb #OwnYourWeb #Website #Blog"
},
"published": "2024-03-16T15:05:21+00:00",
"post-type": "note",
"_id": "40566227",
"_source": "8007",
"_is_read": false
}
While an HTML style element for inline CSS needs nothing but simple start and end tags (as of HTML5 and later)
<style>
p { color: red }
</style>
a more robust style element requires a precise series of overlapping code comments.
Here is the answer if you want a code snippet to copy & paste
<style><!--/*--><![CDATA[*/
p { color: red } /* you may delete this sample style rule */
/*]]><!--*/--></style>
Here is why:
1. Not all HTML processors are CSS processors. While all modern browsers know how to parse CSS in style elements inside HTML, it is still quite reasonable for people to build HTML processors that do not, and many exist. There are plenty of ways to errantly or deliberately misplace markup inside a style element, like in a CSS comment, that such processors will not see, that can break them and cause unexpected and different results in different processors. Strictly speaking any use of > child combinator selector syntax should also be HTML escaped (as >) inside a style elment.
Thus it makes your HTML more parseable, by more processors, if you can hide the entirety of the style sheet inside the style element from such processing, including any child combinators. A CDATA section does exactly that:
<style><![CDATA[
p { color: orange } /* CDATA allows a </style> here to not close the element */
body > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */
]]></style>
2. However CSS syntax does not recognize a CDATA directive (even as of the latest published CSS Syntax Module Level 3¹ or editor's draft² as of this writing). CSS parsers may very well treat a CDATA directive as a syntax error that invalidates the subsequent style rule.
Thus we must hide the CDATA directive, its opening and closing markup, from CSS parsers. CSS code comments /* ... */ can do exactly that:
<style>/*<![CDATA[*/
p { color: orange } /* CDATA allows a </style> here to not close the element */
body > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */
/*]]>*/</style>
3. This is close but still exposes HTML processors that do not process CSS to a minimal bit of content, the CSS comment opener and closer that are outside the CDATA section:
/* */
This recently showed up in a draft of the This Week in The #IndieWeb newsletter³, because portions of it are automatically constructed by parsing the HTML of MediaWiki pages for content, and one of those used a MediaWiki template that included a minimal style element to style the marked up content inserted by the template. A draft of the newsletter was showing raw CSS, extracted as text from the style element by the CSS-unaware parser extracting content. I was able to hide nearly all of it using CSS comments around the CDATA section opener and closer. Except for that little bit of CSS comment noise outside the CDATA section: /* */
Fortunately there is one more tool in our toolbox that we can use. Simple HTML/SGML comments <!-- --> are ignored at the start and end of style sheets⁴ (noted there as CDO-token⁵ and CDC-token⁶), and thus we can use those to hide the last two remaining CSS comment pieces that were leaking out, like this: <!-- /* --> and <!-- */ -->. Note that the portion of the HTML comment directives that are inside CSS comments are ignored by CSS processors, which is why this works for both processors that parse CSS and those that do not.
This last addition produces our answer, with no fewer than three different comment mechanisms (CDATA, CSS, HTML/SGML), overlapping to hide each other from different processors:
<style><!--/*--><![CDATA[*/
p { color: orange } /* CDATA allows a </style> here to not close the element */
body > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */
/*]]><!--*/--></style>
By replacing those informative style rules with a style rule to be deleted, we have recreated the code snippet to copy & paste from the top of the post:
<style><!--/*--><![CDATA[*/
p { color: red } /* you may delete this sample style rule */
/*]]><!--*/--></style>
Q.E.D.
Afterword:
If you View Source on this original permalink or my home page you can see the more robust style element in a real world example, following the IndieWeb Use What You Make⁷ principle.
#CSS #style #styleElement #styleSheet #HTML #HTML5 #CSSsyntax #codeComments #CDATA #SGML #CSScomment #HTMLcomment #SGMLcomment
Glossary:
CDATA
https://en.wikipedia.org/wiki/CDATA
CSS — Cascading Style Sheets
https://en.wikipedia.org/wiki/CSS
HTML — HyperText Markup Language
https://en.wikipedia.org/wiki/HTML
HTML5
https://en.wikipedia.org/wiki/HTML5
IndieWeb Principles
https://indieweb.org/principles
MediaWiki
https://en.wikipedia.org/wiki/MediaWiki
original permalink
https://indieweb.org/original_permalink
Q.E.D.
https://en.wikipedia.org/wiki/Q.E.D.
References:
¹ https://www.w3.org/TR/css-syntax-3/
² https://drafts.csswg.org/css-syntax/
³ https://indieweb.org/this-week-in-the-indieweb
⁴ https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram
⁵ https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram
⁶ https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram
⁷ https://indieweb.org/use_what_you_make
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://fed.brid.gy/r/https://tantek.com/2024/075/t1/css-more-robust-style-element",
"content": {
"html": "While an HTML style element for inline CSS needs nothing but simple start and end tags (as of HTML5 and later)<br /><br /><style> <br />p { color: red }<br /></style><br /><br />a more robust style element requires a precise series of overlapping code comments.<br /><br />Here is the answer if you want a code snippet to copy & paste<br /><br /><style><!--/*--><![CDATA[*/ <br />p { color: red } /* you may delete this sample style rule */<br />/*]]><!--*/--></style><br /><br /><br />Here is why:<br /><br />1. Not all HTML processors are CSS processors. While all modern browsers know how to parse CSS in style elements inside HTML, it is still quite reasonable for people to build HTML processors that do not, and many exist. There are plenty of ways to errantly or deliberately misplace markup inside a style element, like in a CSS comment, that such processors will not see, that can break them and cause unexpected and different results in different processors. Strictly speaking any use of > child combinator selector syntax should also be HTML escaped (as &gt;) inside a style elment.<br /><br />Thus it makes your HTML more parseable, by more processors, if you can hide the entirety of the style sheet inside the style element from such processing, including any child combinators. A CDATA section does exactly that:<br /><br /><style><![CDATA[ <br />p { color: orange } /* CDATA allows a </style> here to not close the element */<br />body > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */<br />]]></style><br /><br /><br />2. However CSS syntax does not recognize a CDATA directive (even as of the latest published CSS Syntax Module Level 3<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-1\">\u00b9</a> or editor's draft<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-2\">\u00b2</a> as of this writing). CSS parsers may very well treat a CDATA directive as a syntax error that invalidates the subsequent style rule.<br /><br />Thus we must hide the CDATA directive, its opening and closing markup, from CSS parsers. \u00a0CSS code comments /* ... */ can do exactly that:<br /><br /><style>/*<![CDATA[*/ <br />p { color: orange } /* CDATA allows a </style> here to not close the element */<br />body > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */<br />/*]]>*/</style><br /><br /><br />3. This is close but still exposes HTML processors that do not process CSS to a minimal bit of content, the CSS comment opener and closer that are outside the CDATA section:<br /><br />/* */<br /><br />This recently showed up in a draft of the This Week in The <a href=\"https://indieweb.social/tags/IndieWeb\">#<span class=\"p-category\">IndieWeb</span></a> newsletter<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-3\">\u00b3</a>, because portions of it are automatically constructed by parsing the HTML of MediaWiki pages for content, and one of those used a MediaWiki template that included a minimal style element to style the marked up content inserted by the template. A draft of the newsletter was showing raw CSS, extracted as text from the style element by the CSS-unaware parser extracting content. I was able to hide nearly all of it using CSS comments around the CDATA section opener and closer. Except for that little bit of CSS comment noise outside the CDATA section: /* */<br /><br />Fortunately there is one more tool in our toolbox that we can use. Simple HTML/SGML comments <!-- --> are ignored at the start and end of style sheets<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-4\">\u2074</a> (noted there as CDO-token<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-5\">\u2075</a> and CDC-token<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-6\">\u2076</a>), and thus we can use those to hide the last two remaining CSS comment pieces that were leaking out, like this: <!-- /* --> and <!-- */ -->. Note that the portion of the HTML comment directives that are inside CSS comments are ignored by CSS processors, which is why this works for both processors that parse CSS and those that do not.<br /><br />This last addition produces our answer, with no fewer than three different comment mechanisms (CDATA, CSS, HTML/SGML), overlapping to hide each other from different processors:<br /><br /><style><!--/*--><![CDATA[*/ <br />p { color: orange } /* CDATA allows a </style> here to not close the element */<br />body > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */<br />/*]]><!--*/--></style><br /><br />By replacing those informative style rules with a style rule to be deleted, we have recreated the code snippet to copy & paste from the top of the post: <br /><br /><style><!--/*--><![CDATA[*/ <br />p { color: red } /* you may delete this sample style rule */<br />/*]]><!--*/--></style><br /><br />Q.E.D.<br /><br /><br />Afterword:<br /><br />If you View Source on this original permalink or my home page you can see the more robust style element in a real world example, following the IndieWeb Use What You Make<a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_note-7\">\u2077</a> principle.<br /><br /><a href=\"https://indieweb.social/tags/CSS\">#<span class=\"p-category\">CSS</span></a> <a href=\"https://indieweb.social/tags/style\">#<span class=\"p-category\">style</span></a> <a href=\"https://indieweb.social/tags/styleElement\">#<span class=\"p-category\">styleElement</span></a> <a href=\"https://indieweb.social/tags/styleSheet\">#<span class=\"p-category\">styleSheet</span></a> <a href=\"https://indieweb.social/tags/HTML\">#<span class=\"p-category\">HTML</span></a> <a href=\"https://indieweb.social/tags/HTML5\">#<span class=\"p-category\">HTML5</span></a> <a href=\"https://indieweb.social/tags/CSSsyntax\">#<span class=\"p-category\">CSSsyntax</span></a> <a href=\"https://indieweb.social/tags/codeComments\">#<span class=\"p-category\">codeComments</span></a> <a href=\"https://indieweb.social/tags/CDATA\">#<span class=\"p-category\">CDATA</span></a> <a href=\"https://indieweb.social/tags/SGML\">#<span class=\"p-category\">SGML</span></a> <a href=\"https://indieweb.social/tags/CSScomment\">#<span class=\"p-category\">CSScomment</span></a> <a href=\"https://indieweb.social/tags/HTMLcomment\">#<span class=\"p-category\">HTMLcomment</span></a> <a href=\"https://indieweb.social/tags/SGMLcomment\">#<span class=\"p-category\">SGMLcomment</span></a><br /><br /><br />Glossary:<br /><br />CDATA<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/CDATA\">https://en.wikipedia.org/wiki/CDATA</a><br />CSS \u2014 Cascading Style Sheets<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/CSS\">https://en.wikipedia.org/wiki/CSS</a><br />HTML \u2014 HyperText Markup Language<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/HTML\">https://en.wikipedia.org/wiki/HTML</a><br />HTML5<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/HTML5\">https://en.wikipedia.org/wiki/HTML5</a><br />IndieWeb Principles<br />\u00a0 <a href=\"https://indieweb.org/principles\">https://indieweb.org/principles</a><br />MediaWiki<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/MediaWiki\">https://en.wikipedia.org/wiki/MediaWiki</a><br />original permalink<br />\u00a0 <a href=\"https://indieweb.org/original_permalink\">https://indieweb.org/original_permalink</a><br />Q.E.D.<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/Q.E.D\">https://en.wikipedia.org/wiki/Q.E.D</a>.<br /><br />References:<br /><br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-1\">\u00b9</a> <a href=\"https://www.w3.org/TR/css-syntax-3/\">https://www.w3.org/TR/css-syntax-3/</a><br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-2\">\u00b2</a> <a href=\"https://drafts.csswg.org/css-syntax/\">https://drafts.csswg.org/css-syntax/</a><br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-3\">\u00b3</a> <a href=\"https://indieweb.org/this-week-in-the-indieweb\">https://indieweb.org/this-week-in-the-indieweb</a> <br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-4\">\u2074</a> <a href=\"https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram\">https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram</a><br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-5\">\u2075</a> <a href=\"https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram\">https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram</a><br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-6\">\u2076</a> <a href=\"https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram\">https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram</a><br /><a href=\"https://tantek.com/2024/075/t1/css-more-robust-style-element#t5Vx1_ref-7\">\u2077</a> <a href=\"https://indieweb.org/use_what_you_make\">https://indieweb.org/use_what_you_make</a>",
"text": "While an HTML style element for inline CSS needs nothing but simple start and end tags (as of HTML5 and later)\n\n<style> \np { color: red }\n</style>\n\na more robust style element requires a precise series of overlapping code comments.\n\nHere is the answer if you want a code snippet to copy & paste\n\n<style><!--/*--><![CDATA[*/ \np { color: red } /* you may delete this sample style rule */\n/*]]><!--*/--></style>\n\n\nHere is why:\n\n1. Not all HTML processors are CSS processors. While all modern browsers know how to parse CSS in style elements inside HTML, it is still quite reasonable for people to build HTML processors that do not, and many exist. There are plenty of ways to errantly or deliberately misplace markup inside a style element, like in a CSS comment, that such processors will not see, that can break them and cause unexpected and different results in different processors. Strictly speaking any use of > child combinator selector syntax should also be HTML escaped (as >) inside a style elment.\n\nThus it makes your HTML more parseable, by more processors, if you can hide the entirety of the style sheet inside the style element from such processing, including any child combinators. A CDATA section does exactly that:\n\n<style><![CDATA[ \np { color: orange } /* CDATA allows a </style> here to not close the element */\nbody > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */\n]]></style>\n\n\n2. However CSS syntax does not recognize a CDATA directive (even as of the latest published CSS Syntax Module Level 3\u00b9 or editor's draft\u00b2 as of this writing). CSS parsers may very well treat a CDATA directive as a syntax error that invalidates the subsequent style rule.\n\nThus we must hide the CDATA directive, its opening and closing markup, from CSS parsers. \u00a0CSS code comments /* ... */ can do exactly that:\n\n<style>/*<![CDATA[*/ \np { color: orange } /* CDATA allows a </style> here to not close the element */\nbody > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */\n/*]]>*/</style>\n\n\n3. This is close but still exposes HTML processors that do not process CSS to a minimal bit of content, the CSS comment opener and closer that are outside the CDATA section:\n\n/* */\n\nThis recently showed up in a draft of the This Week in The #IndieWeb newsletter\u00b3, because portions of it are automatically constructed by parsing the HTML of MediaWiki pages for content, and one of those used a MediaWiki template that included a minimal style element to style the marked up content inserted by the template. A draft of the newsletter was showing raw CSS, extracted as text from the style element by the CSS-unaware parser extracting content. I was able to hide nearly all of it using CSS comments around the CDATA section opener and closer. Except for that little bit of CSS comment noise outside the CDATA section: /* */\n\nFortunately there is one more tool in our toolbox that we can use. Simple HTML/SGML comments <!-- --> are ignored at the start and end of style sheets\u2074 (noted there as CDO-token\u2075 and CDC-token\u2076), and thus we can use those to hide the last two remaining CSS comment pieces that were leaking out, like this: <!-- /* --> and <!-- */ -->. Note that the portion of the HTML comment directives that are inside CSS comments are ignored by CSS processors, which is why this works for both processors that parse CSS and those that do not.\n\nThis last addition produces our answer, with no fewer than three different comment mechanisms (CDATA, CSS, HTML/SGML), overlapping to hide each other from different processors:\n\n<style><!--/*--><![CDATA[*/ \np { color: orange } /* CDATA allows a </style> here to not close the element */\nbody > p { margin: 1em } /* CDATA also allows an unescaped > child combinator */\n/*]]><!--*/--></style>\n\nBy replacing those informative style rules with a style rule to be deleted, we have recreated the code snippet to copy & paste from the top of the post: \n\n<style><!--/*--><![CDATA[*/ \np { color: red } /* you may delete this sample style rule */\n/*]]><!--*/--></style>\n\nQ.E.D.\n\n\nAfterword:\n\nIf you View Source on this original permalink or my home page you can see the more robust style element in a real world example, following the IndieWeb Use What You Make\u2077 principle.\n\n#CSS #style #styleElement #styleSheet #HTML #HTML5 #CSSsyntax #codeComments #CDATA #SGML #CSScomment #HTMLcomment #SGMLcomment\n\n\nGlossary:\n\nCDATA\n\u00a0 https://en.wikipedia.org/wiki/CDATA\nCSS \u2014 Cascading Style Sheets\n\u00a0 https://en.wikipedia.org/wiki/CSS\nHTML \u2014 HyperText Markup Language\n\u00a0 https://en.wikipedia.org/wiki/HTML\nHTML5\n\u00a0 https://en.wikipedia.org/wiki/HTML5\nIndieWeb Principles\n\u00a0 https://indieweb.org/principles\nMediaWiki\n\u00a0 https://en.wikipedia.org/wiki/MediaWiki\noriginal permalink\n\u00a0 https://indieweb.org/original_permalink\nQ.E.D.\n\u00a0 https://en.wikipedia.org/wiki/Q.E.D.\n\nReferences:\n\n\u00b9 https://www.w3.org/TR/css-syntax-3/\n\u00b2 https://drafts.csswg.org/css-syntax/\n\u00b3 https://indieweb.org/this-week-in-the-indieweb \n\u2074 https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram\n\u2075 https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram\n\u2076 https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram\n\u2077 https://indieweb.org/use_what_you_make"
},
"published": "2024-03-16T04:35:00+00:00",
"post-type": "note",
"_id": "40563428",
"_source": "8007",
"_is_read": false
}
While an HTML style element for inline CSS needs nothing but simple start and end tags (as of HTML5 and later)
<style>
p { margin:0 }
</style>
a more robust style element requires a precise series of overlapping code comments.
Here is the answer if you want a code snippet to copy & paste
<style><!--/*--><![CDATA[*/
p { margin:0 } /* you may delete this sample style rule */
/*]]><!--*/--></style>
Here is why:
1. Not all HTML processors are CSS processors. While all modern browsers know how to parse CSS in style elements inside HTML, it is still quite reasonable for people to build HTML processors that do not, and many exist. There are plenty of ways to errantly or deliberately misplace markup inside a style element, like in a CSS comment, that such processors will not see, that can break them and cause unexpected and different results in different processors. Strictly speaking any use of > child combinator selector syntax should also be HTML escaped (as >) inside a style elment.
Thus it makes your HTML more parseable, by more processors, if you can hide the entirety of the style sheet inside the style element from such processing, including any child combinators. A CDATA section does exactly that:
<style><![CDATA[
p { margin:0 } /* CDATA allows a </style> here to not close the element */
body > p { margin:1em } /* CDATA allows an unescaped > child combinator */
]]></style>
2. However CSS syntax does not recognize a CDATA directive (even as of the latest published CSS Syntax Module Level 3¹ or editor's draft² as of this writing). CSS parsers may very well treat a CDATA directive as a syntax error that invalidates the subsequent style rule.
Thus we must hide the CDATA directive, its opening and closing markup, from CSS parsers. CSS code comments /* ... */ can do exactly that:
<style>/*<![CDATA[*/
p { margin:0 } /* CDATA allows a </style> here to not close the element */
body > p { margin:1em } /* CDATA allows an unescaped > child combinator */
/*]]>*/</style>
3. This is close but still exposes HTML processors that do not process CSS to a minimal bit of content, the CSS comment opener and closer that are outside the CDATA section:
/* */
This recently showed up in a draft of the This Week in The #IndieWeb newsletter³, because portions of it are automatically constructed by parsing the HTML of MediaWiki pages for content, and one of those used a MediaWiki template that included a minimal style element to style the marked up content inserted by the template. A draft of the newsletter was showing raw CSS, extracted as text from the style element by the CSS-unaware parser extracting content. I was able to hide nearly all of it using CSS comments around the CDATA section opener and closer. Except for that little bit of CSS comment noise outside the CDATA section: /* */
Fortunately there is one more tool in our toolbox that we can use. Simple HTML/SGML comments <!-- --> are ignored at the start and end of style sheets⁴ (noted there as CDO-token⁵ and CDC-token⁶), and thus we can use those to hide the last two remaining CSS comment pieces that were leaking out, like this: <!-- /* --> and <!-- */ -->. Note that the portion of the HTML comment directives that are inside CSS comments are ignored by CSS processors, which is why this works for both processors that parse CSS and those that do not.
This last addition produces our answer, with no fewer than three different comment mechanisms (CDATA, CSS, HTML/SGML), overlapping to hide each other from different processors:
<style><!--/*--><![CDATA[*/
p { margin:0 } /* CDATA allows a </style> here to not close the element */
body > p { margin:1em } /* CDATA allows an unescaped > child combinator */
/*]]><!--*/--></style>
By replacing those informative style rules with a style rule to be deleted, we have recreated the code snippet to copy & paste from the top of the post:
<style><!--/*--><![CDATA[*/
p { margin:0 } /* you may delete this sample style rule */
/*]]><!--*/--></style>
Q.E.D.
Afterword:
If you View Source on this original permalink or my home page you can see the more robust style element in a real world example, following the IndieWeb Use What You Make⁷ principle.
#CSS #style #styleElement #styleSheet #HTML #HTML5 #CSSsyntax #codecomments
Glossary:
CDATA
https://en.wikipedia.org/wiki/CDATA
CSS — Cascading Style Sheets
https://en.wikipedia.org/wiki/CSS
HTML — HyperText Markup Language
https://en.wikipedia.org/wiki/HTML
HTML5
https://en.wikipedia.org/wiki/HTML5
IndieWeb Principles
https://indieweb.org/principles
MediaWiki
https://en.wikipedia.org/wiki/MediaWiki
original permalink
https://indieweb.org/original_permalink
Q.E.D.
https://en.wikipedia.org/wiki/Q.E.D.
References:
¹ https://www.w3.org/TR/css-syntax-3/
² https://drafts.csswg.org/css-syntax/
³ https://indieweb.org/this-week-in-the-indieweb
⁴ https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram
⁵ https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram
⁶ https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram
⁷ https://indieweb.org/use_what_you_make
{
"type": "entry",
"published": "2024-03-15 21:35-0700",
"url": "http://tantek.com/2024/075/t1/css-more-robust-style-element",
"category": [
"IndieWeb",
"CSS",
"style",
"styleElement",
"styleSheet",
"HTML",
"HTML5",
"CSSsyntax",
"codecomments"
],
"content": {
"text": "While an HTML style element for inline CSS needs nothing but simple start and end tags (as of HTML5 and later)\n\n<style> \np { margin:0 }\n</style>\n\na more robust style element requires a precise series of overlapping code comments.\n\nHere is the answer if you want a code snippet to copy & paste\n\n<style><!--/*--><![CDATA[*/ \np { margin:0 } /* you may delete this sample style rule */\n/*]]><!--*/--></style>\n\n\nHere is why:\n\n1. Not all HTML processors are CSS processors. While all modern browsers know how to parse CSS in style elements inside HTML, it is still quite reasonable for people to build HTML processors that do not, and many exist. There are plenty of ways to errantly or deliberately misplace markup inside a style element, like in a CSS comment, that such processors will not see, that can break them and cause unexpected and different results in different processors. Strictly speaking any use of > child combinator selector syntax should also be HTML escaped (as >) inside a style elment.\n\nThus it makes your HTML more parseable, by more processors, if you can hide the entirety of the style sheet inside the style element from such processing, including any child combinators. A CDATA section does exactly that:\n\n<style><![CDATA[ \np { margin:0 } /* CDATA allows a </style> here to not close the element */\nbody > p { margin:1em } /* CDATA allows an unescaped > child combinator */\n]]></style>\n\n\n2. However CSS syntax does not recognize a CDATA directive (even as of the latest published CSS Syntax Module Level 3\u00b9 or editor's draft\u00b2 as of this writing). CSS parsers may very well treat a CDATA directive as a syntax error that invalidates the subsequent style rule.\n\nThus we must hide the CDATA directive, its opening and closing markup, from CSS parsers. \u00a0CSS code comments /* ... */ can do exactly that:\n\n<style>/*<![CDATA[*/ \np { margin:0 } /* CDATA allows a </style> here to not close the element */\nbody > p { margin:1em } /* CDATA allows an unescaped > child combinator */\n/*]]>*/</style>\n\n\n3. This is close but still exposes HTML processors that do not process CSS to a minimal bit of content, the CSS comment opener and closer that are outside the CDATA section:\n\n/* */\n\nThis recently showed up in a draft of the This Week in The #IndieWeb newsletter\u00b3, because portions of it are automatically constructed by parsing the HTML of MediaWiki pages for content, and one of those used a MediaWiki template that included a minimal style element to style the marked up content inserted by the template. A draft of the newsletter was showing raw CSS, extracted as text from the style element by the CSS-unaware parser extracting content. I was able to hide nearly all of it using CSS comments around the CDATA section opener and closer. Except for that little bit of CSS comment noise outside the CDATA section: /* */\n\nFortunately there is one more tool in our toolbox that we can use. Simple HTML/SGML comments <!-- --> are ignored at the start and end of style sheets\u2074 (noted there as CDO-token\u2075 and CDC-token\u2076), and thus we can use those to hide the last two remaining CSS comment pieces that were leaking out, like this: <!-- /* --> and <!-- */ -->. Note that the portion of the HTML comment directives that are inside CSS comments are ignored by CSS processors, which is why this works for both processors that parse CSS and those that do not.\n\nThis last addition produces our answer, with no fewer than three different comment mechanisms (CDATA, CSS, HTML/SGML), overlapping to hide each other from different processors:\n\n<style><!--/*--><![CDATA[*/ \np { margin:0 } /* CDATA allows a </style> here to not close the element */\nbody > p { margin:1em } /* CDATA allows an unescaped > child combinator */\n/*]]><!--*/--></style>\n\nBy replacing those informative style rules with a style rule to be deleted, we have recreated the code snippet to copy & paste from the top of the post: \n\n<style><!--/*--><![CDATA[*/ \np { margin:0 } /* you may delete this sample style rule */\n/*]]><!--*/--></style>\n\nQ.E.D.\n\n\nAfterword:\n\nIf you View Source on this original permalink or my home page you can see the more robust style element in a real world example, following the IndieWeb Use What You Make\u2077 principle.\n\n#CSS #style #styleElement #styleSheet #HTML #HTML5 #CSSsyntax #codecomments\n\n\nGlossary:\n\nCDATA\n\u00a0 https://en.wikipedia.org/wiki/CDATA\nCSS \u2014 Cascading Style Sheets\n\u00a0 https://en.wikipedia.org/wiki/CSS\nHTML \u2014 HyperText Markup Language\n\u00a0 https://en.wikipedia.org/wiki/HTML\nHTML5\n\u00a0 https://en.wikipedia.org/wiki/HTML5\nIndieWeb Principles\n\u00a0 https://indieweb.org/principles\nMediaWiki\n\u00a0 https://en.wikipedia.org/wiki/MediaWiki\noriginal permalink\n\u00a0 https://indieweb.org/original_permalink\nQ.E.D.\n\u00a0 https://en.wikipedia.org/wiki/Q.E.D.\n\nReferences:\n\n\u00b9 https://www.w3.org/TR/css-syntax-3/\n\u00b2 https://drafts.csswg.org/css-syntax/\n\u00b3 https://indieweb.org/this-week-in-the-indieweb \n\u2074 https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram\n\u2075 https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram\n\u2076 https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram\n\u2077 https://indieweb.org/use_what_you_make",
"html": "While an HTML style element for inline CSS needs nothing but simple start and end tags (as of HTML5 and later)<br /><br /><style> <br />p { margin:0 }<br /></style><br /><br />a more robust style element requires a precise series of overlapping code comments.<br /><br />Here is the answer if you want a code snippet to copy & paste<br /><br /><style><!--/*--><![CDATA[*/ <br />p { margin:0 } /* you may delete this sample style rule */<br />/*]]><!--*/--></style><br /><br /><br />Here is why:<br /><br />1. Not all HTML processors are CSS processors. While all modern browsers know how to parse CSS in style elements inside HTML, it is still quite reasonable for people to build HTML processors that do not, and many exist. There are plenty of ways to errantly or deliberately misplace markup inside a style element, like in a CSS comment, that such processors will not see, that can break them and cause unexpected and different results in different processors. Strictly speaking any use of > child combinator selector syntax should also be HTML escaped (as &gt;) inside a style elment.<br /><br />Thus it makes your HTML more parseable, by more processors, if you can hide the entirety of the style sheet inside the style element from such processing, including any child combinators. A CDATA section does exactly that:<br /><br /><style><![CDATA[ <br />p { margin:0 } /* CDATA allows a </style> here to not close the element */<br />body > p { margin:1em } /* CDATA allows an unescaped > child combinator */<br />]]></style><br /><br /><br />2. However CSS syntax does not recognize a CDATA directive (even as of the latest published CSS Syntax Module Level 3<a href=\"http://tantek.com/#t5Vx1_note-1\">\u00b9</a> or editor's draft<a href=\"http://tantek.com/#t5Vx1_note-2\">\u00b2</a> as of this writing). CSS parsers may very well treat a CDATA directive as a syntax error that invalidates the subsequent style rule.<br /><br />Thus we must hide the CDATA directive, its opening and closing markup, from CSS parsers. \u00a0CSS code comments /* ... */ can do exactly that:<br /><br /><style>/*<![CDATA[*/ <br />p { margin:0 } /* CDATA allows a </style> here to not close the element */<br />body > p { margin:1em } /* CDATA allows an unescaped > child combinator */<br />/*]]>*/</style><br /><br /><br />3. This is close but still exposes HTML processors that do not process CSS to a minimal bit of content, the CSS comment opener and closer that are outside the CDATA section:<br /><br />/* */<br /><br />This recently showed up in a draft of the This Week in The #<span class=\"p-category\">IndieWeb</span> newsletter<a href=\"http://tantek.com/#t5Vx1_note-3\">\u00b3</a>, because portions of it are automatically constructed by parsing the HTML of MediaWiki pages for content, and one of those used a MediaWiki template that included a minimal style element to style the marked up content inserted by the template. A draft of the newsletter was showing raw CSS, extracted as text from the style element by the CSS-unaware parser extracting content. I was able to hide nearly all of it using CSS comments around the CDATA section opener and closer. Except for that little bit of CSS comment noise outside the CDATA section: /* */<br /><br />Fortunately there is one more tool in our toolbox that we can use. Simple HTML/SGML comments <!-- --> are ignored at the start and end of style sheets<a href=\"http://tantek.com/#t5Vx1_note-4\">\u2074</a> (noted there as CDO-token<a href=\"http://tantek.com/#t5Vx1_note-5\">\u2075</a> and CDC-token<a href=\"http://tantek.com/#t5Vx1_note-6\">\u2076</a>), and thus we can use those to hide the last two remaining CSS comment pieces that were leaking out, like this: <!-- /* --> and <!-- */ -->. Note that the portion of the HTML comment directives that are inside CSS comments are ignored by CSS processors, which is why this works for both processors that parse CSS and those that do not.<br /><br />This last addition produces our answer, with no fewer than three different comment mechanisms (CDATA, CSS, HTML/SGML), overlapping to hide each other from different processors:<br /><br /><style><!--/*--><![CDATA[*/ <br />p { margin:0 } /* CDATA allows a </style> here to not close the element */<br />body > p { margin:1em } /* CDATA allows an unescaped > child combinator */<br />/*]]><!--*/--></style><br /><br />By replacing those informative style rules with a style rule to be deleted, we have recreated the code snippet to copy & paste from the top of the post: <br /><br /><style><!--/*--><![CDATA[*/ <br />p { margin:0 } /* you may delete this sample style rule */<br />/*]]><!--*/--></style><br /><br />Q.E.D.<br /><br /><br />Afterword:<br /><br />If you View Source on this original permalink or my home page you can see the more robust style element in a real world example, following the IndieWeb Use What You Make<a href=\"http://tantek.com/#t5Vx1_note-7\">\u2077</a> principle.<br /><br />#<span class=\"p-category\">CSS</span> #<span class=\"p-category\">style</span> #<span class=\"p-category\">styleElement</span> #<span class=\"p-category\">styleSheet</span> #<span class=\"p-category\">HTML</span> #<span class=\"p-category\">HTML5</span> #<span class=\"p-category\">CSSsyntax</span> #<span class=\"p-category\">codecomments</span><br /><br /><br />Glossary:<br /><br />CDATA<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/CDATA\">https://en.wikipedia.org/wiki/CDATA</a><br />CSS \u2014 Cascading Style Sheets<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/CSS\">https://en.wikipedia.org/wiki/CSS</a><br />HTML \u2014 HyperText Markup Language<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/HTML\">https://en.wikipedia.org/wiki/HTML</a><br />HTML5<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/HTML5\">https://en.wikipedia.org/wiki/HTML5</a><br />IndieWeb Principles<br />\u00a0 <a href=\"https://indieweb.org/principles\">https://indieweb.org/principles</a><br />MediaWiki<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/MediaWiki\">https://en.wikipedia.org/wiki/MediaWiki</a><br />original permalink<br />\u00a0 <a href=\"https://indieweb.org/original_permalink\">https://indieweb.org/original_permalink</a><br />Q.E.D.<br />\u00a0 <a href=\"https://en.wikipedia.org/wiki/Q.E.D\">https://en.wikipedia.org/wiki/Q.E.D</a>.<br /><br />References:<br /><br /><a href=\"http://tantek.com/#t5Vx1_ref-1\">\u00b9</a> <a href=\"https://www.w3.org/TR/css-syntax-3/\">https://www.w3.org/TR/css-syntax-3/</a><br /><a href=\"http://tantek.com/#t5Vx1_ref-2\">\u00b2</a> <a href=\"https://drafts.csswg.org/css-syntax/\">https://drafts.csswg.org/css-syntax/</a><br /><a href=\"http://tantek.com/#t5Vx1_ref-3\">\u00b3</a> <a href=\"https://indieweb.org/this-week-in-the-indieweb\">https://indieweb.org/this-week-in-the-indieweb</a> <br /><a href=\"http://tantek.com/#t5Vx1_ref-4\">\u2074</a> <a href=\"https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram\">https://www.w3.org/TR/css-syntax-3/#stylesheet-diagram</a><br /><a href=\"http://tantek.com/#t5Vx1_ref-5\">\u2075</a> <a href=\"https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram\">https://www.w3.org/TR/css-syntax-3/#CDO-token-diagram</a><br /><a href=\"http://tantek.com/#t5Vx1_ref-6\">\u2076</a> <a href=\"https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram\">https://www.w3.org/TR/css-syntax-3/#CDC-token-diagram</a><br /><a href=\"http://tantek.com/#t5Vx1_ref-7\">\u2077</a> <a href=\"https://indieweb.org/use_what_you_make\">https://indieweb.org/use_what_you_make</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "40563327",
"_source": "1",
"_is_read": false
}
The “IndieWeb” feels like coming home
In reply to: Nathaniel Daught
The IndieWeb is a movement to return to actually owning and controlling your digital presence like we did 20+ years ago.
The “IndieWeb” feels like coming home, Nathaniel Daught
It is like you read my mind. For me, IndieWeb – especially WebMention – has felt like reclaiming what we lost in our rush into the walled gardens of privately owned social media. The IndieWeb is a web of personal connections, I feel. Those walled gardens were never home. This is.
This is home.
#IndieWeb #WebMention
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://node.lordmatt.co.uk/2024/03/16/posts/replies/the-indieweb-feels-like-coming-home/",
"content": {
"html": "<p><strong>The \u201cIndieWeb\u201d feels like coming home</strong></p><p><strong>In reply to: <a href=\"https://daught.me/about/\">Nathaniel Daught</a></strong></p><blockquote><p>The <a href=\"https://indieweb.org\">IndieWeb</a> is a movement to return to actually owning and controlling your digital presence like we did 20+ years ago.</p><p><a href=\"https://daught.me/blog/2024/indie-web/\">The \u201cIndieWeb\u201d feels like coming home, Nathaniel Daught</a></p></blockquote><p>It is like you read my mind. For me, IndieWeb \u2013 especially <a href=\"https://openmentions.com/topics/indieweb/webmention/\">WebMention</a> \u2013 has felt like reclaiming what we lost in our rush into the walled gardens of privately owned social media. The IndieWeb is a web of personal connections, I feel. Those walled gardens were never home. This is. </p><p>This is home.</p><p><a class=\"u-tag u-category\" href=\"https://node.lordmatt.co.uk/tag/indieweb/\">#IndieWeb</a> <a class=\"u-tag u-category\" href=\"https://node.lordmatt.co.uk/tag/webmention/\">#WebMention</a></p>",
"text": "The \u201cIndieWeb\u201d feels like coming home\n\nIn reply to: Nathaniel DaughtThe IndieWeb is a movement to return to actually owning and controlling your digital presence like we did 20+ years ago.\n\nThe \u201cIndieWeb\u201d feels like coming home, Nathaniel DaughtIt is like you read my mind. For me, IndieWeb \u2013 especially WebMention \u2013 has felt like reclaiming what we lost in our rush into the walled gardens of privately owned social media. The IndieWeb is a web of personal connections, I feel. Those walled gardens were never home. This is. \n\nThis is home.\n\n#IndieWeb #WebMention"
},
"published": "2024-03-16T01:24:26+00:00",
"post-type": "note",
"_id": "40562287",
"_source": "8007",
"_is_read": false
}
I have my first guestbook entry! From a real visitor! Not a spammer! (blocked 3 Russian ips by now) ❤️ She made my evening 😭. #indieweb #smallweb
{
"type": "entry",
"author": {
"name": "@immarisabel",
"url": "https://indieweb.social/@immarisabel",
"photo": null
},
"url": "https://indieweb.social/@immarisabel/112101712248682641",
"content": {
"html": "<p>I have my first guestbook entry! From a real visitor! Not a spammer! (blocked 3 Russian ips by now) \u2764\ufe0f She made my evening \ud83d\ude2d. <a href=\"https://indieweb.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://indieweb.social/tags/smallweb\">#<span>smallweb</span></a></p>",
"text": "I have my first guestbook entry! From a real visitor! Not a spammer! (blocked 3 Russian ips by now) \u2764\ufe0f She made my evening \ud83d\ude2d. #indieweb #smallweb"
},
"published": "2024-03-15T20:59:40+00:00",
"post-type": "note",
"_id": "40560656",
"_source": "8007",
"_is_read": false
}
The #RSS protocol launched 25 years ago today on March 15, 1999!
...And it's still cruising on to this day! 😁
https://en.wikipedia.org/wiki/RSS
#Indieweb #SmallWeb #Blogs
{
"type": "entry",
"author": {
"name": "@Quinn9282",
"url": "https://mas.to/@Quinn9282",
"photo": null
},
"url": "https://mas.to/@Quinn9282/112101589639289157",
"content": {
"html": "<p>The <a href=\"https://mas.to/tags/RSS\">#<span>RSS</span></a> protocol launched 25 years ago today on March 15, 1999! <img alt=\":rss:\" height=\"16\" src=\"https://files.mastodon.social/cache/custom_emojis/images/000/603/000/original/e095f80aaf0f36af.png\" title=\":rss:\" width=\"16\" /></p><p>...And it's still cruising on to this day! \ud83d\ude01</p><p><a href=\"https://en.wikipedia.org/wiki/RSS\"><span>https://</span><span>en.wikipedia.org/wiki/RSS</span><span></span></a></p><p><a href=\"https://mas.to/tags/Indieweb\">#<span>Indieweb</span></a> <a href=\"https://mas.to/tags/SmallWeb\">#<span>SmallWeb</span></a> <a href=\"https://mas.to/tags/Blogs\">#<span>Blogs</span></a></p>",
"text": "The #RSS protocol launched 25 years ago today on March 15, 1999! \n\n...And it's still cruising on to this day! \ud83d\ude01\n\nhttps://en.wikipedia.org/wiki/RSS\n\n#Indieweb #SmallWeb #Blogs"
},
"published": "2024-03-15T20:28:29+00:00",
"post-type": "note",
"_id": "40560387",
"_source": "8007",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@inautilo",
"url": "https://mastodon.social/@inautilo",
"photo": null
},
"url": "https://mastodon.social/@inautilo/112101553907877774",
"content": {
"html": "<p><a href=\"https://mastodon.social/tags/Business\">#<span>Business</span></a> <a href=\"https://mastodon.social/tags/Anniversairies\">#<span>Anniversairies</span></a><br />RSS was released 25 years ago today \u00b7 Born on March 15, 1999, and still alive and kicking <a href=\"https://ilo.im/15y9wc\"><span>https://</span><span>ilo.im/15y9wc</span><span></span></a></p><p>_____<br /><a href=\"https://mastodon.social/tags/RSS\">#<span>RSS</span></a> <a href=\"https://mastodon.social/tags/Newsfeed\">#<span>Newsfeed</span></a> <a href=\"https://mastodon.social/tags/OpenWeb\">#<span>OpenWeb</span></a> <a href=\"https://mastodon.social/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://mastodon.social/tags/Website\">#<span>Website</span></a> <a href=\"https://mastodon.social/tags/Blog\">#<span>Blog</span></a> <a href=\"https://mastodon.social/tags/Content\">#<span>Content</span></a> <a href=\"https://mastodon.social/tags/Development\">#<span>Development</span></a> <a href=\"https://mastodon.social/tags/WebDev\">#<span>WebDev</span></a> <a href=\"https://mastodon.social/tags/Frontend\">#<span>Frontend</span></a></p>",
"text": "#Business #Anniversairies\nRSS was released 25 years ago today \u00b7 Born on March 15, 1999, and still alive and kicking https://ilo.im/15y9wc\n\n_____\n#RSS #Newsfeed #OpenWeb #IndieWeb #Website #Blog #Content #Development #WebDev #Frontend"
},
"published": "2024-03-15T20:19:24+00:00",
"post-type": "note",
"_id": "40560325",
"_source": "8007",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@nhoizey",
"url": "https://mamot.fr/@nhoizey",
"photo": null
},
"url": "https://mamot.fr/@nhoizey/112101403865941672",
"content": {
"html": "<p>\ud83d\udd17 \u201cLinks Worth Sharing\u201d by <span class=\"h-card\"><a class=\"u-url\" href=\"https://mastodon.social/@matthiasott\">@<span>matthiasott</span></a></span></p><p><a href=\"https://mamot.fr/tags/IndieWeb\">#<span>IndieWeb</span></a> </p><p>\u2693\ufe0f <a href=\"https://nicolas-hoizey.com/links/2024/03/15/links-worth-sharing/\"><span>https://</span><span>nicolas-hoizey.com/links/2024/</span><span>03/15/links-worth-sharing/</span></a></p>\n<a class=\"u-mention\" href=\"https://mastodon.social/@matthiasott\"></a>",
"text": "\ud83d\udd17 \u201cLinks Worth Sharing\u201d by @matthiasott\n\n#IndieWeb \n\n\u2693\ufe0f https://nicolas-hoizey.com/links/2024/03/15/links-worth-sharing/"
},
"published": "2024-03-15T19:41:15+00:00",
"photo": [
"https://files.mastodon.social/cache/media_attachments/files/112/101/403/904/753/897/original/e4fa112cb1629889.png"
],
"post-type": "photo",
"_id": "40559956",
"_source": "8007",
"_is_read": false
}
@trinux @AbsluteBeginner yo creo que hay espacio para navegadores más sencillos, e iniciativas tipo #indieWeb / #webSencilla e incluso protocolos como #gopher y #gemini, pero necesitamos una alternativa a Chrome para hacer trámites en el Ministerio de turno o tener una videollamada, y negar la mayor nos arrastra al monopolio de Google.
Hay que buscar una solución para una alternativa generalista, al margen de lo cómodos que nos sintamos en nuestro nicho (y me incluyo, que yo soy de FFX o eww)
{
"type": "entry",
"author": {
"name": "@mgdelacroix",
"url": "https://social.ctrlz.es/@mgdelacroix",
"photo": null
},
"url": "https://social.ctrlz.es/@mgdelacroix/112101357499019717",
"content": {
"html": "<p><span class=\"h-card\"><a class=\"u-url\" href=\"https://masto.ai/@trinux\">@<span>trinux</span></a></span> <span class=\"h-card\"><a class=\"u-url\" href=\"https://mastodon.social/@AbsluteBeginner\">@<span>AbsluteBeginner</span></a></span> yo creo que hay espacio para navegadores m\u00e1s sencillos, e iniciativas tipo <a href=\"https://social.ctrlz.es/tags/indieWeb\">#<span>indieWeb</span></a> / <a href=\"https://social.ctrlz.es/tags/webSencilla\">#<span>webSencilla</span></a> e incluso protocolos como <a href=\"https://social.ctrlz.es/tags/gopher\">#<span>gopher</span></a> y <a href=\"https://social.ctrlz.es/tags/gemini\">#<span>gemini</span></a>, pero necesitamos una alternativa a Chrome para hacer tr\u00e1mites en el Ministerio de turno o tener una videollamada, y negar la mayor nos arrastra al monopolio de Google.</p><p>Hay que buscar una soluci\u00f3n para una alternativa generalista, al margen de lo c\u00f3modos que nos sintamos en nuestro nicho (y me incluyo, que yo soy de FFX o eww)</p>\n<a class=\"u-mention\" href=\"https://masto.ai/@trinux\"></a>\n<a class=\"u-mention\" href=\"https://mastodon.social/@AbsluteBeginner\"></a>",
"text": "@trinux @AbsluteBeginner yo creo que hay espacio para navegadores m\u00e1s sencillos, e iniciativas tipo #indieWeb / #webSencilla e incluso protocolos como #gopher y #gemini, pero necesitamos una alternativa a Chrome para hacer tr\u00e1mites en el Ministerio de turno o tener una videollamada, y negar la mayor nos arrastra al monopolio de Google.\n\nHay que buscar una soluci\u00f3n para una alternativa generalista, al margen de lo c\u00f3modos que nos sintamos en nuestro nicho (y me incluyo, que yo soy de FFX o eww)"
},
"published": "2024-03-15T19:29:27+00:00",
"post-type": "note",
"_id": "40559836",
"_source": "8007",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@cory",
"url": "https://social.lol/@cory",
"photo": null
},
"url": "https://social.lol/@cory/112101358457864897",
"content": {
"html": "<p>\ud83d\udd17: The \u201cIndieWeb\u201d feels like coming home <a href=\"https://social.lol/tags/Tech\">#<span>Tech</span></a> <a href=\"https://social.lol/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://social.lol/tags/WebDev\">#<span>WebDev</span></a> <a href=\"https://daught.me/blog/2024/indie-web/\"><span>https://</span><span>daught.me/blog/2024/indie-web/</span><span></span></a></p>",
"text": "\ud83d\udd17: The \u201cIndieWeb\u201d feels like coming home #Tech #IndieWeb #WebDev https://daught.me/blog/2024/indie-web/"
},
"published": "2024-03-15T19:29:42+00:00",
"post-type": "note",
"_id": "40559837",
"_source": "8007",
"_is_read": false
}
Hey, if you have a few minutes, I'd appreciate help making some examples of simple personal web pages made with https://simplepagebuilder.app that I can feature on the site.
More details: https://stefanbohacek.online/@stefan/112095377362949802
Thank you!
#indieweb #PersonalWebsite
{
"type": "entry",
"author": {
"name": "@stefan",
"url": "https://stefanbohacek.online/@stefan",
"photo": null
},
"url": "https://stefanbohacek.online/@stefan/112101011731503904",
"content": {
"html": "<p>Hey, if you have a few minutes, I'd appreciate help making some examples of simple personal web pages made with <a href=\"https://simplepagebuilder.app\"><span>https://</span><span>simplepagebuilder.app</span><span></span></a> that I can feature on the site.</p><p>More details: <a href=\"https://stefanbohacek.online/@stefan/112095377362949802\"><span>https://</span><span>stefanbohacek.online/@stefan/1</span><span>12095377362949802</span></a></p><p>Thank you!</p><p><a href=\"https://stefanbohacek.online/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://stefanbohacek.online/tags/PersonalWebsite\">#<span>PersonalWebsite</span></a></p>",
"text": "Hey, if you have a few minutes, I'd appreciate help making some examples of simple personal web pages made with https://simplepagebuilder.app that I can feature on the site.\n\nMore details: https://stefanbohacek.online/@stefan/112095377362949802\n\nThank you!\n\n#indieweb #PersonalWebsite"
},
"published": "2024-03-15T18:01:31+00:00",
"post-type": "note",
"_id": "40559243",
"_source": "8007",
"_is_read": false
}