{"id":22741734,"url":"https://github.com/crystallabs/hugo-template-minima-crystallabs","last_synced_at":"2026-01-08T10:04:32.659Z","repository":{"id":197545061,"uuid":"698859856","full_name":"crystallabs/hugo-template-minima-crystallabs","owner":"crystallabs","description":"Ready-to-use Hugo template with improved \"minima\" theme","archived":false,"fork":false,"pushed_at":"2023-10-06T20:44:59.000Z","size":392,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-05T06:33:46.467Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crystallabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-01T07:34:00.000Z","updated_at":"2023-10-01T07:37:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"164f73a3-cac3-44f9-b9f7-60449e738c4d","html_url":"https://github.com/crystallabs/hugo-template-minima-crystallabs","commit_stats":null,"previous_names":["crystallabs/hugo-template-minima-crystallabs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crystallabs%2Fhugo-template-minima-crystallabs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crystallabs%2Fhugo-template-minima-crystallabs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crystallabs%2Fhugo-template-minima-crystallabs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crystallabs%2Fhugo-template-minima-crystallabs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crystallabs","download_url":"https://codeload.github.com/crystallabs/hugo-template-minima-crystallabs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246273552,"owners_count":20750906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-11T00:16:41.947Z","updated_at":"2026-01-08T10:04:32.623Z","avatar_url":"https://github.com/crystallabs.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\n\nThis article explains how to set up a blog using {{\u003c L \"https://gohugo.io/\" Hugo \u003e}} and the same theme, format, and features as seen on https://crystallabs.io/.\n\nThe article is also used as the theme's Git repository `README.md`, in which the shortcodes will display as text when viewed through Git. That minimal visual artifact is fine.\n\n## Quick Start\n\nNot to waste time, you can clone the whole template website and have the site running in no time:\n\n```sh\n\ngit clone https://github.com/crystallabs/hugo-template-minima-crystallabs mysite\ncd mysite\n\n# For generating static pages, to be served by a web server:\n# (Hugo server still runs permanently, to watch for changes to files)\n./run.sh\n\n# Or to run the standard Hugo server, as usual:\nhugo serve\n```\n\nIf you only want the theme and not the whole template website, just copy (or make a symlink to) the files in `themes/minima-crystallabs/` in this repository.\n\n## Static Site Generator\n\nStatic site generator of choice is {{\u003c L \"https://gohugo.io/\" Hugo \u003e}}.\n\nIt is not the best static site generator, but it is cleaner than the venerable {{\u003c L \"https://en.wikipedia.org/wiki/Website_Meta_Language\" WML \u003e}} and much more reasonable than Gatsby.\n\nHugo has the ability to serve pages directly from its built-in web server, or you can generate static pages and serve them with an external web server.\nBoth options are shown.\n\n## Theme\n\nAfter seeing {{\u003c L \"https://decuser.github.io/\" \"Will (decuser) Senn's Blog\" \u003e}}, I found a blog theme more promising than various themes I found in the previous couple years.\n\nThat site is implemented in {{\u003c L \"https://jekyllrb.com/\" \"Jekyll\" \u003e}}, but searching for the theme named \"minima\" I was able to find a similar template for Hugo.\n\nThe theme was updated significantly and changed to name `minima-crystallabs`.\n\n### Theme Improvements\n\nThe improvements to the \"minima\" theme done so far are:\n\n- Blog homepage shows all articles, sorted in order of last modification time, most recent first\n\n- Maximum page width was increased from 640px to 1600px\n\n- Default font size has been increased from 16px to 18px \n\n- Page titles (H1 tags in HTML or `#` tags in markdown) are centered\n\n- Heading sizes have been adjusted for a more natural progression from large/bold to smaller/normal\n\n- Color scheme for links has been set to a very simple one like the old Netscape default (blue for unvisited links, red for visited links)\n\n- Similarly, links become underlined when they are hovered over with the mouse\n\n- Links which point to {{\u003c L \"https://en.wikipedia.org/wiki/Help:Link#External_links\" \"external resources\" \u003e}} have the \"external\" icon, like on Wikipedia\n\n- Links-related shortcodes `r`, `R`, `l`, and `L`, which mean \"L\" for external links and R for local references, have been added\n\n- All links inserted in an article with shortcodes `L` and `R` get automatically listed automatically once again at the end of the page\n\n- Simple styling for tables in HTML was added\n\n- Page \"banner\" feature was added. If a page has `banner: image.png` in frontmatter, `image.png` will display as a banner below the title, in the size/ratio like on YouTube\n\n- Inappropriate titles such as \"Oops!\" have been replaced with valid, formal titles like \"Not Found\"\n\n- Last modification time shows on each page\n\n- An article can belong to a series\n\n- An article can have various tags (categories) assigned\n\n- Series and tags have long descriptions, in addition to short names\n\n- The `/series` and `/tags` pages have been improved\n\n- `tags` and `series` shortcodes display a list of all tags or series\n\n- Possibly multiple series to which an article belongs are properly listed at the end of the article\n\n- When building the site, Hugo prints a warning for all series and tags that are not pre-configured and found in `data/series.yml`/`data/tags.yml`\n\n- Default `robots.txt` advises GPTBot not to index the pages (although the setting may be ignored GPTBot)\n\n- Promotion for Hugo was removed\n\n### Theme To-Do\n\n- Devise a better way for code blocks to show difference between lines of input and output. (The current model where lines to highlight are manually specified with e.g. `sh {hl_lines=\"1-2\"}` is impractical)\n\n- Improve link colors when using dark theme\n\n- Improve content of `/tags` and `/series` pages, to include descriptions like `tags` and `series` shortcodes do\n\n- Visually better integration of the banner feature?\n\n## Theme Customization\n\nYou can create the `layouts/` directory at the same level with `hugo.yaml` and put your customizations there.\n\n## Serving the Website\n\nAs mentioned in Quick Start, you can serve the site by running:\n\n```sh\n# For generating static pages, to be served by a web server:\n# (Hugo server still runs permanently, to watch for changes to files)\n./run.sh\n```\n\nOr you can run the usual Hugo server as it comes by default:\n\n```sh\nhugo serve\n```\n\n### Nginx config\n\nTo serve a completely static website via Nginx, you could use a basic config such as:\n\n```nginx\nserver {\n\tlisten 1313 default_server;\n\tlisten [::]:1313 default_server;\n\n\tserver_name _;\n\n\troot /var/www/html;\n\n\tindex index.html index.htm index.nginx-debian.html;\n\n\tlocation / {\n\t\ttry_files $uri $uri/index.html =404;\n\t}\n\n\tlocation ~ /\\.ht {\n\t\tdeny all;\n\t}\n}\n```\n\n(The example does not show SSL setup because it is behind a proxy.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrystallabs%2Fhugo-template-minima-crystallabs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrystallabs%2Fhugo-template-minima-crystallabs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrystallabs%2Fhugo-template-minima-crystallabs/lists"}