GatsbyJS에 Hatena 북마크와 Pocket 공유 버튼을 설치했습니다.
11281 단어 React포켓hatenabookmark자바스크립트gatsby
React로 구현되어 기본적으로 SPA가 되어 있으므로 페이지 표시가 폭속 등의 이점이 있습니다.
이번에는 Hatena 북마크와 Pocket 공유 버튼을 설치했습니다.
구현한 jsx
React라는 것으로 jsx의 컴포넌트 형태로 구현합니다.
PostShare.jsx
import React from "react";
import { FaGetPocket } from 'react-icons/fa';
import "./PostShare.css";
...
const formatSiteUrl = (siteUrl, pathPrefix, path) =>
siteUrl + (pathPrefix === "/" ? "" : pathPrefix) + path;
class PostShare extends React.Component {
render() {
const { postNode, postPath, config } = this.props;
const post = postNode.frontmatter;
const url = formatSiteUrl(config.siteUrl, config.pathPrefix, postPath);
...
return (
<section className="share">
<h4>Share this post</h4>
<div style={{ display: "flex" }}>
...
<div>
<a className="HatenaShareButton" href={"http://b.hatena.ne.jp/add?mode=confirm&url="+url+"&title="+post.title} target="_blank" rel="nofollow">
</a>
</div>
<div>
<a className="PocketShareButton" href={"http://getpocket.com/edit?url="+url+"&title="+post.title} rel="nofollow" rel="nofollow" target="_blank">
<FaGetPocket />
</a>
</div>
</div>
</section>
);
}
}
export default PostShare;
덧붙여 이번은 Pocket과 은행 북마크 버튼을 실장했습니다. (해외의 레이아웃을 사용하면 디폴트로 들어가지 않았다… Twitter나 Facebook은 있었는데)
내용은 간단하고 a 태그로 소셜 링크를 붙이고 있을 뿐입니다.
이 파일을 templates 폴더에서 import합시다.
post.jsx
...
import PostShare from "../components/PostShare/PostShare";
...
<PostFooter>
<AuthorImage author={authorData} />
<AuthorInfo prefix="/author" author={authorData} />
<PostShare
postNode={postNode}
postPath={location.pathname}
config={config}
/>
...
CSS
Pocket 정보
Pocket은 스타일이 Font Awesome에 들어 있습니다. 그래서 그것을 그대로 사용했습니다. GatsbyJS는 React제이므로 react-icons를 사용할 수 있습니다. 그러므로 아래의 커맨드로 인스톨한 후, import 하면 됩니다.
npm install react-icons --save
Hatebu 정보
하테부의 버튼은 「 Font Awesome과 같은 아이콘 글꼴에없는 Hatena 북마크를 자체적으로 추가하는 쉬운 방법 」를 이용하였습니다.
PostShare.css
...
.HatenaShareButton:before {
content: "B!";
font-family: Verdana;
font-weight: bold;
font-size: 0.9em;
border: solid 3px #6091d3;
border-radius: 4px;
color: white;
background: #6091d3;
position: relative;
top: -1px;
}
...
구현 결과
Share this post의 B! 및 Pocket 버튼이 구현 예입니다. 원래부터 있던 Twitter나 Facebook과 비교해도 그다지 위화감은 없네요.
Reference
이 문제에 관하여(GatsbyJS에 Hatena 북마크와 Pocket 공유 버튼을 설치했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/forblgac/items/7a5b470137d27fcc56a0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)