lwlwilliam

根据以下目录和文件使用 hugo 构建一个博客。 注意,只使用以下文件和目录:

  1. _data 目录:yaml 纯数据,目录中的文件如下。
    • books.yml:这是我看过的技术书,已按以下格式整理好了:
        年份:
          name(书名)
          info(书的 ISBN 或链接)
          complete(true 为已读完,false 为未读完)
          collect(true 喜欢,false 为无感)
      
    • links.yml:我喜欢的第三方 url,其中 name 为链接名称,url 为链接地址
    • other_books.yml:读的闲书,格式同 books.yml
    • todo.yml:我将要做的事,name 为事情,remark 为备注
    • tools.yml:我自己开发的纯前端小工具,file_name 为 tools/ 目录的文件名去掉”.html”后缀,name 为工具名
  2. _posts 目录: 博客文件,格式为 markdown,已按年份归类,文件名格式为“年-月-日-文章名.md”,文章引用的静态文件(如图片、文件都在 assets/ 目录下,使用的相对路径如“/assets/images/xxx.png”。博客文件格式,里面还有个 template.md 文件是模板文件,不起作用的。
     ---
     title: 随便唠唠异步(博客标题,不包含年月日)
     layout: post(这是分类,post 表示为博客文章)
     categories: [操作系统](文章分类,数组,可以是多元素数组)
     keywords: 操作系统 (关键词,以英文分号为分隔符)
     ---
     这才是正文
    
  3. assets 目录:这是资源目录,如博客中的图片等就放在这
  4. tools 目录:这里是我自己做的纯前端小工具
  5. _config.yml 文件,这是配置文件,主要用到的字段如下:
    • url: 这是博客的 base_url,主要用于博客自身链接的拼接,例如导航的路径都使用相对路径的,如 /books 的真实路径就是 base_url + /books,不过好像不太需要用到?
    • cdn: 这是博客静态资源的 base_url,用于拼接资源的相对路径,可能会在 cdn 时会用到,没用到的话其实不影响
    • title: 博客主页的 title 标签文本
    • keywords:博客所有页面都要加的 keywords 作为 seo?
    • encoding: 博客所有页面的编码格式,html 标签中使用
    • about: “关于”——/about 这个页面需要用到
    • description: “关于”——/about 这个页面需要用到
    • navs: 导航菜单,href 是导航的链接相对路径,拼接上就是 base_url + href 了,label 是导航菜单名
    • paginate: 用于博客分页控制每页博客数量
  6. CNAME: 用于 github pages 自定义域名的
  7. favicon.ico: 博客logo
  8. README.md:博客的说明文档(你生成的时候不需要管这里的内容,到时候直接复制过去即可)

生成的 hugo 博客要求:

  1. 现代化,例如界面简洁大方,适当使用圆角之类的看起来舒服点;
  2. 博客允许切换亮暗主题色,将用户选择的主题缓存起来,默认使用亮主题。
  3. 主题最好可以统一保存到一个 css 里,到时候修改主题的时候也方便。
  4. 导航根据 _config.yml 中配置的生成。
  5. 可以生成 feed.xml。
  6. 统一博客模板,博客内容当然就是去除---之间的内容再渲染啦。
  7. 导航链接说明:
    • /tools、/todo、/books、/links 这些页面能用现代化的卡片就更好了
    • /archives 这是对文章进行年份归类方便查看,注意要显示每年的文章总数
    • /categories 这是按文章的分类进行归类方便查看,这个分类也就是博客里的 categories,同样需要显示每个分类的总数
    • / 就很简单嘛,首页,首页默认显示 N(这个 N 在 _config.yml 文件中的 paginate 配置) 条博客及其摘要(摘要可以截取完成的前(50-100)个文字?或者直接一段,总之看怎么比较友好吧),注意可以切换分页(允许点击页码切换、输入页面切换、上一页切换、下一页切换、点击“首页”切换、点击“尾页”切换)
  8. 允许全站搜索,最好标题和内容也能搜索,但搜索功能不要使用第三方接口或扩展,最好本地 js 就可以做。
  9. 当然要支持 markdown 格式渲染啦,需要支持渲染数学公式的。
  10. 自行其它可配置的东西写入 _config.yml 中啦。
  11. 将页面公共的东西提取出来(如页面顶部、底部、全文搜索框+显示结果的部位)
  12. 博客的链接格式 /年/月/日/真正的博客标题