From 217e4a5de55c9b567e92bd3a81c5f9babbc1abc3 Mon Sep 17 00:00:00 2001 From: Phil Date: Wed, 4 Jun 2025 13:53:50 -0600 Subject: [PATCH] Initial commit: Hugo static site for nerdy events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Custom cyberpunk/console theme with pure CSS - Event management with RSS and iCal calendar feeds - Gitea workflow for automated deployment - Complete documentation and setup instructions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .gitea/workflows/build_hugo.yaml | 19 + .hugo_build.lock | 0 README.md | 343 ++++++++++++++++++ archetypes/default.md | 5 + content/events/cyberpunk-hackathon.md | 44 +++ content/events/maker-workshop.md | 53 +++ content/events/retro-gaming-night.md | 39 ++ hugo.toml | 27 ++ layouts/_partials/footer.html | 11 + layouts/_partials/header.html | 10 + layouts/baseof.html | 29 ++ layouts/events/calendar.ics | 48 +++ layouts/events/rss.xml | 39 ++ layouts/events/single.html | 98 +++++ layouts/events/single.ics | 48 +++ layouts/home.html | 44 +++ layouts/single.html | 76 ++++ public/categories/feed.xml | 11 + public/css/style.css | 230 ++++++++++++ public/events/calendar.ics | 64 ++++ .../events/cyberpunk-hackathon/calendar.ics | 38 ++ public/events/cyberpunk-hackathon/index.html | 163 +++++++++ public/events/feed.xml | 38 ++ public/events/maker-workshop/calendar.ics | 38 ++ public/events/maker-workshop/index.html | 171 +++++++++ public/events/retro-gaming-night/calendar.ics | 38 ++ public/events/retro-gaming-night/index.html | 150 ++++++++ public/feed.xml | 33 ++ public/index.html | 120 ++++++ public/sitemap.xml | 24 ++ public/tags/feed.xml | 11 + static/css/style.css | 230 ++++++++++++ 32 files changed, 2292 insertions(+) create mode 100644 .gitea/workflows/build_hugo.yaml create mode 100644 .hugo_build.lock create mode 100644 README.md create mode 100644 archetypes/default.md create mode 100644 content/events/cyberpunk-hackathon.md create mode 100644 content/events/maker-workshop.md create mode 100644 content/events/retro-gaming-night.md create mode 100644 hugo.toml create mode 100644 layouts/_partials/footer.html create mode 100644 layouts/_partials/header.html create mode 100644 layouts/baseof.html create mode 100644 layouts/events/calendar.ics create mode 100644 layouts/events/rss.xml create mode 100644 layouts/events/single.html create mode 100644 layouts/events/single.ics create mode 100644 layouts/home.html create mode 100644 layouts/single.html create mode 100644 public/categories/feed.xml create mode 100644 public/css/style.css create mode 100644 public/events/calendar.ics create mode 100644 public/events/cyberpunk-hackathon/calendar.ics create mode 100644 public/events/cyberpunk-hackathon/index.html create mode 100644 public/events/feed.xml create mode 100644 public/events/maker-workshop/calendar.ics create mode 100644 public/events/maker-workshop/index.html create mode 100644 public/events/retro-gaming-night/calendar.ics create mode 100644 public/events/retro-gaming-night/index.html create mode 100644 public/feed.xml create mode 100644 public/index.html create mode 100644 public/sitemap.xml create mode 100644 public/tags/feed.xml create mode 100644 static/css/style.css diff --git a/.gitea/workflows/build_hugo.yaml b/.gitea/workflows/build_hugo.yaml new file mode 100644 index 0000000..c2ffd99 --- /dev/null +++ b/.gitea/workflows/build_hugo.yaml @@ -0,0 +1,19 @@ +name: Build Hugo Site +run-name: ${{ gitea.actor }} is building Nerderland +on: [push] + +jobs: + build: + runs-on: docker + steps: + - run: apk add --no-cache nodejs rsync + - uses: actions/checkout@v4 + with: + submodules: 'true' + - uses: actions/setup-go@v3 + with: + go-version: '1.24.3' + - run: go install -tags extended github.com/gohugoio/hugo@v0.147.7 + - run: hugo version + - run: hugo + - run: rsync -avz --delete ./public/ /sites/nerderland/ \ No newline at end of file diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e6176f0 --- /dev/null +++ b/README.md @@ -0,0 +1,343 @@ +# NERDER.LAND - Event Management Documentation + +A Hugo static site for listing nerdy events in your local community with a cyberpunk/console theme. + +## Site Overview + +- **Framework**: Hugo v0.147.7+ static site generator +- **Theme**: Custom cyberpunk/console theme (no external dependencies) +- **Content**: Event listings with detailed individual pages +- **Styling**: Pure CSS with cyberpunk aesthetics (no JavaScript) + +## Prerequisites + +1. **Go 1.24.3+** (managed via gvm) +2. **Hugo v0.147.7+** (installed via Go) + +## Initial Setup + +```bash +# Set up Go environment +source ~/.gvm/scripts/gvm +gvm use go1.24.3 + +# Install Hugo +go install -tags extended github.com/gohugoio/hugo@latest + +# Verify installation +hugo version +``` + +## Site Structure + +``` +nerder.land/ +├── content/ +│ ├── events/ # Event markdown files +│ └── _index.md # Homepage content +├── layouts/ +│ ├── _partials/ # Header, footer components +│ ├── events/ # Event page templates +│ ├── baseof.html # Base template +│ ├── home.html # Homepage template +│ └── single.html # Default single page template +├── static/ +│ └── css/ +│ └── style.css # Cyberpunk theme styles +├── public/ # Generated site (auto-created) +└── hugo.toml # Site configuration +``` + +## Managing Events + +### Creating a New Event + +1. Generate the event file: +```bash +source ~/.gvm/scripts/gvm && gvm use go1.24.3 +hugo new content events/your-event-name.md +``` + +2. Edit the event file with proper front matter: +```yaml ++++ +title = 'Your Event Title' +date = '2025-07-15T19:00:00-06:00' # Start date/time (with timezone) +end_date = '2025-07-15T23:00:00-06:00' # End date/time (optional) +location = 'Venue Name, Address' # Event location +organizer = 'Organization Name' # Who's organizing +capacity = 50 # Max attendees (optional) +cost = 'Free' # or '$25' # Event cost +registration_url = 'https://...' # Registration link (optional) +contact = 'email@domain.com' # Contact info +draft = false # Set to false to publish ++++ + +Brief event description that appears on homepage. Keep this to 1-2 sentences that give a clear overview of what the event is about. + + + +## Full Event Details + +Add detailed information here including: +- Event description +- What to expect +- Requirements +- Schedule +- Any other relevant information +``` + +### Event Front Matter Fields + +| Field | Required | Description | +|-------|----------|-------------| +| `title` | Yes | Event name/title | +| `date` | Yes | Start date and time (ISO format) | +| `end_date` | No | End date and time | +| `location` | No | Venue/address | +| `organizer` | No | Who's running the event | +| `capacity` | No | Maximum attendees | +| `cost` | No | Event price (e.g., "Free", "$25") | +| `registration_url` | No | Link to registration page | +| `contact` | No | Contact email/info | +| `draft` | Yes | Set to `false` to publish | + +### Content Structure + +**Summary Section (before ``)**: +- Brief 1-2 sentence description +- Appears on homepage event listing +- Should give clear overview without details + +**Full Content (after ``)**: +- Detailed event information +- Use markdown formatting (headers, lists, etc.) +- Only appears on individual event pages + +### Event Dates and Timezones + +- **Important**: Set `buildFuture = true` in `hugo.toml` to show future events +- Events automatically sort chronologically on homepage +- Past events won't appear on homepage but remain accessible via direct URL + +**Timezone Handling:** +- Use ISO 8601 format with timezone offset: `2025-07-15T19:00:00-06:00` +- The site currently displays "MST" (Mountain Time) and "UTC-6" +- To change timezone display, update the `dateFormat` calls in templates: + - `layouts/home.html` (homepage event listing) + - `layouts/events/single.html` (event detail pages) + - `layouts/events/rss.xml` (RSS feeds) +- Update the hardcoded timezone info in `layouts/events/single.html` + +## Development Workflow + +### Local Development + +```bash +# Start development server +source ~/.gvm/scripts/gvm && gvm use go1.24.3 +hugo server --bind 0.0.0.0 --port 1313 + +# View site at: http://localhost:1313 +``` + +### Building for Production + +```bash +# Build static site +source ~/.gvm/scripts/gvm && gvm use go1.24.3 +hugo + +# Generated files will be in public/ directory +``` + +## RSS Feeds & Calendar Integration + +The site automatically generates multiple feed formats: + +### RSS Feeds +- **All content**: `https://your-site.com/feed.xml` +- **Events only**: `https://your-site.com/events/feed.xml` + +### iCal Calendar Feeds +- **Master calendar subscription**: `https://your-site.com/events/calendar.ics` +- **Individual event downloads**: `https://your-site.com/events/event-name/calendar.ics` + +### Feed Features +**RSS feeds include:** +- Event title and description +- Date, location, and cost information +- Direct links to full event pages +- Properly formatted for feed readers + +**iCal calendars include:** +- Proper timezone information (America/Denver) +- Start and end times +- Event location and description +- Organizer and contact information +- Compatible with all major calendar apps + +### Calendar App Compatibility +The iCal feeds work with: +- **Google Calendar** - Subscribe via URL +- **Apple Calendar** - Subscribe via URL +- **Outlook** - Import or subscribe +- **Mozilla Thunderbird** - Calendar subscription +- **Any CalDAV client** - Standard iCal format + +## Site Configuration + +### Basic Settings (`hugo.toml`) + +```toml +baseURL = 'https://your-domain.com/' +languageCode = 'en-us' +title = 'NERDER.LAND' +buildFuture = true # Required for future events + +# Ignore README.md from being processed as content +ignoreFiles = ["README.md"] + +[params] +description = "Your site description here" +eventSubmissionEmail = "events@your-domain.com" # Email for event submissions + +# RSS and Calendar configuration +[outputs] +home = ["HTML", "RSS"] +section = ["HTML", "RSS", "Calendar"] +page = ["HTML", "Calendar"] + +[outputFormats] +[outputFormats.RSS] +mediatype = "application/rss" +baseName = "feed" + +[outputFormats.Calendar] +mediatype = "text/calendar" +baseName = "calendar" +isPlainText = true +``` + +### Theme Customization + +The cyberpunk theme is in `static/css/style.css`. Key variables: + +```css +:root { + --neon-green: #00ff41; # Primary text color + --neon-blue: #00d4ff; # Links and accents + --neon-pink: #ff0080; # Event titles + --dark-bg: #0a0a0a; # Background + --matrix-green: #41ff00; # Secondary elements +} +``` + +## Deployment + +The `public/` directory contains the complete static site. Deploy options: + +1. **Netlify**: Connect to git repo, set build command to `hugo` +2. **GitHub Pages**: Use GitHub Actions with Hugo workflow +3. **Traditional hosting**: Upload `public/` contents to web server +4. **CDN**: Any static hosting service (Vercel, Firebase, etc.) + +## Troubleshooting + +### Events Not Showing + +1. Check `draft = false` in front matter +2. Ensure `buildFuture = true` in `hugo.toml` for future events +3. Verify date format: `2025-07-15T19:00:00-06:00` + +### ASCII Art Broken + +- Ensure ASCII art is wrapped in `
` tags in templates
+- Check for proper escaping in HTML
+
+### Site Not Building
+
+1. Verify Hugo version: `hugo version`
+2. Check for syntax errors in content files
+3. Ensure Go environment: `go version`
+
+### Template Issues
+
+- Hugo v0.147.7+ uses new template system
+- Templates must be in correct directory structure
+- Use `hugo --logLevel debug` for detailed error info
+
+## Content Guidelines
+
+### Event Descriptions
+
+- **Homepage summary**: 1-2 sentences, engaging but concise
+- **Full description**: Detailed, use markdown formatting
+- **Include practical info**: Date, time, location, cost, requirements
+
+### Writing Style
+
+- Match the cyberpunk/tech theme
+- Be informative but exciting
+- Include clear call-to-action for registration
+- Mention skill levels if relevant
+
+### Images
+
+- Add images to `static/images/` directory
+- Reference in markdown: `![Alt text](/images/filename.jpg)`
+- Keep file sizes reasonable for web
+
+## Maintenance
+
+### Regular Tasks
+
+1. **Remove past events**: Delete old event files periodically
+2. **Update dependencies**: Occasionally update Hugo version
+3. **Backup content**: Keep `content/` directory in version control
+4. **Monitor analytics**: Track which events get most interest
+
+### Content Archival
+
+Consider moving past events to an `archive/` section rather than deleting, to maintain event history and SEO value.
+
+## Community Event Submissions
+
+The site includes a "Submit an Event" link in the footer that allows community members to email event details.
+
+### How It Works
+
+1. **Submission Link**: Footer contains a mailto link with pre-formatted email template
+2. **Email Template**: Automatically includes required fields (name, date, location, etc.)
+3. **Review Process**: Site administrator receives email and manually creates event pages
+4. **Configuration**: Email address configurable via `eventSubmissionEmail` in `hugo.toml`
+
+### Email Template Fields
+
+The submission email includes these pre-filled fields:
+- Event Name
+- Date & Time  
+- Location
+- Description
+- Organizer
+- Contact Info
+- Cost
+- Registration URL (if any)
+
+### Processing Submissions
+
+When you receive event submissions:
+
+1. **Review the details** for completeness and appropriateness
+2. **Create the event file** using `hugo new content events/event-name.md`
+3. **Fill in front matter** from the submitted information
+4. **Add detailed content** based on the description provided
+5. **Set `draft = false`** to publish the event
+6. **Reply to submitter** confirming publication or requesting clarification
+
+## Support
+
+For issues with Hugo or Go setup, refer to:
+- [Hugo Documentation](https://gohugo.io/documentation/)
+- [Hugo Community Forum](https://discourse.gohugo.io/)
+- [Go Installation Guide](https://golang.org/doc/install)
\ No newline at end of file
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..25b6752
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,5 @@
++++
+date = '{{ .Date }}'
+draft = true
+title = '{{ replace .File.ContentBaseName "-" " " | title }}'
++++
diff --git a/content/events/cyberpunk-hackathon.md b/content/events/cyberpunk-hackathon.md
new file mode 100644
index 0000000..70bc991
--- /dev/null
+++ b/content/events/cyberpunk-hackathon.md
@@ -0,0 +1,44 @@
++++
+title = 'Cyberpunk Hackathon: Code the Future'
+date = '2025-06-15T09:00:00-06:00'
+end_date = '2025-06-16T18:00:00-06:00'
+location = 'TechHub Downtown, 123 Main St'
+organizer = 'Local Hackers Collective'
+capacity = 50
+cost = 'Free'
+registration_url = 'https://example.com/register'
+contact = 'hackathon@nerder.land'
+draft = false
++++
+
+Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces, blockchain solutions, or AI-powered tools in this innovation celebration.
+
+
+
+## Event Description
+
+Dive into the neon-lit world of cyberpunk as we challenge developers, designers, and tech enthusiasts to build applications that push the boundaries of what's possible. Whether you're creating AR interfaces, blockchain solutions, or AI-powered tools, this hackathon celebrates the spirit of innovation.
+
+## What to Expect
+
+- **24 hours of non-stop coding**
+- **Free meals and energy drinks** (because sleep is for the weak)
+- **Mentorship from industry experts** 
+- **Amazing prizes** including hardware, software licenses, and crypto rewards
+- **Networking with like-minded rebels**
+
+## Categories
+
+- Best Overall Hack
+- Most Creative Use of AI
+- Blockchain Innovation
+- Cybersecurity Solution
+- UI/UX Design Excellence
+
+## Requirements
+
+- Bring your own laptop and charger
+- Form teams of 2-4 people (or go solo if you dare)
+- All skill levels welcome - we'll have beginner-friendly workshops
+
+Get ready to jack in and code the future!
diff --git a/content/events/maker-workshop.md b/content/events/maker-workshop.md
new file mode 100644
index 0000000..af8f54f
--- /dev/null
+++ b/content/events/maker-workshop.md
@@ -0,0 +1,53 @@
++++
+title = 'DIY Electronics Workshop: Build Your Own Gadgets'
+date = '2025-06-22T14:00:00-06:00'
+end_date = '2025-06-22T17:00:00-06:00'
+location = 'MakerSpace Lab, 789 Circuit St'
+organizer = 'Hardware Hackers Guild'
+capacity = 15
+cost = '$25 (includes materials)'
+registration_url = 'https://example.com/maker-register'
+contact = 'makers@nerder.land'
+draft = false
++++
+
+Get your hands dirty with circuits, sensors, and microcontrollers! Learn circuit design, soldering, and programming while building your own working gadgets to take home.
+
+
+
+## Workshop Overview
+
+Join us for an afternoon of hands-on electronics where you'll learn the fundamentals of circuit design and build your own working gadgets to take home.
+
+## What You'll Build
+
+Choose from one of these beginner-friendly projects:
+
+- **LED Matrix Display** - Program patterns and text
+- **Motion Sensor Alarm** - Detect intruders with style  
+- **Temperature Monitor** - IoT device with wireless connectivity
+- **Sound Reactive LEDs** - Lights that dance to music
+
+## What's Included
+
+- All electronic components and tools
+- Step-by-step instruction guides
+- Expert mentorship from experienced makers
+- Soldering lessons for beginners
+- Take-home project kit
+
+## Prerequisites
+
+- No prior experience required!
+- Bring curiosity and willingness to learn
+- Safety glasses will be provided
+
+## Skills You'll Learn
+
+- Basic circuit design
+- Soldering techniques
+- Microcontroller programming
+- Sensor integration
+- Troubleshooting electronic systems
+
+Perfect for beginners looking to break into the world of electronics and making!
diff --git a/content/events/retro-gaming-night.md b/content/events/retro-gaming-night.md
new file mode 100644
index 0000000..711f2a5
--- /dev/null
+++ b/content/events/retro-gaming-night.md
@@ -0,0 +1,39 @@
++++
+title = 'Retro Gaming Night: Pixels & Power-Ups'
+date = '2025-06-08T19:00:00-06:00'
+end_date = '2025-06-08T23:00:00-06:00'
+location = 'Arcade Underground, 456 Neon Ave'
+organizer = 'Pixel Pushers Society'
+capacity = 30
+cost = '$10 cover charge'
+contact = 'pixels@nerder.land'
+draft = false
++++
+
+Step back in time to the golden age of gaming! Classic arcade cabinets, console gaming stations, tournaments with prizes, and chiptune DJ sets all night long.
+
+
+
+## Event Highlights
+
+- **Classic arcade cabinets** from the 80s and 90s
+- **Console gaming stations** with retro systems
+- **High score competitions** with prizes
+- **Chiptune DJ sets** all night long
+- **Retro snacks and drinks** (think Mountain Dew and pizza!)
+
+## Featured Games
+
+- Street Fighter II
+- Pac-Man Championship
+- Contra Co-op Challenge
+- Tetris Speed Runs
+- Mario Kart 64 Tournament
+
+## Tournaments
+
+- 7:30 PM - Street Fighter II Tournament
+- 8:30 PM - Pac-Man High Score Challenge  
+- 9:30 PM - Mario Kart 64 Grand Prix
+
+Prizes include vintage gaming memorabilia, gift cards, and bragging rights that last forever!
diff --git a/hugo.toml b/hugo.toml
new file mode 100644
index 0000000..9979ab4
--- /dev/null
+++ b/hugo.toml
@@ -0,0 +1,27 @@
+baseURL = 'https://example.org/'
+languageCode = 'en-us'
+title = 'NERDER.LAND'
+buildFuture = true
+
+# Ignore README.md from being processed as content
+ignoreFiles = ["README.md"]
+
+[params]
+description = "Welcome to the underground tech scene. Here you'll find the latest nerdy events in our community."
+eventSubmissionEmail = "events@nerder.land"
+
+# RSS configuration for events
+[outputs]
+home = ["HTML", "RSS"]
+section = ["HTML", "RSS", "Calendar"]
+page = ["HTML", "Calendar"]
+
+[outputFormats]
+[outputFormats.RSS]
+mediatype = "application/rss"
+baseName = "feed"
+
+[outputFormats.Calendar]
+mediatype = "text/calendar"
+baseName = "calendar"
+isPlainText = true
diff --git a/layouts/_partials/footer.html b/layouts/_partials/footer.html
new file mode 100644
index 0000000..126a9b6
--- /dev/null
+++ b/layouts/_partials/footer.html
@@ -0,0 +1,11 @@
+
+
++===================================================================+
+
+
+

NERDER.LAND {{ now.Year }} - Connecting the tech underground

+

+ 📡 RSS Feed | + 📅 Calendar Subscription | + 📧 Submit an Event +

\ No newline at end of file diff --git a/layouts/_partials/header.html b/layouts/_partials/header.html new file mode 100644 index 0000000..7f62743 --- /dev/null +++ b/layouts/_partials/header.html @@ -0,0 +1,10 @@ +{{ if .IsHome }} +

{{ site.Title }}

+
+
++===================================================================+
+
+
+{{ else }} +

{{ site.Title }}

+{{ end }} \ No newline at end of file diff --git a/layouts/baseof.html b/layouts/baseof.html new file mode 100644 index 0000000..46df417 --- /dev/null +++ b/layouts/baseof.html @@ -0,0 +1,29 @@ + + + + + + {{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} - {{ site.Title }}{{ end }} + + + + + + + + + + +
+
+ {{ partial "header.html" . }} +
+
+ {{ block "main" . }}{{ end }} +
+
+ {{ partial "footer.html" . }} +
+
+ + \ No newline at end of file diff --git a/layouts/events/calendar.ics b/layouts/events/calendar.ics new file mode 100644 index 0000000..f52360d --- /dev/null +++ b/layouts/events/calendar.ics @@ -0,0 +1,48 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//NERDER.LAND//Event Calendar//EN +NAME:{{ .Site.Title }} Events +X-WR-CALNAME:{{ .Site.Title }} Events +DESCRIPTION:{{ .Site.Params.description }} +TIMEZONE-ID:America/Denver +BEGIN:VTIMEZONE +TZID:America/Denver +BEGIN:DAYLIGHT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0600 +TZNAME:MDT +DTSTART:20250309T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0600 +TZOFFSETTO:-0700 +TZNAME:MST +DTSTART:20251102T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +{{- range .RegularPages }} +BEGIN:VEVENT +UID:{{ .File.UniqueID }}@{{ $.Site.BaseURL | replaceRE "^https?://" "" }} +DTSTART;TZID=America/Denver:{{ .Params.date | dateFormat "20060102T150405" }} +{{- if .Params.end_date }} +DTEND;TZID=America/Denver:{{ .Params.end_date | dateFormat "20060102T150405" }} +{{- else }} +DTEND;TZID=America/Denver:{{ .Params.date.Add (time.ParseDuration "2h") | dateFormat "20060102T150405" }} +{{- end }} +DTSTAMP:{{ now | dateFormat "20060102T150405Z" }} +SUMMARY:{{ .Title }} +DESCRIPTION:{{ .Summary | replaceRE "\n" "\\n" | replaceRE "," "\\," }} +{{- if .Params.location }} +LOCATION:{{ .Params.location | replaceRE "," "\\," }} +{{- end }} +URL:{{ .Permalink }} +{{- if .Params.organizer }} +ORGANIZER:{{ .Params.organizer | replaceRE "," "\\," }} +{{- end }} +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +{{- end }} +END:VCALENDAR \ No newline at end of file diff --git a/layouts/events/rss.xml b/layouts/events/rss.xml new file mode 100644 index 0000000..e79e5b5 --- /dev/null +++ b/layouts/events/rss.xml @@ -0,0 +1,39 @@ +{{- $pctx := . -}} +{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} +{{- $pages := slice -}} +{{- if or $.IsHome $.IsSection -}} +{{- $pages = $pctx.RegularPages -}} +{{- else -}} +{{- $pages = $pctx.Pages -}} +{{- end -}} +{{- $limit := .Site.Config.Services.RSS.Limit -}} +{{- if ge $limit 1 -}} +{{- $pages = $pages | first $limit -}} +{{- end -}} +{{- printf "" | safeHTML }} + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ .Site.Params.description | default "Recent events" }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{- with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{- end -}} + {{ range $pages }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ .Permalink }} + {{ with .Params.location }}📍 {{ . }} | {{ end }}{{ with .Params.date }}🗓️ {{ dateFormat "January 2, 2006 at 3:04 PM MST" . }} | {{ end }}{{ with .Params.cost }}💰 {{ . }} | {{ end }}{{ .Summary | html }} + + {{ end }} + + \ No newline at end of file diff --git a/layouts/events/single.html b/layouts/events/single.html new file mode 100644 index 0000000..a861902 --- /dev/null +++ b/layouts/events/single.html @@ -0,0 +1,98 @@ +{{ define "main" }} +
+
+
++==================================================================+
+|                        EVENT DETAILS                            |
++==================================================================+
+
+
+ +

{{ .Title }}

+ +
+
+ Date & Time + {{ .Params.date | dateFormat "Monday, January 2, 2006 at 3:04 PM MST" }} +
+ + {{ if .Params.end_date }} +
+ End Time + {{ .Params.end_date | dateFormat "Monday, January 2, 2006 at 3:04 PM MST" }} +
+ {{ end }} + +
+ Timezone + Mountain Time (UTC-6) +
+ + {{ if .Params.location }} +
+ Location + {{ .Params.location }} +
+ {{ end }} + + {{ if .Params.organizer }} +
+ Organizer + {{ .Params.organizer }} +
+ {{ end }} + + {{ if .Params.capacity }} +
+ Capacity + {{ .Params.capacity }} people +
+ {{ end }} + + {{ if .Params.cost }} +
+ Cost + {{ .Params.cost }} +
+ {{ end }} +
+ +
+ {{ .Content }} +
+ + {{ if .Params.registration_url }} +
+
+
++--------------------------------------------------------------+
+|                       REGISTRATION                          |
++--------------------------------------------------------------+
+
+
+

Register for this event

+
+ {{ end }} + + {{ if .Params.contact }} +
+

Contact Information

+

{{ .Params.contact }}

+
+ {{ end }} + +
+
+
++--------------------------------------------------------------+
+|                    ADD TO CALENDAR                          |
++--------------------------------------------------------------+
+
+
+

+ 📅 Download Event (.ics) +

+
+ +
+{{ end }} \ No newline at end of file diff --git a/layouts/events/single.ics b/layouts/events/single.ics new file mode 100644 index 0000000..842bdf0 --- /dev/null +++ b/layouts/events/single.ics @@ -0,0 +1,48 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//NERDER.LAND//Event Calendar//EN +NAME:{{ .Title }} +X-WR-CALNAME:{{ .Title }} +TIMEZONE-ID:America/Denver +BEGIN:VTIMEZONE +TZID:America/Denver +BEGIN:DAYLIGHT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0600 +TZNAME:MDT +DTSTART:20250309T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0600 +TZOFFSETTO:-0700 +TZNAME:MST +DTSTART:20251102T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +UID:{{ .File.UniqueID }}@{{ .Site.BaseURL | replaceRE "^https?://" "" }} +DTSTART;TZID=America/Denver:{{ .Params.date | dateFormat "20060102T150405" }} +{{- if .Params.end_date }} +DTEND;TZID=America/Denver:{{ .Params.end_date | dateFormat "20060102T150405" }} +{{- else }} +DTEND;TZID=America/Denver:{{ .Params.date.Add (time.ParseDuration "2h") | dateFormat "20060102T150405" }} +{{- end }} +DTSTAMP:{{ now | dateFormat "20060102T150405Z" }} +SUMMARY:{{ .Title }} +DESCRIPTION:{{ .Content | plainify | replaceRE "\n" "\\n" | replaceRE "," "\\," }} +{{- if .Params.location }} +LOCATION:{{ .Params.location | replaceRE "," "\\," }} +{{- end }} +URL:{{ .Permalink }} +{{- if .Params.organizer }} +ORGANIZER:{{ .Params.organizer | replaceRE "," "\\," }} +{{- end }} +{{- if .Params.contact }} +CONTACT:{{ .Params.contact | replaceRE "," "\\," }} +{{- end }} +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/layouts/home.html b/layouts/home.html new file mode 100644 index 0000000..cf49072 --- /dev/null +++ b/layouts/home.html @@ -0,0 +1,44 @@ +{{ define "main" }} +
+

{{ .Site.Params.description | default "Welcome to the underground tech scene." }}

+
+ +
+
++==================================================================+
+|                         UPCOMING EVENTS                         |
++==================================================================+
+
+
+ +{{ $futureEvents := where .Site.RegularPages "Section" "events" }} +{{ $futureEvents := where $futureEvents "Params.date" "ge" now }} +{{ $futureEvents := $futureEvents.ByParam "date" }} + +{{ if $futureEvents }} +
    + {{ range $futureEvents }} +
  • +
    {{ .Params.date | dateFormat "Monday, January 2, 2006 at 3:04 PM MST" }}
    +

    + {{ .Title }} +

    + {{ if .Params.location }} +
    📍 {{ .Params.location }}
    + {{ end }} + {{ if .Params.cost }} +
    💰 {{ .Params.cost }}
    + {{ end }} +
    {{ .Summary }}
    + +
  • + {{ end }} +
+{{ else }} +
+

No upcoming events found. Check back later for more cyberpunk gatherings!

+
+{{ end }} +{{ end }} \ No newline at end of file diff --git a/layouts/single.html b/layouts/single.html new file mode 100644 index 0000000..4c267c4 --- /dev/null +++ b/layouts/single.html @@ -0,0 +1,76 @@ +{{ define "main" }} +
+
++==================================================================+ +| EVENT DETAILS | ++==================================================================+ +
+ +

{{ .Title }}

+ +
+
+ Date & Time + {{ .Params.date | dateFormat "Monday, January 2, 2006 at 3:04 PM" }} +
+ + {{ if .Params.end_date }} +
+ End Time + {{ .Params.end_date | dateFormat "Monday, January 2, 2006 at 3:04 PM" }} +
+ {{ end }} + + {{ if .Params.location }} +
+ Location + {{ .Params.location }} +
+ {{ end }} + + {{ if .Params.organizer }} +
+ Organizer + {{ .Params.organizer }} +
+ {{ end }} + + {{ if .Params.capacity }} +
+ Capacity + {{ .Params.capacity }} people +
+ {{ end }} + + {{ if .Params.cost }} +
+ Cost + {{ .Params.cost }} +
+ {{ end }} +
+ +
+ {{ .Content }} +
+ + {{ if .Params.registration_url }} +
+
++--------------------------------------------------------------+ +| REGISTRATION | ++--------------------------------------------------------------+ +
+

Register for this event

+
+ {{ end }} + + {{ if .Params.contact }} +
+

Contact Information

+

{{ .Params.contact }}

+
+ {{ end }} + +
+{{ end }} \ No newline at end of file diff --git a/public/categories/feed.xml b/public/categories/feed.xml new file mode 100644 index 0000000..f305b5d --- /dev/null +++ b/public/categories/feed.xml @@ -0,0 +1,11 @@ + + + + Categories on NERDER.LAND + http://localhost:1313/categories/ + Recent content in Categories on NERDER.LAND + Hugo + en-us + + + diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..2708124 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,230 @@ +/* Cyberpunk Console Theme */ +:root { + --neon-green: #00ff41; + --neon-blue: #00d4ff; + --neon-pink: #ff0080; + --dark-bg: #0a0a0a; + --console-bg: #000000; + --terminal-green: #00ff00; + --matrix-green: #41ff00; + --grid-color: #333333; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Courier New', monospace; + background: var(--dark-bg); + color: var(--neon-green); + line-height: 1.6; + background-image: + linear-gradient(rgba(0, 255, 65, 0.05) 1px, transparent 1px), + linear-gradient(90deg, rgba(0, 255, 65, 0.05) 1px, transparent 1px); + background-size: 20px 20px; + min-height: 100vh; +} + +/* Console border effect */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + border: 2px solid var(--neon-green); + border-radius: 5px; + background: rgba(0, 0, 0, 0.8); + box-shadow: + 0 0 20px var(--neon-green), + inset 0 0 20px rgba(0, 255, 65, 0.1); + margin-top: 20px; + margin-bottom: 20px; +} + +/* Typography */ +h1 { + color: var(--neon-blue); + text-shadow: 0 0 10px var(--neon-blue); + font-size: 2.5rem; + margin-bottom: 1rem; + text-transform: uppercase; + letter-spacing: 2px; + text-align: center; +} + +h2 { + color: var(--neon-pink); + text-shadow: 0 0 10px var(--neon-pink); + font-size: 1.8rem; + margin-bottom: 0.8rem; + text-transform: uppercase; +} + +h3 { + color: var(--matrix-green); + text-shadow: 0 0 8px var(--matrix-green); + font-size: 1.4rem; + margin-bottom: 0.6rem; +} + +p { + margin-bottom: 1rem; + color: var(--neon-green); +} + +/* Links */ +a { + color: var(--neon-blue); + text-decoration: none; + text-shadow: 0 0 5px var(--neon-blue); + transition: all 0.3s ease; +} + +a:hover { + color: var(--neon-pink); + text-shadow: 0 0 10px var(--neon-pink); + text-decoration: underline; +} + +/* Event listing */ +.event-list { + list-style: none; + margin-top: 2rem; +} + +.event-item { + border: 1px solid var(--grid-color); + margin-bottom: 1.5rem; + padding: 1.5rem; + background: rgba(0, 0, 0, 0.6); + border-left: 4px solid var(--neon-green); + transition: all 0.3s ease; +} + +.event-item:hover { + border-left-color: var(--neon-pink); + box-shadow: 0 0 15px rgba(255, 0, 128, 0.3); + transform: translateX(5px); +} + +.event-date { + color: var(--neon-blue); + font-weight: bold; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.9rem; +} + +.event-title { + color: var(--neon-pink); + font-size: 1.3rem; + margin: 0.5rem 0; + text-shadow: 0 0 8px var(--neon-pink); +} + +.event-description { + color: var(--neon-green); + margin-top: 0.5rem; +} + +.event-location, .event-cost { + color: var(--matrix-green); + font-size: 0.9rem; + margin: 0.3rem 0; +} + +.event-link { + margin-top: 1rem; +} + +.event-link a { + color: var(--neon-blue); + font-weight: bold; + text-decoration: none; + border: 1px solid var(--neon-blue); + padding: 0.3rem 0.8rem; + border-radius: 3px; + transition: all 0.3s ease; +} + +.event-link a:hover { + background: var(--neon-blue); + color: var(--dark-bg); + text-shadow: none; +} + +/* Terminal-style prompt */ +.prompt::before { + content: "$ "; + color: var(--terminal-green); + font-weight: bold; +} + +/* ASCII art borders */ +.ascii-border { + font-family: monospace; + color: var(--neon-green); + text-align: center; + margin: 1rem 0; + font-size: 0.8rem; +} + +/* Event detail page styles */ +.event-detail { + border: 2px solid var(--neon-blue); + padding: 2rem; + background: rgba(0, 212, 255, 0.05); +} + +.calendar-actions { + margin-top: 2rem; + padding: 1rem; + background: rgba(0, 255, 65, 0.05); + border: 1px solid var(--neon-green); +} + +.event-meta { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + margin: 1.5rem 0; + padding: 1rem; + border: 1px solid var(--grid-color); + background: rgba(0, 0, 0, 0.4); +} + +.meta-item { + display: flex; + flex-direction: column; +} + +.meta-label { + color: var(--neon-blue); + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 0.3rem; +} + +.meta-value { + color: var(--neon-green); + font-weight: bold; +} + +/* Responsive design */ +@media (max-width: 768px) { + .container { + margin: 10px; + padding: 15px; + } + + h1 { + font-size: 2rem; + } + + .event-meta { + grid-template-columns: 1fr; + } +} \ No newline at end of file diff --git a/public/events/calendar.ics b/public/events/calendar.ics new file mode 100644 index 0000000..1952e20 --- /dev/null +++ b/public/events/calendar.ics @@ -0,0 +1,64 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//NERDER.LAND//Event Calendar//EN +NAME:NERDER.LAND Events +X-WR-CALNAME:NERDER.LAND Events +DESCRIPTION:Welcome to the underground tech scene. Here you'll find the latest nerdy events in our community. +TIMEZONE-ID:America/Denver +BEGIN:VTIMEZONE +TZID:America/Denver +BEGIN:DAYLIGHT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0600 +TZNAME:MDT +DTSTART:20250309T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0600 +TZOFFSETTO:-0700 +TZNAME:MST +DTSTART:20251102T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +UID:fba924c3385ccd32bad915fa99f6a2bd@localhost:1313/ +DTSTART;TZID=America/Denver:20250622T140000 +DTEND;TZID=America/Denver:20250622T170000 +DTSTAMP:20250604T132919Z +SUMMARY:DIY Electronics Workshop: Build Your Own Gadgets +DESCRIPTION:

Get your hands dirty with circuits\, sensors\, and microcontrollers! Learn circuit design\, soldering\, and programming while building your own working gadgets to take home.

+LOCATION:MakerSpace Lab\, 789 Circuit St +URL:http://localhost:1313/events/maker-workshop/ +ORGANIZER:Hardware Hackers Guild +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +UID:93711c4881fb7721f00b4451e4ff7893@localhost:1313/ +DTSTART;TZID=America/Denver:20250615T090000 +DTEND;TZID=America/Denver:20250616T180000 +DTSTAMP:20250604T132919Z +SUMMARY:Cyberpunk Hackathon: Code the Future +DESCRIPTION:

Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces\, blockchain solutions\, or AI-powered tools in this innovation celebration.

+LOCATION:TechHub Downtown\, 123 Main St +URL:http://localhost:1313/events/cyberpunk-hackathon/ +ORGANIZER:Local Hackers Collective +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +UID:10125500066f2fe44cd952eadb298a93@localhost:1313/ +DTSTART;TZID=America/Denver:20250608T190000 +DTEND;TZID=America/Denver:20250608T230000 +DTSTAMP:20250604T132919Z +SUMMARY:Retro Gaming Night: Pixels & Power-Ups +DESCRIPTION:

Step back in time to the golden age of gaming! Classic arcade cabinets\, console gaming stations\, tournaments with prizes\, and chiptune DJ sets all night long.

+LOCATION:Arcade Underground\, 456 Neon Ave +URL:http://localhost:1313/events/retro-gaming-night/ +ORGANIZER:Pixel Pushers Society +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/public/events/cyberpunk-hackathon/calendar.ics b/public/events/cyberpunk-hackathon/calendar.ics new file mode 100644 index 0000000..d2100b0 --- /dev/null +++ b/public/events/cyberpunk-hackathon/calendar.ics @@ -0,0 +1,38 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//NERDER.LAND//Event Calendar//EN +NAME:Cyberpunk Hackathon: Code the Future +X-WR-CALNAME:Cyberpunk Hackathon: Code the Future +TIMEZONE-ID:America/Denver +BEGIN:VTIMEZONE +TZID:America/Denver +BEGIN:DAYLIGHT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0600 +TZNAME:MDT +DTSTART:20250309T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0600 +TZOFFSETTO:-0700 +TZNAME:MST +DTSTART:20251102T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +UID:93711c4881fb7721f00b4451e4ff7893@localhost:1313/ +DTSTART;TZID=America/Denver:20250615T090000 +DTEND;TZID=America/Denver:20250616T180000 +DTSTAMP:20250604T132919Z +SUMMARY:Cyberpunk Hackathon: Code the Future +DESCRIPTION:Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces\, blockchain solutions\, or AI-powered tools in this innovation celebration.\nEvent Description Dive into the neon-lit world of cyberpunk as we challenge developers\, designers\, and tech enthusiasts to build applications that push the boundaries of what’s possible. Whether you’re creating AR interfaces\, blockchain solutions\, or AI-powered tools\, this hackathon celebrates the spirit of innovation.\nWhat to Expect 24 hours of non-stop coding Free meals and energy drinks (because sleep is for the weak) Mentorship from industry experts Amazing prizes including hardware\, software licenses\, and crypto rewards Networking with like-minded rebels Categories Best Overall Hack Most Creative Use of AI Blockchain Innovation Cybersecurity Solution UI/UX Design Excellence Requirements Bring your own laptop and charger Form teams of 2-4 people (or go solo if you dare) All skill levels welcome - we’ll have beginner-friendly workshops Get ready to jack in and code the future!\n +LOCATION:TechHub Downtown\, 123 Main St +URL:http://localhost:1313/events/cyberpunk-hackathon/ +ORGANIZER:Local Hackers Collective +CONTACT:hackathon@nerder.land +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/public/events/cyberpunk-hackathon/index.html b/public/events/cyberpunk-hackathon/index.html new file mode 100644 index 0000000..54c66a8 --- /dev/null +++ b/public/events/cyberpunk-hackathon/index.html @@ -0,0 +1,163 @@ + + + + + + Cyberpunk Hackathon: Code the Future - NERDER.LAND + + + + + + + + + + +
+
+ +

NERDER.LAND

+ +
+
+ +
+
+
++==================================================================+
+|                        EVENT DETAILS                            |
++==================================================================+
+
+
+ +

Cyberpunk Hackathon: Code the Future

+ +
+
+ Date & Time + Sunday, June 15, 2025 at 9:00 AM MDT +
+ + +
+ End Time + Monday, June 16, 2025 at 6:00 PM MDT +
+ + +
+ Timezone + Mountain Time (UTC-6) +
+ + +
+ Location + TechHub Downtown, 123 Main St +
+ + + +
+ Organizer + Local Hackers Collective +
+ + + +
+ Capacity + 50 people +
+ + + +
+ Cost + Free +
+ +
+ +
+

Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces, blockchain solutions, or AI-powered tools in this innovation celebration.

+

Event Description

+

Dive into the neon-lit world of cyberpunk as we challenge developers, designers, and tech enthusiasts to build applications that push the boundaries of what’s possible. Whether you’re creating AR interfaces, blockchain solutions, or AI-powered tools, this hackathon celebrates the spirit of innovation.

+

What to Expect

+
    +
  • 24 hours of non-stop coding
  • +
  • Free meals and energy drinks (because sleep is for the weak)
  • +
  • Mentorship from industry experts
  • +
  • Amazing prizes including hardware, software licenses, and crypto rewards
  • +
  • Networking with like-minded rebels
  • +
+

Categories

+
    +
  • Best Overall Hack
  • +
  • Most Creative Use of AI
  • +
  • Blockchain Innovation
  • +
  • Cybersecurity Solution
  • +
  • UI/UX Design Excellence
  • +
+

Requirements

+
    +
  • Bring your own laptop and charger
  • +
  • Form teams of 2-4 people (or go solo if you dare)
  • +
  • All skill levels welcome - we’ll have beginner-friendly workshops
  • +
+

Get ready to jack in and code the future!

+
+ + +
+
+
++--------------------------------------------------------------+
+|                       REGISTRATION                          |
++--------------------------------------------------------------+
+
+
+

Register for this event

+
+ + + +
+

Contact Information

+

hackathon@nerder.land

+
+ + +
+
+
++--------------------------------------------------------------+
+|                    ADD TO CALENDAR                          |
++--------------------------------------------------------------+
+
+
+

+ 📅 Download Event (.ics) +

+
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/public/events/feed.xml b/public/events/feed.xml new file mode 100644 index 0000000..2f3b48f --- /dev/null +++ b/public/events/feed.xml @@ -0,0 +1,38 @@ + + + + Events on NERDER.LAND + http://localhost:1313/events/ + Welcome to the underground tech scene. Here you'll find the latest nerdy events in our community. + Hugo -- gohugo.io + en-us + Sun, 22 Jun 2025 14:00:00 -0600 + + DIY Electronics Workshop: Build Your Own Gadgets + http://localhost:1313/events/maker-workshop/ + Sun, 22 Jun 2025 14:00:00 -0600 + + http://localhost:1313/events/maker-workshop/ + 📍 MakerSpace Lab, 789 Circuit St | 🗓️ June 22, 2025 at 2:00 PM MDT | 💰 $25 (includes materials) | <p>Get your hands dirty with circuits, sensors, and microcontrollers! Learn circuit design, soldering, and programming while building your own working gadgets to take home.</p> + + + + Cyberpunk Hackathon: Code the Future + http://localhost:1313/events/cyberpunk-hackathon/ + Sun, 15 Jun 2025 09:00:00 -0600 + + http://localhost:1313/events/cyberpunk-hackathon/ + 📍 TechHub Downtown, 123 Main St | 🗓️ June 15, 2025 at 9:00 AM MDT | 💰 Free | <p>Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces, blockchain solutions, or AI-powered tools in this innovation celebration.</p> + + + + Retro Gaming Night: Pixels & Power-Ups + http://localhost:1313/events/retro-gaming-night/ + Sun, 08 Jun 2025 19:00:00 -0600 + + http://localhost:1313/events/retro-gaming-night/ + 📍 Arcade Underground, 456 Neon Ave | 🗓️ June 8, 2025 at 7:00 PM MDT | 💰 $10 cover charge | <p>Step back in time to the golden age of gaming! Classic arcade cabinets, console gaming stations, tournaments with prizes, and chiptune DJ sets all night long.</p> + + + + \ No newline at end of file diff --git a/public/events/maker-workshop/calendar.ics b/public/events/maker-workshop/calendar.ics new file mode 100644 index 0000000..834a704 --- /dev/null +++ b/public/events/maker-workshop/calendar.ics @@ -0,0 +1,38 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//NERDER.LAND//Event Calendar//EN +NAME:DIY Electronics Workshop: Build Your Own Gadgets +X-WR-CALNAME:DIY Electronics Workshop: Build Your Own Gadgets +TIMEZONE-ID:America/Denver +BEGIN:VTIMEZONE +TZID:America/Denver +BEGIN:DAYLIGHT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0600 +TZNAME:MDT +DTSTART:20250309T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0600 +TZOFFSETTO:-0700 +TZNAME:MST +DTSTART:20251102T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +UID:fba924c3385ccd32bad915fa99f6a2bd@localhost:1313/ +DTSTART;TZID=America/Denver:20250622T140000 +DTEND;TZID=America/Denver:20250622T170000 +DTSTAMP:20250604T132919Z +SUMMARY:DIY Electronics Workshop: Build Your Own Gadgets +DESCRIPTION:Get your hands dirty with circuits\, sensors\, and microcontrollers! Learn circuit design\, soldering\, and programming while building your own working gadgets to take home.\nWorkshop Overview Join us for an afternoon of hands-on electronics where you’ll learn the fundamentals of circuit design and build your own working gadgets to take home.\nWhat You’ll Build Choose from one of these beginner-friendly projects:\nLED Matrix Display - Program patterns and text Motion Sensor Alarm - Detect intruders with style Temperature Monitor - IoT device with wireless connectivity Sound Reactive LEDs - Lights that dance to music What’s Included All electronic components and tools Step-by-step instruction guides Expert mentorship from experienced makers Soldering lessons for beginners Take-home project kit Prerequisites No prior experience required! Bring curiosity and willingness to learn Safety glasses will be provided Skills You’ll Learn Basic circuit design Soldering techniques Microcontroller programming Sensor integration Troubleshooting electronic systems Perfect for beginners looking to break into the world of electronics and making!\n +LOCATION:MakerSpace Lab\, 789 Circuit St +URL:http://localhost:1313/events/maker-workshop/ +ORGANIZER:Hardware Hackers Guild +CONTACT:makers@nerder.land +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/public/events/maker-workshop/index.html b/public/events/maker-workshop/index.html new file mode 100644 index 0000000..166e158 --- /dev/null +++ b/public/events/maker-workshop/index.html @@ -0,0 +1,171 @@ + + + + + + DIY Electronics Workshop: Build Your Own Gadgets - NERDER.LAND + + + + + + + + + + +
+
+ +

NERDER.LAND

+ +
+
+ +
+
+
++==================================================================+
+|                        EVENT DETAILS                            |
++==================================================================+
+
+
+ +

DIY Electronics Workshop: Build Your Own Gadgets

+ +
+
+ Date & Time + Sunday, June 22, 2025 at 2:00 PM MDT +
+ + +
+ End Time + Sunday, June 22, 2025 at 5:00 PM MDT +
+ + +
+ Timezone + Mountain Time (UTC-6) +
+ + +
+ Location + MakerSpace Lab, 789 Circuit St +
+ + + +
+ Organizer + Hardware Hackers Guild +
+ + + +
+ Capacity + 15 people +
+ + + +
+ Cost + $25 (includes materials) +
+ +
+ +
+

Get your hands dirty with circuits, sensors, and microcontrollers! Learn circuit design, soldering, and programming while building your own working gadgets to take home.

+

Workshop Overview

+

Join us for an afternoon of hands-on electronics where you’ll learn the fundamentals of circuit design and build your own working gadgets to take home.

+

What You’ll Build

+

Choose from one of these beginner-friendly projects:

+
    +
  • LED Matrix Display - Program patterns and text
  • +
  • Motion Sensor Alarm - Detect intruders with style
  • +
  • Temperature Monitor - IoT device with wireless connectivity
  • +
  • Sound Reactive LEDs - Lights that dance to music
  • +
+

What’s Included

+
    +
  • All electronic components and tools
  • +
  • Step-by-step instruction guides
  • +
  • Expert mentorship from experienced makers
  • +
  • Soldering lessons for beginners
  • +
  • Take-home project kit
  • +
+

Prerequisites

+
    +
  • No prior experience required!
  • +
  • Bring curiosity and willingness to learn
  • +
  • Safety glasses will be provided
  • +
+

Skills You’ll Learn

+
    +
  • Basic circuit design
  • +
  • Soldering techniques
  • +
  • Microcontroller programming
  • +
  • Sensor integration
  • +
  • Troubleshooting electronic systems
  • +
+

Perfect for beginners looking to break into the world of electronics and making!

+
+ + +
+
+
++--------------------------------------------------------------+
+|                       REGISTRATION                          |
++--------------------------------------------------------------+
+
+
+

Register for this event

+
+ + + +
+

Contact Information

+

makers@nerder.land

+
+ + +
+
+
++--------------------------------------------------------------+
+|                    ADD TO CALENDAR                          |
++--------------------------------------------------------------+
+
+
+

+ 📅 Download Event (.ics) +

+
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/public/events/retro-gaming-night/calendar.ics b/public/events/retro-gaming-night/calendar.ics new file mode 100644 index 0000000..8c70ccd --- /dev/null +++ b/public/events/retro-gaming-night/calendar.ics @@ -0,0 +1,38 @@ +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//NERDER.LAND//Event Calendar//EN +NAME:Retro Gaming Night: Pixels & Power-Ups +X-WR-CALNAME:Retro Gaming Night: Pixels & Power-Ups +TIMEZONE-ID:America/Denver +BEGIN:VTIMEZONE +TZID:America/Denver +BEGIN:DAYLIGHT +TZOFFSETFROM:-0700 +TZOFFSETTO:-0600 +TZNAME:MDT +DTSTART:20250309T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0600 +TZOFFSETTO:-0700 +TZNAME:MST +DTSTART:20251102T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +UID:10125500066f2fe44cd952eadb298a93@localhost:1313/ +DTSTART;TZID=America/Denver:20250608T190000 +DTEND;TZID=America/Denver:20250608T230000 +DTSTAMP:20250604T132919Z +SUMMARY:Retro Gaming Night: Pixels & Power-Ups +DESCRIPTION:Step back in time to the golden age of gaming! Classic arcade cabinets\, console gaming stations\, tournaments with prizes\, and chiptune DJ sets all night long.\nEvent Highlights Classic arcade cabinets from the 80s and 90s Console gaming stations with retro systems High score competitions with prizes Chiptune DJ sets all night long Retro snacks and drinks (think Mountain Dew and pizza!) Featured Games Street Fighter II Pac-Man Championship Contra Co-op Challenge Tetris Speed Runs Mario Kart 64 Tournament Tournaments 7:30 PM - Street Fighter II Tournament 8:30 PM - Pac-Man High Score Challenge 9:30 PM - Mario Kart 64 Grand Prix Prizes include vintage gaming memorabilia\, gift cards\, and bragging rights that last forever!\n +LOCATION:Arcade Underground\, 456 Neon Ave +URL:http://localhost:1313/events/retro-gaming-night/ +ORGANIZER:Pixel Pushers Society +CONTACT:pixels@nerder.land +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR \ No newline at end of file diff --git a/public/events/retro-gaming-night/index.html b/public/events/retro-gaming-night/index.html new file mode 100644 index 0000000..401bc9b --- /dev/null +++ b/public/events/retro-gaming-night/index.html @@ -0,0 +1,150 @@ + + + + + + Retro Gaming Night: Pixels & Power-Ups - NERDER.LAND + + + + + + + + + + +
+
+ +

NERDER.LAND

+ +
+
+ +
+
+
++==================================================================+
+|                        EVENT DETAILS                            |
++==================================================================+
+
+
+ +

Retro Gaming Night: Pixels & Power-Ups

+ +
+
+ Date & Time + Sunday, June 8, 2025 at 7:00 PM MDT +
+ + +
+ End Time + Sunday, June 8, 2025 at 11:00 PM MDT +
+ + +
+ Timezone + Mountain Time (UTC-6) +
+ + +
+ Location + Arcade Underground, 456 Neon Ave +
+ + + +
+ Organizer + Pixel Pushers Society +
+ + + +
+ Capacity + 30 people +
+ + + +
+ Cost + $10 cover charge +
+ +
+ +
+

Step back in time to the golden age of gaming! Classic arcade cabinets, console gaming stations, tournaments with prizes, and chiptune DJ sets all night long.

+

Event Highlights

+
    +
  • Classic arcade cabinets from the 80s and 90s
  • +
  • Console gaming stations with retro systems
  • +
  • High score competitions with prizes
  • +
  • Chiptune DJ sets all night long
  • +
  • Retro snacks and drinks (think Mountain Dew and pizza!)
  • +
+ +
    +
  • Street Fighter II
  • +
  • Pac-Man Championship
  • +
  • Contra Co-op Challenge
  • +
  • Tetris Speed Runs
  • +
  • Mario Kart 64 Tournament
  • +
+

Tournaments

+
    +
  • 7:30 PM - Street Fighter II Tournament
  • +
  • 8:30 PM - Pac-Man High Score Challenge
  • +
  • 9:30 PM - Mario Kart 64 Grand Prix
  • +
+

Prizes include vintage gaming memorabilia, gift cards, and bragging rights that last forever!

+
+ + + + +
+

Contact Information

+

pixels@nerder.land

+
+ + +
+
+
++--------------------------------------------------------------+
+|                    ADD TO CALENDAR                          |
++--------------------------------------------------------------+
+
+
+

+ 📅 Download Event (.ics) +

+
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/public/feed.xml b/public/feed.xml new file mode 100644 index 0000000..db2ceb7 --- /dev/null +++ b/public/feed.xml @@ -0,0 +1,33 @@ + + + + NERDER.LAND + http://localhost:1313/ + Recent content on NERDER.LAND + Hugo + en-us + Sun, 22 Jun 2025 14:00:00 -0600 + + + DIY Electronics Workshop: Build Your Own Gadgets + http://localhost:1313/events/maker-workshop/ + Sun, 22 Jun 2025 14:00:00 -0600 + http://localhost:1313/events/maker-workshop/ + <p>Get your hands dirty with circuits, sensors, and microcontrollers! Learn circuit design, soldering, and programming while building your own working gadgets to take home.</p> + + + Cyberpunk Hackathon: Code the Future + http://localhost:1313/events/cyberpunk-hackathon/ + Sun, 15 Jun 2025 09:00:00 -0600 + http://localhost:1313/events/cyberpunk-hackathon/ + <p>Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces, blockchain solutions, or AI-powered tools in this innovation celebration.</p> + + + Retro Gaming Night: Pixels & Power-Ups + http://localhost:1313/events/retro-gaming-night/ + Sun, 08 Jun 2025 19:00:00 -0600 + http://localhost:1313/events/retro-gaming-night/ + <p>Step back in time to the golden age of gaming! Classic arcade cabinets, console gaming stations, tournaments with prizes, and chiptune DJ sets all night long.</p> + + + diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..99c6306 --- /dev/null +++ b/public/index.html @@ -0,0 +1,120 @@ + + + + + + + NERDER.LAND + + + + + + + + + + +
+
+ +

NERDER.LAND

+
+
++===================================================================+
+
+
+ +
+
+ +
+

Welcome to the underground tech scene. Here you'll find the latest nerdy events in our community.

+
+ +
+
++==================================================================+
+|                         UPCOMING EVENTS                         |
++==================================================================+
+
+
+ + + + + + +
    + +
  • +
    Sunday, June 8, 2025 at 7:00 PM MDT
    +

    + Retro Gaming Night: Pixels & Power-Ups +

    + +
    📍 Arcade Underground, 456 Neon Ave
    + + +
    💰 $10 cover charge
    + +

    Step back in time to the golden age of gaming! Classic arcade cabinets, console gaming stations, tournaments with prizes, and chiptune DJ sets all night long.

    + +
  • + +
  • +
    Sunday, June 15, 2025 at 9:00 AM MDT
    +

    + Cyberpunk Hackathon: Code the Future +

    + +
    📍 TechHub Downtown, 123 Main St
    + + +
    💰 Free
    + +

    Join us for a 24-hour coding marathon where reality meets the digital underground! Build AR interfaces, blockchain solutions, or AI-powered tools in this innovation celebration.

    + +
  • + +
  • +
    Sunday, June 22, 2025 at 2:00 PM MDT
    +

    + DIY Electronics Workshop: Build Your Own Gadgets +

    + +
    📍 MakerSpace Lab, 789 Circuit St
    + + +
    💰 $25 (includes materials)
    + +

    Get your hands dirty with circuits, sensors, and microcontrollers! Learn circuit design, soldering, and programming while building your own working gadgets to take home.

    + +
  • + +
+ + +
+ +
+ + \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..a79ca4c --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,24 @@ + + + + http://localhost:1313/events/maker-workshop/ + 2025-06-22T14:00:00-06:00 + + http://localhost:1313/events/ + 2025-06-22T14:00:00-06:00 + + http://localhost:1313/ + 2025-06-22T14:00:00-06:00 + + http://localhost:1313/events/cyberpunk-hackathon/ + 2025-06-15T09:00:00-06:00 + + http://localhost:1313/events/retro-gaming-night/ + 2025-06-08T19:00:00-06:00 + + http://localhost:1313/categories/ + + http://localhost:1313/tags/ + + diff --git a/public/tags/feed.xml b/public/tags/feed.xml new file mode 100644 index 0000000..e79daca --- /dev/null +++ b/public/tags/feed.xml @@ -0,0 +1,11 @@ + + + + Tags on NERDER.LAND + http://localhost:1313/tags/ + Recent content in Tags on NERDER.LAND + Hugo + en-us + + + diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 0000000..2708124 --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,230 @@ +/* Cyberpunk Console Theme */ +:root { + --neon-green: #00ff41; + --neon-blue: #00d4ff; + --neon-pink: #ff0080; + --dark-bg: #0a0a0a; + --console-bg: #000000; + --terminal-green: #00ff00; + --matrix-green: #41ff00; + --grid-color: #333333; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Courier New', monospace; + background: var(--dark-bg); + color: var(--neon-green); + line-height: 1.6; + background-image: + linear-gradient(rgba(0, 255, 65, 0.05) 1px, transparent 1px), + linear-gradient(90deg, rgba(0, 255, 65, 0.05) 1px, transparent 1px); + background-size: 20px 20px; + min-height: 100vh; +} + +/* Console border effect */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + border: 2px solid var(--neon-green); + border-radius: 5px; + background: rgba(0, 0, 0, 0.8); + box-shadow: + 0 0 20px var(--neon-green), + inset 0 0 20px rgba(0, 255, 65, 0.1); + margin-top: 20px; + margin-bottom: 20px; +} + +/* Typography */ +h1 { + color: var(--neon-blue); + text-shadow: 0 0 10px var(--neon-blue); + font-size: 2.5rem; + margin-bottom: 1rem; + text-transform: uppercase; + letter-spacing: 2px; + text-align: center; +} + +h2 { + color: var(--neon-pink); + text-shadow: 0 0 10px var(--neon-pink); + font-size: 1.8rem; + margin-bottom: 0.8rem; + text-transform: uppercase; +} + +h3 { + color: var(--matrix-green); + text-shadow: 0 0 8px var(--matrix-green); + font-size: 1.4rem; + margin-bottom: 0.6rem; +} + +p { + margin-bottom: 1rem; + color: var(--neon-green); +} + +/* Links */ +a { + color: var(--neon-blue); + text-decoration: none; + text-shadow: 0 0 5px var(--neon-blue); + transition: all 0.3s ease; +} + +a:hover { + color: var(--neon-pink); + text-shadow: 0 0 10px var(--neon-pink); + text-decoration: underline; +} + +/* Event listing */ +.event-list { + list-style: none; + margin-top: 2rem; +} + +.event-item { + border: 1px solid var(--grid-color); + margin-bottom: 1.5rem; + padding: 1.5rem; + background: rgba(0, 0, 0, 0.6); + border-left: 4px solid var(--neon-green); + transition: all 0.3s ease; +} + +.event-item:hover { + border-left-color: var(--neon-pink); + box-shadow: 0 0 15px rgba(255, 0, 128, 0.3); + transform: translateX(5px); +} + +.event-date { + color: var(--neon-blue); + font-weight: bold; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.9rem; +} + +.event-title { + color: var(--neon-pink); + font-size: 1.3rem; + margin: 0.5rem 0; + text-shadow: 0 0 8px var(--neon-pink); +} + +.event-description { + color: var(--neon-green); + margin-top: 0.5rem; +} + +.event-location, .event-cost { + color: var(--matrix-green); + font-size: 0.9rem; + margin: 0.3rem 0; +} + +.event-link { + margin-top: 1rem; +} + +.event-link a { + color: var(--neon-blue); + font-weight: bold; + text-decoration: none; + border: 1px solid var(--neon-blue); + padding: 0.3rem 0.8rem; + border-radius: 3px; + transition: all 0.3s ease; +} + +.event-link a:hover { + background: var(--neon-blue); + color: var(--dark-bg); + text-shadow: none; +} + +/* Terminal-style prompt */ +.prompt::before { + content: "$ "; + color: var(--terminal-green); + font-weight: bold; +} + +/* ASCII art borders */ +.ascii-border { + font-family: monospace; + color: var(--neon-green); + text-align: center; + margin: 1rem 0; + font-size: 0.8rem; +} + +/* Event detail page styles */ +.event-detail { + border: 2px solid var(--neon-blue); + padding: 2rem; + background: rgba(0, 212, 255, 0.05); +} + +.calendar-actions { + margin-top: 2rem; + padding: 1rem; + background: rgba(0, 255, 65, 0.05); + border: 1px solid var(--neon-green); +} + +.event-meta { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + margin: 1.5rem 0; + padding: 1rem; + border: 1px solid var(--grid-color); + background: rgba(0, 0, 0, 0.4); +} + +.meta-item { + display: flex; + flex-direction: column; +} + +.meta-label { + color: var(--neon-blue); + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 0.3rem; +} + +.meta-value { + color: var(--neon-green); + font-weight: bold; +} + +/* Responsive design */ +@media (max-width: 768px) { + .container { + margin: 10px; + padding: 15px; + } + + h1 { + font-size: 2rem; + } + + .event-meta { + grid-template-columns: 1fr; + } +} \ No newline at end of file