IDX предлагает широкий спектр встроенных шаблонов , включающих все файлы, системные пакеты (например, компиляторы) и расширения, необходимые для быстрого начала работы с языком или платформой.
Вы также можете запустить рабочую область IDX, используя шаблоны сообщества , размещенные на GitHub. Дополнительные сведения о запуске новой рабочей области из шаблона см. в разделе Создание рабочей области .
Большинство пользователей будут использовать встроенные шаблоны или импортировать проекты из Git, но для более сложных случаев вы можете создавать свои собственные шаблоны:
Если вы создаете собственную платформу, библиотеку или службу , вы можете позволить своим пользователям быстро начать работу с вашей технологией, даже не выходя из браузера, используя всю мощь облачной виртуальной машины.
Если у вас есть предпочтительный стек технологий для ваших проектов , вы можете упростить собственный процесс запуска новых проектов с помощью специального шаблона.
Если вы обучаете других, например, с помощью учебника или лаборатории кода , вы можете удалить некоторые начальные шаги для своих учеников, предварительно настроив отправную точку для вашей лаборатории кода в виде пользовательского шаблона.
После того, как вы создадите и протестируете свой собственный шаблон, вы можете создать ссылку для его размещения на своем веб-сайте, в файле README
репозитория Git, на странице сведений о пакете (например, в NPM) или в любом другом месте, которое, по вашему мнению, будут запускать ваши пользователи. используя вашу технологию.
Предварительные условия
Прежде чем начать:
Узнайте, как использовать файл
idx/dev.nix
для настройки вашей среды .Ознакомьтесь с основами языка Nix и держите справочник под рукой.
Структура файла шаблона
Шаблон IDX — это общедоступный репозиторий Git (или папка, или ветвь репозитория), содержащий как минимум два файла:
idx-template.json
включает метаданные шаблона, включая его видимое пользователю имя, описание и параметры, доступные пользователям для настройки шаблона. Например, вы можете разрешить пользователям выбирать один из нескольких языков программирования или примеров вариантов использования. IDX использует эту информацию для подготовки пользовательского интерфейса, который будет показан пользователям, когда они решат создать новое рабочее пространство на основе вашего шаблона.idx-template.nix
— это файл, написанный на языке Nix и содержащий сценарий оболочки Bash (завернутый в функцию Nix), отвечающий за:- Создание рабочего каталога новой рабочей области.
- Настройка среды путем создания файла
.idx/dev.nix
. Обратите внимание, что вы также можете просто запустить в этом скрипте инструмент формирования леса проекта, напримерflutter create
илиnpm init
, или запустить собственный скрипт, написанный на Go, Python, Node.js или другом языке.
Этот файл будет выполнен с параметрами, указанными пользователем , когда IDX загрузит шаблон.
Другие файлы могут быть включены вместе с этими двумя файлами для использования в idx-template.nix
для создания экземпляра шаблона. Например, вы можете включить окончательный файл .idx/dev.nix
или даже все файлы каркаса прямо в репозиторий.
Создайте стартовый шаблон
Чтобы ускорить создание шаблона, мы рекомендуем вам начать с одного из следующих методов создания шаблона IDX, который вы можете в дальнейшем настроить:
- Превратите любой общедоступный репозиторий GitHub в шаблон
- Используйте официальный шаблон или шаблон сообщества в качестве основы для своего шаблона.
Простой пример: превратите любой общедоступный репозиторий GitHub в шаблон.
Прежде чем углубляться в детали определения idx-template.json
и idx-template.nix
, полезно просмотреть базовый пример шаблона, который:
- Не имеет настраиваемых пользователем параметров.
- Просто копирует все файлы из вашего репозитория шаблонов (за исключением двух файлов
idx-template
) в рабочую область пользователя. Уже должна существовать подпапка.idx
с файломdev.nix
, определяющим среду.
Добавление следующих файлов в любой общедоступный репозиторий GitHub (или подпапку, или ветку) эффективно превращает этот репозиторий в шаблон IDX.
idx-template.json
{
"name": "Hello world",
"description": "A template for a CLI program that prints 'hello world'",
"icon": "https://www.gstatic.com/images/branding/productlogos/idx/v1/192px.svg",
"params": []
}
idx-template.nix
# No user-configurable parameters
{ pkgs, ... }: {
# Shell script that produces the final environment
bootstrap = ''
# Copy the folder containing the `idx-template` files to the final
# project folder for the new workspace. ${./.} inserts the directory
# of the checked-out Git folder containing this template.
cp -rf ${./.} "$out"
# Set some permissions
chmod -R +w "$out"
# Remove the template files themselves and any connection to the template's
# Git repository
rm -rf "$out/.git" "$out/idx-template".{nix,json}
'';
}
Перейдите к настройке вашего шаблона , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Создайте собственный шаблон, используя официальный шаблон или шаблон сообщества.
Команда Project IDX поддерживает два репозитория для шаблонов IDX:
Официальные шаблоны . Это шаблоны, которые вы выбираете непосредственно на панели управления IDX при создании нового приложения.
Шаблоны сообщества . Эти шаблоны допускают внесение вкладов со стороны сообщества открытого исходного кода. Чтобы использовать шаблон сообщества, клонируйте репозиторий Git шаблонов сообщества. Вы можете использовать полную ссылку на шаблон, который хотите использовать.
Чтобы создать собственный шаблон на основе существующего шаблона:
Решите, какой шаблон использовать в качестве основы для вашего собственного шаблона, а затем клонируйте проект.
Настройте
idx-template.json
,idx-template.nix
и.idx/dev.nix
по мере необходимости, начиная с пункта Настройка вашего шаблона .Проверьте изменения в своем репозитории.
Следуйте инструкциям по созданию новой рабочей области для вашего шаблона , чтобы развернуть и протестировать его. Если вы используете вложенный репозиторий, добавьте прямую ссылку на него в своем URL-адресе. Например, если вы использовали шаблон сообщества Vanilla Vite, вам нужно подготовить и протестировать новое рабочее пространство, используя следующий URL-адрес:
https://idx.google.com/new?template=https://github.com/project-idx/community-templates/tree/main/vite-vanilla
Перейдите к настройке вашего шаблона , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Настройте свой шаблон
Теперь, когда вы создали базовый шаблон для дальнейшего развития, вы можете редактировать файлы idx-template.json
, idx-template.nix
и .idx/dev.nix
в соответствии со своими требованиями. Некоторые из конфигураций, которые вы, возможно, захотите настроить, включают:
- Добавление системных пакетов в ваш
bootstrap
скрипт . - Добавление настраиваемых пользователем параметров
- Выбор файлов, которые должны открываться по умолчанию
- Выбор значка рабочей области по умолчанию
Используйте дополнительные системные пакеты в своем bootstrap
скрипте.
В базовом примере используются только базовые команды POSIX для копирования файлов в нужное место. Сценарий bootstrap
вашего шаблона может потребовать установки дополнительных двоичных файлов, таких как git
, node
, python3
или других.
Вы можете сделать дополнительные системные пакеты доступными для вашего загрузочного сценария, указав packages
в файле idx-template.nix
, точно так же, как вы настраиваете рабочее пространство с дополнительными системными пакетами , добавляя packages
в его файл dev.nix
.
Вот пример добавления pkgs.nodejs
, который включает в себя двоичные файлы, такие как node
, npx
и npm
:
# idx-template.nix
{pkgs}: {
packages = [
# Enable "node", "npm" and "npx" in the bootstrap script below.
# Note, this is NOT the list of packages available to the workspace once
# it's created. Those go in .idx/dev.nix
pkgs.nodejs
];
bootstrap = ''
mkdir "$out"
# We can now use "npm"
npm init --yes my-boot-strap@latest "$out"
''
}
Добавить настраиваемые пользователем параметры
Чтобы пользователи могли настраивать отправную точку своего нового проекта, вы можете создать несколько шаблонов или создать один шаблон с параметрами. Это отличный вариант, если ваши разные отправные точки — это просто разные значения, передаваемые в инструмент CLI (например, --language=js
и --language=ts
).
Чтобы добавить параметры, вам необходимо:
- Опишите свой параметр в объекте
params
вашего файла метаданныхidx-template.json
. IDX использует информацию из этого файла для подготовки пользовательского интерфейса (например, флажков, раскрывающихся списков и текстовых полей), отображаемого пользователям вашего шаблона. - Обновите загрузочный файл
idx-template.nix
, чтобы использовать значения, выбранные пользователем при создании экземпляра шаблона.
Опишите свой параметр в idx-template.json
Вот пример добавления параметра enum
, который IDX отображает либо в виде раскрывающегося меню, либо в виде группы переключателей, в зависимости от количества параметров:
{
"name": "Hello world",
"description": "A hello world app",
"params": [
{
"id": "language",
"name": "Programming Language",
"type": "enum",
"default": "ts",
"options": {
"js": "JavaScript",
"ts": "TypeScript"
},
"required": true
}
]
}
Поскольку существует два значения (JavaScript и TypeScript), пользовательский интерфейс отобразит группу переключателей для двух параметров и передаст значение ts
или js
в сценарий idx-template.nix
.
Каждый объект параметра имеет следующие свойства:
СВОЙСТВО | ТИП | ОПИСАНИЕ |
---|---|---|
идентификатор | string | Уникальный идентификатор параметра, аналогичный имени переменной. |
имя | string | Отображаемое имя для этого параметра. |
тип | string | Указывает компонент пользовательского интерфейса, который будет использоваться для этого параметра, и тип данных, передаваемых в сценарий начальной загрузки. Допустимые значения:
|
параметры | object | Для параметров enum это параметры, которые будут отображаться пользователям. Например, если параметрами являются {"js": "JavaScript", ...} , в качестве параметра будет отображаться "JavaScript", и при выборе значением этого параметра будет js . |
по умолчанию | string или boolean | Устанавливает начальное значение в пользовательском интерфейсе. Для параметров enum это должен быть один из ключей в options . Для boolean параметров это должно быть либо true , либо false . |
необходимый | boolean | Указывает, что этот параметр является обязательным. |
Используйте значения параметров в idx-template.nix
После определения объекта params
в файле idx-template.json
вы можете начать настройку сценария начальной загрузки на основе значений параметров, выбранных пользователем.
Следуя примеру из предыдущего раздела, если у вас есть один параметр с language
идентификатора, который представляет собой перечисление с возможными значениями ts
или js
, вы можете использовать его следующим образом:
# idx-template.nix
# Accept additional arguments to this template corresponding to template
# parameter IDs, including default values (language=ts by default in this example).
{ pkgs, language ? "ts", ... }: {
packages = [
pkgs.nodejs
];
bootstrap = ''
# We use Nix string interpolation to pass the user's chosen programming
# language to our script.
npm init --yes my-boot-strap@latest "$out" -- --lang=${language}
''
}
Другой распространенный шаблон — условное включение содержимого в зависимости от значения строки. Другой способ записи предыдущего примера:
npm init --yes my-boot-strap@latest "$out" -- \
${if language == "ts" then "--lang=ts" else "--lang=js" }
Выберите, какие файлы должны открываться по умолчанию
Рекомендуется настроить, какие файлы следует открывать для редактирования при создании новых рабочих пространств с помощью вашего шаблона. Например, если ваш шаблон предназначен для простого веб-сайта, вы можете открыть основные файлы HTML, JavaScript и CSS.
Чтобы настроить, какие файлы должны открываться по умолчанию, обновите файл .idx/dev.nix
( а не файл idx-template.nix
!), включив в него перехватчик рабочей области onCreate
с атрибутом openFiles
, например:
# .idx/dev.nix
{pkgs}: {
...
idx = {
# Workspace lifecycle hooks
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
# Open editors for the following files by default, if they exist.
# The last file in the list will be focused.
default.openFiles = [
"src/index.css"
"src/index.js"
"src/index.html"
];
# Include other scripts here, as needed, for example:
# installDependencies = "npm install";
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
# Enable previews and customize configuration
previews = { ... };
};
}
Выберите значок рабочей области по умолчанию
Вы можете выбрать значок по умолчанию для рабочих пространств, созданных с помощью вашего шаблона, поместив файл PNG с именем icon.png
рядом с файлом dev.nix
в каталоге .idx
.
Проверьте свой шаблон в новом рабочем пространстве.
Самый простой способ комплексного тестирования вашего шаблона — создать с его помощью новое рабочее пространство. Перейдите по следующей ссылке, заменив пример URL-адресом репозитория GitHub вашего шаблона:
https://idx.google.com/new?template=https://github.com/my-org/my-repo
При желании вы можете включить ветку и подпапку. Все нижеперечисленное действительно, если оно общедоступно:
-
https://github.com/my-org/my-repo/
-
https://github.com/my-org/my-repo/tree/main/path/to/myidxtemplate
-
https://github.com/my-org/my-repo/tree/branch
-
https://github.com/my-org/my-repo/tree/branch/path/to/myidxtemplate
Это также URL-адрес, которым вы поделитесь с другими, чтобы они могли использовать ваш новый шаблон, или URL-адрес, на который вы будете ссылаться с помощью кнопки «Открыть в IDX» .
Поделитесь своим шаблоном
Убедившись, что ваш шаблон ведет себя должным образом, опубликуйте его в репозитории GitHub и поделитесь той же ссылкой, которую вы использовали при создании рабочей области для тестирования .
А чтобы пользователям было еще проще найти ваш шаблон, добавьте кнопку «Открыть в IDX» на свой веб-сайт или в репозиторий README.
,IDX предлагает широкий спектр встроенных шаблонов , включающих все файлы, системные пакеты (например, компиляторы) и расширения, необходимые для быстрого начала работы с языком или платформой.
Вы также можете запустить рабочую область IDX, используя шаблоны сообщества , размещенные на GitHub. Дополнительные сведения о запуске новой рабочей области из шаблона см. в разделе Создание рабочей области .
Большинство пользователей будут использовать встроенные шаблоны или импортировать проекты из Git, но для более сложных случаев вы можете создавать свои собственные шаблоны:
Если вы создаете собственную платформу, библиотеку или службу , вы можете позволить своим пользователям быстро начать работу с вашей технологией, даже не выходя из браузера, используя всю мощь облачной виртуальной машины.
Если у вас есть предпочтительный стек технологий для ваших проектов , вы можете упростить собственный процесс запуска новых проектов с помощью специального шаблона.
Если вы обучаете других, например, с помощью учебника или лаборатории кода , вы можете удалить некоторые начальные шаги для своих учеников, предварительно настроив отправную точку для вашей лаборатории кода в виде пользовательского шаблона.
После того, как вы создадите и протестируете свой собственный шаблон, вы можете создать ссылку для его размещения на своем веб-сайте, в файле README
репозитория Git, на странице сведений о пакете (например, в NPM) или в любом другом месте, которое, по вашему мнению, будут запускать ваши пользователи. используя вашу технологию.
Предварительные условия
Прежде чем начать:
Узнайте, как использовать файл
idx/dev.nix
для настройки вашей среды .Ознакомьтесь с основами языка Nix и держите справочник под рукой.
Структура файла шаблона
Шаблон IDX — это общедоступный репозиторий Git (или папка, или ветвь репозитория), содержащий как минимум два файла:
idx-template.json
включает метаданные шаблона, включая его видимое пользователю имя, описание и параметры, доступные пользователям для настройки шаблона. Например, вы можете разрешить пользователям выбирать один из нескольких языков программирования или примеров вариантов использования. IDX использует эту информацию для подготовки пользовательского интерфейса, который будет показан пользователям, когда они решат создать новое рабочее пространство на основе вашего шаблона.idx-template.nix
— это файл, написанный на языке Nix и содержащий сценарий оболочки Bash (завернутый в функцию Nix), отвечающий за:- Создание рабочего каталога новой рабочей области.
- Настройка среды путем создания файла
.idx/dev.nix
. Обратите внимание, что вы также можете просто запустить в этом скрипте инструмент формирования леса проекта, напримерflutter create
илиnpm init
, или запустить собственный скрипт, написанный на Go, Python, Node.js или другом языке.
Этот файл будет выполнен с параметрами, указанными пользователем , когда IDX загрузит шаблон.
Другие файлы могут быть включены вместе с этими двумя файлами для использования в idx-template.nix
для создания экземпляра шаблона. Например, вы можете включить окончательный файл .idx/dev.nix
или даже все файлы каркаса прямо в репозиторий.
Создайте стартовый шаблон
Чтобы ускорить создание шаблона, мы рекомендуем вам начать с одного из следующих методов создания шаблона IDX, который вы можете в дальнейшем настроить:
- Превратите любой общедоступный репозиторий GitHub в шаблон
- Используйте официальный шаблон или шаблон сообщества в качестве основы для своего шаблона.
Простой пример: превратите любой общедоступный репозиторий GitHub в шаблон.
Прежде чем углубляться в детали определения idx-template.json
и idx-template.nix
, полезно просмотреть базовый пример шаблона, который:
- Не имеет настраиваемых пользователем параметров.
- Просто копирует все файлы из вашего репозитория шаблонов (за исключением двух файлов
idx-template
) в рабочую область пользователя. Уже должна существовать подпапка.idx
с файломdev.nix
, определяющим среду.
Добавление следующих файлов в любой общедоступный репозиторий GitHub (или подпапку или ветку) эффективно превращает этот репозиторий в шаблон IDX.
idx-template.json
{
"name": "Hello world",
"description": "A template for a CLI program that prints 'hello world'",
"icon": "https://www.gstatic.com/images/branding/productlogos/idx/v1/192px.svg",
"params": []
}
idx-template.nix
# No user-configurable parameters
{ pkgs, ... }: {
# Shell script that produces the final environment
bootstrap = ''
# Copy the folder containing the `idx-template` files to the final
# project folder for the new workspace. ${./.} inserts the directory
# of the checked-out Git folder containing this template.
cp -rf ${./.} "$out"
# Set some permissions
chmod -R +w "$out"
# Remove the template files themselves and any connection to the template's
# Git repository
rm -rf "$out/.git" "$out/idx-template".{nix,json}
'';
}
Перейдите к настройке вашего шаблона , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Создайте собственный шаблон, используя официальный шаблон или шаблон сообщества.
Команда Project IDX поддерживает два репозитория для шаблонов IDX:
Официальные шаблоны . Это шаблоны, которые вы выбираете непосредственно на панели управления IDX при создании нового приложения.
Шаблоны сообщества . Эти шаблоны допускают внесение вкладов со стороны сообщества открытого исходного кода. Чтобы использовать шаблон сообщества, клонируйте репозиторий Git шаблонов сообщества. Вы можете использовать полную ссылку на шаблон, который хотите использовать.
Чтобы создать собственный шаблон на основе существующего шаблона:
Решите, какой шаблон использовать в качестве основы для вашего собственного шаблона, а затем клонируйте проект.
Настройте
idx-template.json
,idx-template.nix
и.idx/dev.nix
по мере необходимости, начиная с пункта Настройка вашего шаблона .Проверьте изменения в своем репозитории.
Следуйте инструкциям по созданию новой рабочей области для вашего шаблона , чтобы развернуть и протестировать его. Если вы используете вложенный репозиторий, добавьте прямую ссылку на него в своем URL-адресе. Например, если вы использовали шаблон сообщества Vanilla Vite, вам нужно подготовить и протестировать новое рабочее пространство, используя следующий URL-адрес:
https://idx.google.com/new?template=https://github.com/project-idx/community-templates/tree/main/vite-vanilla
Перейдите к настройке вашего шаблона , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Настройте свой шаблон
Теперь, когда вы создали базовый шаблон для дальнейшего развития, вы можете редактировать файлы idx-template.json
, idx-template.nix
и .idx/dev.nix
в соответствии со своими требованиями. Некоторые из конфигураций, которые вы, возможно, захотите настроить, включают:
- Добавление системных пакетов в ваш
bootstrap
скрипт . - Добавление настраиваемых пользователем параметров
- Выбор файлов, которые должны открываться по умолчанию
- Выбор значка рабочей области по умолчанию
Используйте дополнительные системные пакеты в своем bootstrap
скрипте.
В базовом примере используются только базовые команды POSIX для копирования файлов в нужное место. Сценарий bootstrap
вашего шаблона может потребовать установки дополнительных двоичных файлов, таких как git
, node
, python3
или других.
Вы можете сделать дополнительные системные пакеты доступными для вашего загрузочного сценария, указав packages
в файле idx-template.nix
, точно так же, как вы настраиваете рабочее пространство с дополнительными системными пакетами , добавляя packages
в его файл dev.nix
.
Вот пример добавления pkgs.nodejs
, который включает в себя двоичные файлы, такие как node
, npx
и npm
:
# idx-template.nix
{pkgs}: {
packages = [
# Enable "node", "npm" and "npx" in the bootstrap script below.
# Note, this is NOT the list of packages available to the workspace once
# it's created. Those go in .idx/dev.nix
pkgs.nodejs
];
bootstrap = ''
mkdir "$out"
# We can now use "npm"
npm init --yes my-boot-strap@latest "$out"
''
}
Добавить настраиваемые пользователем параметры
Чтобы пользователи могли настраивать отправную точку своего нового проекта, вы можете создать несколько шаблонов или создать один шаблон с параметрами. Это отличный вариант, если ваши разные отправные точки — это просто разные значения, передаваемые в инструмент CLI (например, --language=js
и --language=ts
).
Чтобы добавить параметры, вам нужно:
- Опишите свой параметр в объекте
params
вашего файла метаданныхidx-template.json
. IDX использует информацию из этого файла для подготовки пользовательского интерфейса (например, флажков, раскрывающихся списков и текстовых полей), отображаемого пользователям вашего шаблона. - Обновите загрузочный файл
idx-template.nix
, чтобы использовать значения, выбранные пользователем при создании экземпляра шаблона.
Опишите свой параметр в idx-template.json
Вот пример добавления параметра enum
, который IDX отображает либо в виде раскрывающегося меню, либо в виде группы переключателей, в зависимости от количества параметров:
{
"name": "Hello world",
"description": "A hello world app",
"params": [
{
"id": "language",
"name": "Programming Language",
"type": "enum",
"default": "ts",
"options": {
"js": "JavaScript",
"ts": "TypeScript"
},
"required": true
}
]
}
Поскольку существует два значения (JavaScript и TypeScript), пользовательский интерфейс отобразит группу переключателей для двух параметров и передаст значение ts
или js
в сценарий idx-template.nix
.
Каждый объект параметра имеет следующие свойства:
СВОЙСТВО | ТИП | ОПИСАНИЕ |
---|---|---|
идентификатор | string | Уникальный идентификатор параметра, аналогичный имени переменной. |
имя | string | Отображаемое имя для этого параметра. |
тип | string | Указывает компонент пользовательского интерфейса, который будет использоваться для этого параметра, и тип данных, передаваемых в сценарий начальной загрузки. Допустимые значения:
|
параметры | object | Для параметров enum это параметры, которые будут отображаться пользователям. Например, если параметрами являются {"js": "JavaScript", ...} , в качестве параметра будет отображаться "JavaScript", и при выборе значением этого параметра будет js . |
по умолчанию | string или boolean | Устанавливает начальное значение в пользовательском интерфейсе. Для параметров enum это должен быть один из ключей в options . Для boolean параметров это должно быть либо true , либо false . |
необходимый | boolean | Указывает, что этот параметр является обязательным. |
Используйте значения параметров в idx-template.nix
После определения объекта params
в файле idx-template.json
вы можете начать настройку сценария начальной загрузки на основе значений параметров, выбранных пользователем.
Следуя примеру из предыдущего раздела, если у вас есть один параметр с language
идентификатора, который представляет собой перечисление с возможными значениями ts
или js
, вы можете использовать его следующим образом:
# idx-template.nix
# Accept additional arguments to this template corresponding to template
# parameter IDs, including default values (language=ts by default in this example).
{ pkgs, language ? "ts", ... }: {
packages = [
pkgs.nodejs
];
bootstrap = ''
# We use Nix string interpolation to pass the user's chosen programming
# language to our script.
npm init --yes my-boot-strap@latest "$out" -- --lang=${language}
''
}
Другой распространенный шаблон — условное включение содержимого в зависимости от значения строки. Другой способ записи предыдущего примера:
npm init --yes my-boot-strap@latest "$out" -- \
${if language == "ts" then "--lang=ts" else "--lang=js" }
Выберите, какие файлы должны открываться по умолчанию
Рекомендуется настроить, какие файлы следует открывать для редактирования при создании новых рабочих пространств с помощью вашего шаблона. Например, если ваш шаблон предназначен для простого веб-сайта, вы можете открыть основные файлы HTML, JavaScript и CSS.
Чтобы настроить, какие файлы должны открываться по умолчанию, обновите файл .idx/dev.nix
( а не файл idx-template.nix
!), включив в него перехватчик рабочей области onCreate
с атрибутом openFiles
, например:
# .idx/dev.nix
{pkgs}: {
...
idx = {
# Workspace lifecycle hooks
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
# Open editors for the following files by default, if they exist.
# The last file in the list will be focused.
default.openFiles = [
"src/index.css"
"src/index.js"
"src/index.html"
];
# Include other scripts here, as needed, for example:
# installDependencies = "npm install";
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
# Enable previews and customize configuration
previews = { ... };
};
}
Выберите значок рабочей области по умолчанию
Вы можете выбрать значок по умолчанию для рабочих пространств, созданных с помощью вашего шаблона, поместив файл PNG с именем icon.png
рядом с файлом dev.nix
в каталоге .idx
.
Проверьте свой шаблон в новом рабочем пространстве.
Самый простой способ комплексного тестирования вашего шаблона — создать с его помощью новое рабочее пространство. Перейдите по следующей ссылке, заменив пример URL-адресом репозитория GitHub вашего шаблона:
https://idx.google.com/new?template=https://github.com/my-org/my-repo
При желании вы можете включить ветку и подпапку. Все нижеперечисленное действительно, если оно общедоступно:
-
https://github.com/my-org/my-repo/
-
https://github.com/my-org/my-repo/tree/main/path/to/myidxtemplate
-
https://github.com/my-org/my-repo/tree/branch
-
https://github.com/my-org/my-repo/tree/branch/path/to/myidxtemplate
Это также URL-адрес, которым вы поделитесь с другими, чтобы они могли использовать ваш новый шаблон, или URL-адрес, на который вы будете ссылаться с помощью кнопки «Открыть в IDX» .
Поделитесь своим шаблоном
Убедившись, что ваш шаблон ведет себя должным образом, опубликуйте его в репозитории GitHub и поделитесь той же ссылкой, которую вы использовали при создании рабочей области для тестирования .
А чтобы пользователям было еще проще найти ваш шаблон, добавьте кнопку «Открыть в IDX» на свой веб-сайт или в репозиторий README.
,IDX предлагает широкий спектр встроенных шаблонов , включающих все файлы, системные пакеты (например, компиляторы) и расширения, необходимые для быстрого начала работы с языком или платформой.
Вы также можете запустить рабочую область IDX, используя шаблоны сообщества , размещенные на GitHub. Дополнительные сведения о запуске новой рабочей области из шаблона см. в разделе Создание рабочей области .
Большинство пользователей будут использовать встроенные шаблоны или импортировать проекты из Git, но для более сложных случаев вы можете создавать свои собственные шаблоны:
Если вы создаете собственную платформу, библиотеку или службу , вы можете позволить своим пользователям быстро начать работу с вашей технологией, даже не выходя из браузера, используя всю мощь облачной виртуальной машины.
Если у вас есть предпочтительный стек технологий для ваших проектов , вы можете упростить собственный процесс запуска новых проектов с помощью специального шаблона.
Если вы обучаете других, например, с помощью учебника или лаборатории кода , вы можете удалить некоторые начальные шаги для своих учеников, предварительно настроив отправную точку для вашей лаборатории кода в виде пользовательского шаблона.
После того, как вы создадите и протестируете свой собственный шаблон, вы можете создать ссылку для его размещения на своем веб-сайте, в файле README
репозитория Git, на странице сведений о пакете (например, в NPM) или в любом другом месте, которое, как вы ожидаете, начнут ваши пользователи. используя вашу технологию.
Предварительные условия
Прежде чем начать:
Узнайте, как использовать файл
idx/dev.nix
для настройки вашей среды .Ознакомьтесь с основами языка Nix и держите справочник под рукой.
Структура файла шаблона
Шаблон IDX — это общедоступный репозиторий Git (или папка, или ветвь репозитория), содержащий как минимум два файла:
idx-template.json
включает метаданные шаблона, включая его видимое пользователю имя, описание и параметры, доступные пользователям для настройки шаблона. Например, вы можете разрешить пользователям выбирать один из нескольких языков программирования или примеров вариантов использования. IDX использует эту информацию для подготовки пользовательского интерфейса, который будет показан пользователям, когда они решат создать новое рабочее пространство на основе вашего шаблона.idx-template.nix
— это файл, написанный на языке Nix и содержащий сценарий оболочки Bash (завернутый в функцию Nix), отвечающий за:- Создание рабочего каталога новой рабочей области.
- Настройка среды путем создания файла
.idx/dev.nix
. Обратите внимание, что вы также можете просто запустить в этом скрипте инструмент создания шаблонов проекта, напримерflutter create
илиnpm init
, или запустить собственный скрипт, написанный на Go, Python, Node.js или другом языке.
Этот файл будет выполнен с параметрами, указанными пользователем , когда IDX загрузит шаблон.
Другие файлы могут быть включены вместе с этими двумя файлами для использования в idx-template.nix
для создания экземпляра шаблона. Например, вы можете включить окончательный файл .idx/dev.nix
или даже все файлы каркаса прямо в репозиторий.
Создайте стартовый шаблон
Чтобы ускорить создание шаблона, мы рекомендуем вам начать с одного из следующих методов создания шаблона IDX, который вы можете в дальнейшем настроить:
- Превратите любой общедоступный репозиторий GitHub в шаблон
- Используйте официальный шаблон или шаблон сообщества в качестве основы для своего шаблона.
Простой пример: превратите любой общедоступный репозиторий GitHub в шаблон.
Прежде чем вступить в подробности того, как определить свой idx-template.json
и idx-template.nix
, полезно увидеть базовый пример шаблона, который:
- Не имеет пользовательских параметров
- Просто копирует все файлы в вашем репозитории шаблона (за исключением двух файлов
idx-template
) в рабочую область пользователя. Уже должна быть подпалка.idx
с файломdev.nix
, определяющим среду.
Добавление следующих файлов в любой публичный репозиторий GitHub (или подпапдер или ветвь) эффективно превращает этот репозиторий в шаблон IDX.
idx-template.json
{
"name": "Hello world",
"description": "A template for a CLI program that prints 'hello world'",
"icon": "https://www.gstatic.com/images/branding/productlogos/idx/v1/192px.svg",
"params": []
}
idx-template.nix
# No user-configurable parameters
{ pkgs, ... }: {
# Shell script that produces the final environment
bootstrap = ''
# Copy the folder containing the `idx-template` files to the final
# project folder for the new workspace. ${./.} inserts the directory
# of the checked-out Git folder containing this template.
cp -rf ${./.} "$out"
# Set some permissions
chmod -R +w "$out"
# Remove the template files themselves and any connection to the template's
# Git repository
rm -rf "$out/.git" "$out/idx-template".{nix,json}
'';
}
Перейдите, чтобы настроить свой шаблон , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Создайте пользовательский шаблон с помощью официального или сообщества шаблона
Команда Project IDX сохраняет два репозиторию для шаблонов IDX:
Официальные шаблоны : это шаблоны, которые вы выбираете непосредственно на приборной панели IDX при создании нового приложения.
Шаблоны сообщества : эти шаблоны допускают вклад сообщества с открытым исходным кодом. Чтобы использовать шаблон сообщества, клонируйте шаблоны сообщества GIT Repository. Вы можете использовать полную ссылку на шаблон, который вы хотите использовать.
Чтобы создать пользовательский шаблон с существующим шаблоном в качестве основы:
Решите, какой шаблон использовать в качестве основы для вашего пользовательского шаблона, затем клонируйте проект.
Настройте
idx-template.json
,idx-template.nix
и.idx/dev.nix
по мере необходимости, начиная с настройки вашего шаблона .Проверьте изменения в своем хранилище.
Следите за созданием нового рабочего пространства для вашего шаблона для развертывания и проверки вашего шаблона. Если вы используете вложенный репозиторий, свяжитесь непосредственно с ним в своем URL. Например, если вы использовали шаблон сообщества "Vanilla Vite", вы бы предоставили и проверили новое рабочее пространство, используя следующее URL:
https://idx.google.com/new?template=https://github.com/project-idx/community-templates/tree/main/vite-vanilla
Перейдите, чтобы настроить свой шаблон , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Настройте свой шаблон
Теперь, когда вы создали базовый шаблон для строительства, вы можете редактировать файлы idx-template.json
, idx-template.nix
и .idx/dev.nix
, чтобы соответствовать вашим требованиям. Некоторые из конфигураций, которые вы можете настроить, включают:
- Добавление системных пакетов в ваш сценарий
bootstrap
. - Добавление пользовательских параметров
- Выбор, какие файлы должны открываться по умолчанию
- Выбор значка рабочей области по умолчанию
Используйте дополнительные системные пакеты в своем сценарии bootstrap
Основной пример использует только основные команды POSIX для копирования файлов в нужное место. Сценарий bootstrap
вашего шаблона может потребовать установки дополнительных двоичных файлов, таких как git
, node
, python3
или другие.
Вы можете сделать дополнительные системные пакеты, доступные для вашего сценария Bootstrap, указав packages
в вашем файле idx-template.nix
, так же, как вы настраиваете рабочее пространство с дополнительными системными пакетами , добавив в packages
в его файле dev.nix
.
Вот пример добавления pkgs.nodejs
, который включает в себя двоичные файлы, такие как node
, npx
и npm
:
# idx-template.nix
{pkgs}: {
packages = [
# Enable "node", "npm" and "npx" in the bootstrap script below.
# Note, this is NOT the list of packages available to the workspace once
# it's created. Those go in .idx/dev.nix
pkgs.nodejs
];
bootstrap = ''
mkdir "$out"
# We can now use "npm"
npm init --yes my-boot-strap@latest "$out"
''
}
Добавьте пользовательские параметры
Чтобы пользователи могли настроить отправную точку для своего нового проекта, вы можете либо создать несколько шаблонов, либо создать один шаблон с параметрами. Это отличный вариант, если ваши разные отправные точки -это просто разные значения, передаваемые инструменту CLI (например, --language=js
против --language=ts
).
Чтобы добавить параметры, вы:
- Опишите свой параметр в объекте
params
вашего файла метаданныхidx-template.json
. IDX использует информацию в этом файле, чтобы подготовить пользовательский интерфейс (например, флажки, раскрытия и текстовые поля), показанные пользователям вашего шаблона. - Обновите свой
idx-template.nix
bootstrap, чтобы использовать значения, которые пользователь выбран, когда он создал матч шаблона.
Опишите свой параметр в idx-template.json
Вот пример добавления параметра enum
, который IDX показывает в качестве раскрывающегося меню или группы радионогих, в зависимости от количества параметров:
{
"name": "Hello world",
"description": "A hello world app",
"params": [
{
"id": "language",
"name": "Programming Language",
"type": "enum",
"default": "ts",
"options": {
"js": "JavaScript",
"ts": "TypeScript"
},
"required": true
}
]
}
Поскольку существует два значения (JavaScript и TypeScript), пользовательский интерфейс будет отображать группу радиопроизводств для двух параметров и передавать значение ts
или js
в сценарий idx-template.nix
.
Каждый объект параметра имеет следующие свойства:
СВОЙСТВО | ТИП | ОПИСАНИЕ |
---|---|---|
идентификатор | string | Уникальный идентификатор параметра, аналогичный имени переменной. |
имя | string | Имя отображения для этого параметра. |
тип | string | Определяет компонент пользовательского интерфейса для использования для этого параметра, и тип данных для передачи в сценарий начальной загрузки. Допустимые значения:
|
параметры | object | Для параметров enum это представляет параметры для показа пользователей. Например, если параметры {"js": "JavaScript", ...} , "JavaScript" будет показан в качестве опции, а при выборе значение этого параметра будет js . |
по умолчанию | string или boolean | Устанавливает начальное значение в пользовательском интерфейсе. Для параметров enum это должно быть одним из ключей в options . Для boolean параметров это должно быть либо true , либо false . |
необходимый | boolean | Указывает, что этот параметр требуется. |
Используйте значения параметров в idx-template.nix
После определения объекта params
в вашем файле idx-template.json
вы можете начать настройку сценария начальной загрузки на основе значений параметров, которые выбирает пользователь.
Следуя примеру в предыдущем разделе, если у вас есть один параметр с language
идентификатора, который является перечислением с возможными значениями ts
или js
, вы можете использовать его так:
# idx-template.nix
# Accept additional arguments to this template corresponding to template
# parameter IDs, including default values (language=ts by default in this example).
{ pkgs, language ? "ts", ... }: {
packages = [
pkgs.nodejs
];
bootstrap = ''
# We use Nix string interpolation to pass the user's chosen programming
# language to our script.
npm init --yes my-boot-strap@latest "$out" -- --lang=${language}
''
}
Другой общий шаблон заключается в том, чтобы условно включать контент в зависимости от значения строки. Другой способ написать предыдущий пример:
npm init --yes my-boot-strap@latest "$out" -- \
${if language == "ts" then "--lang=ts" else "--lang=js" }
Выберите, какие файлы должны открываться по умолчанию
Хорошей идеей является настройка, какие файлы должны быть открыты для редактирования при создании новых рабочих пространств с вашим шаблоном. Например, если ваш шаблон предназначен для базового веб -сайта, вы можете открыть основные файлы HTML, JavaScript и CSS.
Чтобы настроить, какие файлы должны открываться по умолчанию, обновите свой файл .idx/dev.nix
( не ваш файл idx-template.nix
!), Чтобы включить крюк onCreate
Workspace с атрибутом openFiles
, например, так:
# .idx/dev.nix
{pkgs}: {
...
idx = {
# Workspace lifecycle hooks
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
# Open editors for the following files by default, if they exist.
# The last file in the list will be focused.
default.openFiles = [
"src/index.css"
"src/index.js"
"src/index.html"
];
# Include other scripts here, as needed, for example:
# installDependencies = "npm install";
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
# Enable previews and customize configuration
previews = { ... };
};
}
Выберите значок рабочей области по умолчанию
Вы можете выбрать значок по умолчанию для рабочих пространств, созданных с помощью вашего шаблона, разместив файл PNG с именем icon.png
рядом с файлом dev.nix
, внутри каталога .idx
.
Проверьте свой шаблон в новой рабочей области
Самый простой способ проверить свой шаблон, который сквозной-создать с ним новое рабочее пространство. Посетите следующую ссылку, заменив пример на URL вашего шаблона GitHub GitHub:
https://idx.google.com/new?template=https://github.com/my-org/my-repo
Вы можете при желании включить ветку и подпажку. Все в следующем порядке действительны, если они общедоступны:
-
https://github.com/my-org/my-repo/
-
https://github.com/my-org/my-repo/tree/main/path/to/myidxtemplate
-
https://github.com/my-org/my-repo/tree/branch
-
https://github.com/my-org/my-repo/tree/branch/path/to/myidxtemplate
Это также URL, который вы поделитесь с другими, чтобы они могли использовать ваш новый шаблон, или URL, на который вы ссылаетесь, из своей кнопки «Открыть в IDX» .
Поделитесь своим шаблоном
После того, как вы подтвердили, что ваш шаблон ведет себя так же, как и ожидалось, опубликуйте его в репозиторий GitHub и поделитесь той же ссылкой, которую вы использовали при создании рабочего пространства для тестирования .
И чтобы пользователям было еще проще найти свой шаблон, добавьте кнопку «Открыть в IDX» на ваш сайт или Repository Readme.
,IDX предлагает широкий спектр встроенных шаблонов , которые включают все файлы, системные пакеты (например, компиляторы) и расширения, необходимые для быстрого начала с языка или структуры.
Вы также можете запустить рабочее пространство IDX, используя шаблоны сообщества , размещенные на GitHub. Для получения дополнительной информации о запуске новой рабочей области из шаблона см. Create A Workspace .
Большинство пользователей будут использовать встроенные шаблоны или импортные проекты из GIT, но для более расширенных вариантов использования вы можете создавать свои собственные шаблоны:
Если вы создаете свою собственную структуру, библиотеку или сервис , вы можете позволить своим пользователям быстро начать работу с вашей технологией, даже не покидая браузер, с полной мощностью облачной виртуальной машины.
Если у вас есть предпочтительный технологический стек для ваших проектов , вы можете упростить свой собственный процесс для запуска новых проектов с помощью пользовательского шаблона.
Если вы учите других, например, через учебник или CodeLab , вы можете удалить некоторые из начальных шагов для своих учеников, предварительно сконфигурируя отправную точку для вашего CodeLab в качестве пользовательского шаблона.
После создания и тестирования своего пользовательского шаблона вы можете создать ссылку для его размещения на своем веб -сайте, файла README
Repository, странице сведений о пакете (например, в NPM) или в любом другом месте, которое вы ожидаете от ваших пользователей. используя вашу технологию.
Предварительные условия
Прежде чем начать:
Узнайте, как использовать файл
idx/dev.nix
для настройки вашей среды .Познакомьтесь с основами языка NIX и сохраняйте удобство.
Структура файла шаблона
Шаблон IDX - это публичный репозиторий GIT (или папка или ветвь в репозитории), который содержит как минимум два файла:
idx-template.json
включает метаданные для шаблона, включая его видимое пользователь имя, описание и параметры, доступные пользователям для настройки шаблона. Например, вы можете позволить своим пользователям выбирать из ряда языков программирования или примеров использования. IDX использует эту информацию, чтобы подготовить пользовательский интерфейс, показанный пользователям, когда они решат создать новое рабочее пространство из вашего шаблона.idx-template.nix
-это файл, написанный на языке NIX , который содержит скрипт оболочки Bash (завернутый в функцию NIX), ответственный за:- Создание рабочего каталога нового рабочего пространства.
- Настройка его среды путем создания файла
.idx/dev.nix
. Обратите внимание, что вы также можете просто запустить инструмент для каркасов проекта, такой какflutter create
илиnpm init
в этом сценарии, или запустить пользовательский сценарий, записанный в Go, Python, Node.js или на другом языке.
Этот файл будет выполнен с параметрами, указанными пользователем , когда IDX загружает шаблон.
Другие файлы могут быть включены вместе с этими двумя файлами для использования в idx-template.nix
, чтобы создать создание шаблона. Например, вы можете включить окончательный файл .idx/dev.nix
или даже включить все файлы лесов прямо в репозиторий.
Создать стартовый шаблон
Чтобы ускорить создание шаблонов, мы рекомендуем начать с одного из следующих методов создания шаблона IDX, который вы можете дополнительно настроить:
- Превратить любой публичный репозиторий GitHub в шаблон
- Используйте официальный или шаблон сообщества в качестве основы для вашего шаблона
Основной пример: превратить любой репозиторий публичного GitHub в шаблон
Прежде чем вступить в подробности того, как определить свой idx-template.json
и idx-template.nix
, полезно увидеть базовый пример шаблона, который:
- Не имеет пользовательских параметров
- Просто копирует все файлы в вашем репозитории шаблона (за исключением двух файлов
idx-template
) в рабочую область пользователя. Уже должна быть подпалка.idx
с файломdev.nix
, определяющим среду.
Добавление следующих файлов в любой публичный репозиторий GitHub (или подпапдер или ветвь) эффективно превращает этот репозиторий в шаблон IDX.
idx-template.json
{
"name": "Hello world",
"description": "A template for a CLI program that prints 'hello world'",
"icon": "https://www.gstatic.com/images/branding/productlogos/idx/v1/192px.svg",
"params": []
}
idx-template.nix
# No user-configurable parameters
{ pkgs, ... }: {
# Shell script that produces the final environment
bootstrap = ''
# Copy the folder containing the `idx-template` files to the final
# project folder for the new workspace. ${./.} inserts the directory
# of the checked-out Git folder containing this template.
cp -rf ${./.} "$out"
# Set some permissions
chmod -R +w "$out"
# Remove the template files themselves and any connection to the template's
# Git repository
rm -rf "$out/.git" "$out/idx-template".{nix,json}
'';
}
Перейдите, чтобы настроить свой шаблон , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Создайте пользовательский шаблон с помощью официального или сообщества шаблона
Команда Project IDX сохраняет два репозиторию для шаблонов IDX:
Официальные шаблоны : это шаблоны, которые вы выбираете непосредственно на приборной панели IDX при создании нового приложения.
Шаблоны сообщества : эти шаблоны допускают вклад сообщества с открытым исходным кодом. Чтобы использовать шаблон сообщества, клонируйте шаблоны сообщества GIT Repository. Вы можете использовать полную ссылку на шаблон, который вы хотите использовать.
Чтобы создать пользовательский шаблон с существующим шаблоном в качестве основы:
Решите, какой шаблон использовать в качестве основы для вашего пользовательского шаблона, затем клонируйте проект.
Настройте
idx-template.json
,idx-template.nix
и.idx/dev.nix
по мере необходимости, начиная с настройки вашего шаблона .Проверьте изменения в своем хранилище.
Следите за созданием нового рабочего пространства для вашего шаблона для развертывания и проверки вашего шаблона. Если вы используете вложенный репозиторий, свяжитесь непосредственно с ним в своем URL. Например, если вы использовали шаблон сообщества "Vanilla Vite", вы бы предоставили и проверили новое рабочее пространство, используя следующее URL:
https://idx.google.com/new?template=https://github.com/project-idx/community-templates/tree/main/vite-vanilla
Перейдите, чтобы настроить свой шаблон , чтобы узнать о дополнительных изменениях, которые вы можете внести для настройки вашего шаблона.
Настройте свой шаблон
Теперь, когда вы создали базовый шаблон для строительства, вы можете редактировать файлы idx-template.json
, idx-template.nix
и .idx/dev.nix
, чтобы соответствовать вашим требованиям. Некоторые из конфигураций, которые вы можете настроить, включают:
- Добавление системных пакетов в ваш сценарий
bootstrap
. - Добавление пользовательских параметров
- Выбор, какие файлы должны открываться по умолчанию
- Выбор значка рабочей области по умолчанию
Используйте дополнительные системные пакеты в своем сценарии bootstrap
Основной пример использует только основные команды POSIX для копирования файлов в нужное место. Сценарий bootstrap
вашего шаблона может потребовать установки дополнительных двоичных файлов, таких как git
, node
, python3
или другие.
Вы можете сделать дополнительные системные пакеты, доступные для вашего сценария Bootstrap, указав packages
в вашем файле idx-template.nix
, так же, как вы настраиваете рабочее пространство с дополнительными системными пакетами , добавив в packages
в его файле dev.nix
.
Вот пример добавления pkgs.nodejs
, который включает в себя двоичные файлы, такие как node
, npx
и npm
:
# idx-template.nix
{pkgs}: {
packages = [
# Enable "node", "npm" and "npx" in the bootstrap script below.
# Note, this is NOT the list of packages available to the workspace once
# it's created. Those go in .idx/dev.nix
pkgs.nodejs
];
bootstrap = ''
mkdir "$out"
# We can now use "npm"
npm init --yes my-boot-strap@latest "$out"
''
}
Добавьте пользовательские параметры
Чтобы пользователи могли настроить отправную точку для своего нового проекта, вы можете либо создать несколько шаблонов, либо создать один шаблон с параметрами. Это отличный вариант, если ваши разные отправные точки -это просто разные значения, передаваемые инструменту CLI (например, --language=js
против --language=ts
).
Чтобы добавить параметры, вы:
- Опишите свой параметр в объекте
params
вашего файла метаданныхidx-template.json
. IDX использует информацию в этом файле, чтобы подготовить пользовательский интерфейс (например, флажки, раскрытия и текстовые поля), показанные пользователям вашего шаблона. - Обновите свой
idx-template.nix
bootstrap, чтобы использовать значения, которые пользователь выбран, когда он создал матч шаблона.
Опишите свой параметр в idx-template.json
Вот пример добавления параметра enum
, который IDX показывает в качестве раскрывающегося меню или группы радионогих, в зависимости от количества параметров:
{
"name": "Hello world",
"description": "A hello world app",
"params": [
{
"id": "language",
"name": "Programming Language",
"type": "enum",
"default": "ts",
"options": {
"js": "JavaScript",
"ts": "TypeScript"
},
"required": true
}
]
}
Поскольку существует два значения (JavaScript и TypeScript), пользовательский интерфейс будет отображать группу радиопроизводств для двух параметров и передавать значение ts
или js
в сценарий idx-template.nix
.
Каждый объект параметра имеет следующие свойства:
СВОЙСТВО | ТИП | ОПИСАНИЕ |
---|---|---|
идентификатор | string | Уникальный идентификатор параметра, аналогичный имени переменной. |
имя | string | Имя отображения для этого параметра. |
тип | string | Определяет компонент пользовательского интерфейса для использования для этого параметра, и тип данных для передачи в сценарий начальной загрузки. Допустимые значения:
|
параметры | object | Для параметров enum это представляет параметры для показа пользователей. Например, если параметры {"js": "JavaScript", ...} , "JavaScript" будет показан в качестве опции, а при выборе значение этого параметра будет js . |
по умолчанию | string или boolean | Устанавливает начальное значение в пользовательском интерфейсе. Для параметров enum это должно быть одним из ключей в options . Для boolean параметров это должно быть либо true , либо false . |
необходимый | boolean | Указывает, что этот параметр требуется. |
Используйте значения параметров в idx-template.nix
После определения объекта params
в вашем файле idx-template.json
вы можете начать настройку сценария начальной загрузки на основе значений параметров, которые выбирает пользователь.
Следуя примеру в предыдущем разделе, если у вас есть один параметр с language
идентификатора, который является перечислением с возможными значениями ts
или js
, вы можете использовать его так:
# idx-template.nix
# Accept additional arguments to this template corresponding to template
# parameter IDs, including default values (language=ts by default in this example).
{ pkgs, language ? "ts", ... }: {
packages = [
pkgs.nodejs
];
bootstrap = ''
# We use Nix string interpolation to pass the user's chosen programming
# language to our script.
npm init --yes my-boot-strap@latest "$out" -- --lang=${language}
''
}
Другой общий шаблон заключается в том, чтобы условно включать контент в зависимости от значения строки. Другой способ написать предыдущий пример:
npm init --yes my-boot-strap@latest "$out" -- \
${if language == "ts" then "--lang=ts" else "--lang=js" }
Выберите, какие файлы должны открываться по умолчанию
Хорошей идеей является настройка, какие файлы должны быть открыты для редактирования при создании новых рабочих пространств с вашим шаблоном. Например, если ваш шаблон предназначен для базового веб -сайта, вы можете открыть основные файлы HTML, JavaScript и CSS.
Чтобы настроить, какие файлы должны открываться по умолчанию, обновите свой файл .idx/dev.nix
( не ваш файл idx-template.nix
!), Чтобы включить крюк onCreate
Workspace с атрибутом openFiles
, например, так:
# .idx/dev.nix
{pkgs}: {
...
idx = {
# Workspace lifecycle hooks
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
# Open editors for the following files by default, if they exist.
# The last file in the list will be focused.
default.openFiles = [
"src/index.css"
"src/index.js"
"src/index.html"
];
# Include other scripts here, as needed, for example:
# installDependencies = "npm install";
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
# Enable previews and customize configuration
previews = { ... };
};
}
Выберите значок рабочей области по умолчанию
Вы можете выбрать значок по умолчанию для рабочих пространств, созданных с помощью вашего шаблона, разместив файл PNG с именем icon.png
рядом с файлом dev.nix
, внутри каталога .idx
.
Проверьте свой шаблон в новой рабочей области
Самый простой способ проверить свой шаблон, который сквозной-создать с ним новое рабочее пространство. Посетите следующую ссылку, заменив пример на URL вашего шаблона GitHub GitHub:
https://idx.google.com/new?template=https://github.com/my-org/my-repo
Вы можете при желании включить ветку и подпажку. Все в следующем порядке действительны, если они общедоступны:
-
https://github.com/my-org/my-repo/
-
https://github.com/my-org/my-repo/tree/main/path/to/myidxtemplate
-
https://github.com/my-org/my-repo/tree/branch
-
https://github.com/my-org/my-repo/tree/branch/path/to/myidxtemplate
Это также URL, который вы поделитесь с другими, чтобы они могли использовать ваш новый шаблон, или URL, на который вы ссылаетесь, из своей кнопки «Открыть в IDX» .
Поделитесь своим шаблоном
После того, как вы подтвердили, что ваш шаблон ведет себя так же, как и ожидалось, опубликуйте его в репозиторий GitHub и поделитесь той же ссылкой, которую вы использовали при создании рабочего пространства для тестирования .
И чтобы пользователям было еще проще найти свой шаблон, добавьте кнопку «Открыть в IDX» на ваш сайт или Repository Readme.