chore: update prettier

This commit is contained in:
DIYgod 2023-07-07 23:23:44 +01:00
parent b9c15dbe17
commit dd1cc3e1f5
No known key found for this signature in database
27 changed files with 472 additions and 501 deletions

View File

@ -9,4 +9,4 @@ updates:
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 10
open-pull-requests-limit: 10

View File

@ -1,14 +1,19 @@
### WHAT
copilot:summary
copilot:poem
### WHY
<!-- author to complete -->
### HOW
copilot:walkthrough
### CLAIM REWARDS
<!-- author to complete -->
For first-time contributors, please leave your xLog address and Discord ID below to claim your rewards.

View File

@ -94,4 +94,4 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: pr
path: ./pr-id.txt
path: ./pr-id.txt

View File

@ -32,4 +32,4 @@ We will provide some small gifts to contributors as a token of appreciation, cur
- [Mix Space](https://github.com/mx-space): Another excellent blogging platform integrated with xLog.
- [xLog mobile](https://github.com/Crossbell-Box/xLog-mobile): The mobile app for xLog.
- [xLog custom css debugger](https://github.com/birdgg/xLog-custom-css-debugger): A convenient chrome extension for debugging custom CSS in Xlog.
- [xLog card](https://github.com/Alex-Programer/xlog-card): Card component for displaying xLog information.
- [xLog card](https://github.com/Alex-Programer/xlog-card): Card component for displaying xLog information.

View File

@ -1,4 +1,7 @@
{
"latest": [151, 53994, 54570, 54481, 54537, 54302, 53944, 55768, 55855, 56592, 54986, 56875, 56873, 56666, 55996],
"latest": [
151, 53994, 54570, 54481, 54537, 54302, 53944, 55768, 55855, 56592, 54986,
56875, 56873, 56666, 55996
],
"comment": [54986]
}
}

View File

@ -5,8 +5,8 @@
"list": [
10, 30, 12, 32022, 32179, 45, 19, 4583, 4381, 32168, 33446, 33492, 52055,
153, 50143, 51470, 31132, 45089, 50351, 52343, 5825, 51406, 53864, 43086,
47393, 54315, 50131, 54939, 55096, 55081, 45828, 4565, 50088, 55399, 52323,
55960
47393, 54315, 50131, 54939, 55096, 55081, 45828, 4565, 50088, 55399,
52323, 55960
]
}
]

View File

@ -2,18 +2,12 @@
{
"name": "xLog",
"description": "Let's talk about xLog, whether to praise or criticize it.",
"includeTags": [
"xLog"
],
"includeKeywords": [
"xLog"
]
"includeTags": ["xLog"],
"includeKeywords": ["xLog"]
},
{
"name": "Web3",
"includeTags": [
"Web3"
],
"includeTags": ["Web3"],
"includeKeywords": [
"Web3",
"Blockchain",
@ -35,24 +29,13 @@
{
"name": "Artificial Intelligence",
"description": "The world is undergoing changes, and we are at the center of it.",
"includeTags": [
"AI"
],
"includeKeywords": [
"GPT",
"Midjourney",
"AIGC",
" AI ",
"OpenAI"
]
"includeTags": ["AI"],
"includeKeywords": ["GPT", "Midjourney", "AIGC", " AI ", "OpenAI"]
},
{
"name": "Life Journal",
"description": "Discover new perspectives and insights in others' weekly, monthly, or yearly journal.",
"includeTags": [
"Life",
"生活"
],
"includeTags": ["Life", "生活"],
"includeKeywords": [
"Review",
"Weekly",
@ -66,10 +49,7 @@
{
"name": "Fiction",
"description": "Experience a world of imagination through these fiction stories.",
"includeTags": [
"Fiction",
"小说"
],
"includeTags": ["Fiction", "小说"],
"notes": [
"55405-3",
"54513-24",
@ -121,10 +101,7 @@
},
{
"name": "Coding",
"includeTags": [
"Coding",
"编程"
],
"includeTags": ["Coding", "编程"],
"includeKeywords": [
"Coding",
"编程",

View File

@ -196,7 +196,7 @@
"lint-staged": "13.2.3",
"postcss-import": "15.1.0",
"postcss-prune-var": "1.1.1",
"prettier": "2.8.8",
"prettier": "3.0.0",
"prettier-package-json": "2.8.0",
"prisma": "4.16.2",
"tailwindcss": "3.3.2",

View File

@ -396,7 +396,7 @@ devDependencies:
version: 13.4.9
'@trivago/prettier-plugin-sort-imports':
specifier: 4.1.1
version: 4.1.1(prettier@2.8.8)
version: 4.1.1(prettier@3.0.0)
'@types/async-lock':
specifier: 1.4.0
version: 1.4.0
@ -500,8 +500,8 @@ devDependencies:
specifier: 1.1.1
version: 1.1.1
prettier:
specifier: 2.8.8
version: 2.8.8
specifier: 3.0.0
version: 3.0.0
prettier-package-json:
specifier: 2.8.0
version: 2.8.0
@ -4241,7 +4241,7 @@ packages:
engines: {node: '>= 10'}
dev: false
/@trivago/prettier-plugin-sort-imports@4.1.1(prettier@2.8.8):
/@trivago/prettier-plugin-sort-imports@4.1.1(prettier@3.0.0):
resolution: {integrity: sha512-dQ2r2uzNr1x6pJsuh/8x0IRA3CBUB+pWEW3J/7N98axqt7SQSm+2fy0FLNXvXGg77xEDC7KHxJlHfLYyi7PDcw==}
peerDependencies:
'@vue/compiler-sfc': 3.x
@ -4256,7 +4256,7 @@ packages:
'@babel/types': 7.17.0
javascript-natural-sort: 0.7.1
lodash: 4.17.21
prettier: 2.8.8
prettier: 3.0.0
transitivePeerDependencies:
- supports-color
dev: true
@ -11028,9 +11028,9 @@ packages:
sort-order: 1.0.1
dev: true
/prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
/prettier@3.0.0:
resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==}
engines: {node: '>=14'}
hasBin: true
dev: true

View File

@ -300,9 +300,8 @@ export default function SubdomainEditor() {
if (createPage.data?.noteId) {
router.replace(
`/dashboard/${subdomain}/editor?id=${
createPage.data?.noteId
}&type=${searchParams?.get("type")}`,
`/dashboard/${subdomain}/editor?id=${createPage.data
?.noteId}&type=${searchParams?.get("type")}`,
)
}
const modalId = "publish-modal"

View File

@ -203,9 +203,8 @@ export default function SubdomainIndex() {
<div className="grid gap-4 grid-cols-1 sm:grid-cols-2">
{pages.data?.pages[0]?.list.map((item) => (
<UniLink
href={`${getSiteLink({ subdomain: "xlog" })}/${
item.metadata?.content?.slug
}`}
href={`${getSiteLink({ subdomain: "xlog" })}/${item.metadata
?.content?.slug}`}
key={item.transactionHash}
className="bg-slate-100 rounded-lg flex flex-col py-4 px-6"
>

View File

@ -239,123 +239,126 @@ export const PagesManager = ({ isPost }: { isPost: boolean }) => {
<EmptyState resource={isPost ? "posts" : "pages"} />
)}
{pages.data?.pages.map((page) =>
page.list?.map((page) => {
currentLength++
return (
<Link
key={page.transactionHash || page.draftKey}
href={getPageEditLink(page)}
className="group relative hover:bg-zinc-100 rounded-lg py-3 px-3 transition-colors -mx-3 flex"
>
<div className="w-10 flex-shrink-0 flex self-center">
<button
className={cn(
`text-gray-400 relative z-10 w-8 h-8 rounded inline-flex group-hover:visible justify-center items-center`,
batchSelected.includes(page.noteId || page.draftKey || 0)
? "bg-gray-200"
: `hover:bg-gray-200`,
)}
onClick={(e) => {
e.preventDefault()
// Toggle selection
if (
{pages.data?.pages.map(
(page) =>
page.list?.map((page) => {
currentLength++
return (
<Link
key={page.transactionHash || page.draftKey}
href={getPageEditLink(page)}
className="group relative hover:bg-zinc-100 rounded-lg py-3 px-3 transition-colors -mx-3 flex"
>
<div className="w-10 flex-shrink-0 flex self-center">
<button
className={cn(
`text-gray-400 relative z-10 w-8 h-8 rounded inline-flex group-hover:visible justify-center items-center`,
batchSelected.includes(
page.noteId || page.draftKey || 0,
)
) {
// Deselect
setBatchSelected(
batchSelected.filter(
(pageId) =>
pageId !== page.noteId || page.draftKey || 0,
),
)
} else {
// Do select
setBatchSelected([
...batchSelected,
page.noteId || page.draftKey || 0,
])
}
}}
>
<i
className={`${
batchSelected.includes(
page.noteId || page.draftKey || 0,
)
? "icon-[mingcute--check-line]"
: isPost
? "icon-[mingcute--news-line]"
: "icon-[mingcute--file-line]"
} text-2xl`}
/>
</button>
</div>
<div className="min-w-0">
{page.metadata?.content?.title ? (
<div className="flex items-center">
<span>{page.metadata?.content?.title}</span>
</div>
) : (
<div className="text-zinc-500 text-xs mt-1 truncate">
<span>{page.metadata?.content?.summary}</span>
</div>
)}
<div className="text-zinc-400 text-xs mt-1">
<span className="capitalize">
{t(getPageVisibility(page))}
</span>
<span className="mx-2">·</span>
<span>
{getPageVisibility(page) === PageVisibilityEnum.Draft
? date.formatDate(page.updatedAt)
: date.formatDate(
page.metadata?.content?.date_published || "",
)}
</span>
{pinnedPage.noteId === page.noteId && (
<>
<span className="mx-2">·</span>
<span>
<i className="icon-[mingcute--pin-2-fill] translate-y-[18%]" />{" "}
{siteT("Pinned")}
</span>
</>
)}
? "bg-gray-200"
: `hover:bg-gray-200`,
)}
onClick={(e) => {
e.preventDefault()
// Toggle selection
if (
batchSelected.includes(
page.noteId || page.draftKey || 0,
)
) {
// Deselect
setBatchSelected(
batchSelected.filter(
(pageId) =>
pageId !== page.noteId || page.draftKey || 0,
),
)
} else {
// Do select
setBatchSelected([
...batchSelected,
page.noteId || page.draftKey || 0,
])
}
}}
>
<i
className={`${
batchSelected.includes(
page.noteId || page.draftKey || 0,
)
? "icon-[mingcute--check-line]"
: isPost
? "icon-[mingcute--news-line]"
: "icon-[mingcute--file-line]"
} text-2xl`}
/>
</button>
</div>
</div>
<div className="w-10 flex-shrink-0 flex self-center ml-auto">
<Menu>
{({ open, close }) => (
<>
<Menu.Button as={Fragment}>
<button
className={cn(
`text-gray-400 relative z-10 w-8 h-8 rounded inline-flex group-hover:visible justify-center items-center`,
open ? `bg-gray-200` : `hover:bg-gray-200`,
)}
onClick={(e) => {
e.stopPropagation()
}}
>
<i className="icon-[mingcute--more-1-line] text-2xl" />
</button>
</Menu.Button>
<PagesManagerMenu
isPost={isPost}
page={page}
onClick={close}
/>
</>
<div className="min-w-0">
{page.metadata?.content?.title ? (
<div className="flex items-center">
<span>{page.metadata?.content?.title}</span>
</div>
) : (
<div className="text-zinc-500 text-xs mt-1 truncate">
<span>{page.metadata?.content?.summary}</span>
</div>
)}
</Menu>
</div>
</Link>
)
}),
<div className="text-zinc-400 text-xs mt-1">
<span className="capitalize">
{t(getPageVisibility(page))}
</span>
<span className="mx-2">·</span>
<span>
{getPageVisibility(page) === PageVisibilityEnum.Draft
? date.formatDate(page.updatedAt)
: date.formatDate(
page.metadata?.content?.date_published || "",
)}
</span>
{pinnedPage.noteId === page.noteId && (
<>
<span className="mx-2">·</span>
<span>
<i className="icon-[mingcute--pin-2-fill] translate-y-[18%]" />{" "}
{siteT("Pinned")}
</span>
</>
)}
</div>
</div>
<div className="w-10 flex-shrink-0 flex self-center ml-auto">
<Menu>
{({ open, close }) => (
<>
<Menu.Button as={Fragment}>
<button
className={cn(
`text-gray-400 relative z-10 w-8 h-8 rounded inline-flex group-hover:visible justify-center items-center`,
open ? `bg-gray-200` : `hover:bg-gray-200`,
)}
onClick={(e) => {
e.stopPropagation()
}}
>
<i className="icon-[mingcute--more-1-line] text-2xl" />
</button>
</Menu.Button>
<PagesManagerMenu
isPost={isPost}
page={page}
onClick={close}
/>
</>
)}
</Menu>
</div>
</Link>
)
}),
)}
{pages.hasNextPage && (

View File

@ -47,10 +47,11 @@ export const PagesManagerBatchSelectActionTab = ({
onClick: () => {
// Get all page IDs
const allIDs: (string | number)[] = []
pages?.pages.map((page) =>
page.list?.map((page) => {
allIDs.push(getPageId(page))
}),
pages?.pages.map(
(page) =>
page.list?.map((page) => {
allIDs.push(getPageId(page))
}),
)
setBatchSelected(allIDs)
},
@ -69,12 +70,13 @@ export const PagesManagerBatchSelectActionTab = ({
// Find all selected
const selectedPages: ExpandedNote[] = []
pages?.pages.map((page) =>
page.list?.map((page) => {
if (batchSelected.includes(getPageId(page))) {
selectedPages.push(page)
}
}),
pages?.pages.map(
(page) =>
page.list?.map((page) => {
if (batchSelected.includes(getPageId(page))) {
selectedPages.push(page)
}
}),
)
// Convert all // TODO: use multicall to optimize
@ -135,12 +137,13 @@ export const PagesManagerBatchSelectActionTab = ({
// Find all selected
const selectedPages: ExpandedNote[] = []
pages?.pages.map((page) =>
page.list?.map((page) => {
if (batchSelected.includes(page.noteId || page.draftKey || 0)) {
selectedPages.push(page)
}
}),
pages?.pages.map(
(page) =>
page.list?.map((page) => {
if (batchSelected.includes(page.noteId || page.draftKey || 0)) {
selectedPages.push(page)
}
}),
)
// Delete all // TODO: use multicall to optimize

View File

@ -30,9 +30,7 @@ export default function PostMeta({
<span className="xlog-post-tags space-x-1 truncate min-w-0">
{page.metadata?.content?.tags
?.filter((tag) => tag !== "post" && tag !== "page")
.map((tag) => (
<PostTag key={tag} tag={tag} />
))}
.map((tag) => <PostTag key={tag} tag={tag} />)}
</span>
</>
) : null}

View File

@ -52,7 +52,7 @@ export const Input = forwardRef(function Input<
isBlock && `is-block`,
className,
),
} as any),
}) as any,
[className, hasAddon, hasPrefix, inputProps, isBlock, ref],
)

View File

@ -38,10 +38,10 @@ html.dark {
mix-blend-mode: normal;
}
.dark::view-transition-old(root){
.dark::view-transition-old(root) {
z-index: 9999;
}
.dark::view-transition-new(root){
.dark::view-transition-new(root) {
z-index: 1;
}
}

View File

@ -73,9 +73,8 @@ export const expandCrossbellNote = async ({
if (useStat) {
if ((note as any).stat?.viewDetailCount) {
expandedNote.metadata.content.views = (
note as any
).stat?.viewDetailCount
expandedNote.metadata.content.views = (note as any).stat
?.viewDetailCount
} else {
const stat = await (
await fetch(

View File

@ -1,5 +1,5 @@
{
"link post-vs-page" : "https://wordpress.com/zh-cn/support/post-vs-page/",
"link post-vs-page": "https://wordpress.com/zh-cn/support/post-vs-page/",
"delete_confirmation_post": "Are you sure you want to DELETE this post?",
"delete_confirmation_page": "Are you sure you want to DELETE this page?"
}
}

View File

@ -2,4 +2,4 @@
"load more": "There are {{count}} more {{name}}, click to load more",
"signed and stored on the blockchain": "Ownership of this {{name}} data is guaranteed by blockchain and smart contracts to the creator alone.",
"Cancel Download": "Cancel"
}
}

View File

@ -23,4 +23,4 @@
"Submit yours": "自分のを投稿する",
"xLog's open design allows it to integrate with many other open protocols and applications without friction.": "xLogのオープンな設計により、他の多くのオープンプロトコルやアプリケーションとスムーズに統合することができます。",
"Dashboard": "ダッシュボード"
}
}

View File

@ -1,208 +1,208 @@
{
"Dashboard": "洞察",
"Posts": "文章",
"Pages": "頁面",
"Notifications": "通知",
"Unread notifications": "未讀通知",
"Settings": "設定",
"Events": "活動",
"New Events": "新活動",
"Site Stats": "網站統計",
"Published posts": "文章",
"Received comments": "留言",
"Followers": "粉絲",
"Viewed": "瀏覽量",
"Received tips": "Donate",
"Site Duration": "Blog 誕生",
"days": "天",
"Deleted!": "刪掉了哦!",
"Fail to Deleted.": "删除失败",
"Converted!": "轉換成功!",
"Failed to convert.": "轉換失敗。",
"All Posts": "所有文章",
"All Pages": "所有頁面",
"Published": "已發佈",
"published": "已發佈",
"Draft": "草稿",
"draft": "草稿",
"Scheduled": "定時發佈",
"scheduled": "定時發佈",
"published and local modified": "已發佈且有尚未更新的內容",
"link post-vs-page": "https://wordpress.com/zh-tw/support/post-vs-page/",
"posts description": "文章是按時間倒序在你的網站上列出的條目。可以將它們看作是更新,以提供新內容給讀者。<2>文章與頁面</2>。",
"pages description": "頁面是靜態的,不受日期影響。它們更像是你網站上的永久元素,比如“關於我們”、“聯繫我們”等。 <2>文章與頁面</2>。",
"pages add": "創建頁面後,你可以將其<2>添加到你網站的導航菜單中</2>,以便瀏覽者可以找到它。",
"New Post": "新建文章",
"New Page": "新建頁面",
"Import": "匯入",
"Import markdown file with front matter supported": "匯入 Markdown 文件(支持 Front Matter)",
"View Site": "查看網站",
"hello": {
"welcome": "<p>👋 你好哇,</p><p>歡迎使用 xLog</p><p>以下是一些有用的連結,幫助你開始使用 xLog</p>",
"hidden": "👋 你好哇",
"community": "<p>加入我們的社區,認識新朋友或給予 xLog 協助:</p>"
},
"Edit": "編輯 ",
"Convert to Page": "轉換為頁面",
"Convert to Post": "轉換為文章",
"Select All": "全部選擇",
"Deselect All": "取消選擇",
"Delete": "刪除",
"Heading": "標題",
"Bold": "粗體",
"Italic": "斜體",
"Strikethrough": "刪除線",
"Underline": "底線",
"Quote": "引用",
"Inline Code": "行內程式碼",
"Code Block": "程式碼區塊",
"Unordered List": "無序列表",
"Ordered List": "有序列表",
"Link": "連結",
"Image": "圖片",
"Upload Image, Audio or Video": "上傳圖片、音頻或視頻",
"Preview": "預覽",
"Publish": "發布",
"Update": "更新",
"Discard Changes": "捨棄變更",
"Publish at": "發布時間",
"This post will be accessible from this time. Leave blank to use the current time.": "文章將在此時間後可訪問。留空則使用當前時間。",
"This page will be accessible from this time. Leave blank to use the current time.": "頁面將在此時間後可訪問。留空則使用當前時間。",
"The post is currently not public as its publication date has been scheduled for a future time.": "該帖子目前沒有公開,因為它的發布日期已被安排在未來。",
"Post slug": "文章短連結",
"Page slug": "頁面短連結",
"This post will be accessible at": "此文章將可通過以下連結瀏覽",
"This page will be accessible at": "此頁面將可通過以下連結瀏覽",
"Tags": "標籤",
"Separate multiple tags with English commas": "多個標籤請用英文逗號分隔",
"Excerpt": "摘要",
"Leave it blank to use auto-generated excerpt": "留空則使用自動生成的摘要",
"General": "一般",
"Social Platforms": "社交媒體",
"Navigation": "導航",
"Domains": "網域",
"Custom CSS": "自定義 CSS",
"Operators": "身份授權",
"Export data": "匯出資料",
"Site Settings": "網站設置",
"Icon": "圖標",
"Banner": "橫幅",
"Supports both pictures and videos.": "支持圖片和影片。",
"Name": "名稱",
"Description": "自我介紹",
"Integrate Google Analytics": "將 Google Analytics 整合至你的網站中。請按照<2>這裡</2>的說明查找你的 Measurement ID。",
"Integrate Umami Cloud Analytics": "將 Umami Cloud Analytics 整合至你的網站中。請按照<2>這裡</2>的說明查找你的 Website ID。",
"Integrate Umami Cloud Analytics (set url)": "留空以使用<2>Umami Cloud</2>。",
"Save": "儲存",
"Tips": "提示",
"social tips": {
"p1": "這些社交平台會顯示在你的 xLog 的右下角。",
"p2": "我們支援<2>這些平台</2>自動顯示其標誌和連結。對於其他平台將顯示預設標誌。如果你有其他需求請隨時向我們提交問題或PR以支援更多的平台。",
"p3": "你還可以在 <2>xSync</2> 上連接到 Twitter、Telegram 頻道、Medium、Substack 等平台,並自動同步內容。當你在那裡設置同步後,它也會顯示在這裡。"
},
"Platform": "平台",
"Identity": "身份",
"Remove": "移除",
"New Item": "新建項目",
"xLog provides some out-of-the-box built-in pages": "xLog 提供了一些開箱即用的內建頁面",
"Home page": "首頁",
"Archives page": "封存頁面",
"Tag page": "標籤頁面",
"NFT Showcase page": "NFT 展示頁面",
"Label": "標籤",
"URL": "連結",
"subdomain": "子網域",
"Custom Domain": "自訂網域",
"Set the following record on your DNS provider to active your custom domain": "在你的 DNS 提供商上設定以下紀錄以啟用自訂網域",
"Scope: These styles will be applied to your entire blog, including this dashboard.": "範圍:這些樣式將套用至你的整個部落格,包括此儀表板。",
"Support": "支援",
"CSS variables: xLog provides some built-in CSS variables": "CSS 變數xLog 提供了一些內建的 CSS 變數",
"Address": "地址",
"Character": "身份",
"New operator": "新建授權",
"Operator Address": "授權地址",
"Operator Character Check": "身份授權檢查",
"Warning": "警告",
"Operators have permissions to enter your dashboard, change your settings(excluding xLog subdomain) and post, modify, delete contents on your site.": "授權者可以進入你的儀表板,更改你的設定(不包括 xLog 子網域)並在你的網站上發佈、修改、刪除內容。",
"Add": "新增",
"xLog News": "xLog 新聞",
"More": "更多",
"Meet New Friends": "認識新朋友",
"Need help?": "需要幫助?",
"Your post has been securely stored on the blockchain. Now you may want to": "你的文章已經安全地存儲在區塊鏈上。現在你可能想要",
"View the post": "查看文章",
"View the transaction": "查看交易",
"Share to Twitter": "分享到 Twitter",
"Got it, thanks!": "知道了,謝謝!",
"Published!": "已發佈!",
"Title goes here...": "標題在這裡...",
"Start writing...": "開始寫作...",
"Slug can only contain letters, numbers, hyphens, and underscores.": "短網址只能包含字母、數字、連字符和底線。",
"Date": "日期",
"Prize": "獎金",
"Winners": "獲獎者",
"Learn more": "進一步了解",
"Ended": "已結束",
"Upcoming": "即將開始",
"Ongoing": "進行中",
"Import from Markdown files": "從 Markdown 檔案匯入",
"Import from Mirror.xyz": "從 Mirror.xyz 匯入",
"Select Markdown Files": "選擇 Markdown 檔案",
"No files chosen": "未選擇檔案",
"No entries": "無項目",
"Preview your Mirror.xyz entries": "預覽你的 Mirror.xyz 項目",
"Please select .md files, multiple files are supported, and front matter is supported.": "請選擇 .md 檔案,支援多個檔案,並支援 front matter。",
"Achievements": "成就",
"Tokens": "虛擬貨幣",
"$MIRA is a valuable token in the Crossbell world, and can be easily exchanged on the Crosschain Bridge and Uniswap.": "$MIRA 是 Crossbell 世界中的一種有珍貴的代幣,可在跨鏈橋和 Uniswap 上輕鬆兌換。",
"In the early stage, xLog will use $MIRA to motivate creators.": "在早期階段xLog 將使用 $MIRA 激勵創作者。",
"You can obtain $MIRA through the following ways:": "你可以透過以下方式獲得 $MIRA",
"Creator incentive program.": "創作者激勵計畫。",
"Participate in events.": "參加活動。",
"Swap from USDC.": "從 USDC 兌換。",
"Received tips and sponsorships from readers.": "從讀者收到打賞和贊助。",
"Swap to USDC": "兌換成 USDC",
"Free Claim": "免費領取",
"$XLOG is related to xLog DAO, but it's too early now, please stay tuned.": "$XLOG 與 xLog DAO 相關,但現在還為時尚早,敬請期待。",
"Stay tuned": "敬請期待",
"This is a token used for interaction on the Crossbell blockchain, which can be claimed for free from the faucet, so there's no need to worry about its balance.": "這是一個用於 Crossbell 區塊鏈上互動的虛擬貨幣,可以從水龍頭免費領取,因此不用擔心其餘額。",
"Balance": "餘額",
"Swap Tutorial": "兌換教學",
"DNS Checking": "DNS 檢查中",
"DNS check passed.": "DNS 檢查通過。",
"DNS check failed.": "DNS 檢查失敗。",
"Recheck": "重新檢查",
"Hottest": "熱門",
"Latest": "最新",
"Following": "追蹤",
"Create a Post": "新增文章",
"Change Site Icon or domain": "變更網站圖示或域名",
"Join xLog's Discord channel": "加入 xLog 的 Discord 頻道",
"Participate in the development of xLog": "參與 xLog 的發展",
"Follow xLog's Twitter": "追蹤 xLog 的 Twitter",
"Check out the updates of other bloggers": "看看其他 Blogger 的更新",
"You have already imported them, please enter the post page to create a new post!": "已經匯入完成了哦,請到文章頁面新增新的內容!",
"Today": "今天",
"This month": "本月",
"This week": "本周",
"All time": "全部",
"delete_confirmation_post": "你確認要刪除這篇文章嗎?",
"delete_confirmation_page": "你確認要刪除這個頁面嗎?",
"Confirm": "確認",
"Cancel": "取消",
"Published a new post on my blockchain blog: {{title}}. Check it out now!": "我在我的區塊鏈部落格發佈了一片新的文章《{{title}}》,快來看看吧!",
"Comments": "留言",
"You can subscribe to comments through an RSS reader to receive timely reminders.": "你可以通過 RSS 閱讀器訂閱留言,以便及時收到通知。",
"Subscription address:": "訂閱地址:",
"comment on your": "回覆了你的 {{type}}「<tolink>{{toTitle}}</tolink>」",
"{{newCount}} new comments": "{{newCount}} 條新留言",
"Upload All Images to IPFS": "上傳所有圖片到 IPFS",
"Help: Markdown syntax and components used by xLog": "幫助xLog 使用的 Markdown 語法和組件",
"Align Center": "居中",
"Align Right": "靠右",
"Formula": "公式",
"Advanced Settings": "高級設置",
"Disable AI-generated summary": "禁用 AI 生成的摘要",
"Pin": "釘選",
"Unpin": "取消釘選"
"Dashboard": "洞察",
"Posts": "文章",
"Pages": "頁面",
"Notifications": "通知",
"Unread notifications": "未讀通知",
"Settings": "設定",
"Events": "活動",
"New Events": "新活動",
"Site Stats": "網站統計",
"Published posts": "文章",
"Received comments": "留言",
"Followers": "粉絲",
"Viewed": "瀏覽量",
"Received tips": "Donate",
"Site Duration": "Blog 誕生",
"days": "天",
"Deleted!": "刪掉了哦!",
"Fail to Deleted.": "删除失败",
"Converted!": "轉換成功!",
"Failed to convert.": "轉換失敗。",
"All Posts": "所有文章",
"All Pages": "所有頁面",
"Published": "已發佈",
"published": "已發佈",
"Draft": "草稿",
"draft": "草稿",
"Scheduled": "定時發佈",
"scheduled": "定時發佈",
"published and local modified": "已發佈且有尚未更新的內容",
"link post-vs-page": "https://wordpress.com/zh-tw/support/post-vs-page/",
"posts description": "文章是按時間倒序在你的網站上列出的條目。可以將它們看作是更新,以提供新內容給讀者。<2>文章與頁面</2>。",
"pages description": "頁面是靜態的,不受日期影響。它們更像是你網站上的永久元素,比如“關於我們”、“聯繫我們”等。 <2>文章與頁面</2>。",
"pages add": "創建頁面後,你可以將其<2>添加到你網站的導航菜單中</2>,以便瀏覽者可以找到它。",
"New Post": "新建文章",
"New Page": "新建頁面",
"Import": "匯入",
"Import markdown file with front matter supported": "匯入 Markdown 文件(支持 Front Matter)",
"View Site": "查看網站",
"hello": {
"welcome": "<p>👋 你好哇,</p><p>歡迎使用 xLog</p><p>以下是一些有用的連結,幫助你開始使用 xLog</p>",
"hidden": "👋 你好哇",
"community": "<p>加入我們的社區,認識新朋友或給予 xLog 協助:</p>"
},
"Edit": "編輯 ",
"Convert to Page": "轉換為頁面",
"Convert to Post": "轉換為文章",
"Select All": "全部選擇",
"Deselect All": "取消選擇",
"Delete": "刪除",
"Heading": "標題",
"Bold": "粗體",
"Italic": "斜體",
"Strikethrough": "刪除線",
"Underline": "底線",
"Quote": "引用",
"Inline Code": "行內程式碼",
"Code Block": "程式碼區塊",
"Unordered List": "無序列表",
"Ordered List": "有序列表",
"Link": "連結",
"Image": "圖片",
"Upload Image, Audio or Video": "上傳圖片、音頻或視頻",
"Preview": "預覽",
"Publish": "發布",
"Update": "更新",
"Discard Changes": "捨棄變更",
"Publish at": "發布時間",
"This post will be accessible from this time. Leave blank to use the current time.": "文章將在此時間後可訪問。留空則使用當前時間。",
"This page will be accessible from this time. Leave blank to use the current time.": "頁面將在此時間後可訪問。留空則使用當前時間。",
"The post is currently not public as its publication date has been scheduled for a future time.": "該帖子目前沒有公開,因為它的發布日期已被安排在未來。",
"Post slug": "文章短連結",
"Page slug": "頁面短連結",
"This post will be accessible at": "此文章將可通過以下連結瀏覽",
"This page will be accessible at": "此頁面將可通過以下連結瀏覽",
"Tags": "標籤",
"Separate multiple tags with English commas": "多個標籤請用英文逗號分隔",
"Excerpt": "摘要",
"Leave it blank to use auto-generated excerpt": "留空則使用自動生成的摘要",
"General": "一般",
"Social Platforms": "社交媒體",
"Navigation": "導航",
"Domains": "網域",
"Custom CSS": "自定義 CSS",
"Operators": "身份授權",
"Export data": "匯出資料",
"Site Settings": "網站設置",
"Icon": "圖標",
"Banner": "橫幅",
"Supports both pictures and videos.": "支持圖片和影片。",
"Name": "名稱",
"Description": "自我介紹",
"Integrate Google Analytics": "將 Google Analytics 整合至你的網站中。請按照<2>這裡</2>的說明查找你的 Measurement ID。",
"Integrate Umami Cloud Analytics": "將 Umami Cloud Analytics 整合至你的網站中。請按照<2>這裡</2>的說明查找你的 Website ID。",
"Integrate Umami Cloud Analytics (set url)": "留空以使用<2>Umami Cloud</2>。",
"Save": "儲存",
"Tips": "提示",
"social tips": {
"p1": "這些社交平台會顯示在你的 xLog 的右下角。",
"p2": "我們支援<2>這些平台</2>自動顯示其標誌和連結。對於其他平台將顯示預設標誌。如果你有其他需求請隨時向我們提交問題或PR以支援更多的平台。",
"p3": "你還可以在 <2>xSync</2> 上連接到 Twitter、Telegram 頻道、Medium、Substack 等平台,並自動同步內容。當你在那裡設置同步後,它也會顯示在這裡。"
},
"Platform": "平台",
"Identity": "身份",
"Remove": "移除",
"New Item": "新建項目",
"xLog provides some out-of-the-box built-in pages": "xLog 提供了一些開箱即用的內建頁面",
"Home page": "首頁",
"Archives page": "封存頁面",
"Tag page": "標籤頁面",
"NFT Showcase page": "NFT 展示頁面",
"Label": "標籤",
"URL": "連結",
"subdomain": "子網域",
"Custom Domain": "自訂網域",
"Set the following record on your DNS provider to active your custom domain": "在你的 DNS 提供商上設定以下紀錄以啟用自訂網域",
"Scope: These styles will be applied to your entire blog, including this dashboard.": "範圍:這些樣式將套用至你的整個部落格,包括此儀表板。",
"Support": "支援",
"CSS variables: xLog provides some built-in CSS variables": "CSS 變數xLog 提供了一些內建的 CSS 變數",
"Address": "地址",
"Character": "身份",
"New operator": "新建授權",
"Operator Address": "授權地址",
"Operator Character Check": "身份授權檢查",
"Warning": "警告",
"Operators have permissions to enter your dashboard, change your settings(excluding xLog subdomain) and post, modify, delete contents on your site.": "授權者可以進入你的儀表板,更改你的設定(不包括 xLog 子網域)並在你的網站上發佈、修改、刪除內容。",
"Add": "新增",
"xLog News": "xLog 新聞",
"More": "更多",
"Meet New Friends": "認識新朋友",
"Need help?": "需要幫助?",
"Your post has been securely stored on the blockchain. Now you may want to": "你的文章已經安全地存儲在區塊鏈上。現在你可能想要",
"View the post": "查看文章",
"View the transaction": "查看交易",
"Share to Twitter": "分享到 Twitter",
"Got it, thanks!": "知道了,謝謝!",
"Published!": "已發佈!",
"Title goes here...": "標題在這裡...",
"Start writing...": "開始寫作...",
"Slug can only contain letters, numbers, hyphens, and underscores.": "短網址只能包含字母、數字、連字符和底線。",
"Date": "日期",
"Prize": "獎金",
"Winners": "獲獎者",
"Learn more": "進一步了解",
"Ended": "已結束",
"Upcoming": "即將開始",
"Ongoing": "進行中",
"Import from Markdown files": "從 Markdown 檔案匯入",
"Import from Mirror.xyz": "從 Mirror.xyz 匯入",
"Select Markdown Files": "選擇 Markdown 檔案",
"No files chosen": "未選擇檔案",
"No entries": "無項目",
"Preview your Mirror.xyz entries": "預覽你的 Mirror.xyz 項目",
"Please select .md files, multiple files are supported, and front matter is supported.": "請選擇 .md 檔案,支援多個檔案,並支援 front matter。",
"Achievements": "成就",
"Tokens": "虛擬貨幣",
"$MIRA is a valuable token in the Crossbell world, and can be easily exchanged on the Crosschain Bridge and Uniswap.": "$MIRA 是 Crossbell 世界中的一種有珍貴的代幣,可在跨鏈橋和 Uniswap 上輕鬆兌換。",
"In the early stage, xLog will use $MIRA to motivate creators.": "在早期階段xLog 將使用 $MIRA 激勵創作者。",
"You can obtain $MIRA through the following ways:": "你可以透過以下方式獲得 $MIRA",
"Creator incentive program.": "創作者激勵計畫。",
"Participate in events.": "參加活動。",
"Swap from USDC.": "從 USDC 兌換。",
"Received tips and sponsorships from readers.": "從讀者收到打賞和贊助。",
"Swap to USDC": "兌換成 USDC",
"Free Claim": "免費領取",
"$XLOG is related to xLog DAO, but it's too early now, please stay tuned.": "$XLOG 與 xLog DAO 相關,但現在還為時尚早,敬請期待。",
"Stay tuned": "敬請期待",
"This is a token used for interaction on the Crossbell blockchain, which can be claimed for free from the faucet, so there's no need to worry about its balance.": "這是一個用於 Crossbell 區塊鏈上互動的虛擬貨幣,可以從水龍頭免費領取,因此不用擔心其餘額。",
"Balance": "餘額",
"Swap Tutorial": "兌換教學",
"DNS Checking": "DNS 檢查中",
"DNS check passed.": "DNS 檢查通過。",
"DNS check failed.": "DNS 檢查失敗。",
"Recheck": "重新檢查",
"Hottest": "熱門",
"Latest": "最新",
"Following": "追蹤",
"Create a Post": "新增文章",
"Change Site Icon or domain": "變更網站圖示或域名",
"Join xLog's Discord channel": "加入 xLog 的 Discord 頻道",
"Participate in the development of xLog": "參與 xLog 的發展",
"Follow xLog's Twitter": "追蹤 xLog 的 Twitter",
"Check out the updates of other bloggers": "看看其他 Blogger 的更新",
"You have already imported them, please enter the post page to create a new post!": "已經匯入完成了哦,請到文章頁面新增新的內容!",
"Today": "今天",
"This month": "本月",
"This week": "本周",
"All time": "全部",
"delete_confirmation_post": "你確認要刪除這篇文章嗎?",
"delete_confirmation_page": "你確認要刪除這個頁面嗎?",
"Confirm": "確認",
"Cancel": "取消",
"Published a new post on my blockchain blog: {{title}}. Check it out now!": "我在我的區塊鏈部落格發佈了一片新的文章《{{title}}》,快來看看吧!",
"Comments": "留言",
"You can subscribe to comments through an RSS reader to receive timely reminders.": "你可以通過 RSS 閱讀器訂閱留言,以便及時收到通知。",
"Subscription address:": "訂閱地址:",
"comment on your": "回覆了你的 {{type}}「<tolink>{{toTitle}}</tolink>」",
"{{newCount}} new comments": "{{newCount}} 條新留言",
"Upload All Images to IPFS": "上傳所有圖片到 IPFS",
"Help: Markdown syntax and components used by xLog": "幫助xLog 使用的 Markdown 語法和組件",
"Align Center": "居中",
"Align Right": "靠右",
"Formula": "公式",
"Advanced Settings": "高級設置",
"Disable AI-generated summary": "禁用 AI 生成的摘要",
"Pin": "釘選",
"Unpin": "取消釘選"
}

View File

@ -1,61 +1,61 @@
{
"Write": "Write",
"Own": "Own",
"Earn": "Earn",
".": ".",
"Look at others'": "看看別人",
"description": "<0>xLog</0>。最佳 <7>開源</7> <3>區塊鏈</3> 部落格社群。",
"Get my xLog in 5 minutes": "五分鐘撰寫自我",
"Explore the xLog way": "探索 xLog 之路",
"features": {
"Write": {
"subtitle": "靈感來臨,牢牢抓住",
"description": "釋放創造力,成為時間管理大師!讓寫作更順暢,專注創造未來。"
},
"Own": {
"subtitle": "鏈上內容,安全無憂",
"description": "通過 Crossbell 區塊鏈發佈你的內容,完全掌控你的權利與安全。<br> xLog 不存儲任何資料,無法剝奪或修改你的內容和權利,即使 xLog 想這樣做。<aown>了解 Crossbell 是如何工作的。</aown>",
"extra": {
"title": "不要輕信,堅持驗證",
"description": "不輕信任何人,包括 xLog。建議檢查交易歷史與區塊鏈合約代碼驗證事實是否符合 xLog 所聲明。",
"button": "揭開 xLog 的神秘面紗"
}
},
"Earn": {
"subtitle": "賺取虛擬貨幣和權益",
"description": "區塊鏈為優秀的內容創作者提供透明公正的獎勵機會xLog DAO 更進一步促進社群發展。"
}
"Write": "Write",
"Own": "Own",
"Earn": "Earn",
".": ".",
"Look at others'": "看看別人",
"description": "<0>xLog</0>。最佳 <7>開源</7> <3>區塊鏈</3> 部落格社群。",
"Get my xLog in 5 minutes": "五分鐘撰寫自我",
"Explore the xLog way": "探索 xLog 之路",
"features": {
"Write": {
"subtitle": "靈感來臨,牢牢抓住",
"description": "釋放創造力,成為時間管理大師!讓寫作更順暢,專注創造未來。"
},
"Home": "首頁",
"Activities": "文章流",
"Source Code": "原始碼",
"Features": "特色",
"Showcase": "展示櫃",
"Integration": "整合",
"Visit": "訪問",
"Easy to get started": "讓寫作更簡單",
"Easy to get started text": "xLog 支持<strong> Web3 錢包</strong> 和 <strong>電子郵件</strong> 連接讓你輕鬆創建定制化部落格享有自定義域名、訂閱、留言、NFT 鑄造、RSS 訂閱和 AI 增強等功能。只需 5 分鐘即可完成,無需申請或費用。",
"Elegant experience": "優雅永不過時",
"Elegant experience text": "雙欄編輯器,<strong>實時預覽</strong>,創作無壓力,使用標準的 <strong> Markdown 語法</strong> ,支持 <strong>HTML</strong> 、 <strong>音視頻</strong> 和 <strong>數學公式</strong>。頁面設計優雅,為讀者提供舒適的閱讀體驗。",
"Fast": "一切精彩的背後",
"Fast text": "區塊鏈低效?不!高效緩存機制和多種優化方案,激發區塊鏈的 <strong>極致性能</strong> ,同時提供 <strong>PWA</strong> 讓您輕鬆本地安裝和使用,加速實現目標!",
"Safe": "資安,我最在行",
"Safe text": "所有資料,包括配置、文章、訂閱、留言等,都被安全地存儲在 <strong>區塊鏈</strong> 上。只有您持有的 <strong>私鑰</strong> 才能掌控和訪問這些資料,確保您的隱私得到最大程度的保護。",
"Customizable": "創意,自由揮灑",
"Customizable text": "您可以自由地使用 <strong>自己的域名</strong> 在自己喜愛的風格下自定義網站xLog 提供豐富的主題和插件系統,讓您 <strong>隨心所欲</strong> 地打造屬於自己的個性化網站。展現您的獨特風采!",
"Open": "開放,運用自如",
"Open text": "xLog 提供導入和導出工具,豐富的 <strong>API</strong> 和 <strong>第三方</strong> 整合,讓您更加自由地管理和使用網站。所有代碼都在 GitHub 上 <strong>開源</strong> ,所有資料都在區塊鏈上 <strong>透明存儲</strong> ,沒有任何隱瞞。",
"Creator Incentives": "創作者激勵",
"Creator Incentives text": "在早期階段xLog 以 <strong>MIRA</strong> 提供<aincentive>激勵</aincentive>。我們正積極構建代幣經濟模型,力求讓 xLog 成為發布高質量內容的最佳平台。我們希望為您提供最好的體驗和最大的價值回報,讓您在創作、分享和社交中感到更加自由和快樂。",
"DAO": "去中心化自治組織",
"DAO text": "我們將建立一個 xLog DAO讓創作者可以使用 <strong>虛擬貨幣</strong> 進行投票。我們相信,這將使我們的社區更加開放、公平和民主化,讓每個人都能發揮自己的影響力和貢獻價值。我們期待與您攜手打造一個更加繁榮和有活力的社區!",
"Discover these awesome teams and creators on xLog (sorted by update time)": "在 xLog 上發現這些超棒的團隊和創作者們(按更新時間排序)",
"Follow All!": "追蹤所有人!",
"Already Followed All!": "已追蹤所有人!",
"Show more": "顯示更多",
"Submit yours": "看看你的👀",
"xLog's open design allows it to integrate with many other open protocols and applications without friction.": "我們相信,只有在開放、互聯、共享的基礎上才能有更大的價值和創新。",
"Dashboard": "主控臺",
"Suggested creators for you": "推薦給你一些優質創作者",
"Hot Topics": "流行話題"
"Own": {
"subtitle": "鏈上內容,安全無憂",
"description": "通過 Crossbell 區塊鏈發佈你的內容,完全掌控你的權利與安全。<br> xLog 不存儲任何資料,無法剝奪或修改你的內容和權利,即使 xLog 想這樣做。<aown>了解 Crossbell 是如何工作的。</aown>",
"extra": {
"title": "不要輕信,堅持驗證",
"description": "不輕信任何人,包括 xLog。建議檢查交易歷史與區塊鏈合約代碼驗證事實是否符合 xLog 所聲明。",
"button": "揭開 xLog 的神秘面紗"
}
},
"Earn": {
"subtitle": "賺取虛擬貨幣和權益",
"description": "區塊鏈為優秀的內容創作者提供透明公正的獎勵機會xLog DAO 更進一步促進社群發展。"
}
},
"Home": "首頁",
"Activities": "文章流",
"Source Code": "原始碼",
"Features": "特色",
"Showcase": "展示櫃",
"Integration": "整合",
"Visit": "訪問",
"Easy to get started": "讓寫作更簡單",
"Easy to get started text": "xLog 支持<strong> Web3 錢包</strong> 和 <strong>電子郵件</strong> 連接讓你輕鬆創建定制化部落格享有自定義域名、訂閱、留言、NFT 鑄造、RSS 訂閱和 AI 增強等功能。只需 5 分鐘即可完成,無需申請或費用。",
"Elegant experience": "優雅永不過時",
"Elegant experience text": "雙欄編輯器,<strong>實時預覽</strong>,創作無壓力,使用標準的 <strong> Markdown 語法</strong> ,支持 <strong>HTML</strong> 、 <strong>音視頻</strong> 和 <strong>數學公式</strong>。頁面設計優雅,為讀者提供舒適的閱讀體驗。",
"Fast": "一切精彩的背後",
"Fast text": "區塊鏈低效?不!高效緩存機制和多種優化方案,激發區塊鏈的 <strong>極致性能</strong> ,同時提供 <strong>PWA</strong> 讓您輕鬆本地安裝和使用,加速實現目標!",
"Safe": "資安,我最在行",
"Safe text": "所有資料,包括配置、文章、訂閱、留言等,都被安全地存儲在 <strong>區塊鏈</strong> 上。只有您持有的 <strong>私鑰</strong> 才能掌控和訪問這些資料,確保您的隱私得到最大程度的保護。",
"Customizable": "創意,自由揮灑",
"Customizable text": "您可以自由地使用 <strong>自己的域名</strong> 在自己喜愛的風格下自定義網站xLog 提供豐富的主題和插件系統,讓您 <strong>隨心所欲</strong> 地打造屬於自己的個性化網站。展現您的獨特風采!",
"Open": "開放,運用自如",
"Open text": "xLog 提供導入和導出工具,豐富的 <strong>API</strong> 和 <strong>第三方</strong> 整合,讓您更加自由地管理和使用網站。所有代碼都在 GitHub 上 <strong>開源</strong> ,所有資料都在區塊鏈上 <strong>透明存儲</strong> ,沒有任何隱瞞。",
"Creator Incentives": "創作者激勵",
"Creator Incentives text": "在早期階段xLog 以 <strong>MIRA</strong> 提供<aincentive>激勵</aincentive>。我們正積極構建代幣經濟模型,力求讓 xLog 成為發布高質量內容的最佳平台。我們希望為您提供最好的體驗和最大的價值回報,讓您在創作、分享和社交中感到更加自由和快樂。",
"DAO": "去中心化自治組織",
"DAO text": "我們將建立一個 xLog DAO讓創作者可以使用 <strong>虛擬貨幣</strong> 進行投票。我們相信,這將使我們的社區更加開放、公平和民主化,讓每個人都能發揮自己的影響力和貢獻價值。我們期待與您攜手打造一個更加繁榮和有活力的社區!",
"Discover these awesome teams and creators on xLog (sorted by update time)": "在 xLog 上發現這些超棒的團隊和創作者們(按更新時間排序)",
"Follow All!": "追蹤所有人!",
"Already Followed All!": "已追蹤所有人!",
"Show more": "顯示更多",
"Submit yours": "看看你的👀",
"xLog's open design allows it to integrate with many other open protocols and applications without friction.": "我們相信,只有在開放、互聯、共享的基礎上才能有更大的價值和創新。",
"Dashboard": "主控臺",
"Suggested creators for you": "推薦給你一些優質創作者",
"Hot Topics": "流行話題"
}

View File

@ -52,22 +52,22 @@
"DAO text": "将建立一个xLog DAO在其中创作者使用<strong>代币</strong>进行投票。",
"Discover these awesome teams and creators on xLog (sorted by update time)": "在 xLog 上发现这些超棒的团队和创作者们(按更新时间排序)",
"Follow All!": "关注所有!",
"Already Followed All!" : "已经关注所有!",
"Already Followed All!": "已经关注所有!",
"Show more": "显示更多",
"Submit yours": "提交你的",
"xLog's open design allows it to integrate with many other open protocols and applications without friction.": "xLog 的开放式设计使其能够与许多其他开放协议和应用程序无缝集成,没有任何限制。",
"Dashboard": "仪表盘",
"Suggested creators for you": "为你推荐的创作者",
"Hot Topics": "热门话题",
"Topic Keywords" : "话题关键词",
"Topic Keywords": "话题关键词",
"Topic Tags": "话题标签",
"Let's talk about xLog, whether to praise or criticize it." : "让我们来谈谈 xLog无论赞美和批评。",
"Let's talk about xLog, whether to praise or criticize it.": "让我们来谈谈 xLog无论赞美和批评。",
"Artificial Intelligence": "人工智能",
"The world is undergoing changes, and we are at the center of it.": "世界正在发生变革,而我们正处其中心。",
"Life Journal": "生活日记",
"Discover new perspectives and insights in others' weekly, monthly, or yearly journal.": "在别人的周月年记中发现新观点和见解。",
"Fiction": "虚构小说",
"Experience a world of imagination through these fiction stories." : "体验一个充满想象力的虚构世界。",
"Experience a world of imagination through these fiction stories.": "体验一个充满想象力的虚构世界。",
"Coding": "编程",
"Participate in Topic": "参与话题"
}
}

View File

@ -16,12 +16,15 @@ export function cn(...inputs: ClassValue[]) {
}
export function pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {
return keys.reduce((acc, key) => {
if (obj && Object.prototype.hasOwnProperty.call(obj, key)) {
acc[key] = obj[key]
}
return acc
}, {} as Pick<T, K>)
return keys.reduce(
(acc, key) => {
if (obj && Object.prototype.hasOwnProperty.call(obj, key)) {
acc[key] = obj[key]
}
return acc
},
{} as Pick<T, K>,
)
}
export const isServerSide = () => typeof window === "undefined"

View File

@ -158,9 +158,8 @@ export async function getFeed({
return {
list,
cursor: list?.length
? `${list[list.length - 1]?.characterId}_${
list[list.length - 1]?.noteId
}`
? `${list[list.length - 1]?.characterId}_${list[list.length - 1]
?.noteId}`
: undefined,
count: list?.length || 0,
}
@ -277,9 +276,8 @@ export async function getFeed({
return {
list: list,
cursor: list?.length
? `${list[list.length - 1]?.characterId}_${
list[list.length - 1]?.noteId
}`
? `${list[list.length - 1]?.characterId}_${list[list.length - 1]
?.noteId}`
: undefined,
count: list?.length || 0,
}
@ -370,9 +368,8 @@ export async function getFeed({
return {
list: list,
cursor: list?.length
? `${list[list.length - 1]?.characterId}_${
list[list.length - 1]?.noteId
}`
? `${list[list.length - 1]?.characterId}_${list[list.length - 1]
?.noteId}`
: undefined,
count: list?.length || 0,
}

View File

@ -103,8 +103,8 @@ export async function getCommentsBySite(input: {
nestedNotesLimit: 20,
})
notes.list = notes.list.filter((item) =>
item.toNote?.metadata?.content?.sources?.includes("xlog"),
notes.list = notes.list.filter(
(item) => item.toNote?.metadata?.content?.sources?.includes("xlog"),
)
return notes

View File

@ -1,10 +1,6 @@
{
"compilerOptions": {
"lib": [
"DOM",
"DOM.Iterable",
"esnext"
],
"lib": ["DOM", "DOM.Iterable", "esnext"],
"isolatedModules": true,
"esModuleInterop": true,
"jsx": "preserve",
@ -14,9 +10,7 @@
"strict": true,
"baseUrl": ".",
"paths": {
"~/*": [
"./src/*"
]
"~/*": ["./src/*"]
},
"noEmit": true,
"forceConsistentCasingInFileNames": true,
@ -24,22 +18,13 @@
"skipLibCheck": true,
"incremental": true,
"module": "esnext",
"typeRoots": [
"./types"
],
"typeRoots": ["./types"],
"plugins": [
{
"name": "next"
}
]
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts"
],
"exclude": [
"node_modules"
]
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}