|
1 | 1 | # [jeffreyharmon.dev](https://jeffreyharmon.dev) |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | +My personal portfolio website and blog, built with [Hugo](https://gohugo.io/) and [Nix](https://nixos.org). |
| 7 | + |
| 8 | +## About |
| 9 | + |
| 10 | +This is a static website showcasing my projects, blog posts, and professional background. The site features: |
| 11 | + |
| 12 | +- **Portfolio**: Showcasing various software projects and games |
| 13 | +- **Blog**: Technical articles and project write-ups |
| 14 | +- **About**: Professional background and skills |
| 15 | +- **Contact**: Links to social profiles and contact information |
| 16 | + |
| 17 | +## Development |
| 18 | + |
| 19 | +### Prerequisites |
| 20 | + |
| 21 | +- [Nix](https://nixos.org/download.html) with flakes enabled |
| 22 | + |
| 23 | +### Setup |
| 24 | + |
| 25 | +1. Clone the repository: |
| 26 | + |
| 27 | + ```bash |
| 28 | + git clone https://github.com/SquarePear/www.git |
| 29 | + cd www |
| 30 | + ``` |
| 31 | + |
| 32 | +2. Enter the development environment (or use [direnv](https://direnv.net/)!): |
| 33 | + |
| 34 | + ```bash |
| 35 | + nix develop --no-pure-eval |
| 36 | + ``` |
| 37 | + |
| 38 | +3. Start the development server: |
| 39 | + |
| 40 | + ```bash |
| 41 | + hugo server |
| 42 | + ``` |
| 43 | + |
| 44 | +4. Visit `http://localhost:1313` to view the site |
| 45 | + |
| 46 | +### Building |
| 47 | + |
| 48 | +To build the static site for production: |
| 49 | + |
| 50 | +```bash |
| 51 | +hugo build --gc |
| 52 | +``` |
| 53 | + |
| 54 | +The built site will be available in the `public/` directory. |
| 55 | + |
| 56 | +### Building with Nix |
| 57 | + |
| 58 | +Alternatively, you can build the site using Nix: |
| 59 | + |
| 60 | +```bash |
| 61 | +nix build |
| 62 | +``` |
| 63 | + |
| 64 | +The built site will be available in the `result/` directory as a symlink to the Nix store. |
| 65 | + |
| 66 | +## Project Structure |
| 67 | + |
| 68 | +```text |
| 69 | +├── archetypes/ # Content templates |
| 70 | +├── assets/ # Fonts, images, and styles |
| 71 | +├── content/ # Site content (Markdown files) |
| 72 | +│ ├── blog/ # Blog posts |
| 73 | +│ ├── projects/ # Project showcases |
| 74 | +│ └── redirect/ # Redirect pages |
| 75 | +├── layouts/ # Hugo templates |
| 76 | +├── static/ # Static assets (icons, etc.) |
| 77 | +├── hugo.toml # Hugo configuration |
| 78 | +└── flake.nix # Nix development environment |
| 79 | +``` |
| 80 | + |
| 81 | +## Content Management |
| 82 | + |
| 83 | +### Adding a Blog Post |
| 84 | + |
| 85 | +Create a new Markdown file in `content/blog/`: |
| 86 | + |
| 87 | +```bash |
| 88 | +hugo new blog/your-post-title.md |
| 89 | +``` |
| 90 | + |
| 91 | +### Adding a Project |
| 92 | + |
| 93 | +Create a new Markdown file in `content/projects/`: |
| 94 | + |
| 95 | +```bash |
| 96 | +hugo new projects/your-project-name.md |
| 97 | +``` |
0 commit comments