Дублирование проектов DatoCMS

Привет, ребята! Чтобы сделать Baretheme удобным в сопровождении, мне нужно было иметь возможность создавать новые проекты из набора полей. Когда я начинал, я определял модели и поля, которые мне были нужны, как простые объекты данных JSON. Но с ростом набора типов элементов и полей стало очень сложно писать эти объекты вручную. Вот я и спрашивал себя..

Почему бы мне просто не скопировать существующий проект, который я все равно создавал для себя?

Пока я разрабатываю Baretheme, я постоянно играю с графическим интерфейсом администратора DatoCMS, загружая модели и поля, которые мне нужны. Переход к моему редактору кода и копирование полей, которые я уже создал в этом графическом интерфейсе, казался очень повторяющимся, ненужным и раздражающим. Поэтому я подумал: «В DatoCMS должен быть инструмент для экспорта моего проекта»… и я не смог его найти. Поэтому я создал его с помощью API управления контентом DatoCMS.

На кой черт вам нужно копировать проект без его данных?

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

Однако был один момент, который для меня гораздо важнее: я разрабатываю тему для DatoCMS под названием Baretheme, которую я планирую сделать общедоступной. Но я не могу и не хочу ожидать, что люди будут создавать все необходимые модели вручную, также мне лень писать и поддерживать документацию, объясняющую, как создать поле, какие поля вы должны создать и что вы можете сделайте, если у вас возникнут какие-то ошибки.. поэтому копирование проекта без его данных сэкономит мне много времени и позволит предоставить удобную тему для других.

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

Где я могу получить это?

Так что да, я должен признать, что на данный момент это более или менее доступно только разработчикам, поскольку я опубликовал пакет под названием datocms-tools на Github. Вы также можете установить это из npm через npm install @mmintel/datocms-tools . Кроме того, на данный момент это очень примитивно, но я не хотел скрывать это от вас, также я хочу сообщить DatoCMS, что они могут сэкономить свое время на более важных функциях :)



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

Как это использовать?

Вы можете либо импортировать это как модуль в свой проект, например: import DatoCMSTools from '@mmintel/datocms-tools';, либо запустить предоставленные мной сценарии, например. через DATOCMS_API_KEY=xxxxx npm run import-models. Он предоставляет методы для:

  • экспорт моделей
  • импорт моделей
  • экспорт пунктов меню
  • импорт пунктов меню
  • сброс проекта

Модели означает, что он включает itemTypesи fields. Подробнее об этом можно прочитать на проектах README.md.

Если вам интересно…

Поэтому, если вы хотите узнать, что такое Baretheme на самом деле и как я собираюсь использовать подобные инструменты здесь, вам следует подписаться на эту публикацию ;)

В настоящее время я трачу много времени на разработку, поэтому я не буду сейчас слишком много объяснять. В основном Baretheme построен на Vue.js и Nuxt и предоставляет очень быстрый и простой способ создания статических веб-сайтов, которые извлекают свои данные из DatoCMS.

Самое приятное в этом то, что он будет полностью модульным, то есть вы сможете выбирать компоненты, которые вам нужны на вашем веб-сайте, без установки других. Они создадут для вас необходимые поля и модели и зарегистрируют компонент Vue. Вы также сможете расширить эту тему с помощью собственного набора компонентов. Baretheme также будет бесплатно доступна на Github.

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

Кстати, если у вас возникли какие-либо ошибки с datocms-tools, пожалуйста, создайте проблему на Github.

Если вы хотите узнать больше о разработке статических веб-сайтов с помощью DatoCMS и Vue…