From b7d48908b949866261abbbd90e58dcf5c697a423 Mon Sep 17 00:00:00 2001 From: charles Date: Thu, 28 May 2026 18:40:14 -0700 Subject: [PATCH] Add event calendar and update site content Add a calendar page and ICS file for event subscriptions. Update the Hello Linux presentation with Tux images and add setup instructions to the README. --- 20260403-HelloLinux/index.html | 28 ++++++ 20260403-HelloLinux/tux1.png | Bin 0 -> 7666 bytes 20260403-HelloLinux/tux2.png | Bin 0 -> 7102 bytes 20260403-HelloLinux/tux3.png | Bin 0 -> 7528 bytes README.md | 16 ++++ calendar.html | 159 +++++++++++++++++++++++++++++++++ events.ics | 18 ++++ index.html | 119 +++++++++++++----------- 8 files changed, 286 insertions(+), 54 deletions(-) create mode 100644 20260403-HelloLinux/tux1.png create mode 100644 20260403-HelloLinux/tux2.png create mode 100644 20260403-HelloLinux/tux3.png create mode 100644 calendar.html create mode 100644 events.ics diff --git a/20260403-HelloLinux/index.html b/20260403-HelloLinux/index.html index a649c3c..a4e9207 100644 --- a/20260403-HelloLinux/index.html +++ b/20260403-HelloLinux/index.html @@ -23,6 +23,34 @@

April 3, 2026

+
+

Meet Tux, the Linux Mascot!

+
+ Tux 1 + Tux 2 + Tux 3 +
+
+

What is a computer?

jV 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 literal 0 HcmV?d00001 diff --git a/20260403-HelloLinux/tux2.png b/20260403-HelloLinux/tux2.png new file mode 100644 index 0000000000000000000000000000000000000000..94c4d170f466a80df9411967a70cbdc6ef77293a GIT binary patch literal 7102 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 Z|1ztKv&BM-K60V^Iub@opt~K literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 8712bba..16eeb35 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ # Faux Linux User Group presentations This repository contains the FLUG presentations. + +## Usage + +Install the required dependencies: + +```bash +nvm use stable +npm install +npm install -g vite +``` + +Run the development server: + +```bash +vite +``` diff --git a/calendar.html b/calendar.html new file mode 100644 index 0000000..79acd87 --- /dev/null +++ b/calendar.html @@ -0,0 +1,159 @@ + + + + + + FLUG Calendar + + + + ← Back to Home +

FLUG Calendar

+ +
+
Next FLUG Meeting
+
+ Date: May 29, 2026
+ Time: 8:30pm PT
+ Location: Google CRSM1240, Sunnyvale CA 94089 +
+ +
+ +
+

Subscribe via Google Calendar

+

+ Google Calendar requires you to manually add the calendar URL: +

+
+ + +
+

+ Then go to Google Calendar → + Other calendars (+) → + From URL and paste the link. +

+
+ + + + diff --git a/events.ics b/events.ics new file mode 100644 index 0000000..d061904 --- /dev/null +++ b/events.ics @@ -0,0 +1,18 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//FLUG//NONSGML Event Calendar//EN +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WRAPER-NAME:ical4j +BEGIN:VEVENT +UID:flug-meeting-2026-05-29@flug.org +DTSTAMP:20260101T000000Z +DTSTART;TZID=America/Los_Angeles:20260529T203000 +DTEND;TZID=America/Los_Angeles:20260529T220000 +SUMMARY:FLUG Meeting +LOCATION:Google CRSM1240, Sunnyvale CA 94089 +DESCRIPTION:FLUG Meeting +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR diff --git a/index.html b/index.html index a1c70dc..42fe8bb 100644 --- a/index.html +++ b/index.html @@ -1,57 +1,68 @@ - + - - - - FLUG Presentations - - - -

FLUG Presentations

-

Welcome to the presentation repository for FLUG.

+ + + + FLUG Presentations + + + +

FLUG Presentations

+

Welcome to the presentation repository for FLUG.

-

Presentations

- - +

+ 📅 View Calendar & Add to yours +

+ +

Presentations

+ +