diff --git a/package-lock.json b/package-lock.json index c063780..47f1b4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "eb2-website", "version": "v2022-10-16", "hasInstallScript": true, + "dependencies": { + "marked": "^4.1.1" + }, "devDependencies": { "@playwright/test": "^1.25.0", "@sveltejs/adapter-auto": "next", @@ -25,7 +28,7 @@ "prettier-plugin-svelte": "^2.7.0", "svelte": "^3.44.0", "svelte-preprocess": "^4.10.7", - "tailwindcss": "^3.1.8", + "tailwindcss": "^3.2.1", "vite": "^3.1.0" } }, @@ -2712,6 +2715,17 @@ "semver": "bin/semver.js" } }, + "node_modules/marked": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.1.tgz", + "integrity": "sha512-0cNMnTcUJPxbA6uWmCmjWz4NJRe/0Xfk2NhXCUHjew9qJzFN20krFnsUe7QynwqOwa5m1fZ4UDg0ycKFVC0ccw==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3257,12 +3271,12 @@ } }, "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.6" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": ">=12.0" @@ -3972,9 +3986,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", - "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz", + "integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==", "dev": true, "dependencies": { "arg": "^5.0.2", @@ -3983,18 +3997,19 @@ "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.14", + "postcss": "^8.4.17", "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", + "postcss-nested": "6.0.0", "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", @@ -6224,6 +6239,11 @@ } } }, + "marked": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.1.tgz", + "integrity": "sha512-0cNMnTcUJPxbA6uWmCmjWz4NJRe/0Xfk2NhXCUHjew9qJzFN20krFnsUe7QynwqOwa5m1fZ4UDg0ycKFVC0ccw==" + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -6579,12 +6599,12 @@ } }, "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.6" + "postcss-selector-parser": "^6.0.10" } }, "postcss-selector-parser": { @@ -7043,9 +7063,9 @@ } }, "tailwindcss": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", - "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz", + "integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==", "dev": true, "requires": { "arg": "^5.0.2", @@ -7054,18 +7074,19 @@ "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.14", + "postcss": "^8.4.17", "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", + "postcss-nested": "6.0.0", "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", diff --git a/package.json b/package.json index 028075c..2b38487 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,11 @@ "prettier-plugin-svelte": "^2.7.0", "svelte": "^3.44.0", "svelte-preprocess": "^4.10.7", - "tailwindcss": "^3.1.8", + "tailwindcss": "^3.2.1", "vite": "^3.1.0" }, - "type": "module" + "type": "module", + "dependencies": { + "marked": "^4.1.1" + } } diff --git a/src/app.css b/src/app.css index 43aac63..0e69d47 100644 --- a/src/app.css +++ b/src/app.css @@ -16,7 +16,7 @@ } .head4 { - @apply text-xl mt-12 mb-8; + @apply text-lg mt-12 mb-8 font-bold; } .head5 { @@ -24,7 +24,11 @@ } .list { - @apply my-4 leading-relaxed hover:text-white list-disc; + @apply my-4 leading-relaxed hover:text-white list-disc list-inside; + } + + .sublist { + @apply my-4 leading-relaxed hover:text-white ml-8 list-[circle]; } .active { @@ -35,6 +39,13 @@ { @apply underline; } + .md-separator { + width: 100%; + height: 1px; + border-top: 1px solid white; + margin: 4em 0 4em 0; + opacity: 0.5; + } } @font-face { @@ -137,10 +148,3 @@ body { .icon.coffee { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-coffee'%3E%3Cpath d='M18 8h1a4 4 0 0 1 0 8h-1'%3E%3C/path%3E%3Cpath d='M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z'%3E%3C/path%3E%3Cline x1='6' y1='1' x2='6' y2='4'%3E%3C/line%3E%3Cline x1='10' y1='1' x2='10' y2='4'%3E%3C/line%3E%3Cline x1='14' y1='1' x2='14' y2='4'%3E%3C/line%3E%3C/svg%3E"); } -.md-separator { - width: 100%; - height: 1px; - border-top: 1px solid white; - margin: 4em 0 4em 0; - opacity: 0.5; -} \ No newline at end of file diff --git a/src/routes/manual/+page.js b/src/routes/manual/+page.js index dd83888..faf360d 100644 --- a/src/routes/manual/+page.js +++ b/src/routes/manual/+page.js @@ -1,12 +1,11 @@ /** @type {import('./$types').PageLoad} */ - -//import snarkdown from 'snarkdown'; -import parse from "$lib/vsnarkdown" import { base } from '$app/paths'; +import { marked } from 'marked'; +marked.setOptions({ gfm: true }); export async function load({ fetch }) { const response = await fetch(`${base}/hacker-manual.md`).then((r) => r.text()); - const compiledResponse = await parse(response); + const compiledResponse = await marked.parse(response); return { content: compiledResponse }; } diff --git a/src/routes/manual/+page.svelte b/src/routes/manual/+page.svelte index 73ba823..3160a13 100644 --- a/src/routes/manual/+page.svelte +++ b/src/routes/manual/+page.svelte @@ -1,134 +1,26 @@
-

Hacker Manual

-
+
{@html data.content}
diff --git a/static/hacker-manual.md b/static/hacker-manual.md index 3652b45..6aaf989 100644 --- a/static/hacker-manual.md +++ b/static/hacker-manual.md @@ -5,15 +5,15 @@ # Overview * Travel and Accommodation - * Travelling to Brno - * Brno Public transport - * Accomodation + * [Travelling to Brno](#travelling-to-brno) + * [Brno Public transport](#brno-public-transport) + * [Accomodation](#accomodation) * Hackathon - * Mentoring - * Finding a Team / Project Idea - * Catering + * [Mentoring](#mentoring) + * [Finding a Team / Project Idea](#finding-a-team--project-idea) + * [Catering](#catering) -
+--- ## Travel and Accommodation @@ -30,17 +30,56 @@ It is safe to use public transport in Brno even in the night. Public transport i ### Accomodation We do not provide or subsidize accomodation. Main venue is 24/7 though, so feel free to enjoy the hackathon in its purest form. If you don't feel like it, we do have following recommended facilities: -* First one, comfy - * $2000 per night - * 200m from main venue -* Second one, hostel - * $800 per night - * 300m from second venue -* Third, comfy - * $1000 per night - * 800m from main venue +#### Budget - Most Unique Hostel in Brno – 10-Z Bunker Hostel. -
+Address: Husova 12, Brno, Czech Republic +[Book](https://www.booking.com/hotel/cz/10-z-nuclear-fallout-shelter-under-spilberk-castle.cs.html?aid=910275&label=gog235jc-1FCAsoOkIyMTAtei1udWNsZWFyLWZhbGxvdXQtc2hlbHRlci11bmRlci1zcGlsYmVyay1jYXN0bGVICVgDaDqIAQGYAQm4AQfIAQzYAQHoAQH4AQaIAgGoAgO4AsGI6poGwAIB0gIkZWI2ZmY5ZmEtMTEzNi00YWI4LWIxN2ItNDlkY2E3MTAyZWRh2AIF4AIB&sid=456cddd34fabe31e28baf019d5e20a72&all_sr_blocks=177983219_224237506_0_1_0;checkin=2022-11-11;checkout=2022-11-13;dest_id=-542184;dest_type=city;dist=0;group_adults=1;group_children=0;hapos=1;highlighted_blocks=177983219_224237506_0_1_0;hpos=1;matching_block_id=177983219_224237506_0_1_0;no_rooms=1;req_adults=1;req_children=0;room1=A;sb_price_type=total;sr_order=popularity;sr_pri_blocks=177983219_224237506_0_1_0__5000;srepoch=1666876502;srpvid=db945d2a46ee02b1;type=total;ucfs=1&#hotelTmpl) +price: 25eur incl. breakfast + +If you’re looking for a fairly unique accommodation site which you’ll surely remember forever, then the 10-Z Bunker Hostel is the way to go. Housed in an actual nuclear shelter from the Cold War era, this hostel is not for the faint-hearted, but can provide a quirky and memorable experience to those up to it. +The dorm rooms are decorated in period style and once you arrive to the accommodation, you’ll also get a complimentary tour of the place, which is also home to a history museum. Breakfast is free for all guests. + +#### Budget & 5mins from the venue - Schrott Bed&Beer (20eur) + +Address: Křenová 10, Brno, 602 00, Czech Republic +[Book](https://www.booking.com/hotel/cz/schrott-bed-amp-beer.html?aid=910275&sid=456cddd34fabe31e28baf019d5e20a72&all_sr_blocks=630944704_246076413_1_0_0&checkin=2022-11-11&checkout=2022-11-13&dest_id=-542184&dest_type=city&group_adults=1&group_children=0&hapos=3&highlighted_blocks=630944704_246076413_1_0_0&hpos=3&lang=en-us&matching_block_id=630944704_246076413_1_0_0&no_rooms=1&req_adults=1&req_children=0&room1=A&sb_price_type=total&soz=1&sr_order=price&sr_pri_blocks=630944704_246076413_1_0_0__4000&srepoch=1666876026&srpvid=cc935c34723c0061&type=total&ucfs=1&lang_click=other&cdl=cs&lang_changed=1) +price: 20eur + +If you’re looking for a clean, cheap accommodation that is very close to the venue, this is the option. As a bonus, it has a unique, steam-punk/retro bar with good selection of beers on site :) + +#### Mid-range, 6mins from the venue, suitable for teams - Euro Apartments Krenova + +Address: Krenova 75, Brno, 602 00, Czech Republic +[Book](https://www.booking.com/hotel/cz/euro-apartments-krenova-75-brno.html?aid=910275&sid=456cddd34fabe31e28baf019d5e20a72&all_sr_blocks=342399124_360281629_2_0_0&checkin=2022-11-11&checkout=2022-11-13&dest_id=-542184&dest_type=city&dist=0&group_adults=2&group_children=0&hapos=2&highlighted_blocks=342399124_360281629_2_0_0&hpos=2&lang=en-us&matching_block_id=342399124_360281629_2_0_0&no_rooms=1&req_adults=2&req_children=0&room1=A%2CA&sb_price_type=total&soz=1&sr_order=popularity&sr_pri_blocks=342399124_360281629_2_0_0__17850&srepoch=1666877159&srpvid=f7175e72048c0156&type=total&ucfs=1&lang_click=other&cdl=cs&lang_changed=1) +price: 45eur + +#### Mid-range-business - Grandhotel Brno + +Address: Benesova 18, Brno, 602 00, Czech Republic +[Book](https://www.booking.com/hotel/cz/grandhotelbrno.html?aid=910275&sid=456cddd34fabe31e28baf019d5e20a72&atlas_src=sr_iw_btn&checkin=2022-11-11&checkout=2022-11-13&dest_id=-542184&dest_type=city&dist=0&group_adults=2&group_children=0&highlighted_blocks=7707602_193926392_2_2_0&lang=en-us&no_rooms=1&room1=A%2CA&sb_price_type=total&soz=1&type=total&ucfs=1&lang_click=other&cdl=cs&lang_changed=1) +price: 54eur + + +Centrally located in the heart of Brno with 140 year-long tradition in hospitality is close to all major sights. It features the Garden Restaurant and a lobby bar. Cozy and stylish rooms, fully equipped with modern amenities including high-speed internet and air-con. + +#### Business/Lux - Best Western International Hotel Brno + +Address: Husova 16, Brno, 602 00, Czech Republic +[Book](https://www.booking.com/hotel/cz/schrott-bed-amp-beer.html?aid=910275&sid=456cddd34fabe31e28baf019d5e20a72&all_sr_blocks=630944704_246076413_1_0_0&checkin=2022-11-11&checkout=2022-11-13&dest_id=-542184&dest_type=city&group_adults=1&group_children=0&hapos=3&highlighted_blocks=630944704_246076413_1_0_0&hpos=3&lang=en-us&matching_block_id=630944704_246076413_1_0_0&no_rooms=1&req_adults=1&req_children=0&room1=A&sb_price_type=total&soz=1&sr_order=price&sr_pri_blocks=630944704_246076413_1_0_0__4000&srepoch=1666876026&srpvid=cc935c34723c0061&type=total&ucfs=1&lang_click=other&cdl=cs&lang_changed=1) +price: 70eur including excellent breakfast + +Centrally located right below Spilberg Castle and 100m from the Main Square. Free access to the fitness centre, stable and strong wifi in the entire hotel. + +#### Business/Lux - Grandezza Hotel Luxury Palace + +Address: Zeleny trh 314/2, Brno, 602 00, Czech Republic +[Book](https://www.booking.com/hotel/cz/grandezza.html?aid=910275&sid=456cddd34fabe31e28baf019d5e20a72&atlas_src=hp_iw_title&checkin=2022-11-11&checkout=2022-11-13&dist=0&group_adults=2&group_children=0&lang=en-us&no_rooms=1&room1=A%2CA&sb_price_type=total&soz=1&srepoch=1666878418&srpvid=2e79609d94de021d&type=total&lang_click=other&cdl=cs&lang_changed=1) +price: 70eur + +Spacious, air-conditioned rooms overlook the town square, the Cathedral of Saints Peter and Spilberk Castle, featuring a flat-screen satellite TV and a seating area. The bathrooms include bathrobes. It is 50 m to the nearest tram stop, and Brno Train Station is 400 m away. Airport shuttle service available. + + +--- ## Hackathon diff --git a/svelte.config.js b/svelte.config.js index d3cc993..6a44b20 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -14,6 +14,7 @@ const config = { }), trailingSlash: 'always', }, + extensions: ['.svelte'], preprocess: [ preprocess({ postcss: true,