From f12de54acc8a0f9823875c09294fdda83a8c93c6 Mon Sep 17 00:00:00 2001 From: Matteo Beccati Date: Mon, 20 May 2024 10:51:41 +0200 Subject: [PATCH] Sync with upstream: 46cf5ab5d50070bd8df847e4887c377bc2e92fac --- .github/workflows/deploy.yml | 42 + .gitignore | 7 + .gitlab-ci.yml | 32 + README.md | 1792 ++ _config.yml | 159 + init-gh-pages.sh | 12 + netlify.toml | 4 + package-lock.json | 8202 ++++++ package.json | 43 + scaffolds/draft.md | 4 + scaffolds/page.md | 4 + scaffolds/post.md | 5 + slack.sh | 172 + source/404.md | 8 + source/CNAME | 1 + source/_data/defaults.yml | 191 + source/_data/page_about.yml | 63 + source/_data/page_cfp.yml | 22 + source/_data/page_coc.yml | 45 + source/_data/page_safety.yml | 25 + source/_data/page_scholarships.yml | 25 + source/_data/page_sponsor.yml | 133 + source/_data/page_welcome.yml | 30 + source/_data/page_where.yml | 38 + source/_data/sponsors.yml | 48 + source/_data/talks_speakers.yml | 85 + source/_data/workshop.yml | 131 + source/_posts/test.md | 6 + source/img/community/.gitkeep | 0 source/img/grusp-logo-full.svg | 177 + source/img/grusp-logo-orig.svg | 89 + source/img/logos/.gitkeep | 0 source/img/logos/apropos.svg | 1 + source/img/logos/daruma.svg | 1 + source/img/logos/madisoft.svg | 1 + source/img/logos/siteground.png | Bin 0 -> 13955 bytes source/img/logos/stickermule.svg | 27 + source/img/logos/workwave.svg | 113 + source/img/media/.gitkeep | 0 source/img/speakers/.gitkeep | 0 source/img/team/.gitkeep | 0 source/img/team/cesare_yellow.jpg | Bin 0 -> 144839 bytes source/img/team/cirpo_yellow.jpg | Bin 0 -> 121773 bytes source/img/team/cristina_yellow.jpg | Bin 0 -> 204046 bytes source/img/team/daniel_yellow.jpg | Bin 0 -> 137454 bytes source/img/team/francesco_yellow.jpg | Bin 0 -> 121256 bytes source/img/team/fullo_yellow.jpg | Bin 0 -> 162164 bytes source/img/team/giorgio_yellow.jpg | Bin 0 -> 142861 bytes source/img/team/giovanna_yellow.jpg | Bin 0 -> 149853 bytes source/img/team/giulia_yellow.jpg | Bin 0 -> 167135 bytes source/img/team/lara_yellow.jpg | Bin 0 -> 187435 bytes source/img/team/matteo_yellow.jpg | Bin 0 -> 147037 bytes source/img/ws_teachers/.gitkeep | 0 source/robots.txt | 2 + source/schedule/index.md | 5 + source/sponsor/index.md | 5 + source/talks_speakers/index.md | 5 + source/tickets/index.md | 5 + source/welcome/about/index.md | 9 + source/welcome/cfp/index.md | 9 + source/welcome/coc/index.md | 9 + source/welcome/index.md | 5 + source/welcome/safety/index.md | 9 + source/welcome/scholarships/index.md | 9 + source/welcome/where/index.md | 9 + source/workshop/index.md | 5 + source/workshop/workshop_1/index.md | 10 + source/workshop/workshop_2/index.md | 10 + themes/grusp_conf/_config.yml | 37 + themes/grusp_conf/layout/404.pug | 14 + themes/grusp_conf/layout/about.pug | 54 + themes/grusp_conf/layout/coc.pug | 61 + .../grusp_conf/layout/components/cfp/cfp.pug | 15 + .../grusp_conf/layout/components/cfp/cfp.sass | 30 + .../community_partners/community_partners.pug | 5 + .../community_partners.sass | 19 + .../components/generalinfo/generalinfo.pug | 30 + .../components/generalinfo/generalinfo.sass | 81 + .../layout/components/hero/hero.pug | 74 + .../layout/components/hero/hero.sass | 127 + .../layout/components/location/location.pug | 50 + .../layout/components/location/location.sass | 72 + .../layout/components/media/media.pug | 34 + .../layout/components/media/media.sass | 39 + .../components/newsletter/_mailchimp.pug | 125 + .../components/newsletter/newsletter.pug | 17 + .../components/newsletter/newsletter.sass | 114 + .../layout/components/speakers/speakers.pug | 63 + .../layout/components/speakers/speakers.sass | 53 + .../layout/components/sponsors/sponsors.pug | 148 + .../layout/components/sponsors/sponsors.sass | 50 + .../layout/components/topics/topics.pug | 10 + .../layout/components/topics/topics.sass | 21 + .../layout/components/update/update.pug | 9 + .../layout/components/update/update.sass | 16 + .../layout/components/workshop/workshop.pug | 114 + .../layout/components/workshop/workshop.sass | 117 + .../layout/includes/_breadcrumbs.pug | 14 + themes/grusp_conf/layout/includes/_social.pug | 23 + themes/grusp_conf/layout/includes/footer.pug | 63 + themes/grusp_conf/layout/includes/header.pug | 104 + themes/grusp_conf/layout/includes/layout.pug | 118 + themes/grusp_conf/layout/index.pug | 26 + themes/grusp_conf/layout/page_cfp.pug | 48 + themes/grusp_conf/layout/page_workshops.pug | 16 + themes/grusp_conf/layout/safety.pug | 37 + themes/grusp_conf/layout/schedule.pug | 293 + themes/grusp_conf/layout/scholarships.pug | 71 + themes/grusp_conf/layout/sponsor.pug | 135 + themes/grusp_conf/layout/talks_speakers.pug | 214 + themes/grusp_conf/layout/tickets.pug | 17 + themes/grusp_conf/layout/welcome.pug | 86 + themes/grusp_conf/layout/where.pug | 116 + themes/grusp_conf/layout/workshop_single.pug | 198 + themes/grusp_conf/scripts/slugify.js | 7 + .../grusp_conf/source/assets/css/_mixins.sass | 12 + .../source/assets/css/breadcrumbs.sass | 25 + .../source/assets/css/defaults.sass | 15 + .../grusp_conf/source/assets/css/fonts.sass | 71 + .../grusp_conf/source/assets/css/global.sass | 386 + .../source/assets/css/page_about.sass | 88 + .../source/assets/css/page_cfp.sass | 41 + .../source/assets/css/page_coc.sass | 47 + .../source/assets/css/page_schedule.sass | 99 + .../source/assets/css/page_scholarships.sass | 56 + .../source/assets/css/page_sponsor.sass | 125 + .../assets/css/page_talks_speakers.sass | 211 + .../source/assets/css/page_welcome.sass | 89 + .../source/assets/css/page_where.sass | 147 + .../assets/css/page_workshop_single.sass | 175 + .../source/assets/css/page_workshops.sass | 129 + .../favicons/android-chrome-192x192.png | Bin 0 -> 13493 bytes .../favicons/android-chrome-512x512.png | Bin 0 -> 40043 bytes .../assets/favicons/apple-touch-icon.png | Bin 0 -> 5784 bytes .../source/assets/favicons/browserconfig.xml | 9 + .../source/assets/favicons/favicon-16x16.png | Bin 0 -> 1014 bytes .../source/assets/favicons/favicon-32x32.png | Bin 0 -> 1615 bytes .../source/assets/favicons/favicon.ico | Bin 0 -> 15086 bytes .../source/assets/favicons/mstile-150x150.png | Bin 0 -> 3469 bytes .../assets/favicons/safari-pinned-tab.svg | 72 + .../source/assets/favicons/site.webmanifest | 19 + .../source/assets/fonts/Montserrat-Black.eot | Bin 0 -> 354894 bytes .../source/assets/fonts/Montserrat-Black.svg | 17675 +++++++++++++ .../source/assets/fonts/Montserrat-Black.ttf | Bin 0 -> 354596 bytes .../source/assets/fonts/Montserrat-Black.woff | Bin 0 -> 137384 bytes .../assets/fonts/Montserrat-Black.woff2 | Bin 0 -> 81160 bytes .../assets/fonts/Montserrat-BlackItalic.eot | Bin 0 -> 379862 bytes .../assets/fonts/Montserrat-BlackItalic.svg | 18164 ++++++++++++++ .../assets/fonts/Montserrat-BlackItalic.ttf | Bin 0 -> 379552 bytes .../assets/fonts/Montserrat-BlackItalic.woff | Bin 0 -> 144320 bytes .../assets/fonts/Montserrat-BlackItalic.woff2 | Bin 0 -> 84708 bytes .../source/assets/fonts/Montserrat-Bold.eot | Bin 0 -> 363114 bytes .../source/assets/fonts/Montserrat-Bold.svg | 20415 +++++++++++++++ .../source/assets/fonts/Montserrat-Bold.ttf | Bin 0 -> 362836 bytes .../source/assets/fonts/Montserrat-Bold.woff | Bin 0 -> 141864 bytes .../source/assets/fonts/Montserrat-Bold.woff2 | Bin 0 -> 85008 bytes .../assets/fonts/Montserrat-BoldItalic.eot | Bin 0 -> 385702 bytes .../assets/fonts/Montserrat-BoldItalic.svg | 20892 ++++++++++++++++ .../assets/fonts/Montserrat-BoldItalic.ttf | Bin 0 -> 385396 bytes .../assets/fonts/Montserrat-BoldItalic.woff | Bin 0 -> 148592 bytes .../assets/fonts/Montserrat-BoldItalic.woff2 | Bin 0 -> 88640 bytes .../source/assets/fonts/Montserrat-Italic.eot | Bin 0 -> 389074 bytes .../source/assets/fonts/Montserrat-Italic.svg | 20886 +++++++++++++++ .../source/assets/fonts/Montserrat-Italic.ttf | Bin 0 -> 388788 bytes .../assets/fonts/Montserrat-Italic.woff | Bin 0 -> 148624 bytes .../assets/fonts/Montserrat-Italic.woff2 | Bin 0 -> 88368 bytes .../assets/fonts/Montserrat-Regular.eot | Bin 0 -> 365770 bytes .../assets/fonts/Montserrat-Regular.svg | 20401 +++++++++++++++ .../assets/fonts/Montserrat-Regular.ttf | Bin 0 -> 365480 bytes .../assets/fonts/Montserrat-Regular.woff | Bin 0 -> 142060 bytes .../assets/fonts/Montserrat-Regular.woff2 | Bin 0 -> 84904 bytes .../source/assets/ico/ico-about.svg | 25 + .../grusp_conf/source/assets/ico/ico-bolt.svg | 4 + .../source/assets/ico/ico-calendar.svg | 14 + .../grusp_conf/source/assets/ico/ico-cfp.svg | 39 + .../source/assets/ico/ico-clock.svg | 25 + .../grusp_conf/source/assets/ico/ico-coc.svg | 32 + .../source/assets/ico/ico-coffee.png | Bin 0 -> 2861 bytes .../source/assets/ico/ico-coffee.svg | 8 + .../source/assets/ico/ico-cutlery.png | Bin 0 -> 2717 bytes .../source/assets/ico/ico-cutlery.svg | 9 + .../source/assets/ico/ico-glass.png | Bin 0 -> 3279 bytes .../source/assets/ico/ico-glass.svg | 12 + .../source/assets/ico/ico-hotel.svg | 24 + .../assets/ico/ico-online-conference-120.svg | 25 + .../assets/ico/ico-online-conference.svg | 25 + .../source/assets/ico/ico-pencil.svg | 12 + .../source/assets/ico/ico-readmore.svg | 19 + .../source/assets/ico/ico-safety.svg | 4 + .../source/assets/ico/ico-scholarship.svg | 16 + .../source/assets/ico/ico-social-facebook.svg | 8 + .../source/assets/ico/ico-social-github.svg | 15 + .../assets/ico/ico-social-instagram.svg | 1 + .../source/assets/ico/ico-social-linkedin.svg | 11 + .../source/assets/ico/ico-social-mastodon.svg | 11 + .../source/assets/ico/ico-social-twitter.svg | 11 + .../source/assets/ico/ico-social-vimeo.svg | 18 + .../source/assets/ico/ico-social-youtube.svg | 29 + .../source/assets/ico/ico-streaming.svg | 17 + .../source/assets/ico/ico-teacher.svg | 12 + .../source/assets/ico/ico-ticket.svg | 23 + .../source/assets/ico/ico-warning.svg | 16 + .../source/assets/ico/ico-where-120.svg | 9 + .../source/assets/ico/ico-where.svg | 9 + .../source/assets/ico/ico-world.svg | 66 + .../source/assets/img/conference-logo.png | Bin 0 -> 17014 bytes .../source/assets/img/conference-logo.svg | 20 + .../source/assets/img/grusp-logo-full.png | Bin 0 -> 43212 bytes .../source/assets/img/grusp-logo-full.svg | 177 + .../source/assets/img/grusp-logo-orig.svg | 89 + .../source/assets/img/hero/hero-online.jpg | Bin 0 -> 873726 bytes .../source/assets/img/hero/hero.jpg | Bin 0 -> 873726 bytes .../source/assets/img/social-1200x630.png | Bin 0 -> 979265 bytes .../source/assets/img/venue/venue-online.jpg | Bin 0 -> 281802 bytes .../source/assets/img/venue/venue.jpg | Bin 0 -> 281802 bytes .../img/workshop/worskhop_header-online.jpg | Bin 0 -> 290693 bytes .../assets/img/workshop/worskhop_header.jpg | Bin 0 -> 290693 bytes .../source/assets/js/back_to_top.js | 10 + themes/grusp_conf/source/assets/js/header.js | 12 + .../assets/js/layout/components/hero/hero.js | 85 + .../components/newsletter/mc-validate.js | 614 + themes/grusp_conf/source/assets/js/menu.js | 25 + .../source/assets/js/speakers_menu.js | 28 + 223 files changed, 136887 insertions(+) create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 README.md create mode 100644 _config.yml create mode 100755 init-gh-pages.sh create mode 100644 netlify.toml create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 scaffolds/draft.md create mode 100644 scaffolds/page.md create mode 100644 scaffolds/post.md create mode 100644 slack.sh create mode 100644 source/404.md create mode 100644 source/CNAME create mode 100644 source/_data/defaults.yml create mode 100644 source/_data/page_about.yml create mode 100644 source/_data/page_cfp.yml create mode 100644 source/_data/page_coc.yml create mode 100644 source/_data/page_safety.yml create mode 100644 source/_data/page_scholarships.yml create mode 100644 source/_data/page_sponsor.yml create mode 100644 source/_data/page_welcome.yml create mode 100644 source/_data/page_where.yml create mode 100644 source/_data/sponsors.yml create mode 100644 source/_data/talks_speakers.yml create mode 100644 source/_data/workshop.yml create mode 100644 source/_posts/test.md create mode 100644 source/img/community/.gitkeep create mode 100644 source/img/grusp-logo-full.svg create mode 100644 source/img/grusp-logo-orig.svg create mode 100644 source/img/logos/.gitkeep create mode 100644 source/img/logos/apropos.svg create mode 100644 source/img/logos/daruma.svg create mode 100644 source/img/logos/madisoft.svg create mode 100644 source/img/logos/siteground.png create mode 100644 source/img/logos/stickermule.svg create mode 100644 source/img/logos/workwave.svg create mode 100644 source/img/media/.gitkeep create mode 100644 source/img/speakers/.gitkeep create mode 100644 source/img/team/.gitkeep create mode 100644 source/img/team/cesare_yellow.jpg create mode 100644 source/img/team/cirpo_yellow.jpg create mode 100644 source/img/team/cristina_yellow.jpg create mode 100644 source/img/team/daniel_yellow.jpg create mode 100644 source/img/team/francesco_yellow.jpg create mode 100644 source/img/team/fullo_yellow.jpg create mode 100644 source/img/team/giorgio_yellow.jpg create mode 100644 source/img/team/giovanna_yellow.jpg create mode 100644 source/img/team/giulia_yellow.jpg create mode 100644 source/img/team/lara_yellow.jpg create mode 100644 source/img/team/matteo_yellow.jpg create mode 100644 source/img/ws_teachers/.gitkeep create mode 100644 source/robots.txt create mode 100644 source/schedule/index.md create mode 100644 source/sponsor/index.md create mode 100644 source/talks_speakers/index.md create mode 100644 source/tickets/index.md create mode 100644 source/welcome/about/index.md create mode 100644 source/welcome/cfp/index.md create mode 100644 source/welcome/coc/index.md create mode 100644 source/welcome/index.md create mode 100644 source/welcome/safety/index.md create mode 100644 source/welcome/scholarships/index.md create mode 100644 source/welcome/where/index.md create mode 100644 source/workshop/index.md create mode 100644 source/workshop/workshop_1/index.md create mode 100644 source/workshop/workshop_2/index.md create mode 100644 themes/grusp_conf/_config.yml create mode 100644 themes/grusp_conf/layout/404.pug create mode 100644 themes/grusp_conf/layout/about.pug create mode 100644 themes/grusp_conf/layout/coc.pug create mode 100644 themes/grusp_conf/layout/components/cfp/cfp.pug create mode 100644 themes/grusp_conf/layout/components/cfp/cfp.sass create mode 100644 themes/grusp_conf/layout/components/community_partners/community_partners.pug create mode 100644 themes/grusp_conf/layout/components/community_partners/community_partners.sass create mode 100644 themes/grusp_conf/layout/components/generalinfo/generalinfo.pug create mode 100644 themes/grusp_conf/layout/components/generalinfo/generalinfo.sass create mode 100644 themes/grusp_conf/layout/components/hero/hero.pug create mode 100644 themes/grusp_conf/layout/components/hero/hero.sass create mode 100644 themes/grusp_conf/layout/components/location/location.pug create mode 100644 themes/grusp_conf/layout/components/location/location.sass create mode 100644 themes/grusp_conf/layout/components/media/media.pug create mode 100644 themes/grusp_conf/layout/components/media/media.sass create mode 100644 themes/grusp_conf/layout/components/newsletter/_mailchimp.pug create mode 100644 themes/grusp_conf/layout/components/newsletter/newsletter.pug create mode 100644 themes/grusp_conf/layout/components/newsletter/newsletter.sass create mode 100644 themes/grusp_conf/layout/components/speakers/speakers.pug create mode 100644 themes/grusp_conf/layout/components/speakers/speakers.sass create mode 100644 themes/grusp_conf/layout/components/sponsors/sponsors.pug create mode 100644 themes/grusp_conf/layout/components/sponsors/sponsors.sass create mode 100644 themes/grusp_conf/layout/components/topics/topics.pug create mode 100644 themes/grusp_conf/layout/components/topics/topics.sass create mode 100644 themes/grusp_conf/layout/components/update/update.pug create mode 100644 themes/grusp_conf/layout/components/update/update.sass create mode 100644 themes/grusp_conf/layout/components/workshop/workshop.pug create mode 100644 themes/grusp_conf/layout/components/workshop/workshop.sass create mode 100644 themes/grusp_conf/layout/includes/_breadcrumbs.pug create mode 100644 themes/grusp_conf/layout/includes/_social.pug create mode 100644 themes/grusp_conf/layout/includes/footer.pug create mode 100644 themes/grusp_conf/layout/includes/header.pug create mode 100644 themes/grusp_conf/layout/includes/layout.pug create mode 100644 themes/grusp_conf/layout/index.pug create mode 100644 themes/grusp_conf/layout/page_cfp.pug create mode 100644 themes/grusp_conf/layout/page_workshops.pug create mode 100644 themes/grusp_conf/layout/safety.pug create mode 100644 themes/grusp_conf/layout/schedule.pug create mode 100644 themes/grusp_conf/layout/scholarships.pug create mode 100644 themes/grusp_conf/layout/sponsor.pug create mode 100644 themes/grusp_conf/layout/talks_speakers.pug create mode 100644 themes/grusp_conf/layout/tickets.pug create mode 100644 themes/grusp_conf/layout/welcome.pug create mode 100644 themes/grusp_conf/layout/where.pug create mode 100644 themes/grusp_conf/layout/workshop_single.pug create mode 100644 themes/grusp_conf/scripts/slugify.js create mode 100644 themes/grusp_conf/source/assets/css/_mixins.sass create mode 100644 themes/grusp_conf/source/assets/css/breadcrumbs.sass create mode 100644 themes/grusp_conf/source/assets/css/defaults.sass create mode 100644 themes/grusp_conf/source/assets/css/fonts.sass create mode 100644 themes/grusp_conf/source/assets/css/global.sass create mode 100644 themes/grusp_conf/source/assets/css/page_about.sass create mode 100644 themes/grusp_conf/source/assets/css/page_cfp.sass create mode 100644 themes/grusp_conf/source/assets/css/page_coc.sass create mode 100644 themes/grusp_conf/source/assets/css/page_schedule.sass create mode 100644 themes/grusp_conf/source/assets/css/page_scholarships.sass create mode 100644 themes/grusp_conf/source/assets/css/page_sponsor.sass create mode 100644 themes/grusp_conf/source/assets/css/page_talks_speakers.sass create mode 100644 themes/grusp_conf/source/assets/css/page_welcome.sass create mode 100644 themes/grusp_conf/source/assets/css/page_where.sass create mode 100644 themes/grusp_conf/source/assets/css/page_workshop_single.sass create mode 100644 themes/grusp_conf/source/assets/css/page_workshops.sass create mode 100644 themes/grusp_conf/source/assets/favicons/android-chrome-192x192.png create mode 100644 themes/grusp_conf/source/assets/favicons/android-chrome-512x512.png create mode 100644 themes/grusp_conf/source/assets/favicons/apple-touch-icon.png create mode 100644 themes/grusp_conf/source/assets/favicons/browserconfig.xml create mode 100644 themes/grusp_conf/source/assets/favicons/favicon-16x16.png create mode 100644 themes/grusp_conf/source/assets/favicons/favicon-32x32.png create mode 100644 themes/grusp_conf/source/assets/favicons/favicon.ico create mode 100644 themes/grusp_conf/source/assets/favicons/mstile-150x150.png create mode 100644 themes/grusp_conf/source/assets/favicons/safari-pinned-tab.svg create mode 100644 themes/grusp_conf/source/assets/favicons/site.webmanifest create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Black.eot create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Black.svg create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Black.ttf create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Black.woff create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Black.woff2 create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BlackItalic.eot create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BlackItalic.svg create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BlackItalic.ttf create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BlackItalic.woff create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BlackItalic.woff2 create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Bold.eot create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Bold.svg create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Bold.ttf create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Bold.woff create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Bold.woff2 create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BoldItalic.eot create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BoldItalic.svg create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BoldItalic.ttf create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BoldItalic.woff create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-BoldItalic.woff2 create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Italic.eot create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Italic.svg create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Italic.ttf create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Italic.woff create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Italic.woff2 create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Regular.eot create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Regular.svg create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Regular.ttf create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Regular.woff create mode 100644 themes/grusp_conf/source/assets/fonts/Montserrat-Regular.woff2 create mode 100644 themes/grusp_conf/source/assets/ico/ico-about.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-bolt.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-calendar.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-cfp.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-clock.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-coc.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-coffee.png create mode 100644 themes/grusp_conf/source/assets/ico/ico-coffee.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-cutlery.png create mode 100644 themes/grusp_conf/source/assets/ico/ico-cutlery.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-glass.png create mode 100644 themes/grusp_conf/source/assets/ico/ico-glass.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-hotel.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-online-conference-120.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-online-conference.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-pencil.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-readmore.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-safety.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-scholarship.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-facebook.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-github.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-instagram.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-linkedin.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-mastodon.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-twitter.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-vimeo.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-social-youtube.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-streaming.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-teacher.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-ticket.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-warning.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-where-120.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-where.svg create mode 100644 themes/grusp_conf/source/assets/ico/ico-world.svg create mode 100644 themes/grusp_conf/source/assets/img/conference-logo.png create mode 100644 themes/grusp_conf/source/assets/img/conference-logo.svg create mode 100644 themes/grusp_conf/source/assets/img/grusp-logo-full.png create mode 100644 themes/grusp_conf/source/assets/img/grusp-logo-full.svg create mode 100644 themes/grusp_conf/source/assets/img/grusp-logo-orig.svg create mode 100644 themes/grusp_conf/source/assets/img/hero/hero-online.jpg create mode 100644 themes/grusp_conf/source/assets/img/hero/hero.jpg create mode 100644 themes/grusp_conf/source/assets/img/social-1200x630.png create mode 100644 themes/grusp_conf/source/assets/img/venue/venue-online.jpg create mode 100644 themes/grusp_conf/source/assets/img/venue/venue.jpg create mode 100644 themes/grusp_conf/source/assets/img/workshop/worskhop_header-online.jpg create mode 100644 themes/grusp_conf/source/assets/img/workshop/worskhop_header.jpg create mode 100644 themes/grusp_conf/source/assets/js/back_to_top.js create mode 100644 themes/grusp_conf/source/assets/js/header.js create mode 100644 themes/grusp_conf/source/assets/js/layout/components/hero/hero.js create mode 100644 themes/grusp_conf/source/assets/js/layout/components/newsletter/mc-validate.js create mode 100644 themes/grusp_conf/source/assets/js/menu.js create mode 100644 themes/grusp_conf/source/assets/js/speakers_menu.js diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..8329e28 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,42 @@ +name: Deploy Conference Web site + +on: + push: + branches: + - master +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v2 + with: + path: main + - name: Setup node + uses: actions/setup-node@v1 + with: + node-version: 10.x + - name: Install hexo dependencies + run: | + cd main + npm install + - name: Generate website + run: | + cd main + npm run generate + - name: Checkout gh-pages + uses: actions/checkout@v2 + with: + path: gh-pages-pre + ref: gh-pages + fetch-depth: 0 + - name: Publish to gh-pages + run: | + mv main/public gh-pages + cp -r gh-pages-pre/.git gh-pages/ + cd gh-pages + git config --local user.email "bot@grusp.org" + git config --local user.name "Bot" + git add . + git commit -m "Auto Deploy at `date +"%Y-%m-%d %H:%M"`" + git push origin gh-pages diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ca96be --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +Thumbs.db +db.json +*.log +node_modules +public/ +.deploy*/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2117f2d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,32 @@ +image: node:12.18.3 + +cache: + paths: + - node_modules/ + +# created for initial tests; not used +# deploy: +# stage: deploy +# before_script: +# - npm install netlify-cli -g +# - npm install +# script: +# - npx hexo clean && npx hexo g +# - "LIVE_URL=$(netlify deploy --json --dir=public/ -s $NETLIFY_SITE_ID -a $NETLIFY_AUTH_TOKEN | grep -oP '(?<=\"deploy_url\": \")[^\"]*')" +# - "curl -X POST -H 'Content-type: application/json' --data '{\"text\": \"$CI_PROJECT_NAME deployato con successo dal branch $CI_COMMIT_REF_NAME, $LIVE_URL\"}' $SLACK_WEBHOOK_URL" +# only: +# - branches +# when: manual + +deploy_prod: + stage: deploy + before_script: + - npm install netlify-cli -g + - npm install + script: + - npm run generate + - "LIVE_URL=$(netlify deploy --json --prod --dir=public/ -s $NETLIFY_SITE_ID -a $NETLIFY_AUTH_TOKEN | grep -oP '(?<=\"url\": \")[^\"]*')" + - "curl -X POST $SLACK_WEBHOOK_URL -H 'Content-type: application/json' --data '{\"text\": \"Una nuova versione del sito è stata pubblicata con successo\"}'" + only: + refs: + - master diff --git a/README.md b/README.md new file mode 100644 index 0000000..b6294d9 --- /dev/null +++ b/README.md @@ -0,0 +1,1792 @@ +# Hexo/Bulma Grusp Themes + + +* [Installazione](#installazione) + * [Requirements](#requirements) + * [Setup](#setup) + * [Componenti aggiuntivi](#componenti-aggiuntivi) +* [Informazioni generali](#informazioni-generali) + * [Generare il sito](#generare-il-sito) +* [Configurazione](#configurazione) + * [Importante](#importante) + * [GitHub Pages](#github-pages) + * [Configurazione generale del sito](#configurazione-generale-del-sito) + * [Tema](#tema) + * [Configurazione generale del tema](#configurazione-generale-del-tema) +* [Conferenze online](#conferenze-online) +* [Contenuti](#contenuti) + * [Info base sulla conferenza](#info-base-sulla-conferenza) + * [Home page e componenti](#home-page-e-componenti) + * [Footer](#footer) + * [Welcome](#welcome) + * [Welcome/about](#welcomeabout) + * [Welcome/coc](#welcomecoc) + * [Welcome/scholarships](#welcomescholarships) + * [Welcome/where](#welcomewhere) + * [Welcome/cfp](#welcomecfp) + * [Talks](#talks) + * [Schedule](#schedule) + * [La logica](#la-logica) + * [Workshop](#workshop) + * [Sponsor](#sponsor) + * [Pagina "sponsor"](#pagina-sponsor) + * [Componente "sponsors"](#componente-sponsors) + * [Tickets](#tickets) + + +## Installazione + +### Pre-requirements + +I prerequisiti all'installazione di Hexo sono: + +* node.js 12.18.3 (LTS) + * npm +* git + +La [documentazione di Hexo](https://hexo.io/docs/) include le istruzioni per installare entrambi (Windows, Mac, Linux) e naturalmente le istruzioni per installare Hexo stesso. + +### Setup + +`npm install` + +## Componenti aggiuntivi + +Oltre al setup standard di Hexo sono stati aggiunti i seguenti plugins: + +* **Bulma** CSS framework +* hexo-filter-responsive-images +* hexo-render-pug +* hexo-renderer-markdown-it-plus +* hexo-renderer-sass +* markdown-it +* node-sass + +Essi vengono installati automaticamente dal setup come dipendenze. + +## Informazioni generali + +Il file di configurazione del sito si trova nella root directory del repo; i file di configurazione dei temi nelle rispettive directory (in `themes/[directory del tema]/`). + +Gli asset comuni (icone, immagini di sfondo delle testate, etc.) si trovano nei singoli temi. + +I contenuti (testi) invece si trovano in `/source/_data/`; gli asset specifici della singola conferenza (le foto degli speaker, i loghi dei partner, etc) si trovano in `/source/_data/img/`. Per i dettagli vedere [Contenuti](#contenuti). + +### Generare il sito + +Per generare il sito in locale: + +`npm run generate` + +Il comando svuota la directory `/public`, genera tutti i contenuti e li pubblica appunto in `/public`. + +Per testare in locale si può usare la funzionalità di Hexo che avvia un miniserver: + +`npm run server` + +La variante `watch` serve a lavorare sui contenuti senza dover riavviare continuamente il "server" di Hexo: + +`npm run watch` + +Il server ricarica dinamicamente i contenuti ogni volta che un file viene salvato. In questo modo si può lavorare sulla propria macchina con un'anteprima in tempo reale delle modifiche che si fanno. È necessario riavviare il server / rigenerare il sito solo se si fanno modifiche alla configurazione del tema o alla struttura dei template. + +## Configurazione + +### Importante + +Ci deve essere **almeno un post**, anche se vuoto, in `/source/_posts`, altrimenti **non viene generato l'`index` del sito** + +### GitHub Pages + +#### Build and deploy + +Il repository contiene lo script per la generazione del sito: `/.github/workflows/deploy.yml` che contiene le impostazioni per generare il sito e pubblicarlo su GitHub Pages. + +La "action" specificata nello script, che scatta quando si fa `push` su `master`, genera le pagine e gli assets e li pubblica in `gh-pages`. + +**Attenzione**: il file `CNAME` che specifica il dominio custom per GitHubPages deve essere incluso in `/source`, in modo che Hexo lo includa fra i file generati durante il deploy. Ovvero, in questo modo il file verrà copiato nel root directory di destinazione, e GitHub Pages potrà fare il redirect usando il dominio specificato. + +#### 404 page + +Quando si lavora in locale, la pagina 404 / Not Found viene generata, ma non utilizzata. Per utilizzarla sul server, seguire le [indicazioni fornite da GitHub](https://help.github.com/en/github/working-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site). + +È sufficiente specificare `404.html` (la pagina viene generata nel root directory del sito). + +### Configurazione generale del sito + +La configurazione generale si trova nel file `_config.yml` nella root directory del repo. + +Qui si definiscono: + +* il **tema** (cfr. capitolo successivo "Tema") +* i dati per schema.org e OpenGraph +* la visualizzazione (o no) della *breadcrumbs* nelle pagine interne +* l'URL del sito +* i formati delle date +* i parametri di configurazione standard di Hexo (separati da un commento "############# standard config: do not change") + +#### OpenGraph + +Tra i dati "interessanti" ci sono `title`, `description`, etc.; vengono usati per generare i microdata (json-ld) nelle varie pagine. vedere anche la [documentazione di Hexo](https://hexo.io/docs/configuration.html) + +``` +# Site / OG +type: website +title: "ruby day 2020" +description: "Ruby Day 2020, Verona, Italy" +# separate keywords by comma, no spaces +keywords: conference,software conference,ruby,ruby on rails +author: GrUSP +language: en +timezone: 'Europe/Rome' +# si può sostituire con il logo della conferenza (`img/conference-logo.png`) +image: 'img/grusp-logo-full.png' +open_graph: + # si può sostituire con il logo della conferenza (`img/conference-logo.png`) + image: 'img/grusp-logo-full.png' +``` + +C'è anche la sezione dove inserire gli account social: + +``` +twitter: + twitter_id: rubydayIT +fb: + fb_id: RubyDayIT +``` + +**NB** c'è una issue di Hexo per cui + +``` +open_graph: + image: 'img/grusp-logo-full.png' +``` + +a volte non viene interpretato correttamente, open_graph.js non genera tutti i tag `og:`, e in OpenGraph non risulta l'immagine. Stiamo monitorando la cosa... + +#### Breadcrumbs + +``` +# Breadcrumbs +breadcrumb: + display: true +``` + +Basta cambiare `true` con `false` per nascondere le *breadcrumbs* in tutte le pagine + +#### URL del sito + +Es.: `url: https://grusp.isunder.review/` è il valore predefinito nel repo originale, ed è l'URL completo del sito di staging + +Viene usato per generare FQURLs dagli URI relativi. + +#### Formati data + +Usati sia nel frontend, sia per generare i valori dei tag `