{"id":18996931,"url":"https://github.com/rburgst/gatsby-source-wpgraphql-images","last_synced_at":"2026-06-23T15:31:40.268Z","repository":{"id":40773513,"uuid":"264195867","full_name":"rburgst/gatsby-source-wpgraphql-images","owner":"rburgst","description":"A Gatsby source plugin that proactively downloads all wp media items and hosts the locally.","archived":false,"fork":false,"pushed_at":"2023-06-10T00:47:20.000Z","size":3648,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-04T14:31:17.954Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rburgst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-15T13:06:52.000Z","updated_at":"2020-09-23T15:48:33.000Z","dependencies_parsed_at":"2024-11-08T17:41:31.029Z","dependency_job_id":"3f3c9b9c-8c64-4230-bfe9-637965c2aaeb","html_url":"https://github.com/rburgst/gatsby-source-wpgraphql-images","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/rburgst/gatsby-source-wpgraphql-images","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rburgst%2Fgatsby-source-wpgraphql-images","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rburgst%2Fgatsby-source-wpgraphql-images/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rburgst%2Fgatsby-source-wpgraphql-images/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rburgst%2Fgatsby-source-wpgraphql-images/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rburgst","download_url":"https://codeload.github.com/rburgst/gatsby-source-wpgraphql-images/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rburgst%2Fgatsby-source-wpgraphql-images/sbom","scorecard":{"id":764292,"data":{"date":"2025-08-11","repo":{"name":"github.com/rburgst/gatsby-source-wpgraphql-images","commit":"931d721c7e12ef25aac7d1bfb809bf8b6f33582e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"160 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-whgm-jr23-g3j9","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-4w2v-q235-vp99","Warn: Project is vulnerable to: GHSA-cph5-m8f7-6c5x","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-pp7h-53gx-mx7r","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-257v-vj4p-3w2h","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-7gc6-qh9x-w6h8","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-fp36-299x-pwmw","Warn: Project is vulnerable to: GHSA-3wcq-x3mq-6r9p","Warn: Project is vulnerable to: GHSA-vh7m-p724-62c2","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-j4f2-536g-r55m","Warn: Project is vulnerable to: GHSA-r7qp-cfhv-p84w","Warn: Project is vulnerable to: GHSA-6h5x-7c5m-7cr7","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-c6f8-8r25-c4gc","Warn: Project is vulnerable to: GHSA-h2pm-378c-pcxx","Warn: Project is vulnerable to: GHSA-ww39-953v-wcq6","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-vfrc-7r7c-w9mx","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-7r28-3m3f-r2pr","Warn: Project is vulnerable to: GHSA-r8j5-h5cx-65gg","Warn: Project is vulnerable to: GHSA-xvf7-4v9q-58w6","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-w7rc-rwvf-8q5r","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-92xj-mqp7-vmcj","Warn: Project is vulnerable to: GHSA-wxgw-qj99-44c2","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-px4h-xg32-q955","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-cwx2-736x-mf6w","Warn: Project is vulnerable to: GHSA-v39p-96qg-c8rf","Warn: Project is vulnerable to: GHSA-8v63-cqqc-6r2c","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-3j8f-xvm3-ffx4","Warn: Project is vulnerable to: GHSA-4p35-cfcx-8653","Warn: Project is vulnerable to: GHSA-7f3x-x4pr-wqhj","Warn: Project is vulnerable to: GHSA-jpp7-7chh-cf67","Warn: Project is vulnerable to: GHSA-q6wq-5p59-983w","Warn: Project is vulnerable to: GHSA-j9fq-vwqv-2fm2","Warn: Project is vulnerable to: GHSA-pqw5-jmp5-px4v","Warn: Project is vulnerable to: GHSA-6fx8-h7jm-663j","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-x565-32qp-m3vf","Warn: Project is vulnerable to: GHSA-566m-qj78-rww5","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-hwj9-h5mp-3pm3","Warn: Project is vulnerable to: GHSA-6fw4-hr69-g3rv","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-5q6m-3h65-w53x","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-44c6-4v22-4mhx","Warn: Project is vulnerable to: GHSA-4x5v-gmq8-25ch","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-gp95-ppv5-3jc5","Warn: Project is vulnerable to: GHSA-54xq-cgqr-rpm3","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-wpg7-2c88-r8xv","Warn: Project is vulnerable to: GHSA-fxwf-4rqh-v8g3","Warn: Project is vulnerable to: GHSA-25hc-qcg6-38wj","Warn: Project is vulnerable to: GHSA-xfhh-g9f5-x4m4","Warn: Project is vulnerable to: GHSA-qm95-pgcg-qqfq","Warn: Project is vulnerable to: GHSA-cqmj-92xf-r6r9","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-w5p7-h5w8-2hfq","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-3329-pjwv-fjpg","Warn: Project is vulnerable to: GHSA-p6j9-7xhc-rhwp","Warn: Project is vulnerable to: GHSA-89gv-h8wf-cg8r","Warn: Project is vulnerable to: GHSA-gcv8-gh4r-25x6","Warn: Project is vulnerable to: GHSA-gmv4-r438-p67f","Warn: Project is vulnerable to: GHSA-8h2f-7jc4-7m3m","Warn: Project is vulnerable to: GHSA-3vjf-82ff-p4r3","Warn: Project is vulnerable to: GHSA-g694-m8vq-gv9h","Warn: Project is vulnerable to: GHSA-9m6j-fcg5-2442","Warn: Project is vulnerable to: GHSA-hh27-ffr2-f2jc","Warn: Project is vulnerable to: GHSA-rqff-837h-mm52","Warn: Project is vulnerable to: GHSA-8v38-pw62-9cw2","Warn: Project is vulnerable to: GHSA-hgjh-723h-mx2j","Warn: Project is vulnerable to: GHSA-jf5r-8hm2-f872","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-776f-qx25-q3cc","Warn: Project is vulnerable to: GHSA-72mh-269x-7mh5","Warn: Project is vulnerable to: GHSA-h4j5-c7cj-74xg","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T00:19:55.705Z","repository_id":40773513,"created_at":"2025-08-23T00:19:55.705Z","updated_at":"2025-08-23T00:19:55.705Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34696695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T17:37:39.263Z","updated_at":"2026-06-23T15:31:40.250Z","avatar_url":"https://github.com/rburgst.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gatsby-source-wpgraphql-images\n\n## Important\n\nThis is a still early version of the plugin, your mileage may vary!\n\n## Description\n\nThis plugin is a variant of [`gatsby-plugin-graphql-image`](https://github.com/Rocketmakers/gatsby-plugin-graphql-image) and [`gatsby-wpgraphql-inline-images`](https://github.com/progital/gatsby-wpgraphql-inline-images).\nIt is a source plugin that will download all media items from wordpress (warning this can take a _long_ time) and attempts to aggressively cache these for future rebuilds.\n\nThe problem with the above mentioned plugins is that they will cause frequent rebuilds of\nthe whole page tree which (depending on your wordpress instance) can take a significant amount of time.\nFor more information about this problem, see \n\n* https://github.com/gatsbyjs/gatsby/issues/15906\n* https://github.com/gatsbyjs/gatsby/issues/20083\n\nIn addition these plugins dont aggressively cache the wordpress media files and on every rebuild\nit will cause a HTTP HEAD request for every media item therefore, additionally increasing\nthe build times.\n\n- Downloads images and other files to Gatsby `static` folder\n- Replaces `\u003ca\u003e` linking to site's pages with `\u003cLink\u003e` component\n- Replaces `\u003cimg\u003e` with Gatsby `\u003cImg\u003e` component leveraging all of the [gatsby-image](https://www.gatsbyjs.org/docs/using-gatsby-image/) rich functionality\n\n### Dependencies\n\nThis plugin processes WordPress content sourced with GraphQL. Therefore you must use `gatsby-source-graphql` and your source WordPress site must use [WPGraphQL](https://github.com/wp-graphql/wp-graphql).\n\n_Attention:_ does not work with `gatsby-source-wordpress`.\n\n## How to install\n\n```bash\nyarn add gatsby-source-wpgraphql-images\n```\n\n```javascript\n{\n  resolve: 'gatsby-source-wpgraphql-images',\n  options: {\n    wordPressUrl: 'https://mydomain.com/',\n    uploadsUrl: 'https://mydomain.com/wp-content/uploads/',\n    processPostTypes: ['Page', 'Post', 'CustomPost'],\n    graphqlTypeName: 'WPGraphQL',\n    httpHeaders: {\n      Authorization: `Bearer ${process.env.GITHUB_TOKEN}`,\n    }\n  },\n},\n```\n\n## Available options\n\n`wordPressUrl` and `uploadsUrl` contain URLs of the source WordPress site and it's `uploads` folder respectively.\n\n`processPostTypes` determines which post types to process. You can include [custom post types](https://docs.wpgraphql.com/getting-started/custom-post-types) as defined in WPGraphQL.\n\n`customTypeRegistrations` allows additional registration of parsed html content for arbitrary graphql types. For more information, see examples below.\n\n`keyExtractor` a function that extracts the cache key for a specific node, typically this is the `uri` of a post.\n\n`graphqlTypeName` should contain the same `typeName` used in `gatsby-source-graphql` parameters.\n\n`generateWebp` _(boolean)_ adds [WebP images](https://www.gatsbyjs.org/docs/gatsby-image/#about-withwebp).\n\n`httpHeaders` Adds extra http headers to download request if passed in.\n\n`debugOutput` _(boolean)_ Outputs extra debug messages.\n\n`shouldDownloadMediaItem` a function that takes an URL of a media file and decides whether it should\nbe downloaded or not. Allows more complex configuration.\n\n`supportedExtensions` a map in the form of\n\n`cacheTimeInSeconds` the time how long we will cache the parsed output, this is specifically important to configure\n   in case you are using the `refetchInterval` for `gatsby-source-graphql`. Otherwise parsed values will be cached\n   for the lifetime of the `gatsby develop` run.\n   If this value is not set, then values will be cached indefinitely even if the underlying data changes.\n\n```javascript\n{ pdf: true, mp3: true, jpg: true, jpeg: true, png: true }\n```\n\nthat determines which types of media files should be downloaded. Note that this check is done before `shouldDownloadMediaItem` is called\n\n## How to use this plugin\n\nDownloading and optimizing images is done automatically via resolvers. You need to include `uri` in all queries that will be processed by the plugin otherwise they will be ignored.\nIn addition this plugin will also add custom resolvers for the specified graphql types with the format\n\nFor instance, lets assume we have `content` on the type `WPGraphQL`, then you need to additionally query\n`contentParsed` and `contentFiles`.\nThe resolver will parse the `content`, prepare inline `img` and `a` tags and look for previously downloaded media files for this url.\n\n```graphql\nquery GET_PAGES {\n  wpgraphql {\n    pages {\n      nodes {\n        uri\n        content\n        contentParsed\n        contentFiles {\n          publicURL\n          childImageSharp {\n            fluid(maxWidth: 720) {\n              ...GatsbyImageSharpFluid_withWebp\n              presentationWidth\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nThere is an additional step of processing content that must be added manually to a page template. This additional processing replaces remote urls with links to downloaded files in Gatsby's static folder.\n\n```javascript\nimport contentParser from 'gatsby-source-wpgraphql-images'\n```\n\nreplace `\u003cdiv dangerouslySetInnerHTML={{ __html: content }} /\u003e` with this\n\n```javascript\n\u003cdiv\u003e{contentParser({ content: contentParsed, files: contentFiles }, { wordPressUrl, uploadsUrl })}\u003c/div\u003e\n```\n\nWhere `content` is the original HTML content and URLs should use the same values as in the options above. `contenParser` returns React object.\n\n### Featured image\n\nThe recommended handling of `featuredImage` and WordPress media in general is described by [henrikwirth](https://github.com/henrikwirth) in [this article](https://dev.to/nevernull/gatsby-with-wpgraphql-acf-and-gatbsy-image-72m) and [this gist](https://gist.github.com/henrikwirth/4ba900b7f89b9e28ec81497466b12710).\n\n### WordPress galleries\n\nWordPress galleries may need some additional styling applied and this was intentionally left out of the scope of this plugin. Emotion [Global Styles](https://emotion.sh/docs/globals) may be used or just import sass/css file.\n\n```css\n.gallery {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n}\n.gallery-item {\n  margin-right: 10px;\n}\n```\n\n## Gatsby themes support\n\nInserted `\u003cImg\u003e` components have `variant: 'styles.SourcedImage'` applied to them.\n\n## Examples of usage\n\nI'm going to use [gatsby-wpgraphql-blog-example](https://github.com/wp-graphql/gatsby-wpgraphql-blog-example) as a starter and it will source data from a demo site at [yourdomain.dev](https://yourdomain.dev/).\n\nAdd this plugin to the `gatsby-config.js`\n\n```javascript\n{\n  resolve: 'gatsby-source-wpgraphql-images',\n  options: {\n    wordPressUrl: `https://yourdomain.dev/`,\n    uploadsUrl: `https://yourdomain.dev/wp-content/uploads/`,\n    processPostTypes: [\"Page\", \"Post\"],\n    graphqlTypeName: 'WPGraphQL',\n  },\n},\n```\n\nChange `url` in `gatsby-source-graphql` options to `https://yourdomain.dev/graphql`\n\nPage templates are stored in `src/templates`. Let's modify `post.js` as an example.\n\nImporting `contentParser`\n\n```javascript\nimport contentParser from 'gatsby-source-wpgraphql-images'\n```\n\nFor simplicty's sake I'm just going to add URLs directly in the template.\n\n```javascript\nconst pluginOptions = {\n  wordPressUrl: `https://yourdomain.dev/`,\n  uploadsUrl: `https://yourdomain.dev/wp-content/uploads/`,\n}\n```\n\nand replace `dangerouslySetInnerHTML` with this\n\n```javascript\n\u003cdiv\u003e{contentParser({ content, files }, pluginOptions)}\u003c/div\u003e\n```\n\nThe modified example starter is available at [github.com/progital/gatsby-wpgraphql-blog-example](https://github.com/progital/gatsby-wpgraphql-blog-example).\n\n## Examples of advanced usage\n\nAdd this plugin to the `gatsby-config.js`\n\n```javascript\n{\n  resolve: 'gatsby-source-wpgraphql-images',\n  options: {\n    wordPressUrl: `https://yourdomain.dev/`,\n    uploadsUrl: `https://yourdomain.dev/wp-content/uploads/`,\n    graphqlTypeName: 'WPGraphQL',\n    customTypeRegistrations: [\n      {\n        graphqlTypeName: \"WPGraphQL_Page_Acfdemofields\",\n        fieldName: \"fieldInAcf\",\n      },\n    ],\n    keyExtractor: (source, context, info) =\u003e source.uri || source.key,\n  },\n},\n```\n\nThis example assumes that there is a GraphQL type `WPGraphQL_Page_Acfdemofields` that has a field `fieldInAcf`, e.g.\n\n```graphql\nquery MyQuery {\n  wpgraphql {\n    pages {\n      nodes {\n        acfDemoFields {\n          fieldInAcf\n          fieldInAcfParsed\n          fieldInAcfFiles {\n            publicURL\n            childImageSharp {\n              fluid(maxWidth: 720) {\n                ...GatsbyImageSharpFluid_withWebp\n                presentationWidth\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n## How to contribute\n\nThis is a WIP and any contribution, feedback and PRs are very welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frburgst%2Fgatsby-source-wpgraphql-images","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frburgst%2Fgatsby-source-wpgraphql-images","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frburgst%2Fgatsby-source-wpgraphql-images/lists"}