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>
 |