https://github.com/perfectslayer/parisjug-website
https://github.com/perfectslayer/parisjug-website
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/perfectslayer/parisjug-website
- Owner: PerfectSlayer
- License: apache-2.0
- Created: 2022-05-04T08:34:47.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-11-25T16:17:21.000Z (7 months ago)
- Last Synced: 2025-11-28T18:20:06.462Z (7 months ago)
- Language: HTML
- Size: 297 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Paris JUG Website
## New Dev
1. Fork and clone locally this repository
2. In the root folder:
```shell
git submodule update --init
```
3. Test locally:
```shell
hugo server -D
```
or
```shell
docker run --rm -it \
-v $(pwd):/src \
-p 1313:1313 \
klakegg/hugo:0.101.0 \
server -D
```
## Creating Content
### Creating an Event
1. Create a document using:
```shell
hugo new content/events//--.md
```
2. Edit the event metadata:
- `date`: The date of the event (with time)
- `draft` (optional): If set to `true`, the event won't be published on website
- `publishDate` (optional): The date from which the event will be published (requires to rebuild the site)
- register (optional): The link to the eventbrite registration frame (ex `https://eventbrite.fr/tickets-external?eid=xxxx"`)
- `tags` (optional): A list of tags related to the event for navigation and SEO
- `title`: The title of the event (without date)
- `videos` (optional): A list of the replay videos (ex: `https://www.youtube.com/watch?v=xxxx`)
3. Add the event details as content
### Creating a Spearker
1. Create a document using:
```shell
hugo new content/speakers/-.md
```
2. Edit the speaker metadata:
- `title`: The readable name of the speaker
- `twitter` (optional): The Twitter handle of the speaker (without `@`)
3. Add the speaker biography as content.
### Updating Sponsors
Sponsors data are located in three locations:
1. `static/img/sponsors/` contains SVG image of the sponsors.
Please make sure the logos does not contains margin.
You can easily trim them editing the `viewport` attribute of the image.
2. `layout/partials/widgets/sponsors.html` contains the HTML code of the sponsor sidebar widget.
3. `content/about/sponsors.md` contains the Markdown code of the sponsor Web page.
## Web site custom features
### Content Automation
- The home page contains the last events and shows:
- The registration link a week before the start of the event,
- The event video if present and event is past,
- The event details summary if details section is present,
- The event summary otherwise.
- Speakers page in an automatec alphabetic index.
- Speaker conference list from the speaker page is updated if a speaker is mentioned in an event content.
- Speaker profile picture comes from the Twitter and is regularly updated.
### Custom Shortcodes
There is two kinds of custom short codes: generic ones, and section ones.
The section shortcode are expected to be used within `event` page content.
#### Flickr slideshow
The `flickr` shortcode generates a gallery from a Flickr album:
`{{< flickr id="72157659120711844" img="https://live.staticflickr.com/5783/23153505766_8b0cb95615_z.jpg" >}}`
Using the following paramters:
- `id`: the Flickr album id,
- `img`: the static URL of a picture in the album.
#### Gallery
The `gallery` shortcode generates an image gallery from page resources:
`{{< gallery match="images/*" >}}`
Using the following paramters:
- `match` _optional_: The path of images to include to the gallery (`gallery/*`) by default.
#### Iframe
The `iframe` shortcode allows to insert safe frame into pages:
`{{< iframe src="https://example.com" title="content-title" width="425" height="350" >}}`
Using the following parameters:
- `src`: The target of the frame,
- `title` _recommanded_: The description of the frame content for accessibility,
- `width` _optional_: The width of the frame (in pixel),
- `height` _optional_: The height of the frame (in pixel).
#### Section: Code of Conduct
The `coc-section` shortcode renders a page section with our code of conduct:
`{{% coc-section %}}`
#### Section: Replay
The `replay-section` shortcode renders a page section with YouTube thumbnails and links of an event videos:
`{{< replay-section >}}`
#### Section: Sponsor
The `sponsor-section` shortcode renders a page section with the year-related sponsors of the event:
`{{< sponsor-section >}}`
#### Unsafe
The `unsafe` shortcode allows to insert raw HTML content in Markdown pages:
```
{{< unsafe >}}
Some content
{{< /unsafe >}}
```
## Third Parties
- [Mainroad](https://github.com/Vimux/Mainroad) (GLP 2.0)
- [medium-zoom](https://github.com/francoischalifour/medium-zoom) (MIT)