最近使用Astro框架重新搭了博客,演示一下各组件效果
Markdown基本语法#
1. 标题#
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题markdown在 Typora 中建议开启 严格模式, 即不应为 #标题, 应为 # 标题.
应该要手动补上空格, 使得 Markdown 语法在其他文本编辑器上兼容.
此主题中只有二级及以下标题会在目录与大纲分级显示, 可以跳转.
2. 强调#
**欢迎报考吉林大学!** (我喜欢用这种)
__欢迎报考吉林大学!__markdown或者选中想要强调的文字按下 Ctrl + B.
E.G.
欢迎报考吉林大学!
3. 斜体#
*欢迎大佬来浇浇我各种知识* (我喜欢用这种)
_欢迎大佬来浇浇我各种知识_
**_欢迎大佬来浇浇我各种知识_**markdown或者选中想要强调的文字按下 Ctrl + I.
E.G. 欢迎大佬来浇浇我各种知识 欢迎大佬来浇浇我各种知识
4. 删除线#
~~我宣布个事儿, 我是Sabiyary!~~markdownE.G.
我宣布个事儿, 我是Sabiyary!
5. *高亮#
(注意: 此为扩展语法)
==我喜欢黄色, 也喜欢绿色==markdownE.G. ==我喜欢黄色, 也喜欢绿色==
6. 单行代码#
`sudo rm -rf /*`markdownE.G.
sudo rm -rf /* (没事别乱敲这个! )
“请输入管理员密码: (闪烁的光标)“
7.代码块#
```
// 这里就可以开始输入你要的代码了
#include <stdio.h>
int mian()
{
print(“Hello, world!\n");
retrun O;
}
``` // (这三个"`"文本编辑器会帮你自动补全 一般不用手动输)cE.G.
function a() {
console.log("hello world!")
}javascript8. 引用#
> 24岁, 是学生.
> > 学生特有的无处不在(恼)markdown引用是可以嵌套的!
E.G.
18岁, 是学生.
学生特有的无处不在(恼)
9. 无序列表#
- 一颗是枣树 (我喜欢用这种)
+ 另一颗还是枣树
* (其实这种也可以, 不过由于在 Typora 中很难单个输入, 故不常用)markdown三种前置符都可以, 敲回车会自动补全, 可在 Typora 设置中调整补全的符号, 敲回车后按下 Tab 会缩进一级.
E.G.
- 一颗是枣树
- 另一颗还是枣树
10. 有序列表#
我来这里就为了三件事:
1. 公平
2. 公平
3. 还是tm的公平!markdown敲回车会自动补全, 敲回车后按下 Tab 会缩进一级.
E.G. 我来这里就为了三件事:
- 公平
- 公平
- 还是tm的公平!
11. *上标#
(注意: 此为扩展语法)
C语言中int的上限是 2^31^ - 1 = 2147483647markdownE.G.
C语言中 int 的上限是 231 - 1 = 2147483647
12. *下标#
(注意: 此为扩展语法)
H~2~O 是剧毒的!markdownE.G.
H2O 是剧毒的!
13. *注释#
(注意: 此为扩展语法)
> 今日我们相聚于此, 是为了学习 Markdown 的使用, 它的教程对于全体「观众」而言, 值得足足两个硬币的支持鼓励![^1]
[^1]: 沃兹·基·硕德 改编自「公鸡」普契涅拉.markdown需要在文末写上注释对应的内容,注释显示在文末点击可跳转
E.G.
今日我们相聚于此, 是为了学习 Markdown 的使用, 它的教程对于全体「观众」而言, 值得足足两个硬币的支持鼓励!1
14. 链接#
(注意: 文内跳转为扩展用法)
[bilibili](https://www.bilibili.com/)markdown支持网页链接与文内跳转, 按住 Ctrl 并 单击鼠标左键 即可跳转.
E.G. bilibili ↗
15. 任务列表#
TodoList:
- [ ] 刷B站
- [ ] 写代码
- [x] 起床markdown用 x 代替 [ ] 中的空格来勾选任务列表. 在 Typora 中可以直接用鼠标左键单击勾选框.
E.G. TodoList:
- 刷B站
- 写代码
- 起床
16. 表格#
| 学号 | 姓名 | 年龄 |
| :--- | :---: | ---: |
|114514|田所|24|
|1919810|浩三|25|markdown注:冒号的位置代表着 左对齐、居中、右对齐
第一行为表头, 并由第二行分割线决定对齐方式与长度, 第三行及之后即表格数据 E.G.
| 学号 | 姓名 | 年龄 |
|---|---|---|
| 114514 | 田所 | 24 |
| 1919810 | 浩三 | 25 |
17.图片#
markdown图片的位置使用图床url链接
E.G.

18. 分割线#
***
--- (我喜欢用这种)
___
// (其实按三个及以上都可以)markdown由于 * 与 _ 均会自动补全, 所以我觉得 - 最为方便.
E.G.
19. Emoji表情#
(注意: 英文输入为扩展语法)
:sweat_smile:
:drooling_face:
:clown_face:
// (敲回车或者鼠标点击, 后置的":"一般不需要手动输)plaintext这个功能唯一的要求就是英语水平要高, 或者大概记得各个 Emoji 的英文名.
E.G.
:sweat_smile: :drooling_face: :clown_face:
对于其余普通的 Markdown 文本编辑器, 可以直接将 Emoji 表情复制进来, 这是直接硬编码的 (刻进DNA里)
E.G.
😅🤤🤡
这里分享一个可以复制全Emoji的网站 ↗
20. 内联 HTML 代码#
<div style="text-align:center">
<font style="color:red">我不会 HTML 呜呜呜... 浇浇我</font>
</div>
<center>简单的文字居中也可以这样</center>
<u>我差点忘了还有下划线这东西...</u>html只要你会写, 你完全可以把 Markdown 当作 HTML 来写.
同时, .md 文件可以直接导出成一个网页.
下划线可以选中想要下划的文字按下 Ctrl + U.
E.G.
21. 内联LaTeX公式#
(注意: 部分编译器会不识别部分符号)
$\LaTeX$ 是最好用的论文排版语言! 不信你看!
$a^n+b^n=c^n$
$$\sqrt{x} + \sqrt{x^{2}+\sqrt{y}} = \sqrt[3]{k_{i}} - \frac{x}{m}$$markdown用 $ 包围为单条公式, 按下两个 $ 并敲回车即生成公式块.
E.G.
是最好用的论文排版语言! 不信你看!
本次升级带来的新特性,体验一下吧
Astro组件—容器#
Card#
import { Card } from 'astro-pure/user'
<Card
as='a'
href='#card'
heading='Lorem ipsum'
subheading='Lorem ipsum dolor sit amet, vidit suscipit at mei.'
date='August 2021'
>
You can even contain a list here
</Card>jsx---
import { Card } from 'astro-pure/user'
---
<!-- ... -->
<Card
as='a'
href='#card'
heading='Lorem ipsum'
subheading='Lorem ipsum dolor sit amet, vidit suscipit at mei.'
date='August 2021'
>
You can even contain a list here
</Card>astroCollapse#
import { Collapse } from 'astro-pure/user'
<Collapse title='Lorem ipsum'> Lorem ipsum dolor sit amet, vidit suscipit at mei. </Collapse>
<Collapse title='Lorem ipsum'>
<div slot='before' class='mt-2'>Are you sure you want to see?</div>
<div>Lorem ipsum dolor sit amet, vidit suscipit at mei.</div>
</Collapse>jsxAside#
import { Aside } from 'astro-pure/user'
<Aside>No type selected will default to 'note'. 😉</Aside>
<Aside type="tip">
Other content is also supported in aside! 😍
// ```js
// A code snippet, for example.
// ```
</Aside>
<Aside type='caution' title='You should know it!'>Is your code buggy again? 🤨</Aside>
<Aside type='danger'>Have you used `rm -rf` to clean your computer? 😡</Aside>jsxTabs#
import { Tabs, TabItem } from 'astro-pure/user';
<Tabs>
<TabItem label="Stars">Sirius, Vega, Betelgeuse</TabItem>
<TabItem label="Moons">Io, Europa, Ganymede</TabItem>
</Tabs>jsxMDX Repl#
Hello
<p>Hello</p>htmlimport { MdxRepl } from 'astro-pure/user'
// Width is optional; using width parameter to set
// all elements inside the MDX Repl component.
// (slot desc is not included this parameter)
<MdxRepl width='100%'>
<p>Hello</p>
<Fragment slot='desc'>
```html
<p>Hello</p>
```
</Fragment>
</MdxRepl>jsxAstro组件—列表#
CardList#
A list
- Lorem ipsum
-
Dolor sit amet
import { CardList } from 'astro-pure/user'
<CardList title='A list' list={
[{title: 'I am hidden!'}]
} collapse />
<CardList title='A list' list={
[
{ title: 'Lorem ipsum', link: '#list' },
{ title: 'Dolor sit amet', children: [{
title: 'Vidit suscipit', link: '#'
}] }
]
} />jsxTimeline#
- August 2021Hello
- August 2022World!
import { Timeline } from 'astro-pure/user'
<Timeline events={
[
{ date: 'August 2021', content: 'Hello' },
{ date: 'August 2022', content: '<i>World!</i>' },
]
} />jsxSteps#
How to Yi Jian San Lian:
-
Dian Zan
-
Tou Bi
-
Shou Cang
Or GuanZhu sometimes.
import { Steps } from 'astro-pure/user'
How to Yi Jian San Lian:
<Steps>
1. Dian Zan
2. Tou Bi
3. Shou Cang
Or GuanZhu sometimes.
</Steps>jsxAstro组件—简单文本渲染#
Button#
import { Button } from 'astro-pure/user'
<div class='flex gap-x-2'>
<Button as='div' title='Simple' />
<Button as='a' href='#button' title='Link style' variant='ahead' class='not-prose' />
<Button as='div' title='Back' variant='back' />
<Button as='div' title='Pill style' variant='pill' />
<Button as='div' variant='pill'><i>Italic</i></Button>
</div>jsxSpoiler#
No one can find me. But I am exposed here.
import { Spoiler } from 'astro-pure/user'
<Spoiler>No one can find me.</Spoiler> But I am exposed here.jsxFormatted Date#
import { FormattedDate } from 'astro-pure/user'
<FormattedDate date={new Date('2021-08-01')} dateTimeOptions={{ month: 'short' }} />jsxLabel#
Hello
import { Label } from 'astro-pure/user'
<Label title='Hello' />jsxSVG Loader#
import { Svg } from 'astro-pure/user'
<Svg src={import('@/assets/icons/key.svg?raw')} />jsx资源#
Icon#
Single use:
Preview all icons available (click button to copy):
import { Icon } from 'astro-pure/user'
Single use: <Icon name='rss' class='inline' />
Preview all icons available (click button to copy):
import { Icons as allIcons } from 'astro-pure/libs'
import { Button } from 'astro-pure/user'
<div class='flex flex-wrap gap-2'>
{
Object.keys(allIcons).map(icon => {
const script = `navigator.clipboard.writeText('${icon}');document.dispatchEvent(new CustomEvent('toast',{detail:{message:'Copied "${icon}" to clipboard!'}}))`
return (
<Button as='button' type='button' class='cursor-pointer' onclick={script}>
<Icon slot='before' name={icon} />
<span>{icon}</span>
</Button>
)
})
}
</div>jsx其他高级组件#
GitHub卡片#
import { GithubCard } from 'astro-pure/advanced'
<GithubCard repo='cworld1/astro-theme-pure' />jsx链接预览#
预览内容中插入的链接
import { LinkPreview } from 'astro-pure/advanced'
<LinkPreview href='https://www.cloudflare.com/' />
// `zoomable` option will control mediumzoom tag
// <LinkPreview href='https://www.cloudflare.com/' zoomable={false} />
<LinkPreview href='https://www.cloudflare.com/' hideMedia />jsx二维码生成#
import { QRCode } from 'astro-pure/advanced'
// <QRCode /> // default to render current page link
<QRCode
content='https://github.com/Byforacle/astro-blog'
class='inline-flex max-w-44 p-3 bg-muted rounded-lg border' />jsxFootnotes#
-
沃兹·基·硕德 改编自「公鸡」普契涅拉. ↩

