构建 hexo 静态博客

准备环境 安装

  • git 版本控制工具(可选) 配合 GitHub 使用
  • nodejs hexo 是 nodejs 的一个包
  • hexo-cli 博客构建工具
  • hexo-theme-next 博客主题
  • typora 写 markdown 的编辑器(付费), 也可以使用 vscode 或者其他的编辑器
  1. 安装 nodejs

Node.js — Jalankan JavaScript Di Mana Saja (nodejs.org)

nodejs 网站安装 nodejs lts 长期支持版本,或者使用 winget 安装

1
winget install Schniz.fnm

另外一个安装方式是使用 nvm node 的版本控制工具.

验证安装的 nodejs 是否成功. 在 终端(terminal)中运行

1
2
node -v
npm -v
  1. 安装 hexo-cli

由于一些网络原因, 先修改包的安装源. 将包源替换为淘宝软件源.

1
npm config set registry https://registry.npmmirror.com

Hexo 博客框架的网站

1
2
3
4
5
npm install hexo-cli -g # 全局安装 hexo工具
hexo init blog # 新建博客项目 blog(项目名)
cd blog
npm install
hexo server

这里可以按照 GitHub Pages 上的流程创建一个项目

1
hexo init user.github.io # user 修改为你自己的用户名

然后在这里创建 git init -b main 仓库,然后在本地仓库中添加文件, 提交暂存文件.

1
2
3
4
5
git add .
git commit -m "First commit"
git remote add origin REMOTE-URL
git remote -v
git push origin main
  1. 将本地托管代码添加到 GitHub - GitHub 文档

  2. 安装 hexo-theme-next

  3. NexT - Theme for Hexo (theme-next.js.org)

  4. hexo-theme-next/docs/zh-CN/README.md at master · next-theme/hexo-theme-next (github.com)

    1
    2
    cd hexo-site
    npm install hexo-theme-next

    然后在 _config.yml 中将 theme 改为 next.

Configuration | NexT (theme-next.js.org)

进一步的配置

1
2
hexo clean
hexo server

配置

  1. hexo

  2. hexo-theme-next

四种模式

  • Gemini 双子

  • mist 朝雾

  • Muse 缪斯

  • Pisces 双鱼

  1. 部署 GitHub action

在根目录创建 .github\workflow\github-action-deploy.yml 文件,用来部署 GitHub action.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
name: Hexo Deploy Github Pages
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Build and Deploy
uses: renzhaosy/hexo-deploy-action@master
env:
PERSONAL_TOKEN: ${{ secrets.ACCESS_TOKEN }} # github 私人权限token
PUBLISH_REPOSITORY: renzhaosy/renzhaosy.github.io # 打包之后想要部署到的仓库
BRANCH: master # 打包之后想要部署到的分支
PUBLISH_DIR: ./public # hexo 打包之后文件的所在的文件夹


# https://renzhaosy.github.io/2019/11/09/github-action/ 参考网站

hexo github pages

Custom Pages | NexT (theme-next.js.org)

开始使用 - NexT 使用文档 (iissnan.com)

参考链接,进行进一步的各类设置.

  • 头像

  • 多页面

    • Home
    • tag
    • archives
    • categories
    • series
    • notes
    • about
  • cc 协议设置

写博客

1
2
3
4
5
6
7
8
hexo new "My New Post" # 写博文
hexo server # 运行服务器
hexo generate # 生成静态文件
hexo deploy # 部署站点
hexo list [type] # post page route tag category


hexo new [layout] <title> # 布局有三种 post page draft

在文件开头添加上 yaml front-matter,
标签和目录区分开来,相当于是分类和标签, 注意 开头的格式要注意缩进.

侧边栏 - Hexo-NexT

Custom Pages | NexT (theme-next.js.org)

后续配置参考

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

ham on CW

morse code

  • number: long code; short code
  • alphabet: 26
  • symbols:
  • others:

Q-codes and others abbreviation

微软的Git

1
2
3
4
5
git status
git add
git log
git commit
git help

e.g. 1:

what is git; git terms; git & github; how to config git; git basic command;

resources:

1
2
3
4
git help tutorial 
git help tutorial-2
git help everyday
git

Touch Typing Websites

monkey type
typing club
keybr
qwerty learner
typing tom
10fast type

  • behavior
  • input
  • appearance
  • theme
  • danger zone
  • caret
  • sound

书签

  • 古登堡计划 网站

Markdown 参考

概述

Markdown 就是一个轻量的标记语言,适合博客,程序员写文档. HTML有一些关系,

现行标准

原始版本比较简化,后来有各种方言,原作者不支持标准化.所以仍然是方言碎片,且有多种写法

  • 原始Markdown
  • GFM[1]
  • CommonMark[2]
  • pandoc Markdown[3]

参考链接

标准扩展

  • 表格

  • 代码块, 自动识别代码块,语法高亮

  • 公式

  • 思维导图

  • 目录

  • 脚注

  • emoji等等

  • 定义列表: 词汇表用途

测试:



  1. GitHub Flavored Markdown Spec ↩︎

  2. CommonMark Spec ↩︎

  3. Pandoc - Pandoc User’s Guide ↩︎

字体

汉字和西文字体. 字体和字型的区分?
衬线体(serif),无衬线体(sans); 比例字体,等宽字体.
字重,等等概念.篆隶楷草,宋仿宋,黑是一种风格.
字号等等,

还有整体的主题?
opentype font, truetype font.

日本中称呼的明朝体,

例子

西文,中文字体,自然语言中使用,还有些是特定场景的字体,或者是古文中的大字符集的字体.或者是数学公式显示的数学字体之类的.网页上使用的字体. 一些默认的字体.使用场景

操作系统(windows Linux android ), 平台(浏览器, 阅读器,编辑器,终端)

思源字体 和 谷歌的noto 关系就不清楚了

西文字体

有些字体知名度高,默认的字体,
风格性质的字体?哥特体,打字机风格的.

  • courier

  • Times New Roman

  • Arial

  • calibri

  • Verdana

  • Helvetica

  • Garamond

  • Droid Sans

中文字体

有些是公文格式要求的字体,或者方正公司的产品.开源的cjk 字体 思源系列还有谷歌的noto 字体

  • 楷体
  • 宋体
  • 仿宋体
  • 黑体
  • 思源黑体
  • 思源宋体
  • 微软雅黑
  • 霞鹜文楷

程序员字体

主要是针对字体易混淆的改进,还有连字等功能,也有些等宽字体,配合终端特殊效果的 nerd font 或者 powerline

  • Fira code
  • source code pro (adobe)
  • Cascadia Code (Microsoft)
  • JetBrains mono (JetBrains)
  • Dejavu
  • ubuntu mono (canonical)
  • Iosevka
  • go font (Google)

Python 教程

帮助

chsh -s /bin/zsh
help()

topics

ASSERTION DELETION LOOPING SHIFTING
ASSIGNMENT DICTIONARIES MAPPINGMETHODS SLICINGS
ATTRIBUTEMETHODS DICTIONARYLITERALS MAPPINGS SPECIALATTRIBUTES
ATTRIBUTES DYNAMICFEATURES METHODS SPECIALIDENTIFIERS
AUGMENTEDASSIGNMENT ELLIPSIS MODULES SPECIALMETHODS
BASICMETHODS EXCEPTIONS NAMESPACES STRINGMETHODS
BINARY EXECUTION NONE STRINGS
BITWISE EXPRESSIONS NUMBERMETHODS SUBSCRIPTS
BOOLEAN FLOAT NUMBERS TRACEBACKS
CALLABLEMETHODS FORMATTING OBJECTS TRUTHVALUE
CALLS FRAMEOBJECTS OPERATORS TUPLELITERALS
CLASSES FRAMES PACKAGES TUPLES
CODEOBJECTS FUNCTIONS POWER TYPEOBJECTS
COMPARISON IDENTIFIERS PRECEDENCE TYPES
COMPLEX IMPORTING PRIVATENAMES UNARY
CONDITIONAL INTEGER RETURNING UNICODE
CONTEXTMANAGERS LISTLITERALS SCOPING
CONVERSIONS LISTS SEQUENCEMETHODS
DEBUGGING LITERALS SEQUENCES

modules

future _testinternalcapi functools rlcompleter
hello _testmultiphase gc runpy
phello _testsinglephase genericpath sched
_abc _thread getopt secrets
_aix_support _threading_local getpass select
_ast _tkinter gettext selectors
_asyncio _tokenize glob shelve
_bisect _tracemalloc graphlib shlex
_blake2 _typing gzip shutil
_bz2 _uuid hashlib signal
_codecs _warnings heapq site
_codecs_cn _weakref hmac smtplib
_codecs_hk _weakrefset html sndhdr
_codecs_iso2022 _winapi http socket
_codecs_jp _wmi idlelib socketserver
_codecs_kr _xxinterpchannels imaplib sqlite3
_codecs_tw _xxsubinterpreters imghdr sre_compile
_collections _zoneinfo importlib sre_constants
_collections_abc abc inspect sre_parse
_compat_pickle aifc io ssl
_compression antigravity ipaddress stat
_contextvars argparse itertools statistics
_csv array json string
_ctypes ast keyword stringprep
_ctypes_test asyncio lib2to3 struct
_datetime atexit linecache subprocess
_decimal audioop locale sunau
_elementtree base64 logging symtable
_functools bdb lzma sys
_hashlib binascii mailbox sysconfig
_heapq bisect mailcap tabnanny
_imp builtins marshal tarfile
_io bz2 math telnetlib
_json cProfile mimetypes tempfile
_locale calendar mmap test
_lsprof cgi modulefinder textwrap
_lzma cgitb msilib this
_markupbase chunk msvcrt threading
_md5 cmath multiprocessing time
_msi cmd netrc timeit
_multibytecodec code nntplib tkinter
_multiprocessing codecs nt token
_opcode codeop ntpath tokenize
_operator collections nturl2path tomllib
_osx_support colorsys numbers trace
_overlapped compileall opcode traceback
_pickle concurrent operator tracemalloc
_py_abc configparser optparse tty
_pydatetime contextlib os turtle
_pydecimal contextvars pathlib turtledemo
_pyio copy pdb types
_pylong copyreg pickle typing
_queue crypt pickletools unicodedata
_random csv pip unittest
_sha1 ctypes pipes urllib
_sha2 curses pkgutil uu
_sha3 dataclasses platform uuid
_signal datetime plistlib venv
_sitebuiltins dbm poplib warnings
_socket decimal posixpath wave
_sqlite3 difflib pprint weakref
_sre dis profile webbrowser
_ssl doctest pstats winreg
_stat email pty winsound
_statistics encodings py_compile wsgiref
_string ensurepip pyclbr xdrlib
_strptime enum pydoc xml
_struct errno pydoc_data xmlrpc
_symtable faulthandler pyexpat xxsubtype
_testbuffer filecmp queue zipapp
_testcapi fileinput quopri zipfile
_testclinic fnmatch random zipimport
_testconsole fractions re zlib
_testimportmultiple ftplib reprlib zoneinfo

keywords

False class from or
None continue global pass
True def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
break for not

0%