@stephansama/catppuccin-xsl 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Stephan Randle
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # @stephansama/catppuccin-xsl
2
+
3
+ [![Source code](https://img.shields.io/badge/Source-666666?style=flat&logo=github&label=Github&labelColor=211F1F)](https://github.com/stephansama/packages/tree/main/core/catppuccin-xsl)
4
+ [![Documentation](https://img.shields.io/badge/Documentation-211F1F?style=flat&logo=Wikibooks&labelColor=211F1F)](https://packages.stephansama.info/api/@stephansama/catppuccin-xsl)
5
+ [![NPM Version](https://img.shields.io/npm/v/%40stephansama%2Fcatppuccin-xsl?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F)](https://www.npmjs.com/package/@stephansama/catppuccin-xsl)
6
+ [![npm downloads](https://img.shields.io/npm/dw/@stephansama/catppuccin-xsl?labelColor=211F1F)](https://www.npmjs.com/package/@stephansama/catppuccin-xsl)
7
+
8
+ Catppuccin styles for various xsl formats
9
+
10
+ ##### Table of contents
11
+
12
+ <details><summary>Open Table of contents</summary>
13
+
14
+ - [Installation](#installation)
15
+ - [Usage](#usage)
16
+ - [References](#references)
17
+
18
+ </details>
19
+
20
+ ## Installation
21
+
22
+ ```sh
23
+ pnpm install @stephansama/catppuccin-xsl
24
+ ```
25
+
26
+ ## Usage
27
+
28
+ ## References
29
+
30
+ - <https://www.xml.style/> - collection of `OPML`, `RSS` and `sitemap` stylesheets
31
+ - [pretty-feed-v3](https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl) rss stylesheet
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
+ <xsl:template match="/opml">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <meta name="referrer" content="unsafe-url" />
8
+ <title>
9
+ <xsl:value-of select="head/title" />
10
+ </title>
11
+ <style>:root{--background-body:#eff1f5;--background:#eff1f5;--background-alt:#eff1f5;--selection:#9e9e9e;--text-main:#4c4f69;--text-bright:#000;--text-muted:#70777f;--links:#1e66f5;--focus:#1e66f5;--border:#9ca0b0;--code:#000;--animation-duration:.1s;--button-base:#d0cfcf;--button-hover:#9b9b9b;--scrollbar-thumb:#aaa;--scrollbar-thumb-hover:var(--button-hover);--form-placeholder:#949494;--form-text:#1d1d1d;--variable:#40a02b;--highlight:#df8e1d;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}@media (prefers-color-scheme:dark){:root{--background-body:#1e1e2e;--background:#1e1e2e;--background-alt:#1e1e2e;--selection:#89b4fa;--text-main:#dbdbdb;--text-bright:#fff;--text-muted:#a9b1ba;--links:#89b4fa;--focus:#89b4fa;--border:#526980;--code:#ffbe85;--animation-duration:.1s;--button-base:#0c151c;--button-hover:#040a0f;--scrollbar-thumb:var(--button-hover);--scrollbar-thumb-hover:#000;--form-placeholder:#a9a9a9;--form-text:#fff;--variable:#cba6f7;--highlight:#f9e2af;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}}html{scrollbar-color:#aaa #fff;scrollbar-color:var(--scrollbar-thumb)var(--background-body);scrollbar-width:thin}@media (prefers-color-scheme:dark){html{scrollbar-color:#040a0f #202b38;scrollbar-color:var(--scrollbar-thumb)var(--background-body)}}body{word-wrap:break-word;color:var(--text-main);max-width:800px;background:#fff;background:var(--background-body);text-rendering:optimizeLegibility;margin:20px auto;padding:0 10px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){body{background:#202b38;background:var(--background-body);color:var(--text-main)}}button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}h1{margin-top:0;font-size:2.2em}h1,h2,h3,h4,h5,h6{margin-top:24px;margin-bottom:12px}h1{color:var(--text-bright)}@media (prefers-color-scheme:dark){h1{color:var(--text-bright)}}h2{color:var(--text-bright)}@media (prefers-color-scheme:dark){h2{color:var(--text-bright)}}h3{color:var(--text-bright)}@media (prefers-color-scheme:dark){h3{color:var(--text-bright)}}h4{color:var(--text-bright)}@media (prefers-color-scheme:dark){h4{color:var(--text-bright)}}h5{color:var(--text-bright)}@media (prefers-color-scheme:dark){h5{color:var(--text-bright)}}h6{color:var(--text-bright)}@media (prefers-color-scheme:dark){h6{color:var(--text-bright)}}strong{color:var(--text-bright)}@media (prefers-color-scheme:dark){strong{color:var(--text-bright)}}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}q:after,q:before{content:none}blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}blockquote&gt;footer{border:0;font-style:normal}address,blockquote cite{font-style:normal}a[href^&#x3D;mailto\:]:before{content:&quot;📧 &quot;}a[href^&#x3D;tel\:]:before{content:&quot;📞 &quot;}a[href^&#x3D;sms\:]:before{content:&quot;💬 &quot;}mark{background-color:#ff0;background-color:var(--highlight);color:#000;border-radius:2px;padding:0 2px}@media (prefers-color-scheme:dark){mark{background-color:#efdb43;background-color:var(--highlight)}}a&gt;code,a&gt;strong{color:inherit}button,input[type&#x3D;button],input[type&#x3D;checkbox],input[type&#x3D;radio],input[type&#x3D;range],input[type&#x3D;reset],input[type&#x3D;submit],select{cursor:pointer}input,select{display:block}[type&#x3D;checkbox],[type&#x3D;radio]{display:initial}input{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){input{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){button{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}textarea{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){textarea{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}select{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){select{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){button{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;submit]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;submit]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;reset]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;reset]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;button]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;button]{background-color:#0c151c;background-color:var(--button-base)}}button:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){button:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;submit]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;submit]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;reset]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;reset]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;button]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;button]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;color]{cursor:pointer;min-height:2rem;padding:8px}input[type&#x3D;checkbox],input[type&#x3D;radio]{width:1em;height:1em}input[type&#x3D;radio]{border-radius:100%}input{vertical-align:top}label{vertical-align:middle;margin-bottom:4px;display:inline-block}button,input:not([type&#x3D;checkbox]):not([type&#x3D;radio]),input[type&#x3D;range],select,textarea{-webkit-appearance:none}textarea{box-sizing:border-box;resize:vertical;margin-right:0;display:block}textarea:not([cols]){width:100%}textarea:not([rows]){height:140px;min-height:40px}select{background:#efefef url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat;padding-right:35px}@media (prefers-color-scheme:dark){select{background:#161f27 url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat}}select::-ms-expand{display:none}select[multiple]{background-image:none;padding-right:10px;overflow-y:auto}input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:active,input[type&#x3D;button]:active,input[type&#x3D;checkbox]:active,input[type&#x3D;radio]:active,input[type&#x3D;range]:active,input[type&#x3D;reset]:active,input[type&#x3D;submit]:active{transform:translateY(2px)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.5}:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}@media (prefers-color-scheme:dark){:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}}fieldset{border:1px solid #0096bfab;border:1px solid var(--focus);border-radius:6px;margin:0 0 12px;padding:10px}@media (prefers-color-scheme:dark){fieldset{border:1px solid #0096bfab;border:1px solid var(--focus)}}legend{font-size:.9em;font-weight:600}input[type&#x3D;range]{background:0 0;margin:10px 0;padding:10px 0}input[type&#x3D;range]:focus{outline:none}input[type&#x3D;range]::-webkit-slider-runnable-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-webkit-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-webkit-slider-thumb{background:#dbdbdb;background:var(--border);-webkit-appearance:none;border-radius:50%;width:20px;height:20px;margin-top:-7px;box-shadow:0 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-moz-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-thumb{background:#dbdbdb;background:var(--border);border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]::-ms-track{color:#0000;background:0 0;border-width:16px 0;border-color:#0000;width:100%;height:9.5px}input[type&#x3D;range]::-ms-fill-lower{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-fill-upper{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-upper{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-thumb{background:#dbdbdb;background:var(--border);border:1px solid #000;border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-ms-fill-lower{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]:focus::-ms-fill-upper{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-upper{background:#161f27;background:var(--background)}}a{color:var(--links);text-decoration:none}@media (prefers-color-scheme:dark){a{color:var(--links)}}a:hover{text-decoration:underline}code{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){code{color:var(--code);background:#161f27;background:var(--background)}}samp{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){samp{color:var(--code);background:#161f27;background:var(--background)}}time{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){time{color:var(--code);background:#161f27;background:var(--background)}}pre&gt;code{padding:10px;display:block;overflow-x:auto}var{color:var(--variable);font-family:monospace;font-style:normal}@media (prefers-color-scheme:dark){var{color:var(--variable)}}kbd{background:#efefef;background:var(--background);border:1px solid #dbdbdb;border:1px solid var(--border);color:var(--text-main);border-radius:2px;padding:2px 4px}@media (prefers-color-scheme:dark){kbd{color:var(--text-main);border:1px solid #526980;border:1px solid var(--border);background:#161f27;background:var(--background)}}img,video{max-width:100%;height:auto}hr{border:none;border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){hr{border-top:1px solid #526980;border-top:1px solid var(--border)}}table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:10px}table caption,td,th{text-align:left}td,th{vertical-align:top;word-wrap:break-word;padding:6px}thead{border-bottom:1px solid #dbdbdb;border-bottom:1px solid var(--border)}@media (prefers-color-scheme:dark){thead{border-bottom:1px solid #526980;border-bottom:1px solid var(--border)}}tfoot{border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){tfoot{border-top:1px solid #526980;border-top:1px solid var(--border)}}tbody tr:nth-child(2n){background-color:#efefef;background-color:var(--background)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n){background-color:#161f27;background-color:var(--background)}}tbody tr:nth-child(2n) button{background-color:#f7f7f7;background-color:var(--background-alt)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button{background-color:#1a242f;background-color:var(--background-alt)}}tbody tr:nth-child(2n) button:hover{background-color:#fff;background-color:var(--background-body)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button:hover{background-color:#202b38;background-color:var(--background-body)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#efefef;background:var(--background);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-track{background:#161f27;background:var(--background)}}::-webkit-scrollbar-thumb{background:#aaa;background:var(--scrollbar-thumb);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background:#040a0f;background:var(--scrollbar-thumb)}}::-webkit-scrollbar-thumb:hover{background:#9b9b9b;background:var(--scrollbar-thumb-hover)}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb:hover{background:#000;background:var(--scrollbar-thumb-hover)}}::-moz-selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}::selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}@media (prefers-color-scheme:dark){::-moz-selection{color:var(--text-bright)}::-moz-selection{background-color:#1c76c5;background-color:var(--selection)}::selection{background-color:#1c76c5;background-color:var(--selection)}}details{background-color:#f7f7f7;background-color:var(--background-alt);border-radius:6px;flex-direction:column;align-items:flex-start;margin:1em 0;padding:10px 10px 0;display:flex;overflow:hidden}@media (prefers-color-scheme:dark){details{background-color:#1a242f;background-color:var(--background-alt)}}details[open]{padding:10px}details&gt;:last-child{margin-bottom:0}details[open] summary{margin-bottom:10px}summary{background-color:#efefef;background-color:var(--background);cursor:pointer;outline:none;margin:-10px -10px 0;padding:10px;display:list-item}@media (prefers-color-scheme:dark){summary{background-color:#161f27;background-color:var(--background)}}summary:focus,summary:hover{text-decoration:underline}details&gt;:not(summary){margin-top:0}summary::-webkit-details-marker{color:var(--text-main)}@media (prefers-color-scheme:dark){summary::-webkit-details-marker{color:var(--text-main)}}dialog{background-color:#f7f7f7;background-color:var(--background-alt);color:var(--text-main);border:#dbdbdb;border-color:var(--border);border-radius:6px;padding:10px 30px}@media (prefers-color-scheme:dark){dialog{border-color:#526980;border-color:var(--border);color:var(--text-main);background-color:#1a242f;background-color:var(--background-alt)}}dialog&gt;header:first-child{background-color:#efefef;background-color:var(--background);text-align:center;border-radius:6px 6px 0 0;margin:-10px -30px 10px;padding:10px}@media (prefers-color-scheme:dark){dialog&gt;header:first-child{background-color:#161f27;background-color:var(--background)}}dialog::-webkit-backdrop{backdrop-filter:blur(4px);background:#0000009c}dialog::backdrop{backdrop-filter:blur(4px);background:#0000009c}footer{border-top:1px solid #dbdbdb;border-top:1px solid var(--border);color:var(--text-muted);padding-top:10px}@media (prefers-color-scheme:dark){footer{color:var(--text-muted);border-top:1px solid #526980;border-top:1px solid var(--border)}}body&gt;footer{margin-top:40px}@media print{body,button,code,details,input,pre,summary,textarea{background-color:#fff}button,input,textarea{border:1px solid #000}body,button,code,footer,h1,h2,h3,h4,h5,h6,input,pre,strong,summary,textarea,summary::marker{color:#000}summary::-webkit-details-marker{color:#000}tbody tr:nth-child(2n){background-color:#f2f2f2}a{color:#00f;text-decoration:underline}}</style>
12
+ <script>
13
+ window.addEventListener('load', function() {
14
+ var viewPara = document.getElementById("viewpara");
15
+ viewPara.style.display = "block";
16
+ var viewUrl = document.getElementById("viewUrl");
17
+ viewUrl.value = window.location.href;
18
+ });
19
+ </script>
20
+ </head>
21
+ <body>
22
+ <h1>
23
+ <xsl:value-of select="head/title" />
24
+ </h1>
25
+ <p id="viewpara" style="display:none;">
26
+ <form method="get" action="https://opml-viewer.fileformat.info/view.html"
27
+ id="viewform">
28
+ <input type="hidden" name="url" id="viewUrl" value="" />
29
+ <!-- customize by adding more inputs with the viewer parameters --> Open in the <button>OPML
30
+ Viewer</button> (requires JavaScript). </form>
31
+ </p>
32
+ <p>
33
+ <time>
34
+ <xsl:value-of select="head/dateCreated" />
35
+ </time>
36
+ </p>
37
+ <xsl:apply-templates select="body/outline" />
38
+ </body>
39
+ </html>
40
+ </xsl:template>
41
+ <xsl:template match="outline" xmlns="http://www.w3.org/1999/xhtml">
42
+ <xsl:choose>
43
+ <xsl:when test="@type">
44
+ <xsl:choose>
45
+ <xsl:when test="@xmlUrl">
46
+ <li>
47
+ <div style="display: flex; gap: 8px; align-items: center;">
48
+ <a href="{@xmlUrl}" style="display: flex; justify-content: center; align-items: center;">
49
+ <img src="https://www.rss.style/favicon.svg"
50
+ style="height:1rem;" alt="RSS/Atom Feed" />
51
+ </a>
52
+ <a href="{@htmlUrl}">
53
+ <xsl:value-of select="@text" />
54
+ </a>
55
+ </div>
56
+ </li>
57
+ </xsl:when>
58
+ <xsl:otherwise>
59
+ <li>
60
+ <a href="{@url}">
61
+ <xsl:value-of select="@text" />
62
+ </a>
63
+ </li>
64
+ </xsl:otherwise>
65
+ </xsl:choose>
66
+ </xsl:when>
67
+ <xsl:otherwise>
68
+ <details> <!-- adding an open="open" attribute will make everything open by default -->
69
+ <summary>
70
+ <xsl:value-of select="@text" />
71
+ </summary>
72
+ <ul>
73
+ <xsl:apply-templates select="outline" />
74
+ </ul>
75
+ </details>
76
+ </xsl:otherwise>
77
+ </xsl:choose>
78
+ </xsl:template>
79
+ </xsl:stylesheet>
80
+
81
+
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
+ <xsl:template match="/opml">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <meta name="referrer" content="unsafe-url" />
8
+ <title>
9
+ <xsl:value-of select="head/title" />
10
+ </title>
11
+ <style>:root{--background-body:#eff1f5;--background:#eff1f5;--background-alt:#eff1f5;--selection:#9e9e9e;--text-main:#4c4f69;--text-bright:#000;--text-muted:#70777f;--links:#1e66f5;--focus:#1e66f5;--border:#9ca0b0;--code:#000;--animation-duration:.1s;--button-base:#d0cfcf;--button-hover:#9b9b9b;--scrollbar-thumb:#aaa;--scrollbar-thumb-hover:var(--button-hover);--form-placeholder:#949494;--form-text:#1d1d1d;--variable:#40a02b;--highlight:#df8e1d;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}@media (prefers-color-scheme:dark){:root{--background-body:#1e1e2e;--background:#1e1e2e;--background-alt:#1e1e2e;--selection:#89b4fa;--text-main:#dbdbdb;--text-bright:#fff;--text-muted:#a9b1ba;--links:#89b4fa;--focus:#89b4fa;--border:#526980;--code:#ffbe85;--animation-duration:.1s;--button-base:#0c151c;--button-hover:#040a0f;--scrollbar-thumb:var(--button-hover);--scrollbar-thumb-hover:#000;--form-placeholder:#a9a9a9;--form-text:#fff;--variable:#cba6f7;--highlight:#f9e2af;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}}html{scrollbar-color:#aaa #fff;scrollbar-color:var(--scrollbar-thumb)var(--background-body);scrollbar-width:thin}@media (prefers-color-scheme:dark){html{scrollbar-color:#040a0f #202b38;scrollbar-color:var(--scrollbar-thumb)var(--background-body)}}body{word-wrap:break-word;color:var(--text-main);max-width:800px;background:#fff;background:var(--background-body);text-rendering:optimizeLegibility;margin:20px auto;padding:0 10px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){body{background:#202b38;background:var(--background-body);color:var(--text-main)}}button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}h1{margin-top:0;font-size:2.2em}h1,h2,h3,h4,h5,h6{margin-top:24px;margin-bottom:12px}h1{color:var(--text-bright)}@media (prefers-color-scheme:dark){h1{color:var(--text-bright)}}h2{color:var(--text-bright)}@media (prefers-color-scheme:dark){h2{color:var(--text-bright)}}h3{color:var(--text-bright)}@media (prefers-color-scheme:dark){h3{color:var(--text-bright)}}h4{color:var(--text-bright)}@media (prefers-color-scheme:dark){h4{color:var(--text-bright)}}h5{color:var(--text-bright)}@media (prefers-color-scheme:dark){h5{color:var(--text-bright)}}h6{color:var(--text-bright)}@media (prefers-color-scheme:dark){h6{color:var(--text-bright)}}strong{color:var(--text-bright)}@media (prefers-color-scheme:dark){strong{color:var(--text-bright)}}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}q:after,q:before{content:none}blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}blockquote&gt;footer{border:0;font-style:normal}address,blockquote cite{font-style:normal}a[href^&#x3D;mailto\:]:before{content:&quot;📧 &quot;}a[href^&#x3D;tel\:]:before{content:&quot;📞 &quot;}a[href^&#x3D;sms\:]:before{content:&quot;💬 &quot;}mark{background-color:#ff0;background-color:var(--highlight);color:#000;border-radius:2px;padding:0 2px}@media (prefers-color-scheme:dark){mark{background-color:#efdb43;background-color:var(--highlight)}}a&gt;code,a&gt;strong{color:inherit}button,input[type&#x3D;button],input[type&#x3D;checkbox],input[type&#x3D;radio],input[type&#x3D;range],input[type&#x3D;reset],input[type&#x3D;submit],select{cursor:pointer}input,select{display:block}[type&#x3D;checkbox],[type&#x3D;radio]{display:initial}input{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){input{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){button{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}textarea{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){textarea{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}select{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){select{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){button{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;submit]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;submit]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;reset]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;reset]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;button]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;button]{background-color:#0c151c;background-color:var(--button-base)}}button:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){button:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;submit]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;submit]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;reset]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;reset]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;button]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;button]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;color]{cursor:pointer;min-height:2rem;padding:8px}input[type&#x3D;checkbox],input[type&#x3D;radio]{width:1em;height:1em}input[type&#x3D;radio]{border-radius:100%}input{vertical-align:top}label{vertical-align:middle;margin-bottom:4px;display:inline-block}button,input:not([type&#x3D;checkbox]):not([type&#x3D;radio]),input[type&#x3D;range],select,textarea{-webkit-appearance:none}textarea{box-sizing:border-box;resize:vertical;margin-right:0;display:block}textarea:not([cols]){width:100%}textarea:not([rows]){height:140px;min-height:40px}select{background:#efefef url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat;padding-right:35px}@media (prefers-color-scheme:dark){select{background:#161f27 url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat}}select::-ms-expand{display:none}select[multiple]{background-image:none;padding-right:10px;overflow-y:auto}input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:active,input[type&#x3D;button]:active,input[type&#x3D;checkbox]:active,input[type&#x3D;radio]:active,input[type&#x3D;range]:active,input[type&#x3D;reset]:active,input[type&#x3D;submit]:active{transform:translateY(2px)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.5}:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}@media (prefers-color-scheme:dark){:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}}fieldset{border:1px solid #0096bfab;border:1px solid var(--focus);border-radius:6px;margin:0 0 12px;padding:10px}@media (prefers-color-scheme:dark){fieldset{border:1px solid #0096bfab;border:1px solid var(--focus)}}legend{font-size:.9em;font-weight:600}input[type&#x3D;range]{background:0 0;margin:10px 0;padding:10px 0}input[type&#x3D;range]:focus{outline:none}input[type&#x3D;range]::-webkit-slider-runnable-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-webkit-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-webkit-slider-thumb{background:#dbdbdb;background:var(--border);-webkit-appearance:none;border-radius:50%;width:20px;height:20px;margin-top:-7px;box-shadow:0 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-moz-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-thumb{background:#dbdbdb;background:var(--border);border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]::-ms-track{color:#0000;background:0 0;border-width:16px 0;border-color:#0000;width:100%;height:9.5px}input[type&#x3D;range]::-ms-fill-lower{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-fill-upper{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-upper{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-thumb{background:#dbdbdb;background:var(--border);border:1px solid #000;border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-ms-fill-lower{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]:focus::-ms-fill-upper{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-upper{background:#161f27;background:var(--background)}}a{color:var(--links);text-decoration:none}@media (prefers-color-scheme:dark){a{color:var(--links)}}a:hover{text-decoration:underline}code{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){code{color:var(--code);background:#161f27;background:var(--background)}}samp{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){samp{color:var(--code);background:#161f27;background:var(--background)}}time{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){time{color:var(--code);background:#161f27;background:var(--background)}}pre&gt;code{padding:10px;display:block;overflow-x:auto}var{color:var(--variable);font-family:monospace;font-style:normal}@media (prefers-color-scheme:dark){var{color:var(--variable)}}kbd{background:#efefef;background:var(--background);border:1px solid #dbdbdb;border:1px solid var(--border);color:var(--text-main);border-radius:2px;padding:2px 4px}@media (prefers-color-scheme:dark){kbd{color:var(--text-main);border:1px solid #526980;border:1px solid var(--border);background:#161f27;background:var(--background)}}img,video{max-width:100%;height:auto}hr{border:none;border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){hr{border-top:1px solid #526980;border-top:1px solid var(--border)}}table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:10px}table caption,td,th{text-align:left}td,th{vertical-align:top;word-wrap:break-word;padding:6px}thead{border-bottom:1px solid #dbdbdb;border-bottom:1px solid var(--border)}@media (prefers-color-scheme:dark){thead{border-bottom:1px solid #526980;border-bottom:1px solid var(--border)}}tfoot{border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){tfoot{border-top:1px solid #526980;border-top:1px solid var(--border)}}tbody tr:nth-child(2n){background-color:#efefef;background-color:var(--background)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n){background-color:#161f27;background-color:var(--background)}}tbody tr:nth-child(2n) button{background-color:#f7f7f7;background-color:var(--background-alt)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button{background-color:#1a242f;background-color:var(--background-alt)}}tbody tr:nth-child(2n) button:hover{background-color:#fff;background-color:var(--background-body)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button:hover{background-color:#202b38;background-color:var(--background-body)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#efefef;background:var(--background);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-track{background:#161f27;background:var(--background)}}::-webkit-scrollbar-thumb{background:#aaa;background:var(--scrollbar-thumb);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background:#040a0f;background:var(--scrollbar-thumb)}}::-webkit-scrollbar-thumb:hover{background:#9b9b9b;background:var(--scrollbar-thumb-hover)}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb:hover{background:#000;background:var(--scrollbar-thumb-hover)}}::-moz-selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}::selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}@media (prefers-color-scheme:dark){::-moz-selection{color:var(--text-bright)}::-moz-selection{background-color:#1c76c5;background-color:var(--selection)}::selection{background-color:#1c76c5;background-color:var(--selection)}}details{background-color:#f7f7f7;background-color:var(--background-alt);border-radius:6px;flex-direction:column;align-items:flex-start;margin:1em 0;padding:10px 10px 0;display:flex;overflow:hidden}@media (prefers-color-scheme:dark){details{background-color:#1a242f;background-color:var(--background-alt)}}details[open]{padding:10px}details&gt;:last-child{margin-bottom:0}details[open] summary{margin-bottom:10px}summary{background-color:#efefef;background-color:var(--background);cursor:pointer;outline:none;margin:-10px -10px 0;padding:10px;display:list-item}@media (prefers-color-scheme:dark){summary{background-color:#161f27;background-color:var(--background)}}summary:focus,summary:hover{text-decoration:underline}details&gt;:not(summary){margin-top:0}summary::-webkit-details-marker{color:var(--text-main)}@media (prefers-color-scheme:dark){summary::-webkit-details-marker{color:var(--text-main)}}dialog{background-color:#f7f7f7;background-color:var(--background-alt);color:var(--text-main);border:#dbdbdb;border-color:var(--border);border-radius:6px;padding:10px 30px}@media (prefers-color-scheme:dark){dialog{border-color:#526980;border-color:var(--border);color:var(--text-main);background-color:#1a242f;background-color:var(--background-alt)}}dialog&gt;header:first-child{background-color:#efefef;background-color:var(--background);text-align:center;border-radius:6px 6px 0 0;margin:-10px -30px 10px;padding:10px}@media (prefers-color-scheme:dark){dialog&gt;header:first-child{background-color:#161f27;background-color:var(--background)}}dialog::-webkit-backdrop{backdrop-filter:blur(4px);background:#0000009c}dialog::backdrop{backdrop-filter:blur(4px);background:#0000009c}footer{border-top:1px solid #dbdbdb;border-top:1px solid var(--border);color:var(--text-muted);padding-top:10px}@media (prefers-color-scheme:dark){footer{color:var(--text-muted);border-top:1px solid #526980;border-top:1px solid var(--border)}}body&gt;footer{margin-top:40px}@media print{body,button,code,details,input,pre,summary,textarea{background-color:#fff}button,input,textarea{border:1px solid #000}body,button,code,footer,h1,h2,h3,h4,h5,h6,input,pre,strong,summary,textarea,summary::marker{color:#000}summary::-webkit-details-marker{color:#000}tbody tr:nth-child(2n){background-color:#f2f2f2}a{color:#00f;text-decoration:underline}}</style>
12
+ <script>
13
+ window.addEventListener('load', function() {
14
+ var viewPara = document.getElementById("viewpara");
15
+ viewPara.style.display = "block";
16
+ var viewUrl = document.getElementById("viewUrl");
17
+ viewUrl.value = window.location.href;
18
+ });
19
+ </script>
20
+ </head>
21
+ <body>
22
+ <h1>
23
+ <xsl:value-of select="head/title" />
24
+ </h1>
25
+ <p id="viewpara" style="display:none;">
26
+ <form method="get" action="https://opml-viewer.fileformat.info/view.html"
27
+ id="viewform">
28
+ <input type="hidden" name="url" id="viewUrl" value="" />
29
+ <!-- customize by adding more inputs with the viewer parameters --> Open in the <button>OPML
30
+ Viewer</button> (requires JavaScript). </form>
31
+ </p>
32
+ <p>
33
+ <time>
34
+ <xsl:value-of select="head/dateCreated" />
35
+ </time>
36
+ </p>
37
+ <xsl:apply-templates select="body/outline" />
38
+ </body>
39
+ </html>
40
+ </xsl:template>
41
+ <xsl:template match="outline" xmlns="http://www.w3.org/1999/xhtml">
42
+ <xsl:choose>
43
+ <xsl:when test="@type">
44
+ <xsl:choose>
45
+ <xsl:when test="@xmlUrl">
46
+ <li>
47
+ <div style="display: flex; gap: 8px; align-items: center;">
48
+ <a href="{@xmlUrl}" style="display: flex; justify-content: center; align-items: center;">
49
+ <img src="https://www.rss.style/favicon.svg"
50
+ style="height:1rem;" alt="RSS/Atom Feed" />
51
+ </a>
52
+ <a href="{@htmlUrl}">
53
+ <xsl:value-of select="@text" />
54
+ </a>
55
+ </div>
56
+ </li>
57
+ </xsl:when>
58
+ <xsl:otherwise>
59
+ <li>
60
+ <a href="{@url}">
61
+ <xsl:value-of select="@text" />
62
+ </a>
63
+ </li>
64
+ </xsl:otherwise>
65
+ </xsl:choose>
66
+ </xsl:when>
67
+ <xsl:otherwise>
68
+ <details> <!-- adding an open="open" attribute will make everything open by default -->
69
+ <summary>
70
+ <xsl:value-of select="@text" />
71
+ </summary>
72
+ <ul>
73
+ <xsl:apply-templates select="outline" />
74
+ </ul>
75
+ </details>
76
+ </xsl:otherwise>
77
+ </xsl:choose>
78
+ </xsl:template>
79
+ </xsl:stylesheet>
80
+
81
+
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
+ <xsl:template match="/opml">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <meta name="referrer" content="unsafe-url" />
8
+ <title>
9
+ <xsl:value-of select="head/title" />
10
+ </title>
11
+ <style>:root{--background-body:#eff1f5;--background:#eff1f5;--background-alt:#eff1f5;--selection:#9e9e9e;--text-main:#4c4f69;--text-bright:#000;--text-muted:#70777f;--links:#1e66f5;--focus:#1e66f5;--border:#9ca0b0;--code:#000;--animation-duration:.1s;--button-base:#d0cfcf;--button-hover:#9b9b9b;--scrollbar-thumb:#aaa;--scrollbar-thumb-hover:var(--button-hover);--form-placeholder:#949494;--form-text:#1d1d1d;--variable:#40a02b;--highlight:#df8e1d;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}@media (prefers-color-scheme:dark){:root{--background-body:#1e1e2e;--background:#1e1e2e;--background-alt:#1e1e2e;--selection:#89b4fa;--text-main:#dbdbdb;--text-bright:#fff;--text-muted:#a9b1ba;--links:#89b4fa;--focus:#89b4fa;--border:#526980;--code:#ffbe85;--animation-duration:.1s;--button-base:#0c151c;--button-hover:#040a0f;--scrollbar-thumb:var(--button-hover);--scrollbar-thumb-hover:#000;--form-placeholder:#a9a9a9;--form-text:#fff;--variable:#cba6f7;--highlight:#f9e2af;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}}html{scrollbar-color:#aaa #fff;scrollbar-color:var(--scrollbar-thumb)var(--background-body);scrollbar-width:thin}@media (prefers-color-scheme:dark){html{scrollbar-color:#040a0f #202b38;scrollbar-color:var(--scrollbar-thumb)var(--background-body)}}body{word-wrap:break-word;color:var(--text-main);max-width:800px;background:#fff;background:var(--background-body);text-rendering:optimizeLegibility;margin:20px auto;padding:0 10px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){body{background:#202b38;background:var(--background-body);color:var(--text-main)}}button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}h1{margin-top:0;font-size:2.2em}h1,h2,h3,h4,h5,h6{margin-top:24px;margin-bottom:12px}h1{color:var(--text-bright)}@media (prefers-color-scheme:dark){h1{color:var(--text-bright)}}h2{color:var(--text-bright)}@media (prefers-color-scheme:dark){h2{color:var(--text-bright)}}h3{color:var(--text-bright)}@media (prefers-color-scheme:dark){h3{color:var(--text-bright)}}h4{color:var(--text-bright)}@media (prefers-color-scheme:dark){h4{color:var(--text-bright)}}h5{color:var(--text-bright)}@media (prefers-color-scheme:dark){h5{color:var(--text-bright)}}h6{color:var(--text-bright)}@media (prefers-color-scheme:dark){h6{color:var(--text-bright)}}strong{color:var(--text-bright)}@media (prefers-color-scheme:dark){strong{color:var(--text-bright)}}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}q:after,q:before{content:none}blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}blockquote&gt;footer{border:0;font-style:normal}address,blockquote cite{font-style:normal}a[href^&#x3D;mailto\:]:before{content:&quot;📧 &quot;}a[href^&#x3D;tel\:]:before{content:&quot;📞 &quot;}a[href^&#x3D;sms\:]:before{content:&quot;💬 &quot;}mark{background-color:#ff0;background-color:var(--highlight);color:#000;border-radius:2px;padding:0 2px}@media (prefers-color-scheme:dark){mark{background-color:#efdb43;background-color:var(--highlight)}}a&gt;code,a&gt;strong{color:inherit}button,input[type&#x3D;button],input[type&#x3D;checkbox],input[type&#x3D;radio],input[type&#x3D;range],input[type&#x3D;reset],input[type&#x3D;submit],select{cursor:pointer}input,select{display:block}[type&#x3D;checkbox],[type&#x3D;radio]{display:initial}input{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){input{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){button{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}textarea{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){textarea{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}select{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){select{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){button{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;submit]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;submit]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;reset]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;reset]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;button]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;button]{background-color:#0c151c;background-color:var(--button-base)}}button:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){button:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;submit]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;submit]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;reset]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;reset]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;button]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;button]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;color]{cursor:pointer;min-height:2rem;padding:8px}input[type&#x3D;checkbox],input[type&#x3D;radio]{width:1em;height:1em}input[type&#x3D;radio]{border-radius:100%}input{vertical-align:top}label{vertical-align:middle;margin-bottom:4px;display:inline-block}button,input:not([type&#x3D;checkbox]):not([type&#x3D;radio]),input[type&#x3D;range],select,textarea{-webkit-appearance:none}textarea{box-sizing:border-box;resize:vertical;margin-right:0;display:block}textarea:not([cols]){width:100%}textarea:not([rows]){height:140px;min-height:40px}select{background:#efefef url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat;padding-right:35px}@media (prefers-color-scheme:dark){select{background:#161f27 url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat}}select::-ms-expand{display:none}select[multiple]{background-image:none;padding-right:10px;overflow-y:auto}input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:active,input[type&#x3D;button]:active,input[type&#x3D;checkbox]:active,input[type&#x3D;radio]:active,input[type&#x3D;range]:active,input[type&#x3D;reset]:active,input[type&#x3D;submit]:active{transform:translateY(2px)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.5}:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}@media (prefers-color-scheme:dark){:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}}fieldset{border:1px solid #0096bfab;border:1px solid var(--focus);border-radius:6px;margin:0 0 12px;padding:10px}@media (prefers-color-scheme:dark){fieldset{border:1px solid #0096bfab;border:1px solid var(--focus)}}legend{font-size:.9em;font-weight:600}input[type&#x3D;range]{background:0 0;margin:10px 0;padding:10px 0}input[type&#x3D;range]:focus{outline:none}input[type&#x3D;range]::-webkit-slider-runnable-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-webkit-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-webkit-slider-thumb{background:#dbdbdb;background:var(--border);-webkit-appearance:none;border-radius:50%;width:20px;height:20px;margin-top:-7px;box-shadow:0 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-moz-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-thumb{background:#dbdbdb;background:var(--border);border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]::-ms-track{color:#0000;background:0 0;border-width:16px 0;border-color:#0000;width:100%;height:9.5px}input[type&#x3D;range]::-ms-fill-lower{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-fill-upper{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-upper{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-thumb{background:#dbdbdb;background:var(--border);border:1px solid #000;border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-ms-fill-lower{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]:focus::-ms-fill-upper{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-upper{background:#161f27;background:var(--background)}}a{color:var(--links);text-decoration:none}@media (prefers-color-scheme:dark){a{color:var(--links)}}a:hover{text-decoration:underline}code{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){code{color:var(--code);background:#161f27;background:var(--background)}}samp{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){samp{color:var(--code);background:#161f27;background:var(--background)}}time{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){time{color:var(--code);background:#161f27;background:var(--background)}}pre&gt;code{padding:10px;display:block;overflow-x:auto}var{color:var(--variable);font-family:monospace;font-style:normal}@media (prefers-color-scheme:dark){var{color:var(--variable)}}kbd{background:#efefef;background:var(--background);border:1px solid #dbdbdb;border:1px solid var(--border);color:var(--text-main);border-radius:2px;padding:2px 4px}@media (prefers-color-scheme:dark){kbd{color:var(--text-main);border:1px solid #526980;border:1px solid var(--border);background:#161f27;background:var(--background)}}img,video{max-width:100%;height:auto}hr{border:none;border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){hr{border-top:1px solid #526980;border-top:1px solid var(--border)}}table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:10px}table caption,td,th{text-align:left}td,th{vertical-align:top;word-wrap:break-word;padding:6px}thead{border-bottom:1px solid #dbdbdb;border-bottom:1px solid var(--border)}@media (prefers-color-scheme:dark){thead{border-bottom:1px solid #526980;border-bottom:1px solid var(--border)}}tfoot{border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){tfoot{border-top:1px solid #526980;border-top:1px solid var(--border)}}tbody tr:nth-child(2n){background-color:#efefef;background-color:var(--background)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n){background-color:#161f27;background-color:var(--background)}}tbody tr:nth-child(2n) button{background-color:#f7f7f7;background-color:var(--background-alt)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button{background-color:#1a242f;background-color:var(--background-alt)}}tbody tr:nth-child(2n) button:hover{background-color:#fff;background-color:var(--background-body)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button:hover{background-color:#202b38;background-color:var(--background-body)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#efefef;background:var(--background);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-track{background:#161f27;background:var(--background)}}::-webkit-scrollbar-thumb{background:#aaa;background:var(--scrollbar-thumb);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background:#040a0f;background:var(--scrollbar-thumb)}}::-webkit-scrollbar-thumb:hover{background:#9b9b9b;background:var(--scrollbar-thumb-hover)}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb:hover{background:#000;background:var(--scrollbar-thumb-hover)}}::-moz-selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}::selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}@media (prefers-color-scheme:dark){::-moz-selection{color:var(--text-bright)}::-moz-selection{background-color:#1c76c5;background-color:var(--selection)}::selection{background-color:#1c76c5;background-color:var(--selection)}}details{background-color:#f7f7f7;background-color:var(--background-alt);border-radius:6px;flex-direction:column;align-items:flex-start;margin:1em 0;padding:10px 10px 0;display:flex;overflow:hidden}@media (prefers-color-scheme:dark){details{background-color:#1a242f;background-color:var(--background-alt)}}details[open]{padding:10px}details&gt;:last-child{margin-bottom:0}details[open] summary{margin-bottom:10px}summary{background-color:#efefef;background-color:var(--background);cursor:pointer;outline:none;margin:-10px -10px 0;padding:10px;display:list-item}@media (prefers-color-scheme:dark){summary{background-color:#161f27;background-color:var(--background)}}summary:focus,summary:hover{text-decoration:underline}details&gt;:not(summary){margin-top:0}summary::-webkit-details-marker{color:var(--text-main)}@media (prefers-color-scheme:dark){summary::-webkit-details-marker{color:var(--text-main)}}dialog{background-color:#f7f7f7;background-color:var(--background-alt);color:var(--text-main);border:#dbdbdb;border-color:var(--border);border-radius:6px;padding:10px 30px}@media (prefers-color-scheme:dark){dialog{border-color:#526980;border-color:var(--border);color:var(--text-main);background-color:#1a242f;background-color:var(--background-alt)}}dialog&gt;header:first-child{background-color:#efefef;background-color:var(--background);text-align:center;border-radius:6px 6px 0 0;margin:-10px -30px 10px;padding:10px}@media (prefers-color-scheme:dark){dialog&gt;header:first-child{background-color:#161f27;background-color:var(--background)}}dialog::-webkit-backdrop{backdrop-filter:blur(4px);background:#0000009c}dialog::backdrop{backdrop-filter:blur(4px);background:#0000009c}footer{border-top:1px solid #dbdbdb;border-top:1px solid var(--border);color:var(--text-muted);padding-top:10px}@media (prefers-color-scheme:dark){footer{color:var(--text-muted);border-top:1px solid #526980;border-top:1px solid var(--border)}}body&gt;footer{margin-top:40px}@media print{body,button,code,details,input,pre,summary,textarea{background-color:#fff}button,input,textarea{border:1px solid #000}body,button,code,footer,h1,h2,h3,h4,h5,h6,input,pre,strong,summary,textarea,summary::marker{color:#000}summary::-webkit-details-marker{color:#000}tbody tr:nth-child(2n){background-color:#f2f2f2}a{color:#00f;text-decoration:underline}}</style>
12
+ <script>
13
+ window.addEventListener('load', function() {
14
+ var viewPara = document.getElementById("viewpara");
15
+ viewPara.style.display = "block";
16
+ var viewUrl = document.getElementById("viewUrl");
17
+ viewUrl.value = window.location.href;
18
+ });
19
+ </script>
20
+ </head>
21
+ <body>
22
+ <h1>
23
+ <xsl:value-of select="head/title" />
24
+ </h1>
25
+ <p id="viewpara" style="display:none;">
26
+ <form method="get" action="https://opml-viewer.fileformat.info/view.html"
27
+ id="viewform">
28
+ <input type="hidden" name="url" id="viewUrl" value="" />
29
+ <!-- customize by adding more inputs with the viewer parameters --> Open in the <button>OPML
30
+ Viewer</button> (requires JavaScript). </form>
31
+ </p>
32
+ <p>
33
+ <time>
34
+ <xsl:value-of select="head/dateCreated" />
35
+ </time>
36
+ </p>
37
+ <xsl:apply-templates select="body/outline" />
38
+ </body>
39
+ </html>
40
+ </xsl:template>
41
+ <xsl:template match="outline" xmlns="http://www.w3.org/1999/xhtml">
42
+ <xsl:choose>
43
+ <xsl:when test="@type">
44
+ <xsl:choose>
45
+ <xsl:when test="@xmlUrl">
46
+ <li>
47
+ <div style="display: flex; gap: 8px; align-items: center;">
48
+ <a href="{@xmlUrl}" style="display: flex; justify-content: center; align-items: center;">
49
+ <img src="https://www.rss.style/favicon.svg"
50
+ style="height:1rem;" alt="RSS/Atom Feed" />
51
+ </a>
52
+ <a href="{@htmlUrl}">
53
+ <xsl:value-of select="@text" />
54
+ </a>
55
+ </div>
56
+ </li>
57
+ </xsl:when>
58
+ <xsl:otherwise>
59
+ <li>
60
+ <a href="{@url}">
61
+ <xsl:value-of select="@text" />
62
+ </a>
63
+ </li>
64
+ </xsl:otherwise>
65
+ </xsl:choose>
66
+ </xsl:when>
67
+ <xsl:otherwise>
68
+ <details> <!-- adding an open="open" attribute will make everything open by default -->
69
+ <summary>
70
+ <xsl:value-of select="@text" />
71
+ </summary>
72
+ <ul>
73
+ <xsl:apply-templates select="outline" />
74
+ </ul>
75
+ </details>
76
+ </xsl:otherwise>
77
+ </xsl:choose>
78
+ </xsl:template>
79
+ </xsl:stylesheet>
80
+
81
+
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
+ <xsl:template match="/opml">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <meta name="referrer" content="unsafe-url" />
8
+ <title>
9
+ <xsl:value-of select="head/title" />
10
+ </title>
11
+ <style>:root{--background-body:#eff1f5;--background:#eff1f5;--background-alt:#eff1f5;--selection:#9e9e9e;--text-main:#4c4f69;--text-bright:#000;--text-muted:#70777f;--links:#1e66f5;--focus:#1e66f5;--border:#9ca0b0;--code:#000;--animation-duration:.1s;--button-base:#d0cfcf;--button-hover:#9b9b9b;--scrollbar-thumb:#aaa;--scrollbar-thumb-hover:var(--button-hover);--form-placeholder:#949494;--form-text:#1d1d1d;--variable:#40a02b;--highlight:#df8e1d;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}@media (prefers-color-scheme:dark){:root{--background-body:#1e1e2e;--background:#1e1e2e;--background-alt:#1e1e2e;--selection:#89b4fa;--text-main:#dbdbdb;--text-bright:#fff;--text-muted:#a9b1ba;--links:#89b4fa;--focus:#89b4fa;--border:#526980;--code:#ffbe85;--animation-duration:.1s;--button-base:#0c151c;--button-hover:#040a0f;--scrollbar-thumb:var(--button-hover);--scrollbar-thumb-hover:#000;--form-placeholder:#a9a9a9;--form-text:#fff;--variable:#cba6f7;--highlight:#f9e2af;--select-arrow:url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;)}}html{scrollbar-color:#aaa #fff;scrollbar-color:var(--scrollbar-thumb)var(--background-body);scrollbar-width:thin}@media (prefers-color-scheme:dark){html{scrollbar-color:#040a0f #202b38;scrollbar-color:var(--scrollbar-thumb)var(--background-body)}}body{word-wrap:break-word;color:var(--text-main);max-width:800px;background:#fff;background:var(--background-body);text-rendering:optimizeLegibility;margin:20px auto;padding:0 10px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){body{background:#202b38;background:var(--background-body);color:var(--text-main)}}button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){button{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){input{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}@media (prefers-color-scheme:dark){textarea{transition:background-color .1s linear,border-color .1s linear,color .1s linear,box-shadow .1s linear,transform .1s;transition:background-color var(--animation-duration)linear,border-color var(--animation-duration)linear,color var(--animation-duration)linear,box-shadow var(--animation-duration)linear,transform var(--animation-duration)ease}}h1{margin-top:0;font-size:2.2em}h1,h2,h3,h4,h5,h6{margin-top:24px;margin-bottom:12px}h1{color:var(--text-bright)}@media (prefers-color-scheme:dark){h1{color:var(--text-bright)}}h2{color:var(--text-bright)}@media (prefers-color-scheme:dark){h2{color:var(--text-bright)}}h3{color:var(--text-bright)}@media (prefers-color-scheme:dark){h3{color:var(--text-bright)}}h4{color:var(--text-bright)}@media (prefers-color-scheme:dark){h4{color:var(--text-bright)}}h5{color:var(--text-bright)}@media (prefers-color-scheme:dark){h5{color:var(--text-bright)}}h6{color:var(--text-bright)}@media (prefers-color-scheme:dark){h6{color:var(--text-bright)}}strong{color:var(--text-bright)}@media (prefers-color-scheme:dark){strong{color:var(--text-bright)}}b,h1,h2,h3,h4,h5,h6,strong,th{font-weight:600}q:after,q:before{content:none}blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){blockquote{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus);margin:1.5em 0;padding:.5em 1em;font-style:italic}@media (prefers-color-scheme:dark){q{border-left:4px solid #0096bfab;border-left:4px solid var(--focus)}}blockquote&gt;footer{border:0;font-style:normal}address,blockquote cite{font-style:normal}a[href^&#x3D;mailto\:]:before{content:&quot;📧 &quot;}a[href^&#x3D;tel\:]:before{content:&quot;📞 &quot;}a[href^&#x3D;sms\:]:before{content:&quot;💬 &quot;}mark{background-color:#ff0;background-color:var(--highlight);color:#000;border-radius:2px;padding:0 2px}@media (prefers-color-scheme:dark){mark{background-color:#efdb43;background-color:var(--highlight)}}a&gt;code,a&gt;strong{color:inherit}button,input[type&#x3D;button],input[type&#x3D;checkbox],input[type&#x3D;radio],input[type&#x3D;range],input[type&#x3D;reset],input[type&#x3D;submit],select{cursor:pointer}input,select{display:block}[type&#x3D;checkbox],[type&#x3D;radio]{display:initial}input{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){input{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){button{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}textarea{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){textarea{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}select{color:var(--form-text);background-color:#efefef;background-color:var(--background);font-family:inherit;font-size:inherit;border:none;border-radius:6px;outline:none;margin-bottom:6px;margin-right:6px;padding:10px}@media (prefers-color-scheme:dark){select{background-color:#161f27;background-color:var(--background);color:var(--form-text)}}button{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){button{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;submit]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;submit]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;reset]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;reset]{background-color:#0c151c;background-color:var(--button-base)}}input[type&#x3D;button]{background-color:#d0cfcf;background-color:var(--button-base);padding-left:30px;padding-right:30px}@media (prefers-color-scheme:dark){input[type&#x3D;button]{background-color:#0c151c;background-color:var(--button-base)}}button:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){button:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;submit]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;submit]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;reset]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;reset]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;button]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type&#x3D;button]:hover{background:#040a0f;background:var(--button-hover)}}input[type&#x3D;color]{cursor:pointer;min-height:2rem;padding:8px}input[type&#x3D;checkbox],input[type&#x3D;radio]{width:1em;height:1em}input[type&#x3D;radio]{border-radius:100%}input{vertical-align:top}label{vertical-align:middle;margin-bottom:4px;display:inline-block}button,input:not([type&#x3D;checkbox]):not([type&#x3D;radio]),input[type&#x3D;range],select,textarea{-webkit-appearance:none}textarea{box-sizing:border-box;resize:vertical;margin-right:0;display:block}textarea:not([cols]){width:100%}textarea:not([rows]){height:140px;min-height:40px}select{background:#efefef url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23161f27&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat;padding-right:35px}@media (prefers-color-scheme:dark){select{background:#161f27 url(&quot;data:image/svg+xml;charset&#x3D;utf-8,%3Csvg xmlns&#x3D;&#x27;http://www.w3.org/2000/svg&#x27; height&#x3D;&#x27;63&#x27; width&#x3D;&#x27;117&#x27; fill&#x3D;&#x27;%23efefef&#x27;%3E%3Cpath d&#x3D;&#x27;M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z&#x27;/%3E%3C/svg%3E&quot;) calc(100% - 12px)/12px no-repeat;background:var(--background)var(--select-arrow)calc(100% - 12px)50%/12px no-repeat}}select::-ms-expand{display:none}select[multiple]{background-image:none;padding-right:10px;overflow-y:auto}input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){input:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){select:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){button:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){textarea:focus{box-shadow:0 0 0 2px #0096bfab;box-shadow:0 0 0 2px var(--focus)}}button:active,input[type&#x3D;button]:active,input[type&#x3D;checkbox]:active,input[type&#x3D;radio]:active,input[type&#x3D;range]:active,input[type&#x3D;reset]:active,input[type&#x3D;submit]:active{transform:translateY(2px)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.5}:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}@media (prefers-color-scheme:dark){:-ms-placeholder-shown{color:var(--form-placeholder)}::-moz-placeholder{color:var(--form-placeholder)}::placeholder{color:var(--form-placeholder)}}fieldset{border:1px solid #0096bfab;border:1px solid var(--focus);border-radius:6px;margin:0 0 12px;padding:10px}@media (prefers-color-scheme:dark){fieldset{border:1px solid #0096bfab;border:1px solid var(--focus)}}legend{font-size:.9em;font-weight:600}input[type&#x3D;range]{background:0 0;margin:10px 0;padding:10px 0}input[type&#x3D;range]:focus{outline:none}input[type&#x3D;range]::-webkit-slider-runnable-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-webkit-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-webkit-slider-thumb{background:#dbdbdb;background:var(--border);-webkit-appearance:none;border-radius:50%;width:20px;height:20px;margin-top:-7px;box-shadow:0 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-webkit-slider-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-webkit-slider-runnable-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-track{background:#efefef;background:var(--background);border-radius:3px;width:100%;height:9.5px;-moz-transition:all .2s;transition:all .2s}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-track{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-moz-range-thumb{background:#dbdbdb;background:var(--border);border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-moz-range-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]::-ms-track{color:#0000;background:0 0;border-width:16px 0;border-color:#0000;width:100%;height:9.5px}input[type&#x3D;range]::-ms-fill-lower{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-fill-upper{background:#efefef;background:var(--background);border:.2px solid #010101;border-radius:3px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-fill-upper{background:#161f27;background:var(--background)}}input[type&#x3D;range]::-ms-thumb{background:#dbdbdb;background:var(--border);border:1px solid #000;border-radius:50%;width:20px;height:20px;box-shadow:1px 1px 1px #000,0 0 1px #0d0d0d}@media (prefers-color-scheme:dark){input[type&#x3D;range]::-ms-thumb{background:#526980;background:var(--border)}}input[type&#x3D;range]:focus::-ms-fill-lower{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-lower{background:#161f27;background:var(--background)}}input[type&#x3D;range]:focus::-ms-fill-upper{background:#efefef;background:var(--background)}@media (prefers-color-scheme:dark){input[type&#x3D;range]:focus::-ms-fill-upper{background:#161f27;background:var(--background)}}a{color:var(--links);text-decoration:none}@media (prefers-color-scheme:dark){a{color:var(--links)}}a:hover{text-decoration:underline}code{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){code{color:var(--code);background:#161f27;background:var(--background)}}samp{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){samp{color:var(--code);background:#161f27;background:var(--background)}}time{background:#efefef;background:var(--background);color:var(--code);border-radius:6px;padding:2.5px 5px;font-size:1em}@media (prefers-color-scheme:dark){time{color:var(--code);background:#161f27;background:var(--background)}}pre&gt;code{padding:10px;display:block;overflow-x:auto}var{color:var(--variable);font-family:monospace;font-style:normal}@media (prefers-color-scheme:dark){var{color:var(--variable)}}kbd{background:#efefef;background:var(--background);border:1px solid #dbdbdb;border:1px solid var(--border);color:var(--text-main);border-radius:2px;padding:2px 4px}@media (prefers-color-scheme:dark){kbd{color:var(--text-main);border:1px solid #526980;border:1px solid var(--border);background:#161f27;background:var(--background)}}img,video{max-width:100%;height:auto}hr{border:none;border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){hr{border-top:1px solid #526980;border-top:1px solid var(--border)}}table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:10px}table caption,td,th{text-align:left}td,th{vertical-align:top;word-wrap:break-word;padding:6px}thead{border-bottom:1px solid #dbdbdb;border-bottom:1px solid var(--border)}@media (prefers-color-scheme:dark){thead{border-bottom:1px solid #526980;border-bottom:1px solid var(--border)}}tfoot{border-top:1px solid #dbdbdb;border-top:1px solid var(--border)}@media (prefers-color-scheme:dark){tfoot{border-top:1px solid #526980;border-top:1px solid var(--border)}}tbody tr:nth-child(2n){background-color:#efefef;background-color:var(--background)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n){background-color:#161f27;background-color:var(--background)}}tbody tr:nth-child(2n) button{background-color:#f7f7f7;background-color:var(--background-alt)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button{background-color:#1a242f;background-color:var(--background-alt)}}tbody tr:nth-child(2n) button:hover{background-color:#fff;background-color:var(--background-body)}@media (prefers-color-scheme:dark){tbody tr:nth-child(2n) button:hover{background-color:#202b38;background-color:var(--background-body)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#efefef;background:var(--background);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-track{background:#161f27;background:var(--background)}}::-webkit-scrollbar-thumb{background:#aaa;background:var(--scrollbar-thumb);border-radius:6px}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background:#040a0f;background:var(--scrollbar-thumb)}}::-webkit-scrollbar-thumb:hover{background:#9b9b9b;background:var(--scrollbar-thumb-hover)}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb:hover{background:#000;background:var(--scrollbar-thumb-hover)}}::-moz-selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}::selection{background-color:#9e9e9e;background-color:var(--selection);color:var(--text-bright)}@media (prefers-color-scheme:dark){::-moz-selection{color:var(--text-bright)}::-moz-selection{background-color:#1c76c5;background-color:var(--selection)}::selection{background-color:#1c76c5;background-color:var(--selection)}}details{background-color:#f7f7f7;background-color:var(--background-alt);border-radius:6px;flex-direction:column;align-items:flex-start;margin:1em 0;padding:10px 10px 0;display:flex;overflow:hidden}@media (prefers-color-scheme:dark){details{background-color:#1a242f;background-color:var(--background-alt)}}details[open]{padding:10px}details&gt;:last-child{margin-bottom:0}details[open] summary{margin-bottom:10px}summary{background-color:#efefef;background-color:var(--background);cursor:pointer;outline:none;margin:-10px -10px 0;padding:10px;display:list-item}@media (prefers-color-scheme:dark){summary{background-color:#161f27;background-color:var(--background)}}summary:focus,summary:hover{text-decoration:underline}details&gt;:not(summary){margin-top:0}summary::-webkit-details-marker{color:var(--text-main)}@media (prefers-color-scheme:dark){summary::-webkit-details-marker{color:var(--text-main)}}dialog{background-color:#f7f7f7;background-color:var(--background-alt);color:var(--text-main);border:#dbdbdb;border-color:var(--border);border-radius:6px;padding:10px 30px}@media (prefers-color-scheme:dark){dialog{border-color:#526980;border-color:var(--border);color:var(--text-main);background-color:#1a242f;background-color:var(--background-alt)}}dialog&gt;header:first-child{background-color:#efefef;background-color:var(--background);text-align:center;border-radius:6px 6px 0 0;margin:-10px -30px 10px;padding:10px}@media (prefers-color-scheme:dark){dialog&gt;header:first-child{background-color:#161f27;background-color:var(--background)}}dialog::-webkit-backdrop{backdrop-filter:blur(4px);background:#0000009c}dialog::backdrop{backdrop-filter:blur(4px);background:#0000009c}footer{border-top:1px solid #dbdbdb;border-top:1px solid var(--border);color:var(--text-muted);padding-top:10px}@media (prefers-color-scheme:dark){footer{color:var(--text-muted);border-top:1px solid #526980;border-top:1px solid var(--border)}}body&gt;footer{margin-top:40px}@media print{body,button,code,details,input,pre,summary,textarea{background-color:#fff}button,input,textarea{border:1px solid #000}body,button,code,footer,h1,h2,h3,h4,h5,h6,input,pre,strong,summary,textarea,summary::marker{color:#000}summary::-webkit-details-marker{color:#000}tbody tr:nth-child(2n){background-color:#f2f2f2}a{color:#00f;text-decoration:underline}}</style>
12
+ <script>
13
+ window.addEventListener('load', function() {
14
+ var viewPara = document.getElementById("viewpara");
15
+ viewPara.style.display = "block";
16
+ var viewUrl = document.getElementById("viewUrl");
17
+ viewUrl.value = window.location.href;
18
+ });
19
+ </script>
20
+ </head>
21
+ <body>
22
+ <h1>
23
+ <xsl:value-of select="head/title" />
24
+ </h1>
25
+ <p id="viewpara" style="display:none;">
26
+ <form method="get" action="https://opml-viewer.fileformat.info/view.html"
27
+ id="viewform">
28
+ <input type="hidden" name="url" id="viewUrl" value="" />
29
+ <!-- customize by adding more inputs with the viewer parameters --> Open in the <button>OPML
30
+ Viewer</button> (requires JavaScript). </form>
31
+ </p>
32
+ <p>
33
+ <time>
34
+ <xsl:value-of select="head/dateCreated" />
35
+ </time>
36
+ </p>
37
+ <xsl:apply-templates select="body/outline" />
38
+ </body>
39
+ </html>
40
+ </xsl:template>
41
+ <xsl:template match="outline" xmlns="http://www.w3.org/1999/xhtml">
42
+ <xsl:choose>
43
+ <xsl:when test="@type">
44
+ <xsl:choose>
45
+ <xsl:when test="@xmlUrl">
46
+ <li>
47
+ <div style="display: flex; gap: 8px; align-items: center;">
48
+ <a href="{@xmlUrl}" style="display: flex; justify-content: center; align-items: center;">
49
+ <img src="https://www.rss.style/favicon.svg"
50
+ style="height:1rem;" alt="RSS/Atom Feed" />
51
+ </a>
52
+ <a href="{@htmlUrl}">
53
+ <xsl:value-of select="@text" />
54
+ </a>
55
+ </div>
56
+ </li>
57
+ </xsl:when>
58
+ <xsl:otherwise>
59
+ <li>
60
+ <a href="{@url}">
61
+ <xsl:value-of select="@text" />
62
+ </a>
63
+ </li>
64
+ </xsl:otherwise>
65
+ </xsl:choose>
66
+ </xsl:when>
67
+ <xsl:otherwise>
68
+ <details> <!-- adding an open="open" attribute will make everything open by default -->
69
+ <summary>
70
+ <xsl:value-of select="@text" />
71
+ </summary>
72
+ <ul>
73
+ <xsl:apply-templates select="outline" />
74
+ </ul>
75
+ </details>
76
+ </xsl:otherwise>
77
+ </xsl:choose>
78
+ </xsl:template>
79
+ </xsl:stylesheet>
80
+
81
+