{"id":28561105,"url":"https://github.com/perfectslayer/parisjug-website","last_synced_at":"2026-02-01T04:32:23.146Z","repository":{"id":49982810,"uuid":"488510881","full_name":"PerfectSlayer/parisjug-website","owner":"PerfectSlayer","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-25T16:17:21.000Z","size":311691,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-28T18:20:06.462Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PerfectSlayer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-04T08:34:47.000Z","updated_at":"2025-11-25T16:17:18.000Z","dependencies_parsed_at":"2025-06-10T10:14:14.136Z","dependency_job_id":"1c8fa9f4-8a99-4cb5-9c30-3882247c5b5a","html_url":"https://github.com/PerfectSlayer/parisjug-website","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PerfectSlayer/parisjug-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerfectSlayer%2Fparisjug-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerfectSlayer%2Fparisjug-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerfectSlayer%2Fparisjug-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerfectSlayer%2Fparisjug-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PerfectSlayer","download_url":"https://codeload.github.com/PerfectSlayer/parisjug-website/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PerfectSlayer%2Fparisjug-website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28967930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T03:46:10.227Z","status":"ssl_error","status_checked_at":"2026-02-01T03:46:01.693Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-10T10:14:06.234Z","updated_at":"2026-02-01T04:32:23.130Z","avatar_url":"https://github.com/PerfectSlayer.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Paris JUG Website\n\n## New Dev\n\n1. Fork and clone locally this repository\n\n2. In the root folder:\n\n```shell\ngit submodule update --init\n```\n\n3. Test locally:\n\n```shell\nhugo server -D\n```\n\nor\n\n```shell\ndocker run --rm -it \\\n  -v $(pwd):/src \\\n  -p 1313:1313 \\\n  klakegg/hugo:0.101.0 \\\n  server -D\n```  \n\n## Creating Content\n\n### Creating an Event\n\n1. Create a document using:\n\n```shell\nhugo new content/events/\u003cyear\u003e/\u003cmonth\u003e-\u003cday\u003e-\u003cname\u003e.md\n```\n\n2. Edit the event metadata:\n\n- `date`: The date of the event (with time)\n- `draft` (optional): If set to `true`, the event won't be published on website\n- `publishDate` (optional): The date from which the event will be published (requires to rebuild the site)\n- register (optional): The link to the eventbrite registration frame (ex `https://eventbrite.fr/tickets-external?eid=xxxx\"`)\n- `tags` (optional): A list of tags related to the event for navigation and SEO\n- `title`: The title of the event (without date)\n- `videos` (optional): A list of the replay videos (ex: `https://www.youtube.com/watch?v=xxxx`)\n\n3. Add the event details as content\n\n### Creating a Spearker\n\n1. Create a document using:\n\n```shell\nhugo new content/speakers/\u003cfirst_name\u003e-\u003clast_name\u003e.md\n```\n\n2. Edit the speaker metadata:\n\n- `title`: The readable name of the speaker\n- `twitter` (optional): The Twitter handle of the speaker (without `@`)\n\n3. Add the speaker biography as content.\n\n### Updating Sponsors\n\nSponsors data are located in three locations:\n\n1. `static/img/sponsors/` contains SVG image of the sponsors.  \n   Please make sure the logos does not contains margin.\n   You can easily trim them editing the `viewport` attribute of the image.\n2. `layout/partials/widgets/sponsors.html` contains the HTML code of the sponsor sidebar widget.\n3. `content/about/sponsors.md` contains the Markdown code of the sponsor Web page.\n\n## Web site custom features\n\n### Content Automation\n\n- The home page contains the last events and shows:\n  - The registration link a week before the start of the event,\n  - The event video if present and event is past,\n  - The event details summary if details section is present,\n  - The event summary otherwise.\n- Speakers page in an automatec alphabetic index.\n- Speaker conference list from the speaker page is updated if a speaker is mentioned in an event content.\n- Speaker profile picture comes from the Twitter and is regularly updated.\n\n### Custom Shortcodes\n\nThere is two kinds of custom short codes: generic ones, and section ones.\nThe section shortcode are expected to be used within `event` page content.\n\n#### Flickr slideshow\n\nThe `flickr` shortcode generates a gallery from a Flickr album:\n\n`{{\u003c flickr id=\"72157659120711844\" img=\"https://live.staticflickr.com/5783/23153505766_8b0cb95615_z.jpg\" \u003e}}`\n\nUsing the following paramters:\n\n- `id`: the Flickr album id,\n- `img`: the static URL of a picture in the album.\n\n#### Gallery\n\nThe `gallery` shortcode generates an image gallery from page resources:\n\n`{{\u003c gallery match=\"images/*\" \u003e}}`\n\nUsing the following paramters:\n\n- `match` _optional_: The path of images to include to the gallery (`gallery/*`) by default.\n\n#### Iframe\n\nThe `iframe` shortcode allows to insert safe frame into pages:\n\n`{{\u003c iframe src=\"https://example.com\" title=\"content-title\" width=\"425\" height=\"350\" \u003e}}`\n\nUsing the following parameters:\n\n- `src`: The target of the frame,\n- `title` _recommanded_: The description of the frame content for accessibility,\n- `width` _optional_: The width of the frame (in pixel),\n- `height` _optional_: The height of the frame (in pixel).\n\n#### Section: Code of Conduct\n\nThe `coc-section` shortcode renders a page section with our code of conduct:\n\n`{{% coc-section %}}`\n\n#### Section: Replay\n\nThe `replay-section` shortcode renders a page section with YouTube thumbnails and links of an event videos:\n\n`{{\u003c replay-section \u003e}}`\n\n#### Section: Sponsor\n\nThe `sponsor-section` shortcode renders a page section with the year-related sponsors of the event:\n\n`{{\u003c sponsor-section \u003e}}`\n\n#### Unsafe\n\nThe `unsafe` shortcode allows to insert raw HTML content in Markdown pages:\n\n```\n{{\u003c unsafe \u003e}}\n\u003cdiv\u003eSome content\u003c/div\u003e\n{{\u003c /unsafe \u003e}}\n```\n\n## Third Parties\n\n- [Mainroad](https://github.com/Vimux/Mainroad) (GLP 2.0)\n- [medium-zoom](https://github.com/francoischalifour/medium-zoom) (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperfectslayer%2Fparisjug-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperfectslayer%2Fparisjug-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperfectslayer%2Fparisjug-website/lists"}