Этот процесс стал утомительным и отнимает много времени. Мы публикуем не менее 2 статей в неделю, и каждая статья может занять более 30 минут, чтобы быть опубликованной в нашем блоге и на трех упомянутых платформах. Сюда входит добавление контента в формате, который поддерживает каждая платформа, загрузка изображений, если они есть, установка мета-атрибутов, таких как описание и мета-теги, и многое другое.
Поэтому я решил создать инструмент для кросс-постинга, который бы автоматизировал эту задачу. cross-post-notion теперь позволяет нам публиковать статью из Notion в репозитории GitHub (где хранится содержимое нашего основного блога), Dev.to, Hashnode и Medium менее чем за минуту. Я решил создать этот инструмент в рамках наших Дней открытий в Medusa.
Каждую пятницу члены команды Medusa могут посвятить половину или весь свой день тому, что отличается от их обычной повседневной работы. Вы можете использовать этот день, чтобы узнать что-то новое, прочитать книгу, относящуюся к вашей области, попробовать интересный инструмент или создать новый инструмент.
Когда я понял, что этот инструмент значительно сократит время, которое я трачу на публикацию контента в нашем блоге, я посвятил последние 4 дня открытий (пятницы) созданию этого инструмента.
Вы можете использовать cross-post-notion либо как команду NPX, либо как глобальный инструмент CLI, либо просто клонируя репозиторий GitHub .
Затем, после добавления необходимых конфигураций (подробнее об этом позже), вы можете публиковать на всех различных платформах с помощью одной команды. Вы также можете выбрать конкретные платформы для публикации.
Публикация на GitHub может быть полезна для любой блоггерской платформы, которая использует файлы Markdown, размещенные в репозитории GitHub. К ним относятся Stackbit, GitHub Pages, 11ty, Hugo, Docusaurus и т.д....
Статьи размещаются на GitHub в виде Markdown-файлов с метаданными в первой части. По умолчанию передняя часть включает заголовок и дату статьи. Значения этих полей извлекаются из вашего документа Notion, и вы можете указать, из каких свойств извлекать эти поля.
Кроме того, вы можете указать пользовательские поля для добавления в титульный лист и свойства, из которых они будут извлекаться из Notion. Вы также можете указать поля первого плана с фиксированными значениями. Это полезно, если у вас есть поля первого плана, которые нужно постоянно добавлять в статьи.
Если в статье есть изображения, они также загружаются в репозиторий GitHub. Вы можете указать путь для загрузки изображений и префикс для использования в статье.
С помощью этого инструмента вы можете публиковать статьи на dev.to как на своей личной учетной записи, так и в организации. Подобно публикации на GitHub, значения полей dev.to, таких как заголовок, теги или серия, могут быть извлечены из свойств Notion.
Одним из ограничений публикации на dev.to является то, что вы не можете загружать изображения в статью с помощью их API. Поэтому вам придется вручную загружать любые изображения в статью.
С помощью этого инструмента вы можете публиковать статьи в Hashnode как в своем личном блоге, так и в конкретной публикации. Как и в других платформах, значения полей Hashnode извлекаются из свойств Notion.
Одно из ограничений публикации на Hashnode заключается в том, что с помощью их API невозможно опубликовать статью в виде черновика. Можно только выбрать вариант скрытия статьи из ленты Hashnode. Таким образом, статья будет автоматически доступна вашим подписчикам.
С помощью этого инструмента вы можете публиковать статьи в Medium как в личном аккаунте, так и в конкретной публикации. Как и на других платформах, значения полей Medium извлекаются из свойств Notion.
Этот инструмент требует наличия внутренней интеграции Notion Integration, созданной и установленной в вашем рабочем пространстве Notion. Интеграция должна иметь доступ к страницам, которые вы хотите опубликовать. Подробнее об этом вы можете узнать в документации Notion .
Есть три способа использования этого инструмента:
npx cross-post-notion
2. Установите как глобальный инструмент CLI с помощью NPM или Yarn:
# using NPM npm install -g cross-post-notion # using Yarn yarn add cross-post-notion global
3. Клонируйте репозиторий GitHub:
git clone https://github.com/shahednasser/cross-post-notion.git cd cross-post-notion npm install npm start
Перед использованием инструмента вам необходимо установить следующие переменные окружения. Требования к переменным окружения зависят от того, на какие платформы вы хотите публиковать:
Конфигурации используются для настройки того, как статья будет опубликована на различных платформах. С их помощью можно определить, из каких свойств извлекать данные в Notion, публиковать ли статью или добавлять ее в черновики, и многое другое. Настраивать эти конфигурации нужно только при первом использовании инструмента.
По умолчанию конфигурации загружаются из файла config/default.json относительно текущего каталога, из которого вы выполняете команду. В качестве альтернативы, вы можете передать путь к файлу конфигурации в качестве опции .
Файл может иметь следующие конфигурации:
{ "config": { "notion": { "options": { "skip_block_types": [ "toggle" ] } }, "github": { "options": { "image_path": "public", "image_prefix": "/", "article_path": "content", "properties": { "title": "Title for Blog", "date": "Publishing Date", "slug": "Slug" }, "add_default_frontmatter": true, "frontmatter_labels": { "title": "title", "date": "date" }, "extra_frontmatter": { "excerpt": "this is description" }, "extra_frontmatter_mapper": { "excerpt": "Description" } } }, "devto": { "options": { "should_publish": false, "properties": { "title": "Title for Dev.to" } } }, "hashnode": { "options": { "should_publish": true, "should_notify_followers": false, "properties": { "title": "Title for Hashnode" } } }, "medium": { "options": { "should_publish": false, "should_notify_followers": false, "properties": { "title": "Title for Medium" } } } } }
Вы можете узнать, что представляет собой каждое из этих полей и какие еще поля могут быть приняты в репозитории GitHub .
Получите URL документа Notion, содержащего статью, которую вы хотите опубликовать. Это должен быть внутренний URL, который вы можете получить из документа Notion:
Затем выполните следующую команду:
# using NPX npx cross-post-notion post <url> # using CLI tool cross-post-notion post <url> # using cloned repository npm start post <url>
Где <url> - это URL-адрес документа Notion.
Если все переменные окружения установлены правильно, вы должны увидеть в терминале запись о том, что статья была опубликована на каждой из платформ.
Вы также можете указать, на каких платформах вы хотите опубликовать статью, используя опцию -p:
npx cross-post-notion post <url> -p devto hashnode
Это приведет к публикации статьи только на Dev.to и Hashnode.
Вы можете узнать больше об этом инструменте и его ограничениях, просмотрев репозиторий GitHub . Если вы используете его, дайте мне знать, помог ли он вам! Хотя я в основном использую его для публикации статей в Medusa, не стесняйтесь открывать проблемы и вносить свой вклад в дальнейшее улучшение инструмента.
Обязательно ознакомьтесь с Medusa, композитной платформой для электронной коммерции, на GitHub.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.