Hugo作品集博客文档

personal-site — Hugo 作品集模板

作者 wisnuwiry

基于 Hugo 的个人站点主题,用于搭建博客与作品集,支持 PWA、深浅色主题、目录、评论与分享等配置。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-01查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

Hugo 静态站点主题,定位为个人博客与作品集

02

示例配置覆盖作者信息、主菜单、社交链接、分享按钮、相关文章与作者框等站点参数

03

文章支持封面图、标签、目录、特色文章标记,页面可单独关闭目录、评论、分享等模块

04

Markdown 启用脚注、表格、任务列表、定义列表等 Goldmark 扩展,代码高亮使用 dracula 样式

05

包含 Web App Manifest 输出与 OpenGraph、Twitter Cards 等 SEO 相关开关

06

README 列出首页 series 整合、章节详情响应式等未完成事项

模板详细介绍

这是一个由 Hugo 静态站点生成器驱动的个人网站主题,仓库描述为“Hugo Theme for Personal Site (Blog & Portfolio)”,演示站点为 wisnuwiry.space。主题面向个人博客与作品集场景,同时被归类为文档类用途。

从示例配置看,主题提供较完整的站点级参数:作者信息(姓名、简介、头像、职业、邮箱)、Hero 标题与描述、主菜单(示例含 Post、Snippet、About、Contact)、面包屑、社交链接(Twitter、Telegram、LinkedIn、GitHub、GitLab、Medium)、文章分享按钮(Facebook、Twitter、Reddit、Telegram、LinkedIn、Pinterest)、相关文章、作者框、评论、MathJax 开关、分页长度、日期格式、自定义 CSS/JS 等。

内容层面,文章支持封面图、标签、目录(可默认展开)、特色文章标记(featured: true),页面可单独关闭目录、作者框、面包屑、评论与分享。Markdown 渲染启用了定义列表、脚注、链接自动识别、删除线、表格、任务列表等 Goldmark 扩展,代码高亮样式为 dracula。主题还包含 PWA 相关的 Web App Manifest 输出配置,以及 OpenGraph、Twitter Cards、Robots 等 SEO 相关开关。

README 的 TODO 中列出尚未完成的事项:首页整合 series、章节详情页响应式、更新 readme、搭建 demo 仓库,说明这些方向可能仍不完善。评论使用仓库参数(repository)配置,联系表单依赖 Formspree 的 formspreeId,二者都需要自行接入外部服务。README 还提到可通过 Forestry 导入站点进行内容管理,并给出 Netlify 一键部署按钮。

Hugo作品集博客文档

适合你的项目吗?

适用场景

  • 搭建个人博客并发布带标签与目录的长文
  • 整理并展示个人作品集页面
  • 以 Markdown 维护文档类内容并生成静态站点
  • 通过 Netlify 部署站点,或用 Forestry 导入进行内容管理

适合人群

  • 熟悉 Hugo 并希望自行配置主题参数的使用者
  • 需要博客与作品集合一、且可自定义社交与分享入口的个人站点
  • 愿意自行接入评论仓库与 Formspree 表单等外部服务的使用者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需先安装 Hugo 并创建新站点,再将主题克隆或作为 git submodule 放入 themes 目录

  2. 2

    把 exampleSite/content 复制到站点目录,并按示例 config.toml 配置 baseURL、语言、标题、作者与菜单等参数

  3. 3

    评论需在 [Params.Comments] 中填写 repository,联系表单需填写 Formspree 的 formspreeId,二者均为外部服务

  4. 4

    README 中的 TODO 表明首页 series 整合与章节详情响应式尚未完成,使用前建议核对实际效果

  5. 5

    主题代码为 MIT 许可,但演示图片、字体、图标等第三方素材需单独核对许可

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 使用 Forestry 进行内容管理需自行注册 Forestry 账号并导入站点,属于外部服务依赖。
  • 联系表单依赖 Formspree 外部服务,需自行申请并填写 formspreeId 才能生效。
  • 评论功能依赖外部仓库(如 GitHub 仓库)托管,需自行配置 repository 参数。
  • 站内搜索使用 Google 自定义搜索,需自行申请 customSearchId 并依赖 Google 外部服务。
  • 一键部署依赖 Netlify 外部平台,需注册 Netlify 账号。
  • README 的 TODO 表明首页 series 整合、章节详情响应式、demo 仓库等尚未完成,相关功能可能不完善。
  • README 提及 Formspree 表单服务;真实提交需配置服务端点,其使用额度与费用需单独核对。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Go to your forestry account and click on `import your site now`. declare your config.toml file [exampleSite] and fill up basic settings .

README 原文

# Formspree form contact id, more info: https://cse.google.com/cse/all formspreeId = ""

README 原文

repository = "" # Repository to host your comment, ex: username/repo

README 原文

customSearchId = "004021659876411083349:a2ysxpichpc"

README 原文

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/wisnuwiry/personal-site-demo)

README 原文

- [] Integrate series in home - [] Responsive chapter detail - [] Update readme - [] Setup demo repo

README 原文
https://github.com/wisnuwiry/personal-site/blob/master/LICENSEhttps://github.com/wisnuwiry/personal-site/blob/master/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 86 / 100
技术栈
Hugo
网站类型
作品集 · 博客 · 文档
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2025-01-01
截图检查日期
2026-10-01

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Hugo。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: 30c888bf8ebdf07628183e826d1a4e4f1684341f6720c611cb5013b0eaf77d2c

2026-10-01T00:54:13.721Z

来源文件 / 仓库
# Hugo Personal Site
[![state](https://img.shields.io/badge/state-stable-green.svg)]() [![release](https://img.shields.io/github/release/wisnuwiry/personal-site.svg)](https://github.com/wisnuwiry/personal-site/releases) [![license](https://img.shields.io/github/license/wisnuwiry/personal-site.svg)](LICENSE)
[![Netlify Status](https://api.netlify.com/api/v1/badges/19d195ca-0cec-478e-9cfa-fa9527644a60/deploy-status)](https://app.netlify.com/sites/wisnuwiry/deploys)

This is web made by Hugo static site generator, [Live Preview](https://wisnuwiry.space), more reference to example use this theme please check [my blog repo](https://github.com/wisnuwiry/blog-v2)

## TODO:

- [] Integrate series in home
- [] Responsive chapter detail
- [] Update readme
- [] Setup demo repo

## Instant Deploy

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/wisnuwiry/personal-site-demo)

## Content Management

Go to your forestry account and click on `import your site now`. declare your config.toml file [exampleSite] and fill up basic settings .

**Or just click this button for one click installation** [![import to Forestry](https://assets.forestry.io/import-to-forestryK.svg)](https://app.forestry.io/quick-start?repo=wisnuwiry/personal-site-demo2&engine=hugo&version=0.74.3&config=exampleSite)

Now mark everything as done, then go to configuration to change the base url . You can put any url but this have to similar as netlify . So for now put a name which you are going to put in netlify as netlify subdomain.


## Main Feature:
1. PWA
2. Fast Loading
3. Lazy loading
4. Full Responsive
5. Easy Customize
6. Dynamic Theme
7. Ready to Ads
8. Advance SEO (JSON-LD, OpenGraph, TwitterCard, Meta)
9. etc..

## Test Result:
![Test Result with Lighthouse](https://i.ibb.co/vvksSnW/test-result.png)


## Preview

|Light|Dark|
|-----|-----|
|![](https://i.ibb.co/BCzMSNX/Screenshot-1.png)![](https://i.ibb.co/f1RCWr4/Screenshot-1.png)|![](https://i.ibb.co/ZzHJ2Gd/light.png)![](https://i.ibb.co/tMkDs3N/Screenshot-1.png)|


## Setup in your workspace

Before starting, please be sure that you have [installed Hugo](https://gohugo.io/getting-started/quick-start/#step-1-install-hugo) and [created a new site](https://gohugo.io/getting-started/quick-start/#step-2-create-a-new-site). After that, you ready to install **personal-site**.

Create new project hugo

```bash
hugo new site site_name
```
Go to folder themes

```bash
cd site_name/themes
```

In your Hugo site themes directory, run:

```bash
git clone [email protected]:wisnuwiry/personal-site.git
```

Or, if you don’t plan to make any significant changes, but want to track and update the theme, you can add it as a git submodule via the following command:

```bash
git submodule add [email protected]:wisnuwiry/personal-site.git
```

Copy files `exampleSite/content` paste to `site_name`

Next, open `config.toml` and copy paste example config below.

### Example Config

```
baseURL                       = "https://example.com/"
languageCode                  = "id"
title                         = "Wisnuwiry"
theme                         = "personal-site"
summaryLength                 = 10

[Author] # Used in authorbox
  name                        = "Jhon Doe"
  bio                         = ""
  avatar                      = "img/avatar.webp"
  job                         = "Software Engineer"
  gender                      = "male"
  email                       = "[email protected]"


[Params]
  subTitle                    = "Personal site, Blog, and Portfolio"
  description                 = "Sebuah catatan dan blog pribadi saya. Saya juga akan membagi tentang pengalaman saya dan teknologi-teknolgi yang saya gunakan/pelajari atau yang sedang populer." # Site Description. Used in meta description
  images                      = ["img/avatar.webp"]
  copyright                   = "Wisnuwiry" # Copyright holder, otherwise will use .Site.Title
  opengraph                   = true # Enable OpenGraph if true
  twitter_cards               = true # Enable Twitter Cards if true
  mainSections                = ["post"] # Set main page sections
  dateFormat                  = "January 02, 2006" # Change the format of dates
  # customCSS                 = ["css/custom.css"] # Include custom CSS files
  customJS                    = []
  mainMenuAlignment           = "right" # Align main menu (desktop version) to the right side
  authorbox                   = true # Show authorbox at bottom of single pages if true
  comments                    = true # Enable comments for all site pages
  related                     = true # Enable Related content for single pages
  relatedMax                  = 5
  mathjax                     = false # Enable MathJax for all site pages
  hideNoPostsWarning          = false # Don't show no posts empty state warning in main page, if true
  fontUnit                    = "em"
  largestFontSize             = 2.5
  smallestFontSize            = 1
  googleSearchConsole         = ""
  # GoogleAnalytics             = ""
  # fb_admins                   = 
  # fb_app_id                   = 
  paginateLength              = 5
  # adsenseId                   = 

  # Google Search custom, more info: https://cse.google.com/cse/all
  customSearchId              = "004021659876411083349:a2ysxpichpc"

  endMessagePost              = "Wrong content? "
  
  # Link repo to edit content
  editContentPageLink         = "https://github.com/wisnuwiry/personal-site-demo/edit/master/content/"
  
  # Formspree form contact id, more info: https://cse.google.com/cse/all
  formspreeId                 = ""
  


[Params.Hero]
  title                       = "A Personal Site By Jhon Doe"
  desc                        = "Welcome to my Blog :)"

[Params.Entry]
  meta                        = ["date"] # Enable meta fields in given order
  toc                         = true # Enable Table of Contents
  tocOpen                     = false # Open Table of Contents block. Optional

[Params.Featured]
  previewOnly                 = false # Show only preview featured image

[Params.Comments]
  repository                  = "" # Repository to host your comment, ex: username/repo

# Navigation bar
[menu]

[[menu.main]]
identifier = "Post"
pre = "📝"
url = "/post" 
weight = 1 

[[menu.main]]
identifier = "Snippet"
pre = "⚒️"
url = "/snippet" 
weight = 2 

[[menu.main]]
identifier = "About"
pre = "😃"
url = "/about" 
weight = 4

[[menu.main]]
identifier = "Contact"
pre = "🤙"
url = "/contact" 
weight = 5

[Params.Breadcrumb]
  enable                      = true # Enable breadcrumb block globally
  homeText                    = "Home" # Home node text

[Params.Social]
  twitter                     = "jhon-doe"
  telegram                    = "jhon-doe"
# instagram                   = "jhon-doe"
  linkedin                    = "wisnu-saputra"
  github                      = "jhon-doe"
  gitlab                      = "jhon-doe"
  medium                      = "jhon-doe"

[Params.Share] # Entry Share block
  facebook                    = true
  twitter                     = true
  reddit                      = true
  telegram                    = true
  linkedin                    = true
  pinterest                   = true

# Web App Manifest settings
# https://www.w3.org/TR/appmanifest/
# https://developers.google.com/web/fundamentals/web-app-manifest/
[Params.Manifest]
  name                        = "Wisnuwiry"
  shortName                   = "Wisnuwiry"
  display                     = "standalone"
  startUrl                    = "/?utm_source=homescreen"
  backgroundColor             = "#8dc153"
  themeColor                  = "#1da1f2"
  description                 = "Personal Site By Wisnuwiry"
  orientation                 = "portrait"
  scope                       = "/"

[outputFormats]
  [outputFormats.MANIFEST]
    mediaType                 = "application/json"
    baseName                  = "manifest"
    isPlainText               = true
    notAlternative            = true

[outputs]
  home                        = ["HTML", "RSS", "MANIFEST"]

enableRobotsTXT               = true

# Pagination
Paginate                      = 3
 

# Code
[markup]
  # defaultMarkdownHandler    = "blackfriday"
  [markup.goldmark]
    [markup.goldmark.extensions]
      definitionList          = true
      footnote                = true
      linkify                 = true
      strikethrough           = true
      table                   = true
      taskList                = true
      typographer             = true
    [markup.goldmark.parser]
      attribute               = true
      autoHeadingID           = true
      autoHeadingIDType       = "github"
    [markup.goldmark.renderer]
      hardWraps               = false
      unsafe                  = true
      xhtml                   = false
  [markup.blackFriday]
    angledQuotes              = false
    footnoteAnchorPrefix      = ""
    footnoteReturnLinkContents= ""
    fractions                 = true
    hrefTargetBlank           = false
    latexDashes               = true
    nofollowLinks             = false
    noreferrerLinks           = false
    plainIDAnchors            = true
    skipHTML                  = false
    smartDashes               = true
    smartypants               = true
    smartypantsQuotesNBSP     = false
    taskLists                 = true
  [markup.highlight]
    codeFences                = true
    guessSyntax               = false
    hl_Lines                  = ""
    lineNoStart               = 1
    lineNos                   = false
    lineNumbersInTable        = false
    noClasses                 = false
    style                     = "dracula"
    tabWidth                  = 4
  [markup.tableOfContents]
    endLevel                  = 6
    ordered                   = false
    startLevel                = 2
```

### Create new Post

```
hugo new content/post/name_post.md
```

**Example Param:**

```
---
title: "Atomic Design"
date: 2020-10-29T10:22:10+07:00
images: [
    https://miro.medium.com/max/1000/1*V5oi-JrH4RlEQuYdVrQXig.png,
    https://i.ibb.co/BTRn8m6/Untitled.png,
]
tags: ["atomic","design"]
---
```

### Create new Page

```bash
hugo new content/about.md
```

Example params:

```
---
title: About 😃
menu: main
toc: false
authorBox: false
breadcrumb: false
comments: false
share: false
page: true
---
```

### Set Featured Post
In any content post add this param, to set featured post.

```
featured: true
```

## Support Us (Author) 
This project needs you! If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, feel free to donate. Your donation is highly appreciated . Thank you!

* **[Donate $10](https://www.paypal.me/wisnuwiry/10USD)**: Thank's for creating this project, here's a tea (or some juice) for you!
* **[Donate $20](https://www.paypal.me/wisnuwiry/20USD)**: Wow, I am stunned. Let me take you to the movies!
* **[Donate $30](https://www.paypal.me/wisnuwiry/30USD)**: I really appreciate your work, let's grab some lunch!
* **[Donate $40](https://www.paypal.me/wisnuwiry/40USD)**: That's some awesome stuff you did right there, dinner is on me!
* **[Donate $50](https://www.paypal.me/wisnuwiry/50USD)**: I really really want to support this project, great job!
* **[Donate $100](https://www.paypal.me/wisnuwiry/100USD)**: You are the man! This project saved me hours (if not days) of struggle and hard work, simply awesome!
* **[Donate $1500](https://www.paypal.me/wisnuwiry/1500USD)**: Go buddy, buy Macbook Pro for yourself!

Of course, you can also choose what you want to donate, all donations are awesome ! 

## Showcase
1. [Wisnuwiry Blog](https://wisnuwiry.space)

## Release Notes
[Show more..](CHANGELOG.md)

## Maintainers
1. @wisnuwiry
    
    [![Wisnuwiry](https://github.com/wisnuwiry.png?size=38)](https://github.com/wisnuwiry)


## Contributing 

Have you found a bug or got an idea for a new feature? Feel free to use the [issue tracker](https://github.com/Vimux/mainroad/issues) to let me know. Or make directly a [pull request](https://github.com/Vimux/mainroad/pulls).



## Thanks to

@bep
@gohugoio
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。