diff --git a/docs/en/program-update.md b/docs/en/program-update.md
index 8828151f84..8502dcecdb 100644
--- a/docs/en/program-update.md
+++ b/docs/en/program-update.md
@@ -221,6 +221,12 @@ Refer to [#minecraft](/en/game.html#minecraft)
+## Obsidian
+
+### Announcements
+
+
+
## PlayStation
### PlayStation 4 System Update
diff --git a/docs/program-update.md b/docs/program-update.md
index c5a8906037..9ae092b3cb 100644
--- a/docs/program-update.md
+++ b/docs/program-update.md
@@ -264,6 +264,12 @@ pageClass: routes
+## Obsidian
+
+### Announcements
+
+
+
## OneNote Gem Add-Ins
### Release History
diff --git a/lib/router.js b/lib/router.js
index dec04ea803..77201526ae 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -3924,6 +3924,9 @@ router.get('/tianyancha/hot', require('./routes/tianyancha/hot'));
// King Arthur
router.get('/kingarthur/:type', require('./routes/kingarthur/index'));
+// Obsidian
+router.get('/obsidian/announcements', require('./routes/obsidian/announcements'));
+
// 吉林工商学院
router.get('/jlbtc/kyc/:category?', require('./routes/universities/jlbtc/kyc'));
router.get('/jlbtc/:category?', require('./routes/universities/jlbtc/index'));
diff --git a/lib/routes/obsidian/announcements.js b/lib/routes/obsidian/announcements.js
new file mode 100644
index 0000000000..3695c64e5f
--- /dev/null
+++ b/lib/routes/obsidian/announcements.js
@@ -0,0 +1,22 @@
+const got = require('@/utils/got');
+
+module.exports = async (ctx) => {
+ const rootUrl = 'https://forum.obsidian.md';
+ const currentUrl = `${rootUrl}/c/announcements/13.json?page=0`;
+ const response = await got({
+ method: 'get',
+ url: currentUrl,
+ });
+
+ const items = response.data.topic_list.topics.map((item) => ({
+ title: item.title,
+ link: `${rootUrl}/t/${item.slug}/${item.id}`,
+ pubDate: new Date(item.created_at).toUTCString(),
+ }));
+
+ ctx.state.data = {
+ title: 'Announcements - Obsidian',
+ link: `${rootUrl}/c/announcements/13`,
+ item: items,
+ };
+};