-
Notifications
You must be signed in to change notification settings - Fork 3
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
doc: SEO 검색 최적화 작업 #47
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
4d3a30e
📄 docs : metatag 삽입
seondal 3db4f21
📄 docs : 페이지별 메타태그
seondal b2fa912
📄 docs : 사이트맵 기본형
seondal 5aac1a3
📦 add : robots.txt
seondal 792efd0
📦 add : sitemap.xml
seondal c4297e2
✂️ edit : meta description 검색 좀 더 잘먹게 키워드 추가
seondal 645f180
✂️ edit : 보이는 description은 기존대로
seondal File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
'use client'; | ||
|
||
import { useRouter, useSearchParams } from 'next/navigation'; | ||
import { useCallback } from 'react'; | ||
|
||
import EmptyCase from './components/EmptyCase'; | ||
import FilterSheet from './components/FilterSheet'; | ||
import FilterTab from './components/FilterTab'; | ||
import PhotoList from './components/PhotoList'; | ||
import { usePoseFeedQuery } from '@/apis'; | ||
import { Spacing } from '@/components/Spacing'; | ||
import { URL } from '@/constants/url'; | ||
import useDidMount from '@/hooks/useDidMount'; | ||
import useFilterState from '@/hooks/useFilterState'; | ||
import useIntersect from '@/hooks/useObserver'; | ||
|
||
export default function FeedSection() { | ||
const params = useSearchParams(); | ||
const router = useRouter(); | ||
|
||
const { filterState, updateFilterState } = useFilterState(); | ||
const { data, fetchNextPage, hasNextPage, isLoading } = usePoseFeedQuery(filterState); | ||
|
||
useDidMount(() => { | ||
if (!params.get('filter')) return; | ||
updateFilterState({ | ||
tags: new Array(params.get('filter') || ''), | ||
frameCount: 0, | ||
peopleCount: 0, | ||
}); | ||
router.replace('/feed'); | ||
}); | ||
|
||
const onIntersect = useCallback(async () => { | ||
if (hasNextPage && !isLoading) { | ||
await fetchNextPage(); | ||
} | ||
}, [fetchNextPage, hasNextPage, isLoading]); | ||
|
||
const target = useIntersect(onIntersect); | ||
|
||
return ( | ||
<> | ||
<FilterTab /> | ||
<Spacing size={40} /> | ||
<div className="h-fit overflow-y-scroll"> | ||
{data?.pages[0].recommendation ? ( | ||
<> | ||
<EmptyCase | ||
title={'신비한 포즈를 찾으시는군요!'} | ||
text={'찾고 싶은 포즈를 저희에게 알려주세요.'} | ||
button={'문의사항 남기기'} | ||
path={URL.inquiry} | ||
/> | ||
<h4 className="mb-16">이런 포즈는 어때요?</h4> | ||
<div className="columns-2 py-16"> | ||
{data?.pages.map((page) => ( | ||
<PhotoList | ||
key={page.recommendedContents.number} | ||
data={page.recommendedContents.content} | ||
/> | ||
))} | ||
</div> | ||
</> | ||
) : ( | ||
<div className="columns-2 py-16"> | ||
{data?.pages.map((page) => ( | ||
<PhotoList key={page.filteredContents.number} data={page.filteredContents.content} /> | ||
))} | ||
</div> | ||
)} | ||
<div ref={target} className="h-1" /> | ||
</div> | ||
<FilterSheet /> | ||
</> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,77 +1,10 @@ | ||
'use client'; | ||
import { Metadata } from 'next'; | ||
import FeedSection from './FeedSection'; | ||
|
||
import { useRouter, useSearchParams } from 'next/navigation'; | ||
import { useCallback } from 'react'; | ||
|
||
import EmptyCase from './components/EmptyCase'; | ||
import FilterSheet from './components/FilterSheet'; | ||
import FilterTab from './components/FilterTab'; | ||
import PhotoList from './components/PhotoList'; | ||
import { usePoseFeedQuery } from '@/apis'; | ||
import { Spacing } from '@/components/Spacing'; | ||
import { URL } from '@/constants/url'; | ||
import useDidMount from '@/hooks/useDidMount'; | ||
import useFilterState from '@/hooks/useFilterState'; | ||
import useIntersect from '@/hooks/useObserver'; | ||
export const metadata: Metadata = { | ||
title: '포즈피드', | ||
}; | ||
|
||
export default function Feed() { | ||
const params = useSearchParams(); | ||
const router = useRouter(); | ||
|
||
const { filterState, updateFilterState } = useFilterState(); | ||
const { data, fetchNextPage, hasNextPage, isLoading } = usePoseFeedQuery(filterState); | ||
|
||
useDidMount(() => { | ||
if (!params.get('filter')) return; | ||
updateFilterState({ | ||
tags: new Array(params.get('filter') || ''), | ||
frameCount: 0, | ||
peopleCount: 0, | ||
}); | ||
router.replace('/feed'); | ||
}); | ||
|
||
const onIntersect = useCallback(async () => { | ||
if (hasNextPage && !isLoading) { | ||
await fetchNextPage(); | ||
} | ||
}, [fetchNextPage, hasNextPage, isLoading]); | ||
|
||
const target = useIntersect(onIntersect); | ||
|
||
return ( | ||
<> | ||
<FilterTab /> | ||
<Spacing size={40} /> | ||
<div className="h-fit overflow-y-scroll"> | ||
{data?.pages[0].recommendation ? ( | ||
<> | ||
<EmptyCase | ||
title={'신비한 포즈를 찾으시는군요!'} | ||
text={'찾고 싶은 포즈를 저희에게 알려주세요.'} | ||
button={'문의사항 남기기'} | ||
path={URL.inquiry} | ||
/> | ||
<h4 className="mb-16">이런 포즈는 어때요?</h4> | ||
<div className="columns-2 py-16"> | ||
{data?.pages.map((page) => ( | ||
<PhotoList | ||
key={page.recommendedContents.number} | ||
data={page.recommendedContents.content} | ||
/> | ||
))} | ||
</div> | ||
</> | ||
) : ( | ||
<div className="columns-2 py-16"> | ||
{data?.pages.map((page) => ( | ||
<PhotoList key={page.filteredContents.number} data={page.filteredContents.content} /> | ||
))} | ||
</div> | ||
)} | ||
<div ref={target} className="h-1" /> | ||
</div> | ||
<FilterSheet /> | ||
</> | ||
); | ||
return <FeedSection />; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
User-Agent: * | ||
Allow: / | ||
|
||
Sitemap: https://www.posepicker.site/sitemap.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> | ||
<url> | ||
<loc>https://www.posepicker.site/pick</loc> | ||
<lastmod>2023-09-08T15:55:51+00:00</lastmod> | ||
<priority>1.00</priority> | ||
</url> | ||
<url> | ||
<loc>https://www.posepicker.site/menu</loc> | ||
<lastmod>2023-09-08T15:55:51+00:00</lastmod> | ||
<priority>0.80</priority> | ||
</url> | ||
<url> | ||
<loc>https://www.posepicker.site/talk</loc> | ||
<lastmod>2023-09-08T15:55:51+00:00</lastmod> | ||
<priority>0.80</priority> | ||
</url> | ||
<url> | ||
<loc>https://www.posepicker.site/feed</loc> | ||
<lastmod>2023-09-08T15:55:51+00:00</lastmod> | ||
<priority>0.80</priority> | ||
</url> | ||
<url> | ||
<loc>https://www.posepicker.site/bookmark</loc> | ||
<lastmod>2023-09-08T15:55:51+00:00</lastmod> | ||
<priority>0.80</priority> | ||
</url> | ||
<url> | ||
<loc>https://www.posepicker.site/detail/undefined</loc> | ||
<lastmod>2023-09-08T15:55:51+00:00</lastmod> | ||
<priority>0.64</priority> | ||
</url> | ||
</urlset> | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
검색 엔진에 색인할 페이지들이군요 -!