Bubo Reader는 자체 서버에 배포할 수 있는 초소형 피드 리더(RSS, Atom, JSON)입니다. Netlify는 몇 단계로, Glitch는 훨씬 더 적은 단계로 배포할 수 있습니다! 이 프로젝트의 목표는 카테고리와 웹사이트별로 정리된 피드 컬렉션의 링크 목록을 보여주는 웹페이지를 생성하는 것입니다. 그게 다야.
Clash of the Titans(1981)에 등장하는 이 어리석은 로봇 올빼미의 이름을 따서 명명되었습니다.
내 블로그에서 이 프로젝트에 대한 자세한 내용을 읽을 수 있습니다.
npm install
실행하여 종속성을 설치합니다.feeds.json
업데이트하세요.npm run build:bubo
실행 그게 다야! 이제 public
폴더에 있는 피드의 최신 콘텐츠에 대한 링크가 포함된 정적 페이지가 제공될 준비가 되었습니다.
정적 부분:
conf/feeds.json
- 카테고리로 구분된 피드 URL을 포함하는 JSON 파일입니다.config/template.html
- 피드 표시 방법을 변경할 수 있는 Nunjucks 템플릿입니다. 이는 원하는 대로 변경할 수 있습니다. 아래를 참조하세요.public/style.css
- 피드 출력의 스타일을 지정하는 CSS 파일입니다.public/index.html
- Bubo가 실행될 때 자동으로 생성되는 HTML 파일입니다.엔진:
src/index.ts
- 새 버전의 Bubo를 빌드하려고 할 때 실행하는 기본 스크립트입니다. 피드에서 최신 콘텐츠를 자동으로 가져오고 public/index.html
에 새로운 정적 파일을 만듭니다.src/renderer.ts
— 템플릿인 Nunjucks를 로드하고 들어오는 피드 데이터를 처리하는 방법을 이해하는 렌더러입니다. 다른 것을 선호하시나요? 바꿔주는 곳이에요!src/utilities.ts
— Bubo를 위한 다양한 구문 분석 및 정규화 유틸리티로, 깔끔하게 유지하기 위해 숨겨져 있습니다. 기본 index.ts
파일에는 피드 요청을 일괄 처리하고 제한할 수 있는 두 가지 값이 있습니다.
MAX_CONNECTIONS
일괄 처리가 동시에 진행될 수 있는 최대 요청 수를 나타냅니다.DELAY_MS
각 배치 간의 지연 시간을 나타냅니다. MAX_CONNECTIONS
Infinity
로 설정되어 있으므로 기본 구성에는 일괄 처리나 제한이 없습니다 . 매초마다 한 번에 하나의 피드만 가져오도록 Bubo를 변경하려면 다음 값을 다음과 같이 설정할 수 있습니다.
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;
2.5초마다 10개의 동시 요청으로 제한하려면 다음과 같이 설정할 수 있습니다.
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ;
실제로 MAX_CONNECTIONS
Infinity
로 설정한 상태에서 문제가 발생한 적이 없지만 이는 디자인에 대한 합리적인 보호 장치처럼 느껴집니다.
가장 빠른 방법은 Glitch에서 프로젝트를 리믹스하는 것입니다: https://glitch.com/edit/#!/bubo-rss
여기서 시작하고 싶다면 이 저장소에 glitch
브랜치도 있습니다.
./config/feeds.json
파일에서 일부 피드를 변경하면 설정이 완료됩니다! 스타일이나 템플릿을 수정하려면 ./public/style.css
파일 또는 ./config/template.html
파일을 각각 변경할 수 있습니다.
config/feeds.json
편집하여 피드와 카테고리를 관리하세요. 배포 설정은 netlify.toml
파일에서 자동으로 가져와야 합니다. 확인만 하면 준비가 완료됩니다!
피드를 최신 상태로 유지하려면 Netlify 사이트에 대한 빌드 후크를 설정하고 다른 서비스를 사용하여 자주 핑하여 재구축을 실행하는 것이 좋습니다. 나는 다음을 조사해 볼 것을 제안합니다:
이미 Linux를 실행하는 서버가 있고 일부 명령줄 경험이 있는 경우 cron 작업을 설정하는 것이 더 간단할 수 있습니다.
여기에서 라이브 데모를 볼 수 있습니다:
이것이 유용하다고 생각되면 저나 이 프로젝트를 후원하는 것을 고려해 보십시오.
자체 서버에서 이를 실행하려면 이러한 제휴 링크 중 하나를 사용하여 Linode, Digital Ocean 또는 Vultr에 마이크로 인스턴스를 설정하는 것을 고려해 보십시오.
Bubo Reader를 사용하는 웹사이트는 다음과 같습니다.
출연하고 싶다면 공유해주세요!