Compare commits
30 commits
developmen
...
awareness-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5ecb46fbb | ||
|
|
0ea4145fc5 | ||
|
|
4f0ca74ba6 | ||
|
|
9b05e47f49 | ||
|
|
8f400ef0f6 | ||
|
|
d48a93858f | ||
|
|
88f7e47ddf | ||
|
|
a049543f92 | ||
|
|
8c5ca3b96f | ||
|
|
ad70ec26e4 | ||
|
|
28280e7cb9 | ||
|
|
dd97ec15f8 | ||
|
|
7e4ecff075 | ||
|
|
83d669055b | ||
|
|
dca2011e30 | ||
|
|
710aa4c021 | ||
|
|
9d976a51ad | ||
|
|
94e3a5d7d9 | ||
|
|
7418827ddc | ||
|
|
1bc797f880 | ||
|
|
ad016fde52 | ||
|
|
68c9552e4d | ||
|
|
886c89b7bf | ||
|
|
462d5997a8 | ||
|
|
d7bad1258d | ||
|
|
48c5290b60 | ||
|
|
469ee75203 | ||
|
|
83784ddcda | ||
|
|
c8f63f826d | ||
|
|
e51df7b9d1 |
3
.gitignore
vendored
|
|
@ -11,6 +11,3 @@ hugo.linux
|
|||
|
||||
# Temporary lock file while building
|
||||
/.hugo_build.lock
|
||||
|
||||
/node_modules/
|
||||
package-lock.json
|
||||
|
|
|
|||
10
README.md
|
|
@ -8,15 +8,9 @@ git clone https://git.0x90.space/0x90/quellcode.0x90.space
|
|||
|
||||
cd quellcode.0x90.space/
|
||||
|
||||
npm install
|
||||
|
||||
npm run start
|
||||
hugo server
|
||||
```
|
||||
|
||||
This opens a server at http://localhost:1313/,
|
||||
where you can preview the website.
|
||||
It refreshes automatically.
|
||||
|
||||
## Deployment
|
||||
|
||||
Assuming you are in the root directory of this repository, and you have cloned
|
||||
|
|
@ -25,7 +19,7 @@ deploy the website with:
|
|||
|
||||
```
|
||||
# build website
|
||||
npm run build
|
||||
hugo
|
||||
cd ../0x90-ansible/
|
||||
# create ssh_config (only necessary once)
|
||||
ansible-playbook -i inventory -t init site.yml
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 206 KiB |
BIN
assets/images/logo_peaceful_plus_text.png
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 43 KiB |
87
config.yml
|
|
@ -1,4 +1,4 @@
|
|||
baseURL: https://quellcode.0x90.space/2025/
|
||||
baseURL: https://quellcode.0x90.space/
|
||||
languageCode: de
|
||||
defaultContentLanguage: de
|
||||
title: Quellcode
|
||||
|
|
@ -7,79 +7,80 @@ theme: PaperMod
|
|||
enableEmoji: true
|
||||
enableRobotsTXT: true
|
||||
|
||||
markup:
|
||||
goldmark:
|
||||
renderer:
|
||||
unsafe: true
|
||||
|
||||
languages:
|
||||
de:
|
||||
languageName: de
|
||||
languageAltTitle: Deutsch
|
||||
params:
|
||||
homeInfoParams:
|
||||
Title: QueIIcode Return of DIY 26.9 - 28.9.2025, Heizhaus Nürnberg
|
||||
Title: Quellcode 16.9 - 17.9.2023, Heizhaus Nürnberg
|
||||
Content: |
|
||||
Alles Wichtige auf einen Blick:
|
||||
>
|
||||
> > Das Quellcode geht in die zweite Runde! Es ist ein Event des Nürnberger Hackspaces [0x90.space](https://0x90.space/). Alle Menschen sind herzlich eingeladen sich bei Vorträgen, Workshops oder einfach so mit Menschen aus Hackspaces und Künstler*innen auszutauschen und neue Dinge auszuprobieren.
|
||||
> - Wann? 26.9 - 28.9.2025
|
||||
> > Das Quellcode ist ein Event des Nürnberger Hackspaces [0x90.space](https://0x90.space/). Alle Menschen sind herzlich eingeladen sich bei Vorträgen, Workshops oder einfach so mit Menschen aus Hackspaces und Künstler*innen auszutauschen und neue Dinge auszuprobieren.
|
||||
> - Wann? 16.9 - 17.9.2023
|
||||
> - Wo? [Heizhaus Nürnberg](https://heizhaus.org/) ([Wandererstr. 89c, 90431 Nürnberg](https://osm.org/go/0D6zlBi~x-?way=37685652))
|
||||
> - Element/Matrix-Kanal: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
> - Anmeldungsformular (Teilnehmende, freiwillig): [Anmeldeformular](https://cryptpad.fr/form/#/2/form/view/qv48AVyeLO4-l9uIuTOeNdM7sGFR-zfTilvA8sX3-BY/)
|
||||
> - Reiche einen Workshop oder Vortrag ein: [Einreichungsformular (offen bis zum 26.08.2023 00:00 CEST)](https://cryptpad.fr/form/#/2/form/view/KR2e9HvcShTc4RWnd+81jEEey8djEfu3f1dHROAO490/)
|
||||
> - Matrix-Kanal: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
> - DECT: Bringt euer DECT mit! Weitere Infos folgen. Danke an die [Arbeitsgruppe DECT-Experimente](https://dect.network/) und die [Binary Kitchen aus Regensburg](https://www.binary-kitchen.de)
|
||||
> - Weitere [Kontaktmöglichkeiten](/posts/contact)
|
||||
menu:
|
||||
main:
|
||||
- name: Kontakt
|
||||
url: posts/contact
|
||||
weight: 1000
|
||||
- name: Awareness
|
||||
url: posts/awareness
|
||||
weight: 50
|
||||
- name: Mithelfen
|
||||
url: https://pad.riseup.net/p/quellcode-schichten
|
||||
weight: 40
|
||||
- name: Anmeldung
|
||||
url: https://cryptpad.fr/form/#/2/form/view/ZeSZeBDGG7bdZZrkiPVveyCI1unDJocr-GTISXeMVLY/
|
||||
weight: 30
|
||||
- name: Über
|
||||
url: /posts/helloworld
|
||||
weight: 1
|
||||
- name: Programm
|
||||
url: https://pretalx.0x90.space/quellcode-2/schedule/
|
||||
url: /posts/program
|
||||
weight: 10
|
||||
- name: Anmeldung
|
||||
url: /posts/registration
|
||||
weight: 20
|
||||
- name: FAQ
|
||||
url: /posts/faq
|
||||
weight: 1000
|
||||
- name: Kontakt
|
||||
url: /posts/contact
|
||||
weight: 1000
|
||||
en:
|
||||
languageName: en
|
||||
languageAltTitle: English
|
||||
params:
|
||||
homeInfoParams:
|
||||
Title: QueIIcode Return of DIY 26.9 - 28.9.2025, Heizhaus Nürnberg
|
||||
Title: Quellcode 16.9 - 17.9.2023, Heizhaus Nürnberg
|
||||
Content: |
|
||||
tldr;
|
||||
>
|
||||
> > Quellcode goes into the Next Round! It is an event of the Nuremberg Hackspace [0x90.space](https://0x90.space/). All people are invited to exchange ideas and try out new things with people from hackspaces and artists during talks, workshops or just for fun.
|
||||
> - When? 26.9 - 28.9.2025
|
||||
> > Quellcode is an event of the Nuremberg Hackspace [0x90.space](https://0x90.space/). All people are invited to exchange ideas and try out new things with people from hackspaces and artists during talks, workshops or just for fun.
|
||||
> - When? 16.9 - 17.9.2023
|
||||
> - Where? [Heizhaus Nürnberg](https://heizhaus.org/) ([Wandererstr. 89c, 90431 Nürnberg](https://osm.org/go/0D6zlBi~x-?way=37685652))
|
||||
> - Element/Matrix Channel: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
> - Registration form (Participants, voluntary): [Registration form](https://cryptpad.fr/form/#/2/form/view/qv48AVyeLO4-l9uIuTOeNdM7sGFR-zfTilvA8sX3-BY/)
|
||||
> - Submit a workshop or talk: [Submission form (open until 08/26/2023 00:00 CEST)](https://cryptpad.fr/form/#/2/form/view/KR2e9HvcShTc4RWnd+81jEEey8djEfu3f1dHROAO490/)
|
||||
> - Matrix Channel: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
> - DECT: We will have DECT, so bring your phone! More infos coming soon. Thanks to the [Arbeitsgruppe DECT-Experimente](https://dect.network/) and [Binary Kitchen from Regensburg](https://www.binary-kitchen.de)
|
||||
> - Other [Contacts](/posts/contact)
|
||||
menu:
|
||||
main:
|
||||
- name: Contact
|
||||
url: posts/contact
|
||||
weight: 1000
|
||||
- name: Awareness
|
||||
url: posts/awareness
|
||||
weight: 50
|
||||
- name: Contribute
|
||||
url: https://pad.riseup.net/p/quellcode-schichten
|
||||
weight: 40
|
||||
- name: Registration
|
||||
url: https://cryptpad.fr/form/#/2/form/view/ZeSZeBDGG7bdZZrkiPVveyCI1unDJocr-GTISXeMVLY/
|
||||
weight: 30
|
||||
- name: Schedule
|
||||
url: https://pretalx.0x90.space/quellcode-2/schedule/
|
||||
- name: About
|
||||
url: /posts/helloworld
|
||||
weight: 1
|
||||
- name: Program
|
||||
url: /posts/program
|
||||
weight: 10
|
||||
- name: Register
|
||||
url: /posts/registration
|
||||
weight: 20
|
||||
- name: FAQ
|
||||
url: /posts/faq
|
||||
weight: 900
|
||||
- name: Contact
|
||||
url: /posts/contact
|
||||
weight: 1000
|
||||
|
||||
params:
|
||||
label:
|
||||
icon: images/queIIcode-logo2.png
|
||||
iconHeight: 200
|
||||
icon: images/logo_peaceful_plus_text.png
|
||||
iconHeight: 120
|
||||
socialIcons:
|
||||
- name: email
|
||||
url: "mailto:people@schleuder.0x90.space"
|
||||
|
|
|
|||
|
|
@ -1,116 +1,99 @@
|
|||
---
|
||||
title: "Awareness- & Sauna Concept"
|
||||
date: "2025-08-30"
|
||||
---
|
||||
*This page was machine-translated*
|
||||
|
||||
Awareness is when we work together
|
||||
to ensure that everyone is doing well
|
||||
and has a good space to learn.
|
||||
This space should be free of discrimination –
|
||||
none of us are perfect,
|
||||
but let's at least try to be mindful of each other.
|
||||
# Awareness
|
||||
|
||||
Instead of rigid rules of conduct,
|
||||
it is important to make sure
|
||||
that everyone feels comfortable
|
||||
with how we interact with each other.
|
||||
A few examples:
|
||||
You can contact the awareness team if you have experienced discrimination or harassment,
|
||||
want to deal with conflicts or emotions or simply need someone to talk to. The team members will listen to you
|
||||
and, if necessary, consider with you what possible courses of action are available.
|
||||
|
||||
- If other people ask
|
||||
that you refer to them using specific pronouns (he/him, she/her, they/them, etc.),
|
||||
then you should respect that.
|
||||
Example sentence: ‘They left their mobile phone at my place, I'll have to give it back to them.’
|
||||
- If you notice
|
||||
that your explanations on a technical topic are getting very long-winded
|
||||
and everyone else in the group seems distracted,
|
||||
it might be time to let someone else speak.
|
||||
Why not ask a question?
|
||||
- If you want to smoke,
|
||||
it's best to ask those around you beforehand
|
||||
if the smell of smoke bothers them;
|
||||
if not, great.
|
||||
Otherwise, perhaps stand 2-3 metres away.
|
||||
- Be considerate when consuming other drugs (e.g. alcohol)
|
||||
and only do so if you are sure
|
||||
that everyone is currently fine with your consumption.
|
||||
And even if you are intoxicated,
|
||||
be mindful of how you handle it and of other people's boundaries.
|
||||
- Don't take photos of other people without asking them.
|
||||
- If someone asks you
|
||||
to put your T-shirt back on,
|
||||
please do so without argument.
|
||||
The area for nudity is around the sauna.
|
||||
- And if you are unsure about other things,
|
||||
such as how to behave,
|
||||
perhaps just ask.
|
||||
- Tip: only ask if you can handle a no – otherwise, it's better to leave it from the outset.
|
||||
## Contact
|
||||
|
||||
We have a quiet room where people can retreat to
|
||||
if they need some time to themselves.
|
||||
Talk to the contact persons (see below) if you need it.
|
||||
* Phone: tba
|
||||
* Email: awareness@schleuder.0x90.space
|
||||
* DECT: tba
|
||||
|
||||
## Sauna
|
||||
To write to us by encrypted email, there is [this PGP key](/assets/awareness@schleuder.0x90.space.asc) with the following fingerprint:
|
||||
|
||||
There is also a sauna in the backyard
|
||||
which will be started around 5 PM:
|
||||
```
|
||||
E928 D522 45B2 8FDA 88EF 93F9 513D F0F2 8DB4 FD8B
|
||||
```
|
||||
On-site, we respond to calls via phone or DECT the fastest.
|
||||
Outside of events, you can reach us by email, however, our
|
||||
capacities are limited there.
|
||||
|
||||
- Please take a rapid covid-19 test before using it (at least on the same day).
|
||||
- Please bring a towel, we can't promise that we have enough for everyone.
|
||||
- Please do not smoke in the sauna (including weed), and leave it as clean as you found it.
|
||||
Please do not enter the sauna and chill-out area with your shoes on.
|
||||
- Be mindful not to stare at others; reflect on your behaviour.
|
||||
The sauna should be a place of relaxation for everyone.
|
||||
- The sauna costs us about €5 per hour in electricity,
|
||||
so please leave a donation.
|
||||
## About us
|
||||
|
||||
## Contact persons
|
||||
At a Chaos Event many people will come together. These have
|
||||
different needs and are in their acting, feeling and thinking different and unique.
|
||||
|
||||
At Quellcode, there are also two or three trusted persons
|
||||
whom you can approach or write to in the chat
|
||||
if you need someone to talk to:
|
||||
Considerate behavior among each other and the respect of personal boundaries
|
||||
should be guaranteed course, but even at the event, situations can arise in which people
|
||||
situations may arise at the event in which people are belittled or discriminated against.
|
||||
Harassment, sexism, racism, homophobia, bi- and transphobia,
|
||||
Ableism (discrimination against disabled people),
|
||||
anti-Semitism, anti-gypsyism and classism (discrimination against poor or socioeconomically
|
||||
disadvantaged people) are not okay, even if they happen
|
||||
unintentionally.
|
||||
|
||||
- If someone else has behaved inappropriately or discriminatorily towards you,
|
||||
you can tell a contact person
|
||||
what you need at that moment.
|
||||
- This could mean, for example,
|
||||
that the contact person
|
||||
talks to the person in question
|
||||
(in your presence or not)
|
||||
and tells them that their behaviour was not okay;
|
||||
that the person should make sure to stay away from you;
|
||||
or that they are sent home.
|
||||
- What you tell the contact person
|
||||
will be kept confidential,
|
||||
if you wish.
|
||||
- The contact persons have boundaries as well,
|
||||
and might not do everything you want from them;
|
||||
but they will not take any steps against your will.
|
||||
## What is Awareness?
|
||||
|
||||
On site, we respond to calls **until midnight**, via telephone or DECT the fastest.
|
||||
Before and after that, you can reach us by email,
|
||||
but our capacity is limited.
|
||||
Awareness work means sensitizing people to pay attention to themselves and others - especially to those who do not conform to social expectations. Discrimination and violations of personal boundaries are often unnoticed by the perpetrators, but very well known to the victims. Since the needs of those affected often remain invisible, we want to give them special support in taking these needs seriously and asserting them. Even what others may call "supposed trivialities" or try to explain away can hurt and affect and are therefore worth addressing.
|
||||
|
||||
- Phone: +4915781835716
|
||||
- E-Mail: <awareness@schleuder.0x90.space>
|
||||
- To reach us encrypted,
|
||||
you can use our [PGP Key](https://quellcode.0x90.space/assets/awareness@schleuder.0x90.space.asc)
|
||||
with the fingerprint: E928 D522 45B2 8FDA 88EF 93F9 513D F0F2 8DB4 FD8B
|
||||
- DECT: 113
|
||||
An important part of awareness is recognizing who has the right to define a transgression: Whether their own boundaries have been crossed is always decided exclusively by the person affected. Otherwise, the majority society often assumes the right to decide who is discriminated against and who is not. It is important to us that people who are otherwise not heard or taken seriously are also noticed.
|
||||
|
||||
## Help out
|
||||
For us, this means: on the one hand, we support those affected to process situations they have experienced themselves. We offer a place for confidential discussions. We listen and, if necessary, help them to develop ways of dealing with the situation and thus strengthen their ability to act.
|
||||
|
||||
We are still looking for people who volunteer as contact persons during the Quellcode.
|
||||
Please send an email to
|
||||
<awareness@schleuder.0x90.space> if you are interested.
|
||||
On the other hand, if requested, we communicate with the persons from whom discrimination and transgressive behavior originates or originated. The goal here is the aforementioned awareness: to generate understanding and awareness of how and why one's own behavior has violated another person's boundaries. We confront the assaultive or violating behavior, not the person. The goal is to take responsibility for one's own behavior.
|
||||
|
||||
What we expect from interested people:
|
||||
When dealing with conflict, we are also available for moderation or accompaniment.
|
||||
|
||||
- Self-awareness and reflection (you know yourself and your limits)
|
||||
- Self-organisation and reliability
|
||||
- Teamwork and conflict management skills
|
||||
## How we work
|
||||
|
||||
The awareness team is there to help you especially when:
|
||||
|
||||
- your personal boundaries have been crossed,
|
||||
- you have been harassed or discriminated against,
|
||||
- you witness or experience (personal or structural) discrimination,
|
||||
- you feel uncomfortable and need a person to talk to.
|
||||
|
||||
When you contact us, we usually first ask you what happened and what you need right now.
|
||||
Maybe you already have concrete ideas about what
|
||||
we can do. Depending on what you want, we can, for example:
|
||||
|
||||
- come to you in conflict situations at the event and mediate.
|
||||
- offer a quiet space where you can withdraw (alone or with us) and process what you have experienced.
|
||||
- contact friends and acquaintances.
|
||||
- try to clarify a stressful situation (as far as possible) (e.g. by trying to explain to transgressors why their actions were transgressive).
|
||||
- try to find out together with you what could help you best.
|
||||
|
||||
|
||||
You always decide for yourselves what is the best course of action for you - we will
|
||||
not do anything against your will. It's okay if you don't want to talk about something,
|
||||
if you don't want to or can't talk about. Every reaction, whether sadness, anger, despair,
|
||||
speechlessness, ... is okay.
|
||||
|
||||
Disclaimer: The awareness team consists of people who are sensitized to awareness and have
|
||||
and have experience in different areas. We
|
||||
support you as good as we can. However, we would like to explicitly point out
|
||||
that we do not have a therapeutic education.
|
||||
|
||||
Here's to a wonderful chaos event! Take care of yourselves and each other.
|
||||
Your Awareness Team
|
||||
|
||||
## Participate
|
||||
|
||||
We are still looking for people who can imagine to take over during the Quellcode
|
||||
awareness shifts during the source code. Please contact us via email at
|
||||
awareness@schleuder.0x90.space if you are interested.
|
||||
|
||||
What we would like to see from those interested:
|
||||
|
||||
- Self-awareness and reflection (you know yourself and your limits).
|
||||
- Self-organization and reliability
|
||||
- Ability to work in a team and to deal with conflicts
|
||||
- Empathy
|
||||
- Willingness to learn
|
||||
- Openness and the ability to listen
|
||||
- Sensitivity to discrimination, including structural discrimination
|
||||
- Sensitivity to discrimination including recognition of structural discrimination
|
||||
|
||||
We look forward to getting to know you.
|
||||
|
|
|
|||
|
|
@ -1,106 +1,89 @@
|
|||
---
|
||||
title: "Awareness- & Sauna-Konzept"
|
||||
date: "2025-08-30"
|
||||
---
|
||||
# Awareness
|
||||
|
||||
Awareness (dt. Achtsamkeit) ist,
|
||||
wenn wir gemeinsam darauf achten,
|
||||
dass es allen gut geht und alle einen guten Raum zum Lernen haben.
|
||||
Dieser sollte frei von Diskriminierung sein -
|
||||
wir sind alle nicht perfekt,
|
||||
aber lasst uns zumindest probieren,
|
||||
achtsam miteinander umzugehen.
|
||||
Ans Awareness-Team kannst du dich wenden, wenn du Diskriminierung oder
|
||||
Belästigung erfahren hast, Konflikte oder Emotionen be- oder verarbeiten
|
||||
möchtest oder einfach wen zum Reden brauchst. Die Teammitglieder hören dir zu
|
||||
und überlegen bei Bedarf mit dir, welche Handlungsmöglichkeiten bestehen.
|
||||
|
||||
Statt starren Verhaltensregeln,
|
||||
gilt es im Miteinander darauf zu achten,
|
||||
ob sich alle wohl damit fühlen.
|
||||
Ein paar Beispiele:
|
||||
## Kontakt
|
||||
|
||||
- Wenn andere Leute darum gebeten haben,
|
||||
dass man über sie mit bestimmten Pronomen (er/ihm, sie/ihr, es/deren/denen, mensch, ...) reden soll,
|
||||
dann solltest du das respektieren.
|
||||
Beispielsatz: „Es hat deren Handy bei mir vergessen, das muss ich denen mal zurückgeben.“
|
||||
- Wenn du merkst,
|
||||
dass deine Ausführungen zu einem technischen Thema sehr ausufern
|
||||
und alle anderen in der Gruppe abwesend wirken,
|
||||
ist es vielleicht Zeit jemand anders reden zu lassen.
|
||||
Stell doch eine Frage?
|
||||
- Wenn du rauchen willst,
|
||||
dann frag am besten die Umstehenden vorher,
|
||||
ob der Rauchgeruch sie stört;
|
||||
wenn nicht, prima.
|
||||
Ansonsten stell dich vielleicht 2,3 Meter weiter weg.
|
||||
- Verhalte dich beim Konsum anderer Drogen (z.B. Alkohol) rücksichtsvoll
|
||||
und tu dies nur wenn du dir sicher bist,
|
||||
dass alle aktuell fine sind mit deinem Konsum.
|
||||
Und auch wenn du konsumiert hast,
|
||||
achte auf deinen Umgang damit und auf die Grenzen von anderen Personen.
|
||||
- Mach bitte kein Fotos von anderen Menschen ohne sie zu fragen.
|
||||
- Wenn dich jemand bittet,
|
||||
dein T-Shirt wieder anzuziehen,
|
||||
bitte tu das auch ohne Diskussion.
|
||||
Für Nacktheit ist der Bereich um die Sauna da.
|
||||
- Und wenn dir bei anderen Sachen nicht sicher bist,
|
||||
wie du dich verhalten sollst,
|
||||
frag vielleicht einfach nach.
|
||||
- Tipp: frag nur, wenn du mit einem Nein klarkommst - sonst lass es lieber von vorneherein.
|
||||
* Phone: tba
|
||||
* Email: awareness@schleuder.0x90.space
|
||||
* DECT: tba
|
||||
|
||||
Wir haben einen Rückzugsraum, in den Menschen sich zurückziehen können,
|
||||
wenn sie Zeit für sich brauchen, aus welchen Gründen auch immer.
|
||||
Sprecht dafür die Vertrauenspersonen an (siehe unten).
|
||||
Um uns per verschlüsselter E-Mail zu schreiben, gibt es [diesen PGP-Key](/assets/awareness@schleuder.0x90.space.asc) mit folgendem Fingerprint:
|
||||
|
||||
## Sauna
|
||||
```
|
||||
E928 D522 45B2 8FDA 88EF 93F9 513D F0F2 8DB4 FD8B
|
||||
```
|
||||
|
||||
Im Hinterhof gibt es auch eine Sauna,
|
||||
die spätestens ab 17:00 Uhr benutzbar ist:
|
||||
Vor Ort reagieren wir auf Anrufe via Telefon oder DECT am schnellsten.
|
||||
Außerhalb von Veranstaltungen erreicht ihr uns per Email. Da sind unsere
|
||||
Kapazitäten allerdings begrenzt.
|
||||
|
||||
- Bitte mach an dem Tag einen Corona-Schnelltest, bevor du sie nutzt.
|
||||
- Bitte bring dir ein eigenes Handtuch mit, wir können nicht versprechen dass genug da sind.
|
||||
- Bitte in der Sauna nicht rauchen oder kiffen, und sie sauber hinterlassen.
|
||||
Betretet die Sauna und den Chillout-Bereich bitte nicht mit Schuhen.
|
||||
- Achte darauf, andere nicht anzustarren, analysiere dein Verhalten.
|
||||
Die Sauna soll ein Raum der Erholung für alle sein.
|
||||
- Die Sauna kostet uns ca. 5€ die Stunde an Strom,
|
||||
bitte lasst doch eine Spende da.
|
||||
## Über uns
|
||||
|
||||
## Ansprech-Personen
|
||||
Auf einem Chaos Event werden viele Menschen zusammenkommen. Diese haben
|
||||
allesamt verschiedene Bedürfnisse und sind in ihrem Handeln, Fühlen und Denken
|
||||
unterschiedlich und einmalig.
|
||||
|
||||
Beim Quellcode gibt es außerdem zwei-drei Vertrauenspersonen,
|
||||
die du ansprechen oder im Chat anschreiben kannst,
|
||||
wenn du jemanden zum Reden brauchst:
|
||||
Rücksichtsvolles Verhalten untereinander und das Respektieren persönlicher
|
||||
Grenzen sollten selbstverständlich sein, doch auch auf dem Event kann es zu
|
||||
Situationen kommen, in denen Menschen durch Worte oder Taten herabgewürdigt
|
||||
oder diskriminiert werden. Belästigungen, Sexismus, Rassismus, Homo-, Bi- und
|
||||
Transfeindlichkeit, Ableismus (Diskriminierung behinderter Menschen),
|
||||
Antisemitismus, Antiziganismus und Klassismus (Diskriminierung armer bzw.
|
||||
sozioökonomisch benachteiligter Menschen) sind auch dann nicht okay, wenn sie
|
||||
unbeabsichtigt geschehen.
|
||||
|
||||
- Falls jemand anders sich dir gegenüber übergriffig oder diskriminierend verhalten hat,
|
||||
könnt ihr (du und die Vertrauensperson) zusammen überlegen,
|
||||
was du in dem Moment brauchst.
|
||||
- Das kann z.B. bedeuten,
|
||||
dass die Vertrauensperson
|
||||
(in deiner Gegenwart oder nicht)
|
||||
besagten Mensch darauf anspricht,
|
||||
dass das Verhalten nicht okay war;
|
||||
dass der Mensch darauf achten soll dir aus dem Weg zu gehen;
|
||||
oder nach Hause geschickt wird.
|
||||
- Was du den Vertrauenspersonen erzählst,
|
||||
behalten sie für sich,
|
||||
falls du das willst.
|
||||
- Die Ansprech-Personen haben auch selbst Grenzen,
|
||||
und sind vielleicht nicht zu allem bereit, was du dir wünschst.
|
||||
Sie werden allerdings keine Schritte gegen deinen Willen unternehmen.
|
||||
## Was ist Awareness?
|
||||
|
||||
Vor Ort reagieren wir **bis 24:00 Uhr** auf Anrufe via Telefon oder DECT am schnellsten.
|
||||
Danach und davor erreicht ihr uns per Email,
|
||||
da sind unsere Kapazitäten allerdings begrenzt.
|
||||
„To be aware“ ist Englisch für „aufmerksam / bewusst sein“. Awarenessarbeit bedeutet, Leute zu sensibilisieren, auf sich selbst und andere zu achten - insbesondere auch auf jene, die gesellschaftlichen Erwartungshaltungen nicht entsprechen. Diskriminierung und Grenzüberschreitungen sind häufig den Ausübenden nicht bewusst, den Betroffenen sehr wohl. Da die Bedürfnisse Betroffener oft unsichtbar bleiben, wollen wir sie besonders unterstützen, diese Bedürfnisse ernst zu nehmen und ihnen Geltung zu verschaffen. Auch was Andere vielleicht als "vermeindliche Kleinigkeiten" bezeichnen oder wegzureden versuchen, können verletzen und beeinträchtigen und sind es daher wert, problematisiert zu werden.
|
||||
|
||||
- Telefon: +4915781835716
|
||||
- E-Mail: <awareness@schleuder.0x90.space>
|
||||
- Um uns per verschlüsselter E-Mail zu schreiben,
|
||||
gibt es diesen [PGP-Key](https://quellcode.0x90.space/assets/awareness@schleuder.0x90.space.asc)
|
||||
mit folgendem Fingerprint: E928 D522 45B2 8FDA 88EF 93F9 513D F0F2 8DB4 FD8B
|
||||
- DECT: 113
|
||||
Ein wichtiger Anteil von Awareness ist die Anerkennung der Definitionsmacht: Ob ihre eigenen Grenzen überschritten wurden, entscheidet immer ausschließlich die betroffene Person. Sonst nimmt sich oft die Mehrheitsgesellschaft das Recht heraus zu entscheiden, wer wann diskriminiert wird und wer nicht. Uns ist wichtig, dass auch Menschen wahrgenommen werden, die sonst nicht gehört oder ernst genommen werden.
|
||||
|
||||
Für uns bedeutet das: Wir unterstützen Betroffene einerseits, erlebte Situationen selbst zu verarbeiten. Wir bieten einen Ort für vertrauliche Gespräche. Wir hören zu und unterstützen ggf. dabei, Umgangsmöglichkeiten zu entwickeln und damit Handlungsfähigkeit zu stärken.
|
||||
|
||||
Andererseits kommunizieren wir auf Wunsch mit den Personen, von denen Diskriminierung und grenzüberschreitendes Verhalten ausgeht oder ausging. Dabei ist das Ziel die benannte Awareness: Verständnis und Bewusstsein dafür zu erzeugen, wie und warum das eigene Verhalten die Grenzen einer anderen Person verletzt hat. Wir treten dem übergriffigen oder verletzenden Verhalten entgegen, nicht dem Menschen. Ziel ist es, Verantwortung für das eigene Verhalten zu übernehmen.
|
||||
|
||||
Wenn es um die Bearbeitung von Konflikten geht, stehen wir auch für Moderation oder Begleitung zur Verfügung.
|
||||
|
||||
## Wie wir arbeiten
|
||||
|
||||
Das Awarenessteam steht euch insbesondere zur Seite, wenn:
|
||||
|
||||
- eure persönlichen Grenzen missachtet wurden,
|
||||
- ihr belästigt oder diskriminiert wurdet,
|
||||
- ihr (persönliche oder strukturelle) Diskriminierung mitbekommt,
|
||||
- ihr euch unwohl fühlt und eine Person zum Reden braucht.
|
||||
|
||||
Wenn ihr euch an uns wendet, fragen wir euch in der Regel zuerst, was passiert
|
||||
ist und was ihr gerade braucht. Vielleicht habt ihr bereits konkrete Ideen, was
|
||||
wir tun können. Je nachdem, was ihr wünscht, können wir zum Beispiel:
|
||||
|
||||
- bei Konfliktsituationen auf dem Event zu euch kommen und vermitteln.
|
||||
- einen ruhigen Raum bieten, in den ihr euch erst einmal (alleine oder mit uns) zurückziehen und das Erlebte verarbeiten könnt.
|
||||
- Freund:innen und Bekannten kontaktieren.
|
||||
- versuchen, eine belastende Situation (soweit möglich) zu klären (bspw. auch, indem wir grenzüberschreitenden Personen darzulegen versuchen, wieso ihr Handeln grenzüberschreitend war).
|
||||
- gemeinsam mit euch versuchen herauszufinden, was euch am besten helfen könnte.
|
||||
|
||||
Welches Vorgehen für euch das beste ist, entscheidet immer ihr selbst - wir
|
||||
werden nichts gegen euren Willen tun. Es ist in Ordnung, wenn ihr über etwas
|
||||
nicht reden wollt oder könnt. Jede Reaktion, ob Trauer, Wut, Verzweiflung,
|
||||
Sprachlosigkeit, ... ist okay.
|
||||
|
||||
Disclaimer: Das Awarenessteam besteht aus Menschen, die für Awareness
|
||||
sensibilisiert sind und in verschiedenen Bereichen Erfahrung haben. Wir
|
||||
unterstützen euch so gut wir es können. Allerdings möchten wir explizit darauf
|
||||
hinweisen, dass wir keine therapeutische Ausbildung haben.
|
||||
|
||||
Auf ein wunderbares Chaos-Event! Passt auf euch und aufeinander auf.
|
||||
Euer Awareness-Team
|
||||
|
||||
## Mitmachen
|
||||
|
||||
Wir suchen noch Menschen, die sich vorstellen können, während dem Quellcode
|
||||
als Vertrauensperson ansprechbar zu sein. Meldet euch bitte per E-Mail bei
|
||||
Awareness-Schichten zu übernehmen. Meldet euch bitte per E-Mail bei
|
||||
awareness@schleuder.0x90.space, wenn ihr Interesse habt.
|
||||
|
||||
Was wir uns von Interessierten wünschen:
|
||||
|
|
@ -114,3 +97,4 @@ Was wir uns von Interessierten wünschen:
|
|||
- Diskriminierungssensibilität inklusive Anerkennung von struktureller Diskriminierung
|
||||
|
||||
Wir freuen uns, dich kennenzulernen.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
title: "Call for Participation"
|
||||
date: "2025-07-10"
|
||||
---
|
||||
|
||||
Whether you are sick or weird,
|
||||
whether you're a punk or nerd,
|
||||
whether you are straight or queer,
|
||||
have no fear - the second Quellcode is here!
|
||||
|
||||
During the weekend from September 26-28
|
||||
we turn the Heizhaus in Nuremberg
|
||||
into a chaotic experimental lab - making, breaking,
|
||||
hacking, slacking, stitching, sewing, clicking,
|
||||
sowing, inking, gaming, piercing, flaming,
|
||||
or what else you can think of.
|
||||
|
||||
There will be a lot of place to try things out,
|
||||
for talks, exchange rounds, short idea pitches/lightning talks, or hands-on workshops.
|
||||
Whether your contributions are rather
|
||||
technical, political, or artsy is on you.
|
||||
We need your creativity ;)
|
||||
|
||||
You can submit your ideas on <https://pretalx.0x90.space/quellcode-2/cfp>,
|
||||
or if that’s to complicated,
|
||||
simply per mail to <workshops@schleuder.0x90.space>.
|
||||
|
||||
We are looking forward to your submissions!
|
||||
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
title: "Call for Participation"
|
||||
date: "2025-07-10"
|
||||
---
|
||||
|
||||
Ob komisch oder krank,
|
||||
ob du Nerd bist oder Punk,
|
||||
ob du straight bist oder queer,
|
||||
have no fear - das zweite Quellcode ist hier!
|
||||
|
||||
Vom 26.-28. September machen wir ein Wochenende lang
|
||||
das Heizhaus in Nürnberg zu einem
|
||||
chaotischen Experimentier-Labor - maken, breaken,
|
||||
hacken, slacken, sticken, nähen, klicken, säen,
|
||||
tätowieren, zocken, piercen, rocken,
|
||||
oder was euch noch so einfällt.
|
||||
|
||||
Da gibt es ne Menge Platz zum ausprobieren,
|
||||
für Talks, Austauschrunden, kurze Ideen-Pitches/Lightning-Talks, oder Hands-on Workshops.
|
||||
Ob eher technisch, politisch, oder künstlerisch liegt bei euch.
|
||||
Auf eure Kreativität sind wir angewiesen ;)
|
||||
|
||||
Eure Ideen könnt ihr auf <https://pretalx.0x90.space/quellcode-2/cfp> eintragen,
|
||||
oder wenn euch das zu kompliziert ist
|
||||
gern auch per Mail bei <workshops@schleuder.0x90.space>.
|
||||
|
||||
Wir freuen uns auf eure Beiträge!
|
||||
|
|
@ -6,5 +6,5 @@ date: 2023-07-26T10:28:10+02:00
|
|||
You can reach us over:
|
||||
|
||||
- Email: [people@schleuder.0x90.space](mailto:people@schleuder.0x90.space)
|
||||
- Element/Matrix: [https://matrix.to/#/#quellcode:chat.heizhaus.org](https://matrix.to/#/#quellcode:chat.heizhaus.org)
|
||||
- Matrix: [https://matrix.to/#/#quellcode:chat.heizhaus.org](https://matrix.to/#/#quellcode:chat.heizhaus.org)
|
||||
- Imprint: [here](https://0x90.space/impressum/)
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ date: 2023-07-26T10:28:10+02:00
|
|||
Ihr erreicht uns über:
|
||||
|
||||
- Email: [people@schleuder.0x90.space](mailto:people@schleuder.0x90.space)
|
||||
- Element/Matrix: [https://matrix.to/#/#quellcode:chat.heizhaus.org](https://matrix.to/#/#quellcode:chat.heizhaus.org)
|
||||
- Matrix: [https://matrix.to/#/#quellcode:chat.heizhaus.org](https://matrix.to/#/#quellcode:chat.heizhaus.org)
|
||||
- Impressum: [hier](https://0x90.space/impressum/)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
title: "FAQ"
|
||||
ShowToc: True
|
||||
date: 2023-07-26T10:28:10+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
### Where can I stay for the night?
|
||||
|
|
@ -21,37 +20,8 @@ With the Metro:
|
|||
The event location is near the subway station Eberhardshof. When you get there, it is best to go out of the station in the direction of the "Netto" supermarket (you can see it in the distance) and then pass it on the right.
|
||||
If you see the big tower, then the event location is directly below.
|
||||
|
||||
### Corona?
|
||||
|
||||
Please stay at home with a Corona Infection! Test yourself
|
||||
Of course.
|
||||
It's not long:
|
||||
|
||||
1. In the workshop room everyone wears masks,
|
||||
so the presenter doesn't have to.
|
||||
We bought some masks
|
||||
for anyone who hasn't brought one anyway.
|
||||
2. In the hackcenter we open two of the rolling doors
|
||||
during the day.
|
||||
If we have to close them for safety reasons,
|
||||
we will let air in
|
||||
once an hour.
|
||||
Between 22:00 and 06:00 we need to close them unfortunately.
|
||||
|
||||
### Is There an Awareness Concept for the Event?
|
||||
|
||||
Of course,
|
||||
you can find it [on this page](../awareness).
|
||||
|
||||
We are still looking for people
|
||||
who can imagine taking a shift during the event;
|
||||
please come to the awareness team meeting
|
||||
Saturday at 11:00 in front of the rolling doors
|
||||
to participate,
|
||||
or send a mail to awareness@schleuder.0x90.space.
|
||||
|
||||
### I have a problem, who can I contact?
|
||||
|
||||
The quickest way to reach us is via the Element/Matrix channel: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
The quickest way to reach us is via the Matrix channel: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
|
||||
There will be a responsible person on site ("running information desk"), who you will recognize by a safety vest or similar. You can contact them at any time.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
title: "FAQ"
|
||||
ShowToc: True
|
||||
date: 2023-07-26T10:28:10+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
### Wo kann ich übernachten?
|
||||
|
|
@ -21,13 +20,6 @@ Mit der U-Bahn:
|
|||
Das Heizhaus ist an der U-Bahnstation Eberhardshof. Wenn du da ankommst, am besten in Richtung Netto (sieht man in der Ferne) rausgehen aus der Station und dann rechts daran vorbei.
|
||||
Wenn ihr den großen Quelleturm seht, dann ist das Heizhaus direkt darunter.
|
||||
|
||||
### Corona?
|
||||
|
||||
Bitte daheimbleiben mit Corona! Testet euch selbstständig Zuhause. Notfalls haben wir auch ein paar Schnelltests und Masken da.
|
||||
|
||||
1. Im Workshop-Raum: Maskenempfehlung
|
||||
2. Der Hackcenter wird bis 22:00 durchgehend gut gelüftet sein.
|
||||
|
||||
### Gibt es für das Event ein Awareness-Konzept?
|
||||
|
||||
Selbstverständlich,
|
||||
|
|
@ -37,12 +29,10 @@ Es ist angelehnt an [das CCC-Awareness-Konzept](https://help.ccc.de/awareness/).
|
|||
Wir suchen auch noch Menschen,
|
||||
die sich vorstellen können,
|
||||
Awareness-Schichten zu übernehmen;
|
||||
kommt gerne Samstag um 11:00 Uhr
|
||||
zum Awareness-Treffen vor den Rolltoren,
|
||||
oder meldet euch bei awareness@schleuder.0x90.space.
|
||||
meldet euch gerne bei awareness@schleuder.0x90.space.
|
||||
|
||||
### Ich habe ein Problem, an wen kann ich mich melden?
|
||||
|
||||
Am schnellsten erreichst du uns über den Element/Matrix-Kanal: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
Am schnellsten erreichst du uns über den Matrix-Kanal: https://matrix.to/#/#quellcode:chat.heizhaus.org
|
||||
|
||||
Vor Ort wird es eine verantwortliche Person ("laufendes Infodesk") geben, die du an einer Warnweste o.ä. erkennst. An die kannst du dich jederzeit wenden.
|
||||
|
|
|
|||
17
content/posts/helloworld.en.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
title: "Save the date!"
|
||||
date: "2023-07-05"
|
||||
---
|
||||
The [0x90.space](https://0x90.space/) is inviting to the "Quellcode" at the [Heizhaus Nürnberg](https://heizhaus.org/) ([Wandererstr. 89c, 90431 Nürnberg](https://osm.org/go/0D6zlBi~x-?way=37685652)) from 9/16 - 9/17/2023.
|
||||
The goal is to bring people from different backgrounds together to learn from each other.
|
||||
An opportunity to share experiences and to be creative with technology (or without).
|
||||
|
||||
We have a talk/workshop room that fits about 20 people and a larger hackcenter with tables and chairs for 50-100 people where you can sit, talk and show your projects.
|
||||
If you want to give a talk or workshop, [sign up by 08/26/2023 00:00 CEST](https://cryptpad.fr/form/#/2/form/view/KR2e9HvcShTc4RWnd+81jEEey8djEfu3f1dHROAO490/).
|
||||
We don't just want to talk about technology and computers and welcome artistic or socio-political contributions as well.
|
||||
|
||||
There is a [general registration form](https://cryptpad.fr/form/#/2/form/view/qv48AVyeLO4-l9uIuTOeNdM7sGFR-zfTilvA8sX3-BY/) to estimate the number of people and the amount of food.
|
||||
You are also welcome to come without registration, but don't eat so much then ... ;)
|
||||
There will be a donation box on site.
|
||||
|
||||
We are looking forward to you and your contributions and if you have any questions or suggestions, feel free to write to [people@schleuder.0x90.space](mailto:people@schleuder.0x90.space) or join our [Matrix channel](https://matrix.to/#/#quellcode:chat.heizhaus.org)!
|
||||
17
content/posts/helloworld.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
title: "Save the date!"
|
||||
date: "2023-07-05"
|
||||
---
|
||||
Der [0x90.space](https://0x90.space/) lädt ein zum "Quellcode" vom 16.9 - 17.9.2023 im [Heizhaus Nürnberg](https://heizhaus.org/) ([Wandererstr. 89c, 90431 Nürnberg](https://osm.org/go/0D6zlBi~x-?way=37685652)).
|
||||
Das Ziel ist Menschen aus verschiedenen Hintergründen zusammenzubringen, um voneinander zu lernen.
|
||||
Eine Gelegenheit Erfahrungen auszutauschen und kreative Dinge mit Technik (oder auch ohne) anzustellen.
|
||||
|
||||
Wir haben einen Vortrags-/Workshopsraum in den ca 20 Leute passen und ein größeres Hackcenter mit Tischen und Stühlen für 50-100 Leute in dem ihr sitzen, reden und eure Projekte zeigen könnt.
|
||||
Wenn ihr einen Vortrag oder Workshop halten wollt, [meldet euch bis zum 26.08.2023 00:00 CEST](https://cryptpad.fr/form/#/2/form/view/KR2e9HvcShTc4RWnd+81jEEey8djEfu3f1dHROAO490/).
|
||||
Wir wollen nicht nur über Technik und Computer reden und freuen uns auch über künstlerische oder gesellschaftspolitische Beiträge.
|
||||
|
||||
Es gibt ein [allgemeines Anmeldeformular](https://cryptpad.fr/form/#/2/form/view/qv48AVyeLO4-l9uIuTOeNdM7sGFR-zfTilvA8sX3-BY/), um die Anzahl der Leute und die Menge an Essen abzuschätzen zu können.
|
||||
Ihr könnt auch gerne ohne Anmeldung vorbeikommen, aber esst dann nicht so viel ... ;)
|
||||
Vor Ort wird es eine Spendenkasse geben.
|
||||
|
||||
Wir freuen uns auf Euch und eure Beiträge und falls ihr Fragen oder Anregungen habt, schreibt gerne an [people@schleuder.0x90.space](mailto:people@schleuder.0x90.space) oder kommt in unseren [Matrix-Channel](https://matrix.to/#/#quellcode:chat.heizhaus.org)!
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
---
|
||||
title: "Telephony"
|
||||
date: 2025-09-27T01:14:10+02:00
|
||||
---
|
||||
|
||||
# Analog telephone
|
||||
We also offer analog telephony at the main ares of the location.
|
||||
They can call and can be called by DECT/SIP phones.
|
||||
|
||||
Here are a list of the analog phone numbers:
|
||||
| Phone number | location |
|
||||
| --- | -----------|
|
||||
| 9101 | Rolltor Bar|
|
||||
| 9102 | Rolltor Hackcenter |
|
||||
| 9103 | Rolltor Couche |
|
||||
| 9111 | Brücke Couche |
|
||||
| 9112 | Brücke Bar |
|
||||
| 9113 | Brücke Sitzgruppe |
|
||||
|
||||
# DECT
|
||||
|
||||
## TL;DR
|
||||
|
||||
We are operating our own small telephony network with DECT and SIP connectivity during Quellcode.
|
||||
(This is independent of Eventphone and µPOC, so will have different numbers and user accounts!)
|
||||
Bring your DECT handsets! :)
|
||||
|
||||
## How do I use this?
|
||||
|
||||
### Phone book
|
||||
|
||||
You can find an up-to-date phone book at https://dect.site/.
|
||||
|
||||
### Dial-in from the public telephone network
|
||||
|
||||
The event telephone network can also be reached from outside.
|
||||
|
||||
**+49 941 38 3388 <extension>**
|
||||
|
||||
e.g. +49 941 38 3388 2000 for the POC hotline.
|
||||
|
||||
The dial-in number is a regular number from the Regensburg local network (area code 0941), so it can be reached at your respective landline rate.
|
||||
|
||||
### Register your own DECT/SIP device
|
||||
|
||||
This time our system supports self-registration for your DECT devices (although this is still somewhat experimental):
|
||||
|
||||
- Select the registration with a new base on your device (the exact name of the menu option depends on your device).
|
||||
- Enter '0000' as the base PIN.
|
||||
- Register at https://dect.site/ and create a number there.
|
||||
- Call the registration "token" (which is displayed next to your number on https://dect.site/) with your DECT device.
|
||||
- The call should end by itself immediately.
|
||||
- After a few seconds your phone number is assigned to your device and you can start calling.
|
||||
|
||||
If you have any questions or problems, please contact us - see next point. :)
|
||||
|
||||
## Whom can I ask questions about this?
|
||||
|
||||
A few people got together to form the ["Arbeitsgruppe DECT-Experimente" (ADE)](https://dect.network/) and are tinkering with telephony for smaller events (for example VVoid.Camp, IGER, Quellcode, …) where Eventphone and µPOC are not available.
|
||||
You can reach us at `ADE [at] dect.network` and during the event at the DECT number **2000** (from the public telephone network at local rates at [0941 383388 2000](tel:+499413833882000)).
|
||||
|
||||
## Who? What? Why?
|
||||
|
||||
- **Who?**
|
||||
The "Arbeitsgruppe DECT-Experimente" ("DECT Experiments Working Group")! :)
|
||||
We are not Eventphone or the µPOC, but have received a lot of inspiration and advice from both.
|
||||
- **What?**
|
||||
A small DECT network (same hardware as Eventphone, but less fancy automation so far). Depending on time available, also SIP connectivity and dial-in from the public telephone network.
|
||||
- Why?
|
||||
For the joy of experimenting, having fun with the device, and because we find that uncomplicated local telephony brings chaos events even closer together.
|
||||
|
||||
The idea for our own DECT setup — inspired by Eventphone, but built by ourselves — was born shortly before the first VVoidCamp (in 2020). There you can also find a bit more about our history: https://vviki.vvoid.camp/dect
|
||||
|
||||
Since then, several people have been working on different versions of the DECT experiments and we are trying to bring a bit of telephony to places where Eventphone and µPOC cannot be at the moment.
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
|
||||
---
|
||||
title: "Telephony"
|
||||
date: 2025-09-27T01:14:10+02:00
|
||||
---
|
||||
|
||||
# Analoge Telefone
|
||||
Wir bieten an mehreren orten analoge Telefonie an.
|
||||
Diese können sowohl DECT/SIP Telefone anrufen als auch von diesen angerufen werden.
|
||||
|
||||
Analoge Telefonnummern:
|
||||
| Phone number | location |
|
||||
| --- | -----------|
|
||||
| 9101 | Rolltor Bar|
|
||||
| 9102 | Rolltor Hackcenter |
|
||||
| 9103 | Rolltor Couche |
|
||||
| 9111 | Brücke Couche |
|
||||
| 9112 | Brücke Bar |
|
||||
| 9113 | Brücke Sitzgruppe |
|
||||
|
||||
# DECT
|
||||
|
||||
## TL;DR
|
||||
|
||||
Es gibt auf dem Quellcode ein eignes Telefonie-Netz mit DECT und SIP.
|
||||
(Unabhängig von Eventphone und µPOC, also ggf. mit anderen Nummern und User-Accounts!)
|
||||
Bringt eure DECT-Mobilteile mit! :)
|
||||
|
||||
## Wie benutze ich das?
|
||||
|
||||
### Telefonbuch
|
||||
|
||||
Ein aktuelles Telefonbuch findet ihr unter https://dect.site/.
|
||||
|
||||
### Dial-in aus dem öffentlichen Telefonnetz
|
||||
|
||||
Das Event-Telefonnetz ist auch von außen erreichbar.
|
||||
|
||||
**+49 941 38 3388 <Durchwahl>**
|
||||
|
||||
z.B. +49 941 38 3388 2000 für die POC-Hotline.
|
||||
|
||||
Die Dial-in-Nummer ist eine normale Nummer aus dem Ortsnetz Regensburg (Vorwahl 0941), ist also zu eurem jeweiligen Festnetzpreis erreichbar.
|
||||
|
||||
### Eigenes DECT-/SIP-Gerät anmelden
|
||||
|
||||
Unser System unterstützt diesmal Selbstregistrierung für eure DECT-Geräte (allerdings noch etwas experimentell):
|
||||
|
||||
- Wählt auf eurem Gerät die Anmeldung an einer neuen Basis aus (wie genau die Menüoption heißt, hängt von eurem Gerät ab)
|
||||
- Gebt als Basis-PIN `0000` ein
|
||||
- Registriert euch auf https://dect.site/ und legt dort eine Nummer an
|
||||
- Ruft mit eurem DECT-Gerät das Anmelde-"Token" an, das https://dect.site/ zu eurer Nummer anzeigt
|
||||
- Der Anruf sollte sich sofort von selbst beenden
|
||||
- Nach wenigen Sekunden ist eurem Gerät eure Telefonnummer zugewiesen und ihr könnt lostelefonieren
|
||||
|
||||
Bei Fragen oder Problem kommt gerne auf uns zu — siehe nächster Punkt. :)
|
||||
|
||||
## Wem kann ich Fragen dazu stellen?
|
||||
|
||||
Ein paar Menschen haben sich zur ["Arbeitsgruppe DECT-Experimente" (ADE)](https://dect.network/) zusammengefunden und basteln Telefonie für kleinere Events (zum Beispiel das VVoid.Camp, die IGER, das Quellcode, …), auf denen Eventphone und µPOC nicht verfügbar sind.
|
||||
Ihr erreicht uns unter `ADE [at] dect.network` und während des Events unter der DECT-Nummer **2000** (aus dem öffentlichen Telefonnetz zum Ortstarif unter [0941 383388 2000](tel:+499413833882000)).
|
||||
|
||||
## Wer? Was? Warum?
|
||||
|
||||
- **Wer?**
|
||||
Die "Arbeitsgruppe DECT-Experimente"! :)
|
||||
Wir sind nicht Eventphone, und auch nicht das µPOC, aber haben von beiden viel Inspiration und Beratung erhalten.
|
||||
- **Was?**
|
||||
Ein kleines DECT-Netz (selbe Hardware wie Eventphone, aber bisher weniger fancy Automatisierung). Je nach verfügbarer Zeit auch noch SIP-Konnektivität und Dial-in aus dem öffentlichen Telefonnetz.
|
||||
- **Warum?**
|
||||
Aus Experimentierfreude, Spaß am Gerät, und weil wir finden dass unkomplizierte lokale Telefonie Chaos-Events noch näher zusammenbringt.
|
||||
|
||||
Die Idee zu einem eigenen DECT-Setup — inspiriert von Eventphone, aber selbst nachgebaut — entstand kurz vor dem ersten VVoidCamp (2020). Dort findet ihr auch ein bisschen mehr zur Vorgeschichte: https://vviki.vvoid.camp/dect
|
||||
|
||||
Mittlerweile basteln mehrere Leute an unterschiedlichen Versionen der DECT-Experimente und wir bemühen uns, dort ein bisschen Telefonie hinzubringen, wo Eventphone und µPOC gerade nicht sein können.
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: "Program and Rooms"
|
||||
date: 2023-07-26T09:58:25+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
## Site plan
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: "Programm und Räume"
|
||||
date: 2023-07-26T09:58:25+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
## Lageplan
|
||||
|
|
@ -18,12 +17,12 @@ Neben unserem Programm im Vortrags/Workshopraum werden wir auch ein Hackcenter (
|
|||
- [10:00-10:15 Welcome speech (panda) [de/en]](#1000-1015welcome-speech-panda)
|
||||
- [10:30-11:15 Eine Tour durch OpenBSD (vmann) [de]](#1030-1115eine-tour-durch-openbsd-vmann)
|
||||
- [11:30-12:15 Linux Kernel Entwicklung (tammi) [de]](#1130-1215linux-kernel-entwicklung-tammi)
|
||||
- 12:15-13:30 Pause / Umbau zu Workshopraum
|
||||
- [12:30-13:15 Was ist das Open Build Service und was hat es mit Kiwis zu tun? (hagi)](#1230-1315-was-ist-das-open-build-service-und-was-hat-es-mit-kiwis-zu-tun-hagi)
|
||||
- 13:15-13:30 Pause / Umbau zu Workshopraum
|
||||
- [13:30-15:30 Hands-on workshop: how to setup a mail server for anonymous Delta Chat accounts (missytake) [de/en]](#1330-1530hands-on-workshop-how-to-setup-a-mail-server-for-anonymous-delta-chat-accounts-missytake)
|
||||
- [16:00-17:45 How to Anfragen nach dem Informationsfreiheitsgesetz/Umweltinformationsgesetz/u.ä. (frodo) [de]](#1600-1745-how-to-anfragen-nach-dem-informationsfreiheitsgesetzumweltinformationsgesetzu%C3%A4-frodo)
|
||||
- [18:00-20:00 Abendessen [all]](#1800-2000abendessen)
|
||||
- [20:00-21:30 Konzert (das_synthikat) [all]](#2000-2130konzert--das_synthikat)
|
||||
- [21:30-23:00 Konzert (Modulandi) [all]](#2130-2300konzert--modulandi)
|
||||
- [20:00-23:00 Konzert (das_synthikat) [all]](#2000-2300konzert--das_synthikat)
|
||||
|
||||
### Hackcenter
|
||||
- [>= 10:00 Plant Station: Plant Swap and Propagation (panda) [de/en]](#plant-station-plant-swap-and-propagation-panda)
|
||||
|
|
@ -35,12 +34,11 @@ Neben unserem Programm im Vortrags/Workshopraum werden wir auch ein Hackcenter (
|
|||
- [10:00-11:45 Haecksen-Frühstück (e33a) [de/en]](#1000-1145haecksen-frühstück-e33a)
|
||||
- [12:00-13:30 Pixel-Workshop - Zeichne deinen eigenen Pixel-Art-Avatar! (Mullana) [de/en]](#1200-1330pixel-workshop---zeichne-deinen-eigenen-pixel-art-avatar-mullana)
|
||||
- [14:00-15:45 dezentrale Tools für Aktivismus & Organisierung (missytake) [de]](#1400-1545dezentrale-tools-für-aktivismus--organisierung-missytake)
|
||||
- ~~16:00-16:45 Einführung in die Strömungssimulation mit OpenSource (OpenFOAM)~~
|
||||
- ~~16:00-16:20 Was ist das Open Build Service und was hat es mit Kiwis zu tun?~~
|
||||
- [16:30-17:00 Lightning talks (mpk) [de/en]](#1630-1700lightning-talks-mpk)
|
||||
- [17:00-17:45 Powerpoint Karaoke (mpk) [de/en]](#1700-1745powerpoint-karaoke-mpk)
|
||||
- [18:00-18:15 End speech [de/en]](#1800-1815end-speech)
|
||||
- 18:15-00:00 Abbau / Cleanup
|
||||
- [16:00-16:45 Einführung in die Strömungssimulation mit OpenSource (OpenFOAM) (Björn) [de]](#1600-1645einführung-in-die-strömungssimulation-mit-opensource-openfoam--björn)
|
||||
- [17:00-17:45 Lightning talks (mpk) [de/en]](#1700-1745lightning-talks-mpk)
|
||||
- [18:00-20:00 Abendessen [all]](#1800-2000abendessen-1)
|
||||
- [20:00-20:45 End speech + Powerpoint Karaoke (mpk) [de/en]](#2000-2045end-speech--powerpoint-karaoke-mpk)
|
||||
- 21:00-00:00 Abbau / Cleanup
|
||||
|
||||
### Hackcenter
|
||||
- [>= 10:00 Plant Station: Plant Swap and Propagation (panda) [de/en]](#plant-station-plant-swap-and-propagation-panda)
|
||||
|
|
@ -62,6 +60,8 @@ Schon immer mal gefragt wie der Linux-Kernel funktioniert? Ich werde versuchen e
|
|||
|
||||
Klar der Kernel ist hauptsächlich in C geschrieben und es wird ein bisschen Rust-Code hinzukommen. Doch Kernel-Code ist doch ziemlich anders als normaler Userspace-Code. Der Kernel ist sehr komplex, deshalb zeige ich euch nach einer Übersicht, wie man sich auf einen Teilbereich fokussiert.
|
||||
|
||||
### 12:30-13:15 Was ist das Open Build Service und was hat es mit Kiwis zu tun? (hagi)
|
||||
|
||||
### 13:30-15:30 Hands-on workshop: how to setup a mail server for anonymous Delta Chat accounts (missytake)
|
||||
In 2023, managing a mail server doesn't need to be hard. With mailcow, you get a one-in-all solution with a nice web interface. Alongside mailcow, we will install mailadm, a tool for creating anonymous Delta Chat accounts through simply scanning a QR code.
|
||||
|
||||
|
|
@ -85,15 +85,11 @@ Nices veganes Essen.
|
|||
|
||||
[en] Nice vegan food.
|
||||
|
||||
### 20:00-21:30 Konzert (das_synthikat)
|
||||
### 20:00-23:00 Konzert (das_synthikat)
|
||||
https://das-synthikat.net/
|
||||
|
||||
We are 2 cyberpunks who like to record lo-fi music and try to make the best out of this dystopia.
|
||||
|
||||
### 21:30-23:00 Konzert (Modulandi)
|
||||
|
||||
8bit tek.
|
||||
|
||||
----------
|
||||
----------
|
||||
|
||||
|
|
@ -102,7 +98,7 @@ We are 2 cyberpunks who like to record lo-fi music and try to make the best out
|
|||
### 10:00-11:45 Haecksen-Frühstück (e33a)
|
||||
https://wiki.haecksen.org/books/treffen-community/page/haecksenfruhstuck
|
||||
|
||||
Die Haecksen sind eine Gruppe aus Hacker\*innen, die sich als Frauen verstehen. Bei diesem Frühstück könnt ihr uns kennenlernen und ggf. Mitglied der Haecksen werden. Die Haecksen treffen sich hauptsächlich online, aber sind dabei eine Nürnberger Lokalgruppe zu gründen.
|
||||
Die Haecksen sind eine Gruppe aus Hacker*innen, die sich als Frauen verstehen. Bei diesem Frühstück könnt ihr uns kennenlernen und ggf. Mitglied der Haecksen werden. Die Haecksen treffen sich hauptsächlich online, aber sind dabei eine Nürnberger Lokalgruppe zu gründen.
|
||||
|
||||
[en] The Haecksen are a group of hackers who see themselves as women. At this breakfast you can get to know us and possibly become a member of the Haecksen. The Haecksen mainly meet online, but are in the process of starting a Nuremberg local group.
|
||||
|
||||
|
|
@ -116,8 +112,9 @@ Please bring drawing equipment. A tablet with a pen is great, but a laptop with
|
|||
### 14:00-15:45 dezentrale Tools für Aktivismus & Organisierung (missytake)
|
||||
Tech-Monopole kontrollieren heute fast die ganze digitale und nicht-digitale Welt. Um dieser Dystopie etwas entgegenzustellen, müssen wir uns organisieren, ohne Leute auszuschließen. Das geht auch ohne Google, Facebook, und Dropbox - doch was sind die Alternativen?
|
||||
|
||||
### 16:00-16:45 Einführung in die Strömungssimulation mit OpenSource (OpenFOAM) (Björn)
|
||||
|
||||
### 16:30-17:00 Lightning talks (mpk)
|
||||
### 17:00-17:45 Lightning talks (mpk)
|
||||
Halte spontan deinen Talk über etwas das dich begeistert in 1-10 Minuten!
|
||||
|
||||
Anmeldung online: https://cryptpad.fr/code/#/2/code/edit/qQGvYMCMM5QqZ3LkUm+8dalQ/
|
||||
|
|
@ -136,26 +133,28 @@ There will also be a note on site somewhere for offline registrations :)
|
|||
Registration deadline: 5 minutes before
|
||||
|
||||
|
||||
### 17:00-17:45 Powerpoint Karaoke (mpk)
|
||||
### 18:00-20:00 Abendessen
|
||||
VAPCA - VeganAnarchoPunkCooking Action
|
||||
|
||||
Nices veganes Essen.
|
||||
|
||||
[en] Nice vegan food.
|
||||
|
||||
### 20:00-20:45 End speech + Powerpoint Karaoke (mpk)
|
||||
Ein paar Abschlussworte und danach Powerpoint Karaoke
|
||||
|
||||
Was ist [Powerpoint Karaoke](https://de.wikipedia.org/wiki/Powerpoint-Karaoke)?
|
||||
|
||||
Zitat Wikipedia
|
||||
"Das PowerPoint-Karaoke ist ein Ableger des klassischen Karaoke, bei dem die Teilnehmer keine Liedtexte nachsingen, sondern aus dem Stegreif einen Vortrag zu ihnen vorher nicht bekannten, zufällig ausgewählten Folien halten. Diese können entweder eigens erstellt werden, oder man verwendet Folien, die man im Internet gefunden hat. Es ist ein rhetorisches, präsentatorisches Trainingsspiel mit Unterhaltungscharakter. Teilweise wird es mittlerweile auch als Improtheater- oder Theatersport-Spiel verwendet. "
|
||||
|
||||
[en]
|
||||
[en] A few closing words and then Powerpoint Karaoke
|
||||
|
||||
What is [Powerpoint Karaoke](https://en.wikipedia.org/wiki/Powerpoint-Karaoke)?
|
||||
|
||||
Quoting Wikipedia
|
||||
"The PowerPoint karaoke is an offshoot of the classic karaoke, in which the participants do not sing lyrics, but give an impromptu presentation of previously unknown, randomly selected slides. These can either be created specially, or slides that found on the Internet. It is a rhetorical, presentational training game with an entertainment character. It is now also used as an improv or theater sport game."
|
||||
|
||||
|
||||
### 18:00-18:15 End speech
|
||||
Ein paar Abschlussworte
|
||||
|
||||
[en]
|
||||
A few closing words
|
||||
|
||||
|
||||
## Details other
|
||||
### Plant Station: Plant Swap and Propagation (panda)
|
||||
both days \>= 10:00 @ Hackcenter
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: "Registration"
|
||||
date: 2023-07-26T10:22:25+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
We want to estimate how many people will come and how much food we have to prepare, that is why we kindly ask you to fill out this registration form.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: "Anmeldung"
|
||||
date: 2023-07-26T10:22:25+02:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
Damit wir ungefähr abschätzen können wie viele Leute kommen und wie viel Essen wir vorbereiten müssen, könnt ihr euch in diesem Formular anmelden:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
set -xe
|
||||
npm run build
|
||||
hugo
|
||||
cd ../0x90-ansible
|
||||
rsync -avz -e 'ssh -F ssh_config' ../quellcode.0x90.space/public/* www:/var/www/quellcode.0x90.space/2025/
|
||||
rsync -avz -e 'ssh -F ssh_config' ../quellcode.0x90.space/public/* www:/var/www/quellcode.0x90.space
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 185 KiB |
27
flake.lock
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1748190013,
|
||||
"narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "62b852f6c6742134ade1abdd2a21685fd617a291",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
31
flake.nix
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
description = "A Nix-flake-based Hugo development environment";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = { self , nixpkgs ,... }: let
|
||||
system = "x86_64-linux";
|
||||
in {
|
||||
devShells."${system}".default = let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
in pkgs.mkShell {
|
||||
# create an environment with nodejs_18, pnpm, and yarn
|
||||
packages = with pkgs; [
|
||||
nodejs_24
|
||||
nodePackages.pnpm
|
||||
(yarn.override { nodejs = nodejs_24; })
|
||||
hugo
|
||||
rsync
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
echo "node `node --version`"
|
||||
hugo version
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 539 KiB |
10
package.json
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"hugo-extended": "^0.147.9"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "hugo --baseURL https://quellcode.0x90.space/2025/",
|
||||
"build:preview": "hugo --baseURL https://quellcode.0x90.space --buildDrafts --buildFuture",
|
||||
"start": "hugo server"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
|
|
@ -1,7 +1,7 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2025 adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<h4 align=center>☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive</h4>
|
||||
<br>
|
||||
|
||||
> Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper/tree/4330c8b12aa48bfdecbcad6ad66145f679a430b3).<br>
|
||||
> Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper).
|
||||
> The goal of this project is to add more features and customization to the og theme.
|
||||
|
||||
**Documentation** can be found here: [**📚 Wiki**](https://github.com/adityatelange/hugo-PaperMod/wiki)
|
||||
|
|
@ -11,12 +11,10 @@
|
|||
**ExampleSite** can be found here: [**exampleSite**](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite) as source.
|
||||
|
||||
[](https://themes.gohugo.io/themes/hugo-papermod/)
|
||||
[](https://github.com/gohugoio/hugo/releases/tag/v0.146.0)
|
||||
[](https://github.com/gohugoio/hugo/releases/tag/v0.97.1)
|
||||
[](https://discord.gg/ahpmTvhVmp)
|
||||
[](https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE)
|
||||

|
||||
[](https://x.com/intent/tweet/?text=Checkout%20Hugo%20PaperMod%20%E2%9C%A8%0AA%20fast,%20clean,%20responsive%20Hugo%20theme.&url=https://github.com/adityatelange/hugo-PaperMod&hashtags=Hugo,PaperMod)
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -35,20 +33,19 @@
|
|||
- [Profile Mode.](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#profile-mode)
|
||||
- Table of Content Generation (newer implementation).
|
||||
- Archive of posts.
|
||||
- Social Icons (home-info and profile-mode).
|
||||
- Social Icons (home-info and profile-mode)
|
||||
- Social-Media Share buttons on posts.
|
||||
- Menu location indicator.
|
||||
- Multilingual support. (with language selector).
|
||||
- Taxonomies.
|
||||
- Multilingual support. (with language selector)
|
||||
- Taxonomies
|
||||
- Cover image for each post (with Responsive image support).
|
||||
- Light/Dark theme (automatic theme switch a/c to browser theme and theme-switch button).
|
||||
- SEO Friendly.
|
||||
- Multiple Author support.
|
||||
- Search Page with Fuse.js
|
||||
- Other Posts suggestion below a post
|
||||
- Breadcrumb Navigation.
|
||||
- Code Block Copy buttons.
|
||||
- Hugo's Chroma syntax highlighter.
|
||||
- Breadcrumb Navigation
|
||||
- Code Block Copy buttons
|
||||
- No webpack, nodejs and other dependencies are required to edit the theme.
|
||||
|
||||
Read Wiki For More Details => **[PaperMod - Features](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)**
|
||||
|
|
@ -103,4 +100,4 @@ Release ChangeLog has info about stuff added: **[Releases](https://github.com/ad
|
|||
|
||||
## Stargazers over time 📈
|
||||
|
||||
[](https://starchart.cc/adityatelange/hugo-PaperMod)
|
||||
<kbd>[](https://starchart.cc/adityatelange/hugo-PaperMod)</kbd>
|
||||
|
|
|
|||
|
|
@ -27,10 +27,12 @@
|
|||
margin-inline-start: auto;
|
||||
}
|
||||
|
||||
.social-icons {
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.social-icons a {
|
||||
display: inline-flex;
|
||||
padding: 10px;
|
||||
.social-icons a:not(:last-of-type) {
|
||||
margin-inline-end: 12px;
|
||||
}
|
||||
|
||||
.social-icons a svg {
|
||||
|
|
|
|||
|
|
@ -80,23 +80,20 @@
|
|||
bottom: 0;
|
||||
}
|
||||
|
||||
.entry-hint {
|
||||
.entry-cover,
|
||||
.entry-isdraft {
|
||||
font-size: 14px;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.entry-hint-parent {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.entry-cover {
|
||||
font-size: 14px;
|
||||
margin-bottom: var(--gap);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.entry-cover img {
|
||||
border-radius: var(--radius);
|
||||
pointer-events: none;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.post-meta .i18n_list li {
|
||||
|
|
@ -125,24 +124,25 @@
|
|||
padding-inline-start: 10px;
|
||||
}
|
||||
|
||||
.post-content dd~dd,
|
||||
.post-content dt~dt {
|
||||
.post-content dd ~ dd,
|
||||
.post-content dt ~ dt {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.post-content table {
|
||||
margin-bottom: var(--content-gap);
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.post-content table th,
|
||||
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
|
||||
min-width: 80px;
|
||||
padding: 8px 5px;
|
||||
padding: 12px 8px;
|
||||
line-height: 1.5;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-content table th {
|
||||
font-size: 14px;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
|
|
@ -156,12 +156,12 @@
|
|||
|
||||
.post-content .highlight:not(table) {
|
||||
margin: 10px auto;
|
||||
background: var(--code-block-bg) !important;
|
||||
background: var(--hljs-bg) !important;
|
||||
border-radius: var(--radius);
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.post-content li>.highlight {
|
||||
.post-content li > .highlight {
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
|
||||
|
|
@ -200,11 +200,11 @@
|
|||
}
|
||||
|
||||
.post-content pre code {
|
||||
display: grid;
|
||||
display: block;
|
||||
margin: auto 0;
|
||||
padding: 10px;
|
||||
color: rgb(213, 213, 214);
|
||||
background: var(--code-block-bg) !important;
|
||||
background: var(--hljs-bg) !important;
|
||||
border-radius: var(--radius);
|
||||
overflow-x: auto;
|
||||
word-break: break-all;
|
||||
|
|
@ -240,14 +240,14 @@
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.post-content figure>figcaption {
|
||||
.post-content figure > figcaption {
|
||||
color: var(--primary);
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin: 8px 0 16px;
|
||||
}
|
||||
|
||||
.post-content figure>figcaption>p {
|
||||
.post-content figure > figcaption > p {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
|
|
@ -267,8 +267,7 @@
|
|||
|
||||
.toc details summary {
|
||||
cursor: zoom-in;
|
||||
margin-inline-start: 10px;
|
||||
user-select: none;
|
||||
margin-inline-start: 20px;
|
||||
}
|
||||
|
||||
.toc details[open] summary {
|
||||
|
|
@ -281,9 +280,8 @@
|
|||
}
|
||||
|
||||
.toc .inner {
|
||||
margin: 5px 20px 0;
|
||||
padding: 0 10px;
|
||||
opacity: 0.9;
|
||||
margin: 0 20px;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.toc li ul {
|
||||
|
|
@ -298,18 +296,10 @@
|
|||
margin-top: 56px;
|
||||
}
|
||||
|
||||
.post-footer>* {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.post-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.post-tags li {
|
||||
display: inline-block;
|
||||
margin-inline-end: 3px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.post-tags a,
|
||||
|
|
@ -322,7 +312,8 @@
|
|||
|
||||
.post-tags a {
|
||||
display: block;
|
||||
padding: 0 14px;
|
||||
padding-inline-start: 14px;
|
||||
padding-inline-end: 14px;
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
line-height: 34px;
|
||||
|
|
@ -335,16 +326,15 @@
|
|||
}
|
||||
|
||||
.share-buttons {
|
||||
padding: 10px;
|
||||
margin: 14px 0;
|
||||
padding-inline-start: var(--radius);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
overflow-x: auto;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.share-buttons li,
|
||||
.share-buttons a {
|
||||
display: inline-flex;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.share-buttons a:not(:last-of-type) {
|
||||
|
|
@ -365,8 +355,10 @@ h6:hover .anchor {
|
|||
}
|
||||
|
||||
.paginav {
|
||||
margin: 10px 0;
|
||||
display: flex;
|
||||
line-height: 30px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.paginav a {
|
||||
|
|
|
|||
|
|
@ -10,20 +10,19 @@
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.profile .profile_inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
.profile .profile_inner h1 {
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.profile img {
|
||||
display: inline-table;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
flex-wrap: wrap;
|
||||
max-width: 400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.button {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
PaperMod v8+
|
||||
PaperMod v7
|
||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2025 adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
html {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
overflow-y: scroll;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
a,
|
||||
|
|
@ -22,10 +20,12 @@ h5,
|
|||
h6 {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Space Mono';
|
||||
src: url(/fonts/SpaceMono-Regular.ttf);
|
||||
}
|
||||
|
||||
body {
|
||||
/*font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;*/
|
||||
font-family: 'Space Mono', sans-serif;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
--secondary: rgb(108, 108, 108);
|
||||
--tertiary: rgb(214, 214, 214);
|
||||
--content: rgb(31, 31, 31);
|
||||
--code-block-bg: rgb(28, 29, 33);
|
||||
--hljs-bg: rgb(28, 29, 33);
|
||||
--code-bg: rgb(245, 245, 245);
|
||||
--border: rgb(238, 238, 238);
|
||||
}
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
--secondary: rgb(155, 156, 157);
|
||||
--tertiary: rgb(65, 66, 68);
|
||||
--content: rgb(196, 196, 197);
|
||||
--code-block-bg: rgb(46, 46, 51);
|
||||
--hljs-bg: rgb(46, 46, 51);
|
||||
--code-bg: rgb(55, 56, 62);
|
||||
--border: rgb(51, 51, 51);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,12 +36,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 340px) {
|
||||
.share-buttons {
|
||||
justify-content: unset;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
/* terms; profile-mode; post-single; post-entry; post-entry; search; search */
|
||||
.terms-tags a:active,
|
||||
|
|
|
|||
63
themes/PaperMod/assets/css/hljs/an-old-hope.min.css
vendored
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #b6b18b;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-id,
|
||||
.hljs-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-variable {
|
||||
color: #eb3c54;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-link,
|
||||
.hljs-literal,
|
||||
.hljs-meta,
|
||||
.hljs-number,
|
||||
.hljs-params,
|
||||
.hljs-type {
|
||||
color: #e7ce56;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #ee7c2b;
|
||||
}
|
||||
|
||||
.hljs-addition,
|
||||
.hljs-bullet,
|
||||
.hljs-string,
|
||||
.hljs-symbol {
|
||||
color: #4fb4d7;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-title {
|
||||
color: #78bb65;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #b45ea4;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #1c1d21;
|
||||
color: #c0c5ce;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
.chroma {
|
||||
background-color: unset !important;
|
||||
}
|
||||
|
||||
.chroma .hl {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.chroma .lnt {
|
||||
padding: 0 0 0 12px;
|
||||
}
|
||||
|
||||
.highlight pre.chroma code {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.highlight pre.chroma .line .cl,
|
||||
.chroma .ln {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.chroma .lntd:last-of-type {
|
||||
width: 100%;
|
||||
}
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
/* Background */ .bg { color: #cad3f5; background-color: #24273a; }
|
||||
/* PreWrapper */ .chroma { color: #cad3f5; background-color: #24273a; }
|
||||
/* Other */ .chroma .x { }
|
||||
/* Error */ .chroma .err { color: #ed8796 }
|
||||
/* CodeLine */ .chroma .cl { }
|
||||
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||
/* LineHighlight */ .chroma .hl { background-color: #474733 }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 }
|
||||
/* Line */ .chroma .line { display: flex; }
|
||||
/* Keyword */ .chroma .k { color: #c6a0f6 }
|
||||
/* KeywordConstant */ .chroma .kc { color: #f5a97f }
|
||||
/* KeywordDeclaration */ .chroma .kd { color: #ed8796 }
|
||||
/* KeywordNamespace */ .chroma .kn { color: #8bd5ca }
|
||||
/* KeywordPseudo */ .chroma .kp { color: #c6a0f6 }
|
||||
/* KeywordReserved */ .chroma .kr { color: #c6a0f6 }
|
||||
/* KeywordType */ .chroma .kt { color: #ed8796 }
|
||||
/* Name */ .chroma .n { }
|
||||
/* NameAttribute */ .chroma .na { color: #8aadf4 }
|
||||
/* NameBuiltin */ .chroma .nb { color: #91d7e3 }
|
||||
/* NameBuiltinPseudo */ .chroma .bp { color: #91d7e3 }
|
||||
/* NameClass */ .chroma .nc { color: #eed49f }
|
||||
/* NameConstant */ .chroma .no { color: #eed49f }
|
||||
/* NameDecorator */ .chroma .nd { color: #8aadf4; font-weight: bold }
|
||||
/* NameEntity */ .chroma .ni { color: #8bd5ca }
|
||||
/* NameException */ .chroma .ne { color: #f5a97f }
|
||||
/* NameFunction */ .chroma .nf { color: #8aadf4 }
|
||||
/* NameFunctionMagic */ .chroma .fm { color: #8aadf4 }
|
||||
/* NameLabel */ .chroma .nl { color: #91d7e3 }
|
||||
/* NameNamespace */ .chroma .nn { color: #f5a97f }
|
||||
/* NameOther */ .chroma .nx { }
|
||||
/* NameProperty */ .chroma .py { color: #f5a97f }
|
||||
/* NameTag */ .chroma .nt { color: #c6a0f6 }
|
||||
/* NameVariable */ .chroma .nv { color: #f4dbd6 }
|
||||
/* NameVariableClass */ .chroma .vc { color: #f4dbd6 }
|
||||
/* NameVariableGlobal */ .chroma .vg { color: #f4dbd6 }
|
||||
/* NameVariableInstance */ .chroma .vi { color: #f4dbd6 }
|
||||
/* NameVariableMagic */ .chroma .vm { color: #f4dbd6 }
|
||||
/* Literal */ .chroma .l { }
|
||||
/* LiteralDate */ .chroma .ld { }
|
||||
/* LiteralString */ .chroma .s { color: #a6da95 }
|
||||
/* LiteralStringAffix */ .chroma .sa { color: #ed8796 }
|
||||
/* LiteralStringBacktick */ .chroma .sb { color: #a6da95 }
|
||||
/* LiteralStringChar */ .chroma .sc { color: #a6da95 }
|
||||
/* LiteralStringDelimiter */ .chroma .dl { color: #8aadf4 }
|
||||
/* LiteralStringDoc */ .chroma .sd { color: #6e738d }
|
||||
/* LiteralStringDouble */ .chroma .s2 { color: #a6da95 }
|
||||
/* LiteralStringEscape */ .chroma .se { color: #8aadf4 }
|
||||
/* LiteralStringHeredoc */ .chroma .sh { color: #6e738d }
|
||||
/* LiteralStringInterpol */ .chroma .si { color: #a6da95 }
|
||||
/* LiteralStringOther */ .chroma .sx { color: #a6da95 }
|
||||
/* LiteralStringRegex */ .chroma .sr { color: #8bd5ca }
|
||||
/* LiteralStringSingle */ .chroma .s1 { color: #a6da95 }
|
||||
/* LiteralStringSymbol */ .chroma .ss { color: #a6da95 }
|
||||
/* LiteralNumber */ .chroma .m { color: #f5a97f }
|
||||
/* LiteralNumberBin */ .chroma .mb { color: #f5a97f }
|
||||
/* LiteralNumberFloat */ .chroma .mf { color: #f5a97f }
|
||||
/* LiteralNumberHex */ .chroma .mh { color: #f5a97f }
|
||||
/* LiteralNumberInteger */ .chroma .mi { color: #f5a97f }
|
||||
/* LiteralNumberIntegerLong */ .chroma .il { color: #f5a97f }
|
||||
/* LiteralNumberOct */ .chroma .mo { color: #f5a97f }
|
||||
/* Operator */ .chroma .o { color: #91d7e3; font-weight: bold }
|
||||
/* OperatorWord */ .chroma .ow { color: #91d7e3; font-weight: bold }
|
||||
/* Punctuation */ .chroma .p { }
|
||||
/* Comment */ .chroma .c { color: #6e738d; font-style: italic }
|
||||
/* CommentHashbang */ .chroma .ch { color: #6e738d; font-style: italic }
|
||||
/* CommentMultiline */ .chroma .cm { color: #6e738d; font-style: italic }
|
||||
/* CommentSingle */ .chroma .c1 { color: #6e738d; font-style: italic }
|
||||
/* CommentSpecial */ .chroma .cs { color: #6e738d; font-style: italic }
|
||||
/* CommentPreproc */ .chroma .cp { color: #6e738d; font-style: italic }
|
||||
/* CommentPreprocFile */ .chroma .cpf { color: #6e738d; font-weight: bold; font-style: italic }
|
||||
/* Generic */ .chroma .g { }
|
||||
/* GenericDeleted */ .chroma .gd { color: #ed8796; background-color: #363a4f }
|
||||
/* GenericEmph */ .chroma .ge { font-style: italic }
|
||||
/* GenericError */ .chroma .gr { color: #ed8796 }
|
||||
/* GenericHeading */ .chroma .gh { color: #f5a97f; font-weight: bold }
|
||||
/* GenericInserted */ .chroma .gi { color: #a6da95; background-color: #363a4f }
|
||||
/* GenericOutput */ .chroma .go { }
|
||||
/* GenericPrompt */ .chroma .gp { }
|
||||
/* GenericStrong */ .chroma .gs { font-weight: bold }
|
||||
/* GenericSubheading */ .chroma .gu { color: #f5a97f; font-weight: bold }
|
||||
/* GenericTraceback */ .chroma .gt { color: #ed8796 }
|
||||
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
|
||||
/* TextWhitespace */ .chroma .w { }
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
}
|
||||
|
||||
.post-content :not(table) ::-webkit-scrollbar-thumb {
|
||||
border: 2px solid var(--code-block-bg);
|
||||
border: 2px solid var(--hljs-bg);
|
||||
background: rgb(113, 113, 117);
|
||||
}
|
||||
|
||||
|
|
@ -60,4 +60,4 @@
|
|||
width: 19px;
|
||||
height: 11px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -77,12 +77,7 @@ sInput.onkeyup = function (e) {
|
|||
// run a search query (for "term") every time a letter is typed
|
||||
// in the search box
|
||||
if (fuse) {
|
||||
let results;
|
||||
if (params.fuseOpts) {
|
||||
results = fuse.search(this.value.trim(), {limit: params.fuseOpts.limit}); // the actual query being run using fuse.js along with options
|
||||
} else {
|
||||
results = fuse.search(this.value.trim()); // the actual query being run using fuse.js
|
||||
}
|
||||
const results = fuse.search(this.value.trim()); // the actual query being run using fuse.js
|
||||
if (results.length !== 0) {
|
||||
// build our html if result exists
|
||||
let resultSet = ''; // our results bucket
|
||||
|
|
|
|||
6
themes/PaperMod/assets/js/fuse.basic.min.js
vendored
44
themes/PaperMod/assets/js/highlight.min.js
vendored
Normal file
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
PaperMod v8+
|
||||
PaperMod v7
|
||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2025 adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Předchozí"
|
||||
|
||||
- id: next_page
|
||||
translation: "Další"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "slovo"
|
||||
other: "{{ .Count }} slov"
|
||||
|
||||
- id: toc
|
||||
translation: "Obsah"
|
||||
|
||||
- id: translations
|
||||
translation: "Překlady"
|
||||
|
||||
- id: home
|
||||
translation: "Domů"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Upravit"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopírovat"
|
||||
|
||||
- id: code_copied
|
||||
translation: "zkopírováno!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Edellinen"
|
||||
|
||||
- id: next_page
|
||||
translation: "Seuraava"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} minuuttia"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "sana"
|
||||
other: "{{ .Count }} sanaa"
|
||||
|
||||
- id: toc
|
||||
translation: "Sisällysluettelo"
|
||||
|
||||
- id: translations
|
||||
translation: "Käännökset"
|
||||
|
||||
- id: home
|
||||
translation: "Etusivu"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Muokkaa"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopioi"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopioitu!"
|
||||
|
|
@ -1,21 +1,21 @@
|
|||
- id: prev_page
|
||||
translation: "הקודם"
|
||||
translation: "קודם"
|
||||
|
||||
- id: next_page
|
||||
translation: "הבא"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "דקה אחת"
|
||||
other: "{{ .Count }} דקות"
|
||||
one : "דקה אחת"
|
||||
other: "דקות {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "מילה אחת"
|
||||
other: "{{ .Count }} מילים"
|
||||
one : "word"
|
||||
other: "מילים {{ .Count }} "
|
||||
|
||||
- id: toc
|
||||
translation: "תוכן עניינים"
|
||||
translation: "תוכן העניינים"
|
||||
|
||||
- id: translations
|
||||
translation: "תרגומים"
|
||||
|
|
@ -30,4 +30,4 @@
|
|||
translation: "העתק"
|
||||
|
||||
- id: code_copied
|
||||
translation: "הועתק!"
|
||||
translation: "!הועתק"
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Forrige Side"
|
||||
|
||||
- id: next_page
|
||||
translation: "Neste Side"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "ord"
|
||||
other: "{{ .Count }} ord"
|
||||
|
||||
- id: toc
|
||||
translation: "Innholdsfortegnelse"
|
||||
|
||||
- id: translations
|
||||
translation: "Oversettelser"
|
||||
|
||||
- id: home
|
||||
translation: "Hjem"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Rediger"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopiert!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Prec."
|
||||
|
||||
- id: next_page
|
||||
translation: "Seg."
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "mot"
|
||||
other: "{{ .Count }} motss"
|
||||
|
||||
- id: toc
|
||||
translation: "Taula de contengut"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduccions"
|
||||
|
||||
- id: home
|
||||
translation: "Acuèlh"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Modificar"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiar"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiat !"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "ਪਿਛਲਾ"
|
||||
|
||||
- id: next_page
|
||||
translation: "ਅਗਲਾ"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 ਮਿੰਟ"
|
||||
other: "{{ .Count }} ਮਿੰਟ"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "ਸ਼ਬਦ"
|
||||
other: "{{ .Count }} ਸ਼ਬਦ"
|
||||
|
||||
- id: toc
|
||||
translation: "ਤਤਕਰਾ"
|
||||
|
||||
- id: translations
|
||||
translation: "ਅਨੁਵਾਦ"
|
||||
|
||||
- id: home
|
||||
translation: "ਘਰ"
|
||||
|
||||
- id: edit_post
|
||||
translation: "ਸੋਧ"
|
||||
|
||||
- id: code_copy
|
||||
translation: "ਕਾਪੀ"
|
||||
|
||||
- id: code_copied
|
||||
translation: "ਕਾਪੀ ਕੀਤੀ ਗਈ!!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "پِچھلا"
|
||||
|
||||
- id: next_page
|
||||
translation: "اگلا"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "ایک منٹ"
|
||||
other: "مِنٹ {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "لفظ"
|
||||
other: "لفظ {{ .Count }}"
|
||||
|
||||
- id: toc
|
||||
translation: "تتکرا"
|
||||
|
||||
- id: translations
|
||||
translation: "انوواد"
|
||||
|
||||
- id: home
|
||||
translation: "گھر"
|
||||
|
||||
- id: edit_post
|
||||
translation: "سودھ"
|
||||
|
||||
- id: code_copy
|
||||
translation: "کاپی"
|
||||
|
||||
- id: code_copied
|
||||
translation: "کاپی کیتی گئی!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Înapoi"
|
||||
|
||||
- id: next_page
|
||||
translation: "Înainte"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 minut"
|
||||
other: "{{ .Count }} minute"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "cuvânt"
|
||||
other: "{{ .Count }} cuvinte"
|
||||
|
||||
- id: toc
|
||||
translation: "Sumar"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduceri"
|
||||
|
||||
- id: home
|
||||
translation: "Acasă"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Editează"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiază"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiat!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Predch"
|
||||
|
||||
- id: next_page
|
||||
translation: "Ďaľší"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "slovo"
|
||||
other: "{{ .Count }} slov"
|
||||
|
||||
- id: toc
|
||||
translation: "Obsah"
|
||||
|
||||
- id: translations
|
||||
translation: "Preklady"
|
||||
|
||||
- id: home
|
||||
translation: "Domov"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Upraviť"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopírovať"
|
||||
|
||||
- id: code_copied
|
||||
translation: "skopírované!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "Uliopita"
|
||||
|
||||
- id: next_page
|
||||
translation: "Ujao"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "dakika 1"
|
||||
other: "dakika {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "neno"
|
||||
other: "maneno {{ .Count }}"
|
||||
|
||||
- id: toc
|
||||
translation: "Jedwali la Yaliyomo"
|
||||
|
||||
- id: translations
|
||||
translation: "Tafsiri"
|
||||
|
||||
- id: home
|
||||
translation: "Mwanzo"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Hariri"
|
||||
|
||||
- id: code_copy
|
||||
translation: "nakili"
|
||||
|
||||
- id: code_copied
|
||||
translation: "nakiliwa!"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
- id: prev_page
|
||||
translation: "ก่อนหน้า"
|
||||
|
||||
- id: next_page
|
||||
translation: "ถัดไป"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 นาที"
|
||||
other: "{{ .Count }} นาที"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "คำ"
|
||||
other: "{{ .Count }} คำ"
|
||||
|
||||
- id: toc
|
||||
translation: "สารบัญ"
|
||||
|
||||
- id: translations
|
||||
translation: "การแปล"
|
||||
|
||||
- id: home
|
||||
translation: "หน้าหลัก"
|
||||
|
||||
- id: edit_post
|
||||
translation: "แก้ไข"
|
||||
|
||||
- id: code_copy
|
||||
translation: "คัดลอก"
|
||||
|
||||
- id: code_copied
|
||||
translation: "คัดลอกแล้ว!"
|
||||
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
- id: words
|
||||
translation:
|
||||
one : "sözcük"
|
||||
other: "{{ .Count }} sözcük"
|
||||
one : "kelime"
|
||||
other: "{{ .Count }} kelime"
|
||||
|
||||
- id: toc
|
||||
translation: "İçindekiler"
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
translation: "Çeviriler"
|
||||
|
||||
- id: home
|
||||
translation: "Ana Sayfa"
|
||||
translation: "Anasayfa"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Düzenle"
|
||||
|
|
|
|||
|
|
@ -6,14 +6,9 @@
|
|||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 phút"
|
||||
one : "1 phút"
|
||||
other: "{{ .Count }} phút"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "từ"
|
||||
other: "{{ .Count }} từ"
|
||||
|
||||
- id: toc
|
||||
translation: "Mục lục"
|
||||
|
||||
|
|
@ -23,9 +18,6 @@
|
|||
- id: home
|
||||
translation: "Trang chủ"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Chỉnh sửa"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Sao chép"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1 @@
|
|||
{{- $u := urls.Parse .Destination -}}
|
||||
{{- $src := $u.String -}}
|
||||
{{- if not $u.IsAbs -}}
|
||||
{{- $path := strings.TrimPrefix "./" $u.Path }}
|
||||
{{- with or (.PageInner.Resources.Get $path) (resources.Get $path) -}}
|
||||
{{- $src = .RelPermalink -}}
|
||||
{{- with $u.RawQuery -}}
|
||||
{{- $src = printf "%s?%s" $src . -}}
|
||||
{{- end -}}
|
||||
{{- with $u.Fragment -}}
|
||||
{{- $src = printf "%s#%s" $src . -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $attributes := merge .Attributes (dict "alt" .Text "src" $src "title" (.Title | transform.HTMLEscape) "loading" "lazy") -}}
|
||||
<img
|
||||
{{- range $k, $v := $attributes -}}
|
||||
{{- if $v -}}
|
||||
{{- printf " %s=%q" $k $v | safeHTMLAttr -}}
|
||||
{{- end -}}
|
||||
{{- end -}}>
|
||||
{{- /**/ -}}
|
||||
<img loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}" {{ end }} />
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
{{- if (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
|
|
@ -36,35 +36,19 @@
|
|||
{{- range $pages.GroupByPublishDate "2006" }}
|
||||
{{- if ne .Key "0001" }}
|
||||
<div class="archive-year">
|
||||
{{- $year := replace .Key "0001" "" }}
|
||||
<h2 class="archive-year-header" id="{{ $year }}">
|
||||
<a class="archive-header-link" href="#{{ $year }}">
|
||||
{{- $year -}}
|
||||
</a>
|
||||
<sup class="archive-count"> {{ len .Pages }}</sup>
|
||||
<h2 class="archive-year-header">
|
||||
{{- replace .Key "0001" "" }}<sup class="archive-count"> {{ len .Pages }}</sup>
|
||||
</h2>
|
||||
{{- range .Pages.GroupByDate "January" }}
|
||||
<div class="archive-month">
|
||||
<h3 class="archive-month-header" id="{{ $year }}-{{ .Key }}">
|
||||
<a class="archive-header-link" href="#{{ $year }}-{{ .Key }}">
|
||||
{{- .Key -}}
|
||||
</a>
|
||||
<sup class="archive-count"> {{ len .Pages }}</sup>
|
||||
</h3>
|
||||
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</sup></h3>
|
||||
<div class="archive-posts">
|
||||
{{- range .Pages }}
|
||||
{{- if eq .Kind "page" }}
|
||||
<div class="archive-entry">
|
||||
<h3 class="archive-entry-title entry-hint-parent">
|
||||
<h3 class="archive-entry-title">
|
||||
{{- .Title | markdownify }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="15" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h3>
|
||||
<div class="archive-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,3 @@
|
|||
{{- if lt hugo.Version "0.146.0" }}
|
||||
{{- errorf "=> hugo v0.146.0 or greater is required for hugo-PaperMod to build " }}
|
||||
{{- end -}}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
|
||||
|
||||
|
|
|
|||
|
|
@ -64,19 +64,12 @@
|
|||
{{- end }}
|
||||
|
||||
<article class="{{ $class }}">
|
||||
{{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }}
|
||||
{{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">
|
||||
<h2>
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
|
|
|
|||
|
|
@ -1,53 +1,21 @@
|
|||
{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}}
|
||||
{{- $authorEmail := "" }}
|
||||
{{- with site.Params.author }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .email }}
|
||||
{{- $authorEmail = . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- with site.Author.email }}
|
||||
{{- $authorEmail = . }}
|
||||
{{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}}
|
||||
{{- $authorName := "" }}
|
||||
{{- with site.Params.author }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .name }}
|
||||
{{- $authorName = . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- $authorName = . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- with site.Author.name }}
|
||||
{{- $authorName = . }}
|
||||
{{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- $pctx := . }}
|
||||
{{- if .IsHome }}{{ $pctx = site }}{{ end }}
|
||||
{{- $pages := slice }}
|
||||
{{- if or $.IsHome $.IsSection }}
|
||||
{{- $pages = $pctx.RegularPages }}
|
||||
{{- else }}
|
||||
{{- $pages = $pctx.Pages }}
|
||||
{{- end }}
|
||||
{{- $limit := site.Config.Services.RSS.Limit }}
|
||||
{{- if ge $limit 1 }}
|
||||
{{- $pages = $pages | first $limit }}
|
||||
{{- end }}
|
||||
{{- $pctx := . -}}
|
||||
{{- if .IsHome -}}{{ $pctx = site }}{{- end -}}
|
||||
{{- $pages := slice -}}
|
||||
{{- if or $.IsHome $.IsSection -}}
|
||||
{{- $pages = $pctx.RegularPages -}}
|
||||
{{- else -}}
|
||||
{{- $pages = $pctx.Pages -}}
|
||||
{{- end -}}
|
||||
{{- $limit := site.Config.Services.RSS.Limit -}}
|
||||
{{- if ge $limit 1 -}}
|
||||
{{- $pages = $pages | first $limit -}}
|
||||
{{- end -}}
|
||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>{{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ site.Title }}{{ end }}</title>
|
||||
<title>{{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ site.Title }}{{ end }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<description>Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ site.Title }}</description>
|
||||
<description>Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ site.Title }}</description>
|
||||
{{- with site.Params.images }}
|
||||
<image>
|
||||
<title>{{ site.Title }}</title>
|
||||
|
|
@ -55,29 +23,29 @@
|
|||
<link>{{ index . 0 | absURL }}</link>
|
||||
</image>
|
||||
{{- end }}
|
||||
<generator>Hugo -- {{ hugo.Version }}</generator>
|
||||
<language>{{ site.Language.LanguageCode }}</language>{{ with $authorEmail }}
|
||||
<managingEditor>{{.}}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor>{{ end }}{{ with $authorEmail }}
|
||||
<webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster>{{ end }}{{ with site.Copyright }}
|
||||
<copyright>{{ . | markdownify | plainify | strings.TrimPrefix "© " }}</copyright>{{ end }}{{ if not .Date.IsZero }}
|
||||
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
{{- with .OutputFormats.Get "RSS" }}
|
||||
<generator>Hugo -- gohugo.io</generator>{{ with site.LanguageCode }}
|
||||
<language>{{.}}</language>{{end}}{{ with site.Author.email }}
|
||||
<managingEditor>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with site.Author.email }}
|
||||
<webMaster>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with site.Copyright }}
|
||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
{{- with .OutputFormats.Get "RSS" -}}
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{- end }}
|
||||
{{- range $pages }}
|
||||
{{- end -}}
|
||||
{{ range $pages }}
|
||||
{{- if and (ne .Layout `search`) (ne .Layout `archives`) }}
|
||||
<item>
|
||||
<title>{{ .Title }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
|
||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{ with site.Author.email }}<author>{{.}}{{ with site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||
<guid>{{ .Permalink }}</guid>
|
||||
<description>{{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}}</description>
|
||||
{{- if and site.Params.ShowFullTextinRSS .Content }}
|
||||
{{- if site.Params.ShowFullTextinRSS }}
|
||||
<content:encoded>{{ (printf "<![CDATA[%s]]>" .Content) | safeHTML }}</content:encoded>
|
||||
{{- end }}
|
||||
</item>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
<div id="searchbox">
|
||||
<input id="searchInput" autofocus placeholder="{{ .Params.placeholder | default (printf "%s ↵" .Title) }}"
|
||||
aria-label="search" type="search" autocomplete="off" maxlength="64">
|
||||
aria-label="search" type="search" autocomplete="off">
|
||||
<ul id="searchResults" aria-label="search results"></ul>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,16 +3,9 @@
|
|||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
{{ partial "breadcrumbs.html" . }}
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
<h1 class="post-title">
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
|
|
@ -28,8 +21,8 @@
|
|||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- $isHidden := (.Param "cover.hiddenInSingle") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" true "isHidden" $isHidden) }}
|
||||
{{- $isHidden := .Params.cover.hidden | default site.Params.cover.hiddenInSingle | default site.Params.cover.hidden }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" false "isHidden" $isHidden) }}
|
||||
{{- if (.Param "ShowToc") }}
|
||||
{{- partial "toc.html" . }}
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{{- if (.Param "ShowBreadCrumbs") -}}
|
||||
<div class="breadcrumbs">
|
||||
{{- $url := replace .Parent.Permalink (printf "%s" site.Home.Permalink) "" }}
|
||||
{{- $url := replace .Parent.Permalink (printf "%s" site.BaseURL) "" }}
|
||||
{{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}
|
||||
|
||||
<a href="{{ "" | absLangURL }}">{{ i18n "home" | default "Home" }}</a>
|
||||
|
|
|
|||
|
|
@ -1,64 +1,41 @@
|
|||
{{- with .cxt}} {{/* Apply proper context from dict */}}
|
||||
{{- if (and .Params.cover.image (not $.isHidden)) }}
|
||||
{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }}
|
||||
<figure class="entry-cover">
|
||||
{{- $loading := cond $.IsSingle "eager" "lazy" }}
|
||||
{{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }}
|
||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
||||
{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }}
|
||||
{{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }}
|
||||
|
||||
{{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $addLink := (and site.Params.cover.linkFullImages (not $.IsHome)) }}
|
||||
{{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $cover := (or $pageBundleCover $globalResourcesCover)}}
|
||||
{{- /* We are not using the .Param.cover.relative to decide the location of image */}}
|
||||
{{- /* If we have the image in pageBundle or globalResources we can process the image */}}
|
||||
|
||||
{{- $sizes := (slice "360" "480" "720" "1080" "1500") }}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
||||
{{- if hugo.IsExtended -}}
|
||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $imgdl := (.Params.cover.image) | absURL }}
|
||||
{{- if $cover -}}
|
||||
{{- $imgdl = $cover.Permalink }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $addLink }}
|
||||
<a href="{{ $imgdl }}" target="_blank" rel="noopener noreferrer">
|
||||
{{- end }}
|
||||
|
||||
{{- if $cover -}}
|
||||
{{/* i.e it is present in page bundle */}}
|
||||
{{- if $cover -}}{{/* i.e it is present in page bundle */}}
|
||||
{{- if $addLink }}<a href="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" target="_blank"
|
||||
rel="noopener noreferrer">{{ end -}}
|
||||
{{- $sizes := (slice "360" "480" "720" "1080" "1500") }}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
||||
{{- if hugo.IsExtended -}}
|
||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
||||
{{- end -}}
|
||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
||||
{{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }}
|
||||
<img loading="{{$loading}}"
|
||||
srcset='{{- range $size := $sizes -}}
|
||||
{{- if (ge $cover.Width $size) }}
|
||||
{{- printf "%s %s" (($cover.Resize (printf "%sx" $size)).Permalink) (printf "%sw," $size) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- printf "%s %dw" ($cover.Permalink) ($cover.Width) }}'
|
||||
src="{{ $cover.Permalink }}"
|
||||
sizes="(min-width: 768px) 720px, 100vw"
|
||||
width="{{ $cover.Width }}" height="{{ $cover.Height }}"
|
||||
alt="{{ $alt }}">
|
||||
<img loading="lazy" srcset="{{- range $size := $sizes -}}
|
||||
{{- if (ge $cover.Width $size) -}}
|
||||
{{ printf "%s %s" (($cover.Resize (printf "%sx" $size)).Permalink) (printf "%sw ," $size) -}}
|
||||
{{ end }}
|
||||
{{- end -}}{{$cover.Permalink }} {{printf "%dw" ($cover.Width)}}"
|
||||
sizes="(min-width: 768px) 720px, 100vw" src="{{ $cover.Permalink }}" alt="{{ $alt }}"
|
||||
width="{{ $cover.Width }}" height="{{ $cover.Height }}">
|
||||
{{- else }}{{/* Unprocessable image or responsive images disabled */}}
|
||||
<img loading="{{ $loading }}" src="{{ $imgdl }}" alt="{{ $alt }}">
|
||||
<img loading="lazy" src="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- /* For absolute urls and external links, no img processing here */}}
|
||||
<img loading="{{ $loading }}" src="{{ $imgdl }}" alt="{{ $alt }}">
|
||||
{{- else }}{{/* For absolute urls and external links, no img processing here */}}
|
||||
{{- if $addLink }}<a href="{{ (.Params.cover.image) | absURL }}" target="_blank"
|
||||
rel="noopener noreferrer">{{ end -}}
|
||||
<img loading="lazy" src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
{{- end }}
|
||||
|
||||
{{- if $addLink }}
|
||||
</a>
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Display Caption */}}
|
||||
{{- if $.IsSingle }}
|
||||
{{ with .Params.cover.caption -}}
|
||||
<figcaption>{{ . | markdownify }}</figcaption>
|
||||
{{- end }}
|
||||
{{- if $addLink }}</a>{{ end -}}
|
||||
{{/* Display Caption */}}
|
||||
{{- if not $.IsHome }}
|
||||
{{ with .Params.cover.caption }}<p>{{ . | markdownify }}</p>{{- end }}
|
||||
{{- end }}
|
||||
</figure>
|
||||
{{- end }}{{/* End image */}}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
{{- $fileUrlPath := path.Join .File.Path }}
|
||||
|
||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} | {{- end -}}
|
||||
<a href="{{ .Params.editPost.URL | default site.Params.editPost.URL }}{{ if .Params.editPost.appendFilePath | default ( site.Params.editPost.appendFilePath | default false ) }}/{{ $fileUrlPath }}{{ end }}" rel="noopener noreferrer edit" target="_blank">
|
||||
<a href="{{ .Params.editPost.URL | default site.Params.editPost.URL }}{{ if .Params.editPost.appendFilePath | default ( site.Params.editPost.appendFilePath | default false ) }}/{{ $fileUrlPath }}{{ end }}" rel="noopener noreferrer" target="_blank">
|
||||
{{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}}
|
||||
</a>
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,10 @@
|
|||
{{- if not (.Param "hideFooter") }}
|
||||
<footer class="footer">
|
||||
{{- if not site.Params.footer.hideCopyright }}
|
||||
{{- if site.Copyright }}
|
||||
<span>{{ site.Copyright | markdownify }}</span>
|
||||
{{- else }}
|
||||
<span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span>
|
||||
{{- end }}
|
||||
{{- print " · "}}
|
||||
{{- if site.Copyright }}
|
||||
<span>{{ site.Copyright | markdownify }}</span>
|
||||
{{- else }}
|
||||
<span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span>
|
||||
{{- end }}
|
||||
|
||||
{{- with site.Params.footer.text }}
|
||||
{{ . | markdownify }}
|
||||
{{- print " · "}}
|
||||
{{- end }}
|
||||
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
|
|
|||
|
|
@ -55,12 +55,12 @@
|
|||
{{- $license_css := (resources.Get "css/core/license.css") }}
|
||||
{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }}
|
||||
|
||||
{{- /* markup.highlight.noClasses should be set to `false` */}}
|
||||
{{- $chroma_styles := (resources.Get "css/includes/chroma-styles.css") }}
|
||||
{{- $chroma_mod := (resources.Get "css/includes/chroma-mod.css") }}
|
||||
{{- /* include `an-old-hope` if hljs is on */}}
|
||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default false) }}
|
||||
{{- $hljs := (cond ($isHLJSdisabled) (".chroma { background-color: unset !important;}" | resources.FromString "assets/css/hljs-blank.css") (resources.Get "css/hljs/an-old-hope.min.css")) }}
|
||||
|
||||
{{- /* order is important */}}
|
||||
{{- $core := (slice $theme_vars $reset $common $chroma_styles $chroma_mod $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }}
|
||||
{{- $core := (slice $theme_vars $reset $common $hljs $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }}
|
||||
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" | resources.Minify }}
|
||||
|
||||
{{- /* bundle all required css */}}
|
||||
|
|
@ -89,6 +89,19 @@
|
|||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Highlight.js */}}
|
||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | fingerprint }}
|
||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- else }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" }}
|
||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Favicons */}}
|
||||
<link rel="icon" href="{{ site.Params.assets.favicon | default "favicon.ico" | absURL }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL }}">
|
||||
|
|
@ -124,7 +137,7 @@
|
|||
--secondary: rgb(155, 156, 157);
|
||||
--tertiary: rgb(65, 66, 68);
|
||||
--content: rgb(196, 196, 197);
|
||||
--code-block-bg: rgb(46, 46, 51);
|
||||
--hljs-bg: rgb(46, 46, 51);
|
||||
--code-bg: rgb(55, 56, 62);
|
||||
--border: rgb(51, 51, 51);
|
||||
}
|
||||
|
|
@ -150,8 +163,8 @@
|
|||
|
||||
{{- /* Misc */}}
|
||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") }}
|
||||
{{- partial "google_analytics.html" . }}
|
||||
{{- partial "templates/opengraph.html" . }}
|
||||
{{- partial "templates/twitter_cards.html" . }}
|
||||
{{- partial "templates/schema_json.html" . }}
|
||||
{{- template "_internal/google_analytics.html" . }}
|
||||
{{- template "partials/templates/opengraph.html" . }}
|
||||
{{- template "partials/templates/twitter_cards.html" . }}
|
||||
{{- template "partials/templates/schema_json.html" . }}
|
||||
{{- end -}}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@
|
|||
{{- end }}
|
||||
<div class="logo-switches">
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)" aria-label="Toggle theme">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
|
||||
{{- $lang := .Lang}}
|
||||
{{- $separator := or $label_text (not site.Params.disableThemeToggle)}}
|
||||
{{- with site.Home.Translations }}
|
||||
{{- with site.Home.AllTranslations }}
|
||||
<ul class="lang-switch">
|
||||
{{- if $separator }}<li>|</li>{{ end }}
|
||||
{{- range . -}}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
{{ .Content | markdownify }}
|
||||
</div>
|
||||
<footer class="entry-footer">
|
||||
{{ partial "social_icons.html" (dict "align" site.Params.homeInfoParams.AlignSocialIconsTo) }}
|
||||
{{ partial "social_icons.html" site.Params.socialIcons }}
|
||||
</footer>
|
||||
</article>
|
||||
{{- end -}}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
{{- end }}
|
||||
<h1>{{ .title | default site.Title | markdownify }}</h1>
|
||||
<span>{{ .subtitle | markdownify }}</span>
|
||||
{{- partial "social_icons.html" -}}
|
||||
{{- partial "social_icons.html" site.Params.socialIcons -}}
|
||||
|
||||
{{- with .buttons }}
|
||||
<div class="buttons">
|
||||
|
|
|
|||
|
|
@ -12,12 +12,10 @@
|
|||
{{- $scratch.Add "meta" (slice (i18n "words" .WordCount | default (printf "%d words" .WordCount))) }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not (.Param "hideAuthor") -}}
|
||||
{{- with (partial "author.html" .) }}
|
||||
{{- $scratch.Add "meta" (slice .) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with ($scratch.Get "meta") }}
|
||||
{{- delimit . " · " | safeHTML -}}
|
||||
{{- delimit . " · " -}}
|
||||
{{- end -}}
|
||||
|
|
|
|||
|
|
@ -13,83 +13,59 @@
|
|||
{{- $ShareButtons := (.Param "ShareButtons")}}
|
||||
{{- with $ShareButtons }}{{ $custom = true }}{{ end }}
|
||||
|
||||
<ul class="share-buttons">
|
||||
{{- if (or (cond ($custom) (in $ShareButtons "x") (true)) (cond ($custom) (in $ShareButtons "twitter") (true))) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on x"
|
||||
href="https://x.com/intent/tweet/?text={{ $title }}&url={{ $pageurl }}&hashtags={{- $.Scratch.Get "tags" -}}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<div class="share-buttons">
|
||||
{{- if (cond ($custom) (in $ShareButtons "twitter") (true)) }}
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on twitter"
|
||||
href="https://twitter.com/intent/tweet/?text={{ $title }}&url={{ $pageurl }}&hashtags={{- $.Scratch.Get "tags" -}}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-253.927,424.544c135.939,0 210.268,-112.643 210.268,-210.268c0,-3.218 0,-6.437 -0.153,-9.502c14.406,-10.421 26.973,-23.448 36.935,-38.314c-13.18,5.824 -27.433,9.809 -42.452,11.648c15.326,-9.196 26.973,-23.602 32.49,-40.92c-14.252,8.429 -30.038,14.56 -46.896,17.931c-13.487,-14.406 -32.644,-23.295 -53.946,-23.295c-40.767,0 -73.87,33.104 -73.87,73.87c0,5.824 0.613,11.494 1.992,16.858c-61.456,-3.065 -115.862,-32.49 -152.337,-77.241c-6.284,10.881 -9.962,23.601 -9.962,37.088c0,25.594 13.027,48.276 32.95,61.456c-12.107,-0.307 -23.448,-3.678 -33.41,-9.196l0,0.92c0,35.862 25.441,65.594 59.311,72.49c-6.13,1.686 -12.72,2.606 -19.464,2.606c-4.751,0 -9.348,-0.46 -13.946,-1.38c9.349,29.426 36.628,50.728 68.965,51.341c-25.287,19.771 -57.164,31.571 -91.8,31.571c-5.977,0 -11.801,-0.306 -17.625,-1.073c32.337,21.15 71.264,33.41 112.95,33.41Z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "linkedin") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url={{ $pageurl }}&title={{ $title }}&summary={{ $title }}&source={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url={{ $pageurl }}&title={{ $title }}&summary={{ $title }}&source={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "reddit") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on reddit"
|
||||
href="https://reddit.com/submit?url={{ $pageurl }}&title={{ $title }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on reddit"
|
||||
href="https://reddit.com/submit?url={{ $pageurl }}&title={{ $title }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "facebook") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "whatsapp") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text={{ $title }}%20-%20{{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text={{ $title }}%20-%20{{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "telegram") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on telegram"
|
||||
href="https://telegram.me/share/url?text={{ $title }}&url={{ $pageurl }}">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on telegram"
|
||||
href="https://telegram.me/share/url?text={{ $title }}&url={{ $pageurl }}">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "ycombinator") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t={{ $title }}&u={{ $pageurl }}">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
<div class="social-icons" {{ with .align}}align="{{.}}" {{- end }}>
|
||||
{{- range site.Params.socialIcons }}
|
||||
<a href="{{ trim .url " " | safeURL }}" target="_blank" rel="noopener noreferrer me"
|
||||
title="{{ (.title | default .name) | title }}">
|
||||
<div class="social-icons">
|
||||
{{- range . }}
|
||||
<a href="{{ trim .url " " }}" target="_blank" rel="noopener noreferrer me" title="{{ (.title | default .name) | title }}">
|
||||
{{ partial "svg.html" . }}
|
||||
</a>
|
||||
{{- end }}
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
{{- $imgs := slice }}
|
||||
{{- $imgParams := .Params.images }}
|
||||
{{- $resources := .Resources.ByType "image" -}}
|
||||
{{/* Find featured image resources if the images parameter is empty. */}}
|
||||
{{- if not $imgParams }}
|
||||
{{- $featured := $resources.GetMatch "*feature*" -}}
|
||||
{{- if not $featured }}{{ $featured = $resources.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
||||
{{- with $featured }}
|
||||
{{- $imgs = $imgs | append (dict
|
||||
"Image" .
|
||||
"RelPermalink" .RelPermalink
|
||||
"Permalink" .Permalink) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{/* Use the first one of site images as the fallback. */}}
|
||||
{{- if and (not $imgParams) (not $imgs) }}
|
||||
{{- with site.Params.images }}
|
||||
{{- $imgParams = first 1 . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{/* Parse page's images parameter. */}}
|
||||
{{- range $imgParams }}
|
||||
{{- $img := . }}
|
||||
{{- $url := urls.Parse $img }}
|
||||
{{- if eq $url.Scheme "" }}
|
||||
{{/* Internal image. */}}
|
||||
{{- with $resources.GetMatch $img -}}
|
||||
{{/* Image resource. */}}
|
||||
{{- $imgs = $imgs | append (dict
|
||||
"Image" .
|
||||
"RelPermalink" .RelPermalink
|
||||
"Permalink" .Permalink) }}
|
||||
{{- else }}
|
||||
{{- $imgs = $imgs | append (dict
|
||||
"RelPermalink" (relURL $img)
|
||||
"Permalink" (absURL $img)
|
||||
) }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{/* External image */}}
|
||||
{{- $imgs = $imgs | append (dict
|
||||
"RelPermalink" $img
|
||||
"Permalink" $img
|
||||
) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- return $imgs }}
|
||||
|
|
@ -1,86 +1,52 @@
|
|||
<meta property="og:url" content="{{ .Permalink }}">
|
||||
<meta property="og:title" content="{{ .Title }}" />
|
||||
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
|
||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
{{- if .Params.cover.image -}}
|
||||
{{- if (ne .Params.cover.relative true) }}
|
||||
<meta property="og:image" content="{{ .Params.cover.image | absURL }}" />
|
||||
{{- else}}
|
||||
<meta property="og:image" content="{{ (path.Join .RelPermalink .Params.cover.image ) | absURL }}" />
|
||||
{{- end}}
|
||||
{{- else }}
|
||||
|
||||
{{- with or site.Title site.Params.title | plainify }}
|
||||
<meta property="og:site_name" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Title site.Title site.Params.title | plainify }}
|
||||
<meta property="og:title" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape | chomp }}
|
||||
<meta property="og:description" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Params.locale site.Language.LanguageCode site.Language.Lang }}
|
||||
<meta property="og:locale" content="{{ . }}">
|
||||
{{- with $.Params.images -}}
|
||||
{{- range first 6 . }}<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
|
||||
{{- else -}}
|
||||
{{- $images := $.Resources.ByType "image" -}}
|
||||
{{- $featured := $images.GetMatch "*feature*" -}}
|
||||
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
||||
{{- with $featured -}}
|
||||
<meta property="og:image" content="{{ $featured.Permalink }}"/>
|
||||
{{- else -}}
|
||||
{{- with site.Params.images }}<meta property="og:image" content="{{ index . 0 | absURL }}"/>{{ end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
||||
{{- if .IsPage }}
|
||||
<meta property="og:type" content="article">
|
||||
{{- with .Section }}
|
||||
<meta property="article:section" content="{{ . }}">
|
||||
{{- end }}
|
||||
{{- $ISO8601 := "2006-01-02T15:04:05-07:00" }}
|
||||
{{- with .PublishDate }}
|
||||
<meta property="article:published_time" {{ .Format $ISO8601 | printf "content=%q" | safeHTMLAttr }}>
|
||||
{{- end }}
|
||||
{{- with .Lastmod }}
|
||||
<meta property="article:modified_time" {{ .Format $ISO8601 | printf "content=%q" | safeHTMLAttr }}>
|
||||
{{- end }}
|
||||
{{- range .GetTerms "tags" | first 6 }}
|
||||
<meta property="article:tag" content="{{ .Page.Title | plainify }}">
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
<meta property="og:type" content="website">
|
||||
{{- end }}
|
||||
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
|
||||
<meta property="article:section" content="{{ .Section }}" />
|
||||
{{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
|
||||
{{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if .Params.cover.image -}}
|
||||
{{- if (ne .Params.cover.relative true) }}
|
||||
<meta property="og:image" content="{{ .Params.cover.image | absURL }}">
|
||||
{{- else}}
|
||||
<meta property="og:image" content="{{ (path.Join .RelPermalink .Params.cover.image ) | absURL }}">
|
||||
{{- end}}
|
||||
{{- else }}
|
||||
{{- with partial "_funcs/get-page-images" . }}
|
||||
{{- range . | first 6 }}
|
||||
<meta property="og:image" content="{{ .Permalink }}">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
|
||||
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
|
||||
{{- with site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
|
||||
{{- with .Params.videos }}{{- range . }}
|
||||
<meta property="og:video" content="{{ . | absURL }}" />
|
||||
{{ end }}{{ end }}
|
||||
|
||||
{{- with .Params.audio }}
|
||||
{{- range . | first 6 }}
|
||||
<meta property="og:audio" content="{{ . | absURL }}">
|
||||
{{- /* If it is part of a series, link to related articles */}}
|
||||
{{- $permalink := .Permalink }}
|
||||
{{- $siteSeries := site.Taxonomies.series }}
|
||||
{{ with .Params.series }}{{- range $name := . }}
|
||||
{{- $series := index $siteSeries ($name | urlize) }}
|
||||
{{- range $page := first 6 $series.Pages }}
|
||||
{{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{ end }}{{ end }}
|
||||
|
||||
{{- with .Params.videos }}
|
||||
{{- range . | first 6 }}
|
||||
<meta property="og:video" content="{{ . | absURL }}">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- range .GetTerms "series" }}
|
||||
{{- range .Pages | first 7 }}
|
||||
{{- if ne $ . }}
|
||||
<meta property="og:see_also" content="{{ .Permalink }}">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with site.Params.social }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .facebook_app_id }}
|
||||
<meta property="fb:app_id" content="{{ . }}">
|
||||
{{- else }}
|
||||
{{- with .facebook_admin }}
|
||||
<meta property="fb:admins" content="{{ . }}">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with (.Param "social.fediverse_creator") }}
|
||||
<meta name="fediverse:creator" content="{{ . }}">
|
||||
{{- end }}
|
||||
{{- /* Facebook Page Admin ID for Domain Insights */}}
|
||||
{{- with site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
|
||||
|
|
|
|||
|
|
@ -4,25 +4,21 @@
|
|||
"@context": "https://schema.org",
|
||||
"@type": "{{- ( site.Params.schema.publisherType | default "Organization") | title -}}",
|
||||
"name": {{ site.Title }},
|
||||
"url": {{ site.Home.Permalink }},
|
||||
"url": {{ site.BaseURL }},
|
||||
"description": {{ site.Params.description | plainify | truncate 180 | safeHTML }},
|
||||
{{- if (eq site.Params.schema.publisherType "Person") }}
|
||||
"image": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }},
|
||||
{{- else }}
|
||||
"logo": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }},
|
||||
{{- end }}
|
||||
"thumbnailUrl": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }},
|
||||
"sameAs": [
|
||||
{{- if site.Params.schema.sameAs }}
|
||||
{{ range $i, $e := site.Params.schema.sameAs }}{{ if $i }}, {{ end }}{{ trim $e " " }}{{ end }}
|
||||
{{- else}}
|
||||
{{ range $i, $e := site.Params.SocialIcons }}{{ if $i }}, {{ end }}{{ trim $e.url " " | safeURL }}{{ end }}
|
||||
{{ range $i, $e := site.Params.SocialIcons }}{{ if $i }}, {{ end }}{{ trim $e.url " " }}{{ end }}
|
||||
{{- end}}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
{{- else if (or .IsPage .IsSection) }}
|
||||
{{/* BreadcrumbList */}}
|
||||
{{- $url := replace .Parent.Permalink ( printf "%s" site.Home.Permalink) "" }}
|
||||
{{- $url := replace .Parent.Permalink ( printf "%s" site.BaseURL) "" }}
|
||||
{{- $lang_url := strings.TrimPrefix ( printf "%s/" .Lang) $url }}
|
||||
{{- $bc_list := (split $lang_url "/")}}
|
||||
|
||||
|
|
@ -84,11 +80,6 @@
|
|||
{{- else -}}
|
||||
{{ (path.Join .RelPermalink .Params.cover.image ) | absURL }},
|
||||
{{- end}}
|
||||
{{- else }}
|
||||
{{- $images := partial "templates/_funcs/get-page-images" . -}}
|
||||
{{- with index $images 0 -}}
|
||||
"image": {{ .Permalink }},
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
"datePublished": {{ .PublishDate }},
|
||||
"dateModified": {{ .Lastmod }},
|
||||
|
|
|
|||