web-standards-ru / new

Новый сайт «Веб-стандартов»
https://new.web-standards.ru/
39 stars 17 forks source link

Добавляет страницу "Подкаст" и станицы эпизодов подкаста #98

Closed LxPvlv closed 5 years ago

LxPvlv commented 5 years ago

Плагину gatsby-source-rss-feed нужен тег link для создания id страниц, так как в фиде нет линка, в настройках плагина можно создать link из другого тега, я выбрал title(можно взять другой уникальный тег). НО выглядит это как-то костыльно.

Краткое описания взял из 'itunes:summary'.

В gatsby-node.js немного переделал createPages чтобы выполнить два GraphQL запроса. Не знаю правильно ли так делать? Да и вообще надо порефакторить.

Шаблоны взял из article.jsx и articleList.jsx и переделал под подкаст.

pepelsbey commented 5 years ago

В фиде есть специальный тег как раз для уникальности:

<guid isPermaLink="true">https://web-standards.ru/podcast/episodes/158.mp3</guid>

У него даже название GUID (Globally Unique Identifier).

А вообще круто конечно :)

pepelsbey commented 5 years ago

Нет, правда, обалденно :) Я готов смёржить, но подожду, если замена <title> на <guid> имеет смысл. Огромное спасибо!

LxPvlv commented 5 years ago

Я <guid> использовал сразу, но не получилось. Плагин делает из него объект, так как у тега есть атрибут<guid isPermaLink="true">, и этот объект приводит к стороке.... в общем не работает. Можно было взять дату публикации, но тогда если два подкаста в один день выложить :) сайт не соберется, а в заголовке всегда есть инкремет.

С промисами в gatsby-node.js надо разобраться, что то мне там не нравится. Нашел вот https://github.com/gatsbyjs/gatsby/issues/9301 завтра посмотрю что там.

Думаю мержит еще рано. У меня опыта вообще мало, надо повнимательней.

pepelsbey commented 5 years ago

Окей, тогда попробую привлечь тех, у кого опыта побольше.

FFxSquall commented 5 years ago

@LxPvlv gatsby-source-rss-feed всё же парсит rss, а подкасты в формате atom и лучше взять gatsby-source-atom и все поля отлично спарсятся

LxPvlv commented 5 years ago

@FFxSquall попробовал атом, не получается отсортировать список childrenAtomEntry в обратном порядке


{
  allAtomFeed {
    edges {
      node {
        childrenAtomEntry {
          title
          link
        }
      }
    }
  }
}
`
FFxSquall commented 5 years ago

@LxPvlv я так понял, что там childrenAtomEntry вообще можно не использовать пока у тебя один источник, он пригодится только когда у тебя несколько фидов. А вообще я в graphql полный нуб, но думаю всё же есть способ отсортировать по дате нормально. Должно быть примерно так же как в статьях.

LxPvlv commented 5 years ago

@FFxSquall Да, точно, есть отдельные запросы по фидам и по энтрисам. Это я в GraphiGl набрал 'atom' и выбрал из автодополнения, автоматически, первое что попалось. Ща запиарю все.

pepelsbey commented 5 years ago

А как сейчас дела в пулреквесте? :) Вижу, что ушёл костыль.

LxPvlv commented 5 years ago

На мой взгляд все хорошо. Но я раньше никогда не использовал гэтсби.

pepelsbey commented 5 years ago

Тут почти никто раньше не использовал Гэтсби :) Проверю и смёржу тогда.

pepelsbey commented 5 years ago

Спасибо огромное!