Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/nav post card http #1855

Merged
merged 2 commits into from
Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 6 additions & 3 deletions themes/nav/components/BlogPostCard.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ const BlogPostCard = ({ post, className }) => {
const currentSelected = router.asPath.split('?')[0] === '/' + post.slug
let pageIcon = post.pageIcon !== '' ? post.pageIcon : siteConfig('IMG_LAZY_LOAD_PLACEHOLDER')
pageIcon = post.pageIcon.indexOf('amazonaws.com') !== -1 ? post.pageIcon + '&width=88' : post.pageIcon
const url = checkContainHttp(post.slug) ? sliceUrlFromHttp(post.slug) : `${siteConfig('SUB_PATH', '')}/${post.slug}`
return (
<Link href={`${siteConfig('SUB_PATH', '')}/${removeHttp(post.slug)}`} target={(checkRemoveHttp(post.slug) ? '_blank' : '_self')} passHref>
<Link href={`${url}`} target={(checkContainHttp(post.slug) ? '_blank' : '_self')} passHref>
<div key={post.id} className={`${className} h-full rounded-2xl p-4 dark:bg-neutral-800 cursor-pointer bg-white hover:bg-white dark:hover:bg-gray-800 ${currentSelected ? 'bg-green-50 text-green-500' : ''}`}>
<div className="stack-entry w-full flex space-x-3 select-none dark:text-neutral-200">
<NotionIcon icon={pageIcon} size='10' className='text-6xl w-11 h-11 mx-1 my-0 flex-none' />
Expand All @@ -21,7 +22,9 @@ const BlogPostCard = ({ post, className }) => {
</div>
</Link>
)
function removeHttp(str) {

// 检查连接是否是外链
function sliceUrlFromHttp(str) {
// 检查字符串是否包含http
if (str.includes('http')) {
// 如果包含,找到http的位置
Expand All @@ -33,7 +36,7 @@ const BlogPostCard = ({ post, className }) => {
return str;
}
}
function checkRemoveHttp(str) {
function checkContainHttp(str) {
// 检查字符串是否包含http
if (str.includes('http')) {
// 如果包含,找到http的位置
Expand Down
54 changes: 2 additions & 52 deletions themes/nav/components/BlogPostListAll.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,16 @@ import { siteConfig } from '@/lib/config'
* @constructor
*/
const BlogPostListAll = (props) => {
// const { customMenu, posts, category, tag, allNavPages, categoryOptions } = props
// const [filteredNavPages, setFilteredNavPages] = useState(allNavPages)
const { customMenu } = props

// const [filteredNavPages, setFilteredNavPages] = useState(allNavPages)
const { filteredNavPages, setFilteredNavPages, allNavPages } = useNavGlobal()
// const [filteredNavPages] = useState(allNavPages)

// const router = useRouter()
// 对自定义分类格式化,方便后续使用分类名称做索引,检索同步图标信息
// 目前只支持二级分类
const links = customMenu
const filterLinks = {}
// for循环遍历数组
links?.map((link, i) => {
const linkTitle = link.title + ''
// console.log('####### link')
// console.log(link)
// filterLinks[linkTitle] = link
filterLinks[linkTitle] = { title: link.title, icon: link.icon, pageIcon: link.pageIcon }
if (link?.subMenus) {
link.subMenus?.map((group, index) => {
Expand All @@ -44,22 +35,10 @@ const BlogPostListAll = (props) => {
}
})

console.log('####### filterLinks')
console.log(filterLinks)

// console.log('####### filterLinks')
// console.log(filterLinks)

const selectedSth = false
const groupedArray = filteredNavPages?.reduce((groups, item) => {
const categoryName = item?.category ? item?.category : '' // 将category转换为字符串
const categoryIcon = filterLinks[categoryName]?.icon ? filterLinks[categoryName]?.icon : '' // 将pageIcon转换为字符串

// console.log('####### categoryName')
// console.log(categoryName)
// console.log('####### categoryIcon')
// console.log(categoryIcon)

let existingGroup = null
// 开启自动分组排序
if (JSON.parse(siteConfig('NAV_AUTO_SORT', null, CONFIG))) {
Expand All @@ -81,17 +60,9 @@ const BlogPostListAll = (props) => {
groupedArray?.map((group) => {
// 自定义分类图标与post的category共用
// 判断自定义分类与Post中category同名的项,将icon的值传递给post
// let groupTitle = group?.category
// item.icon = filterLinks[categoryName]?.icon ? filterLinks[categoryName]?.icon : ''
// console.log('####### item')
// console.log(item)

const groupSelected = false
// for (const post of group?.items) {
// if (router.asPath.split('?')[0] === '/' + post.slug) {
// groupSelected = true
// selectedSth = true
// }
// }

group.selected = groupSelected
return null
})
Expand All @@ -110,27 +81,6 @@ const BlogPostListAll = (props) => {
</div>
}

// 处理自定义导航菜单项
// let keyword = searchInputRef.current.value
// if (keyword) {
// keyword = keyword.trim()
// } else {
// setFilteredNavPages(allNavPages)
// }
// for (const filterGroup of filterAllNavPages) {
// for (let i = filterGroup.items.length - 1; i >= 0; i--) {
// const post = filterGroup.items[i]
// const articleInfo = post.title + ''
// const hit = articleInfo.toLowerCase().indexOf(keyword.toLowerCase()) > -1
// if (!hit) {
// // 删除
// filterGroup.items.splice(i, 1)
// }
// }
// if (filterGroup.items && filterGroup.items.length > 0) {
// filterPosts.push(filterGroup)
// }
// }
}

export default BlogPostListAll