Update instructions;
Improve handling of a single item; Add references to syndication software.
44
README.md
|
@ -21,14 +21,28 @@ This software was inspired from Tigase and was motivated by Movim.
|
|||
|
||||
## Installation
|
||||
|
||||
### Download
|
||||
|
||||
Extract the source package to a directory that you have permission to run
|
||||
software.
|
||||
|
||||
Execute with one of the followings:
|
||||
```shell
|
||||
$ git clone https://git.xmpp-it.net/sch/PubSubToAtom
|
||||
$ cd PubSubToAtom/
|
||||
```
|
||||
|
||||
### Configure
|
||||
|
||||
Add account credentials to file `configuration.toml`.
|
||||
|
||||
### Start
|
||||
|
||||
Execute PubSubToAtom with one of the following commands:
|
||||
|
||||
```shell
|
||||
$ uvicorn pubsub_to_atom:app --host 127.0.0.1 --port 8000
|
||||
$ python -m uvicorn pubsub_to_atom:app --reload
|
||||
$ python -m uvicorn pubsub_to_atom:app --reload --host 127.0.0.1 --port 8000
|
||||
$ uvicorn pubsub_to_atom:app --host 127.0.0.1 --port 8000
|
||||
$ fastapi dev pubsub_to_atom.py
|
||||
```
|
||||
|
||||
|
@ -36,22 +50,26 @@ $ fastapi dev pubsub_to_atom.py
|
|||
|
||||
It is possible to view a complete node and even a single item, which means, that it is possible to save bandwidth and it further means that a considered and carefully earnest use of this software would saves system overhead, which includes CPU, I/O and RAM usage.
|
||||
|
||||
### Viewing node items
|
||||
### Viewing PubSub
|
||||
|
||||
|PubSub |Node |
|
||||
|--- |--- |
|
||||
|xmpp:pubsub.movim.eu|berlin-xmpp-meetup|
|
||||
Suppose you have the following nodes and items.
|
||||
|
||||
URL: http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup
|
||||
|PubSub |Node |Item |
|
||||
|--- |--- |--- |
|
||||
|blog.jmp.chat |urn:xmpp:microblog:0|launch-2023 |
|
||||
|news.movim.eu |Phoronix | |
|
||||
|pubsub.movim.eu|berlin-xmpp-meetup |let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4|
|
||||
|
||||
#### To view node items
|
||||
|
||||
### Viewing a node item
|
||||
- http://127.0.0.1:8000/atom?pubsub=news.movim.eu&node=Phoronix
|
||||
- http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup
|
||||
|
||||
|PubSub |Node |Item |
|
||||
|--- |--- |--- |
|
||||
|xmpp:pubsub.movim.eu|berlin-xmpp-meetup|let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4|
|
||||
#### To view a node item
|
||||
|
||||
URL: http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup&item=let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4
|
||||
- http://127.0.0.1:8000/atom?pubsub=blog.jmp.chat&node=urn%3Axmpp%3Amicroblog%3A0&item=launch-2023
|
||||
- http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup&item=7363a41d-1146-40b3-ac0f-8ee2559591a3
|
||||
- http://127.0.0.1:8000/atom?pubsub=pubsub.movim.eu&node=berlin-xmpp-meetup&item=let-s-talk-about-the-xsf-and-possibly-other-things-6A8eV4
|
||||
|
||||
## Author
|
||||
|
||||
|
@ -71,6 +89,6 @@ Special thanks to "d3x" and "cchianel" from IRC channel #python on irc.libera.ch
|
|||
|
||||
## Similar Projects
|
||||
|
||||
* [AtomEntry](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/AtomEntry.java) and [PubSubPublishViewImpl.java](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/PubSubPublishViewImpl.java)- Convert XMPP Pubsub Nodes to Atom Syndication Format and convey them over HTTP.
|
||||
* [AtomEntry](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/AtomEntry.java) and [PubSubPublishViewImpl](https://github.com/tigase/sureim/blob/master/site/src/main/java/tigase/sure/web/site/client/pubsub/PubSubPublishViewImpl.java)- Convert XMPP Pubsub Nodes to Atom Syndication Format and convey them over HTTP.
|
||||
|
||||
* [AtomToPubsub](https://github.com/edhelas/atomtopubsub) - A little client that parses Atom + RSS feeds and send them on XMPP Pubsub Nodes.
|
||||
|
|
|
@ -24,11 +24,15 @@ h1#title, h2#subtitle, #actions, #references {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
#toc {
|
||||
#header, #menu {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
#toc > ul > li {
|
||||
#menu > h3 {
|
||||
padding-left: 2%;
|
||||
}
|
||||
|
||||
#menu > ul > li {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
|
@ -65,3 +69,45 @@ h1#title, h2#subtitle, #actions, #references {
|
|||
#articles > ul > li > div.entry h2 {
|
||||
font-size: 1.5vw;
|
||||
}
|
||||
|
||||
#selection-page {
|
||||
background: #000;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
overflow: overlay;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#selection-page h3 {
|
||||
margin-left: 10%;
|
||||
margin-right: 10%;
|
||||
}
|
||||
|
||||
#selection-page span {
|
||||
display: inline-grid;
|
||||
margin: 2%
|
||||
}
|
||||
|
||||
#selection-page img {
|
||||
height: 128px;
|
||||
margin-bottom: 20%;
|
||||
margin-top: 20%;
|
||||
width: 128px;
|
||||
}
|
||||
|
||||
#selection-page #selection {
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
#selection-page #return {
|
||||
font-style: italic;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#selection-link, #selection-page #return {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
|
18
graphic/akregator.svg
Normal file
|
@ -0,0 +1,18 @@
|
|||
<svg width="48" xmlns="http://www.w3.org/2000/svg" height="48">
|
||||
<defs>
|
||||
<linearGradient id="a" y1="40" x1="43" y2="4" x2="13" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#f27935"/>
|
||||
<stop offset="1" stop-color="#f2784b"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" y1="27.13" x1="24.13" y2="41" x2="38" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#292c2f"/>
|
||||
<stop offset="1" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g stroke-linejoin="round" stroke-width="6">
|
||||
<path fill="url(#a)" d="m11 4c-1.662 0-3 1.338-3 3v22.08a7.999994 7.999994 0 0 0 -4 6.916016 7.999994 7.999994 0 0 0 8 8 7.999994 7.999994 0 0 0 6.919922 -4h22.08c1.662 0 3-1.338 3-3v-30c0-1.662-1.338-3-3-3z"/>
|
||||
<path opacity=".2" fill="url(#b)" d="m26 21.75l-14-1.75 6 6-6 2 12 12h17c1.662 0 2-1.25 2-1.25zm-11.172 11.422l-5.656 5.656 4.889 4.891c2.049-.547 3.796-1.884 4.859-3.719h2.738z"/>
|
||||
<path fill="#b86333" d="M4.02344 35.488281A7.999994 7.999994 0 0 0 4 36 7.999994 7.999994 0 0 0 12 44 7.999994 7.999994 0 0 0 18.919922 40H41C42.662 40 44 38.662 44 37V36C44 37.662 42.662 39 41 39H18.92A7.999994 7.999994 0 0 1 12 43 7.999994 7.999994 0 0 1 4.02344 35.488281"/>
|
||||
<path fill="#ffffff" d="m12 16v4c8.837 0 16 7.163 16 16h4c0-11.05-8.954-20-20-20m0 8v4c4.418 0 8 3.582 8 8h4c0-6.627-5.373-12-12-12m0 8c-2.209 0-4 1.791-4 4 0 2.209 1.791 4 4 4 2.209 0 4-1.791 4-4 0-2.209-1.791-4-4-4"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
BIN
graphic/leechcraft.png
Normal file
After Width: | Height: | Size: 87 KiB |
1310
graphic/liferea.svg
Normal file
After Width: | Height: | Size: 61 KiB |
1
graphic/raven.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg width="95" height="97" viewBox="0 0 95 97" version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient x1="50%" y1="99.992%" x2="50%" y2="0%" id="linearGradient-1"><stop stop-color="#FFD53F" offset="0%"/><stop stop-color="#EED64E" offset="6%"/><stop stop-color="#A6DB8C" offset="32%"/><stop stop-color="#6DDEBE" offset="55%"/><stop stop-color="#44E1E1" offset="75%"/><stop stop-color="#2BE2F7" offset="91%"/><stop stop-color="#22E3FF" offset="100%"/></linearGradient><linearGradient x1="47.461%" y1=".977%" x2="51.983%" y2="99.601%" id="linearGradient-2"><stop stop-color="#566690" offset="6%"/><stop stop-color="#00293E" offset="54%"/><stop stop-color="#001723" offset="70%"/><stop stop-color="#000609" offset="89%"/><stop stop-color="#000" offset="100%"/></linearGradient></defs><g id="Welcome" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Raven-Landing-Page-" transform="translate(-672 -4411)" fill-rule="nonzero"><g id="Pricing" transform="translate(-28 4282)"><g id="raven-app-logo" transform="translate(703 132)"><circle id="Oval" stroke="#FFF" stroke-width="3" fill="url(#linearGradient-1)" cx="44.5" cy="44.5" r="46"/><path d="M74.602 41.76C59.509 15.688 47.575 13.543 38.865 17.612c-4.255 1.99-2.476 3.82-8.54 2.505-5.396-1.168-7.91-1.565-12.653.624C12.927 22.93 11 25.757 11 27.013c0 1.256 1.268-1.88 4.744-2.204 3.477-.323 8.228 0 12.024 2.82 3.795 2.82 4.106 3.761 4.106 5.017 0 1.256-4.951-.558-9.8.624-4.284 1.043-7.59 2.505-7.909 3.76-.318 1.257 8.621.324 12.335.317 1.764.058 3.217-.492 4.448 1.88 1.275 2.497 1.579 4.407 3.165 5.009 1.586.602 1.898-1.249 3.795 2.512 1.898 3.76 2.528 5.95.312 11.59-2.217 5.64-3.47 9.43-2.52 8.483.74-.735 2.453-.91 3.306-2.005-.238 2.012 0 5.714 2.705 9.842 4.744 7.205 11.683 6.61 21.497 9.1 15.278 3.812 22.884 4.032 26.086 9.203.63 1.02 1.03 1.917.356-.529-3.143-11.392-5.79-34.682-15.048-50.671z" id="Path" fill="url(#linearGradient-2)"/><circle id="Oval" fill="#FFF" cx="41" cy="23" r="2"/></g></g></g></g></svg>
|
After Width: | Height: | Size: 2 KiB |
BIN
graphic/rssguard.png
Normal file
After Width: | Height: | Size: 13 KiB |
513
graphic/rssowl.svg
Normal file
|
@ -0,0 +1,513 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="128px"
|
||||
height="128px" viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve">
|
||||
<g id="Layer_30">
|
||||
<g opacity="0.5">
|
||||
|
||||
<image overflow="visible" width="188" height="190" xlink:href="data:image/png;base64,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" transform="matrix(1 0 0 1 -28 -30)">
|
||||
</image>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Layer_16">
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="112.8086" y1="40.3027" x2="95.1199" y2="22.614">
|
||||
<stop offset="0.0843" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.2234" style="stop-color:#F6F6F6"/>
|
||||
<stop offset="0.4466" style="stop-color:#DFDFDF"/>
|
||||
<stop offset="0.7243" style="stop-color:#B9B9B9"/>
|
||||
<stop offset="1" style="stop-color:#8C8C8C"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_1_)" d="M112.064,36.457c0,0-3.871-11.953-8.89-16.971c-2.829-2.829-4.106-0.547-5.019,0.365
|
||||
c-0.646,0.645-2.099,1.825-2.099,1.825s4.198,19.526,7.848,20.621C107.555,43.392,113.289,44.487,112.064,36.457z"/>
|
||||
</g>
|
||||
<g id="Layer_17">
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="111.1475" y1="38.2959" x2="98.8601" y2="26.0085">
|
||||
<stop offset="0" style="stop-color:#D9D9D9"/>
|
||||
<stop offset="0.0314" style="stop-color:#CECECE"/>
|
||||
<stop offset="0.2301" style="stop-color:#909090"/>
|
||||
<stop offset="0.4206" style="stop-color:#5D5D5D"/>
|
||||
<stop offset="0.5978" style="stop-color:#353535"/>
|
||||
<stop offset="0.7587" style="stop-color:#181818"/>
|
||||
<stop offset="0.8981" style="stop-color:#060606"/>
|
||||
<stop offset="1" style="stop-color:#000000"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_2_)" d="M101.183,32.338l2.039-2.039c0,0-1.324-3.332-1.872-5.157c-0.314-1.049,0.089-4.729,3.588,1.705
|
||||
c2.828,5.201,3.89,7.98,4.134,10.156c0.308,2.738,0.354,5.855-3.312,2.19C102.095,35.529,101.183,32.338,101.183,32.338z"/>
|
||||
</g>
|
||||
<g id="Layer_32">
|
||||
<g opacity="0.7">
|
||||
|
||||
<image overflow="visible" width="78" height="85" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABVCAYAAADnu9JFAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
|
||||
GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAc5JREFUeNrs2V1PwkAQheG2IK2C
|
||||
KIrGGC+88P//Lo2AH2hAROpMcjYhKKR648S8k5wsctU8mdldaiujflUtCIADDjjgKOCAAw444Cjg
|
||||
gAMOOOAo4IADDjgKOOCAAw44CjjggAMOOAo44IBrXvlGgGtQhZ6nrRW4hmgOVlm6WtOz1cBtH09/
|
||||
jn3LieVCa8eysiy11sB9hduz9C1Xlhut3nXvlrnWUHDtIHA+qqU67VrrwDKzPGn9iIRXBDscvPN6
|
||||
lnPLpdZDfR/qsIgAVys+jm9afRKOLUPLkbqxiIQXZY9L+1xXYzrUYeH729jyGG1co1xH0j5XqdPO
|
||||
dFg41ER5iXRIRILL1/a4UwEWAnO4qUZ5Bdz3e26lbhtoXL3LnqOdrpHg8rXL8IE6rq+/Xy0P6r4F
|
||||
cLsvxD2dqJUOiYkOibm6Drgtz1XpDldqRO8tI3Xfn49rVLhcd7mOPvuI3gH3s4vxQiN6q3GdMaq7
|
||||
0VZCm+oSPNbnEIdD1JeF6f1cqXHNBOb3uGWEu1zkt6zFxu/T1IVcgBvucQmrzgK9VuK/XMABBxxw
|
||||
FHDAAQcccBRwwAEHHHAUcMABBxwFHHDAAQccBRxwwAEHHAUccMD9x/oUYADc5V+26QzFDQAAAABJ
|
||||
RU5ErkJggg==" transform="matrix(1 0 0 1 60 -16)">
|
||||
</image>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Layer_15">
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="94.0039" y1="70.4434" x2="67.1808" y2="43.6203">
|
||||
<stop offset="0" style="stop-color:#B2B2B2"/>
|
||||
<stop offset="0.0758" style="stop-color:#CCCCCC"/>
|
||||
<stop offset="0.1662" style="stop-color:#E2E2E2"/>
|
||||
<stop offset="0.2643" style="stop-color:#F2F2F2"/>
|
||||
<stop offset="0.3746" style="stop-color:#FCFCFC"/>
|
||||
<stop offset="0.5225" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="1" style="stop-color:#CCCCCC"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_3_)" d="M86.34,25.205l8.988-9.734l1.699,6.205c3.593,13.869,14.359,26.826,13.082,14.781
|
||||
c-0.413-3.891,2.131-2.413,2.131,1.819c0,4.232-0.671,5.931-3.744,9.943c-2.379,3.107-34.744,42.475-34.744,42.475L40.764,73.502
|
||||
L86.34,25.205z"/>
|
||||
</g>
|
||||
<g id="Layer_19">
|
||||
<g>
|
||||
<line fill="#808080" x1="57.792" y1="75.817" x2="93.8" y2="32.823"/>
|
||||
<path fill="#808080" d="M58.244,76.196c0,0,35.988-42.977,36.009-42.994c0.463-0.407-0.324-1.496-0.905-0.758
|
||||
c-0.033,0.042-36.008,42.994-36.008,42.994l0.452,0.379l0,0l0,0L58.244,76.196z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line fill="#CCCCCC" x1="57.282" y1="67.535" x2="93.29" y2="24.54"/>
|
||||
<path fill="#CCCCCC" d="M57.734,67.914c0,0,35.988-42.978,36.009-42.995c0.462-0.407-0.324-1.496-0.905-0.758
|
||||
c-0.033,0.042-36.009,42.995-36.009,42.995l0.453,0.379l0,0l0,0L57.734,67.914z"/>
|
||||
</g>
|
||||
<path fill="#808080" d="M68.58,91.125c0,0,35.988-42.977,36.009-42.995c0.462-0.407-0.324-1.496-0.905-0.758
|
||||
c-0.033,0.042-36.009,42.995-36.009,42.995l0.453,0.379l0,0l0,0L68.58,91.125z"/>
|
||||
</g>
|
||||
<g id="Layer_21">
|
||||
<path fill="#E5E5E5" stroke="#CCCCCC" stroke-width="1.1805" d="M59.001,69.532c0,0,5.363,9.959,11.645,15.321
|
||||
c6.282,5.363-5.057,7.202-5.057,7.202L46.284,81.177L59.001,69.532z"/>
|
||||
</g>
|
||||
<g id="Layer_20">
|
||||
<g>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="78.5117" y1="75.3047" x2="69.041" y2="65.834">
|
||||
<stop offset="0" style="stop-color:#000000"/>
|
||||
<stop offset="1" style="stop-color:#A6A6A6"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_4_)" d="M77.371,74.696l-6.254-5.124l3.469,5.22c0.134,0.181,0.246,0.217,0.335,0.109
|
||||
c0.045-0.054,0.076-0.092,0.095-0.114c0.02-0.022,0.039-0.047,0.062-0.074c0.029-0.036,0.048-0.059,0.056-0.067
|
||||
c0.126-0.153,0.298-0.188,0.514-0.105s0.416,0.262,0.599,0.537c0.232,0.35,0.357,0.719,0.375,1.106
|
||||
c0.019,0.389-0.073,0.704-0.273,0.945c-0.089,0.107-0.221,0.24-0.396,0.398c-0.175,0.159-0.326,0.313-0.452,0.466
|
||||
c-0.089,0.107-0.216,0.287-0.381,0.541c-0.166,0.253-0.294,0.433-0.383,0.54c-0.2,0.241-0.442,0.329-0.727,0.263
|
||||
c-0.285-0.066-0.544-0.274-0.776-0.624c-0.183-0.275-0.292-0.562-0.33-0.861c-0.037-0.298,0.004-0.52,0.123-0.663
|
||||
c0.008-0.009,0.026-0.032,0.057-0.067c0.029-0.036,0.054-0.065,0.072-0.088s0.047-0.057,0.084-0.102
|
||||
c0.104-0.126,0.094-0.283-0.033-0.473l-3.828-5.761c-0.126-0.189-0.241-0.221-0.345-0.096c-0.022,0.027-0.059,0.07-0.106,0.129
|
||||
c-0.049,0.059-0.084,0.101-0.106,0.128c-0.127,0.152-0.296,0.186-0.509,0.099c-0.212-0.087-0.409-0.269-0.593-0.544
|
||||
c-0.232-0.35-0.357-0.718-0.375-1.106c-0.019-0.389,0.077-0.708,0.284-0.959c0.104-0.125,0.276-0.297,0.518-0.517
|
||||
c0.241-0.219,0.414-0.391,0.518-0.516c0.162-0.196,0.322-0.42,0.477-0.668c0.207-0.331,0.336-0.528,0.388-0.592
|
||||
c0.237-0.285,0.521-0.292,0.849-0.019l6.059,5.321l-3.226-4.854c-0.162-0.244-0.277-0.382-0.346-0.414s-0.133-0.013-0.192,0.06
|
||||
l-0.056,0.067c-0.015,0.06-0.037,0.107-0.067,0.144c-0.143,0.171-0.317,0.218-0.524,0.139s-0.403-0.259-0.589-0.538
|
||||
c-0.543-0.816-0.601-1.483-0.171-2c0.059-0.071,0.155-0.167,0.288-0.287c0.326-0.29,0.541-0.498,0.645-0.623
|
||||
c0.147-0.178,0.273-0.36,0.376-0.546c0.132-0.241,0.254-0.429,0.364-0.563c0.17-0.205,0.386-0.261,0.646-0.169
|
||||
s0.505,0.31,0.733,0.653c0.186,0.279,0.305,0.562,0.355,0.849s0.018,0.5-0.1,0.643l-0.121,0.146
|
||||
c-0.096,0.115-0.112,0.24-0.05,0.374c0.021,0.051,0.097,0.177,0.23,0.377l4.664,7.02c0.253,0.379,0.378,0.688,0.377,0.927
|
||||
c0,0.238-0.119,0.5-0.354,0.784l-0.874,1.054c-0.191,0.231-0.359,0.354-0.504,0.366S77.605,74.889,77.371,74.696z"/>
|
||||
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="85.0039" y1="67.3789" x2="75.6361" y2="58.0111">
|
||||
<stop offset="0" style="stop-color:#000000"/>
|
||||
<stop offset="1" style="stop-color:#A6A6A6"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_5_)" d="M78.263,60.425l1.07,1.611c0.079-0.038,0.155-0.1,0.227-0.187c0.194-0.235,0.2-0.49,0.017-0.767
|
||||
c-0.078-0.117-0.137-0.199-0.178-0.246c-0.129-0.151-0.214-0.258-0.257-0.323c-0.112-0.17-0.166-0.374-0.158-0.613
|
||||
c0.007-0.238,0.073-0.434,0.199-0.585c0.339-0.409,0.671-0.37,0.995,0.119c0.134,0.202,0.312,0.511,0.536,0.93
|
||||
c0.087,0.163,0.24,0.409,0.458,0.738c0.24,0.361,0.503,0.723,0.787,1.087c0.216,0.275,0.391,0.514,0.524,0.715
|
||||
c0.353,0.531,0.354,1.007,0.004,1.429c-0.299,0.36-0.585,0.334-0.859-0.078c-0.07-0.105-0.145-0.234-0.224-0.388
|
||||
c-0.033-0.073-0.089-0.168-0.167-0.285c-0.161-0.243-0.357-0.226-0.588,0.052c-0.007,0.009-0.047,0.077-0.119,0.202l1.26,1.896
|
||||
c0.212,0.319,0.395,0.453,0.548,0.401c0.087-0.029,0.19-0.115,0.31-0.259l0.925-1.116c0.201-0.242,0.313-0.45,0.339-0.624
|
||||
c0.025-0.173-0.047-0.388-0.217-0.643c-0.092-0.138-0.249-0.331-0.473-0.579c-0.28-0.312-0.466-0.537-0.558-0.675
|
||||
c-0.184-0.276-0.274-0.583-0.272-0.92c0.002-0.337,0.099-0.622,0.291-0.853c0.436-0.526,0.932-0.37,1.488,0.468
|
||||
c0.135,0.202,0.273,0.426,0.419,0.671c0.198,0.371,0.393,0.7,0.583,0.986c0.106,0.159,0.277,0.393,0.515,0.699
|
||||
c0.236,0.307,0.408,0.539,0.514,0.698c0.197,0.297,0.276,0.551,0.236,0.761c-0.04,0.21-0.178,0.458-0.414,0.743
|
||||
c-0.118,0.143-0.24,0.28-0.364,0.414c-0.763,0.814-1.447,1.587-2.053,2.318c-0.2,0.24-0.489,0.621-0.869,1.141
|
||||
s-0.67,0.9-0.869,1.141c-0.214,0.259-0.463,0.36-0.746,0.305s-0.543-0.262-0.779-0.618c-0.182-0.272-0.291-0.558-0.326-0.854
|
||||
c-0.036-0.296,0.005-0.517,0.125-0.661c0.007-0.009,0.025-0.03,0.056-0.066c0.029-0.036,0.054-0.065,0.072-0.088
|
||||
s0.047-0.057,0.084-0.102c0.104-0.126,0.094-0.284-0.034-0.476l-3.854-5.799c-0.135-0.202-0.254-0.24-0.358-0.114
|
||||
c-0.008,0.009-0.022,0.027-0.045,0.054c-0.008,0.029-0.02,0.052-0.033,0.07c-0.047,0.093-0.08,0.153-0.103,0.18
|
||||
c-0.119,0.144-0.287,0.174-0.504,0.09c-0.217-0.083-0.417-0.264-0.602-0.541c-0.24-0.362-0.369-0.74-0.386-1.133
|
||||
c-0.016-0.393,0.083-0.718,0.296-0.975c0.161-0.195,0.479-0.535,0.95-1.021c0.354-0.364,0.719-0.772,1.094-1.224
|
||||
c0.242-0.292,0.589-0.748,1.04-1.365c0.45-0.617,0.797-1.072,1.039-1.365c0.396-0.479,0.754-0.479,1.071-0.002
|
||||
c0.077,0.116,0.237,0.373,0.479,0.767c0.162,0.264,0.461,0.724,0.897,1.381c0.14,0.214,0.21,0.32,0.212,0.318l0.503,0.683
|
||||
c0.43,0.646,0.421,1.241-0.028,1.782c-0.419,0.506-0.812,0.484-1.177-0.065c-0.105-0.158-0.245-0.404-0.42-0.736
|
||||
c-0.174-0.333-0.31-0.573-0.408-0.721c-0.176-0.264-0.321-0.393-0.437-0.387s-0.258,0.11-0.427,0.314l-0.792,0.957
|
||||
c-0.235,0.283-0.355,0.5-0.362,0.65C77.961,59.892,78.06,60.12,78.263,60.425z"/>
|
||||
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="93.0762" y1="57.7856" x2="83.5641" y2="48.2735">
|
||||
<stop offset="0" style="stop-color:#000000"/>
|
||||
<stop offset="1" style="stop-color:#A6A6A6"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_6_)" d="M84.014,53.458l4.039,5.116l-4.175-8.685c-0.23-0.487-0.173-0.94,0.175-1.359
|
||||
c0.259-0.312,0.45-0.495,0.574-0.549c0.211-0.102,0.427-0.028,0.647,0.224l5.836,6.679l-3.292-6.125
|
||||
c-0.111-0.208-0.161-0.302-0.146-0.281c-0.078-0.116-0.153-0.159-0.227-0.129l-0.232,0.281c-0.126,0.152-0.299,0.184-0.519,0.093
|
||||
c-0.22-0.09-0.425-0.278-0.616-0.565c-0.205-0.309-0.321-0.653-0.348-1.033c-0.026-0.38,0.048-0.677,0.226-0.89
|
||||
c0.088-0.107,0.236-0.249,0.443-0.427s0.358-0.325,0.454-0.441c0.104-0.125,0.238-0.322,0.403-0.594
|
||||
c0.165-0.271,0.295-0.464,0.392-0.58c0.191-0.231,0.419-0.319,0.683-0.263c0.263,0.056,0.5,0.244,0.712,0.562
|
||||
c0.425,0.638,0.496,1.146,0.215,1.523c-0.082,0.118-0.122,0.218-0.119,0.302c0.002,0.083,0.059,0.239,0.171,0.467l4.167,8.761
|
||||
c0.182,0.393,0.146,0.741-0.104,1.043c-0.074,0.089-0.189,0.216-0.346,0.38c-0.157,0.165-0.272,0.292-0.346,0.38
|
||||
c-0.066,0.081-0.16,0.205-0.28,0.375c-0.12,0.169-0.213,0.294-0.279,0.374c-0.214,0.259-0.48,0.208-0.799-0.15l-3.796-4.331
|
||||
l2.744,5.6c0.229,0.466,0.197,0.877-0.098,1.233c-0.052,0.062-0.091,0.103-0.118,0.123l-0.43,0.464
|
||||
c-0.044,0.053-0.188,0.246-0.434,0.578c-0.032,0.051-0.078,0.113-0.137,0.184c-0.251,0.303-0.536,0.274-0.855-0.086l-5.881-6.507
|
||||
c-0.198-0.219-0.338-0.289-0.419-0.21l-0.198,0.182c-0.117,0.104-0.271,0.108-0.46,0.012c-0.19-0.096-0.366-0.265-0.528-0.509
|
||||
c-0.219-0.329-0.34-0.683-0.366-1.062c-0.025-0.379,0.058-0.686,0.25-0.917c0.097-0.116,0.252-0.268,0.467-0.456
|
||||
c0.216-0.188,0.371-0.339,0.468-0.456c0.096-0.116,0.223-0.305,0.381-0.568c0.159-0.263,0.286-0.453,0.383-0.568
|
||||
c0.191-0.232,0.425-0.312,0.699-0.241c0.273,0.072,0.523,0.277,0.749,0.617c0.417,0.627,0.465,1.152,0.145,1.577
|
||||
c-0.163,0.217-0.178,0.426-0.044,0.627C83.872,53.275,83.929,53.351,84.014,53.458z"/>
|
||||
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="99.1309" y1="50.4277" x2="89.7223" y2="41.0192">
|
||||
<stop offset="0" style="stop-color:#000000"/>
|
||||
<stop offset="1" style="stop-color:#A6A6A6"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_7_)" d="M90.514,40.441c0.468-0.564,1.045-0.823,1.732-0.775c-0.197-0.516-0.146-0.954,0.151-1.312
|
||||
c0.423-0.51,0.821-0.484,1.194,0.078c0.1,0.148,0.219,0.349,0.359,0.6c0.21,0.377,0.344,0.608,0.4,0.693
|
||||
c0.084,0.127,0.215,0.304,0.392,0.53c0.177,0.227,0.308,0.403,0.393,0.53c0.359,0.541,0.323,1.073-0.109,1.595
|
||||
c-0.396,0.477-0.786,0.507-1.171,0.089c-0.386-0.418-0.693-0.649-0.925-0.693c-0.23-0.044-0.47,0.082-0.716,0.379
|
||||
c-0.187,0.225-0.286,0.494-0.301,0.807c-0.014,0.312,0.067,0.601,0.243,0.866c0.219,0.329,0.442,0.489,0.671,0.48
|
||||
s0.615-0.199,1.16-0.57c1.692-1.145,3.116-0.849,4.271,0.889c0.662,0.996,1.014,2.075,1.055,3.237
|
||||
c0.041,1.163-0.237,2.104-0.835,2.825c-0.517,0.624-1.154,0.985-1.912,1.085c0.218,0.527,0.179,0.969-0.116,1.325
|
||||
c-0.428,0.517-0.854,0.457-1.276-0.18c-0.099-0.148-0.251-0.403-0.458-0.766c-0.143-0.248-0.273-0.463-0.394-0.643
|
||||
c-0.091-0.138-0.233-0.33-0.425-0.576c-0.192-0.246-0.334-0.438-0.426-0.576c-0.366-0.551-0.292-1.137,0.223-1.758
|
||||
c0.419-0.505,0.834-0.488,1.245,0.051c0.677,0.878,1.271,1.009,1.78,0.394c0.229-0.276,0.354-0.617,0.371-1.02
|
||||
c0.019-0.404-0.078-0.765-0.289-1.083c-0.219-0.329-0.475-0.492-0.768-0.491c-0.294,0.001-0.712,0.177-1.256,0.527
|
||||
c-1.152,0.722-2.122,0.843-2.91,0.361c-0.451-0.276-0.853-0.679-1.205-1.208c-0.619-0.933-0.944-1.939-0.974-3.02
|
||||
C89.66,42.03,89.935,41.14,90.514,40.441z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Layer_31">
|
||||
<g opacity="0.7">
|
||||
|
||||
<image overflow="visible" width="110" height="128" xlink:href="data:image/png;base64,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" transform="matrix(1 0 0 1 17 -10)">
|
||||
</image>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Layer_14">
|
||||
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="46.6719" y1="73.4258" x2="57.2211" y2="55.154">
|
||||
<stop offset="0.0056" style="stop-color:#FEFFE0"/>
|
||||
<stop offset="0.2289" style="stop-color:#D4AE7F"/>
|
||||
<stop offset="0.3596" style="stop-color:#BD824B"/>
|
||||
<stop offset="1" style="stop-color:#CC6635"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_8_)" d="M58.04,79.033c0,0,5.932-7.807,7.494-10.773c1.562-2.966-11.709-4.371-14.832-8.742
|
||||
c-3.123-4.372-4.528-18.11-7.182-6.401C40.866,64.826,52.731,79.813,58.04,79.033z"/>
|
||||
</g>
|
||||
<g id="Lower_face">
|
||||
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="54.7202" y1="66.3311" x2="60.0005" y2="46.6248">
|
||||
<stop offset="0.0056" style="stop-color:#FEFFE0"/>
|
||||
<stop offset="0.8427" style="stop-color:#BD824B"/>
|
||||
<stop offset="1" style="stop-color:#CC6635"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_9_)" d="M42.115,52.023c0,0,8.118,16.236,22.794,16.394c3.594,0.038,13.583-14.52,12.958-14.988
|
||||
c-0.624-0.469-21.233,0.468-24.043-3.591c-2.81-4.06-12.333-10.46-12.646-6.558C40.866,47.184,42.115,52.023,42.115,52.023z"/>
|
||||
</g>
|
||||
<g id="Eye_mask">
|
||||
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="69.2012" y1="16.2441" x2="61.5447" y2="59.6661">
|
||||
<stop offset="0.0056" style="stop-color:#FEFFE0"/>
|
||||
<stop offset="0.3705" style="stop-color:#FDFCDE"/>
|
||||
<stop offset="0.6525" style="stop-color:#F8F2D8"/>
|
||||
<stop offset="0.9059" style="stop-color:#EFE2CE"/>
|
||||
<stop offset="1" style="stop-color:#EBDAC9"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_10_)" d="M79.486,18.961c-5.115-5.116-24.79,3.148-30.299,5.115c-5.509,1.968-7.87,16.527-4.05,23.995
|
||||
c1.985,3.88,3.852,6.702,6.234,8.521c0.01,0.008,0.019,0.018,0.03,0.026c0.006,0.004,0.014,0.008,0.021,0.012
|
||||
c2.193,1.656,4.039,2.271,7.603,2.271c1.826,0,3.401-1.245,5.116-1.771c0.244,0.366,1.377,2.951,3.148,2.755
|
||||
c4.797-0.533,7.855-6.951,9.444-8.264c1.323-1.094,2.754,0.787,2.754,0.787c7.711-6.466,8.526-16.002,8.526-16.002
|
||||
C88.013,34.57,84.602,24.076,79.486,18.961z"/>
|
||||
</g>
|
||||
<g id="Eye_bottom_shadow">
|
||||
|
||||
<radialGradient id="SVGID_11_" cx="74.4434" cy="42.3691" r="5.4414" gradientTransform="matrix(0.858 0.1654 -0.1893 0.9819 12.2848 -12.2312)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#BD824B"/>
|
||||
<stop offset="0.3374" style="stop-color:#BE844E"/>
|
||||
<stop offset="0.4955" style="stop-color:#C18A55"/>
|
||||
<stop offset="0.6161" style="stop-color:#C79562"/>
|
||||
<stop offset="0.7178" style="stop-color:#CFA474"/>
|
||||
<stop offset="0.8076" style="stop-color:#D9B88C"/>
|
||||
<stop offset="0.889" style="stop-color:#E6D1A9"/>
|
||||
<stop offset="0.9625" style="stop-color:#F5EECB"/>
|
||||
<stop offset="1" style="stop-color:#FEFFE0"/>
|
||||
</radialGradient>
|
||||
<path fill="url(#SVGID_11_)" d="M72.805,42.583c-0.569,2.951-3.121,4.939-5.699,4.443c-2.578-0.497-4.207-3.292-3.638-6.243
|
||||
s3.121-4.94,5.699-4.443S73.373,39.632,72.805,42.583z"/>
|
||||
</g>
|
||||
<g id="Eye_top_shadow">
|
||||
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="65.3203" y1="43.9844" x2="65.3203" y2="28.0732">
|
||||
<stop offset="0.0056" style="stop-color:#FEFFE0"/>
|
||||
<stop offset="1" style="stop-color:#BD824B"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_12_)" d="M71.818,43.534c0,0,5.872,0.973,6.187-1.547c0.258-2.062,0.475-11.835-9.667-13.713
|
||||
c-7.083-1.312-13.248,3.935-15.759,12.425C51.844,43.183,70.271,44.823,71.818,43.534z"/>
|
||||
</g>
|
||||
<g id="Layer_29">
|
||||
|
||||
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="80.8516" y1="64.4702" x2="80.8516" y2="51.8232" gradientTransform="matrix(0.6329 0.2079 -0.2919 0.8884 47.8804 -19.6344)">
|
||||
<stop offset="0.0056" style="stop-color:#FEFFE0"/>
|
||||
<stop offset="1" style="stop-color:#CDA178"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_13_)" d="M80.108,50.405c0,0,2.616-4.186,4.493-6.064c1.968-1.967,1.378,0.984-3.627,7.026
|
||||
C75.855,57.548,80.108,50.405,80.108,50.405z"/>
|
||||
</g>
|
||||
<g id="Eye">
|
||||
|
||||
<radialGradient id="SVGID_14_" cx="78.7246" cy="-33.2397" r="4.6543" gradientTransform="matrix(-1 0 0 -1 146.9961 7.6973)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.0056" style="stop-color:#521B00"/>
|
||||
<stop offset="0.1822" style="stop-color:#541E02"/>
|
||||
<stop offset="0.3093" style="stop-color:#5D2708"/>
|
||||
<stop offset="0.421" style="stop-color:#6B3713"/>
|
||||
<stop offset="0.5238" style="stop-color:#804D21"/>
|
||||
<stop offset="0.6205" style="stop-color:#9A6A34"/>
|
||||
<stop offset="0.7126" style="stop-color:#BB8E4C"/>
|
||||
<stop offset="0.7995" style="stop-color:#E1B767"/>
|
||||
<stop offset="0.8595" style="stop-color:#FFD87D"/>
|
||||
<stop offset="1" style="stop-color:#521B00"/>
|
||||
</radialGradient>
|
||||
<circle fill="url(#SVGID_14_)" cx="68.271" cy="40.937" r="4.654"/>
|
||||
</g>
|
||||
<g id="Layer_26">
|
||||
<circle cx="68.271" cy="40.937" r="2.664"/>
|
||||
</g>
|
||||
<g id="Eye_glare">
|
||||
<radialGradient id="SVGID_15_" cx="67.9922" cy="40.502" r="1.6831" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.225" style="stop-color:#BBBBBB"/>
|
||||
<stop offset="0.5063" style="stop-color:#6C6C6C"/>
|
||||
<stop offset="0.7384" style="stop-color:#313131"/>
|
||||
<stop offset="0.909" style="stop-color:#0E0E0E"/>
|
||||
<stop offset="1" style="stop-color:#000000"/>
|
||||
</radialGradient>
|
||||
<circle fill="url(#SVGID_15_)" cx="67.992" cy="40.502" r="1.683"/>
|
||||
</g>
|
||||
<g id="Beak">
|
||||
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="71.5938" y1="59.001" x2="79.6533" y2="59.001">
|
||||
<stop offset="0" style="stop-color:#CC3300"/>
|
||||
<stop offset="0.0203" style="stop-color:#CD3703"/>
|
||||
<stop offset="0.3676" style="stop-color:#E27C37"/>
|
||||
<stop offset="0.658" style="stop-color:#F2AE5D"/>
|
||||
<stop offset="0.8773" style="stop-color:#FBCC74"/>
|
||||
<stop offset="1" style="stop-color:#FFD87D"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_16_)" d="M76.618,50.931c-2.714,1.034-5.152,4.684-4.84,10.616c0.354,6.721-1.249,6.558,1.249,4.84
|
||||
c2.498-1.717,6.245-6.713,6.558-11.553C79.745,52.336,79.896,49.682,76.618,50.931z"/>
|
||||
</g>
|
||||
<g id="Layer_27">
|
||||
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="71.5527" y1="60.5566" x2="73.5596" y2="60.5566">
|
||||
<stop offset="0" style="stop-color:#CC3300"/>
|
||||
<stop offset="0.0203" style="stop-color:#CD3703"/>
|
||||
<stop offset="0.3676" style="stop-color:#E27C37"/>
|
||||
<stop offset="0.658" style="stop-color:#F2AE5D"/>
|
||||
<stop offset="0.8773" style="stop-color:#FBCC74"/>
|
||||
<stop offset="1" style="stop-color:#FFD87D"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_17_)" d="M73.406,53.776c0,0-0.811,5.563,0,7.881c0.812,2.318-1.854,5.68-1.854,5.68
|
||||
s0.695-4.637,0.231-7.187S73.406,53.776,73.406,53.776z"/>
|
||||
</g>
|
||||
<g id="Layer_28">
|
||||
<path fill="#CC6635" d="M78.026,52.366c0,0-0.812-0.113-0.926,0.7c-0.114,0.813,0.877,2.03,0.877,2.03S78.672,54.28,78.026,52.366z
|
||||
"/>
|
||||
</g>
|
||||
<g id="body__x0026__wing">
|
||||
<radialGradient id="SVGID_18_" cx="64.9922" cy="63.9526" r="57.9235" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.1858" style="stop-color:#C86433"/>
|
||||
<stop offset="0.366" style="stop-color:#BC5D2E"/>
|
||||
<stop offset="0.544" style="stop-color:#A95126"/>
|
||||
<stop offset="0.7206" style="stop-color:#8E401A"/>
|
||||
<stop offset="0.8946" style="stop-color:#6B2A0B"/>
|
||||
<stop offset="1" style="stop-color:#521B00"/>
|
||||
</radialGradient>
|
||||
<path fill="url(#SVGID_18_)" d="M88.013,36.406c0,0,2.894-21.287-22.562-27.02c-3.026-0.682-6.033-0.525-9.968-0.525
|
||||
c-3.935,0-15.215-3.148-15.215-3.148s-2.624,0.918,0,3.542c2.623,2.624,2.623,2.624,2.623,2.624s-18.101,3.41-27.02,28.201
|
||||
c0,0-15.125,18.02-4.984,45.908c8.395,23.086,26.889,34.104,39.219,35.939c4.972,0.741,8.526,0,10.1-3.017
|
||||
c0.304-0.581,11.135,3.95,23.348,0.656c13.616-3.673,19.15-9.183,20.986-15.216c0.077-0.251,13.521-9.533,14.953-20.986
|
||||
c0.787-6.296-1.049-8.395-1.181-8.395c-1.669,0,9.704-7.18,0.918-28.594c-4.197-10.231-4.197-3.148-4.197-1.836
|
||||
s-1.574,38.825-40.924,38.825c-27.807,0-33.429-30.623-25.184-48.269c3.043-6.513,12.066-18.113,27.656-9.742
|
||||
c7.923,4.254,5.528,14.333,6.972,15.775C84.995,42.571,86.045,38.373,88.013,36.406z"/>
|
||||
</g>
|
||||
<g id="Layer_25">
|
||||
<radialGradient id="SVGID_19_" cx="62.7383" cy="77.7598" r="42.5085" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.687" style="stop-color:#793311"/>
|
||||
<stop offset="1" style="stop-color:#521B00"/>
|
||||
</radialGradient>
|
||||
<path fill="url(#SVGID_19_)" d="M104.729,103.858c0,0-44.367,17.109-67.179-20.768c-12.134-20.148-6.095-34.526-4.499-38.636
|
||||
c1.786-4.598,3.671-8.602,0.708-9.597c-3.472-1.166-9.051,6.413-11.877,22.902c-2.714,15.833-2.299,34.43,21.41,52.472
|
||||
c16.126,12.271,35.321,11.012,42.873,9.832S102.842,112.119,104.729,103.858z"/>
|
||||
</g>
|
||||
<g id="Layer_24_copy">
|
||||
<radialGradient id="SVGID_20_" cx="79.5625" cy="73.2637" r="38.6942" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.687" style="stop-color:#793311"/>
|
||||
<stop offset="1" style="stop-color:#521B00"/>
|
||||
</radialGradient>
|
||||
<path fill="url(#SVGID_20_)" d="M120.584,47.546c-3.465-12.203-6.06-9.168-6.538,2.381c0,0,0.1,27.572-23.541,33.961
|
||||
c-18.43,4.981-30.962,0.415-38.409-5.967c-3.487-2.989-8.165-9.597-11.304-15.02c-1.44-2.489-5.348-2.25-4.28,3.009
|
||||
c1.788,8.796,6.116,30.308,33.243,38.263c17.232,5.054,32.901,1.651,35.046-0.348c2.144-1.999,15.927-9.139,15.035-25.263
|
||||
c-0.109-1.963-0.939-4.229-0.959-4.531c1.349-1.817,2.132-3.246,2.407-3.865C122.476,67.487,124.292,60.604,120.584,47.546z"/>
|
||||
</g>
|
||||
<g id="Layer_5">
|
||||
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="37.4956" y1="118.875" x2="37.4956" y2="26.5483">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.1038" style="stop-color:#C35D2C"/>
|
||||
<stop offset="0.4366" style="stop-color:#AC4614"/>
|
||||
<stop offset="0.7442" style="stop-color:#9E3805"/>
|
||||
<stop offset="1" style="stop-color:#993300"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_21_)" d="M27.633,27.14c-4.395,3.102-24.422,31.453-4.136,64.109c10.599,17.062,30.437,26.331,36.9,27.624
|
||||
C61.69,119.132,4.894,97.85,26.6,40.841C33.695,22.205,27.633,27.14,27.633,27.14z"/>
|
||||
</g>
|
||||
<g id="Layer_7_copy">
|
||||
|
||||
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="59.188" y1="83.2822" x2="110.0979" y2="69.034" gradientTransform="matrix(0.8468 -0.5319 0.5319 0.8468 -22.7171 63.6917)">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.4362" style="stop-color:#B85220"/>
|
||||
<stop offset="1" style="stop-color:#993300"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_22_)" d="M63.085,88.653c7.375,3.103,20.954,5.194,30.91,3.065c13.677-2.924,19.84-11.318,24.902-17.541
|
||||
c0,0-13.44,33.64-52.153,21.456c-1.126-0.354-3.446-1.096-5.325-2.349C57.255,90.509,60.319,87.49,63.085,88.653z"/>
|
||||
</g>
|
||||
<g id="Layer_6">
|
||||
<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="39.8994" y1="91.4883" x2="82.8093" y2="66.7142">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.4362" style="stop-color:#B85220"/>
|
||||
<stop offset="1" style="stop-color:#993300"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_23_)" d="M104.539,104.35c0,0-28.837,15.085-58.886-8.986C21.192,75.769,30.276,43.621,35.111,44.388
|
||||
c3.068,0.487,1.652,9.44,1.298,13.924c-1.268,16.071,8.191,36.344,32.528,45.232C82.074,108.343,96.941,106.927,104.539,104.35z"/>
|
||||
</g>
|
||||
<g id="below_tuft">
|
||||
<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="46.9287" y1="32.918" x2="46.9287" y2="11.8779">
|
||||
<stop offset="0" style="stop-color:#CC6635"/>
|
||||
<stop offset="0.1038" style="stop-color:#C35D2C"/>
|
||||
<stop offset="0.4366" style="stop-color:#AC4614"/>
|
||||
<stop offset="0.7442" style="stop-color:#9E3805"/>
|
||||
<stop offset="1" style="stop-color:#993300"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_24_)" d="M42.891,11.878c0,0,4.206,3.87,10.756,3.542c5.164-0.26,4.372,2.75,1.049,3.41
|
||||
c-5.555,1.103-11.543,6.034-15.215,12.067c-2.428,3.99-3.282,1.171-2.886-0.787c0.829-4.098,2.099-6.558,3.935-9.182
|
||||
c1.383-1.976,4.591-6.165,0.525-4.459c-2.743,1.15-2.739,0.303-1.968-1.049C39.642,14.447,40.53,13.058,42.891,11.878z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 35 KiB |
BIN
graphic/tickr.png
Normal file
After Width: | Height: | Size: 8 KiB |
|
@ -1,12 +1,92 @@
|
|||
window.onload = function(){
|
||||
// Convert ISO8601 To UTC
|
||||
for (element of document.querySelectorAll('#articles > ul > li > div > h4')) {
|
||||
timeStamp = new Date(element.textContent);
|
||||
// Convert ISO8601 To UTC/
|
||||
for (let element of document.querySelectorAll('#articles > ul > li > div > h4, #feed > #header > h2#subtitle.date')) {
|
||||
let timeStamp = new Date(element.textContent);
|
||||
element.textContent = timeStamp.toUTCString();
|
||||
}
|
||||
// Parse Markdown
|
||||
for (element of document.querySelectorAll('#articles > ul > li > div > p')) {
|
||||
markDown = element.textContent
|
||||
// Parse Markdown/
|
||||
for (let element of document.querySelectorAll('#articles > ul > li > div > p')) {
|
||||
let markDown = element.textContent
|
||||
element.innerHTML = marked.parse(markDown);
|
||||
}
|
||||
// Display a selection of suggested software.
|
||||
const selection = {
|
||||
'akregator' : {
|
||||
'name' : 'Akregator',
|
||||
'image' : 'akregator.svg',
|
||||
'url' : 'https://apps.kde.org/akregator/'
|
||||
},
|
||||
'leechcraft' : {
|
||||
'name' : 'LeechCraft',
|
||||
'image' : 'leechcraft.png',
|
||||
'url' : 'https://leechcraft.org/'
|
||||
},
|
||||
'liferea' : {
|
||||
'name' : 'Liferea',
|
||||
'image' : 'liferea.svg',
|
||||
'url' : 'https://lzone.de/liferea/'
|
||||
},
|
||||
'raven' : {
|
||||
'name' : 'Raven Reader',
|
||||
'image' : 'raven.svg',
|
||||
'url' : 'https://ravenreader.app/'
|
||||
},
|
||||
'rssguard' : {
|
||||
'name' : 'RSS Guard',
|
||||
'image' : 'rssguard.png',
|
||||
'url' : 'https://github.com/martinrotter/rssguard'
|
||||
},
|
||||
'rssowl' : {
|
||||
'name' : 'RSSOwl',
|
||||
'image' : 'rssowl.svg',
|
||||
'url' : 'http://www.rssowl.org/'
|
||||
},
|
||||
'tickr' : {
|
||||
'name' : 'TICKR',
|
||||
'image' : 'tickr.png',
|
||||
'url' : 'https://www.open-tickr.net/'
|
||||
}
|
||||
}
|
||||
let selectionLink = document.querySelector('#selection-link');
|
||||
selectionLink.addEventListener ('click', function() {
|
||||
let elementDiv = document.createElement('div');
|
||||
elementDiv.id = 'selection-page';
|
||||
let elementH1 = document.createElement('h1');
|
||||
elementH1.textContent = 'Get A News Reader';
|
||||
elementDiv.appendChild(elementH1);
|
||||
let elementH2 = document.createElement('h2');
|
||||
elementH2.textContent = 'Install Feed Reader Apps For Desktop And Mobile';
|
||||
elementDiv.appendChild(elementH2);
|
||||
let elementH3 = document.createElement('h3');
|
||||
elementH3.textContent = '' +
|
||||
'This is a selection of desktop applications, mobile apps and online ' +
|
||||
'services for you to choose from. This selection includes news ' +
|
||||
'readers, podcast managers, torrent clients, chat bots, HTML browsers ' +
|
||||
'and plugins which support syndication feeds.';
|
||||
elementDiv.appendChild(elementH3);
|
||||
const brands = Object.keys(selection);
|
||||
let elementDivSel = document.createElement('div');
|
||||
elementDivSel.id = 'selection';
|
||||
for (let i = 0; i < brands.length; i++) {
|
||||
let brand = brands[i];
|
||||
elementSpan = document.createElement('span');
|
||||
let elementA = document.createElement('a');
|
||||
elementA.href = selection[brand].url;
|
||||
elementA.textContent = selection[brand].name;
|
||||
let elementImg = document.createElement('img');
|
||||
elementImg.src = 'graphic/' + selection[brand].image;
|
||||
elementSpan.appendChild(elementImg);
|
||||
elementSpan.appendChild(elementA);
|
||||
elementDivSel.appendChild(elementSpan);
|
||||
elementDiv.appendChild(elementDivSel);
|
||||
}
|
||||
let elementDivReturn = document.createElement('div');
|
||||
elementDivReturn.id = 'return';
|
||||
elementDivReturn.textContent = 'Return To PubSub...';
|
||||
elementDivReturn.addEventListener ('click', function() {
|
||||
document.querySelector('#selection-page').remove();
|
||||
});
|
||||
elementDiv.appendChild(elementDivReturn);
|
||||
document.body.appendChild(elementDiv);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ 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/xmlbase/'
|
||||
xmlns:xml='http://www.w3.org/XML/1998/namespace'
|
||||
xmlns:media='http://search.yahoo.com/mrss/'
|
||||
xmlns:georss='http://www.georss.org/georss'
|
||||
xmlns:geo='http://www.w3.org/2003/01/geo/wgs84_pos#'
|
||||
|
@ -109,275 +109,283 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
<!-- feed title -->
|
||||
<h1 id='title'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:title and not(atom:title="")'>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:attribute>
|
||||
<xsl:when test='atom:title and not(atom:title="") and count(atom:entry) > 1'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:entry'>
|
||||
<xsl:value-of select='atom:entry/atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class='empty'></div>
|
||||
StreamBurner
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</h1>
|
||||
<!-- feed subtitle -->
|
||||
<h2 id='subtitle'>
|
||||
<xsl:attribute name='title'>
|
||||
<xsl:value-of select='atom:subtitle'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:subtitle'/>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:title and not(atom:title="") and count(atom:entry) > 1'>
|
||||
<xsl:value-of select='atom:subtitle'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:entry'>
|
||||
<xsl:attribute name='class'><xsl:text>date</xsl:text></xsl:attribute>
|
||||
<xsl:value-of select='atom:entry/atom:updated'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:entry'>
|
||||
<xsl:attribute name='class'><xsl:text>date</xsl:text></xsl:attribute>
|
||||
<xsl:value-of select='atom:entry/atom:published'/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</h2>
|
||||
</div>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:entry'>
|
||||
<div id='toc'>
|
||||
<!-- xsl:for-each select='atom:entry[position() <21]' -->
|
||||
<ul>
|
||||
<xsl:for-each select='atom:entry[not(position() >20)]'>
|
||||
<li>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:text>#stremburner-</xsl:text>
|
||||
<xsl:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
<xsl:when test='string-length(atom:title) > 0'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
*** No Title ***
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:element>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</div>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
<div id='articles'>
|
||||
<!-- feed entry -->
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:entry'>
|
||||
<ul>
|
||||
<xsl:for-each select='atom:entry[not(position() >20)]'>
|
||||
<li>
|
||||
<div class='entry'>
|
||||
<!-- entry title -->
|
||||
<h3 class='title'>
|
||||
<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>
|
||||
<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:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
<xsl:when test='string-length(atom:title) > 0'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
*** No Title ***
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:element>
|
||||
</h3>
|
||||
<!-- geographic location -->
|
||||
<xsl:choose>
|
||||
<xsl:when test='geo:lat and geo:long'>
|
||||
<xsl:variable name='lat' select='geo:lat'/>
|
||||
<xsl:variable name='lng' select='geo:long'/>
|
||||
<span class='geolocation'>
|
||||
<a href='geo:{$lat},{$lng}'>📍</a>
|
||||
</span>
|
||||
</xsl:when>
|
||||
<xsl:when test='geo:Point'>
|
||||
<xsl:variable name='lat' select='geo:Point/geo:lat'/>
|
||||
<xsl:variable name='lng' select='geo:Point/geo:long'/>
|
||||
<span class='geolocation'>
|
||||
<a href='geo:{$lat},{$lng}'>📍</a>
|
||||
</span>
|
||||
</xsl:when>
|
||||
<xsl:when test='georss:point'>
|
||||
<xsl:variable name='lat' select='substring-before(georss:point, " ")'/>
|
||||
<xsl:variable name='lng' select='substring-after(georss:point, " ")'/>
|
||||
<xsl:variable name='name' select='georss:featurename'/>
|
||||
<span class='geolocation'>
|
||||
<a href='geo:{$lat},{$lng}' title='{$name}'>📍</a>
|
||||
</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 -->
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:updated'>
|
||||
<h4 class='updated'>
|
||||
<xsl:value-of select='atom:updated'/>
|
||||
</h4>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:published'>
|
||||
<h4 class='published'>
|
||||
<xsl:value-of select='atom:published'/>
|
||||
</h4>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<h4 class='warning atom1 published'></h4>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- /div -->
|
||||
<!-- entry content -->
|
||||
<!-- entry summary of GitLab Atom Syndication Feeds -->
|
||||
<xsl:if test='atom:content or atom:summary'>
|
||||
<p class='content'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:summary[contains(@type,"text")]'>
|
||||
<xsl:attribute name='type'>
|
||||
<xsl:value-of select='atom:summary/@type'/>
|
||||
<xsl:if test='count(atom:entry) > 1'>
|
||||
<div id='menu'>
|
||||
<h3>Latest Posts</h3>
|
||||
<!-- xsl:for-each select='atom:entry[position() <21]' -->
|
||||
<ul>
|
||||
<xsl:for-each select='atom:entry[not(position() > 20)]'>
|
||||
<li>
|
||||
<xsl:element name='a'>
|
||||
<xsl:attribute name='href'>
|
||||
<xsl:text>#stremburner-</xsl:text>
|
||||
<xsl:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:summary'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:summary[contains(@type,"base64")]'>
|
||||
<!-- TODO add xsl:template to handle inline media -->
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:content[contains(@type,"text")]'>
|
||||
<xsl:attribute name='type'>
|
||||
<xsl:value-of select='atom:content/@type'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:content'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:content[contains(@type,"base64")]'>
|
||||
<!-- TODO add xsl:template to handle inline media -->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:summary and not(atom:summary="")'>
|
||||
<xsl:value-of select='atom:summary' disable-output-escaping='yes'/>
|
||||
<xsl:when test='string-length(atom:title) > 0'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select='atom:content' disable-output-escaping='yes'/>
|
||||
*** No Title ***
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</p>
|
||||
</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:for-each>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- entry id -->
|
||||
<xsl:if test='not(atom:id)'>
|
||||
<div class='warning atom1 id'></div>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class='notice no-entry'></div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
<div id='articles'>
|
||||
<!-- feed entry -->
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:entry'>
|
||||
<ul>
|
||||
<xsl:for-each select='atom:entry[not(position() >20)]'>
|
||||
<li>
|
||||
<div class='entry'>
|
||||
<!-- entry title -->
|
||||
<h3 class='title'>
|
||||
<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>
|
||||
<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:value-of select='position()'/>
|
||||
</xsl:attribute>
|
||||
<xsl:choose>
|
||||
<xsl:when test='string-length(atom:title) > 0'>
|
||||
<xsl:value-of select='atom:title'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
*** No Title ***
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:element>
|
||||
</h3>
|
||||
<!-- geographic location -->
|
||||
<xsl:choose>
|
||||
<xsl:when test='geo:lat and geo:long'>
|
||||
<xsl:variable name='lat' select='geo:lat'/>
|
||||
<xsl:variable name='lng' select='geo:long'/>
|
||||
<span class='geolocation'>
|
||||
<a href='geo:{$lat},{$lng}'>📍</a>
|
||||
</span>
|
||||
</xsl:when>
|
||||
<xsl:when test='geo:Point'>
|
||||
<xsl:variable name='lat' select='geo:Point/geo:lat'/>
|
||||
<xsl:variable name='lng' select='geo:Point/geo:long'/>
|
||||
<span class='geolocation'>
|
||||
<a href='geo:{$lat},{$lng}'>📍</a>
|
||||
</span>
|
||||
</xsl:when>
|
||||
<xsl:when test='georss:point'>
|
||||
<xsl:variable name='lat' select='substring-before(georss:point, " ")'/>
|
||||
<xsl:variable name='lng' select='substring-after(georss:point, " ")'/>
|
||||
<xsl:variable name='name' select='georss:featurename'/>
|
||||
<span class='geolocation'>
|
||||
<a href='geo:{$lat},{$lng}' title='{$name}'>📍</a>
|
||||
</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 -->
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:updated'>
|
||||
<h4 class='updated'>
|
||||
<xsl:value-of select='atom:updated'/>
|
||||
</h4>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:published'>
|
||||
<h4 class='published'>
|
||||
<xsl:value-of select='atom:published'/>
|
||||
</h4>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<h4 class='warning atom1 published'></h4>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- /div -->
|
||||
<!-- entry content -->
|
||||
<!-- entry summary of GitLab Atom Syndication Feeds -->
|
||||
<xsl:if test='atom:content or atom:summary'>
|
||||
<p class='content'>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:summary[contains(@type,"text")]'>
|
||||
<xsl:attribute name='type'>
|
||||
<xsl:value-of select='atom:summary/@type'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:summary'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:summary[contains(@type,"base64")]'>
|
||||
<!-- TODO add xsl:template to handle inline media -->
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:content[contains(@type,"text")]'>
|
||||
<xsl:attribute name='type'>
|
||||
<xsl:value-of select='atom:content/@type'/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select='atom:content'/>
|
||||
</xsl:when>
|
||||
<xsl:when test='atom:content[contains(@type,"base64")]'>
|
||||
<!-- TODO add xsl:template to handle inline media -->
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test='atom:summary and not(atom:summary="")'>
|
||||
<xsl:value-of select='atom:summary' disable-output-escaping='yes'/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select='atom:content' disable-output-escaping='yes'/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</p>
|
||||
</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:for-each>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</div>
|
||||
<!-- entry id -->
|
||||
<xsl:if test='not(atom:id)'>
|
||||
<div class='warning atom1 id'></div>
|
||||
</xsl:if>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class='notice no-entry'></div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</div>
|
||||
</div>
|
||||
<div id='references'>
|
||||
|
@ -412,8 +420,8 @@ xmlns:atom='http://www.w3.org/2005/Atom'>
|
|||
This is an XMPP news feed which is conveyed as HTML,
|
||||
and it can even be viewed by a syndication feed reader
|
||||
which provides automated notifications on desktop and
|
||||
mobile. <a href="">Click here</a> for a selection of
|
||||
software that would fit you best!
|
||||
mobile. <span id="selection-link">Click here</span> for
|
||||
a selection of software that would fit you best!
|
||||
</i>
|
||||
</p>
|
||||
</body>
|
||||
|
|