diff --git a/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java b/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java index 17cde31cd..dea15becd 100644 --- a/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java +++ b/src/main/java/cc/ryanc/halo/model/dto/HaloConst.java @@ -54,4 +54,34 @@ public class HaloConst { * 网易云音乐短代码正则表达式 */ public static final String NETEASE_MUSIC_REG_PATTERN = "\\[music:(\\d+)\\]"; + + /** + * 哔哩哔哩视频短代码前缀 + */ + public static final String BILIBILI_VIDEO_PREFIX = "[bilibili:"; + + /** + * 哔哩哔哩视频 iframe 代码 + */ + public static final String BILIBILI_VIDEO_IFRAME = ""; + + /** + * 哔哩哔哩视频正则表达式 + */ + public static final String BILIBILI_VIDEO_REG_PATTERN = "\\[bilibili:(\\d+)\\,(\\d+)\\,(\\d+)\\]"; + + /** + * YouTube 视频短代码前缀 + */ + public static final String YOUTUBE_VIDEO_PREFIX = "[youtube:"; + + /** + * YouTube 视频 iframe 代码 + */ + public static final String YOUTUBE_VIDEO_IFRAME = ""; + + /** + * YouTube 视频正则表达式 + */ + public static final String YOUTUBE_VIDEO_REG_PATTERN = "\\[youtube:(\\w+)\\,(\\d+)\\,(\\d+)\\]"; } diff --git a/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java b/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java index 86dcc70e9..edb449c34 100644 --- a/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java +++ b/src/main/java/cc/ryanc/halo/utils/MarkdownUtils.java @@ -54,6 +54,14 @@ public class MarkdownUtils { if (content.contains(HaloConst.NETEASE_MUSIC_PREFIX)) { renderContent = content.replaceAll(HaloConst.NETEASE_MUSIC_REG_PATTERN, HaloConst.NETEASE_MUSIC_IFRAME); } + // render bilibili video short url + if (content.contains(HaloConst.BILIBILI_VIDEO_PREFIX)) { + renderContent = content.replaceAll(HaloConst.BILIBILI_VIDEO_REG_PATTERN, HaloConst.BILIBILI_VIDEO_IFRAME); + } + // render youtube video short url + if (content.contains(HaloConst.YOUTUBE_VIDEO_PREFIX)) { + renderContent = content.replaceAll(HaloConst.YOUTUBE_VIDEO_REG_PATTERN, HaloConst.YOUTUBE_VIDEO_IFRAME); + } return renderContent; } @@ -69,4 +77,8 @@ public class MarkdownUtils { document.accept(visitor); return visitor.getData(); } + + public static void main(String[] args) { + System.out.println("[bilibili:44971847]".replaceAll(HaloConst.BILIBILI_VIDEO_REG_PATTERN, HaloConst.BILIBILI_VIDEO_IFRAME)); + } }