Использование встроенных изображений с плагином Gatsby mdx
Я извлекаю данные из airtable, который использует внешний URL-адрес внутри своей довольно длинной уценки, что-то вроде этого:
...
testing
<img src="https://via.placeholder.com/150" width="300px" />
...
Однако, когда это создается и визуализируется, изображение по-прежнему указывает на внешнюю ссылку и не загружается локально. Есть ли способ преобразовать входящие изображения MDX, загрузить их, а затем изменить соответствующий источник, чтобы он вел себя так же, как изображение Гэтсби? Было бы неплохо, если бы они также получили прогрессивные улучшения загрузки и т. д., которые предлагает Гэтсби.
Предлагаемые здесь решения Gatsby Static Image(gatsby-plugin-image) внутри MDX не подходят, и последний ответ в этом посте, похоже, не работает, но, возможно, намекает на возможное решение.
Я также пытался использовать провайдера MDX и модуль визуализации, чтобы испечь собственный модуль визуализации MDX. Он отлично работает, если я хочу, чтобы пользователи использовали какие-то специальные реагирующие компоненты, но, очевидно, он терпит неудачу, когда я пытаюсь использовать его для перехвата
img
тег и заменить его на Gatsby's
StaticImage
. Это связано с тем, что внешний URL-адрес используется в качестве реквизита и не допускается статическим анализатором gatsby.
1 ответ
Ах! Так что это было небольшое приключение. Первоначально gatsby-remark-images-where попал в цель, это приблизило меня, теперь казалось, что изображения подхватываются, но как только я обновил Gatsby 4, все сломалось .
Услужливый комментатор указал на другой пакет, который прибил это, gatsby-remark-images-remote. Это было не без икоты , но оно делало свою работу.
Итак, подытоживая, я использовал упомянутый пакет для достижения того, чего хотел. Чтобы получить уценку, поступающую из Airtable, запустите ее через MDX, а также встраивайте любые посторонние изображения. Мой конфиг Гэтсби закончился вот так
{
resolve: `gatsby-plugin-mdx`,
options: {
gatsbyRemarkPlugins: [
{
resolve: 'gatsby-remark-images-remote',
options: {
maxWidth: 300,
linkImagesToOriginal: false,
disableBgImage: true,
backgroundColor: 'none',
},
},
],
plugins: [`gatsby-remark-images-remote`],
},
},
Мне пришлось отключить прогрессивную загрузку магии Гэтсби из-за некоторых проблем с рендерингом. Пакет все еще имеет некоторые изгибы для тренировок, но он успешно изменил все мои
img
теги
src
атрибуты, указывающие на Гэтсби
static
папка. Ссылки больше не тянут ковер :)