跳到主要内容
  1. Posts/

自用短代码 & 零碎代码集合

整理一下方便我自己抄作业。

·· 2923 字·6 分钟

其实之前在别的博文里都写过了,但觉得还是集合到一篇里比较好抄作业。

注意事项:

  • CSS 代码都折叠了,因为一般比较长而且我抄作业用不上()。
  • 所有短代码的双花括号都用单花括号代替,抄作业时注意要使用{{ }}
  • 有时候代码里会出现<br />,单纯是因为我不想在快捷保存的时候因为过于智能的 VSCode 导致原本应该分成好几行的代码都糊到一起,可以无视。

代码基本都来自 ChatGPT 和网友作业,感谢大家。

Congo 和 Hugo 自带的短代码 #

首先是这个页面里有用的代码,大多复制自 Congo example site 源代码。

脚注 #

按文档所说,其实<footer>也可以用,但发现它框起来的内容(1)不会斜体,(2)会自动换新行,觉得对我来说还是<cite>好用。

「血中郁火,不肯认命;心头纵剑,不能辍锋。」<br />
——<cite>《辍锋》[^1]</cite>

[^1]: 词作青释,[歌曲链接](https://5sing.kugou.com/fc/14556253.html)。

效果展示

「血中郁火,不肯认命;心头纵剑,不能辍锋。」
——《辍锋》1

代码高亮 #

{< highlight html "linenos=table, hl_lines=4 7-9" >}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>示例HTML5文档</title>
  </head>
  <body>
    <p>测试</p>
  </body>
</html>
{< /highlight >}

效果展示

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>示例HTML5文档</title>
</head>
<body>
  <p>测试</p>
</body>
</html>

其他:缩写、下标、上标、键盘、标记 #

<abbr title="Graphics Interchange Format">GIF</abbr> 是一种位图图像格式。
H<sub>2</sub>O <br />
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup> <br />
按下 <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd> 结束会话。
大多数<mark>蝾螈</mark>是夜行动物,捕食昆虫、蠕虫和其他小动物。

效果展示

GIF 是一种位图图像格式。

H2O

Xn + Yn = Zn

按下 CTRL+ALT+Delete 结束会话。

大多数蝾螈是夜行动物,捕食昆虫、蠕虫和其他小动物。


另外就是 Congo 自带的短代码。里面还有其他挺多有用的,但我不常用就不汇集到这里来了。

Icon & alert #

{< icon "full-moon" >},我就是用这个 icon 短代码添加了很多 emoji,因为网页显示出来的 emoji 样式不好看。

{< alert >}
**警告!** 这个操作是破坏性的!
{< /alert >}
&nbsp; // 这个只是为了空行,实际使用时无需添加
{< alert "circle-info" >}
我直到现在才发现要把图标名称放在双引号里,但看了一下我没加双引号也成功显示了,神奇……
{< /alert >}

效果展示

,我就是用这个 icon 短代码添加了很多 emoji,因为网页显示出来的 emoji 样式不好看。

警告! 这个操作是破坏性的!
 
我直到现在才发现要把图标名称放在双引号里,但看了一下我没加双引号也成功显示了,神奇……

文字相关 #

折叠 & 模糊 #

参考作业:Hugo | 在 Stack 主题上可行的短代码们,有非常多的好短代码!

{< detail "折叠" >}
示例
{< /detail >}

<span class="blur">模糊</span>

这个模糊在深色模式下会失效。因为 Congo 这个主题似乎设置了文字在某些时候会变白,所以直接抄作业的 CSS 代码来我会看到纯白一片,修改之后就深色模式下失效了,目前还在思考怎么办。 好像不失效了,不确定再看看。有遇到模糊失效的话请务必告知我。

效果展示

折叠示例

模糊

引用 #

由于直接用 markdown 语法引用会出现我不想要的双引号,像这样:

> Congo 自带的 markdown 引用

Congo 自带的 markdown 引用

所以我进行了一些修改。

assets/css/custom.css内添加:
.custom-blockquote {
  quotes: none;
}

.custom-blockquote:before,
.custom-blockquote:after {
  content: none;
}

这个代码的区分非常复杂,让我直接展示。

修改前

<blockquote>没修改的单行引用</blockquote>

<blockquote>

没修改的前后空行的单行引用

</blockquote>

<blockquote>
没修改的  
多行引用
</blockquote>

<blockquote>

前后空行的没修改的  
多行引用

</blockquote>
没修改的单行引用

没修改的前后空行的单行引用

没修改的 多行引用

前后空行的没修改的
多行引用

可以看到情况相当混乱。一空行引号就会重新冒出来,很不友好。

修改后

<blockquote class="custom-blockquote">修改后的单行引用</blockquote>

<blockquote class="custom-blockquote">

修改后的前后空行的单行引用

</blockquote>

<blockquote class="custom-blockquote">
修改后的  
多行引用
</blockquote>

<blockquote class="custom-blockquote">

前后空行的修改后的  
多行引用

</blockquote>
修改后的单行引用

修改后的前后空行的单行引用

修改后的 多行引用

前后空行的修改后的
多行引用

这就省心多了。而且不空行的话无法使用 markdown 语法直接空两格换行,我还是喜欢空行的。

Neodb 卡片 #

参考作业:Hi, NeoDB

{< neodb "https://book.douban.com/subject/24882304/" >}

效果展示

鉴于有墙在,我的 Neodb 卡片不仅刷不出来还会报错导致无法本地预览,暂且先这样。

{< neodb “https://book.douban.com/subject/24882304/" >}

友链 #

参考作业:第一份友链短代码,第二份友链格式短代码

{< friend name="夜航南飞" url="https://banshou-air.netlify.app/" avatar="https://banshou-air.netlify.app/img/logo.png" bio="The world is beautiful. Let me come through it to you." >}

{< friend-css >}

效果展示

图片相关 #

首先是 Hugo 自带的 figure 短代码,事实上 Congo 修改了 Hugo 内置的 figure 短代码,但我感觉区别不大)。

表情包 #

参考作业:Hugo 表情包 Shortcode

{< meme name="nice2" ext="gif" width="150" >}

实际使用偶尔会有一些微妙的 bug,需要随机应变地修改。

效果展示

nice2

图片文字并列布局 #

写博文时直接在.md文件内添加 HTML 代码:

<div class="flex-container">
  <div class="flex-text">
    <p class="flex-start">第一行</p>
    <p>第二行</p>
    <p class="flex-end">最后一行</p>
  </div>
  <img src="http://image.url/" class="flex-image" />
</div>
assets/css/custom.css内添加:
.flex-container {
  display: flex;
  align-items: flex-start;
  margin: 15px 0;
}

.flex-image {
  max-width: 300px; /* 根据需要调整图片宽度 */
  margin-left: 20px; /* 图文间距 */
  margin-top: 0;
  margin-bottom: 0;
}

.flex-text {
  flex: 1;
}

.flex-text p {
  margin-bottom: 1.25em;
}

/* 以下代码是我自行添加的,为确保第一行前面和最后一行后面不会多出奇怪的空白 */
.flex-start {
  margin-top: 0 !important;
}

.flex-end {
  margin-bottom: 0 !important;
}

/* 响应式设计 */
@media (max-width: 600px) {
  .flex-container {
    flex-direction: column; /* 垂直排列 */
  }

  .flex-image {
    margin-left: 0; /* 取消左边距 */
    margin-top: 20px; /* 增加上边距,分隔内容 */
    max-width: 100%; /* 使图片宽度自适应容器 */
  }
}

效果展示

图片在左的布局可以通过一些小改动轻松地达成,即将插入图片的代码img src="http://image.url/" class="flex-image"放到插入文字的代码div class="flex-text"上方(注意要加尖括号,这里没加是因为这段话在HTML代码内,加上尖括号就也会被识别,就无法显示代码了),再对 CSS 进行一些小改动,如把.flex-image {margin-left: 20px;}里的margin-left改成margin-right

如果图片在右和图片在左的布局都要使用,那么在 HTML 代码部分为两种布局分别设置class="flex-image-left"class="flex-image-right",再在 CSS 代码里为两个 class 分别设置样式即可。

图片来源

多图并列布局 #

利用 figure 短代码,写博文时直接在.md文件内添加 HTML 代码:

<div class="image-row">
  {<figure src="http://image1.url/" title="image1" caption="image1">}
  {<figure src="http://image2.url/" title="image2" caption="image2">}
  {<figure src="http://image3.url/" title="image3" caption="image3">}
</div>
assets/css/custom.css内添加:
.image-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around; /* 可调整为 space-between, space-evenly, center 等 */
  margin: 20px 0;
}

.image-row figure {
  flex: 1 1 calc(33.333% - 20px); /* 三张图片 */
  margin: 1px;
  text-align: center;
}

.image-row img {
  width: 100%;
  height: auto;
}

.image-row figcaption {
  margin-top: 8px;
  font-size: 0.9em;
  color: #666;
}

/* 响应式设计:根据屏幕尺寸调整图片宽度 */
@media (max-width: 1024px) {
  .image-row figure {
    flex: 1 1 calc(50% - 20px); /* 两张图片 */
  }
}

@media (max-width: 768px) {
  .image-row figure {
    flex: 1 1 calc(100% - 20px); /* 一张图片 */
  }
}

效果展示

最多支持
三张图
并列
两张图
也行
一张图也行,但都一张图了为什么还要用这个代码呢?

图片来源:小八吉伊飞鼠,按三张图布局从左到右排列。


  1. 词作青释,歌曲链接。 ↩︎