Host site
有两个托管个人站点的网站:Github pages
和reathedocs
.
Github Pages
使用github pages可以搭建个人主页。
github pages简介:官方链接。
github pages使用了CNAME record技术,参考:链接1、链接2、Custom domains in Github Pages。
注:Read the Docs也是一个很好的搭建个人主页的网站。
Github Pages 站点类型
有3种类型的 Github Pages 站点(sites):project, user 和 organization 。
Project sites 连接到 github 上特定 project ,比如 Javascript library 或 recipe collection。user 或 organization sites 连接到 github.com 的特定账户。
发布 user site ,你必须创建一个你的个人账户下的一个名为 <username>.github.io
的 repository 。发布 organization site ,你必须创建一个组织所有的名为 <organization>.github.io
的 repository 。除非你使用 custom domain ,否则 user 和 organization sites 将位于 http(s)://<username>.github.io
或 http(s)://<organization>.github.io
。
project site 的源文件存储在作为 project 的相同的 repository 中。除非使用 custom domain , 否则 project sites 将位于 http(s)://<username>.github.io/<repository>
或 http(s)://<organization>.github.io/<repository>
。
有关如何自定义影响您网站的域名的更多信息,参见”About custom domains and GitHub Pages“。
每个 github 账户允许创建 1 个 user 或 organization 站点。无论是被组织还是个人所有,project 站点的个数不限制。
GitHub Pages 访问方法
参考官方文档。
例如,你的project站点配置的发布源是gh-pages
分支,然后在gh-pages
分支上创建了一个about/contact-us.md
文件,你将可以在https://<user>.github.io/<repository>/about/contact-us.html
访问它。
你也可以使用Jekyll
等静态站点生成器来给你的github page配置一个主题。
站点发布常见问题的解决方法
Github workflows
参考官方文档。
Github个人访问令牌
readthedocs
Similar to the github pages.
配置前准备
Markdown编辑器
推荐的markdown编辑器:
- VSCode:免费。VSCode原生支持Markdown,安装一些插件可以帮助更快地编写markdown文件。
- Typora:现在已经开始收费。
VSCode markdown插件:
- Mardown All in One: 提供快捷键,帮助更快的编写markdown文件。
- Markdown+Math:提供数学公式支持。
- Markdown Preview Enhanced: 将原生markdown预览的黑色背景改成白色。
- Markdown Preview Github Styling:提供Github风格的预览。
在线表格生成器:可以生成Markdown、Text、HTML、LaTex、MediaWiki格式的表格。
轻量级虚拟机WSL
WSL,Windows Subsystem for Linux,是Windows提供的轻量级Linux虚拟机。
安装教程:见链接。
WSL默认没有启用systemctl:
启用systemctl的方法:链接。
替代方法:不需要启动systemctl,因为会比较占用资源,启动也会变慢。可以使用service命令替代。
WSL默认没有安装openssl-server:
使用ssh连接到服务器时,需要服务器运行着sshd程序,否则连接不上,会出现”Connection refused“错误。
参考链接。
查看openssh-server有没有安装:
1 | dpkg --list | grep ssh |
注:如果安装了openssh-server,执行which sshd可以看到路径。
WSL默认没有安装openssh-server,安装方法:
1 | sudo apt-get install openssh-server |
启动ssh:
1 | sudo service ssh start |
ssh-keygen
1 | # 删除错误的 know_hosts 项 |
通过https登录到github
git push
不再支持输入用户名和密码,当提示输入密码时,需要输入personal access token.
步骤1:在github上创建personal access token;
步骤2:在命令行上使用personal access token;
步骤3:为了避免每次都需要输入personal access token,可以将其缓存在git client上:
1 | gh auth login |
注:使用gh
命令需要先安装GitHub CLI:
1 | sudo apt-get install gh |
WSL常见问题
在WSL的Linux下,在.bashrc中加入:
1 | function browser() { |
打开html:
1 | browser index.html |
静态站点生成器
以下几种静态站点生成器都可以用来搭建个人主页。如果使用除JekyII外的工具,则需要配置Github Actions以构建和发布你的站点。
mkdocs
mkdocs是一个快速的静态网页生成器。
mkdocs.yml
文件是 MkDocs 文档生成器的配置文件,其格式说明参见这里。
JekyII
Jekyll 是一个静态站点生成器,内置对 GitHub Pages 的支持和简化的构建进程。
参见 About GitHub Pages and Jekyll 。
Hexo
Sphinx
Install Sphinx
Hosting the documentation
python
python建立个人站点
python -m http.server
Syntax
Markdown
reStructuredText
.rst
大型文件存储
图片
Postimages
- 网站: https://postimages.org/
- 特点:
- 适合快速上传和生成图片链接。
- 不需要注册,可以直接上传图片并获得链接。
- 提供图片缩略图和直接链接。
- 上传后图片会长期存储,适用于网站和博客图片托管。
视频
TinyPic (由 Photobucket 提供)
- 网站: https://tinypic.com/
- 特点:
- 支持上传并生成快速共享链接。
- 上传后,链接可以嵌入到社交媒体、论坛、博客中。
- 图片和视频都支持托管,但TinyPic已关闭,现由Photobucket服务接管。
Git LFS
GitHub 提供的用于存储大型文件的服务叫 Git LFS(Git Large File Storage)。
什么是 Git LFS?
Git LFS 是一个 Git 扩展,用于处理 Git 仓库中的大型文件(如图片、视频、音频等),它通过将大型文件存储在 GitHub 的独立存储区来解决 Git 的性能瓶颈。
Git LFS 的免费额度:
GitHub 为免费账户提供一定的 LFS 存储和带宽额度:
免费存储:每个 GitHub 账户提供 1GB 的 LFS 存储。
免费带宽:每个月 1GB 的下载带宽。
如果超出免费额度,你可以选择购买更多的存储和带宽。
Git LFS 的工作原理:
文件替代:Git LFS 用一个指向大文件的指针来替代文件内容,将文件本身存储在 GitHub 提供的 LFS 存储空间中。
文件存储:实际的文件内容存储在 GitHub 的 LFS 存储中,Git 只会管理这些文件的指针。
下载/上传:当你从仓库克隆或拉取代码时,Git LFS 会自动下载大文件,反之,当你提交大文件时,Git LFS 会将其上传到 GitHub。
如何使用 Git LFS?
- 安装 Git LFS:
首先需要安装 Git LFS,可以通过 Git LFS 官方网站 下载和安装。
1 | git lfs install |
- 初始化 Git LFS:
在你的 Git 仓库中初始化 Git LFS。
1 | git lfs track "*.jpg" # 例如跟踪所有 jpg 格式的图片 |
- 使用 Git LFS 进行提交:
每次提交时,Git LFS 会自动处理大文件,并将它们上传到 GitHub LFS 存储区。
优势:
减少仓库体积:通过将大文件存储在 Git LFS 中,可以避免将大文件直接存储在 Git 仓库中,从而提高 Git 的性能。
适用于大文件:适合管理图像、视频、二进制文件等大型文件,避免 Git 克隆和拉取过程变得过于缓慢。
总结:
Git LFS 是 GitHub 提供的用于管理和存储大型文件的扩展服务,适合存储需要频繁更改或管理的大文件(如图片、音频、视频等)。