Rename project to Rivista;
CSS: Improve position of elements; JS: Improve handling of content in erroneous cases; JS: Render post as HTML when XSLT does not render correctly; JS: Handle posts which were tagged as Text instead of HTML and vice versa; XSLT: Adapt to be viewed on browsers with a lack of support; XSLT: Add Support for link elements of attribute "rel"; Python: Add elements author and link of attribute "rel".
This commit is contained in:
parent
040d532fb9
commit
cb4507bb78
8 changed files with 510 additions and 322 deletions
10
xsl/atom.xsl
10
xsl/atom.xsl
|
@ -1,17 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<!--
|
||||
Copyright (C) 2016 - 2017 Schimon Jehuda. Released under MIT license
|
||||
Copyright (C) 2016 - 2024 Schimon Jehuda. Released under MIT license
|
||||
Feeds rendered using this XSLT stylesheet, or it's derivatives, must
|
||||
include https://schimon.i2p/ in attribute name='generator' of
|
||||
element <meta/> inside of html element </head>
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method = 'html'
|
||||
<xsl:output encoding = 'UTF-8'
|
||||
indent = 'yes'
|
||||
omit-xml-decleration='no' />
|
||||
<!-- Atom 1.0 Syndication Format -->
|
||||
media-type = 'application/atom+xml'
|
||||
method = 'html'
|
||||
version = '4.01' />
|
||||
<!-- Atom Syndication Format 1.0 -->
|
||||
<xsl:include href='atom_as_xhtml.xsl'/>
|
||||
<!-- extract filename from given url string -->
|
||||
<xsl:include href='extract-filename.xsl'/>
|
||||
|
|
|
@ -15,9 +15,6 @@ xmlns:georss='http://www.georss.org/georss'
|
|||
xmlns:geo='http://www.w3.org/2003/01/geo/wgs84_pos#'
|
||||
xmlns:atom10='http://www.w3.org/2005/Atom'
|
||||
xmlns:atom='http://www.w3.org/2005/Atom'>
|
||||
<!-- Atom 1.0 Syndication Format -->
|
||||
<xsl:output
|
||||
media-type='application/atom+xml' />
|
||||
<xsl:template match='/atom:feed'>
|
||||
<!-- index right-to-left language codes -->
|
||||
<!-- TODO http://www.w3.org/TR/xpath/#function-lang -->
|
||||
|
@ -38,7 +35,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
</xsl:call-template>
|
||||
<xsl:call-template name='metadata'>
|
||||
<xsl:with-param name='name' select='"generator"' />
|
||||
<xsl:with-param name='content' select='StreamBurner' />
|
||||
<xsl:with-param name='content' select='Rivista' />
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name='metadata'>
|
||||
<xsl:with-param name='name' select='"mimetype"' />
|
||||
|
@ -52,7 +49,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<xsl:when test='atom:entry'>
|
||||
<xsl:value-of select='atom:entry/atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>StreamBurner</xsl:otherwise>
|
||||
<xsl:otherwise>Rivista</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</title>
|
||||
<!-- TODO media='print' -->
|
||||
|
@ -90,15 +87,6 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
</xsl:attribute>
|
||||
SubToMe
|
||||
</a>
|
||||
<a href='https://git.xmpp-it.net/sch/PubSubToAtom'
|
||||
title='About PubSub To Atom.'>
|
||||
About
|
||||
</a>
|
||||
<a href='https://aboutfeeds.com/'
|
||||
title='Of the benefits of syndication feed.'
|
||||
id='aboutfeeds'>
|
||||
Feeds
|
||||
</a>
|
||||
<a href='https://xmpp.org/about/technology-overview/'
|
||||
title='Of the benefits of XMPP.'>
|
||||
XMPP
|
||||
|
@ -107,6 +95,11 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
title='Syndictaion and PubSub.'>
|
||||
Groupchat
|
||||
</a>
|
||||
<a href='https://aboutfeeds.com/'
|
||||
title='Of the benefits of syndication feed.'
|
||||
id='aboutfeeds'>
|
||||
Help
|
||||
</a>
|
||||
</div>
|
||||
<div id='feed'>
|
||||
<div id='header'>
|
||||
|
@ -120,7 +113,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<xsl:value-of select='atom:entry/atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
StreamBurner
|
||||
No title
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</h1>
|
||||
|
@ -138,6 +131,9 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<xsl:attribute name='class'><xsl:text>date</xsl:text></xsl:attribute>
|
||||
<xsl:value-of select='atom:entry/atom:published'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
Rivista XMPP Journal Publisher
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</h2>
|
||||
</div>
|
||||
|
@ -145,12 +141,12 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<div id='menu'>
|
||||
<h3>Latest Posts</h3>
|
||||
<!-- xsl:for-each select='atom:entry[position() <21]' -->
|
||||
<ul>
|
||||
<ol>
|
||||
<xsl:for-each select='atom:entry[not(position() > 20)]'>
|
||||
<li>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:text>#stremburner-</xsl:text>
|
||||
<xsl:text>#rivista-</xsl:text>
|
||||
<xsl:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
|
@ -164,7 +160,7 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
</xsl:element>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</ol>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<div id='articles'>
|
||||
|
@ -180,19 +176,16 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:link[contains(@rel,"alternate")]'>
|
||||
<xsl:value-of select='atom:link[contains(@rel,"alternate")]/@href'/>
|
||||
<xsl:when test='atom:link[@rel="self"]'>
|
||||
<xsl:value-of select='atom:link[@rel="self"]/@href'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select='atom:link/@href'/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='id'>
|
||||
<xsl:text>stremburner-</xsl:text>
|
||||
<xsl:text>rivista-</xsl:text>
|
||||
<xsl:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
|
@ -230,60 +223,96 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
</span>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
<!-- div class='posted' -->
|
||||
<!-- entry author -->
|
||||
<!-- xsl:if test='atom:author'>
|
||||
<span class='author'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:author/atom:email'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:text>mailto:</xsl:text>
|
||||
<xsl:value-of select='atom:author/atom:email'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:text>Send an Email to </xsl:text>
|
||||
<xsl:value-of select='atom:author/atom:email'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:author/atom:name'/>
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:author/atom:uri'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='atom:author/atom:uri'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:value-of select='atom:author/atom:summary'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:author/atom:name'/>
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select='atom:name'/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</span>
|
||||
</xsl:if -->
|
||||
<!-- entry date -->
|
||||
<!-- entry date -->
|
||||
<xsl:element name='h4'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:updated'>
|
||||
<h4 class='updated'>
|
||||
<xsl:value-of select='atom:updated'/>
|
||||
</h4>
|
||||
<xsl:attribute name='class'>
|
||||
<xsl:text>updated</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:updated'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:published'>
|
||||
<h4 class='published'>
|
||||
<xsl:value-of select='atom:published'/>
|
||||
</h4>
|
||||
<xsl:attribute name='class'>
|
||||
<xsl:text>published</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:published'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<h4 class='warning atom1 published'></h4>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- /div -->
|
||||
</xsl:element>
|
||||
<!-- entry author -->
|
||||
<xsl:if test='atom:author'>
|
||||
<h4 class='author'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:author/atom:email'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:text>mailto:</xsl:text>
|
||||
<xsl:value-of select='atom:author/atom:email'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:text>Send an Email to </xsl:text>
|
||||
<xsl:value-of select='atom:author/atom:email'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:author/atom:name'/>
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:author/atom:uri'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='atom:author/atom:uri'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:value-of select='atom:author/atom:summary'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:author/atom:name'/>
|
||||
</xsl:element>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:author/atom:name'>
|
||||
<xsl:text>By </xsl:text>
|
||||
<xsl:value-of select='atom:author/atom:name'/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</h4>
|
||||
</xsl:if>
|
||||
<h5 class='related'>
|
||||
<xsl:if test='atom:link[@rel="alternate" and @type="x-scheme-handler/xmpp"]'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='atom:link[@rel="alternate" and @type="x-scheme-handler/xmpp"]/@href'/>
|
||||
</xsl:attribute>
|
||||
💡️ XMPP
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test='atom:link[@rel="replies"]'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='atom:link[@rel="replies"]/@href'/>
|
||||
</xsl:attribute>
|
||||
💬 Discussion
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test='atom:link[@rel="alternate" and @type="text/html"]'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='atom:link[@rel="alternate" and @type="text/html"]/@href'/>
|
||||
</xsl:attribute>
|
||||
📜 HTML
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test='atom:link[@rel="related" and @type="text/html"]'>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='atom:link[@rel="related" and @type="text/html"]/@href'/>
|
||||
</xsl:attribute>
|
||||
📜 HTML (Related)
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</h5>
|
||||
<!-- entry content -->
|
||||
<!-- entry summary of GitLab Atom Syndication Feeds -->
|
||||
<xsl:if test='atom:content or atom:summary'>
|
||||
<div class='content'>
|
||||
<xsl:choose>
|
||||
|
@ -331,75 +360,63 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
</div>
|
||||
</xsl:if>
|
||||
<!-- entry enclosure -->
|
||||
<xsl:if test='atom:link[contains(@rel,"enclosure")]'>
|
||||
<div class='enclosure' title='Right-click and Save link as…'>
|
||||
<xsl:for-each select='atom:link[contains(@rel,"enclosure")]'>
|
||||
<xsl:element name='span'>
|
||||
<xsl:attribute name='icon'>
|
||||
<xsl:value-of select='substring-before(@type,"/")'/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='@href'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='download'/>
|
||||
<xsl:call-template name='extract-filename'>
|
||||
<xsl:with-param name='url' select='@href' />
|
||||
</xsl:call-template>
|
||||
</xsl:element>
|
||||
<xsl:element name='span'>
|
||||
<xsl:attribute name='class'>
|
||||
<xsl:value-of select='substring-before(@type,"/")'/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:if test='@length > 0'>
|
||||
<xsl:call-template name='transform-filesize'>
|
||||
<xsl:with-param name='length' select='@length' />
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:element name='br'/>
|
||||
</xsl:for-each>
|
||||
<xsl:for-each select='media:content'>
|
||||
<xsl:element name='span'>
|
||||
<xsl:attribute name='icon'>
|
||||
<xsl:value-of select='@medium'/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='@url'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='download'/>
|
||||
<xsl:call-template name='extract-filename'>
|
||||
<xsl:with-param name='url' select='@url' />
|
||||
</xsl:call-template>
|
||||
</xsl:element>
|
||||
<xsl:element name='span'>
|
||||
<xsl:attribute name='class'>
|
||||
<xsl:value-of select='@medium'/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:if test='@fileSize > 0'>
|
||||
<xsl:call-template name='transform-filesize'>
|
||||
<xsl:with-param name='length' select='@fileSize' />
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:element name='br'/>
|
||||
<xsl:if test='atom:link[@rel="enclosure"]'>
|
||||
<h4>Enclosures</h4>
|
||||
<div class='enclosures' title='Right-click and Save link as…'>
|
||||
<xsl:for-each select='atom:link[@rel="enclosure"]'>
|
||||
<div class='enclosure' title='Right-click and Save link as…'>
|
||||
<xsl:element name='span'>
|
||||
<xsl:attribute name='icon'>
|
||||
<xsl:value-of select='substring-before(@type,"/")'/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:value-of select='@href'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='download'/>
|
||||
<xsl:call-template name='extract-filename'>
|
||||
<xsl:with-param name='url' select='@href' />
|
||||
</xsl:call-template>
|
||||
</xsl:element>
|
||||
<xsl:element name='span'>
|
||||
<xsl:attribute name='class'>
|
||||
<xsl:value-of select='substring-before(@type,"/")'/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
<xsl:if test='@length > 0'>
|
||||
<xsl:call-template name='transform-filesize'>
|
||||
<xsl:with-param name='length' select='@length' />
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<br/>
|
||||
</div>
|
||||
</xsl:for-each>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</div>
|
||||
<!-- entry id -->
|
||||
<xsl:if test='not(atom:id)'>
|
||||
<div class='warning atom1 id'></div>
|
||||
<div class='warning atom1 id'>No entry ID</div>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<h3 class='notice no-entry'>No content.</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<div class='entry'>
|
||||
<h3 class='title'>
|
||||
<a href='javascript:alert("Please check that the mother PubSub node is populated with content.")'>
|
||||
No content
|
||||
</a>
|
||||
</h3>
|
||||
<h4>This entry is empty</h4>
|
||||
<div class='content'>Please check that the mother PubSub node is populated with content.</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</div>
|
||||
|
@ -417,8 +434,16 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
title='The Social Platform Shaped For Your Community.'>
|
||||
Movim
|
||||
</a>
|
||||
<a href='https://git.xmpp-it.net/sch/Rivista'
|
||||
title='A Journal Publisher And Browser For XMPP.'>
|
||||
Rivista
|
||||
</a>
|
||||
<a href='https://github.com/SeveFP/Reeder'
|
||||
Title='An XMPP-Based Feed Reader.'>
|
||||
Reeder
|
||||
</a>
|
||||
<a href='https://modernxmpp.org/'
|
||||
title='A Project To Improve The Quality Of User-To-User Messaging Applications That Use Xmpp.'>
|
||||
title='A Project To Improve The Quality Of User-To-User Messaging Applications That Use XMPP.'>
|
||||
Modern
|
||||
</a>
|
||||
<a href='https://xmpp.org/'
|
||||
|
@ -433,12 +458,15 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<!-- note -->
|
||||
<p id='note'>
|
||||
<i>
|
||||
This is an XMPP news feed which is conveyed as an XHTML
|
||||
document, and it can even be viewed by a syndication
|
||||
feed reader which provides automated notifications on
|
||||
desktop and mobile. <span id="selection-link">Click
|
||||
here</span> for a selection of software and pick the
|
||||
ones that would fit you best!
|
||||
This is an Atom document which is conveyed as an XHTML
|
||||
document;
|
||||
This document can also be viewed with a Syndication Feed
|
||||
Reader (also referred to as News Reader or RSS Reader)
|
||||
which provides automated news updates and notifications
|
||||
on desktop and mobile.
|
||||
<span id="selection-link">Click here</span> for a
|
||||
selection of software and pick the ones that would fit
|
||||
to you best!
|
||||
</i>
|
||||
</p>
|
||||
</body>
|
||||
|
|
10
xsl/opml.xsl
10
xsl/opml.xsl
|
@ -1,17 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<!--
|
||||
Copyright (C) 2016 - 2017 Schimon Jehuda. Released under MIT license
|
||||
Copyright (C) 2016 - 2024 Schimon Jehuda. Released under MIT license
|
||||
Feeds rendered using this XSLT stylesheet, or it's derivatives, must
|
||||
include https://schimon.i2p/ in attribute name='generator' of
|
||||
element <meta/> inside of html element </head>
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method = 'html'
|
||||
<xsl:output encoding = 'UTF-8'
|
||||
indent = 'yes'
|
||||
omit-xml-decleration='no' />
|
||||
<!-- Atom 1.0 Syndication Format -->
|
||||
media-type = 'text/x-opml'
|
||||
method = 'html'
|
||||
version = '4.01' />
|
||||
<!-- Outline Processor Markup Language 1.0 -->
|
||||
<xsl:include href='opml_as_xhtml.xsl'/>
|
||||
<!-- set page metadata -->
|
||||
<xsl:include href='metadata.xsl'/>
|
||||
|
|
|
@ -10,9 +10,6 @@ element <meta/> inside of html element </head>
|
|||
<xsl:stylesheet version='1.0'
|
||||
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
|
||||
xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
||||
<!-- Outline Processor Markup Language 1.0 -->
|
||||
<xsl:output
|
||||
media-type='text/x-opml' />
|
||||
<xsl:template match='/opml'>
|
||||
<!-- index right-to-left language codes -->
|
||||
<!-- TODO http://www.w3.org/TR/xpath/#function-lang -->
|
||||
|
@ -33,7 +30,7 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
</xsl:call-template>
|
||||
<xsl:call-template name='metadata'>
|
||||
<xsl:with-param name='name' select='"generator"' />
|
||||
<xsl:with-param name='content' select='StreamBurner' />
|
||||
<xsl:with-param name='content' select='Rivista' />
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name='metadata'>
|
||||
<xsl:with-param name='name' select='"mimetype"' />
|
||||
|
@ -41,10 +38,10 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
</xsl:call-template>
|
||||
<title>
|
||||
<xsl:choose>
|
||||
<xsl:when test='title and not(title="")'>
|
||||
<xsl:value-of select='title'/>
|
||||
<xsl:when test='//head/title and not(//head/title="")'>
|
||||
<xsl:value-of select='//head/title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>StreamBurner</xsl:otherwise>
|
||||
<xsl:otherwise>Rivista OPML</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</title>
|
||||
<!-- TODO media='print' -->
|
||||
|
@ -54,20 +51,9 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
<xsl:if test='$rtl'>
|
||||
<link id='semitic' href='/css/stylesheet-rtl.css' rel='stylesheet' type='text/css' />
|
||||
</xsl:if>
|
||||
<script type='text/javascript' src='/script/marked.min.js'/>
|
||||
<script type='text/javascript' src='/script/postprocess.js'/>
|
||||
</head>
|
||||
<body>
|
||||
<div id='actions'>
|
||||
<a href='https://git.xmpp-it.net/sch/PubSubToAtom'
|
||||
title='About PubSub To Atom.'>
|
||||
About
|
||||
</a>
|
||||
<a href='https://aboutfeeds.com/'
|
||||
title='Of the benefits of syndication feed.'
|
||||
id='aboutfeeds'>
|
||||
Feeds
|
||||
</a>
|
||||
<a href='https://xmpp.org/about/technology-overview/'
|
||||
title='Of the benefits of XMPP.'>
|
||||
XMPP
|
||||
|
@ -76,6 +62,11 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
title='Syndictaion and PubSub.'>
|
||||
Groupchat
|
||||
</a>
|
||||
<a href='https://aboutfeeds.com/'
|
||||
title='Of the benefits of syndication feed.'
|
||||
id='aboutfeeds'>
|
||||
Help
|
||||
</a>
|
||||
</div>
|
||||
<div id='feed'>
|
||||
<div id='header'>
|
||||
|
@ -85,11 +76,8 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
<xsl:when test='//head/title and not(//head/title="") and count(//outline) > 1'>
|
||||
<xsl:value-of select='//head/title'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='//outline'>
|
||||
<xsl:value-of select='//outline/@text'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
StreamBurner OPML Feed
|
||||
Rivista OPML Collection
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</h1>
|
||||
|
@ -109,12 +97,12 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
<div id='menu'>
|
||||
<h3>Subscriptions</h3>
|
||||
<!-- xsl:for-each select='outline[position() <21]' -->
|
||||
<ul>
|
||||
<ol>
|
||||
<xsl:for-each select='//outline[not(position() > 20)]'>
|
||||
<li>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:text>#stremburner-</xsl:text>
|
||||
<xsl:text>#rivista-</xsl:text>
|
||||
<xsl:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
|
@ -128,7 +116,7 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
</xsl:element>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</ol>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<div id='articles'>
|
||||
|
@ -149,7 +137,7 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
<xsl:value-of select='@text'/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name='id'>
|
||||
<xsl:text>stremburner-</xsl:text>
|
||||
<xsl:text>rivista-</xsl:text>
|
||||
<xsl:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
|
@ -193,8 +181,16 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
title='The Social Platform Shaped For Your Community.'>
|
||||
Movim
|
||||
</a>
|
||||
<a href='https://git.xmpp-it.net/sch/Rivista'
|
||||
title='A Journal Publisher And Browser For XMPP.'>
|
||||
Rivista
|
||||
</a>
|
||||
<a href='https://github.com/SeveFP/Reeder'
|
||||
Title='An XMPP-Based Feed Reader.'>
|
||||
Reeder
|
||||
</a>
|
||||
<a href='https://modernxmpp.org/'
|
||||
title='A Project To Improve The Quality Of User-To-User Messaging Applications That Use Xmpp.'>
|
||||
title='A Project To Improve The Quality Of User-To-User Messaging Applications That Use XMPP.'>
|
||||
Modern
|
||||
</a>
|
||||
<a href='https://xmpp.org/'
|
||||
|
@ -209,15 +205,16 @@ xmlns:xml='http://www.w3.org/XML/1998/namespace'>
|
|||
<!-- note -->
|
||||
<p id='note'>
|
||||
<i>
|
||||
This is an
|
||||
<b title ='Outline Processor Markup Language'>OPML</b>
|
||||
document which is conveyed as an XHTML document; This
|
||||
document includes a list of subscriptionsis and is
|
||||
intended to be imported to a syndication feed reader
|
||||
which provides automated notifications on desktop and
|
||||
mobile. <span id="selection-link">Click here</span> for
|
||||
a selection of software and pick the ones that would fit
|
||||
you best!
|
||||
This is an OPML document which is conveyed as an XHTML
|
||||
document;
|
||||
This document includes a collection of subscriptions,
|
||||
and it can be imported to a Syndication Feed Reader
|
||||
(also referred to as News Reader or RSS Reader) reader
|
||||
which provides automated news updates and notifications
|
||||
on desktop and mobile.
|
||||
<span id="selection-link">Click here</span> for a
|
||||
selection of software and pick the ones that would fit
|
||||
to you best!
|
||||
</i>
|
||||
</p>
|
||||
</body>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue