Gatsby: [1.0] Список желаний плагинов (и примеры сайтов)

Созданный на 17 июн. 2017  ·  97Комментарии  ·  Источник: gatsbyjs/gatsby

Есть много плагинов, которые было бы довольно легко написать, которые было бы здорово внедрить. Многие просто будут просто обертывать либо плагин webpack (например, добавляя поддержку препроцессора CSS), либо библиотеку NPM (например, для плагина трансформатора) . Когда вы создаете новый плагин, вы также должны создать сопутствующий пример сайта как способ продемонстрировать, как работает плагин, так и как тест интеграции для плагина.

Добавить плагины и примеры сайтов очень просто. Просто проверьте репозиторий Gatsby и запустите npm install в корне репо. Затем запустите npm run plop и выберите создание либо плагина, либо примера сайта, а затем следуйте подсказкам, чтобы выполнить первоначальную настройку. Некоторые плагины в списке желаний уже имеют заглушки в репозитории.

Если вы хотите попробовать создать один из них, просто оставьте комментарий, чтобы заявить о нем и начать кодирование! И этот список далеко не полный. Не стесняйтесь предлагать идеи и брать их на себя!

Список желаний плагина

CSS

  • [x] Меньше
  • [x] Стилус
  • [x] Афродита (отслеживается на https://github.com/gatsbyjs/gatsby/issues/8709)
  • [x] CXS (отслеживается на https://github.com/gatsbyjs/gatsby/issues/8710)
  • [x] Очаровательный
  • [x] JSS
  • [x] styled-jsx (над этим работает @timuchanek )

Плагины трансформатора

  • [x] CSV
  • [x] docx
  • [x] pdf (отслеживается в https://github.com/gatsbyjs/gatsby/issues/8711)
  • [x] xml
  • [x] asciidoc (отслеживается в https://github.com/gatsbyjs/gatsby/issues/8712)
  • [x] toml (над этим работает @ Vagr9K )
  • [x] удаленных URL-адресов (например, изображение, на которое указывает ссылка, будет загружено, а затем станет доступным как локальное изображение).

Исходные плагины

Документы по написанию исходных плагинов https://www.gatsbyjs.org/docs/create-source-plugin/

  • [x] Trello
  • [x] Wordpress.com
  • [x] Drupal (в репо уже есть начало, но есть ряд дополнений, которые было бы здорово сделать)
  • [x] призматический
  • [x] DatoCMS
  • [x] Github
  • [x] базы данных SQL (отслеживаются в https://github.com/gatsbyjs/gatsby/issues/8714)
  • [x] MongoDB
  • [x] DynamoDB
  • [x] Корзина S3: см.
  • [x] Twitter
  • [x] Facebook
  • [] https://www.accedo.tv/appgrid/
  • [x] https://github.com/marak/Faker.js/ - передайте «схему» для узла, например, название, дату, автора с телом аватара / уценки и сгенерируйте кучу узлов Post. Было бы здорово, например, сайты!

Примеры сайтов

Помимо примеров сайтов, демонстрирующих, как использовать вышеуказанные плагины, было бы здорово иметь примеры сайтов, демонстрирующих возможные способы создания:

  • [x] Многоязычные сайты
  • [x] Поиск
  • [x] Пагинация
  • [x] React Helmet
  • [x] Замечание (уценка)
good first issue help wanted

Самый полезный комментарий

Привет, было бы здорово иметь плагин для Directus, так как это альтернатива

Все 97 Комментарий

  • Твиты и Gists в Markdown (см. Jekyll-twitter-plugin )
  • automagical figure / figcaption для изображений Markdown, которым нужна подпись и / или ссылка на источник / лицензию
  • KaTeX , MathJax (в Markdown) - также во время поиска в Google наткнулся на
  • генератор favicon - не супер необходимый (поскольку уже существует http://realfavicongenerator.net/, и я также вижу много причин для создания каждого из них вручную), но его довольно легко реализовать (кроме этого значка SVG, который требуется macOS Safari за его "закрепленные вкладки")
  • Дриблинг
  • Flickr
  • 500 пикселей

Это отличные источники автономных наборов данных + общедоступные API

Flickr был бы полезен - хотя сам сайт томится, его надежный общедоступный API делает его полезным источником для хранения фотографий для добавления в сообщения и страницы блога.

Я буду работать над toml-transformer .

Работаем с styled-jsx и синхронизатором algolia

@ Vagr9K @timuchanek круто ! Добавил вас в список

Кто-нибудь работает над DatoCMS? Хотел бы это увидеть.

Кто-нибудь уже работает над средней интеграцией? Было бы здорово получить последние сообщения данного блога.

@mfeltscher ты читаешь мои мысли! У меня такая же потребность, и я начал искать, как бы мы могли ее написать. Поскольку Medium API ограничен в этом отношении (кстати, вы не можете получить самые последние сообщения из блога), нам придется либо очистить, либо использовать RSS-канал блога. Я начал писать здесь: https://github.com/jondubin/gatsby-source-rss Материалы / мысли приветствуются!

@jondubin. Эй, не могли бы вы добавить исходный плагин в

Мысли?

@KyleAMathews больше ничего не говори! Я перейду, как только представлюсь.

Привет, я начал играть с Гэтсби в эти выходные. Выглядит круто! Я хочу создать личный веб-сайт и использовать гламурные стили. На мой взгляд, ему не нужен собственный плагин. Поскольку он использует гламур в качестве фона, он отлично работает, когда вы используете плагин гламура. Я что-то упускаю?

@felixjung не знаю! Хотите попробовать и доложить? Я не использовал Glamorous и не исследовал его метод SSR, поэтому не знаю, будет ли существующий плагин glamour работать или нет.

Он действительно работает 😆 Просматривая его документацию, я ничего не нашел о SSR. Кент С. Доддс просто написал, что это работает, потому что гламур и реакция поддерживают это. Я попробовал, и он работает, когда вы включаете плагин гламура. 🎉

Ну что ж, тогда отлично :-) вы хотите добавить упоминание об этом тогда в readme плагина гламура, и мы можем проверить это тогда 👍

Конечно, можно.

@jondubin +1 об ограничениях Medium API. Я также попробовал использовать RSS, только чтобы узнать, что канал также содержит комментарии пользователя , которые вы можете обойти , но… 🙄

Думаю, я буду работать над плагином эмоций

Привет, было бы здорово иметь плагин для Directus, так как это альтернатива

@fk @jondubin Изучая эту проблему, я нашел другое решение для получения сообщений с Medium, как описано в этом сообщении в блоге : https://medium.com/@{username}/latest?format=json .

👋 Я могу работать над плагином gatsby-transformer-xml

вот PR для gatsby-transformer-xml

Плагин @KyleAMathews для Wordpress.com готов.

@fk @erutan wrt Flickr / 500px, Unsplash тоже

Я считаю, что # 1496 решил "CSV" в "Плагины трансформатора".

Я также рекомендую добавить в этот список XLSX.

Я начал работу над исходным плагином prismic.io здесь: https://github.com/angeloashmore/gatsby-source-prismic

Это очень просто: извлекает все документы и делает все данные доступными на узлах PrismicDocument.

Необходимые улучшения будут включать связывание документов по мере необходимости (альтернативные языки, поля реляционных ссылок,…).

Привет всем

Мы написали плагин с исходным кодом Medium, который извлекает JSON из конечной точки, упомянутой @mfeltscher. Я открыл запрос на слияние здесь: # 1907

Надеюсь, это будет полезно и для кого-то другого.

@deniaz Спасибо! Я совершенно забыл о том, как следить за комментарием @mfeltscher 😕, и теперь я немного сбит с толку, почему я сам никогда не пробовал эту конечную точку. Похоже, я послушно отказался от вещей, когда прочитал « Страница JSON не предназначена для использования в качестве API чтения »… 🤓 😅

Привет,
Я написал исходный плагин для Github API v4 или установил его с помощью npm install gatsby-source-github-api

Не стесняйтесь сообщить мне, что мне нужно изменить или какие функции вы бы хотели реализовать.

-
edit: Я также закончил простой веб-сайт, демонстрирующий полезность этого плагина: вы можете найти его здесь

LaTeX и особенно MathJax были бы замечательными!

@thomaskuntzz сейчас же! https://using-remark.gatsbyjs.org/katex/

Потрясающе! Похоже, отлично подходит для того, что мне нужно!

Просто интересно, почему KaTeX был выбран вместо MathJax ... Есть идеи?

Не уверен, проверьте обоснованность в оригинальном PR. Вы также добавляете еще один плагин для MathJax. Чем больше плагинов, тем лучше :-)

Привет, я собрал быстрое решение для разбивки на страницы списка сообщений и заметил, что нет примеров разбиения на страницы.

https://github.com/pixelstew/pixelstew-gatsby/blob/master/gatsby-node.js

Если это соответствует требованиям, я могу написать короткое сообщение, объясняющее это?

@pixelstew отлично выглядит! Вы хотите извлечь эту библиотеку, которую люди тоже могут использовать? Что-то вроде createPagninatedPages({ edges, pageLength=10, templatePath, createPage }) или что-то в этом роде.

Это решает действительно распространенную проблему!

Также хотелось бы написать в блоге об использовании этого решения.

@KyleAMathews - считайте, что это сделано

Привет народ!

Могу ли я работать с примером многоязычного сайта?

Подходит ли мой плагин

Я хотел бы помочь и получить обратную связь о правильном способе работы.

Благодаря!

@KyleAMathews

https://www.npmjs.com/package/gatsby-paginate

Только что заметил в ридми ужасные ошибки. Сообщите мне, достаточно ли прост в API.

Привет @pixelstew

Не могли бы вы добавить ссылку github в свой package.json?
На странице npm мне пришлось перейти в ваш профиль npm, затем в профиль github, затем в репозитории, чтобы найти исходный код.

Я собираюсь протестировать ваш пакет с помощью gatsby-plugin-i18n
Надеюсь, это сработает = D

@angeloocana - да, нп

@pixelstew отлично выглядит! Очень просто использовать. Единственное, чего мне не хватает, так это способа изменить путь по умолчанию для страниц. Например, для i18n или для подразделов сайта, например, / blog / 1, / blog / 2 и т. Д. Также, вероятно, способ указать завершающие слэши или нет.

Привет, @KyleAMathews Я написал плагин Source для Trello, он работает на основе идентификатора команды. что лучше, чем вводить boardId один за другим.

Я также создаю с ним 2 сайта с открытым исходным кодом. и сообщение в блоге / учебник обо всем процессе.
ура
🍻

@Necmttn woah! Я всегда хотел плагин исходного кода Trello! Не могу дождаться, чтобы прочитать об этом! Можете ли вы прыгать с доски на списки и карточки? Например, запросить доску, а затем получить всю информацию о карте из одного из ее списков?

определенно да! :) это было бы что-то вроде,

query getBoardById($id: String!) {
  allTrelloBoard (
    filter: {
      id: {eq: $id}
    }
  ){
    edges {
      node {
        id
        name 
        lists {
          id
          name
        }
        cards {
          id
          parent
          name
          desc
        }
      }
    }
  }
}

Таким образом, существует связь между node s на основе значения parent .
card.parent значение = list.id
list.parent значение = board.id
тогда в основном .. вы можете сегментировать карты относительно list , когда вы list.map ;

    const cards = data.cards.filter(card => {
      return card.parent === list.Id
    }).map(card => {
      return (
        <div key={card.id}>
          <h2>{card.name}</h2>
          <p>{card.desc}</p>
        </div>
      )
    })

сегодня я попытаюсь добавить трансформатор для card.desc который является синтаксическим анализом необработанной уценки с gatsby-transformer-remark.

и добавление отношения children было бы хорошим пиаром. Если у кого-то есть время, я был бы признателен.

хорошо, я также добавил отношения с детьми и замечание-трансформер. новая версия работает как шарм. вот пример запроса.

query getWeeklyById($id: String!) {
  allTrelloBoard (
    filter: {
      id: {eq: $id}
    }
  ){
    edges {
      node {
        id
        name lists {
          id
          name
          cards {
            id
            name
            childMarkdownRemark {
              id
              html
            }
          }
        }
      }
    }
  }
}

Только что у меня возникла исходного кода на основе здорово для создания примеров сайтов!

@KyleAMathews - Я собираюсь обновить библиотеку, чтобы ее можно было использовать для разбивки поста на страницы.

Можете ли вы или кто-нибудь еще описать, как может быть структурировано постраничное сообщение?
Например, в разметке - будет ли это index.md а затем несколько последующих файлов md для других «страниц»?

Или используя любой другой источник данных?

Думаю, мне нужно знать, как может выглядеть ответ API, если я хочу, чтобы это происходило автоматически.

@pixelstew он должен работать с любым источником данных. Ему просто нужна опция, я думаю, чтобы добавить «префикс» к страницам, которые он создает, например, «сообщения» или «изображения» или что-то еще.

@KyleAMathews - Да, наверное, я слишком усложнял это. Я думал передать массив всех сообщений, определить, есть ли какие-либо «многостраничные» сообщения в массиве, а затем условно отобразить те, у которых есть префикс URL, как вы говорите.

Если я оставлю ввод как любой определяемый пользователем массив, решение будет простым.

Я очень заинтересован в создании сайта с примером поиска или разбивки на страницы, так как в настоящее время я работаю над этими функциями для своего собственного сайта.

Если, конечно, над этим уже никто не работает.

@Tallestthomas , это было бы здорово! @pixelstew вы или кто-нибудь еще создали пример сайта для gatsby-paginate? Было бы хорошо, если бы один из них был размещен здесь, поскольку это частый случай использования.

О поиске - @bvaughn немного поигрался с поисковыми идеями. Брайан, вы куда-нибудь пихнули какой-нибудь образец кода?

Я подтолкнул сюда несколько незавершенных работ, но они совсем не готовы к публикации или чему-то еще. Просто работаю над этим тут и там, когда нахожу время.

Кто-нибудь работал с Zendesk или Greenhouse?

Всем привет,

Я создал вспомогательную библиотеку для авторов исходных текстов плагинов. Это должно помочь уменьшить часть шаблонов, необходимых для плагинов исходного кода.

gatsby-node-helpers : https://github.com/angeloashmore/gatsby-node-helpers

Я начал использовать его для исходного плагина Shopify, который пишу, и нашел в нем ценность, поэтому решил, что поделюсь им. Пожалуйста, дайте мне знать, что вы думаете, если попробуете. Благодаря :)

@KyleAMathews Я использовал плагин в своем собственном блоге, который я счастлив клонировать и разместить здесь.

@angeloashmore это фантастика !!! Не могли бы вы сделать ссылку на него со страницы документации исходного плагина? https://www.gatsbyjs.org/docs/create-source-plugin/

@pixelstew gatsby-paginate?

@pixelstew по какой-либо причине лицензия GPL на плагин gatsby-paginate?

Хотелось бы увидеть исходный плагин для Craft CMS. Craft имеет собственный плагин для создания JSON API. https://github.com/craftcms/element-api/tree/v1 .

Для крафта 3 также есть плагин сервера GraphQL. https://github.com/markhuot/craftql

Эта библиотека NPM довольно милая. Он анализирует страницу и создает необходимые файлы шрифтов только для фактических символов, используемых на этой странице, для оптимальной скорости загрузки https://www.npmjs.com/package/subfont

Было бы здорово иметь плагин, который делал бы это для всех или определенных страниц сайта!

@KyleAMathews Мне бы пригодилась интеграция с

@ mickeyreiss-visor, это было бы круто!

есть какой- нибудь плагин

@smakosh Не то, чтобы я в курсе (искал npm и GitHub) ... хочу создать ?!

Я попробую!

их API настолько плох, лол, вместо того, чтобы сказать мне, какой параметр отсутствует, их ответ будет похож на

{
    "error": "invalid_request",
    "error_description": "The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed."
}

Хорошо, мне удалось получить ответ, сегодня вечером буду работать над плагином!

@smakosh здорово! Хотите добавить его в список плагинов сообщества? https://www.gatsbyjs.org/docs/plugins/#community -plugins

Только что открыл PR https://github.com/gatsbyjs/gatsby/pull/4086

Стартовый комплект: https://github.com/smakosh/gatsby-source-dribbble-example

Привет, есть ли планы добавить поддержку asciidoc? :)

@vojtechruz Я еще никого не написал! Не стесняйтесь принять это и внести свой вклад в сообщество!

Конечно, буду рад :)

Кто-нибудь работает над подключаемым модулем subfont? Хотел бы увидеть это в действии.

@alexparish Было бы здорово увидеть!

@alexparish , было бы здорово! Просто думал об одном для этого на днях! Я думал, что по умолчанию люди должны указывать, какие страницы они хотят, поскольку я предполагаю, что этот процесс довольно дорогостоящий? Было бы здорово подключиться к Google Analytics и автоматически применить инструмент к 10 лучшим целевым страницам.

@KyleAMathews Боюсь, я очень мало знаю о процессе подшрифтов, но был впечатлен учетными данными perf. Если вы планировали попробовать этот плагин, пожалуйста, не позволяйте мне останавливать вас - у меня очень мало времени, поэтому с моей стороны это будет медленным.

Хорошо, не уверен, когда у меня тоже будет время, но да, у этого есть большой потенциал для повышения производительности на сайтах с пользовательскими шрифтами.

TBH плагин для подшрифта, вероятно, немного переборщен, если только в нем не было какой-то магии, такой как идея запуска только на 10 лучших страницах из аналитики (что является _утешной_ идеей). Чтобы добавить дополнительный шрифт в проект, вы можете просто прикрепить его к концу шага сборки.

gatsby build && subfont public -i

Еще пара идей:

Идея плагина:
Анализируйте файл эскиза для автоматического создания документации по компонентам или документации системы проектирования на основе описания компонента внутри файла эскиза.

Как это работает:
Чтобы проанализировать и прочитать файл эскиза, нам нужна четкая структура слоев и монтажной области с некоторыми специфическими свойствами. Для каждой группы компонентов, которую вы хотите задокументировать, должна быть отдельная монтажная область со слоем описания или информационным символом. У этого слоя должно быть особое имя. Мы можем прочитать контент из этого слоя и построить страницу с разметкой с этим контентом.

Некоторые инструменты, которые мы можем использовать:
https://github.com/xaviervia/sketch2json
http://oscarotero.design/node-sketch/
https://gist.github.com/JoelBesada/fc20060741342e8a5f15208401e4308d

Идея облачного плагина:
больше информации

Буду работать над pdf-трансформером.

Я буду работать над плагином исходного кода Dynamodb.

@KyleAMathews Я разобью это на несколько вопросов, чтобы было немного проще. Я закрою это, когда они будут созданы!

в обзоре проблемы есть

Drupal (в репо уже есть начало, но есть ряд дополнений, которые было бы здорово сделать)

Есть ли где-нибудь список дополнений, за которыми вы гонитесь?

Действует ли исходный список желаний для того, что мы можем добавить?

@KyleAMathews У меня есть небольшая утилита node, которую я использую для fixer-io, и я бы действительно хотел добавить ее в качестве плагина, который я могу использовать в gatsby, так что в основном я бы сделал плагин gatsby-fixer-io . Можно ли уже отправить PR для этого, поскольку я это наметил на данный момент

@kenigbolo, мы стараемся добавлять в это репо только действительно основные плагины. Мы будем рады, если вы сами опубликуете свой плагин в npm, чтобы он появился в библиотеке плагинов! https://www.gatsbyjs.org/docs/submit-to-plugin-library/

@aroduribe не совсем. Многое из этого уже сделано. Если есть что-то интересное, дважды проверьте библиотеку плагинов, чтобы узнать, сделано это или нет. https://www.gatsbyjs.org/plugins/

Вы также можете проверить https://github.com/gatsbyjs/gatsby/labels/status%3A%20help%20wanted для работы, чтобы помочь.

Другие способы внести свой вклад также можно найти на https://www.gatsbyjs.org/docs/how-to-contribute/.

С момента приобретения Smugmug в апреле, Flickr, похоже, переживает небольшой период возрождения. Как давний пользователь Flickr, я очень хочу попробовать написать плагин с исходным кодом ...

Flickr был бы полезен - хотя сам сайт томится, его надежный общедоступный API делает его полезным источником для хранения фотографий для добавления в сообщения и страницы блога.

Любопытно, заглядывал ли кто-нибудь в плагин исходного кода Notion

@dustinhorton Я смотрел это вчера. но у них нет общедоступного API, поэтому необходимо использовать общедоступные доски и т. д.

есть неофициальный API SDK, написанный на GO.
https://github.com/kjk/notionapi

дайте мне знать, если вы хотите его написать. Я тоже могу внести свой вклад.

Я написал gatsby-source-trello по тем же причинам.

@Necmttn Да, я наткнулся на это после поиска плагина с исходным кодом Gatsby. Public удовлетворит мои потребности, но у меня есть только один небольшой вариант использования, поэтому я боюсь, что не могу позволить себе выделить время, которое потребуется. Я взгляну на ваш плагин Trello, чтобы понять, что он может повлечь за собой - благодарность или ссылку.

Я построил эту семью: https://github.com/wmlutz/gatsby-source-dynamodb

Просмотр текущей документации и плагинов кажется, что все в этом было рассмотрено. Если закрыть его, при запросе любого нового исходного плагина может возникнуть проблема. (К вашему сведению: это самая старая открытая проблема, так что ура, команда, которая все это решила.)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги