forked from songxiaofeng1981/best
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploying to gh-pages from @ f86aabf 🚀
- Loading branch information
0 parents
commit a6691c1
Showing
47 changed files
with
1,620 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,248 @@ | ||
<!doctype html> | ||
<html class="notranslate" translate="no"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="google" content="notranslate" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> | ||
<title data-title="maxvoltar.photo">001</title> | ||
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="https://maxvoltar.photo/feed.xml"> | ||
<meta property="og:title" content="001"> | ||
<meta property="og:type" content="website"> | ||
<meta property="og:url" content="https://maxvoltar.photo"> | ||
<meta property="og:image" content="https://maxvoltar.photo/best/photos/large/001-686656.jpg"> | ||
<meta property="og:site_name" content="maxvoltar.photo"> | ||
<meta property="og:description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<meta name="thumbnail" content="https://maxvoltar.photo/best/photos/large/001-686656.jpg"> | ||
<meta name="twitter:card" content="summary_large_image"> | ||
<meta name="twitter:site" content=""> | ||
<meta name="twitter:title" content="001"> | ||
<meta name="twitter:description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<meta name="twitter:image:src" content="https://maxvoltar.photo/best/photos/large/001-686656.jpg"> | ||
<meta name="description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<script type="text/javascript" src="/best/js/lazy-loading.js"></script> | ||
<link rel="stylesheet" type="text/css" media="screen" href="/best/css/master.css" /> | ||
<link rel="stylesheet" type="text/css" href="/best/css/toastify.min.css"> | ||
<link rel="apple-touch-icon" sizes="180x180" href="/best/apple-touch-icon.png?v=1"> | ||
<link rel="icon" type="image/png" sizes="32x32" href="/best/favicon-32x32.png?v=1"> | ||
<link rel="icon" type="image/png" sizes="16x16" href="/best/favicon-16x16.png?v=1"> | ||
<link rel="manifest" href="/best/site.webmanifest?v=1"> | ||
<link rel="mask-icon" href="/best/favicon.svg?v=1"> | ||
<link rel="shortcut icon" href="/best/favicon.ico?v=1"> | ||
<meta name="msapplication-TileColor" content="#603cba"> | ||
<meta name="theme-color" content="#ffffff"> | ||
</head> | ||
<body> | ||
<main> | ||
<ul class="grid" id="target"> | ||
<li class="item target" id="id-001" style="background-image: url('/best/photos/tint/001-65ba1d.jpg')" title="001"> | ||
<img class="lazyload" data-src="/best/photos/thumbnail/001-ccf4df.jpg" src="/best/photos/tint/001-65ba1d.jpg" height="" width="" /> | ||
<span class="full"> | ||
<span style="background-image: url('/best/photos/large/001-686656.jpg')"></span> | ||
</span> | ||
<a class="open" href="/best/001" data-target="id-001">Open</a> | ||
<a class="close" href="/best/">Close</a> | ||
<ul class="links top photodetail-links"> | ||
<li class="share"><a onClick="shareImage('001','/best/001');" title="Share this photo">Share</a></li> | ||
</ul> | ||
<ul class="meta"> | ||
<!-- | ||
<li></li> | ||
<li></li> | ||
<li><span class="aperture"><em>f</em>/</span></li> | ||
--> | ||
<li><a onClick="shareImage('001', '/best/001')" class="gridview-button share" title="Share this image">Share</a></li> | ||
</ul> | ||
</li> | ||
</ul> | ||
<ul class="links bottom"> | ||
<li class="sort"><a rel="me" href="#" title="Reverse sort order">Sort</a></li> | ||
<li class="rss"><a rel="alternate" type="application/rss+xml" href="https://maxvoltar.photo/feed.xml" title="RSS Feed">RSS Feed</a></li> | ||
<li class="github"><a rel="me" href="https://github.com/waschinski/photo-stream" title="Fork on Github">Github</a></li> | ||
<li class="github"><a rel="me" href="https://github.com/maxvoltar" title="@maxvoltar on Github">Github</a></li> | ||
<li class="instagram"><a rel="me" href="https://instagram.com/maxvoltar" title="@maxvoltar on Instagram">Instagram</a></li> | ||
</ul> | ||
</main> | ||
<script> | ||
const ESCAPE = 27; | ||
const RIGHT = 39; | ||
const LEFT = 37; | ||
const UP = 38; | ||
const DOWN = 40; | ||
const TARGET_CLASS = 'target'; | ||
|
||
/* | ||
* swipe detection | ||
* | ||
* found at: https://stackoverflow.com/a/23230280 | ||
*/ | ||
document.addEventListener('touchstart', handleTouchStart, false); | ||
document.addEventListener('touchmove', handleTouchMove, false); | ||
|
||
var xDown = null; | ||
|
||
function getTouches(evt) { | ||
return evt.touches || // browser API | ||
evt.originalEvent.touches; // jQuery | ||
} | ||
|
||
function handleTouchStart(evt) { | ||
const firstTouch = getTouches(evt)[0]; | ||
xDown = firstTouch.clientX; | ||
}; | ||
|
||
function handleTouchMove(evt) { | ||
if ( ! xDown ) { | ||
return; | ||
} | ||
|
||
var xUp = evt.touches[0].clientX; | ||
|
||
var xDiff = xDown - xUp; | ||
|
||
if ( xDiff > 0 ) { | ||
clickNavigationButton('.next'); | ||
} else { | ||
clickNavigationButton('.previous'); | ||
} | ||
/* reset values */ | ||
xDown = null; | ||
yDown = null; | ||
}; | ||
|
||
/* image sharing */ | ||
|
||
const shareImage = (title, url) => { | ||
if (navigator.canShare) { | ||
const shareData = { | ||
title: title, | ||
text: 'I found a cool photo over at maxvoltar.photo! Check it out!', | ||
url: url | ||
} | ||
navigator.share(shareData) | ||
} else { | ||
navigator.clipboard.writeText(`I found a cool photo over at maxvoltar.photo! Check it out!\n\n${window.location.origin}${url}`); | ||
Toastify({ | ||
text: "Copied to clipboard", | ||
duration: 3000, | ||
style: { | ||
background: "rgba(0, 0, 0, 0.7)" | ||
} | ||
}).showToast(); | ||
} | ||
} | ||
|
||
const clickNavigationButton = (buttonClass) => { | ||
const id = window.history.state && window.history.state.id; | ||
if (id) { | ||
const selector = `#${id} ${buttonClass}`; | ||
const button = document.querySelector(selector); | ||
button && button.click(); | ||
} | ||
} | ||
|
||
const openPhoto = (id, href) => { | ||
const photo = document.getElementById(id); | ||
const phototitle = photo.getAttribute('title'); | ||
removeTargetClass(); | ||
photo.classList.add(TARGET_CLASS); | ||
document.title = phototitle; | ||
|
||
if (href) { | ||
window.history.pushState({id: id}, '', href); | ||
} | ||
} | ||
|
||
const closePhoto = (href) => { | ||
const title = document.querySelector('head title').getAttribute('data-title'); | ||
removeTargetClass(); | ||
document.title = title; | ||
|
||
if (href) { | ||
window.history.pushState({}, '', href); | ||
} | ||
} | ||
|
||
const removeTargetClass = () => { | ||
let targets = document.querySelectorAll(`.${TARGET_CLASS}`); | ||
targets.forEach((target) => { | ||
target.classList.remove(TARGET_CLASS); | ||
}); | ||
} | ||
|
||
const handleClick = (selector, event, callback) => { | ||
if (event.target.matches(selector)) { | ||
callback(); | ||
event.preventDefault(); | ||
} | ||
} | ||
|
||
const handleKey = (keyCode, event, callback) => { | ||
if (event.keyCode === keyCode) { | ||
callback(); | ||
event.preventDefault(); | ||
} | ||
} | ||
|
||
const reverseSorting = () => { | ||
|
||
var parent = document.getElementById('target'); | ||
for (var i = 1; i < parent.childNodes.length; i++){ | ||
parent.insertBefore(parent.childNodes[i], parent.firstChild); | ||
} | ||
|
||
} | ||
|
||
window.onpopstate = function(event) { | ||
if (event.state && event.state.id) { | ||
const id = event.state.id; | ||
openPhoto(id, null); | ||
} else { | ||
closePhoto(null); | ||
} | ||
} | ||
|
||
document.addEventListener('keydown', (event) => { | ||
handleKey(ESCAPE, event, () => { | ||
clickNavigationButton('.close'); | ||
}); | ||
|
||
handleKey(RIGHT, event, () => { | ||
clickNavigationButton('.next'); | ||
}); | ||
|
||
handleKey(LEFT, event, () => { | ||
clickNavigationButton('.previous'); | ||
}); | ||
|
||
handleKey(UP, event, () => { | ||
reverseSorting(); | ||
}); | ||
|
||
handleKey(DOWN, event, () => { | ||
reverseSorting(); | ||
}); | ||
}); | ||
|
||
document.addEventListener('click', (event) => { | ||
handleClick('[data-target][href]', event, () => { | ||
const id = event.target.getAttribute('data-target'); | ||
const href = event.target.getAttribute('href'); | ||
openPhoto(id, href); | ||
}); | ||
|
||
handleClick('[href].close', event, () => { | ||
const href = event.target.getAttribute('href'); | ||
closePhoto(href); | ||
}); | ||
|
||
handleClick('ul.links li.sort a', event, () => { | ||
reverseSorting(); | ||
}); | ||
}); | ||
|
||
lazyload(); | ||
</script> | ||
<script type="text/javascript" src="/best/js/toastify.js"></script> | ||
<script src="/best/js/photos.js" data-photo-id="001" data-photo-url="/best/001" data-target-id="target"></script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="google" content="notranslate" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> | ||
<title data-title="maxvoltar.photo">maxvoltar.photo</title> | ||
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="https://maxvoltar.photo/feed.xml"> | ||
<meta property="og:title" content="maxvoltar.photo"> | ||
<meta property="og:type" content="website"> | ||
<meta property="og:url" content="https://maxvoltar.photo"> | ||
<meta property="og:image" content="https://maxvoltar.photosocial-preview.png"> | ||
<meta property="og:site_name" content="maxvoltar.photo"> | ||
<meta property="og:description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<meta name="thumbnail" content="https://maxvoltar.photosocial-preview.png"> | ||
<meta name="twitter:card" content="summary_large_image"> | ||
<meta name="twitter:site" content=""> | ||
<meta name="twitter:title" content="maxvoltar.photo"> | ||
<meta name="twitter:description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<meta name="twitter:image:src" content="https://maxvoltar.photosocial-preview.png"> | ||
<meta name="description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<script type="text/javascript" src="/best/js/lazy-loading.js"></script> | ||
<link rel="stylesheet" type="text/css" media="screen" href="/best/css/master.css" /> | ||
<link rel="stylesheet" type="text/css" href="/best/css/toastify.min.css"> | ||
<link rel="apple-touch-icon" sizes="180x180" href="/best/apple-touch-icon.png?v=1"> | ||
<link rel="icon" type="image/png" sizes="32x32" href="/best/favicon-32x32.png?v=1"> | ||
<link rel="icon" type="image/png" sizes="16x16" href="/best/favicon-16x16.png?v=1"> | ||
<link rel="manifest" href="/best/site.webmanifest?v=1"> | ||
<link rel="mask-icon" href="/best/favicon.svg?v=1"> | ||
<link rel="shortcut icon" href="/best/favicon.ico?v=1"> | ||
<meta name="msapplication-TileColor" content="#603cba"> | ||
<meta name="theme-color" content="#ffffff"> | ||
</head> | ||
<body> | ||
<div class="four-oh-four"> | ||
<img src="https://maxvoltar.photo/favicon.svg" alt=""> | ||
<h1>404</h1> | ||
<p>Photo not found.</p> | ||
<a href="https://maxvoltar.photo">Back to overview</a> | ||
</div> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="google" content="notranslate" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> | ||
<title data-title="maxvoltar.photo">About</title> | ||
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="https://maxvoltar.photo/feed.xml"> | ||
<meta property="og:title" content="About"> | ||
<meta property="og:type" content="website"> | ||
<meta property="og:url" content="https://maxvoltar.photo"> | ||
<meta property="og:image" content="https://maxvoltar.photosocial-preview.png"> | ||
<meta property="og:site_name" content="maxvoltar.photo"> | ||
<meta property="og:description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<meta name="thumbnail" content="https://maxvoltar.photosocial-preview.png"> | ||
<meta name="twitter:card" content="summary_large_image"> | ||
<meta name="twitter:site" content=""> | ||
<meta name="twitter:title" content="About"> | ||
<meta name="twitter:description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<meta name="twitter:image:src" content="https://maxvoltar.photosocial-preview.png"> | ||
<meta name="description" content="@maxvoltar's minimalistic, self-hosted photo stream."> | ||
<script type="text/javascript" src="/best/js/lazy-loading.js"></script> | ||
<link rel="stylesheet" type="text/css" media="screen" href="/best/css/master.css" /> | ||
<link rel="stylesheet" type="text/css" href="/best/css/toastify.min.css"> | ||
<link rel="apple-touch-icon" sizes="180x180" href="/best/apple-touch-icon.png?v=1"> | ||
<link rel="icon" type="image/png" sizes="32x32" href="/best/favicon-32x32.png?v=1"> | ||
<link rel="icon" type="image/png" sizes="16x16" href="/best/favicon-16x16.png?v=1"> | ||
<link rel="manifest" href="/best/site.webmanifest?v=1"> | ||
<link rel="mask-icon" href="/best/favicon.svg?v=1"> | ||
<link rel="shortcut icon" href="/best/favicon.ico?v=1"> | ||
<meta name="msapplication-TileColor" content="#603cba"> | ||
<meta name="theme-color" content="#ffffff"> | ||
</head> | ||
<body> | ||
<p>This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at <a href="https://jekyllrb.com/">jekyllrb.com</a></p> | ||
<p>You can find the source code for Minima at GitHub: | ||
<a href="https://github.com/jekyll">jekyll</a> / | ||
<a href="https://github.com/jekyll/minima">minima</a></p> | ||
<p>You can find the source code for Jekyll at GitHub: | ||
<a href="https://github.com/jekyll">jekyll</a> / | ||
<a href="https://github.com/jekyll/jekyll">jekyll</a></p> | ||
</body> | ||
</html> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<browserconfig> | ||
<msapplication> | ||
<tile> | ||
<square150x150logo src="/mstile-150x150.png?v=1"/> | ||
<TileColor>#603cba</TileColor> | ||
</tile> | ||
</msapplication> | ||
</browserconfig> |
Oops, something went wrong.