Repository navigation
Expand file tree
/
Copy pathgallery.html
More file actions
134 lines (130 loc) · 6.86 KB
/
Copy pathgallery.html
File metadata and controls
134 lines (130 loc) · 6.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://ghostmaxxing.vecna.eu/gallery.html" />
<link rel="manifest" href="/manifest.webmanifest" />
<link rel="icon" type="image/svg+xml" href="/images/logo/mark-color.svg" />
<meta name="theme-color" content="#f26a1b" />
<title>Shared gallery — Ghostmaxxing</title>
<meta name="description" content="Moderated face-recognition camouflage results shared by the Ghostmaxxing community." />
<meta property="og:title" content="Shared gallery — Ghostmaxxing" />
<meta property="og:description" content="Moderated camouflage results, newest first." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://ghostmaxxing.vecna.eu/gallery.html" />
<meta property="og:image" content="https://ghostmaxxing.vecna.eu/images/social/ghostmaxxing-gallery.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Ghostmaxxing community results shared with consent, newest first." />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Shared gallery — Ghostmaxxing" />
<meta name="twitter:description" content="Moderated camouflage results, newest first." />
<meta name="twitter:image" content="https://ghostmaxxing.vecna.eu/images/social/ghostmaxxing-gallery.jpg" />
<meta name="twitter:image:alt" content="Ghostmaxxing community results shared with consent, newest first." />
<link rel="alternate" type="application/rss+xml" title="Ghostmaxxing gallery RSS" href="https://ghostmaxxing.vecna.eu/feed/ghostyles-pictures.xml" />
<link rel="alternate" type="application/activity+json" title="Ghostmaxxing gallery ActivityPub actor" href="https://ghostmaxxing.vecna.eu/federation/actors/ghostyles-pictures" />
<link rel="me" href="https://ghostmaxxing.vecna.eu/federation/actors/ghostyles-pictures" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"@id": "https://ghostmaxxing.vecna.eu/gallery.html#webpage",
"url": "https://ghostmaxxing.vecna.eu/gallery.html",
"name": "Shared gallery — Ghostmaxxing",
"description": "Moderated face-recognition camouflage results shared with consent by the Ghostmaxxing community.",
"inLanguage": "en",
"isPartOf": {
"@type": "WebSite",
"@id": "https://ghostmaxxing.vecna.eu/#website",
"url": "https://ghostmaxxing.vecna.eu/",
"name": "Ghostmaxxing"
},
"author": {
"@type": "Person",
"@id": "https://me.vecna.eu/#vecna",
"name": "Claudio Agosti",
"alternateName": "vecna",
"url": "https://me.vecna.eu/",
"sameAs": ["https://retro.pizza/@vecna", "https://sociale.network/@vecna" ]
},
"mainEntity": {
"@type": "ImageGallery",
"@id": "https://ghostmaxxing.vecna.eu/gallery.html#gallery",
"name": "Ghostmaxxing community gallery",
"description": "Moderated community camouflage results, ordered from newest to oldest.",
"url": "https://ghostmaxxing.vecna.eu/gallery.html",
"sameAs": "https://ghostmaxxing.vecna.eu/federation/actors/ghostyles-pictures"
}
}
</script>
<link rel="stylesheet" href="/styles/styles.css" />
<link rel="stylesheet" href="/styles/gallery.css" />
<link rel="stylesheet" href="/styles/beta-notice.css" />
<script defer src="/pages-js/nav.js"></script>
<script type="module" src="/pages-js/gallery.js"></script>
</head>
<body>
<div class="gm-beta" id="gmBeta" role="dialog" aria-modal="true"
aria-labelledby="gmBetaTitle">
<div class="gm-beta__tape">
<h1 class="gm-beta__title" id="gmBetaTitle">This page is beta
<small>Still in development · content may change</small>
</h1>
</div>
<button class="gm-beta__close" type="button" aria-label="Close the beta notice and continue to the page">
<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
<path d="M4 4 20 20 M20 4 4 20" />
</svg>
</button>
<p class="gm-beta__hint" aria-hidden="true">Continue anyway</p>
</div>
<script>
(function () {
var el = document.getElementById('gmBeta');
var KEY = 'gm-beta:' + window.location.pathname;
var dismissed = false;
try { dismissed = sessionStorage.getItem(KEY) === '1'; } catch (e) {}
if (dismissed) { el.remove(); return; }
function close() {
try { sessionStorage.setItem(KEY, '1'); } catch (e) {}
el.remove();
document.removeEventListener('keydown', onKey);
}
function onKey(e) { if (e.key === 'Escape') close(); }
el.querySelector('.gm-beta__close').addEventListener('click', close);
document.addEventListener('keydown', onKey);
el.querySelector('.gm-beta__close').focus({ preventScroll: true });
})();
</script>
<header class="gm-site-header">
<a class="gm-site-wordmark" href="/" aria-label="Ghostmaxxing homepage">
<img class="gm-site-wordmark__mark" src="/images/logo/mark-color.svg" width="40" height="40" alt aria-hidden="true" />
<span class="gm-site-wordmark__text"><span class="gm-site-wordmark__title">Ghostmaxxing</span><span class="gm-site-wordmark__sub">A public lab for testing camouflage</span></span>
</a>
<nav class="gm-site-nav" aria-label="Primary">
<a class="gm-site-chip" href="/fediverse.html">in the Fediverse</a>
<a class="gm-site-cta" href="/lab.html">Open the lab ↗</a>
</nav>
</header>
<main class="gallery-page">
<header class="gallery-hero">
<p class="gallery-kicker">Shared with consent</p>
<h1>Community gallery</h1>
<p class="gallery-lead">Moderated camouflage experiments published by the people who made them, ordered from newest to oldest.</p>
<div class="gallery-follow" id="gallery-follow" hidden>
<span>Follow every new picture on the Fediverse:</span>
<button type="button" id="gallery-copy-handle"></button>
<small id="gallery-followers"></small>
</div>
</header>
<p class="gallery-status" id="gallery-status" role="status">Loading the gallery…</p>
<button class="gallery-action" id="gallery-production-fallback" type="button" hidden>Click to pull from ghostmaxxing.vecna.eu</button>
<div class="gallery-list" id="gallery-list" aria-live="polite"></div>
<div class="gallery-more-wrap">
<button class="gallery-action" id="gallery-more" type="button" hidden>Load older</button>
</div>
</main>
</body>
</html>