From 34b7bc59cb0f156f16832c22fe4f05004e0ac352 Mon Sep 17 00:00:00 2001 From: Mehmet Abak <70433403+memoli0@users.noreply.github.com> Date: Thu, 11 Jul 2024 14:33:39 +0300 Subject: [PATCH 1/3] Create getCraftSlug.js --- lib/getCraftSlug.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 lib/getCraftSlug.js diff --git a/lib/getCraftSlug.js b/lib/getCraftSlug.js new file mode 100644 index 00000000..78020bef --- /dev/null +++ b/lib/getCraftSlug.js @@ -0,0 +1,24 @@ +/** + * Extracts the ID from a given Craft link. + * @param {string} link - The Craft link. + * @returns {string} - The extracted ID. + * @throws Will throw an error if the link format is invalid. + */ +const getCraftSlug = (link) => { + const patterns = [ + /^https:\/\/www\.craft\.me\/s\/(.+)$/, + /^https:\/\/www\.craft\.do\/s\/(.+)$/, + /^https:\/\/.+\.craft\.me\/(.+)$/ + ]; + + for (const pattern of patterns) { + const match = link.match(pattern); + if (match) { + return match[1]; + } + } + + throw new Error("Invalid link format"); + }; + + export default getCraftSlug; From 2e8508fa2e0bef6922969e4925cb4c43cffbb54f Mon Sep 17 00:00:00 2001 From: Mehmet Abak <70433403+memoli0@users.noreply.github.com> Date: Thu, 11 Jul 2024 14:34:31 +0300 Subject: [PATCH 2/3] Update getBlocksMaps.js --- lib/getBlocksMaps.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/getBlocksMaps.js b/lib/getBlocksMaps.js index b4a6d9a2..aa9bdf18 100644 --- a/lib/getBlocksMaps.js +++ b/lib/getBlocksMaps.js @@ -1,8 +1,9 @@ import BLOG from '@/blog.config' +import getCraftSlug from '@/lib/getCraftSlug' // 从 Config 页面的 API 获取两个表格的内容, 并处理成两个 json 返回给 htmlrewrite.js export async function getBlocksMaps() { - const craftConfigSecret = BLOG.craftConfigShareUrl.slice(23) + const craftConfigSecret = getCraftSlug(BLOG.craftConfigShareUrl) const craftConfigApiUrl = 'https://www.craft.do/api/share/' + craftConfigSecret const init = { headers: { @@ -150,3 +151,4 @@ function getSiteConfigObj(mapJson, configColumId, valueColumId) { }) return siteConfigObj } + From 1520658819a9b118c5b149304e063ad9f96bac05 Mon Sep 17 00:00:00 2001 From: Mehmet Abak <70433403+memoli0@users.noreply.github.com> Date: Thu, 11 Jul 2024 14:35:45 +0300 Subject: [PATCH 3/3] Update NotePost.js --- components/NotePost.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/NotePost.js b/components/NotePost.js index f9760260..d4f40cda 100644 --- a/components/NotePost.js +++ b/components/NotePost.js @@ -1,9 +1,10 @@ import BLOG from '@/blog.config.js' import Link from 'next/link' import ImageFallback from './Common/ImageFallback.js' +import getCraftSlug from '@/lib/getCraftSlug' const NotePost = ({ note }) => { - const craftSlug = note.url.slice(23) + const craftSlug = getCraftSlug(note.url) return ( { } export default NotePost +