211 lines
4.1 KiB
Plaintext
211 lines
4.1 KiB
Plaintext
@require(feed)
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>@feed.title – via morss</title>
|
|
<meta charset="UTF-8" />
|
|
<meta name="description" content="@feed.desc (via morss)" />
|
|
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" />
|
|
|
|
<style type="text/css">
|
|
/* columns - from https://thisisdallas.github.io/Simple-Grid/simpleGrid.css */
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
#content {
|
|
width: 100%;
|
|
max-width: 1140px;
|
|
min-width: 755px;
|
|
margin: 0 auto;
|
|
overflow: hidden;
|
|
|
|
padding-top: 20px;
|
|
padding-left: 20px; /* grid-space to left */
|
|
padding-right: 0px; /* grid-space to right: (grid-space-left - column-space) e.g. 20px-20px=0 */
|
|
}
|
|
|
|
.item {
|
|
width: 33.33%;
|
|
float: left;
|
|
padding-right: 20px; /* column-space */
|
|
}
|
|
|
|
@@media handheld, only screen and (max-width: 767px) { /* @@ to escape from the template engine */
|
|
#content {
|
|
width: 100%;
|
|
min-width: 0;
|
|
margin-left: 0px;
|
|
margin-right: 0px;
|
|
padding-left: 20px; /* grid-space to left */
|
|
padding-right: 10px; /* grid-space to right: (grid-space-left - column-space) e.g. 20px-10px=10px */
|
|
}
|
|
|
|
.item {
|
|
width: auto;
|
|
float: none;
|
|
margin-left: 0px;
|
|
margin-right: 0px;
|
|
margin-top: 10px;
|
|
margin-bottom: 10px;
|
|
padding-left: 0px;
|
|
padding-right: 10px; /* column-space */
|
|
}
|
|
}
|
|
|
|
/* design */
|
|
|
|
#header h1, #header h2, #header p {
|
|
font-family: sans;
|
|
text-align: center;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
#header h1 {
|
|
font-size: 2.5em;
|
|
font-weight: bold;
|
|
padding: 1em 0 0.25em;
|
|
}
|
|
|
|
#header h2 {
|
|
font-size: 1em;
|
|
font-weight: normal;
|
|
}
|
|
|
|
#header p {
|
|
color: gray;
|
|
font-style: italic;
|
|
font-size: 0.75em;
|
|
}
|
|
|
|
#content {
|
|
text-align: justify;
|
|
}
|
|
|
|
.item .title {
|
|
font-weight: bold;
|
|
display: block;
|
|
text-align: center;
|
|
}
|
|
|
|
.item .link {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.item:not(.active) {
|
|
cursor: pointer;
|
|
|
|
height: 20em;
|
|
margin-bottom: 20px;
|
|
overflow: hidden;
|
|
text-overflow: ellpisps;
|
|
|
|
padding: 0.25em;
|
|
position: relative;
|
|
}
|
|
|
|
.item:not(.active) .title {
|
|
padding-bottom: 0.1em;
|
|
margin-bottom: 0.1em;
|
|
border-bottom: 1px solid silver;
|
|
}
|
|
|
|
.item:not(.active):before {
|
|
content: " ";
|
|
display: block;
|
|
width: 100%;
|
|
position: absolute;
|
|
top: 18.5em;
|
|
height: 1.5em;
|
|
background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
|
|
}
|
|
|
|
.item:not(.active) .article * {
|
|
max-width: 100%;
|
|
font-size: 1em !important;
|
|
font-weight: normal;
|
|
display: inline;
|
|
margin: 0;
|
|
}
|
|
|
|
.item.active {
|
|
background: white;
|
|
position: fixed;
|
|
overflow: auto;
|
|
top: 0;
|
|
left: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
z-index: 1;
|
|
}
|
|
|
|
body.noscroll {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.item.active > * {
|
|
max-width: 700px;
|
|
margin: auto;
|
|
}
|
|
|
|
.item.active .title {
|
|
font-size: 2em;
|
|
padding: 0.5em 0;
|
|
}
|
|
|
|
.item.active .article object,
|
|
.item.active .article video,
|
|
.item.active .article audio {
|
|
display: none;
|
|
}
|
|
|
|
.item.active .article img {
|
|
max-height: 20em;
|
|
max-width: 100%;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="header">
|
|
<h1>@feed.title</h1>
|
|
@if feed.desc:
|
|
<h2>@feed.desc</h2>
|
|
@end
|
|
<p>- via morss</p>
|
|
</div>
|
|
|
|
<div id="content">
|
|
@for item in feed.items:
|
|
<div class="item">
|
|
@if item.link:
|
|
<a class="title link" href="@item.link" target="_blank">@item.title</a>
|
|
@else:
|
|
<span class="title">@item.title</span>
|
|
@end
|
|
<div class="article">
|
|
@if item.content:
|
|
@item.content
|
|
@else:
|
|
@item.desc
|
|
@end
|
|
</div>
|
|
</div>
|
|
@end
|
|
</div>
|
|
|
|
<script>
|
|
var items = document.getElementsByClassName('item')
|
|
for (var i in items)
|
|
items[i].onclick = function()
|
|
{
|
|
this.classList.toggle('active')
|
|
document.body.classList.toggle('noscroll')
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|