Compare commits
6 Commits
f6bc23927f
...
d39d7bb19d
Author | SHA1 | Date |
---|---|---|
pictuga | d39d7bb19d | |
pictuga | e5e3746fc6 | |
pictuga | 960c9d10d6 | |
pictuga | 0e7a5b9780 | |
pictuga | 186bedcf62 | |
pictuga | 5847e18e42 |
190
www/sheet.xsl
190
www/sheet.xsl
|
@ -24,11 +24,100 @@
|
||||||
font-family: sans;
|
font-family: sans;
|
||||||
}
|
}
|
||||||
|
|
||||||
#url {
|
input, select {
|
||||||
background-color: rgba(255, 165, 0, 0.25);
|
font-family: inherit;
|
||||||
padding: 1% 5%;
|
font-size: inherit;
|
||||||
display: inline-block;
|
text-align: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid silver;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-combo {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row;
|
||||||
|
align-items: stretch;
|
||||||
|
|
||||||
|
width: 800px;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
margin: auto;
|
||||||
|
|
||||||
|
border: 1px solid grey;
|
||||||
|
|
||||||
|
padding: .5em .5em;
|
||||||
|
background-color: #FFFAF4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-combo * {
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 2em;
|
||||||
|
border: 0;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-combo > :not(.button) {
|
||||||
|
max-width: 100%;
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-shrink 0;
|
||||||
|
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-combo .button {
|
||||||
|
flex-grow: 0;
|
||||||
|
flex-shrink 1;
|
||||||
|
|
||||||
|
cursor: pointer;
|
||||||
|
min-width: 2em;
|
||||||
|
text-align: center;
|
||||||
|
border-left: 1px solid silver;
|
||||||
|
color: #06f;
|
||||||
|
}
|
||||||
|
|
||||||
|
[onclick_title] {
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
[onclick_title]::before {
|
||||||
|
opacity: 0;
|
||||||
|
|
||||||
|
content: attr(onclick_title);
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
left: -300%;
|
||||||
|
|
||||||
|
z-index: 1;
|
||||||
|
|
||||||
|
background: grey;
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
border-radius: 0.5em;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
[onclick_title]:not(:active)::before {
|
||||||
|
transition: opacity 1s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
[onclick_title]:active::before {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
header > form {
|
||||||
|
text-align: center;
|
||||||
|
margin: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
header a {
|
||||||
|
text-decoration: inherit;
|
||||||
|
color: #FF7B0A;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
|
@ -53,21 +142,58 @@
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content * {
|
.desc, .content {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc *, .content * {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>RSS feed by morss</h1>
|
<header>
|
||||||
|
<h1>RSS feed by morss</h1>
|
||||||
|
|
||||||
<p>Your RSS feed is <strong style="color: green">ready</strong>. You
|
<p>Your RSS feed is <strong style="color: green">ready</strong>. You
|
||||||
can enter the following url in your newsreader:</p>
|
can enter the following url in your newsreader:</p>
|
||||||
|
|
||||||
<div id="url"></div>
|
<div class="input-combo">
|
||||||
|
<input id="url" readonly="readonly"/>
|
||||||
|
<span class="button" onclick="copy_link()" title="Copy" onclick_title="Copied">
|
||||||
|
<svg width="16px" height="16px" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" d="M4 1.5H3a2 2 0 00-2 2V14a2 2 0 002 2h10a2 2 0 002-2V3.5a2 2 0 00-2-2h-1v1h1a1 1 0 011 1V14a1 1 0 01-1 1H3a1 1 0 01-1-1V3.5a1 1 0 011-1h1v-1z" clip-rule="evenodd"/>
|
||||||
|
<path fill-rule="evenodd" d="M9.5 1h-3a.5.5 0 00-.5.5v1a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-1a.5.5 0 00-.5-.5zm-3-1A1.5 1.5 0 005 1.5v1A1.5 1.5 0 006.5 4h3A1.5 1.5 0 0011 2.5v-1A1.5 1.5 0 009.5 0h-3z" clip-rule="evenodd"/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<form onchange="open_feed()">
|
||||||
|
More options: Output the
|
||||||
|
<select>
|
||||||
|
<option value="">full-text</option>
|
||||||
|
<option value=":proxy">original</option>
|
||||||
|
<option value=":clip">original + full-text</option>
|
||||||
|
</select>
|
||||||
|
feed as
|
||||||
|
<select>
|
||||||
|
<option value="">RSS</option>
|
||||||
|
<option value=":json:cors">JSON</option>
|
||||||
|
<option value=":html">HTML</option>
|
||||||
|
<option value=":csv">CSV</option>
|
||||||
|
</select>
|
||||||
|
and
|
||||||
|
<select>
|
||||||
|
<option value="">keep</option>
|
||||||
|
<option value=":nolink:noref">remove</option>
|
||||||
|
</select>
|
||||||
|
links
|
||||||
|
<input type="hidden" value="" name="extra_options"/>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<p>Click <a href="/">here</a> to go back to morss</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<h1>
|
<h1>
|
||||||
|
@ -98,11 +224,51 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.getElementById("url").innerHTML = window.location.href.replace(/:html\/?/, '')
|
document.getElementById("url").value = window.location.href
|
||||||
|
|
||||||
if (!/:html/.test(window.location.href))
|
if (!/:html/.test(window.location.href))
|
||||||
for (var content of document.querySelectorAll(".desc,.content"))
|
for (var content of document.querySelectorAll(".desc,.content"))
|
||||||
content.innerHTML = content.children.children ? content.innerHTML : content.innerText
|
content.innerHTML = (content.innerText.match(/>/g) || []).length > 10 ? content.innerText : content.innerHTML
|
||||||
|
|
||||||
|
var options = parse_location()[0]
|
||||||
|
|
||||||
|
if (options) {
|
||||||
|
for (var select of document.forms[0].elements)
|
||||||
|
if (select.tagName == 'SELECT')
|
||||||
|
for (var option of select)
|
||||||
|
if (option.value)
|
||||||
|
if (options.match(option.value)) {
|
||||||
|
select.value = option.value
|
||||||
|
options = options.replace(option.value, '')
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
document.forms[0]['extra_options'].value = options
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_content(input) {
|
||||||
|
input.focus()
|
||||||
|
input.select()
|
||||||
|
document.execCommand('copy')
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_link() {
|
||||||
|
copy_content(document.getElementById("url"))
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse_location() {
|
||||||
|
return (window.location.pathname + window.location.search).match(/^\/(?:(:[^\/]+)\/)?(.*$)$/).slice(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
function open_feed() {
|
||||||
|
var url = parse_location()[1]
|
||||||
|
var options = Array.from(document.forms[0].elements).map(x=>x.value).join('')
|
||||||
|
|
||||||
|
var target = '/' + (options ? options + '/' : '') + url
|
||||||
|
|
||||||
|
if (target != window.location.pathname)
|
||||||
|
window.location.href = target
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue