새 기능 구축: 대화 미리 보기
7715 단어 showdevgatsbywebdevjavascript
그리고 나서 나는 자신의 개인 사이트를 구축하기 시작했다.너무 좋아요!이것은 잠시 Netlify에 있는 블로그 사이트입니다. 그곳에서 저에게 연락하여 제가 쓴 내용을 읽고 건의하는 트윗을 통해 제 내용을 공유할 수 있습니다. 지금 제 직업 생활에서 강연을 볼 수 있습니다.
회담은 주로 기본 주제에 관한 것이었는데, 그 중 하나는 현재 진행 중이지만, 나는 내가 한 일을 보여주고 싶다.이게 바로 귀찮게 시작할 때입니다.
어떻게
첫 번째는 내가 원하는 것을 정의하는 것이다. 나는 나의 강연을 보여주고 싶다.이것은 매우 쉽지만, 현실 생활에서는 결코 쉽지 않다.
당신들에게 더 많은 언어 환경을 제공하기 위해서, 나는 나의 모든 프레젠테이션 원고를 구글 하드디스크에 저장하여, 내가 어디로 가든지, 나는 그것들을 처리할 수 있습니다.이것은 그것들을 처리하는 것을 더욱 쉽게 하지만, 당신이 그것을 오프라인으로 표시하려면 좀 어렵다.
왜?우선 파일을 다운로드해야 하기 때문이다.이것은 대뇌가 없는 UI 작업입니다. 마우스 오른쪽 버튼으로 클릭하고 다운로드하기만 하면 됩니다.게임 잘했어요.코드가 이 과정을 실행하기를 원할 때, 작업은 더욱 복잡해진다.그래서 나는 외로운 길을 걸었다. 이것은 내가 알고 있는 유일한 길이다. 똑같은 시도를 하고 성공한 사람을 찾는 것이다.
검색 상자에
drive
또는 google drive
를 입력하면 여러 개 Gatsby plugins 를 찾을 수 있습니다.나는 내가 원하는 것을 찾으려고 하나하나 시도했다.만약 당신이 비슷한 일을 하고 싶다면, 여기에 두드러진 목록이 하나 있다.gatsby-source-google-docs
gatsby-plugin-drive
gatsby-plugin-drive
따라서 내 요구를 충족시킬 수 있는 플러그인이 없기 때문에 나는 어쩔 수 없이 어려운 결정을 내렸다.
전체 플러그인은 하나의 아이디어를 바탕으로 한다. 구글 드라이브
folderID
를 지정하고 폴더에서 모든 파일을 다운로드하여 하위 폴더를 훑어보고 선택한 destination
에 같은 구조를 만든다.각 폴더의 파일을 다운로드합니다.기술적 디테일은 이 프로젝트의 GitHub에서 찾을 수 있습니다. 이것은 원천적인 것이기 때문에 그것을 둘러싸고 뭔가를 구축하고 싶다면 마음대로 할 수 있습니다.
어떻게섹션 2
플러그인을 만든 후 삽입하고 다운로드를 시작합니다.나는 마침내 나의 현지 사이트에서 이 서류들을 찾았는데, 이것은 나의 목표와 또 한 걸음 가까워졌다.
나는 이곳에 PDF가 있는데, 지금 나는 세 가지 일을 하고 싶다.
gatsby-config.js
파일에 추가하기만 하면 됩니다. {
resolve: "gatsby-source-filesystem",
options: {
name: "talks",
path: "${__dirname}/src/talks/",
},
}
이렇게!그리고 내 파일 시스템을 조회하고 데이터를 포함하는 nodes
을 얻기 위해서는 몇 가지 graphql
가 필요합니다. query {
allFile (filter: {sourceInstanceName: { eq: "talks" } }) {
edges {
node {
name
publicURL
}
}
}
}
이 질의는 다음 두 가지 작업을 수행합니다.path
의instance name
아래 모든 파일을 talks
(플러그인에 정의된 name
속성으로 전달)node
akafile
에 대해 취득name
및 publicURL
(자산이 구축된 후 사용할 URL임)PDFJS.getDocument(talk.publicURL).promise.then((pdf) => {
pdf.getPage(1).then((page) => {
// some code goes here
})
})
GitHub 페이지에서 이 라이브러리에 대한 소개는 간단합니다. 저에게는 너무 작지만 유용합니다.그것 때문에 남은 유일한 일은 PDF 페이지의 데이터를 실제 이미지로 바꾸는 방법을 찾는 것이다.나는 이 점을 실현하기 위해 아주 좋은 방법을 찾았다.그것은 이렇게 일한다.
<canvas>
요소2d
로 설정합니다(이미지를 그릴 것이기 때문에)canvas
의 새 데이터 컨텍스트로 설정이 모든 것이 준비되면 최종 결과는 다음과 같다.
당신이 이 글을 좋아하시길 바랍니다. 제 own website 에서도 이 글을 방문할 수 있습니다.
Reference
이 문제에 관하여(새 기능 구축: 대화 미리 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaleman15/building-a-new-feature-talks-preview-4mp0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)