/kruhlmann.dev

Personal website for CV built with Svelte/Sapper

Primary LanguageSCSSGNU General Public License v3.0GPL-3.0

Docker Image Version (latest by date) CodeFactor Grade

kruhlmann.dev

Personal website statically generated using POSIX-compliant shell.

Building

$ make # creates dist/

Serving

The dist folder generated by Make serves as a default www root and can be served using nginx, apache httpd, python http.server etc.

Developing

Site content

General site content/styling is changed through editing the main template files such as project.template.html (for project pages), index.template.html (for landing page changes) as well as the index.scss and index.js (these are site-wide).

Adding new projects is done by creating a new project directory in projects. It must contain the following files

definition.json

This file provides metadata about the specific project used when building the project HTML file.

export interface ProjectDefinition {
    name: string; // Name to display.
    github_link: string; // Link to github repository page.
    preview_ext: string; // File extension of preview image.
    language: string; // Primary programming language (used for styling).
}

Example:

{
    "name": "GNU Linux dotfiles",
    "github_link": "https://github.com/Kruhlmann/dotfiles",
    "preview_ext": "png",
    "language": "shell"
}

badges.md

Markdown file to render in the sidebar of the project page when browsing on a large monitor. Intended to show common GitHub badge markdown but anything can go in here.

description.md

Markdown file for the main body of the project page. Usually contains the contents of the README.md in the repository.

preview.*

Main image for the project page. Extension is defined in definition.json. Default HTML image files are supported.

Build system

The build system consists of the following files:

Makefile

Main entrypoint for building files with dependencies. By default make or make all will create/update the dist folder.

scripts/lib

Business logic container for the build scripts. Define new functionality here and implement it in the specific build scripts.

scripts/build_html

Builds a project html file.

Arguments:

  • Project directory
  • Output directory

Example:

$ ./scripts/build_html src/projects/dotfiles dist/projects/

Make target:

$ make dist/projects/dotfiles.html

scripts/build_html_index

Builds the landing page HTML file.

Arguments:

  • Output directory

Example:

$ ./scripts/build_html dist/

Make target:

$ make dist/index.html