posts: 添加关于Github Education免费获取.tech域名的文章和相关图片资源
|
After Width: | Height: | Size: 27 KiB |
BIN
src/content/assets/images/2025-08-11-21-49-27-image.png
Normal file
|
After Width: | Height: | Size: 180 KiB |
BIN
src/content/assets/images/2025-08-11-21-50-09-image.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
src/content/assets/images/2025-08-11-21-50-20-image.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/content/assets/images/2025-08-11-21-50-35-image.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/content/assets/images/2025-08-11-21-51-05-image.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
src/content/assets/images/2025-08-11-21-53-59-image.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
src/content/assets/images/2025-08-11-21-54-26-image.png
Normal file
|
After Width: | Height: | Size: 232 KiB |
|
After Width: | Height: | Size: 23 KiB |
BIN
src/content/assets/images/2025-08-11-21-55-32-image.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
@@ -3,15 +3,19 @@ title: Expressive Code 记录
|
||||
published: 2025-08-11
|
||||
description: 如何使用Expressive Code 代码块及迁移踩坑记录
|
||||
tags: [Markdown, Blogging, Demo]
|
||||
image: ''
|
||||
category: Default
|
||||
draft: false
|
||||
---
|
||||
|
||||
> 本文非站长原创,由 [Expressive code by yCENzh · Pull Request #27 · afoim/fuwari](https://github.com/afoim/fuwari/pull/27) 提供
|
||||
|
||||
:::note
|
||||
原文链接:[Expressive Code Example](https://14131413.xyz/posts/default/expressive-code/)
|
||||
:::
|
||||
|
||||
> ### 踩坑
|
||||
>
|
||||
> 1. 首先按照fuwari原仓库commit进行修改,发现ac没推上去,构建第一次失败
|
||||
> 2. 推完ac后发现在ec中引用了三个插件,但是pnpm astro add并没有自动安装,第二次修改
|
||||
> 3. 现在正常跑起来了,但是由于2x主题的原因,样式很奇怪,再改一次
|
||||
@@ -26,12 +30,14 @@ Here, we'll explore how code blocks look using [Expressive Code](https://express
|
||||
## Expressive Code
|
||||
|
||||
### Syntax Highlighting
|
||||
|
||||
### 语法高亮
|
||||
|
||||
[Syntax Highlighting](https://expressive-code.com/key-features/syntax-highlighting/)
|
||||
[语法高亮](https://expressive-code.com/key-features/syntax-highlighting/)
|
||||
|
||||
#### Regular syntax highlighting
|
||||
|
||||
#### 常规语法高亮
|
||||
|
||||
```js
|
||||
@@ -39,15 +45,17 @@ console.log('This code is syntax highlighted!')
|
||||
```
|
||||
|
||||
### Editor & Terminal Frames
|
||||
|
||||
### 编辑器与终端框架
|
||||
|
||||
[Editor & Terminal Frames](https://expressive-code.com/key-features/frames/)
|
||||
[编辑器与终端框架](https://expressive-code.com/key-features/frames/)
|
||||
|
||||
#### Code editor frames
|
||||
|
||||
#### 代码编辑器框架
|
||||
|
||||
```js title="my-test-file.js"
|
||||
```js
|
||||
console.log('Title attribute example')
|
||||
```
|
||||
|
||||
@@ -59,6 +67,7 @@ console.log('Title attribute example')
|
||||
```
|
||||
|
||||
#### Terminal frames
|
||||
|
||||
#### 终端框架
|
||||
|
||||
```bash
|
||||
@@ -67,35 +76,38 @@ echo "This terminal frame has no title"
|
||||
|
||||
---
|
||||
|
||||
```powershell title="PowerShell terminal example"
|
||||
```powershell
|
||||
Write-Output "This one has a title!"
|
||||
```
|
||||
|
||||
#### Overriding frame types
|
||||
|
||||
#### 覆盖框架类型
|
||||
|
||||
```sh frame="none"
|
||||
```sh
|
||||
echo "Look ma, no frame!"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```ps frame="code" title="PowerShell Profile.ps1"
|
||||
```ps
|
||||
# Without overriding, this would be a terminal frame
|
||||
function Watch-Tail { Get-Content -Tail 20 -Wait $args }
|
||||
New-Alias tail Watch-Tail
|
||||
```
|
||||
|
||||
### Text & Line Markers
|
||||
|
||||
### 文本与行标记
|
||||
|
||||
[Text & Line Markers](https://expressive-code.com/key-features/text-markers/)
|
||||
[文本与行标记](https://expressive-code.com/key-features/text-markers/)
|
||||
|
||||
#### Marking full lines & line ranges
|
||||
|
||||
#### 标记整行与行范围
|
||||
|
||||
```js {1, 4, 7-8}
|
||||
```js
|
||||
// Line 1 - targeted by line number
|
||||
// Line 2
|
||||
// Line 3
|
||||
@@ -107,9 +119,10 @@ New-Alias tail Watch-Tail
|
||||
```
|
||||
|
||||
#### Selecting line marker types (mark, ins, del)
|
||||
|
||||
#### 选择行标记类型(mark, ins, del)
|
||||
|
||||
```js title="line-markers.js" del={2} ins={3-4} {6}
|
||||
```js
|
||||
function demo() {
|
||||
console.log('this line is marked as deleted')
|
||||
// This line and the next one are marked as inserted
|
||||
@@ -120,9 +133,10 @@ function demo() {
|
||||
```
|
||||
|
||||
#### Adding labels to line markers
|
||||
|
||||
#### 为行标记添加标签
|
||||
|
||||
```jsx {"1":5} del={"2":7-8} ins={"3":10-12}
|
||||
```jsx
|
||||
// labeled-line-markers.jsx
|
||||
<button
|
||||
role="button"
|
||||
@@ -139,9 +153,10 @@ function demo() {
|
||||
```
|
||||
|
||||
#### Adding long labels on their own lines
|
||||
|
||||
#### 在独立行添加长标签
|
||||
|
||||
```jsx {"1. Provide the value prop here:":5-6} del={"2. Remove the disabled and active states:":8-10} ins={"3. Add this to render the children inside the button:":12-15}
|
||||
```jsx
|
||||
// labeled-line-markers.jsx
|
||||
<button
|
||||
role="button"
|
||||
@@ -161,6 +176,7 @@ function demo() {
|
||||
```
|
||||
|
||||
#### Using diff-like syntax
|
||||
|
||||
#### 使用类似 diff 的语法
|
||||
|
||||
```diff
|
||||
@@ -181,9 +197,10 @@ this is a regular line
|
||||
```
|
||||
|
||||
#### Combining syntax highlighting with diff-like syntax
|
||||
|
||||
#### 结合语法高亮与类似 diff 的语法
|
||||
|
||||
```diff lang="js"
|
||||
```diff
|
||||
function thisIsJavaScript() {
|
||||
// This entire block gets highlighted as JavaScript,
|
||||
// and we can still add diff markers to it!
|
||||
@@ -193,9 +210,10 @@ this is a regular line
|
||||
```
|
||||
|
||||
#### Marking individual text inside lines
|
||||
|
||||
#### 标记行内特定文本
|
||||
|
||||
```js "given text"
|
||||
```js
|
||||
function demo() {
|
||||
// Mark any given text inside lines
|
||||
return 'Multiple matches of the given text are supported';
|
||||
@@ -203,23 +221,26 @@ function demo() {
|
||||
```
|
||||
|
||||
#### Regular expressions
|
||||
|
||||
#### 正则表达式
|
||||
|
||||
```ts /ye[sp]/
|
||||
```ts
|
||||
console.log('The words yes and yep will be marked.')
|
||||
```
|
||||
|
||||
#### Escaping forward slashes
|
||||
|
||||
#### 转义正斜杠
|
||||
|
||||
```sh /\/ho.*\//
|
||||
```sh
|
||||
echo "Test" > /home/test.txt
|
||||
```
|
||||
|
||||
#### Selecting inline marker types (mark, ins, del)
|
||||
|
||||
#### 选择行内标记类型(mark, ins, del)
|
||||
|
||||
```js "return true;" ins="inserted" del="deleted"
|
||||
```js
|
||||
function demo() {
|
||||
console.log('These are inserted and deleted marker types');
|
||||
// The return statement uses the default marker type
|
||||
@@ -228,12 +249,13 @@ function demo() {
|
||||
```
|
||||
|
||||
## Collapsible Sections
|
||||
|
||||
## 可折叠部分
|
||||
|
||||
[Collapsible Sections](https://expressive-code.com/plugins/collapsible-sections/)
|
||||
[可折叠部分](https://expressive-code.com/plugins/collapsible-sections/)
|
||||
|
||||
```js collapse={1-5, 12-14, 21-24}
|
||||
```js
|
||||
// All this boilerplate setup code will be collapsed
|
||||
import { someBoilerplateEngine } from '@example/some-boilerplate'
|
||||
import { evenMoreBoilerplate } from '@example/even-more-boilerplate'
|
||||
@@ -261,15 +283,17 @@ engine.shutdown({ reason: 'End of example boilerplate code' })
|
||||
```
|
||||
|
||||
## Line Numbers
|
||||
|
||||
## 行号
|
||||
|
||||
[Line Numbers](https://expressive-code.com/plugins/line-numbers/)
|
||||
[行号](https://expressive-code.com/plugins/line-numbers/)
|
||||
|
||||
### Displaying line numbers per block
|
||||
|
||||
### 按代码块显示行号
|
||||
|
||||
```js showLineNumbers
|
||||
```js
|
||||
// This code block will show line numbers
|
||||
console.log('Greetings from line 2!')
|
||||
console.log('I am on line 3')
|
||||
@@ -277,16 +301,17 @@ console.log('I am on line 3')
|
||||
|
||||
---
|
||||
|
||||
```js showLineNumbers=false
|
||||
```js
|
||||
// Line numbers are disabled for this block
|
||||
console.log('Hello?')
|
||||
console.log('Sorry, do you know what line I am on?')
|
||||
```
|
||||
|
||||
### Changing the starting line number
|
||||
|
||||
### 更改起始行号
|
||||
|
||||
```js showLineNumbers startLineNumber=5
|
||||
```js
|
||||
console.log('Greetings from line 5!')
|
||||
console.log('I am on line 6')
|
||||
```
|
||||
|
||||
52
src/content/posts/ghedu-free-tech.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: 有Github Education?来嫖一年免费的.tech域名!
|
||||
published: 2025-08-11T21:45:08
|
||||
description: '昨天也是成功通过了Github Edu验证,发现可以白嫖一年免费的.tech域名!'
|
||||
image: '../assets/images/2025-08-11-21-47-14-9824664fa225fd32def503d0c3bfef12.png'
|
||||
tags: [Github Edu]
|
||||
category: '记录'
|
||||
draft: false
|
||||
lang: ''
|
||||
---
|
||||
|
||||
# 正式开始
|
||||
|
||||
> 请先通过[这篇文章](/posts/github-edu/)拿到Github Edu~
|
||||
|
||||
然后前往 [GitHub Student Developer Pack - GitHub Education](https://education.github.com/pack)
|
||||
|
||||
一直往下滚,直到找到 .tech 字样的项目,点击蓝色链接进入
|
||||
|
||||

|
||||
|
||||
输入域名,然后添加到购物车
|
||||
|
||||

|
||||
|
||||
点击结账
|
||||
|
||||

|
||||
|
||||
在这里登录Github账户(我已经免费拿一个了所以拿不了噜~)
|
||||
|
||||

|
||||
|
||||
不出意外你的Total应该是0,点击就购买成功!
|
||||
|
||||
---
|
||||
|
||||
接下来来到 https://controlpanel.tech/
|
||||
|
||||
登录你的账户
|
||||
|
||||
输入你的域名并跳转到控制台
|
||||
|
||||

|
||||
|
||||
改NS到Cloudflare~
|
||||
|
||||

|
||||
|
||||
当当当当~激活咯~
|
||||
|
||||

|
||||