Browse Source

Add events as markdown

merge-requests/3/head
Yannik Rödel 8 months ago
parent
commit
9800850f88
11 changed files with 918 additions and 19 deletions
  1. +1
    -0
      .prettierrc
  2. +9
    -0
      data/events/2018-10-27/event.md
  3. +30
    -0
      data/events/2018-10-27/recap.md
  4. +9
    -0
      data/events/2018-12-01/event.md
  5. +6
    -0
      data/events/2018-12-01/recap.md
  6. +15
    -0
      data/events/2019-04-06/event.md
  7. +11
    -3
      gatsby-config.js
  8. +767
    -0
      package-lock.json
  9. +2
    -0
      package.json
  10. +23
    -13
      src/components/upcomingEvent.tsx
  11. +45
    -3
      src/pages/index.tsx

+ 1
- 0
.prettierrc View File

@@ -1,6 +1,7 @@
{
"endOfLine": "lf",
"printWidth": 100,
"proseWrap": "always",
"semi": true,
"singleQuote": true,
"tabWidth": 2,

+ 9
- 0
data/events/2018-10-27/event.md View File

@@ -0,0 +1,9 @@
---
date: '2018-10-27'
start: '10:00'
end: '15:00'
location: 'Stadtbücherei Würzburg'
address: 'Markplatz 9'
city: '97070 Würzburg'
title: 'Herbst 2018'
---

+ 30
- 0
data/events/2018-10-27/recap.md View File

@@ -0,0 +1,30 @@
---
participants: 32
team: 12
---

## Projekte: Homepages

[Hannibal](#) - von Lukas

[PCs](#) - von Tim

## Projekte: Stop-Motion-Filme

[Gruppe 1](#)

[Gruppe 2](#)

[Gruppe 3](#)

[Gruppe 4](#)

[Gruppe 5](#)

# Danksagung

Vielen Dank an unsere Sponsoren und Unterstützer: die
[Stadtbücherei Würzburg](https://www.wuerzburg.de/themen/kultur-bildung-kulturangebot/stadtbuecherei/makerspace/index.html),
der [Stadtjugendring](https://www.sjr-wuerzburg.de/mit-medien-zukunft-gestalten/) und natürlich an
die vielen Freiwilligen Helfer und Metoren! Sie alle waren eifrig dabei, den Tag zu organisieren und
auszugestalten - wir freuen uns darauf, das nächste Dojo bald anbieten zu können.

+ 9
- 0
data/events/2018-12-01/event.md View File

@@ -0,0 +1,9 @@
---
date: '2018-12-01'
start: '10:00'
end: '17:00'
location: 'FHWS'
address: 'Sanderheinrichsleitenweg 20'
city: '97074 Würzburg'
title: 'Winter 2018'
---

+ 6
- 0
data/events/2018-12-01/recap.md View File

@@ -0,0 +1,6 @@
---
participants: 39
team: 20
---

Jo war ganz cool.

+ 15
- 0
data/events/2019-04-06/event.md View File

@@ -0,0 +1,15 @@
---
date: '2019-04-06'
start: '10:00'
end: '16:00'
location: 'Neue Universität'
address: 'Sanderring 2'
city: '97070 Würzburg'
title: 'WueWW 2019'
---

Dank [Mayflower](https://mayflower.de/) nehmen wir dieses Jahr zum ersten Mal an der
[Würzburg Web Week](https://wueww.de/), kurz WueWW, teil. Am Samstag haben wir einen Raum an der
neuen Universität mit der Kapazität für bis zu 30 Kinder. Wie schon das letzte Mal beim ZDI gilt:
First come, first serve! Mayflower sorgt während des CoderDojos für die Verpflegung. Vielen Dank
dafür!

+ 11
- 3
gatsby-config.js View File

@@ -8,9 +8,10 @@ module.exports = {
},
plugins: [
`gatsby-plugin-react-helmet`,
`gatsby-plugin-typescript`,
`gatsby-plugin-styled-components`,

// Exposes /assets to the GraphQL layer
// Exposes assets and data to the GraphQL layer.
{
resolve: `gatsby-source-filesystem`,
options: {
@@ -18,7 +19,16 @@ module.exports = {
path: `${__dirname}/assets`,
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
name: `events`,
path: `${__dirname}/data/events`,
},
},

`gatsby-remark-source-name`,
`gatsby-transformer-remark`,
`gatsby-transformer-sharp`,
{
resolve: `gatsby-plugin-sharp`,
@@ -43,7 +53,5 @@ module.exports = {
icon: `assets/favicon.png`,
},
},

`gatsby-plugin-typescript`,
],
};

+ 767
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 2
- 0
package.json View File

@@ -36,7 +36,9 @@
"gatsby-plugin-sharp": "^2.0.32",
"gatsby-plugin-styled-components": "^3.0.7",
"gatsby-plugin-typescript": "^2.0.12",
"gatsby-remark-source-name": "^1.0.0",
"gatsby-source-filesystem": "^2.0.28",
"gatsby-transformer-remark": "^2.3.8",
"gatsby-transformer-sharp": "^2.1.17",
"prop-types": "^15.7.2",
"react": "^16.8.6",

+ 23
- 13
src/components/upcomingEvent.tsx View File

@@ -10,6 +10,20 @@ import styled, { keyframes } from 'styled-components';
import media from '@/styles/media';
import { SmallMeta } from './styling';

/**
* Interface for holding information about indiviual events.
*/
export interface EventInformation {
title?: string;
date: string;
start: string;
end: string;
location: string;
address: string;
city: string;
teaser?: string;
}

const Wrap = styled.div`
--fg-color: var(--inverse-fg-color);
--bg-color: var(--inverse-bg-color);
@@ -108,22 +122,23 @@ const Map = styled.div`
`;

export interface UpcomingEventProps {
event: EventInformation;
logo: any; // eslint-disable-line @typescript-eslint/no-explicit-any
}
const UpcomingEvent = ({ logo }: UpcomingEventProps): JSX.Element => (
const UpcomingEvent = ({ event, logo }: UpcomingEventProps): JSX.Element => (
<>
<Wrap>
{logo && <Logo fixed={logo.childImageSharp.fixed} />}
<When>
<strong>6. April</strong> 2019
<strong>{event.date}</strong> {/* TODO Parse the date */}
<br />
10:00 bis 16:00 Uhr
{event.start} bis {event.end} Uhr
</When>
<Where>
Neue Universität Würzburg
{event.location}
<br />
<strong>Sanderring 2</strong>,<br />
97070 Würzburg
<strong>{event.address}</strong>,<br />
{event.city}
</Where>
<Enrollment>
<Button href="https://campus.coderdojo-wue.de/">Kostenlose Online-Anmeldung</Button>
@@ -134,16 +149,11 @@ const UpcomingEvent = ({ logo }: UpcomingEventProps): JSX.Element => (
</Enrollment>
<Map />
</Wrap>
<p>
Dank <a href="https://mayflower.de/">Mayflower</a> nehmen wir dieses Jahr zum ersten Mal an
der <a href="https://wueww.de/">Würzburg Web Week</a>, kurz WueWW, teil. Am Samstag haben wir
einen Raum an der neuen Universität mit der Kapazität für bis zu 30 Kinder. Wie schon das
letzte Mal beim ZDI gilt: First come, first serve! Mayflower sorgt während des CoderDojos für
die Verpflegung. Vielen Dank dafür!
</p>
{event.teaser && <div dangerouslySetInnerHTML={{ __html: event.teaser }} />}
</>
);
UpcomingEvent.propTypes = {
event: PropTypes.object.isRequired,
logo: PropTypes.object.isRequired,
};
export default UpcomingEvent;

+ 45
- 3
src/pages/index.tsx View File

@@ -11,7 +11,7 @@ import media from '@/styles/media';
import { SmallMeta } from '@/components/styling';
import HomeLayout from '@/layouts/home';
import SEO from '@/components/seo';
import UpcomingEvent from '@/components/upcomingEvent';
import UpcomingEvent, { EventMetadata } from '@/components/upcomingEvent';

const Sidebar = styled.div`
margin-top: -12rem;
@@ -55,7 +55,24 @@ const Imprint = styled.footer`
`;

interface IndexPageProps {
data: any; // eslint-disable-line @typescript-eslint/no-explicit-any
data: {
/* eslint-disable @typescript-eslint/no-explicit-any */
sideA: any;
sideB: any;
sideC: any;
sideD: any;
angestoepselt: any;
mayflower: any;
/* eslint-enable */
nextEvent: {
edges: {
node: {
frontmatter: EventInformation;
html: string;
};
}[];
};
};
}
const IndexPage = ({ data }: IndexPageProps): JSX.Element => (
<HomeLayout
@@ -124,7 +141,13 @@ const IndexPage = ({ data }: IndexPageProps): JSX.Element => (
<SEO title="Startseite" />

<h1>Nächstes CoderDojo</h1>
<UpcomingEvent logo={data.mayflower} />
<UpcomingEvent
event={{
...data.nextEvent.edges[0].node.frontmatter,
teaser: data.nextEvent.edges[0].node.html,
}}
logo={data.mayflower}
/>

<h1>Newsletter</h1>
<p>
@@ -181,5 +204,24 @@ export const query = graphql`
}
}
}
nextEvent: allMarkdownRemark(
filter: { frontmatter: { date: { ne: null } }, fields: { sourceName: { eq: "events" } } }
sort: { order: DESC, fields: [frontmatter___date] }
limit: 1
) {
edges {
node {
frontmatter {
date
start
end
location
address
city
}
html
}
}
}
}
`;

Loading…
Cancel
Save