Repo for keeping the source code of our official website
- Upcoming event on main page
- CFP page with form https://forms.gle/HzXsBTu9DFi4mUAx8
- How to find us tutorial page (https://www.youtube.com/watch?v=Eeyk2EG6Xto)
- Own meetup signups (without third-party pages like meetup.com)
-
Clone this repository.
-
On new clone and when there are submodule updates:
git submodule update --init --depth 1 -
Run the Hugo development server:
cd page hugo server -
Open http://127.0.0.1:1313.
This repository includes a Python CLI tool (pyldz) for managing meetup data and generating Hugo content from Google Sheets.
- Python 3.13+
- uv package manager
- Google Sheets API credentials (
.client_secret.json)
-
Install dependencies:
uv sync
-
Set up Google Sheets API credentials:
- Create a project in Google Cloud Console
- Enable the Google Sheets API
- Create credentials (OAuth 2.0 Client ID)
- Download the credentials file as
.client_secret.jsonin the project root
-
Configure environment variables in
.env:GOOGLE_SHEETS__SHEET_ID=your_google_sheets_id_here
The CLI provides single command to generate Hugo content:
Generate Hugo markdown files for meetups:
# Generate single meetup
uv run pyldz -m 61
# Generate all meetups data (not sure if it works correctly)
uv run pyldzThis command will:
- Fetch meetup data from Google Sheets
- Generate markdown files in
content/spotkania/{meetup_id}/index.md - Create featured images using Hugo templates
- Include frontmatter with meetup metadata
- Generate content sections for talks, speakers, and sponsors
Get help for any command:
uv run pyldz --helpuv run pytest# Format code
uv run ruff format
# Lint code
uv run ruff check
# Type checking
uv run mypy src/├── src/pyldz/ # Python source code
│ ├── main.py # CLI entry point with typer commands
│ ├── config.py # Configuration management
│ ├── meetup.py # Meetup data models and Google Sheets integration
│ └── hugo_generator.py # Hugo content generation
├── tests/ # Test suite
├── page/ # Hugo site files
│ ├── content/ # Hugo content
│ ├── layouts/ # Hugo templates
│ └── assets/ # Static assets
└── pyproject.toml # Project configuration