Astro에 읽기 시간 추가하기(쉬운 방법)
7389 단어 astrojavascript
이 읽기 시간은 기사를 읽는 데 걸리는 시간을 나타내는 데 사용됩니다.
기사를 읽기 시작하면서 어떤 내용을 접하게 되었는지 알고 싶을 때가 있기 때문에 이것은 귀중한 정보입니다.
Astro에 독서 시간 추가
우리는 쉬운 길을 갈 것입니다. 과학적 접근 방식이 아니며 완벽한 숫자보다 지침으로 더 많이 사용됨을 의미합니다.
우선, Astro 블로그 스타터를 가지고 거기서부터 작업해 봅시다.
다음 명령을 사용하여 스타터 템플릿을 설치합니다.
mkdir astro-blog && cd astro-blog
npm init astro -- --template blog-multiple-authors
방문자가 읽고 싶은 기사를 결정할 수 있도록 게시물 개요 페이지에 읽기 시간 스크립트를 추가할 것입니다.
먼저 실제 읽기 시간을 결정하는 파일을 만들어 봅시다.
이 작은 스크립트를 위해
lib
디렉토리에 src
폴더를 만들어 readingtime.js
파일을 만들었습니다.그런 다음 콘텐츠를 수락하고 읽기 시간을 반환해야 하는 함수를 만드는 다음 템플릿을 추가합니다.
export function getReadingTime(content) {
if (!content) return;
// Do something
}
이제
components/PostPreview.astro
를 열고 다음과 같이 이 스크립트를 가져옵니다.---
import { getReadingTime } from '../lib/readingtime.js'
// Rest of frontmatter
---
그리고 HTML 섹션에서 다음과 같이 사용할 수 있습니다.
<p>{getReadingTime(post.astro.html)} minutes to read</p>
함수를 호출하고 게시물 콘텐츠의 HTML을 전달합니다.
그러나 이 시점에서는 아무 일도 일어나지 않습니다.
따라서
readingtime.js
파일로 돌아가십시오.우리가 해야 할 첫 번째 일은 평균적인 사람이 분당 무엇을 읽는지 결정하는 것입니다.
이것은 200/250 단어 사이로 널리 알려져 있으므로 더 낮은 숫자를 고수합시다.
Read more on the number of words read per minute
이를 염두에 두고 이 숫자를 나타내는 변수를 만들 수 있습니다.
const WORDS_PER_MINUTE = 200;
우리가 전달하는 콘텐츠는 모든 종류의 HTML 태그, 이미지 등을 포함하는 순수 HTML이며 읽기 시간에 포함되지 않습니다.
Astro에서는 문서 조작을 사용할 수 없으므로 정규식을 사용하여 이러한 요소를 제거해 보겠습니다.
export function getReadingTime(content) {
if (!content) return;
const clean = content.replace(/<\/?[^>]+(>|$)/g, '');
}
그런 다음 정리된 문자열을 공백으로 분할하여 단어 수를 추출할 수 있습니다.
const numberOfWords = clean.split(/\s/g).length;
마지막으로 단어 수를 분당 단어 변수로 나누고 반올림할 수 있습니다.
함수를 다음과 같이 만듭니다.
const WORDS_PER_MINUTE = 200;
export function getReadingTime(content) {
if (!content) return;
const clean = content.replace(/<\/?[^>]+(>|$)/g, '');
const numberOfWords = clean.split(/\s/g).length;
return Math.ceil(numberOfWords / WORDS_PER_MINUTE);
}
이제 웹 사이트로 이동하면 읽기 시간 팝업이 표시됩니다.
참조용으로 GitHub에서 완성된 코드 예제를 찾을 수도 있습니다.
읽어주셔서 감사합니다. 연결해 보겠습니다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(Astro에 읽기 시간 추가하기(쉬운 방법)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/adding-reading-time-to-astro-the-easy-way-2370텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)