Hugo 静态站点主题,定位为个人博客与作品集
personal-site — Hugo 作品集模板
作者 wisnuwiry
基于 Hugo 的个人站点主题,用于搭建博客与作品集,支持 PWA、深浅色主题、目录、评论与分享等配置。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
示例配置覆盖作者信息、主菜单、社交链接、分享按钮、相关文章与作者框等站点参数
文章支持封面图、标签、目录、特色文章标记,页面可单独关闭目录、评论、分享等模块
Markdown 启用脚注、表格、任务列表、定义列表等 Goldmark 扩展,代码高亮使用 dracula 样式
包含 Web App Manifest 输出与 OpenGraph、Twitter Cards 等 SEO 相关开关
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 一键部署按钮。
适合你的项目吗?
适用场景
- 搭建个人博客并发布带标签与目录的长文
- 整理并展示个人作品集页面
- 以 Markdown 维护文档类内容并生成静态站点
- 通过 Netlify 部署站点,或用 Forestry 导入进行内容管理
适合人群
- 熟悉 Hugo 并希望自行配置主题参数的使用者
- 需要博客与作品集合一、且可自定义社交与分享入口的个人站点
- 愿意自行接入评论仓库与 Formspree 表单等外部服务的使用者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需先安装 Hugo 并创建新站点,再将主题克隆或作为 git submodule 放入 themes 目录
- 2
把 exampleSite/content 复制到站点目录,并按示例 config.toml 配置 baseURL、语言、标题、作者与菜单等参数
- 3
评论需在 [Params.Comments] 中填写 repository,联系表单需填写 Formspree 的 formspreeId,二者均为外部服务
- 4
README 中的 TODO 表明首页 series 整合与章节详情响应式尚未完成,使用前建议核对实际效果
- 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 原文
[](https://app.netlify.com/start/deploy?repository=https://github.com/wisnuwiry/personal-site-demo)
README 原文
https://github.com/wisnuwiry/personal-site/blob/master/LICENSEhttps://github.com/wisnuwiry/personal-site/blob/master/README.md- [] Integrate series in home - [] Responsive chapter detail - [] Update readme - [] Setup demo repo
README 原文
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 []() [](https://github.com/wisnuwiry/personal-site/releases) [](LICENSE) [](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 [](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** [](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:  ## Preview |Light|Dark| |-----|-----| ||| ## 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 [](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
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

hugo-PaperMod
PaperMod 是 Hugo 生态里知名度较高的主题之一,定位很明确:给博客和轻量作品集站点提供一套干净、响应式的阅读界面。
Hugo · 作品集

hugo-book
Hugo Book 是一个面向文档场景的 Hugo 主题,定位很直接:把文档站点做得像一本朴素的书。
Hugo · 文档

LoveIt
❤️A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题
Hugo · 博客

hugo-coder
A minimalist blog theme for hugo.
Hugo · 博客

docsy
Hugo theme for open source documentation
Hugo · 文档

blowfish
Personal Website & Blog Theme for Hugo
Hugo · 博客
