웹멘션 예, 자바스크립트 아니요

참고: 여기에 원본 게시물을 작성했기 때문에 decided to revert to a non-webmentions approach ; 그러나 유용하다고 생각하는 사람을 위해 여기에 남겨 두겠습니다.

나는 yesterday의 적어도 일부 형태로 IndieWeb에 내 웹 사이트를 다시 가져 오려고 시도했습니다 webmentions. 그러나 몇 시간 안에 내가 사용했던 타사 JavaScript 코드in 2020가 지금은 잘리지 않을 것이라는 것이 분명해졌습니다. 따라서 나는 빌린 코드에서 내가 해야 할 변경 사항을 도핑해야 하는 일에 사임했습니다. 그리고 그 작업을 하는 동안 사이트를 웹멘션이 아닌 이전 형식으로 되돌렸습니다.

그동안 내가 지금까지 찾은 Hugo의 모든 webmentions-on-Hugo 솔루션이 순전히 Hugo에서 수행하려고 시도하지 않고 JavaScript를 사용하는 이유에 대해 곰곰이 생각했습니다. 결국 Hugo는 많은 데이터 수집 마력을 자랑합니다. 예를 들어 지금까지의 내 경험으로는 Hugo의 getJSON 기능이 앞서 언급한 JS가 node-fetch 에서 데이터를 가져오는 데 사용했던 webmention.io만큼 유용하다는 것을 발견했습니다.

짧은 시간에 저는 2020 솔루션을 패치한다는 생각을 버리고 webmention.io API와 함께 작동하기 위해 getJSON를 사용할 완전히 새로운 솔루션을 구축하기 시작했습니다. 1

따라서 긴 밤과 오늘 대부분의 시간을 들여 알아낸 후, 한 줄의 JavaScript 없이도 웹 멘션을 표시하는 세계 유일의 Hugo 기반 사이트가 될 수 있다고 생각했던 것을 여러분에게 소개합니다. I later learned otherwise 휴고 유저 . 또한 이전의 JS 기반 방법이 의존했던 종속성으로 인해 어제 추가해야 했던 모든 폴더node_modules를 휴지통으로 가져가는 기쁨을 고백할 것입니다. 나는 JS를 싫어하는 순수주의자는 아니지만 추가 무게가 모두 필요하지 않은데 왜 저장소에 보관합니까?

코드가 다소DRY - 어 있으면 작성하겠습니다. 2 그 동안 저는 webmentions-rx(이전의 webmentions-pipes ) 부분 템플릿에 다음과 같은 설명을 남겼습니다. 이 모든 내용을 적용 가능한 각 게시물에 모두 집어넣는 데 사용하고 있습니다. 사이트 레포에서:


{{/*
  Apologies for the ugliness of the following.
  First, I'll make it work; then I'll **try**,
  at least within the limits of Go and Hugo,
  to make it a bit DRY-er at the very least.
  Fortunately, both Go and Hugo are so fast,
  I don't pay a (real) penalty for this spaghetti.
  But I **do** want to do better. Trust me, friends.
  And, yes, there are some unused vars in here.
  Some are for testing only; some are yet to be used.
*/}}


지금은 존재에 대한 Jurassic Park 밈so preoccupied with whether I could do this, I failed to consider whether I should 중 하나의 주제가 되지 않는다면 다행이라고 느낄 것입니다. Hugo의 펑키한 템플릿이 평범하지 않은 무언가를 할 수 있을 때마다 나는 그것을 승리라고 생각합니다. 나는 그것이 Pyrrhic 종류가 되지 않기를 바랄 뿐입니다.

아, 그리고 제 저장소에서 해당 코드를 확인하게 되시면: 진행 중인 작업임을 다시 한 번 말씀드리며 너무 가혹하게 판단하지 마시기 바랍니다.



3년 전 JS를 사용하여 원격 사이트에서 데이터를 추출하는 데 처음 시도하는 데 힘들게 도움을 준 내final workplace의 특정 사람들이 이 글을 읽는다면 재미있을 것입니다. 나는 그들이 할 때 아무것도 먹거나 마시지 않기를 바랍니다. 나는 질식 사건이나 최소한 전화 화면이 산산조각 난 것에 대해 책임지고 싶지 않습니다.

코드에 여전히 작업이 필요하지만 이에 대해 explainer post을 작성했습니다.

좋은 웹페이지 즐겨찾기