Import some projects from our old website

master
Emil Miler 2 years ago
parent 33bd6dad4a
commit ece8309788

@ -2,4 +2,5 @@
title = "Projekty" title = "Projekty"
template = "project_list.html" template = "project_list.html"
page_template = "project.html" page_template = "project.html"
sort_by = "date"
+++ +++

@ -0,0 +1,25 @@
+++
title = "Digitální rozvrhy k učebnám"
date = 2020-07-29
[extra]
status = 2
authors = ["David Zálešák", "Emil Miler", "Jiří Šebor", "Jan Vais", "Michael Šebor", "Petr Velychko"]
created = 2019-07-15
+++
Cílem projektu je vytvořit zařízení, které zobrazuje informace o učebně - probíhající výuka, následující výuka, čas a podobně. Na zařízení běží Alpine Linux s nastavenám X.org serverem, aby fungoval jako kiosk, tj. aby po zavedení systému zobrazil jednu aplikaci ve fullscreen módu.
## Schéma projektu
Displej má být umístěn před každou učebnou katedry. Data o očebně si parsuje každé začízení samo pomocí [shell skriptu](https://git.microlab.space/microlab/sisfetch). Zařízení jsou spravována vzdáleně pomocí [Ansible](https://github.com/ansible/ansible).
Původní verze projektu byla postavena na klasickém LCD displeji a ve vlastní konstrukci z překližky. Vývojem byl projekt předělán do stávající verze a původní návrh je využit v projektu [interní meteostanice](@/projekty/interni-meteostanice/index.md#zobrazovac) jako zobrazovač stavu prostředí na chodbě katedry.
## Aplikace
### Parsování SISu
### Zobrazení
![Návrh pro zobrazení](sample-layout.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

@ -0,0 +1,14 @@
+++
title = "DS213 osciloskop"
date = 2022-04-01
[extra]
status = 2
authors = ["???"]
created = 2012-04-01
+++
- [Roll mode firmware](https://github.com/xjtuecho/DS213_ECHO)
- [Resources](https://www.minidso.com/forum.php?mod=forumdisplay&fid=87)

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

@ -0,0 +1,10 @@
+++
title = "Externí meteostanice"
date = 2021-12-13
[extra]
status = 2
authors = ["Emil Miler", "Michal Douša"]
created = 2021-11-22
+++

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

@ -1,4 +0,0 @@
+++
title = "Project 0"
description = "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat."
+++

@ -1,3 +0,0 @@
+++
title = "Project 1"
+++

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

@ -0,0 +1,46 @@
+++
title = "3D tiskárna REBELIX"
date = 2020-05-08
[extra]
status = 2
authors = ["David Zálešák", "Emil Miler"]
created = 2019-10-21
+++
## Odkazy
- [reprap4u.cz/rebelix](http://reprap4u.cz/rebelix/)
- [STL soubory a zdroje](https://github.com/RepRap4U/RebeliX)
- [Dual extruder](https://github.com/RepRap4U/RebeliX/tree/master/STL%20soubory/Extrudery/Dual_extruder_experimental_1.75)
## Tištěné díly
Rozhodli jsme se na výzvu doc. Rambouska postavit tiskárnu se dvěma tryskami. Rebelix má ke stažení experimentální dual extruder, který nahradil původní převodovaný extruder. Všechny díly jsou tištěny s následujícími parametry:
- materiál PLA,
- výška vrstvy 0.3mm,
- tloušťka stěn 0.65mm (nižší pro úzké stěny, např. zuby pro řemen),
- výplň 35%.
Většina dílů je převzata z [GitHub repozitáře](https://github.com/RepRap4U/RebeliX) RepRap4U. Pro uchycení hotendů byl použit [upravený díl](https://www.thingiverse.com/thing:1628415) s kroužkem pro uchycení indukční sondy.
### Vlastní úpravy dílů
Jako vlastní vylepšení David upravil některé původní díly, z nichž všechny jsou ke stažení na našem [repozitáři se všemy díly](#) pro náš model tiskárny.
Chtěli jsme původní M5 závitovou tyč nahradit trapézovými tyčemi se stoupáním 8mm, které mají větší průměr a jsou vedeny velkou maticí. Bylo třeba upravit koncové díly osy XZ, aby tyč seděla a matice bylo možné zašroubovat.
Po změně předchozích dílů nebylo možné použít původní díly pro dual extruder, jelikož pravý motor by se zasekával o TR matici. Vozík osy X musel být zvýšen o 3mm a díry posunuty tak, aby se zachovala správná délka šroubů.
Posledním upraveným dílem je páčka pro přítlak filamentu na dual extruderu, která je v původním návrhu krátká a je obtížné ji otevřít pro práci s filamentem. David páčku prodloužil a zkosil, aby za ní lépe tahat bez lámání nehtů. Také byla prodloužena oválná díra na šroub s pružinkou pro přítlak, aby bylo možné páčku více vyklánět bez zasekávání o šroub.
![Páčka extruderu](extruder-packa.jpg)
## Hardware a spojovací materiál
## Elektronika
## Firmware

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

@ -0,0 +1,27 @@
+++
title = "RGB Mixér"
date = 2020-01-03
[extra]
status = 2
authors = ["David Zálešák", "Emil Miler", "Lukáš Hozda"]
created = 2019-12-29
+++
## Komunikační protokol
Vysílač odesílá paket s daty, ve kterém je obsažená adresa kanálu [R, G, B] a osmibitová hodnota (0-255) stavu kanálu. Každý paket může bát odeslán několikrát pro zvýšení spolehlivosti přenosu, ovšem snižuje se tím rychlost možných změn.
Rozložení datového paketu:
```
+---------+-------+
| channel | value |
+---------+-------+
8b 8b
```
## Software
Zdrojový kód k vysílači i přijímači je v našem [Git repozitáři](https://git.microlab.space/microlab/rgb-mixer/src/branch/master/src).

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

@ -0,0 +1,65 @@
+++
title = "Softwarově Definované Rádio"
date = 2022-04-19
[extra]
status = 2
authors = ["David Zálešák", "Emil Miler"]
created = 2019-10-21
+++
SDR je modrní druh rádia, který funguje na principu, že co největší část zpracování signálu probíhá softwarově v počítači. Nevýhodou je složitá matematika a náročnost na výpočetní výkon, ovšem v dnešní době už výpoetní výkon není problém.
Se softwarově definovaným rádiem lze přijímat obrovské množství signálů, přičemž některá zařízení umí i vysílat. To lze využít například pro testování bepečnosti v rámci radiokomunikací.
## Seznam sub-projektů
- [Stavba antén](@/projekty/sdr/stavba-anten/index.md)
- [Replay útok](@/projekty/sdr/replay/index.md)
- [Pager](@/projekty/sdr/pager/index.md)
- [Odchytávání dat na 433MHz](@/projekty/sdr/rtl_433/index.md)
## Náš hardware
### Rádia
- [BladeRF 2.0 XA4](https://www.nuand.com/bladerf-2-0-micro/)
- RX 70 -- 6000 MHz
- TX 47 -- 6000 MHz
- ADC
- 61.44 MSPS (56 MHz bandwidth filter)
- +8 dBm output
- 3383 kb FPGA
- [HackRF One](https://greatscottgadgets.com/hackrf/one/) (2x)
- [RTL-SDR](https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr)
- DVB-T tuner s [RTL2832U](https://www.realtek.com/en/products/communications-network-ics/item/rtl2832u)
### Antény
- [ANT500](https://greatscottgadgets.com/ant500/)
## Užitečné odkazy
- [brmlab.cz/project/sdr](http://brmlab.cz/project/sdr/start)
- [sigidwiki.com](https://www.sigidwiki.com/wiki/Signal_Identification_Guide)
## Software
- [Gqrx](http://gqrx.dk/) – Univerzální přijímač s demodulátorem.
- [Gqrx-scanner](https://github.com/neural75/gqrx-scanner) – Frekvenční skener pro Gqrx.
- [Kukuruku](https://brmlab.cz/user/jenda/kukuruku) – Interaktivní SDR klient od [Jendy Hracha](https://jenda.hrach.eu/).
- [Fldigi](http://www.w1hkj.com/) – Modem pro zvukovou kartu k (de)modulaci a (de)kódování mnoha signálů.
- [GNURadio](https://www.gnuradio.org/) – Švícarský nůž pro SDR.
- [GNURadioCompanion](https://wiki.gnuradio.org/index.php/GNURadioCompanion) – GUI ke GNURadiu.
- [Universal Radio Hacker](https://github.com/jopohl/urh) – Software pro snadnou analýzu protokolů.
- [qradiolink](https://github.com/qradiolink/qradiolink) – Multimode SDR pro VOIP.
- [SDRangel](http://www.sdrangel.org/) – Mocný klient pro SDR.
- [SigDigger](https://batchdrake.github.io/SigDigger/) – SDR klient podobný GQRX, ale nevyužívá GNURadio.
## Přednášky a články
- Jan Hrach – [Softwarově definované rádio](https://invidio.us/watch?v=i1ZB70nPF-g)
- Jan Hrach – [Efektivní implementace útoku na šifru A5/1](https://invidio.us/watch?v=IA3NaCoA_v4)
- [SDR with HackRF](https://greatscottgadgets.com/sdr/), Podrobný videonávod základů SDR s HackRF
- [Radiokompas](https://web.archive.org/web/20200816211029/petr-kubac.blog.cz/1301/radiokompas-1)

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@ -0,0 +1,15 @@
+++
title = "Pager"
date = 2020-09-12
+++
## Nokia RDS Alpha
Funguje pravděpodobně v pásmu VKV (OIRT) 66-73 MHz.
- <https://www.radiomuseum.org/r/nokia_personal_paging_mbs_alpha.html>
- <https://www.nokiaprojectdream.com/nokia-collector-pager-beeper-text/>
- <https://www.mobilecollectors.net/phone/6071/nokia-text+pager>
![](rds-alpha.jpg)
![](rds-alpha-sn.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

@ -0,0 +1,16 @@
+++
title = "Replay útok"
date = 2019-12-21
+++
Jde o útok, jehož principem je nahrání signálu a jeho zpětném přehrání. Tento útok lze aplikovat na bezdrátové zvonky, otevírání garážnách dvěří, mikrofony a headsety, dálkové odemikání automobilů, IoT zařízení a na podobné bezdrátové implementace.
Jdnoduché vysvětlení je na příkladu bezdrátového zvonku, kde před domem je umístěno tlačítko a v bytě je do sítě připojen přijímač. Přijímač poslouchá na dané frekvenci a pokud zachytí specifický signál, zahraje tón. Přijímač jsou s vysílačem dohodnuti na společném binárním kódu. Ten lze odchytit a později přehrát, tj. zvonit na zvonek bez přístupu k originálnímu vysílači.
![Waveform zachyceného signálu](waveform.png)
{# audio(src="zvonek.ogg") #}
Na obrázku jsou vidět zakódovaná binární data `0010001100100100010100010`, tj. 26 bitů zamodulovaných v [ASK](https://cs.wikipedia.org/wiki/Kl%C3%AD%C4%8Dov%C3%A1n%C3%AD_amplitudov%C3%BDm_posuvem). Signál můžeme analyzovat v softwaru [Universal Radio Hacker](https://github.com/jopohl/urh), který vám usnadní jeho dekódování.
{# video(src="replay.mp4") #}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

@ -0,0 +1,30 @@
+++
title = "Odchytávání dat na 433MHz"
date = 2021-11-17
+++
## HackRF
```
rtl_433 -d HackRF -g AMP=1,LNA=33,VGA=62 -f 433.92M -C si -s 2000k
```
Ve výchozím nastavení očekává `rtl_433` RTL-SDR. Pokud používáme jiné rádio, je nutné předat přepínač `-d ""`, který vybere defaultní rádio v seznamu soapysdr, nebo můžeme specifikovat přímo `-d HackRF`.
Pro správný příjem signálu je nutné nastavit GAIN. HackRF má tři možná nastavení příjmu, tj. `-g AMP=0,LNA=16,VGA=20`.
> HackRF (both Jawbreaker and One) provides three different analog gain controls on RX and two on TX. The three RX gain controls are at the RF (“amp”, 0 or 14 dB), IF (“lna”, 0 to 40 dB in 8 dB steps), and baseband (“vga”, 0 to 62 dB in 2 dB steps) stages. The two TX gain controls are at the RF (0 or 14 dB) and IF (0 to 47 dB in 1 dB steps) stages.
V ideálním případě je předzesilovač `AMP` na hodnotě 0, pomocí `LNA` se nastaví dostatečně silný příjem bez šumu a signál se poté může softwarově zesílit pomocí `VGA`.
Frekvence může být jedna `-f 433.92M`, nebo lze přeskakovat mezi více frekvencemi v intervalu, například:
```
-f 433.92M -f 434M -f 315M -H 30
```
Tento modifikátor by způsobil, že program by ladil frekvence 433.92MHz, 434MHz a 315MHz v intervalu 30s.
Přepínačem `-C si` nastavíme výstup v metrických jednotkách a přepínačem `-s 2000k` nastavíme sample rate.
![rtl_433 output](rtl_433-output.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,24 @@
+++
title = "Stavba antén"
date = 2020-09-12
+++
## Zajímavé odkazy
- [Three Easy DIY Antennas for Beginners](https://discussions.flightaware.com/t/three-easy-diy-antennas-for-beginners/16348)
- [Spider omni](https://lucsmall.com/2017/02/06/making-antennas-for-1090mhz-ads-b-aircraft-tracking/)
## Vzorec pro výpočet délky antény
```
vlnova_delka = rychlost_svetla / frekvence
```
Rychlost světla je `299.972458 m/s`.
## Spider omni
### Nákupní seznam
- [Koaxiální konektor do panelu](https://www.gme.cz/koaxialni-konektor-uhf-zz)
- Měděný drát

@ -0,0 +1,30 @@
+++
title = "Teploměr do udírny"
date = 2021-10-31
[extra]
status = 2
authors = ["David Zálešák", "Emil Miler"]
created = 2020-07-11
+++
Cílem projektu je vytvořit zařízení, které měří teplotu libovolným počtem teplotních čidel umístěných uvnitř domácí udírny. Výstupy z čidel jsou posílány po síti formou webové stránky na lokálním serveru přímo na zařízení a na integrovaném displeji.
## Hardware
Základem je deska *TTGO T-Display ESP32* s integrovaným IPS LCD.
Pro měření teploty jsou využita digitální čidla [DS18B20](https://www.gme.cz/digitalni-teplotni-cidlo-s-ds18b20) ve vodotěsném balení s kabelem. Čidlo DS18B20 funguje na systému *1-Wire* a je tedy snadné využívat libovolné množství čidel bez složitého zapojování GPIO. Teplotní rozsah měřitelný tímto čidlem je -55 až +125°C, což pro potřeby udírny stačí, nýbrž teplota v udírně nepřesáhne 120°C.
## Příprava pro kompilaci
Je třeba stáhnout knihovny `WiFi.h`, `ESPAsyncWebServer.h`, `DS18B20.h` a `TFT_eSPI.h`. Je ovšem třeba stáhnout modifikovanou verzi knihovny TFT_eSPI, aby správně fungoval integrovaný displej. V souboru `User_Setup_Select.h` je nutné odkomentovat řádek `#include <User_Setups/Setup25_TTGO_T_Display.h>`.
:: todo: jak přidat ESP32 toolchain, git
## Verze 1
První verze teploměru byla postavená na *DOIT ESP32 DEVKIT V1*. Na něm běžel web server a připravená webová stránka ukazovala výstupy všech nalezených čidel. Zároveň byl dostupný XML výstup pro nativní Androdi aplikaci. V praxi se ukázalo, že lepším řešením je jednoduše sledovat stav zkrze webovou stránku a XML s Android aplikací bylo ve druhé verzi smazáno.
Zároveň se objevil nový požadavek, a to displej s hodnotami senzorů přímo na zařízení, což je hlavní věc, která vedla ke tvorbě druhé verze.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

@ -0,0 +1,18 @@
+++
title = "Timer"
date = 2019-12-18
[extra]
status = 3
authors = ["Emil Miler", "Lukáš Hozda"]
created = 2019-11-28
+++
Někteří z nás využivají ve vlastní výuce projektor k promítání zbývajícího času během psaní písemných pací. Existující řešení se nám zdála zbytečně složitá, ošklivá a webové stránky, na kterých se časovače nachází, jsou plné spywaru. Proto poskytujeme vlastní aplikaci.
[microlab.space/time](https://microlab.space/time)
Aplikace akceptuje jako vstup čas ve formátech `hh:mm:ss`, `mm:ss`, nebo jen celé číslo s počtem vteřin.
Zdrojový kód se nachází na našem [GIT repozitáři](https://git.microlab.space/em/timer).

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

@ -0,0 +1,42 @@
+++
title = "Video studio"
date = 2020-09-22
[extra]
status = 2
authors = ["Albert Pospíšil", "David Zálešák", "Emil Miler"]
created = 2019-10-27
+++
V rámci spolku provozujeme, společně s pomocí naší katedry, video studio pro streamování a nahrávání různých rozhovorů, seminářů a přednášek.
Iniciativa k vytvoření většího studia přišla ze spolku [La Vie Bohème](https://www.facebook.com/LaVieBohemePedFUK/), kdy Tomáš Vonšovský přišel s nápadem vytvořit talk show [K tabuli půjde](https://www.facebook.com/K-tabuli-p%C5%AFjde-110891907052193/) z prostředí naší fakulty.
Studio je navržené modulárně, tj. je možné ho přenést a sestavit celkem rychle a dle aktuálních potřeb. Je často využíváno na záznamy a prezentace pořádané katedrou, našim spolkem, nebo ve spolupráci s jinými spolky. Studio je také využito pro práci se zelným plátnem ve spojení s virtuální realitou.
## Hardware
### Video
K záznamu videa z externích kamer používáme nabírací kartu [Blackmagic DeckLink Quad HDMI Recorder](https://www.syntex.cz/blackmagic-design-decklink-quad-hdmi-recorder), která umožňuje nabírat čtyři různé zdroje videa rychlostí až 60 snímků za vteřinu. Jako kamery lze využít jakékoliv zařízení, které umí posílat obraz živě pomocí HDMI do nabírací karty.
Seznam dostupných videokamer:
- [Canon XA40](https://www.usa.canon.com/internet/portal/us/home/products/details/camcorders/professional/xa40) -- 4K UHD YCC 4:2:0 8-bit 30p, FHD YCC 4:2:2 10-bit 50/25p (HDMI), XLR Phantom, IS, ...
- Canon ??? (3x)
- [Canon 60D](https://www.usa.canon.com/internet/portal/us/home/products/details/cameras/eos-dslr-and-mirrorless-cameras/dslr/eos-60d) (microlab) -- FHD 30p ALL-I
- [Canon RP](https://www.usa.canon.com/internet/portal/us/home/products/details/cameras/eos-dslr-and-mirrorless-cameras/mirrorless/eos-rp/eos-rp) (Emil) -- FHD 60p, 4K (crop, rolling shutter, 💩)
- Nikon ???
### Zvuk
## Software
K práci se vstupy, živému střihu, nahrávání a streamování je použit program [OBS Studio](https://obsproject.com/), který pro naše potřeby bohatě stačí. Navíc je distribuovaný pod svobodnou licencí a funguje na operačním systému GNU/Linux.
V OBS jsou vytvořeny scény, které jsou namapovány na čísla klávesnice pro snadné přepínání mezi nimi. První čtyři scény jsou vstupy ze snímací karty, tj. čtyři externí kamery. Dle potřeby jsou přidány další scény, obrázky atp.
## Schéma standardního zapojení
![Schéma zapojení](schema-zapojeni.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2021-10-31T16:39:01.513Z" agent="5.0 (X11)" etag="Dh2EU7RbXumk8JT7TfMg" version="15.6.3" type="device"><diagram id="6a731a19-8d31-9384-78a2-239565b7b9f0" name="Page-1">7Ztbc+MmFIB/jR43I6Gb/Rjb691Omjatd2bTvmGJSIqR8GAc2/n1BQt0w3G9SVZSU3kyE3E4IOB8HI5AMuxpuv9C4Tq+JSHCBjDDvWHPDAAsBwBD/JnhIZeMgZkLIpqEUqkULJJnJIVKbZuEaFNTZIRglqzrwoBkGQpYTQYpJbu62gPB9buuYYQ0wSKAWJd+T0IWS6nljcuMryiJYnnrEfDzjCUMVhEl20zezwD2w/GXZ6dQ1SU7uolhSHYVkf3ZsKeUEJZfpfspwmJs1bDl5eYv5BbtpihjFxXwHTcv8wTxFqlGH5vGDmo4UMhHRyYzkvF/k2MfkajF5KnHbbpuKMQsxTxl8cuik0IVwyXCk2KYpgQTWpbaMEjZtbBgQzZPMJY1oCxUGgGGm00S5EKpIu74iBg7SKzglhEuIpTFJCIZxL8SslYtY5SskGoDNxaYuxN/WuQo49tc8kAyNodpggXTXxF+QiwJoMyQ97I8ma5WaTuOOxNVrmGQZBGXujylW0oab0O2NECFeSRxfAwipBR9z8mlwjCVwtLGXxBJEaMHrkARhix5qmMN5eyICr2SEH4hIXkRGK+3wJQ4VJmx6szIgiUw5v8AGN/qEBh/AOY/B4xndgjMqLfADEvSS8C4dofAjDVgfp8sNGZKQMRA7+KEoQUfAJG743HsGwipmqwmrFmLw3DKrq+14vz443KIkygT6HG7IaoKyn5bmpkhDWStPk+tEU34kCO6KJTAORaeEGVof9bCMtceSR8iHwJsU87rXSWkVn4mrkTTvvkeUCggK1AsGEUw7TkXaOR6DriUC+dHuKhz0KSkLS4sy61zYdk6F+4JLrz34WIIRyqw8Efa8ZHCV64u5/ir44b2CbtX3eHXf4mmX6mc2V4tpSJxkIkQbuJiYorEHWQcyewoAaZz+aLlgZNRToeLltvfKOdDc3gpMOZJYECHwOhRzgBM74Hp8MFbtagCzO0v9z0Pf4Rdw3exYk/DH3tUD38c375y2wyAFJJVLJIVJXxAes6G5yyXqI3QuC0WPMvsmAWgsXBnTF1jPE4ejaltXM9SaEwdYzQb0Gj76bnuJjzQNhr68/MN5uuxoMJaDTi0i4PvmB3j4Gg4/J2z8Jz1fk9lbo58020Bh74EFZbjtAmHr4cUv8FlvoBQGOQXPH/FHw5gz1mxAITLj8yKN27uv4GrcfXXKjl6AHIDU0T7TolnBZ64d6uUmC1SMjYbjynOid37n8iFHn1oRJzd7LA62Ox4/WYGuL6euG1sZjSdTgPrpYlsJM6a/m3f5kXC6psiamFovI3Q4S6ar8cxg8Ppo8OxXb/dCNd/65twg8vpscvp8I05X39jbnA5fXQ5wGs39n3rSfTgcHrscLwOHY5+tDw4nD46HGvU8i6e/9Yz5MHl9NjljDpzOetvN39m37NP6+fY2jzc/hHNd58sf6QfQC/wNojzfWO2gqKvlBjAw7wTkyXlV5G4ynKNDUZcuec+66OdNDRfz2v7TPIFlPQd5h9zXMPLL629tcfZo4f7aqJSSiTLYseUKneZ8zvvan72Vwyy6B1JeBuLOeOqb1zknHGtYs6oSvI+yHLldNCqst36QZ8LGpMq76FW0XFeFT06NdV4svywMFcvv960P/8D</diagram></mxfile>

@ -39,6 +39,10 @@ a {
text-decoration: none; text-decoration: none;
} }
img {
max-width: 100%;
}
body>header { body>header {
.img { .img {
display: block; display: block;
@ -110,6 +114,10 @@ body>main {
padding: 1.5rem; padding: 1.5rem;
background: $col-dark; background: $col-dark;
h2 {
margin: 3rem 0 2rem 0;
}
h2:before { h2:before {
content: ""; content: "";
display: block; display: block;
@ -196,6 +204,9 @@ body>footer {
display: block; display: block;
height: 100%; height: 100%;
width: 12rem; width: 12rem;
// !important delcarations are needed here, because some browsers override the inline `background-image` (from templates/macros.html) to just `background`, which ignores these.
background-size: cover !important;
background-position: center !important;
} }
} }
} }

@ -3,7 +3,7 @@
<a href="{{ project.permalink }}"> <a href="{{ project.permalink }}">
{% set_global image = "/static/img/project_placeholder.png" %} {% set_global image = "/static/img/project_placeholder.png" %}
{% for asset in project.assets %} {% for asset in project.assets %}
{% if asset is matching("[img.](jpg|png)$") %} {% if asset is matching("main\.(jpg|png)$") %}
{% set_global image = asset %} {% set_global image = asset %}
{% break %} {% break %}
{% endif %} {% endif %}

@ -3,9 +3,9 @@
{% block content %} {% block content %}
<section> <section>
<h1>{{ page.title }}</h1> <h1>{{ page.title }}</h1>
{{ page.content | safe }} {{ page.description }}
</section> </section>
<section> <section>
&hellip; {{ page.content | safe }}
</section> </section>
{% endblock content %} {% endblock content %}

Loading…
Cancel
Save