Files
sori.studio/server/utils/site-settings.js

70 lines
2.3 KiB
JavaScript

import { DEFAULT_BRAND_COLOR } from '../../lib/brand-color.js'
import {
DEFAULT_ANNOUNCEMENT_ALIGNMENT,
DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR
} from '../../lib/announcement-bar.js'
import { DEFAULT_SIGNUP_BLOCKED_USERNAMES } from '../../lib/signup-blocked-usernames.js'
import { DEFAULT_POST_TAG_LIMIT } from '../../lib/post-tag-limit.js'
import {
DEFAULT_FEATURED_POST_LIMIT,
DEFAULT_HOME_LATEST_POST_LIMIT,
DEFAULT_PAGE_SECTION_ITEM_LIMIT,
DEFAULT_POST_LIST_PAGE_SIZE,
DEFAULT_TAG_POST_LIST_PAGE_SIZE
} from '../../lib/display-count-settings.js'
import {
DEFAULT_UPLOAD_MAX_FILE_COUNT,
DEFAULT_UPLOAD_MAX_TOTAL_SIZE
} from '../../lib/upload-size-limit.js'
/**
* 기본 사이트 설정 반환
* @returns {Object} 기본 사이트 설정
*/
export const getDefaultSiteSettings = () => {
const config = useRuntimeConfig()
const title = config.public.siteTitle || 'sori.studio'
return {
title,
description: 'sori.studio 개인 블로그',
siteUrl: config.public.siteUrl || 'https://sori.studio',
logoText: '井',
logoUrl: '',
faviconUrl: '',
copyrightText: `©${new Date().getFullYear()} ${title}`,
socialLinks: [],
showPostUpdatedAt: false,
postTagLimit: DEFAULT_POST_TAG_LIMIT,
homeLatestPostLimit: DEFAULT_HOME_LATEST_POST_LIMIT,
postListPageSize: DEFAULT_POST_LIST_PAGE_SIZE,
tagPostListPageSize: DEFAULT_TAG_POST_LIST_PAGE_SIZE,
featuredPostLimit: DEFAULT_FEATURED_POST_LIMIT,
pageSectionItemLimit: DEFAULT_PAGE_SECTION_ITEM_LIMIT,
uploadMaxFileCount: DEFAULT_UPLOAD_MAX_FILE_COUNT,
uploadMaxTotalSize: DEFAULT_UPLOAD_MAX_TOTAL_SIZE,
homeCoverImageUrl: '',
homeCoverDarkImageUrl: '',
homeCoverTitle: '',
homeCoverText: '',
brandColor: DEFAULT_BRAND_COLOR,
announcementEnabled: false,
announcementText: '',
announcementUrl: '',
announcementBackgroundColor: DEFAULT_ANNOUNCEMENT_BACKGROUND_COLOR,
announcementAlignment: DEFAULT_ANNOUNCEMENT_ALIGNMENT,
signupBlockedUsernames: [...DEFAULT_SIGNUP_BLOCKED_USERNAMES],
adsTxt: '',
customHeadCode: '',
customFooterCode: '',
adHomeFeedCode: '',
adHomeInfeedCode: '',
adSidebarCode: '',
adPostSidebarCode: '',
adPostTopCode: '',
adPostInArticleCode: '',
adPostBottomCode: '',
updatedAt: null
}
}