diff --git a/_multiplayer/feedback.md b/_multiplayer/feedback.md index 684e5a9..41425a2 100644 --- a/_multiplayer/feedback.md +++ b/_multiplayer/feedback.md @@ -9,13 +9,8 @@ contributors: ## Terracotta | 陶瓦联机 - > [!TIP] -> > 欢迎您填写反馈表单。 - 我们注意到了 EasyTier 项目。它提供了一种简单、安全、去中心化的异地组网方案,足以承载 Minecraft 的联机需求。 在 EasyTier 开发团队的帮助下,我们决定重新在启动器内提供联机服务。 diff --git a/_plugins/auto-alert.rb b/_plugins/auto-alert.rb index ee0d1b8..bb8ce96 100644 --- a/_plugins/auto-alert.rb +++ b/_plugins/auto-alert.rb @@ -15,14 +15,17 @@ Jekyll::Hooks.register [:pages, :documents], :post_convert do |doc| next unless first_child next unless first_child.name == "p" - text = first_child.text.downcase + inner_html = first_child.inner_html.downcase # 遍历所有 alert 类型 alert_type.each do |type, data| + prefix = "[!#{type}]" + prefix_with_newline = "#{prefix}\n" + # 情况一:完整匹配 [!type] 形式

[!NOTE]

- if text == "[!#{type}]" + if inner_html == prefix # 将 alert 类型对应的 class 加入 blockquote - item['class'] = [item['class'], data["class_name"]].compact.join(" ") + item["class"] = [item["class"], data["class_name"]].compact.join(" ") # 将

替换为

并插入标题 first_child.name = "div" @@ -30,13 +33,13 @@ Jekyll::Hooks.register [:pages, :documents], :post_convert do |doc| break # 情况二:段落以 [!type]\n 开头

[!NOTE]\n\n other content

- elsif text.start_with? "[!#{type}]\n" + elsif inner_html.start_with? prefix_with_newline # 将 alert 类型对应的 class 加入 blockquote - item['class'] = [item['class'], data["class_name"]].compact.join(" ") + item["class"] = [item["class"], data["class_name"]].compact.join(" ") # 在原段落前插入标题
提示

[!NOTE]\n\n other content

first_child.add_previous_sibling "
#{data["title"]}
" # 移除段落内容开头的 [!type]\n
提示

\n other content

- first_child.content = first_child.content.sub(/\A#{Regexp.escape("[!#{type}]\n")}/i, "") + first_child.inner_html = first_child.inner_html[prefix_with_newline.length..-1] || "" break end end