Understand folder and path configuration in Jekyll

在使用 Jekyll 构建静态网站时,了解如何配置文件夹和路径对于网站的组织和内容管理至关重要。Jekyll 是一个功能强大的静态网站生成器,具有独特的文件夹结构和处理规则。本文将介绍 Jekyll 如何处理不同的文件夹,以及如何通过配置使网站更灵活。

Jekyll 的默认文件夹结构

Jekyll 的文件夹结构主要分为以下几类:

  1. 特殊文件夹

    • _posts:存放博客文章的默认文件夹。Jekyll 会自动将此目录中的 Markdown 或 HTML 文件处理为文章内容,并根据配置生成静态页面。
    • _layouts:存放布局文件。布局文件用于定义网站的整体结构和模板,可以被文章或页面引用。
    • _includes:存放可复用的片段文件,这些片段可以在布局或其他页面中包含,减少重复代码。
    • _data:存放数据文件(如 .yml.json)。这些数据文件可以在模板中被引用,提供灵活的数据展示和使用。
  2. 普通文件夹

    • 任何不以下划线(_)开头的文件夹都被视为普通文件夹,其内容会直接被复制到生成的站点中,保持文件和目录结构。

Jekyll 对 _posts 文件夹的特殊处理

_posts 文件夹是 Jekyll 中的一个特殊目录,用于存放博客文章。所有放置在 _posts 中的文件必须按照命名规则命名(如 YEAR-MONTH-DAY-title.md),Jekyll 会根据这些文件的 Front Matter(前置数据)自动生成静态页面。默认情况下,文章页面的 URL 会根据站点配置文件 _config.yml 中的 permalink 设置生成。

例如,以下是一个典型的 _posts 文件:

1
2
3
4
5
6
7
---
layout: post
title: "我的第一篇文章"
date: 2024-08-27
categories: blog
---
这是我的第一篇博客文章!

上述文件会生成一个位于 /blog/2024/08/27/我的第一篇文章 的页面。

为什么其他以下划线开头的文件夹不会直接生成页面?

Jekyll 默认忽略所有以下划线(_)开头的文件夹(如 _layouts_includes 等),因为这些文件夹通常用于存放模板、布局、数据或其他不直接生成的内容。这些文件夹的内容不会直接生成到静态站点的输出目录中。除非使用自定义配置,否则它们不会出现在最终的 URL 路径中。

如何让其他目录内容可访问?

如果你希望其他目录的内容也能像 _posts 中的文章一样生成并通过 URL 访问,可以使用以下方法:

  1. 使用普通文件夹:将文件夹命名为不带下划线的名称(如 pages),这样 Jekyll 会将该目录及其内容直接复制到生成的站点中,保持文件和目录结构。

  2. 使用 Collections 功能

    • Jekyll 允许用户定义自定义集合(collections),用于存储除文章以外的其他内容。自定义集合可以像 _posts 一样被特殊处理,生成静态页面。

    示例配置

    1
    2
    3
    4
    collections:
    tutorials:
    output: true # 设置为 true 以生成输出
    permalink: /tutorials/:path/

    然后,创建一个 _tutorials 文件夹,存放要处理的内容。

  3. 在 Front Matter 中指定 permalink

    • 在单个文件的 Front Matter 中手动指定 permalink 属性,可以自定义该文件生成页面的路径。

    示例

    1
    2
    3
    4
    5
    6
    ---
    layout: page
    title: Custom Page
    permalink: /custom/path/
    ---
    自定义页面内容。

    这将生成一个位于 /custom/path/ 的页面。

总结

Jekyll 提供了一种灵活的方式来管理和组织网站内容。理解 Jekyll 如何处理不同类型的文件夹可以帮助开发者更好地管理站点内容和生成路径。通过正确配置 _config.yml 和使用 Jekyll 的集合功能,可以实现更多自定义需求,为站点提供更大的灵活性和控制力。

Use ssh to connect to AWS EC2 instance

1: Create a new key pair

  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
  2. In the navigation pane, choose Key Pairs.
  3. Choose Create key pair.
  4. For Key pair name, enter a name for the new key pair, and then choose Create key pair.
  5. Your browser will download the private key file automatically. The private key file is automatically downloaded by your browser. The base file name is the name you specified as the name of your key pair, and the file name extension is .pem. Save the private key file in a safe place.
  6. Choose Close.
  7. Important: You can create a key pair only once. Be sure to save the private key file to your computer. You’ll need to provide the name of your key pair when you launch an instance and the corresponding private key each time you connect to the instance.

2: Connect to your instance

  1. Open a terminal window.
  2. Use the cd command to navigate to the directory where your private key file is located.
  3. Use the following command to set the permissions of your private key file so that only you can read it:
1
chmod 400 /path/my-key-pair.pem
  1. Use the following command to connect to your instance. Replace ec2-user with the appropriate user name for your AMI.
  • For Amazon Linux 2 or the Amazon Linux AMI, the user name is ec2-user.
  • For a CentOS AMI, the user name is centos.
  • For a Debian AMI, the user name is admin.
  • For a Fedora AMI, the user name is ec2-user or fedora.
  • For a RHEL AMI, the user name is ec2-user or root.
  • For a SUSE AMI, the user name is ec2-user or root.
  • For an Ubuntu AMI, the user name is ubuntu. Here my OS is Ubuntu.
  • Otherwise, if ec2-user and root don’t work, check with your AMI provider.
1
ssh -i /path/my-key-pair.pem user_name@ip_address

3: (Optional) Connect to your instance using a password

  1. Open a terminal window.
  2. Use the following command to connect to your instance.
1
ssh user_name@my-instance-ip

I meet Permission denied (publickey) error.

To fix it.

Step1: Firstly I need to use the previous command to connect to my instance.
1
ssh -i /path/my-key-pair.pem user_name@ip_address
Step2: Set up a password for the user using passwd command along with the username.
1
sudo passwd ubuntu
Step 3: Edit sshd_config file.
1
sudo vim /etc/ssh/sshd_config

Find the Line containing PasswordAuthentication parameter and change its value from no to yes.

1
PasswordAuthentication yes

If you want to set up root login, find PermitRootLogin parameter and change its value from prohibit-password to yes

1
PermitRootLogin yes

After this changes save file and exit.

Step 4: Restart the SSH service.
1
2
3
service ssh restart ## for ubuntu

service sshd restart ## for centos
Step 5: Add the .pem file to Local ssh.
1
2
chmod 400 /path/my-key-pair.pem
ssh-add -k /path/my-key-pair.pem
Step 6: Now you can connect to your instance using a password.
1
ssh user_name@my-instance-ip

张巍老师GRE填空机经1800答案及解析

答案

  • 填空机经1800题答案汇总

  • test 1

    • section 1 B/CE/BEG/CE/AB/EF/BC

    • section 2 C/C/AF/AEG/CD/AB/DF

  • test 2

    • section 1 A/BD/BDG/BF/DF/AD/CE

    • section 2 D/BD/BF/CFI/BD/BE/BE

  • test 3

    • section 1 B/BF/CDI/AF/BD/AD/AD

    • section 2 D/BF/CEH/BFG/CF/BE/DF

  • test 4

    • section 1 E/CF/CEH/AB/CF/BD/DE

    • section 2 C/B/BE/CEG/AC/BE/AF

  • test 5

    • section 1 C/CE/BFH/AC/AC/CE/BC

    • section 2 E/BE/AE/CEI/AC/CF/AC

  • test 6

    • section 1 D/AD/BDI/AF/BD/BC/BD

    • section 2 E/BD/AFH/CEH/AB/CE/BF

  • test 7

    • section 1 B/CE/CEI/CF/EF/CF/AE

    • section 2 C/C/AF/BDI/BC/CF/CD

  • test 8

    • section 1 B/AE/AEH/AB/AB/BF/CF

    • section 2 C/BF/AE/AFI/CE/BC/DE

  • test 9

    • section 1 B/CF/BDH/AB/BE/BD/CD

    • section 2 A/CD/BF/BEG/AD/BC/AB

  • test 10

    • section 1 C/BD/AEH/BD/CD/CE/BF

    • section 2 A/E/BD/AEI/EF/AF/CD

  • test 11

    • section 1 B/AD/CEH/AC/CE/AF/CD

    • section 2 B/CE/AE/BEH/AC/BD/BD

  • test 12

    • section 1 A/AF/ADG/BC/BD/BF/BE

    • section 2 B/AE/ADI/AEI/AE/BE/AB

  • test 13

    • section 1 B/BE/AEG/BD/AD/BD/AC

    • section 2 B/A/CE/CDG/CF/CE/BD

  • test 14

    • section 1 D/CD/AEI/AF/AC/CF/AB

    • section 2 A/AF/BD/ADI/AF/CF/BE

  • test 15

    • section 1 C/AE/ADG/BF/DF/AF/AB

    • section 2 B/CE/BDG/BDI/BD/AB/AE

  • test 16

    • section 1 D/CE/BDI/CE/CF/BE/CD

    • section 2 E/C/BD/CDH/AB/AC/BC

  • test 17

    • section 1 A/BF/AEI/BC/AB/CD/BE

    • section 2 D/AD/BF/ADI/AC/DF/CF

  • test 18

    • section 1 E/AE/BEI/BD/DF/EF/DF

    • section 2 E/CD/BE/ADG/CF/AE/AF

  • test 19

    • section 1 E/CF/BEG/BE/AF/CF/CF

    • section 2 A/B/AD/CDH/AC/CF/AC

  • test 20

    • section 1 E/AD/AEI/CE/DE/AC/DE

    • section 2 B/A/BD/CEI/EF/BC/BD/

  • test 21

    • section 1 D/AE/CDG/AB/BF/CE/AD

    • section 2 B/AD/BFH/BEI/AF/EF/CE

  • test 22

    • section 1 B/AF/BFH/DF/CF/DF/DF

    • section 2 B/C/BD/CEH/DF/DF/AB

  • test 23

    • section 1 B/BD/BEI/EF/CF/EF/CF

    • section 2 B/CF/BD/BEH/AC/CE/AB

  • test 24

    • section 1 D/CD/CEI/BC/CD/DF/CF

    • section 2 B/BF/BDI/BDI/CE/AE/DF

  • test 25

    • section 1 C/AE/AEI/BE/AC/AB/EF

    • section 2 E/D/CD/CEH/DF/BE/AE

  • test 26

    • section 1 A/CE/AFI/BF/BE/DF/AD

    • section 2 E/BD/BF/CEH/EF/AC/BF

  • test 27

    • section 1 A/CE/BEG/BC/CF/EF/CD

    • section 2 E/BF/CDH/CFI/DF/BD/BD

  • test 28

    • section 1 C/BD/ADI/CD/BE/AF/AD

    • section 2 B/C/CE/AEG/CD/EF/BD

  • test 29

    • section 1 E/BF/BDG/CF/BC/CD/BC

    • section 2 A/A/AD/ADI/AE/BE/AB

  • test 30

    • section 1 E/BE/CDG/AF/BC/AF/EF

    • section 2 A/CD/BE/CDH/AC/BF/DF

  • test 31

    • section 1 A/BE/AFG/CE/DF/CE/BD

    • section 2 E/A/BD/CFG/BF/AD/AE

  • test 32

    • section 1 D/AD/CEI/BE/BD/DF/EF/

    • section 2 B/BD/BF/AEG/AC/DE/AF

  • test 33

    • section 1 D/CE/AFG/CE/DF/CF/AC

    • section 2 B/BD/CDH/BEG/CE/BD/AF

  • test 34

    • section 1 E/BE/ADG/DF/DE/AE/BC

    • section 2 C/B/BD/CEH/CE/CF/EF

  • test 35

    • section 1 E/AE/AEI/AE/AF/CD/CF

    • section 2 E/BD/AE/CDH/AB/AB/DE

  • test 36

    • section 1 C/BD/AFI/BD/BD/AC/DF

    • section 2 B/AF/ADI/AEG/AE/BD/AB

  • test 37

    • section 1 C/CE/BFI/BD/DF/BD/BE

    • section 2 D/E/CE/ADI/BE/DE/CD

  • test 38

    • section 1 B/BF/BFI/CF/AD/BF/CE

    • section 2 D/AD/AD/AFI/AC/BF/AC

  • test 39

    • section 1 C/BE/CDG/EF/DF/AE/BE

    • section 2 E/AE/AD/BEH/CD/CE/BD

  • test 40

    • section 1 E/BD/ADI/BF/CE/AE/BE

    • section 2 A/AE/CF/CDG/BD/BF/BF

  • test 41

    • section 1 E/AE/BEH/AB/AC/BE/AE

    • section 2 C/AF/BD/AEI/BD/CF/EF

  • test 42

    • section 1 C/CE/AFH/DF/AC/CE/AC

    • section 2 C/AD/BD/CDH/DF/AF/BE

  • test 43

    • section 1 B/CF/CEI/AD/AE/CE/CE

    • section 2 D/CF/AD/BFH/DE/CD/BE

  • test 44

    • section 1 A/CE/ADI/BC/DE/CF/AE

    • section 2 D/CE/CD/BEG/DF/EF/EF

  • test 45

    • section 1 D/AD/CEG/EF/BD/DE/BF

    • section 2 D/C/CD/CDH/AB/BE/BF/

  • test 46

    • section 1 E/BE/AEG/BF/BF/AF/AD

    • section 2 C/BD/AD/CFG/AE/BD/BD

  • test 47

    • section 1 B/AD/CFI/EF/DF/BD/AD

    • section 2 C/AE/AF/BFH/DF/BD/AD

  • test 48

    • section 1 E/AF/CDH/AD/DE/AE/AE

    • section 2 E/CD/AE/BDI/CE/BE/AD

  • test 49

    • section 1 B/BF/CFH/AE/AB/AD/AB

    • section 2 D/AD/AF/BFG/BF/CF/DE

  • test 50

    • section 1 A/BD/CDI/BD/BC/BE/BE

    • section 2 A/CE/CD/BDI/CE/BC/CF

  • test 51

    • section 1 E/BD/AFH/AD/AF/BD/AF

    • section 2 A/AD/AE/BDH/CE/BD/AB

  • test 52

    • section 1 B/AE/BDI/DE/BE/BC/BC

    • section 2 A/AE/CE/AFH/CF/BE/AB/

  • test 53

    • section 1 E/CF/AEI/BE/BE/CE/CE

    • section 2 D/CF/AD/CDH/AE/DF/BF

  • test 54

    • section 1 A/BE/ADG/DE/CF/CE/BF

    • section 2 C/BD/BD/BDI/AC/AF/CF

  • test 55

    • section 1 D/AD/CDI/AC/CD/DE/BF

    • section 2 E/AE/BD/AEH/AB/EF/DE

  • test 56

    • section 1 D/AF/BDH/CF/CE/EF/BF

    • section 2 D/AF/BF/CEG/EF/BC/BD

  • test 57

    • section 1 B/BD/CDG/BC/AC/AB/AE

    • section 2 A/CE/CD/CFG/CF/EF/BC

  • test 58

    • section 1 C/CD/CEH/AD/AB/BF/CF

    • section 2 E/AF/BD/CFH/CF/AC/BD

  • test 59

    • section 1 B/BF/CDH/CD/AF/BE/EF

    • section 2 C/BE/BE/BFG/CF/AC/DE

  • test 60

    • section 1 E/AE/CEG/CE/BD/AB/AF

    • section 2 E/AD/BE/BDG/BF/DE/CF

  • test 61

    • section 1 D/BF/ADG/CF/DF/DF/DE

    • section 2 A/CF/AD/CDG/CD/AB/CE

  • test 62

    • section 1 B/CE/CDH/CE/CE/DF/CD

    • section 2 E/AE/CF/BEG/CF/CF/CE

  • test 63

    • section 1 A/CD/BDG/AF/CE/AD/BD

    • section 2 A/CE/AF/BDI/EF/CE/CE

  • test 64

    • section 1 A/AD/ADG/AD/CF/AF/DE

    • section 2 C/A/AE/AEG/AB/BF/BF

  • test 65

    • section 1 B/BD/CEH/BE/EF/BE/BE

    • section 2 B/CD/CE/CDH/EF/AD/BC

  • test 66

    • section 1 B/AF/AEH/CD/DE/CE/BF

    • section 2 D/CF/CE/AFH/AC/BC/AD

  • test 67

    • section 1 C/AF/ADH/BD/DF/BC/AB

    • section 2 E/AF/AD/ADI/CE/CD/BC

  • test 68

    • section 1 B/BE/CDI/AF/CE/AD/BE

    • section 2 C/A/CE/CDH/AE/BD/CD

  • test 69

    • section 1 C/BD/CFH/CF/BF/BD/AB

    • section 2 B/BD/AD/CFG/AB/AD/AF

  • test 70

    • section 1 B/AD/BDI/AB/BD/CE/AF

    • section 2 B/CE/BD/BEH/BF/EF/AE

  • test 71

    • section 1 C/BD/ADG/AE/BC/BD/AD

    • section 2 C/AD/CE/CEG/DE/DF/AB

  • test 72

    • section 1 D/AF/CFI/AE/CD/BD/BD

    • section 2 E/BF/BE/CEG/DE/EF/AC

  • test 73

    • section 1 B/BE/ADG/AE/CE/AD/BD

    • section 2 D/AD/BE/CDG/BF/DF/BF

  • test 74

    • section 1 D/CE/AEH/BE/EF/CF/AB

    • section 2 D/C/CE/BEI/DE/BD/DF

  • test 75

    • section 1 D/AD/ADH/AB/DF/DE/CE

    • section 2 C/BF/BF/AFG/DE/CD/AD

  • test 76

    • section 1 A/AD/BFG/CD/CD/BC/AF

    • section 2 A/AF/AD/ADG/DF/CF/BC

  • test 77

    • section 1 B/CE/BDG/CF/AD/AE/AE

    • section 2 B/BD/AD/BDI/BC/AC/CE

  • test 78

    • section 1 B/BD/CFG/CE/DE/BE/CE

    • section 2 E/A/BF/CDG/BE/AC/DF

  • test 79

    • section 1 D/BF/CDH/CE/BD/CD/CE

    • section 2 A/AF/AE/CEG/AC/CE/BF

  • test 80

    • section 1 A/BF/CEG/BE/AD/DE/BD

    • section 2 C/BD/CE/AEH/CD/BD/BD

  • test 81

    • section 1 B/CE/BDI/AE/AE/DF/BD

    • section 2 C/BF/CE/CDI/AC/DE/BF

  • test 82

    • section 1 C/AD/CEH/BD/BD/BD/DE

    • section 2 C/C/AF/CDH/CD/CE/CE

  • test 83

    • section 1 E/AD/CEG/AB/AD/CE/AE

    • section 2 A/CD/CD/CEG/BE/BD/AE

  • test 84

    • section 1 A/BF/CFG/DF/AD/BF/BE

    • section 2 D/CF/BF/CDH/CF/DE/AC

  • test 85

    • section 1 D/BD/CEH/AC/CE/AB/CF

    • section 2 B/BE/AE/CFG/CF/BC/AF

  • test 86

    • section 1 C/AE/CFH/DE/AB/CF/CD

    • section 2 A/CE/BD/AF/BF/DF/DE

  • test 87

    • section 1 C/BD/AEI/AC/CF/BE/CD

    • section 2 D/CD/CE/BDG/DF/BE/DE

  • test 88

    • section 1 C/BF/BDG/CE/BD/AD/BD

    • section 2 C/CD/CD/BDG/BD/BC/AC

  • test 89

    • section 1 B/CD/AEG/BF/CD/AF/BF

    • section 2 C/CE/CD/ADI/AE/AD/BE

  • test 90

    • section 1 B/AE/BDH/AC/BD/AE/CF

    • section 2 B/B/CD/ADH/BC/CE/DE

  • test 91

    • section 1 D/AF/CEH/BF/AD/DF/BD

    • section 2 B/CF/BD/CDG/CF/BE/BD

  • test 92

    • section 1 C/BD/BFG/CE/BF/CD/BC

    • section 2 E/BE/AF/CDI/DF/CD/EF

  • test 93

    • section 1 A/AE/ADG/BE/CD/CD/CF

    • section 2 E/AE/CE/AEH/AE/AF/EF

  • test 94

    • section 1 A/AF/CDI/CE/DF/CF/DF

    • section 2 D/BE/CE/BDH/AD/CF/EF

  • test 95

    • section 1 D/BD/CDH/CD/AE/DE/BF

    • section 2 D/C/BF/CFH/EF/AC/CD

  • test 96

    • section 1 E/CD/BEI/BE/DF/AB/DF

    • section 2 B/AE/BF/AEI/AE/AD/EF

  • test 97

    • section 1 C/CE/CDG/BE/AB/AC/BE

    • section 2 D/E/CF/BFG/DF/AE/CF

  • test 98

    • section 1 D/BE/CDH/BE/AD/DF/BE

    • section 2 E/AD/BE/BFG/CF/BC/BF

  • test 99

    • section 1 C/BF/CFH/DF/BE/DF/BD

    • section 2 E/D/CF/AEH/BE/BD/BF

  • test 100

    • section 1 A/BE/CDI/BF/AD/CF/BD

    • section 2 B/AD/BD/AFH/DF/CD/AB

  • test 101

    • section 1 A/BF/BFH/CF/CE/DE/BE

    • section 2 C/E/AD/CFI/DF/AC/BE

  • test 102

    • section 1 C/BF/CEI/AE/CD/BC/DF

    • section 2 A/BD/BD/BFG/BD/BF/CD

  • test 103

    • section 1 D/BE/CFG/BE/BF/AF/CE

    • section 2 E/C/BD/CFG/AD/AC/BE

  • test 104

    • section 1 B/AE/CEG/AB/AF/AC/DF

    • section 2 C/CF/AE/BDI/BD/BE/EF

  • test 105

    • section 1 E/BD/AFG/BD/CD/BD/BD

    • section 2 A/A/CF/AEI/CE/BD/DF

  • test 106

    • section 1 A/BF/BDI/AC/DF/CE/AC

    • section 2 C/AE/BF/AFH/CE/DF/CF

  • test 107

    • section 1 B/BF/BFI/EF/AB/BC/BF

    • section 2 B/B/AF/ADG/AD/AD/BC

  • test 108

    • section 1 C/BE/BEI/CF/CF/AD/CE

    • section 2 A/CD/BD/CDI/DF/BC/BF

  • test 109

    • section 1 D/CD/BDG/AD/AC/CE/BF

    • section 2 A/C/BF/BEG/CE/DF/CE

  • test 110

    • section 1 C/AF/CFH/BF/AD/EF/CE

    • section 2 D/CD/CE/CEG/AC/BF/BC

  • test 111

    • section 1 E/AE/ADG/DF/CE/BE/BE

    • section 2 C/C/AF/AFG/AC/CE/BC

  • test 112

    • section 1 D/BD/CDH/EF/EF/DF/BE

    • section 2 C/BF/BD/AFH/BD/BC/BF

  • test 113

    • section 1 B/BF/CDG/DE/AB/DF/BC

    • section 2 D/D/BD/AEH/AD/DE/DE

  • test 114

    • section 1 A/AE/AEI/EF/AF/DF/BC

    • section 2 A/AE/BE/CDH/BD/AB/DF

  • test 115

    • section 1 C/AF/AEI/CE/BE/AE/AF

    • section 2 C/E/BE/BEI/BD/DE/AC

  • test 116

    • section 1 A/BF/BDG/CF/BE/BF/CD

    • section 2 A/BD/CF/BEG/CE/BE/BD

  • test 117

    • section 1 C/BD/CDG/BE/CD/DF/CD

    • section 2 B/C/BE/AFG/AC/DF/AF

  • test 118

    • section 1 B/AD/BFI/DF/EF/AD/DF

    • section 2 B/BE/AF/ADH/EF/BF/CE

  • test 119

    • section 1 D/BE/CEG/AE/BC/AC/AC

    • section 2 C/E/AF/AEG/AD/CF/BD

  • test 120

    • section 1 A/AE/BDI/BE/EF/AF/BD

    • section 2 C/CF/AD/ADG/CE/BD/CD

  • test 121

    • section 1 E/AD/CDH/DE/BF/CF/EF

    • section 2 D/C/AF/CFG/BC/EF/DF

  • test 122

    • section 1 C/AD/BFH/AE/AE/DE/CD

    • section 2 A/AD/BE/BDH/CF/AB/CE

  • test 123

    • section 1 B/CF/CFH/AF/BD/BE/CD

    • section 2 D/B/BD/BEI/CF/AD/BE

  • test 124

    • section 1 D/BE/CDI/AC/CF/CE/BD

    • section 2 D/AF/CD/BDI/CE/EF/CD

  • test 125

    • section 1 B/BE/AFG/AB/BD/CF/BD

    • section 2 B/D/CE/CEH/BF/DF/DE

  • test 126

    • section 1 E/AF/BFH/AD/EF/DE/AB

    • section 2 C/AE/CE/BFG/BD/AB/AE

  • test 127

    • section 1 E/CD/AFG/AC/DE/BD/BC

    • section 2 A/E/CD/AEG/CF/AE/BC

  • test 128

    • section 1 C/BE/CDH/BF/CE/BC/DF

    • section 2 B/AD/CD/BFG/AD/BF/AC

  • test 129

    • section 1 D/CD/ADG/AF/AD/AF/AE

    • section 2 B/D/CF/CFH/AC/AF/CD

解析

Useful Commands

Git

When you are using Git, you may encounter some problems. Here are some useful commands to help you solve them.

  1. Set the postBuffer size to 500MB
    When meeting:
1
2
3
4
5
6
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet
Writing objects: 100% (635/635), 2.07 MiB | 2.53 MiB/s, done.
Total 635 (delta 81), reused 0 (delta 0), pack-reused 0
fatal: the remote end hung up unexpectedly
Everything up-to-date

You can set the postBuffer size to 500MB:

1
git config http.postBuffer 524288000

Add Dark Mode to Your Website

Add Dark Mode to Your Website

Add dark mode to your website using DarkReader. This is a simple way to add dark mode to your website.

1
2
3
4
5
6
7
8
9
{% if jekyll.environment == 'production' -%}
<!-- dark theme using DarkReader -->
<script src="//unpkg.com/darkreader@4.9.40/darkreader.js"></script>
<script type="text/javascript">
DarkReader.setFetchMethod(window.fetch); // Fix to remedy CORS errors in chrome console
//DarkReader.enable();
DarkReader.auto( {brightness: 100, contrast: 90, sepia: 10} );
</script>
{%- endif %}


Reference:
reference the implementation from link

Add comments in blog posts on GitHub Pages websites

  • This, https://alanzeng.com/, is my Github Pages static website and blog, powered by the Jekyll static site generator.
  • I’ve added GitHub-Issue-based comments to the bottom of this website using the plugin called utterances,
    which is totally awesome and makes it trivial to add a beautiful and user-friendly commenting system to your static website or blog.

utteranc config

Visit Utterances main page & installation info.: https://utteranc.es/
image-20240806185908366


repo:设置存放评论的仓库

Utterances 使用 Github Issues 存储评论,所以需要一个仓库。你可以新建一个公开仓库专门用来放评论,也可以使用原有的仓库。要设置存放评论的仓库只需要将 repo=”username/reponame” 这一行中的 username 改为你的 GitHub 用户名,reponame 改为你的仓库名,其它不变。

仓库需满足以下条件:

  • 仓库必须为公开仓库,私有仓库访客无法查看对应 Issues 上的评论。
  • 确保在仓库中安装了 Utterances 的 GitHub App,或是你自己注册的 GitHub App(自托管),否则用户将无法发表评论。
  • 如果你的仓库是派生 (fork) 出的,请在仓库的 Settings 选项确认 Features 区 Issues 已勾选。

issue-term:博客文章和 Issue 映射

Utterances 使用以下几种规则建立博客文章和 GitHub Issues 的映射:

  • Issue 标题包含页面路径名(issue-term=”pathname”)
  • Issue 标题包含页面 URL(issue-term=”url”)
  • Issue 标题包含页面标题(issue-term=”title”)
  • Issue 标题包含页面 og:title(issue-term=”og:title”)
  • 特定的 issue 编号(issue-number=”具体数字”)
  • Issue 标题包含特定项(issue-term=”你设置的特定内容”)

具体细节参考上图


label:Issue 标签

如果你使用原有的仓库,但是担心 Issues 页面评论和问题混杂在一起,Utterances 支持设置标签(Label)来区分它们。设置 label=”你的标签内容”,Utterances 将在创建 issue 时使用你设置的标签。

  • 标签名区分大小写。
  • 标签必须存在于你的仓库中(须提前在 GitHub Issues 页面创建好,不能使用不存在的标签)。
  • 标签名支持 Emoji。例如:label=”💬”

theme:主题

Utterances 有多种主题,其中包括多款夜间模式主题。

  • GitHub Light:theme=”github-light”
  • GitHub Dark:theme=”github-dark”
  • GitHub Dark Orange:theme=”github-dark-orange”
  • Icy Dark:theme=”icy-dark”
  • Dark Blue:theme=”dark-blue”
  • Photon Dark:theme=”photon-dark”

配置

1
2
3
4
5
6
7
<script src="https://utteranc.es/client.js"
repo="[ENTER REPO HERE]"
issue-term="pathname"
theme="github-light"
crossorigin="anonymous"
async>
</script>

将这部分代码粘贴进_layout/post.html中, 大功告成!



> referenced: > - [link](https://gabrielstaples.com/github-pages-comments/#gsc.tab=0) > - [link](https://blog.njilc.com/post/self-hosted-utterances-tutorial)