Compare commits

..

30 commits

Author SHA1 Message Date
missytake f5ecb46fbb fixing english version of the awareness concept 2023-09-14 00:43:41 +02:00
0x90.space 0ea4145fc5 add english awareness page 2023-09-14 00:21:11 +02:00
missytake 4f0ca74ba6 awareness-konzept 2023-09-13 11:32:32 +02:00
0x90.space 9b05e47f49 replace bitcoin with obs talk 2023-09-10 10:30:25 +02:00
v 8f400ef0f6 exchange workshops 2023-09-05 19:04:48 +02:00
v d48a93858f fix dates 2023-09-03 21:47:12 +02:00
0x90.space 88f7e47ddf fix 2023-09-02 10:30:37 +02:00
v a049543f92 add socialmedia stuff 2023-09-02 00:48:42 +02:00
missytake 8c5ca3b96f party -> konzert 2023-09-01 23:38:58 +02:00
0x90.space ad70ec26e4 fix 2023-09-01 22:19:28 +02:00
0x90.space 28280e7cb9 fix 2023-09-01 20:32:29 +02:00
0x90.space dd97ec15f8 fix 2023-09-01 20:30:42 +02:00
0x90.space 7e4ecff075 fix 2023-09-01 20:28:23 +02:00
0x90.space 83d669055b update 2023-09-01 13:03:48 +02:00
0x90.space dca2011e30 update 2023-09-01 12:55:32 +02:00
0x90.space 710aa4c021 update 2023-09-01 08:42:32 +02:00
0x90.space 9d976a51ad add faq 2023-08-31 16:58:00 +02:00
0x90.space 94e3a5d7d9 move around 2023-08-31 16:28:59 +02:00
0x90.space 7418827ddc Add english 2023-08-31 16:24:51 +02:00
0x90.space 1bc797f880 Add mpk 2023-08-31 15:25:12 +02:00
0x90.space ad016fde52 Add lageplan 2023-08-31 15:13:14 +02:00
0x90.space 68c9552e4d New program 2023-08-31 14:53:22 +02:00
0x90.space 886c89b7bf Fixup program content 2023-08-31 02:11:56 +02:00
0x90.space 462d5997a8 Fixup program content 2023-08-31 02:10:22 +02:00
0x90.space d7bad1258d Add program content 2023-08-31 02:08:32 +02:00
v 48c5290b60 add deploy helper 2023-08-15 15:11:21 +02:00
v 469ee75203 Revert "no more language flags, name of language instead"
stop bike-shedding.

This reverts commit 83784ddcda.
2023-08-15 12:28:30 +02:00
Tamara Schmitz 83784ddcda
no more language flags, name of language instead 2023-08-15 11:41:54 +02:00
Tamara Schmitz c8f63f826d
binary kitchen does not like nonbinary kitchen :/ 2023-07-31 20:01:24 +02:00
Tamara Schmitz e51df7b9d1
add note about DECT 2023-07-29 16:11:38 +02:00
103 changed files with 808 additions and 2019 deletions

3
.gitignore vendored
View file

@ -11,6 +11,3 @@ hugo.linux
# Temporary lock file while building
/.hugo_build.lock
/node_modules/
package-lock.json

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View file

@ -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"

View file

@ -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.

View file

@ -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.

View file

@ -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 thats to complicated,
simply per mail to <workshops@schleuder.0x90.space>.
We are looking forward to your submissions!

View file

@ -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!

View file

@ -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/)

View file

@ -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/)

View file

@ -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.

View file

@ -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.

View 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)!

View 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)!

View file

@ -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.

View file

@ -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.

View file

@ -1,7 +1,6 @@
---
title: "Program and Rooms"
date: 2023-07-26T09:58:25+02:00
draft: true
---
## Site plan

View file

@ -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

View file

@ -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.

View file

@ -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:

View file

@ -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

View file

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 185 KiB

View file

@ -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
}

View file

@ -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
'';
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

View file

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 109 KiB

View file

Before

Width:  |  Height:  |  Size: 539 KiB

After

Width:  |  Height:  |  Size: 539 KiB

BIN
logo.xcf Normal file

Binary file not shown.

View file

@ -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"
}
}

View file

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

View file

@ -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

View file

@ -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.
[![hugo-papermod](https://img.shields.io/badge/Hugo--Themes-@PaperMod-blue)](https://themes.gohugo.io/themes/hugo-papermod/)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=>=v0.146.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.146.0)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=HUGO-version&message=>0.97.1&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.97.1)
[![Discord](https://img.shields.io/discord/971046860317921340?label=Discord&logo=discord)](https://discord.gg/ahpmTvhVmp)
[![GitHub](https://img.shields.io/github/license/adityatelange/hugo-PaperMod)](https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE)
![code-size](https://img.shields.io/github/languages/code-size/adityatelange/hugo-PaperMod)
[![X (formerly Twitter) URL](https://img.shields.io/badge/-Share%20on%20X-gray?style=flat&logo=x)](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 📈
[![Stargazers over time](https://starchart.cc/adityatelange/hugo-PaperMod.svg?background=%23ffffff00&axis=%23858585&line=%236b63ff)](https://starchart.cc/adityatelange/hugo-PaperMod)
<kbd>[![Stargazers over time](https://starchart.cc/adityatelange/hugo-PaperMod.svg)](https://starchart.cc/adityatelange/hugo-PaperMod)</kbd>

View file

@ -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 {

View file

@ -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;
}

View file

@ -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 {

View file

@ -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 {

View 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
*/

View file

@ -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;

View file

@ -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);
}

View file

@ -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,

View 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;
}

View file

@ -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%;
}

View file

@ -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 { }

View file

@ -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;
}
}
}

View file

@ -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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View 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
*/

View file

@ -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!"

View file

@ -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!"

View file

@ -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: "!הועתק"

View file

@ -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!"

View file

@ -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 !"

View file

@ -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: "ਕਾਪੀ ਕੀਤੀ ਗਈ!!"

View file

@ -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: "کاپی کیتی گئی!"

View file

@ -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!"

View file

@ -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é!"

View file

@ -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!"

View file

@ -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: "คัดลอกแล้ว!"

View file

@ -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"

View file

@ -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"

View file

@ -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 }} />

View file

@ -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">&nbsp;{{ len .Pages }}</sup>
<h2 class="archive-year-header">
{{- replace .Key "0001" "" }}<sup class="archive-count">&nbsp;&nbsp;{{ 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">&nbsp;{{ len .Pages }}</sup>
</h3>
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count">&nbsp;&nbsp;{{ 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">&nbsp;&nbsp;[draft]</span></sup>{{- end }}
</h3>
<div class="archive-meta">
{{- partial "post_meta.html" . -}}

View file

@ -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" }}">

View file

@ -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">&nbsp;&nbsp;[draft]</span></sup>{{- end }}
</h2>
</header>
{{- if (ne (.Param "hideSummary") true) }}

View file

@ -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>

View file

@ -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>

View file

@ -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">&nbsp;&nbsp;[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 }}

View file

@ -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>

View file

@ -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 */}}

View file

@ -2,7 +2,7 @@
{{- $fileUrlPath := path.Join .File.Path }}
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }}&nbsp;|&nbsp;{{- 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 }}

View file

@ -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>&copy; {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span>
{{- end }}
{{- print " · "}}
{{- if site.Copyright }}
<span>{{ site.Copyright | markdownify }}</span>
{{- else }}
<span>&copy; {{ 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> &

View file

@ -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 -}}

View file

@ -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 . -}}

View file

@ -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 -}}

View file

@ -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">

View file

@ -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 . "&nbsp;·&nbsp;" | safeHTML -}}
{{- delimit . "&nbsp;·&nbsp;" -}}
{{- end -}}

View file

@ -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 }}&amp;url={{ $pageurl }}&amp;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 }}&amp;url={{ $pageurl }}&amp;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&amp;url={{ $pageurl }}&amp;title={{ $title }}&amp;summary={{ $title }}&amp;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&amp;url={{ $pageurl }}&amp;title={{ $title }}&amp;summary={{ $title }}&amp;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 }}&amp;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 }}&amp;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>

View file

@ -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 }}

File diff suppressed because one or more lines are too long

View file

@ -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 }}

View file

@ -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 }}

View file

@ -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 }},

Some files were not shown because too many files have changed in this diff Show more