Files
linkbeam/README.md
Vladimir nett00n Budylnikov 20f949c250
Some checks failed
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Test (push) Has been cancelled
CI/CD Pipeline / Build (arm64, windows, linkbeam-windows-arm64.exe) (push) Has been cancelled
CI/CD Pipeline / Build (386, linux, linkbeam-linux-386) (push) Has been cancelled
CI/CD Pipeline / Lint (push) Has been cancelled
CI/CD Pipeline / Build (amd64, linux, linkbeam-linux-amd64) (push) Has been cancelled
CI/CD Pipeline / Build (arm, 7, linux, linkbeam-linux-armv7) (push) Has been cancelled
CI/CD Pipeline / Build (386, windows, linkbeam-windows-386.exe) (push) Has been cancelled
CI/CD Pipeline / Build (amd64, windows, linkbeam-windows-amd64.exe) (push) Has been cancelled
CI/CD Pipeline / Build (arm64, darwin, linkbeam-darwin-arm64) (push) Has been cancelled
CI/CD Pipeline / Build (arm64, linux, linkbeam-linux-arm64) (push) Has been cancelled
CI/CD Pipeline / Build (amd64, darwin, linkbeam-darwin-amd64) (push) Has been cancelled
CI/CD Pipeline / Create Release (push) Has been cancelled
Init commit
2025-10-12 21:56:53 +04:00

163 lines
4.9 KiB
Markdown

# LinkBeam
![logo](./static/logo.png)
A lightweight static site generator for creating beautiful personal link-in-bio pages.
Built with Go, LinkBeam transforms a simple YAML configuration into a themed HTML page.
## Features
![Screenshot](./assets/Screenshot.png)
- Simple YAML-based configuration - Define your links and profile in a single YAML file
- Multiple built-in themes - Auto, Nord, Gruvbox, and Catppuccin variants (Latte, Frappé, Macchiato, Mocha)
- Theme switcher - Users can toggle between system/light/dark modes
- Font Awesome icons - Full support for Font Awesome icons with customizable CDN
- Social media links - Dedicated section for social profiles with icon-only display
- Responsive design - Works beautifully on mobile, tablet, and desktop
- Fast static site generation - Built with Go for blazing-fast builds
- Clean, minimal aesthetics - Focus on your content, not clutter
- [Catppuccin](https://catppuccin.com/), [gruvbox](https://github.com/morhetz/gruvbox) and [nord](https://www.nordtheme.com/) color palletes available by default
## Installation
### From Source
```bash
# Clone the repository
git clone https://github.com/5mdt/linkbeam.git
cd linkbeam
# Build the binary
make build
```
Binary will be output to `dist/linkbeam`.
### From Docker
```bash
# Build the image locally (Docker images not published yet)
docker build -t linkbeam .
# Run with your config
docker run -v $(pwd)/config.yaml:/app/config/config.yaml \
-v $(pwd)/dist:/app/dist \
linkbeam
# Or using docker-compose
docker-compose up
```
## Quick Start
1. Create a `config.yaml` file (see `config.example.yaml` for reference):
```yaml
name: "Your Name"
bio: "A short bio about yourself"
avatar: "static/logo.png" # Can be a local path or URL
theme: "auto" # Options: auto, nord, gruvbox, catppuccin-mocha, catppuccin-latte, etc.
# Optional: Customize Font Awesome CDN (defaults to Font Awesome 6.5.1 if not specified)
# font_awesome_cdn: "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
links:
- title: "My Website"
url: "https://yourwebsite.com"
icon: "fas fa-globe"
- title: "Blog"
url: "https://yourblog.com"
icon: "fas fa-blog"
- title: "GitHub"
url: "https://github.com/yourusername"
icon: "fab fa-github"
socials:
- platform: "Twitter"
url: "https://twitter.com/yourusername"
icon: "fab fa-twitter"
- platform: "LinkedIn"
url: "https://linkedin.com/in/yourusername"
icon: "fab fa-linkedin"
- platform: "Instagram"
url: "https://instagram.com/yourusername"
icon: "fab fa-instagram"
footer:
- text: "© 2025 Your Name"
- text: "Made with LinkBeam"
```
2. Generate your site:
```bash
./linkbeam
```
3. Open `dist/index.html` in your browser
## Usage
```bash
./linkbeam [options]
Options:
-c, --config string path to config YAML file (default "config.yaml")
-t, --template string path to HTML template (default "templates/base.html")
-o, --output string path to output HTML file (default "dist/index.html")
-v, --version print version information
```
### Examples
```bash
# Generate with default config.yaml
./linkbeam
# Check version
./linkbeam -v
# Generate with custom config
./linkbeam -c myconfig.yaml -o public/index.html
```
## Configuration
### Required Fields
- `name`: Your display name (cannot be empty)
### Optional Fields
- `bio`: A short description about yourself
- `avatar`: Path to your avatar/profile image (local path or URL starting with `http://` or `https://`)
- `theme`: Theme name (default: `auto`)
- Available themes: `auto`, `nord`, `gruvbox`, `catppuccin-mocha`, `catppuccin-latte`, `catppuccin-frappe`, `catppuccin-macchiato`
- The `auto` theme follows system preferences and allows users to toggle between system/light/dark modes
- `font_awesome_cdn`: Custom Font Awesome CDN URL (defaults to Font Awesome 6.5.1 if not specified)
- `links`: Array of link objects
- `title`: Link text (required)
- `url`: Link destination (required)
- `icon`: Font Awesome icon class (optional, e.g., `fas fa-globe`, `fab fa-github`)
- `socials`: Array of social media links (displayed as icon-only buttons)
- `platform`: Platform name (used for accessibility)
- `url`: Social media profile URL
- `icon`: Font Awesome icon class (e.g., `fab fa-twitter`, `fab fa-linkedin`)
- `footer`: Array of footer text blocks
- `text`: Footer text content
### Theme Details
All themes support light/dark mode switching:
- **auto**: Minimalist monochrome theme with system preference detection
- **nord**: Arctic-inspired color palette (Nord theme)
- **gruvbox**: Warm retro groove colors (Gruvbox theme)
- **catppuccin-***: Soothing pastel themes (Catppuccin Latte, Frappé, Macchiato, Mocha)
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, and contribution guidelines.
## License
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.