mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-22 15:09:43 +00:00
合并4.1.1
This commit is contained in:
174
.env.local
174
.env.local
@@ -1,2 +1,174 @@
|
||||
# 环境变量 @see https://www.nextjs.cn/docs/basic-features/environment-variables
|
||||
NEXT_PUBLIC_VERSION=4.1.1
|
||||
NEXT_PUBLIC_VERSION=4.1.1
|
||||
|
||||
|
||||
# 可在此添加环境变量,去掉最左边的(# )注释即可
|
||||
# Notion页面ID,必须
|
||||
# NOTION_PAGE_ID=
|
||||
|
||||
# 非必须
|
||||
# NEXT_PUBLIC_PSEUDO_STATIC=
|
||||
# NEXT_PUBLIC_REVALIDATE_SECOND=
|
||||
# NEXT_PUBLIC_THEME=
|
||||
# NEXT_PUBLIC_THEME_SWITCH=
|
||||
# NEXT_PUBLIC_LANG=
|
||||
# NEXT_PUBLIC_APPEARANCE=
|
||||
# NEXT_PUBLIC_APPEARANCE_DARK_TIME=
|
||||
# NEXT_PUBLIC_GREETING_WORDS=
|
||||
# NEXT_PUBLIC_CUSTOM_MENU=
|
||||
# NEXT_PUBLIC_AUTHOR=
|
||||
# NEXT_PUBLIC_BIO=
|
||||
# NEXT_PUBLIC_LINK=
|
||||
# NEXT_PUBLIC_KEYWORD=
|
||||
# NEXT_PUBLIC_CONTACT_EMAIL=
|
||||
# NEXT_PUBLIC_CONTACT_WEIBO=
|
||||
# NEXT_PUBLIC_CONTACT_TWITTER=
|
||||
# NEXT_PUBLIC_CONTACT_GITHUB=
|
||||
# NEXT_PUBLIC_CONTACT_TELEGRAM=
|
||||
# NEXT_PUBLIC_CONTACT_LINKEDIN=
|
||||
# NEXT_PUBLIC_CONTACT_INSTAGRAM=
|
||||
# NEXT_PUBLIC_CONTACT_BILIBILI=
|
||||
# NEXT_PUBLIC_CONTACT_YOUTUBE=
|
||||
# NEXT_PUBLIC_FAVICON=
|
||||
# NEXT_PUBLIC_FONT_STYLE=
|
||||
# NEXT_PUBLIC_FONT_URL=
|
||||
# NEXT_PUBLIC_FONT_SANS=
|
||||
# NEXT_PUBLIC_FONT_SERIF=
|
||||
# NEXT_PUBLIC_FONT_AWESOME_PATH=
|
||||
# NEXT_PUBLIC_PRISM_THEME_PREFIX_PATH=
|
||||
# NEXT_PUBLIC_PRISM_THEME_SWITCH=
|
||||
# NEXT_PUBLIC_PRISM_THEME_LIGHT_PATH=
|
||||
# NEXT_PUBLIC_PRISM_THEME_DARK_PATH=
|
||||
# NEXT_PUBLIC_CODE_MAC_BAR=
|
||||
# NEXT_PUBLIC_CODE_LINE_NUMBERS=
|
||||
# NEXT_PUBLIC_CODE_COLLAPSE=
|
||||
# NEXT_PUBLIC_CODE_COLLAPSE_EXPAND_DEFAULT=
|
||||
# NEXT_PUBLIC_MERMAID_CDN=
|
||||
# NEXT_PUBLIC_QR_CODE_CDN=
|
||||
# NEXT_PUBLIC_BACKGROUND_LIGHT=
|
||||
# NEXT_PUBLIC_BACKGROUND_DARK=
|
||||
# NEXT_PUBLIC_SUB_PATH=
|
||||
# NEXT_PUBLIC_POST_SHARE_BAR=
|
||||
# NEXT_PUBLIC_POST_SHARE_SERVICES=
|
||||
# NEXT_PUBLIC_POST_URL_PREFIX=
|
||||
# NEXT_PUBLIC_POST_LIST_STYLE=
|
||||
# NEXT_PUBLIC_POST_PREVIEW=
|
||||
# NEXT_PUBLIC_POST_RECOMMEND_COUNT=
|
||||
# NEXT_PUBLIC_POSTS_PER_PAGE=
|
||||
# NEXT_PUBLIC_POST_SORT_BY=
|
||||
# NEXT_PUBLIC_ALGOLIA_APP_ID=
|
||||
# ALGOLIA_ADMIN_APP_KEY=
|
||||
# NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_APP_KEY=
|
||||
# NEXT_PUBLIC_ALGOLIA_INDEX=
|
||||
# NEXT_PUBLIC_PREVIEW_CATEGORY_COUNT=
|
||||
# NEXT_PUBLIC_PREVIEW_TAG_COUNT=
|
||||
# NEXT_PUBLIC_POST_DISABLE_GALLERY_CLICK=
|
||||
# NEXT_PUBLIC_FIREWORKS=
|
||||
# NEXT_PUBLIC_FIREWORKS_COLOR=
|
||||
# NEXT_PUBLIC_SAKURA=
|
||||
# NEXT_PUBLIC_NEST=
|
||||
# NEXT_PUBLIC_FLUTTERINGRIBBON=
|
||||
# NEXT_PUBLIC_RIBBON=
|
||||
# NEXT_PUBLIC_STARRY_SKY=
|
||||
# NEXT_PUBLIC_CHATBASE_ID=
|
||||
# NEXT_PUBLIC_WEB_WHIZ_ENABLED=
|
||||
# NEXT_PUBLIC_WEB_WHIZ_BASE_URL=
|
||||
# NEXT_PUBLIC_WEB_WHIZ_CHAT_BOT_ID=
|
||||
# NEXT_PUBLIC_WIDGET_PET=
|
||||
# NEXT_PUBLIC_WIDGET_PET_LINK=
|
||||
# NEXT_PUBLIC_WIDGET_PET_SWITCH_THEME=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_VISIBLE=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_AUTO_PLAY=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_LRC_TYPE=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_CDN_URL=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_ORDER=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_AUDIO_LIST=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_METING=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_METING_SERVER=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_METING_ID=
|
||||
# NEXT_PUBLIC_MUSIC_PLAYER_METING_LRC_TYPE=
|
||||
# NEXT_PUBLIC_COMMENT_ARTALK_SERVER=
|
||||
# NEXT_PUBLIC_COMMENT_ARTALK_JS=
|
||||
# NEXT_PUBLIC_COMMENT_ARTALK_CSS=
|
||||
# NEXT_PUBLIC_COMMENT_ENV_ID=
|
||||
# NEXT_PUBLIC_COMMENT_TWIKOO_COUNT_ENABLE=
|
||||
# NEXT_PUBLIC_COMMENT_TWIKOO_CDN_URL=
|
||||
# NEXT_PUBLIC_COMMENT_UTTERRANCES_REPO=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_REPO=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_REPO_ID=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_CATEGORY_ID=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_MAPPING=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_REACTIONS_ENABLED=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_EMIT_METADATA=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_INPUT_POSITION=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_LANG=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_LOADING=
|
||||
# NEXT_PUBLIC_COMMENT_GISCUS_CROSSORIGIN=
|
||||
# NEXT_PUBLIC_COMMENT_CUSDIS_APP_ID=
|
||||
# NEXT_PUBLIC_COMMENT_CUSDIS_HOST=
|
||||
# NEXT_PUBLIC_COMMENT_CUSDIS_SCRIPT_SRC=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_REPO=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_OWNER=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_ADMIN=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_CLIENT_ID=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_CLIENT_SECRET=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_JS_CDN_URL=
|
||||
# NEXT_PUBLIC_COMMENT_GITALK_CSS_CDN_URL=
|
||||
# NEXT_PUBLIC_COMMENT_GITTER_ROOM=
|
||||
# NEXT_PUBLIC_COMMENT_DAO_VOICE_ID=
|
||||
# NEXT_PUBLIC_COMMENT_TIDIO_ID=
|
||||
# NEXT_PUBLIC_VALINE_CDN=
|
||||
# NEXT_PUBLIC_VALINE_ID=
|
||||
# NEXT_PUBLIC_VALINE_KEY=
|
||||
# NEXT_PUBLIC_VALINE_SERVER_URLS=
|
||||
# NEXT_PUBLIC_VALINE_PLACEHOLDER=
|
||||
# NEXT_PUBLIC_WALINE_SERVER_URL=
|
||||
# NEXT_PUBLIC_WALINE_RECENT=
|
||||
# NEXT_PUBLIC_WEBMENTION_ENABLE=
|
||||
# NEXT_PUBLIC_WEBMENTION_AUTH=
|
||||
# NEXT_PUBLIC_WEBMENTION_HOSTNAME=
|
||||
# NEXT_PUBLIC_TWITTER_USERNAME=
|
||||
# NEXT_PUBLIC_WEBMENTION_TOKEN=
|
||||
# NEXT_PUBLIC_ANALYTICS_VERCEL=
|
||||
# NEXT_PUBLIC_ANALYTICS_BUSUANZI_ENABLE=
|
||||
# NEXT_PUBLIC_ANALYTICS_BAIDU_ID=
|
||||
# NEXT_PUBLIC_ANALYTICS_CNZZ_ID=
|
||||
# NEXT_PUBLIC_ANALYTICS_GOOGLE_ID=
|
||||
# NEXT_PUBLIC_ANALYTICS_ACKEE_TRACKER=
|
||||
# NEXT_PUBLIC_ANALYTICS_ACKEE_DATA_SERVER=
|
||||
# NEXT_PUBLIC_ANALYTICS_ACKEE_DOMAIN_ID=
|
||||
# NEXT_PUBLIC_SEO_GOOGLE_SITE_VERIFICATION=
|
||||
# NEXT_PUBLIC_SEO_BAIDU_SITE_VERIFICATION=
|
||||
# NEXT_PUBLIC_ADSENSE_GOOGLE_ID=
|
||||
# NEXT_PUBLIC_ADSENSE_GOOGLE_TEST=
|
||||
# NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_IN_ARTICLE=
|
||||
# NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_FLOW=
|
||||
# NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_NATIVE=
|
||||
# NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_AUTO=
|
||||
# NEXT_PUBLIC_WWAD_ID=
|
||||
# NEXT_PUBLIC_WWADS_AD_BLOCK_DETECT=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_PASSWORD=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TYPE=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TYPE_POST=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TYPE_PAGE=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TYPE_NOTICE=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TYPE_MENU=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TYPE_SUB_MENU=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TITLE=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_STATUS=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_STATUS_PUBLISH=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_STATUS_INVISIBLE=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_SUMMARY=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_SLUG=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_CATEGORY=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_DATE=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_TAGS=
|
||||
# NEXT_PUBLIC_NOTION_PROPERTY_ICON=
|
||||
# NEXT_PUBLIC_ENABLE_RSS=
|
||||
# MAILCHIMP_LIST_ID=
|
||||
# MAILCHIMP_API_KEY=
|
||||
# NEXT_PUBLIC_DEBUG=
|
||||
# ENABLE_CACHE=
|
||||
# VERCEL_ENV=
|
||||
# NEXT_PUBLIC_VERSION=
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: Feature request (新特性建议)
|
||||
about: Suggest an idea for Nobelium.
|
||||
about: Suggest an idea for Notion Next.
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: tangly1024
|
||||
|
||||
@@ -8,7 +8,7 @@ const BLOG = {
|
||||
THEME: process.env.NEXT_PUBLIC_THEME || 'simple', // 当前主题,在themes文件夹下可找到所有支持的主题;主题名称就是文件夹名,例如 example,fukasawa,gitbook,heo,hexo,landing,matery,medium,next,nobelium,plog,simple
|
||||
THEME_SWITCH: process.env.NEXT_PUBLIC_THEME_SWITCH || false, // 是否显示切换主题按钮
|
||||
LANG: process.env.NEXT_PUBLIC_LANG || 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
|
||||
SINCE: 2021, // e.g if leave this empty, current year will be used.
|
||||
SINCE: process.env.NEXT_SINCE || 2021, // e.g if leave this empty, current year will be used.
|
||||
APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
|
||||
APPEARANCE_DARK_TIME: process.env.NEXT_PUBLIC_APPEARANCE_DARK_TIME || [18, 6], // 夜间模式起至时间,false时关闭根据时间自动切换夜间模式
|
||||
|
||||
@@ -37,6 +37,11 @@ const BLOG = {
|
||||
|
||||
BLOG_FAVICON: process.env.NEXT_PUBLIC_FAVICON || '/favicon.ico', // blog favicon 配置, 默认使用 /public/favicon.ico,支持在线图片,如 https://img.imesong.com/favicon.png
|
||||
|
||||
RANDOM_IMAGE_URL: process.env.NEXT_PUBLIC_RANDOM_IMAGE_URL || '', // 随机图片API,如果未配置下面的关键字,主页封面,头像,文章封面图都会被替换为随机图片
|
||||
RANDOM_IMAGE_REPLACE_TEXT: process.env.NEXT_PUBLIC_RANDOM_IMAGE_NOT_REPLACE_TEXT || 'images.unsplash.com', // 触发替换图片的 url 关键字(多个支持用英文逗号分开),只有图片地址中包含此关键字才会替换为上方随机图片url
|
||||
// eg: images.unsplash.com(notion图床的所有图片都会替换),如果你在 notion 里已经添加了一个随机图片 url,恰巧那个服务跑路或者挂掉,想一键切换所有配图可以将该 url 配置在这里
|
||||
// 默认下会将你上传到 notion的主页封面图和头像也给替换,建议将主页封面图和头像放在其他图床,在 notion 里配置 link 即可。
|
||||
|
||||
// START ************网站字体*****************
|
||||
|
||||
FONT_STYLE: process.env.NEXT_PUBLIC_FONT_STYLE || 'font-sans', // ['font-serif','font-sans'] 两种可选,分别是衬线和无衬线: 参考 https://www.jianshu.com/p/55e410bd2115
|
||||
@@ -91,7 +96,7 @@ const BLOG = {
|
||||
CUSTOM_EXTERNAL_CSS: [''], // e.g. ['http://xx.com/style.css','http://xx.com/style.css']
|
||||
|
||||
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
|
||||
LAYOUT_SIDEBAR_REVERSE: false,
|
||||
LAYOUT_SIDEBAR_REVERSE: process.env.NEXT_PUBLIC_LAYOUT_SIDEBAR_REVERSE || false,
|
||||
|
||||
// 一个小插件展示你的facebook fan page~ @see https://tw.andys.pro/article/add-facebook-fanpage-notionnext
|
||||
FACEBOOK_PAGE_TITLE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_TITLE || null, // 邊欄 Facebook Page widget 的標題欄,填''則無標題欄 e.g FACEBOOK 粉絲團'
|
||||
@@ -239,7 +244,7 @@ const BLOG = {
|
||||
// twikoo
|
||||
COMMENT_TWIKOO_ENV_ID: process.env.NEXT_PUBLIC_COMMENT_ENV_ID || '', // TWIKOO后端地址 腾讯云环境填envId;Vercel环境填域名,教程:https://tangly1024.com/article/notionnext-twikoo
|
||||
COMMENT_TWIKOO_COUNT_ENABLE: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_COUNT_ENABLE || false, // 博客列表是否显示评论数
|
||||
COMMENT_TWIKOO_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_CDN_URL || 'https://cdn.staticfile.org/twikoo/1.6.16/twikoo.min.js', // twikoo客户端cdn
|
||||
COMMENT_TWIKOO_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_CDN_URL || 'https://cdn.staticfile.org/twikoo/1.6.17/twikoo.min.js', // twikoo客户端cdn
|
||||
|
||||
// utterance
|
||||
COMMENT_UTTERRANCES_REPO:
|
||||
@@ -319,6 +324,9 @@ const BLOG = {
|
||||
ANALYTICS_CNZZ_ID: process.env.NEXT_PUBLIC_ANALYTICS_CNZZ_ID || '', // 只需要填写站长统计的id, [cnzz_id] -> https://s9.cnzz.com/z_stat.php?id=[cnzz_id]&web_id=[cnzz_id]
|
||||
ANALYTICS_GOOGLE_ID: process.env.NEXT_PUBLIC_ANALYTICS_GOOGLE_ID || '', // 谷歌Analytics的id e.g: G-XXXXXXXXXX
|
||||
|
||||
// Matomo 网站统计
|
||||
MATOMO_HOST_URL: process.env.NEXT_PUBLIC_MATOMO_HOST_URL || '', // Matomo服务器地址,不带斜杠
|
||||
MATOMO_SITE_ID: process.env.NEXT_PUBLIC_MATOMO_SITE_ID || '', // Matomo网站ID
|
||||
// ACKEE网站访客统计工具
|
||||
ANALYTICS_ACKEE_TRACKER: process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_TRACKER || '', // e.g 'https://ackee.tangly1024.com/tracker.js'
|
||||
ANALYTICS_ACKEE_DATA_SERVER: process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DATA_SERVER || '', // e.g https://ackee.tangly1024.com , don't end with a slash
|
||||
|
||||
@@ -102,43 +102,74 @@ export default function AlgoliaSearchModal({ cRef }) {
|
||||
}
|
||||
|
||||
return (
|
||||
<div id='search-wrapper' className={`${isModalOpen ? 'opacity-100' : 'invisible opacity-0 pointer-events-none'} z-30 fixed h-screen w-screen left-0 top-0 mt-12 flex items-start justify-center`}>
|
||||
|
||||
{/* 模态框 */}
|
||||
<div className={`${isModalOpen ? 'opacity-100' : 'invisible opacity-0 translate-y-10'} flex flex-col justify-between w-full min-h-[10rem] max-w-xl dark:bg-hexo-black-gray dark:border-gray-800 bg-white dark:bg- p-5 rounded-lg z-50 shadow border hover:border-blue-600 duration-300 transition-all `}>
|
||||
|
||||
<div className='flex justify-between items-center'>
|
||||
<div className='text-2xl text-blue-600 font-bold'>搜索</div>
|
||||
<div><i className="text-gray-600 fa-solid fa-xmark p-1 cursor-pointer hover:text-blue-600" onClick={closeModal} ></i></div>
|
||||
</div>
|
||||
|
||||
<input type="text" placeholder="在这里输入搜索关键词..." onChange={(e) => handleInputChange(e)}
|
||||
className="text-black dark:text-gray-200 bg-gray-50 dark:bg-gray-600 outline-blue-500 w-full px-4 my-2 py-1 mb-4 border rounded-md" />
|
||||
|
||||
{/* 标签组 */}
|
||||
<div className='mb-4'>
|
||||
<TagGroups/>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
{searchResults.map((result) => (
|
||||
<li key={result.objectID} className="replace my-2">
|
||||
<a href={`${siteConfig('SUB_PATH')}/${result.slug}`} className="font-bold hover:text-blue-600 text-black dark:text-gray-200">
|
||||
{result.title}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
<Pagination totalPage={totalPage} page={page} switchPage={switchPage}/>
|
||||
<div>{totalHit > 0 && <div>共搜索到 {totalHit} 条结果,用时 {useTime} 毫秒</div> }</div>
|
||||
<div className='text-gray-600 mt-2'><span><i className="fa-brands fa-algolia"></i> Algolia 提供搜索服务</span> </div>
|
||||
</div>
|
||||
|
||||
{/* 遮罩 */}
|
||||
<div onClick={closeModal} className="z-30 fixed top-0 left-0 w-full h-full flex items-center justify-center glassmorphism" />
|
||||
|
||||
<div
|
||||
id="search-wrapper"
|
||||
className={`${
|
||||
isModalOpen ? 'opacity-100' : 'invisible opacity-0 pointer-events-none'
|
||||
} z-30 fixed h-screen w-screen left-0 top-0 mt-12 flex items-start justify-center`}
|
||||
>
|
||||
{/* 模态框 */}
|
||||
<div
|
||||
className={`${
|
||||
isModalOpen ? 'opacity-100' : 'invisible opacity-0 translate-y-10'
|
||||
} flex flex-col justify-between w-full min-h-[10rem] max-w-xl dark:bg-hexo-black-gray dark:border-gray-800 bg-white dark:bg- p-5 rounded-lg z-50 shadow border hover:border-blue-600 duration-300 transition-all `}
|
||||
>
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="text-2xl text-blue-600 font-bold">搜索</div>
|
||||
<div>
|
||||
<i
|
||||
className="text-gray-600 fa-solid fa-xmark p-1 cursor-pointer hover:text-blue-600"
|
||||
onClick={closeModal}
|
||||
></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
placeholder="在这里输入搜索关键词..."
|
||||
onChange={e => handleInputChange(e)}
|
||||
className="text-black dark:text-gray-200 bg-gray-50 dark:bg-gray-600 outline-blue-500 w-full px-4 my-2 py-1 mb-4 border rounded-md"
|
||||
/>
|
||||
|
||||
{/* 标签组 */}
|
||||
<div className="mb-4">
|
||||
<TagGroups />
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
{searchResults.map(result => (
|
||||
<li key={result.objectID} className="replace my-2">
|
||||
<a
|
||||
href={`${siteConfig('SUB_PATH', '')}/${result.slug}`}
|
||||
className="font-bold hover:text-blue-600 text-black dark:text-gray-200"
|
||||
>
|
||||
{result.title}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
<Pagination totalPage={totalPage} page={page} switchPage={switchPage} />
|
||||
<div>
|
||||
{totalHit > 0 && (
|
||||
<div>
|
||||
共搜索到 {totalHit} 条结果,用时 {useTime} 毫秒
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
<div className="text-gray-600 mt-2">
|
||||
<span>
|
||||
<i className="fa-brands fa-algolia"></i> Algolia 提供搜索服务
|
||||
</span>{' '}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 遮罩 */}
|
||||
<div
|
||||
onClick={closeModal}
|
||||
className="z-30 fixed top-0 left-0 w-full h-full flex items-center justify-center glassmorphism"
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -149,6 +149,24 @@ const ExternalPlugin = (props) => {
|
||||
/>
|
||||
</>)}
|
||||
|
||||
{/* Matomo 统计 */}
|
||||
{siteConfig('MATOMO_HOST_URL') && siteConfig('MATOMO_SITE_ID') && (
|
||||
<script async dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
var _paq = window._paq = window._paq || [];
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="//${siteConfig('MATOMO_HOST_URL')}/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', '${siteConfig('MATOMO_SITE_ID')}']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
`
|
||||
}}/>
|
||||
)}
|
||||
|
||||
</>
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ const uploadDataToAlgolia = async(post) => {
|
||||
if (!existed || !existed?.lastEditedDate || !existed?.lastIndexDate) {
|
||||
needUpdateIndex = true
|
||||
} else {
|
||||
const lastEditedDate = new Date(existed.lastEditedDate)
|
||||
const lastEditedDate = new Date(post.lastEditedDate)
|
||||
const lastIndexDate = new Date(existed.lastIndexDate)
|
||||
if (lastEditedDate.getTime() > lastIndexDate.getTime()) {
|
||||
needUpdateIndex = true
|
||||
|
||||
@@ -68,6 +68,25 @@ const mapImgUrl = (img, block, type = 'block', from) => {
|
||||
}
|
||||
|
||||
if (!isEmoji(ret) && ret.indexOf('notion.so/images/page-cover') < 0) {
|
||||
if (BLOG.RANDOM_IMAGE_URL) {
|
||||
// 只有配置了随机图片接口,才会替换图片
|
||||
const texts = BLOG.RANDOM_IMAGE_REPLACE_TEXT
|
||||
let isReplace = false;
|
||||
if (texts) {
|
||||
const textArr = texts.split(',')
|
||||
// 判断是否包含替换的文本
|
||||
textArr.forEach(text => {
|
||||
if (ret.indexOf(text) > -1) {
|
||||
isReplace = true
|
||||
}
|
||||
})
|
||||
} else {
|
||||
isReplace = true
|
||||
}
|
||||
if (isReplace) {
|
||||
ret = BLOG.RANDOM_IMAGE_URL
|
||||
}
|
||||
}
|
||||
// 随机图片接口优化 防止因url一致而随机结果相同
|
||||
const separator = ret.includes('?') ? '&' : '?'
|
||||
// 拼接唯一识别参数,防止请求的图片被缓存
|
||||
|
||||
@@ -8,8 +8,10 @@ import { siteConfig } from '@/lib/config'
|
||||
* 通知横幅
|
||||
*/
|
||||
export function NoticeBar() {
|
||||
const notices = siteConfig('HEO_NOTICE_BAR', null, CONFIG)
|
||||
|
||||
let notices = siteConfig('HEO_NOTICE_BAR', null, CONFIG)
|
||||
if (typeof notices === 'string') {
|
||||
notices = JSON.parse(notices)
|
||||
}
|
||||
if (!notices || notices?.length === 0) {
|
||||
return <></>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user