外链打开方式处理

This commit is contained in:
tangly1024
2023-06-27 22:12:53 +08:00
parent fe51f15d5e
commit 24aa9f910c
2 changed files with 8 additions and 3 deletions

View File

@@ -87,9 +87,9 @@ function getCustomNav({ allPages }) {
if (allPages && allPages.length > 0) {
allPages.forEach(p => {
if (p?.slug?.indexOf('http') === 0) {
customNav.push({ icon: p.icon || null, name: p.title, to: p.slug, show: true })
customNav.push({ icon: p.icon || null, name: p.title, to: p.slug, target: '_blank', show: true })
} else {
customNav.push({ icon: p.icon || null, name: p.title, to: '/' + p.slug, show: true })
customNav.push({ icon: p.icon || null, name: p.title, to: '/' + p.slug, target: '_self', show: true })
}
})
}
@@ -107,6 +107,9 @@ function getCustomMenu({ collectionData }) {
if (menuPages && menuPages.length > 0) {
menuPages.forEach(e => {
e.show = true
if (e?.slug?.indexOf('http') === 0) {
e.target = '_blank'
}
if (e.type === BLOG.NOTION_PROPERTY_NAME.type_menu) {
menus.push(e)
} else if (e.type === BLOG.NOTION_PROPERTY_NAME.type_sub_menu) {
@@ -304,6 +307,7 @@ async function getDataBaseInfoByNotionAPI({ pageId, from }) {
const notice = await getNotice(collectionData.filter(post => { return post && post?.type && post?.type === 'Notice' && post.status === 'Published' })?.[0])
const categoryOptions = getAllCategories({ allPages, categoryOptions: getCategoryOptions(schema) })
const tagOptions = getAllTags({ allPages, tagOptions: getTagOptions(schema) })
// 旧的菜单
const customNav = getCustomNav({ allPages: collectionData.filter(post => post.type === 'Page' && post.status === 'Published') })
// 新的菜单
const customMenu = await getCustomMenu({ collectionData })

View File

@@ -14,6 +14,7 @@ export const MenuItemDrop = ({ link }) => {
{!hasSubMenu &&
<Link
href={link?.to}
target={link?.target || '_self'}
className="font-sans menu-link pl-2 pr-4 text-gray-700 dark:text-gray-200 no-underline tracking-widest pb-1">
<>{link?.icon && <span className='mr-2'><i className={link.icon} /></span>}{link?.name}
{hasSubMenu && <i className='px-2 fa fa-angle-down'></i>}</>
@@ -30,7 +31,7 @@ export const MenuItemDrop = ({ link }) => {
{hasSubMenu && <ul className={`${show ? 'visible opacity-100 top-12' : 'invisible opacity-0 top-10'} border-gray-100 bg-white dark:bg-black dark:border-gray-800 transition-all duration-300 z-20 absolute block drop-shadow-lg `}>
{link.subMenus.map(sLink => {
return <li key={sLink.id} className='not:last-child:border-b-0 border-b text-blue-500 hover:bg-gray-50 dark:hover:bg-gray-900 tracking-widest transition-all duration-200 dark:border-gray-800 py-3 pr-6 pl-2'>
<Link href={sLink.to}>
<Link href={sLink.to} target={sLink?.target || '_self'}>
<span className='text-sm text-nowrap font-extralight'>{sLink?.icon && <i className={sLink?.icon} > &nbsp; </i>}{sLink.title}</span>
</Link>
</li>