KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

gatsbyにプラグインを色々入れて調整

gatsby-plugin-twitterを入れてtwitterを表示

これの操作はツイッターのページを開いてから右上の「埋め込みポスト」からコードをコピーして貼り付ける必要がある。script部分はいらないようだ。

www.gatsbyjs.com

Install npm install gatsby-plugin-twitter Configure // In your gatsby-config.js plugins: [gatsby-plugin-twitter]

rpf-noblog.com

gatsby-remark-twitter

gatsby-remark-twitterの場合はnode-fetchを使っているのでいったんツイッターのサイトにアクセスしているようだ。その代わりツイッターのリンクを張るだけでいい。gatsby-remarkとあることからもわかるようにmarkdown内でのツイッターのリンクを埋め込める。

並列実行

 gatsbyで並列実行すると、毎秒何回と決まっているリクエスト処理が同時に実行されるのでエラーが出て止まる。 「an error occurred during parallel query running」というのが起こる。

99nyorituryo.hatenablog.com gatsby-remark-amazon-linkでasinをpaapiを使ってアフィリエイトリンクにしてくれるのだが、MDファイルが複数あると並列実行されてpaapiが「Too Many Requests」のエラーが出る。

PARALLEL_QUERY_RUNNING: falseをすれば並列処理が行われなくなるはずが、されちゃうので結局エラーになった。gatsbyのバグで放置されているようだ。

www.reddit.com

module.exports = {

flags: {

PARALLEL_QUERY_RUNNING: false

}

github.com

プラグインの自作

 あらかじめにデータを取得していて突き合わせて表示するように変えようと思う。そのためには自作プラグインが必要。 takumon.com

www.gatsbyjs.com

ヘッドレス CMS の Contentful のマークダウンテキストに unist を使ってショートコード的な機能を実装してみる dev.classmethod.jp

【JavaScript】配列から、複数の検索キーのいずれかに該当する要素を抜き出す。 saktt-sw.com

試しにpaapiのjsonを整形したやつを読み込んでasinで絞り込んで表示するのを書いてみた。

// src/pages/page.js import React from "react" import { Link } from "gatsby" import "../styles/default.css" import { graphql, useStaticQuery } from "gatsby"

export default function Page() { const data = useStaticQuery(graphql query MyQuery { allJson { edges { node { Asin Booktype Category Contributor ImageURL Points Price Publisher Title URL } } } } ) const book = data.allJson.edges const asin=["B08XWXXS7W","B08HSVRZ8P"]

var file = book.filter(word => asin.includes(word.node.Asin)); console.log(book) return (

そのほか気になったプラグイン eclair.blog

ics.media

motoki-design.co.jp

www.gatsbyjs.com