This is the source code for golhaprogram.com.
The site is being deloyed via netlify. The content directory has all the files in markdown format.
- Static Site Generator: Hugo generates the site from markdown content
- Hosting: Deployed via Netlify
- Media Storage: Audio files hosted on Backblaze B2 at music.golhaprogram.com
- Comments: Remark42 self-hosted on DigitalOcean
- CDN: Cloudflare for CDN and DNS management
- Hugo Extended (version 0.147.0 or higher)
- Node.js (version 20 or higher)
- npm (version 10 or higher)
-
Clone the repository:
git clone https://github.com/golhaprogram/golhaprogram-website.git cd golhaprogram-website -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Visit http://localhost:1313 to see your local development version.
To run the server locally:
hugo server --bind 0.0.0.0 --baseURL http://10.0.10.108:1313 --disableFastRender
--noHTTPCache --disableLiveReloadTo build the production version:
npm run buildThis will compile the SCSS, bundle JavaScript, and build the Hugo site.
- Programs: Located in
content/programs/with subdirectories for each program series - Pages: General pages are in
content/ - Layouts: Templates in
layouts/ - Assets: SCSS and JS in
assets/
layouts/partials/audio-url.html: Generates audio URLs based on program metadatalayouts/partials/program-title.html: Formats program titles consistentlylayouts/partials/episode-schema.html: Rich structured data (schema.org) for SEOlayouts/partials/program-meta-description.html: SEO-optimized meta descriptionslayouts/partials/seo.html: SEO tags for OpenGraph, Twitter, and search engineslayouts/partials/comments.html: Integrates Remark42 commentslayouts/partials/fa-number.html: Converts numbers to Persian digits
layouts/
programs/
list.html # Used for /programs/ - lists all program types
# (golhaye rangarang, golhaye tazeh, etc)
section.html # Used for /programs/golhaye-rangarang/ - lists all
# programs within a specific type
single.html # Used for individual programs like
# /programs/golhaye-rangarang/203
content/
programs/
\_index.md # Main programs page content (uses list.html)
golhaye-rangarang/
_index.md # Section content (uses section.html)
203.md # Individual program (uses single.html)
100.md # Individual program (uses single.html)
The site automatically deploys when changes are pushed to the main branch.
The deployment configuration is in netlify.toml.
Audio files follow the naming convention: {PREFIX}_{NUMBER}.mp3 where:
PREFIXis the program type code (GR, GT, GJ, YSG, GS)NUMBERis the program number