什么是提示块语法
markdown 中的一种语法,在不同笔记软件中兼容性不同,可能仅支持部分形式。
> [!note]
> 说明内容(Note)
> [!abstract]
> 摘要内容(Abstract)
> [!info]
> 信息说明(Info)
> [!todo]
> 待办事项(Todo)
> [!tip]
> 实用提示(Tip)
> [!success]
> 成功状态说明(Success)
> [!question]
> 提出的问题或思考点(Question)
> [!warning]
> 警告内容(Warning)
> [!failure]
> 失败原因或错误说明(Failure)
> [!danger]
> 高风险或危险操作提示(Danger)
> [!bug]
> 已知缺陷或错误说明(Bug)
> [!example]
> 示例内容(Example)
> [!quote]
> 引用内容(Quote)
> [!important]
> 重要信息(Important)
> [!caution]
> 需要特别注意的事项(Caution)
适配方法
选择喜欢的样式,在如图所示的主题扩展设置中粘贴并保存对应代码:

样式一
CSS
/* Default Light Mode */
.callout {
border-left: 4px solid var(--callout-color);
padding: 14px 18px;
margin: 18px 0;
border-radius: 10px;
background: var(--callout-bg);
box-shadow: var(--callout-shadow);
transition: all 0.2s ease;
}
.callout-title {
font-weight: 600;
font-size: 15px;
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 6px;
}
.callout-icon {
font-size: 18px;
}
.callout-content {
font-size: 14px;
line-height: 1.65;
}
/* Light Mode Variables */
:root {
--callout-shadow: 0 2px 5px rgb(0 0 0 / 6%);
}
/* —— Light Mode Types —— */
.callout.note { --callout-color:#4c9aff; --callout-bg:#eaf3ff; }
.callout.info { --callout-color:#0984e3; --callout-bg:#eef7ff; }
.callout.abstract { --callout-color:#6c5ce7; --callout-bg:#f4f2ff; }
.callout.todo { --callout-color:#636e72; --callout-bg:#f5f5f5; }
.callout.tip { --callout-color:#00b894; --callout-bg:#e7fdf4; }
.callout.success { --callout-color:#00b894; --callout-bg:#e7fdf4; }
.callout.question { --callout-color:#fdcb6e; --callout-bg:#fff8e6; }
.callout.warning { --callout-color:#fdcb6e; --callout-bg:#fff8e6; }
.callout.caution { --callout-color:#e17055; --callout-bg:#fff3e8; }
.callout.important { --callout-color:#a29bfe; --callout-bg:#f5f3ff; }
.callout.failure { --callout-color:#d63031; --callout-bg:#ffeaea; }
.callout.danger { --callout-color:#d63031; --callout-bg:#ffeaea; }
.callout.bug { --callout-color:#6c5ce7; --callout-bg:#f4f2ff; }
.callout.example { --callout-color:#a29bfe; --callout-bg:#f7f5ff; }
.callout.quote { --callout-color:#636e72; --callout-bg:#f5f5f5; }
/* —— Dark Mode —— */
@media (prefers-color-scheme: dark) {
.callout {
--callout-shadow: 0 2px 6px rgb(0 0 0 / 30%);
color: #E4E4E7;
}
.callout.note { --callout-bg:#1d2533; }
.callout.info { --callout-bg:#162133; }
.callout.abstract { --callout-bg:#221d33; }
.callout.todo { --callout-bg:#2a2a2a; }
.callout.tip { --callout-bg:#112820; }
.callout.success { --callout-bg:#112820; }
.callout.question { --callout-bg:#2e2505; }
.callout.warning { --callout-bg:#2e2505; }
.callout.caution { --callout-bg:#2b1f17; }
.callout.important { --callout-bg:#221f33; }
.callout.failure { --callout-bg:#331d1d; }
.callout.danger { --callout-bg:#331d1d; }
.callout.bug { --callout-bg:#241d33; }
.callout.example { --callout-bg:#2a2248; }
.callout.quote { --callout-bg:#2a2a2a; }
}
JS
document.addEventListener("DOMContentLoaded", () => {
const blocks = document.querySelectorAll("blockquote");
const icons = {
note: "📝",
abstract: "📘",
info: "ℹ️",
todo: "☑️",
tip: "💡",
success: "✅",
question: "❓",
warning: "⚠️",
caution: "🚨",
important: "❗️",
failure: "❌",
danger: "🚫",
bug: "🐞",
example: "📌",
quote: "💬"
};
const titles = {
note: "说明",
abstract: "摘要",
info: "信息",
todo: "待办",
tip: "提示",
success: "成功",
question: "问题",
warning: "警告",
caution: "注意",
important: "重要",
failure: "失败",
danger: "危险",
bug: "错误",
example: "示例",
quote: "引用"
};
blocks.forEach(b => {
const raw = b.innerText.trim().split("\n");
const firstLine = raw[0].trim();
const match = firstLine.match(/^\[!(\w+)\]\s*(.*)$/i);
if (!match) return;
const type = match[1].toLowerCase();
if (!icons[type]) return;
const customTitle = match[2].trim();
const title = customTitle || titles[type];
const contentLines = raw.slice(1).join("\n").trim();
const wrap = document.createElement("div");
wrap.className = `callout ${type}`;
const titleEl = document.createElement("div");
titleEl.className = "callout-title";
const iconEl = document.createElement("span");
iconEl.className = "callout-icon";
iconEl.textContent = icons[type];
const titleTextEl = document.createElement("span");
titleTextEl.textContent = title;
titleEl.appendChild(iconEl);
titleEl.appendChild(titleTextEl);
const content = document.createElement("div");
content.className = "callout-content";
content.innerHTML = contentLines.replace(/\n/g, "<br>");
wrap.appendChild(titleEl);
wrap.appendChild(content);
b.replaceWith(wrap);
});
});
样式二
CSS
/* 简约版 Callout 样式 */
.callout {
border-left: 3px solid var(--callout-color);
padding: 6px 0 6px 14px;
margin: 14px 0;
background: transparent;
}
.callout-title {
font-weight: 600;
font-size: 14px;
margin-bottom: 4px;
display: flex;
align-items: center;
gap: 6px;
color: var(--callout-color);
}
.callout-icon {
font-size: 16px;
}
.callout-content {
font-size: 14px;
line-height: 1.6;
color: inherit;
}
/* 不同类型的颜色定义 - 优化配色与图标贴合 */
.callout.note { --callout-color: #5B9FED; } /* 📝 蓝色笔记 */
.callout.info { --callout-color: #3B82F6; } /* ℹ️ 信息蓝 */
.callout.abstract { --callout-color: #8B5CF6; } /* 📘 紫色摘要 */
.callout.todo { --callout-color: #6B7280; } /* ☑️ 灰色待办 */
.callout.tip { --callout-color: #10B981; } /* 💡 绿色提示 */
.callout.success { --callout-color: #22C55E; } /* ✅ 成功绿 */
.callout.question { --callout-color: #F59E0B; } /* ❓ 橙黄问号 */
.callout.warning { --callout-color: #F59E0B; } /* ⚠️ 警告橙 */
.callout.caution { --callout-color: #EF4444; } /* 🚨 红色警报 */
.callout.important { --callout-color: #DC2626; } /* ❗️ 重要红 */
.callout.failure { --callout-color: #DC2626; } /* ❌ 失败红 */
.callout.danger { --callout-color: #B91C1C; } /* 🚫 危险深红 */
.callout.bug { --callout-color: #A855F7; } /* 🐞 紫色Bug */
.callout.example { --callout-color: #8B5CF6; } /* 📌 示例紫 */
.callout.quote { --callout-color: #9CA3AF; } /* 💬 引用灰 */
/* 暗色模式适配 */
@media (prefers-color-scheme: dark) {
.callout-title {
color: var(--callout-color);
}
.callout.warning { --callout-color: #fdcb6e; }
.callout.important { --callout-color: #ff9f43; }
}
JS
和样式一相同
效果展示
适配前

适配后
样式一

样式二

本站当前使用的样式
思源笔记中兼容的样式:
引述
[!NOTE]
note
[!TIP]
tip
[!IMPORTANT]
important
[!WARNING]
warning
[!CAUTION]
caution
其他样式(本文第一节中的语法示例):
[!note] note
说明内容(Note)
[!abstract] abstract
摘要内容(Abstract)
[!info] info
信息说明(Info)
[!todo] todo
待办事项(Todo)
[!tip] tip
实用提示(Tip)
[!success] success
成功状态说明(Success)
[!question] question
提出的问题或思考点(Question)
[!warning] warning
警告内容(Warning)
[!failure] failure
失败原因或错误说明(Failure)
[!danger] danger
高风险或危险操作提示(Danger)
[!bug] bug
已知缺陷或错误说明(Bug)
[!example] example
示例内容(Example)
[!quote] quote
引用内容(Quote)
[!important] important
重要信息(Important)
[!caution] caution
需要特别注意的事项(Caution)