diff --git a/docs/programming.md b/docs/programming.md
index 0939e059ba..b5bee91c48 100644
--- a/docs/programming.md
+++ b/docs/programming.md
@@ -48,6 +48,8 @@
+
+
## Dockone
diff --git a/lib/router.js b/lib/router.js
index 205e54fa4e..30005ac9f0 100755
--- a/lib/router.js
+++ b/lib/router.js
@@ -157,6 +157,7 @@ router.get('/juejin/pins', require('./routes/juejin/pins'));
router.get('/juejin/posts/:id', require('./routes/juejin/posts'));
router.get('/juejin/collections/:userId', require('./routes/juejin/favorites'));
router.get('/juejin/collection/:collectionId', require('./routes/juejin/collection'));
+router.get('/juejin/shares/:userId', require('./routes/juejin/shares'));
// 自如
router.get('/ziroom/room/:city/:iswhole/:room/:keyword', require('./routes/ziroom/room'));
diff --git a/lib/routes/juejin/shares.js b/lib/routes/juejin/shares.js
new file mode 100644
index 0000000000..a8083cf86b
--- /dev/null
+++ b/lib/routes/juejin/shares.js
@@ -0,0 +1,26 @@
+const axios = require('../../utils/axios');
+const util = require('./utils');
+
+module.exports = async (ctx) => {
+ const id = ctx.params.userId;
+
+ const response = await axios({
+ method: 'get',
+ url: `https://timeline-merger-ms.juejin.im/v1/get_entry_by_self?src=web&targetUid=${id}&type=article&order=createdAt`,
+ headers: {
+ Host: 'timeline-merger-ms.juejin.im',
+ Origin: 'https://juejin.im',
+ Referer: `https://juejin.im/user/${id}/shares`,
+ },
+ });
+ const data = response.data.d.entrylist;
+ const username = data && data[0] && data[0].user && data[0].user.username;
+ const resultItems = await util.ProcessFeed(data, ctx.cache);
+
+ ctx.state.data = {
+ title: `掘金分享-${username}`,
+ link: `https://juejin.im/user/${id}/shares`,
+ description: `掘金分享-${username}`,
+ item: resultItems,
+ };
+};