Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
67786bdd19 |
14 changed files with 292 additions and 122 deletions
35
assets/css/pswp-gallery.css
Normal file
35
assets/css/pswp-gallery.css
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
.gallery {
|
||||||
|
float: none;
|
||||||
|
border: 1px solid lightgrey;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 0px 0px 10px 10px;
|
||||||
|
}
|
||||||
|
.gallery .title{
|
||||||
|
text-align: center;
|
||||||
|
clear:left;
|
||||||
|
//border-top: 1px solid lightgrey;
|
||||||
|
}
|
||||||
|
.gallery img {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
.gallery figure {
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
margin: 0 5px 5px 0;
|
||||||
|
}
|
||||||
|
.gallery figcaption {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
figcaption {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
span[itemprop="copyrightHolder"] {
|
||||||
|
color : #888;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
span[itemprop="copyrightHolder"]:before {
|
||||||
|
content: "Foto: ";
|
||||||
|
}
|
64
assets/js/pswp-init.js
Normal file
64
assets/js/pswp-init.js
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
Put this file in /static/js/pswp-init.js
|
||||||
|
*/
|
||||||
|
$( document ).ready(function() {
|
||||||
|
var items = []; // array of slide objects that will be passed to PhotoSwipe()
|
||||||
|
// for every figure element on the page:
|
||||||
|
$('figure').each( function() {
|
||||||
|
if ($(this).attr('class') == 'pswp-ignore') return true; // ignore any figures where class="pswp-ignore"
|
||||||
|
// get properties from child a/img/figcaption elements,
|
||||||
|
var $figure = $(this),
|
||||||
|
$a = $figure.find('a'),
|
||||||
|
$src = $a.attr('href'),
|
||||||
|
$title = $figure.find('figcaption').html(),
|
||||||
|
$msrc = $figure.find('img').attr('src');
|
||||||
|
// if data-size on <a> tag is set, read it and create an item
|
||||||
|
if ($a.data('size')) {
|
||||||
|
var $size = $a.data('size').split('x');
|
||||||
|
var item = {
|
||||||
|
src : $src,
|
||||||
|
w : $size[0],
|
||||||
|
h : $size[1],
|
||||||
|
title : $title,
|
||||||
|
msrc : $msrc
|
||||||
|
};
|
||||||
|
// if not, set temp default size then load the image to check actual size
|
||||||
|
} else {
|
||||||
|
var item = {
|
||||||
|
src : $src,
|
||||||
|
w : 800, // temp default size
|
||||||
|
h : 600, // temp default size
|
||||||
|
title : $title,
|
||||||
|
msrc : $msrc
|
||||||
|
};
|
||||||
|
// load the image to check its dimensions
|
||||||
|
// update the item as soon as w and h are known (check every 30ms)
|
||||||
|
var img = new Image();
|
||||||
|
img.src = $src;
|
||||||
|
var wait = setInterval(function() {
|
||||||
|
var w = img.naturalWidth,
|
||||||
|
h = img.naturalHeight;
|
||||||
|
if (w && h) {
|
||||||
|
clearInterval(wait);
|
||||||
|
item.w = w;
|
||||||
|
item.h = h;
|
||||||
|
}
|
||||||
|
}, 30);
|
||||||
|
}
|
||||||
|
// Save the index of this image then add it to the array
|
||||||
|
var index = items.length;
|
||||||
|
items.push(item);
|
||||||
|
// Event handler for click on a figure
|
||||||
|
$figure.on('click', function(event) {
|
||||||
|
event.preventDefault(); // prevent the normal behaviour i.e. load the <a> hyperlink
|
||||||
|
// Get the PSWP element and initialise it with the desired options
|
||||||
|
var $pswp = $('.pswp')[0];
|
||||||
|
var options = {
|
||||||
|
index: index,
|
||||||
|
bgOpacity: 0.8,
|
||||||
|
showHideOpacity: true
|
||||||
|
}
|
||||||
|
new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options).init();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -38,6 +38,10 @@ and PDF files of the links too.
|
||||||
[opengist](https://gist.oe7drt.net/)
|
[opengist](https://gist.oe7drt.net/)
|
||||||
: Selfhosted version of Github gists where I save some random snippets.
|
: Selfhosted version of Github gists where I save some random snippets.
|
||||||
|
|
||||||
|
[LibreTranslate](https://translate.oe7drt.net/)
|
||||||
|
: I was testing Mastodon again (this time on my local server at home) in a virtual machine.
|
||||||
|
Within that I created another user that runs an instance of LibreTranslate.
|
||||||
|
|
||||||
[Mastodon](https://social.oe7drt.net/)
|
[Mastodon](https://social.oe7drt.net/)
|
||||||
: I do some testing on this private instance every now and then and if you need an instance
|
: I do some testing on this private instance every now and then and if you need an instance
|
||||||
to test out a few things feel free to create users over there. It is currently subscribed
|
to test out a few things feel free to create users over there. It is currently subscribed
|
||||||
|
|
|
@ -82,17 +82,6 @@ to reboot without su
|
||||||
|
|
||||||
/etc/polkit-1/rules.d/49-nopasswd_global.rules
|
/etc/polkit-1/rules.d/49-nopasswd_global.rules
|
||||||
|
|
||||||
```
|
|
||||||
/* Allow members of the wheel group to execute any actions
|
|
||||||
* without password authentication, similar to "sudo NOPASSWD:"
|
|
||||||
*/
|
|
||||||
polkit.addRule(function(action, subject) {
|
|
||||||
if (subject.isInGroup("wheel")) {
|
|
||||||
return polkit.Result.YES;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
### passwordless ssh login
|
### passwordless ssh login
|
||||||
|
|
||||||
ssh-add -L > .ssh/authorized_keys
|
ssh-add -L > .ssh/authorized_keys
|
||||||
|
@ -115,8 +104,6 @@ can also be done on most installation media that use grub by hitting
|
||||||
|
|
||||||
### Wine
|
### Wine
|
||||||
|
|
||||||
#### Default (Arch)
|
|
||||||
|
|
||||||
Windows tools will require wine, so we install this right now
|
Windows tools will require wine, so we install this right now
|
||||||
|
|
||||||
paru -S wine
|
paru -S wine
|
||||||
|
@ -145,18 +132,14 @@ winetricks -q allfonts
|
||||||
|
|
||||||
adding some .NET frameworks we will mostly use/need
|
adding some .NET frameworks we will mostly use/need
|
||||||
|
|
||||||
```
|
|
||||||
winetricks -q dotnet35sp1
|
winetricks -q dotnet35sp1
|
||||||
winetricks vb6run
|
winetricks vb6run
|
||||||
winetricks vcrun2015
|
winetricks vcrun2015
|
||||||
```
|
|
||||||
|
|
||||||
optional if errors
|
optional if errors
|
||||||
|
|
||||||
```
|
|
||||||
winetricks -q dotnet40
|
winetricks -q dotnet40
|
||||||
winetricks -q dotnet46
|
winetricks -q dotnet46
|
||||||
```
|
|
||||||
|
|
||||||
registering notepad.exe as default application for logfiles
|
registering notepad.exe as default application for logfiles
|
||||||
|
|
||||||
|
@ -164,18 +147,6 @@ create a backup of the wine installation
|
||||||
|
|
||||||
tar -cJf wine-backup\_$(date +%Y-%m-%d-%H-%M-%S)\_initial-setup.tar.xz .wine-winlink
|
tar -cJf wine-backup\_$(date +%Y-%m-%d-%H-%M-%S)\_initial-setup.tar.xz .wine-winlink
|
||||||
|
|
||||||
#### Debian
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo dpkg --add-architecture i386
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install wine wine32 fonts-wine
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt install gcc-multilib g++-multilib
|
|
||||||
```
|
|
||||||
|
|
||||||
### VARA tools
|
### VARA tools
|
||||||
|
|
||||||
vara hf, vara fm
|
vara hf, vara fm
|
||||||
|
|
|
@ -23,6 +23,8 @@ tags:
|
||||||
- Winlink
|
- Winlink
|
||||||
---
|
---
|
||||||
|
|
||||||
|
{{< pswp-init >}}
|
||||||
|
|
||||||
So I recently sold my iPhone 14 Pro and bought a Google Pixel 9 Pro. I used that for
|
So I recently sold my iPhone 14 Pro and bought a Google Pixel 9 Pro. I used that for
|
||||||
about two weeks when I finally replaced the vanilla Android with [GrapheneOS](https://grapheneos.org/).
|
about two weeks when I finally replaced the vanilla Android with [GrapheneOS](https://grapheneos.org/).
|
||||||
|
|
||||||
|
@ -35,6 +37,10 @@ I assume the app is all set up with basic information like CALLSIGN, Grid, etc.
|
||||||
|
|
||||||
## Packet connection
|
## Packet connection
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
I love simple and small configurations (mostly) and this one is really small.
|
I love simple and small configurations (mostly) and this one is really small.
|
||||||
When I'm out hiking I usually have an <abbr title="handheld transceiver">HT</abbr>
|
When I'm out hiking I usually have an <abbr title="handheld transceiver">HT</abbr>
|
||||||
with me -- usually an Icom ID-52. Together with a Mobilinkd
|
with me -- usually an Icom ID-52. Together with a Mobilinkd
|
||||||
|
|
BIN
content/posts/2025/75-winlink-on-android-with-woad/test/session.packet.1.png
(Stored with Git LFS)
Normal file
BIN
content/posts/2025/75-winlink-on-android-with-woad/test/session.packet.1.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/posts/2025/75-winlink-on-android-with-woad/test/session.packet.2.png
(Stored with Git LFS)
Normal file
BIN
content/posts/2025/75-winlink-on-android-with-woad/test/session.packet.2.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
content/posts/2025/75-winlink-on-android-with-woad/test/session.packet.3.png
(Stored with Git LFS)
Normal file
BIN
content/posts/2025/75-winlink-on-android-with-woad/test/session.packet.3.png
(Stored with Git LFS)
Normal file
Binary file not shown.
21
gmid.conf
21
gmid.conf
|
@ -1,21 +0,0 @@
|
||||||
# create certs for localhost
|
|
||||||
# openssl req -x509 -newkey rsa:4096 -nodes -keyout gmid.key \
|
|
||||||
# -out gmid.pem -days 365 -subj "/CN=localhost"
|
|
||||||
|
|
||||||
protocols "tlsv1.3"
|
|
||||||
|
|
||||||
types {
|
|
||||||
# include "/usr/share/misc/mime.types"
|
|
||||||
include "/usr/share/doc/gmid/mime.types"
|
|
||||||
}
|
|
||||||
|
|
||||||
server "localhost" {
|
|
||||||
listen on * port 1965
|
|
||||||
|
|
||||||
cert "/home/dominic/sites/oe7drt-website/gmid.pem"
|
|
||||||
key "/home/dominic/sites/oe7drt-website/gmid.key"
|
|
||||||
# root "/srv/sites/oe7drt-gemini"
|
|
||||||
root "/home/dominic/sites/oe7drt-website/public"
|
|
||||||
|
|
||||||
lang "en"
|
|
||||||
}
|
|
|
@ -1,75 +1,16 @@
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div>
|
<div>
|
||||||
<p class="text-xs text-neutral-500 dark:text-neutral-400">
|
<p class="text-xs text-neutral-500 dark:text-neutral-400">
|
||||||
Served> with
|
Served> with <a
|
||||||
<a
|
class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="https://archlinux.org/"
|
||||||
class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
target="_blank" rel="noopener noreferrer">Arch Linux</a> and <a
|
||||||
href="https://archlinux.org/"
|
class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="https://httpd.apache.org/"
|
||||||
target="_blank"
|
target="_blank" rel="noopener noreferrer">Apache httpd</a> ┊
|
||||||
rel="noopener noreferrer"
|
<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="/feed.xml"
|
||||||
>Arch Linux</a
|
target="_blank" rel="noopener">Atom feed</a> ┊
|
||||||
>
|
<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="/feed.json"
|
||||||
and
|
target="_blank" rel="noopener">Json feed</a>
|
||||||
<a
|
</p>
|
||||||
class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
</div>
|
||||||
href="https://httpd.apache.org/"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>Apache httpd</a
|
|
||||||
>
|
|
||||||
┊
|
|
||||||
<a
|
|
||||||
class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
|
||||||
href="/feed.xml"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>Atom feed</a
|
|
||||||
>
|
|
||||||
┊
|
|
||||||
<a
|
|
||||||
class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
|
||||||
href="/feed.json"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>Json feed</a
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ with resources.Get "js/lightbox.js" }} {{ if hugo.IsDevelopment }} {{ with .
|
|
||||||
| js.Build }}
|
|
||||||
<script
|
|
||||||
defer
|
|
||||||
type="text/javascript"
|
|
||||||
src="{{ .RelPermalink }}"
|
|
||||||
data-copy="Copy"
|
|
||||||
data-copied="Copied"
|
|
||||||
></script>
|
|
||||||
{{ end }} {{ else }} {{ $opts := (dict "minify" true "targetPath"
|
|
||||||
"js/lightbox.js") }} {{ with . | js.Build $opts | fingerprint }}
|
|
||||||
<script
|
|
||||||
defer
|
|
||||||
type="text/javascript"
|
|
||||||
src="{{ .RelPermalink }}"
|
|
||||||
data-copy="Copy"
|
|
||||||
data-copied="Copied"
|
|
||||||
integrity="{{ .Data.Integrity }}"
|
|
||||||
></script>
|
|
||||||
{{ end }} {{ end }} {{ end }} {{ with resources.Get "css/lightbox.css" }} {{ if
|
|
||||||
hugo.IsDevelopment }} {{ with . }}
|
|
||||||
<link
|
|
||||||
type="text/css"
|
|
||||||
rel="stylesheet"
|
|
||||||
media="screen,print"
|
|
||||||
href="{{ .RelPermalink }}"
|
|
||||||
/>
|
|
||||||
{{ end }} {{ else }} {{ with . | fingerprint }}
|
|
||||||
<link
|
|
||||||
type="text/css"
|
|
||||||
rel="stylesheet"
|
|
||||||
media="screen,print"
|
|
||||||
href="{{ .RelPermalink }}"
|
|
||||||
integrity="{{ .Data.Integrity }}"
|
|
||||||
/>
|
|
||||||
{{ end }} {{ end }} {{ end }}
|
|
||||||
|
|
|
@ -2,6 +2,48 @@
|
||||||
"plausible_head.html" . }} {{- end }}
|
"plausible_head.html" . }} {{- end }}
|
||||||
<meta name="fediverse:creator" content="@oe7drt@mastodon.radio" />
|
<meta name="fediverse:creator" content="@oe7drt@mastodon.radio" />
|
||||||
|
|
||||||
|
<script
|
||||||
|
src="https://code.jquery.com/jquery-1.12.4.min.js"
|
||||||
|
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
{{ with resources.Get "js/pswp-init.js" }} {{ if hugo.IsDevelopment }} {{ with .
|
||||||
|
| js.Build }}
|
||||||
|
<script
|
||||||
|
defer
|
||||||
|
type="text/javascript"
|
||||||
|
src="{{ .RelPermalink }}"
|
||||||
|
data-copy="Copy"
|
||||||
|
data-copied="Copied"
|
||||||
|
></script>
|
||||||
|
{{ end }} {{ else }} {{ $opts := (dict "minify" true "targetPath"
|
||||||
|
"js/pswp-init.js") }} {{ with . | js.Build $opts | fingerprint }}
|
||||||
|
<script
|
||||||
|
defer
|
||||||
|
type="text/javascript"
|
||||||
|
src="{{ .RelPermalink }}"
|
||||||
|
data-copy="Copy"
|
||||||
|
data-copied="Copied"
|
||||||
|
integrity="{{ .Data.Integrity }}"
|
||||||
|
></script>
|
||||||
|
{{ end }} {{ end }} {{ end }} {{ with resources.Get "css/pswp-gallery.css" }} {{
|
||||||
|
if hugo.IsDevelopment }} {{ with . }}
|
||||||
|
<link
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
media="screen,print"
|
||||||
|
href="{{ .RelPermalink }}"
|
||||||
|
/>
|
||||||
|
{{ end }} {{ else }} {{ with . | fingerprint }}
|
||||||
|
<link
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
media="screen,print"
|
||||||
|
href="{{ .RelPermalink }}"
|
||||||
|
integrity="{{ .Data.Integrity }}"
|
||||||
|
/>
|
||||||
|
{{ end }} {{ end }} {{ end }}
|
||||||
|
|
||||||
<meta
|
<meta
|
||||||
http-equiv="onion-location"
|
http-equiv="onion-location"
|
||||||
content="http://5uxkejb6la7olhncaotybxrscmdlbxwy64ucuyrum4tsgfuoxbyav2qd.onion"
|
content="http://5uxkejb6la7olhncaotybxrscmdlbxwy64ucuyrum4tsgfuoxbyav2qd.onion"
|
||||||
|
|
24
layouts/shortcodes/figure.html
Normal file
24
layouts/shortcodes/figure.html
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<!--
|
||||||
|
Put this file in /layouts/shortcodes/figure.html
|
||||||
|
NB this overrides Hugo's built-in "figure" shortcode but is backwards compatible
|
||||||
|
-->
|
||||||
|
|
||||||
|
<figure {{ with .Get "class" }}class="{{.}}"{{ end }} itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
|
||||||
|
<a href="{{ with .Get "link" }}{{.}}{{ else }}{{ .Get "src" }}{{ end }}" {{ with .Get "size" }}data-size="{{.}}"{{ end }} itemprop="contentUrl">
|
||||||
|
<img itemprop="thumbnail"
|
||||||
|
src="{{ with .Get "src" }}{{.}}{{ else }}{{ printf "%s." (.Get "thumb") | replace (.Get "link") "." }}{{ end }}"
|
||||||
|
{{ if or (.Get "alt") (.Get "caption") }}alt="{{ with .Get "alt" }}{{.}}{{else}}{{ .Get "caption" }}{{ end }}"{{ end }}
|
||||||
|
{{ with .Get "width" }}width="{{.}}"{{ end }}/>
|
||||||
|
</a>
|
||||||
|
{{ if or (or (.Get "title") (.Get "caption")) (.Get "attr")}}
|
||||||
|
<figcaption>
|
||||||
|
{{ with .Get "title" }}<h4>{{.}}</h4>{{ end }}
|
||||||
|
{{ if or (.Get "caption") (.Get "attr")}}
|
||||||
|
<p>
|
||||||
|
{{ .Get "caption" }}
|
||||||
|
{{ with .Get "attrlink"}}<a href="{{.}}">{{ .Get "attr" }}</a>{{ else }}{{ .Get "attr"}}{{ end }}
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
</figcaption>
|
||||||
|
{{ end }}
|
||||||
|
</figure>
|
7
layouts/shortcodes/gallery.html
Normal file
7
layouts/shortcodes/gallery.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<!--
|
||||||
|
Put this file in /layouts/shortcodes/gallery.html
|
||||||
|
-->
|
||||||
|
<div class="gallery" itemscope itemtype="http://schema.org/ImageGallery">
|
||||||
|
{{ .Inner }}
|
||||||
|
<div class="title">{{ .Get "title" }}</div>
|
||||||
|
</div>
|
88
layouts/shortcodes/pswp-init.html
Normal file
88
layouts/shortcodes/pswp-init.html
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
<!--
|
||||||
|
Put this file in /layouts/shortcodes/pswp-init.html
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Photoswipe css/js libraries -->
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.css"
|
||||||
|
integrity="sha256-sCl5PUOGMLfFYctzDW3MtRib0ctyUvI9Qsmq2wXOeBY="
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/default-skin/default-skin.min.css"
|
||||||
|
integrity="sha256-BFeI1V+Vh1Rk37wswuOYn5lsTcaU96hGaI7OUVCLjPc="
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.js"
|
||||||
|
integrity="sha256-UplRCs9v4KXVJvVY+p+RSo5Q4ilAUXh7kpjyIP5odyc="
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
<script
|
||||||
|
src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe-ui-default.min.js"
|
||||||
|
integrity="sha256-PWHOlUzc96pMc8ThwRIXPn8yH4NOLu42RQ0b9SpnpFk="
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
<!-- Root element of PhotoSwipe. Must have class pswp. -->
|
||||||
|
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
|
<!-- Background of PhotoSwipe.
|
||||||
|
It's a separate element, as animating opacity is faster than rgba(). -->
|
||||||
|
<div class="pswp__bg"></div>
|
||||||
|
<!-- Slides wrapper with overflow:hidden. -->
|
||||||
|
<div class="pswp__scroll-wrap">
|
||||||
|
<!-- Container that holds slides.
|
||||||
|
PhotoSwipe keeps only 3 of them in DOM to save memory.
|
||||||
|
Don't modify these 3 pswp__item elements, data is added later on. -->
|
||||||
|
<div class="pswp__container">
|
||||||
|
<div class="pswp__item"></div>
|
||||||
|
<div class="pswp__item"></div>
|
||||||
|
<div class="pswp__item"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
|
||||||
|
<div class="pswp__ui pswp__ui--hidden">
|
||||||
|
<div class="pswp__top-bar">
|
||||||
|
<!-- Controls are self-explanatory. Order can be changed. -->
|
||||||
|
<div class="pswp__counter"></div>
|
||||||
|
<button
|
||||||
|
class="pswp__button pswp__button--close"
|
||||||
|
title="Close (Esc)"
|
||||||
|
></button>
|
||||||
|
<button class="pswp__button pswp__button--share" title="Share"></button>
|
||||||
|
<button
|
||||||
|
class="pswp__button pswp__button--fs"
|
||||||
|
title="Toggle fullscreen"
|
||||||
|
></button>
|
||||||
|
<button
|
||||||
|
class="pswp__button pswp__button--zoom"
|
||||||
|
title="Zoom in/out"
|
||||||
|
></button>
|
||||||
|
<!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
|
||||||
|
<!-- element will get class pswp__preloader--active when preloader is running -->
|
||||||
|
<div class="pswp__preloader">
|
||||||
|
<div class="pswp__preloader__icn">
|
||||||
|
<div class="pswp__preloader__cut">
|
||||||
|
<div class="pswp__preloader__donut"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
|
||||||
|
<div class="pswp__share-tooltip"></div>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
class="pswp__button pswp__button--arrow--left"
|
||||||
|
title="Previous (arrow left)"
|
||||||
|
></button>
|
||||||
|
<button
|
||||||
|
class="pswp__button pswp__button--arrow--right"
|
||||||
|
title="Next (arrow right)"
|
||||||
|
></button>
|
||||||
|
<div class="pswp__caption">
|
||||||
|
<div class="pswp__caption__center"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Add table
Reference in a new issue