Перейти к содержимому

Как создать свое расширение файла

  • автор:

Руководство по созданию расширения, часть 1

Цель этого руководства — создать расширение Microsoft Edge, начиная с пустого каталога. Вы строите расширение, которое всплывает наса картину дня. В этом руководстве описано, как создать расширение, выполнив следующие действия:

  • Создание manifest.json файла.
  • Добавление значков.
  • Открытие всплывающего диалогового окна по умолчанию.

Подготовка к работе

Чтобы протестировать готовое расширение, которое вы создаете в этом руководстве, скачайте исходный код из репозитория MicrosoftEdge-Extensions > extension-getting-started-part1. Исходный код обновлен с манифеста версии 2 до манифеста версии 3.

Шаг 1. Создание файла manifest.json

Каждый пакет расширения должен иметь manifest.json файл в корневом каталоге. Манифест содержит сведения о расширении, версии пакета расширения, имени и описания расширения и т. д.

В следующем коде описываются основные сведения, необходимые в файле manifest.json :

  • Манифест версии 3
  • Манифест версии 2

Шаг 2. Добавление значков

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

Значок на панели инструментов для открытия расширения

  • Мы рекомендуем использовать PNG формат, но можно также использовать BMP форматы , GIF или JPEG ICO .
  • Рекомендуется использовать изображения с размерами 128 x 128 пикселей, размер которых при необходимости определяется браузером.

Каталоги проекта должны иметь следующую структуру:

└── part1 ├── manifest.json └── icons ├── nasapod16x16.png ├── nasapod32x32.png ├── nasapod48x48.png └── nasapod128x128.png 

Затем добавьте значки в manifest.json файл. Обновите manifest.json файл со значками, чтобы он соответствовал приведенному ниже коду. Файлы png , перечисленные в следующем коде, доступны в файле скачивания, упомянутом ранее в этой статье.

  • Манифест версии 3
  • Манифест версии 2

Шаг 3. Открытие всплывающего диалогового окна по умолчанию

Теперь создайте HTML файл, который будет запущен при запуске расширения пользователем. Создайте HTML-файл popup.html в каталоге с именем popup . Когда пользователи выбирают значок для запуска расширения, popup/popup.html отображается как модальное диалоговое окно.

Добавьте код из следующего списка в , popup.html чтобы отобразить изображение звездочек:

   NASA picture of the day   
Display the stars image

Убедитесь, что вы добавили файл images/stars.jpeg образа в папку images. Каталоги проекта должны иметь следующую структуру:

└── part1 ├── manifest.json ├── icons │ ├── nasapod16x16.png │ ├── nasapod32x32.png │ ├── nasapod48x48.png │ └── nasapod128x128.png ├── images │ └── stars.jpeg └── popup └── popup.html 

Наконец, зарегистрируйте всплывающее окно в manifest.json разделе browser_action (в манифесте версии 2) или в action (в манифесте версии 3), как показано в следующем коде:

  • Манифест версии 3
  • Манифест версии 2
< "name": "NASA picture of the day viewer", "version": "0.0.0.1", "manifest_version": 3, "description": "An extension to display the NASA picture of the day.", "icons": < "16": "icons/nasapod16x16.png", "32": "icons/nasapod32x32.png", "48": "icons/nasapod48x48.png", "128": "icons/nasapod128x128.png" >, "action": < "default_popup": "popup/popup.html" >> 
< "name": "NASA picture of the day viewer", "version": "0.0.0.1", "manifest_version": 2, "description": "An extension to display the NASA picture of the day.", "icons": < "16": "icons/nasapod16x16.png", "32": "icons/nasapod32x32.png", "48": "icons/nasapod48x48.png", "128": "icons/nasapod128x128.png" >, "browser_action": < "default_popup": "popup/popup.html" >> 

Дальнейшие действия

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

Первое расширение Visual Studio

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

В этой статье описаны некоторые простые шаги, чтобы получить первое расширение Visual Studio и запустить его. Расширение Visual Studio записывается с помощью платформа .NET Framework и C#. Если вы уже разработчик .NET, вы обнаружите, что написание расширений аналогично написанию большинства других программ и библиотек .NET.

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

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

Прежде чем приступить к написанию первого расширения Visual Studio (это легко, я обещаю!), убедитесь, что у вас есть необходимые инструменты.

Создание проекта

Существует несколько шаблонов проектов для выбора, поэтому вы хотите сделать правильный выбор. Шаблоны, используемые в этом наборе средств сообщества, имеют моникер (сообщество) в имени.

Шаблон проекта VSIX w/Command (Community) поставляется с командой, подключенной к ней, что упрощает запуск. Это отличная отправная точка для большинства расширений. Если вы знаете, что требуется окно инструментов, используйте шаблон проекта VSIX w/Tool Window (Community). Она также имеет команду, чтобы открыть окно инструментов.

Используйте шаблоны пустого проекта VSIX (сообщества) или VSIX Project (Community) для расширений только для MEF или других расширенных сценариев.

На этот раз вы выберете шаблон проекта VSIX w/Command (Community), как показано на снимке экрана ниже.

New Project Dialog showing VSIX project templates.

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

Configure your new project.

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

New project files and folders.

Важные файлы

Давайте рассмотрим самые важные файлы.

InsertGuidPackage.cs — это то, что называется классом Package. Его InitializeAsync(. ) метод вызывается Visual Studio для инициализации расширения. Здесь вы добавляете прослушиватели событий и регистрируете команды, окна инструментов, параметры и другие вещи.

source.extension.vsixmanifest — это файл манифеста для расширения. Он содержит метаданные, такие как название и описание, но также сведения о том, что содержит расширение.

VSCommandTable.vsct — это XML-файл, в котором команды и привязки ключей декларативно определены, поэтому их можно зарегистрировать в Visual Studio.

Commands/MyCommand.cs — это обработчик команд для команды, определенной в VSCommandTable.vsct-файле . Он управляет тем, что происходит при выполнении команды, нажав кнопку.

Изменение команды

Сначала необходимо убедиться, что команда имеет правое имя, значок и позицию в системе меню Visual Studio.

Откройте VSCommandTable.vsct-файл и найдите файл и объект . Обратите внимание, что кнопка указывает группу как ее родительскую и родительскую группу — это встроенное меню VSMainMenu/Tools .

Для расширения необходимо , чтобы кнопка «Вставить GUID» должна находиться в главном меню «Изменить «, поэтому вы будете повторно родительскую группу в меню «Изменить». Замените инструменты на «Изменить«, как показано в следующем фрагменте кода:

 Вы получаете полный IntelliSense для размещения, чтобы упростить поиск подходящего места.

VSCT parent IntelliSense.

Необходимо также обновить. Вы предоставите ему новый значок, обновив id атрибут элемента на InsertAppend. Обновите текст с хорошим, описательным именем и обновите его с помощью технического имени команды. Это имя, отображаемое пользователям при назначении пользовательских сочетаний клавиш в диалоговом окне «Параметры > среды клавиатуры > инструментов>».

  

Всегда начинайте с символа точки. Он гарантирует, что другой текст автоматически не задается, и точка не будет отображаться.

Вы можете использовать тысячи значков, доступных в библиотеке образов Visual Studio, и даже получить предварительную версию в IntelliSense:

VSCT icon IntelliSense.

Теперь вы обновили имя, значок и расположение нашей команды, и пришло время написать код, чтобы вставить guid в текстовый редактор.

Откройте файл /Commands/MyCommand.cs и измените его, чтобы вставить новый guid при выполнении:

using System; using Community.VisualStudio.Toolkit; using EnvDTE; using Microsoft.VisualStudio.Shell; using Task = System.Threading.Tasks.Task; namespace InsertGuid < [Command(PackageIds.MyCommand)] internal sealed class MyCommand : BaseCommand < protected override async Task ExecuteAsync(OleMenuCmdEventArgs e) < await Package.JoinableTaskFactory.SwitchToMainThreadAsync(); DocumentView docView = await VS.Documents.GetActiveDocumentViewAsync(); if (docView?.TextView == null) return; SnapshotPoint position = docView.TextView.Caret.Position.BufferPosition; docView.TextBuffer?.Insert(position, Guid.NewGuid().ToString()); >> > 

Объект используется VS для получения активного текстового представления редактора, а затем вставки guid в положение курсора текстового буфера.

Вы увидите await JoinableTaskFactory.SwitchToMainThreadAsync() и ThreadHelper.ThrowIfNotOnUIThread() во многих местах в этом наборе средств сообщества. Они обрабатывают рекомендации по переключению потоков, и вам не нужно знать, когда и как их использовать на этом этапе — предупреждения компилятора с исправлениями кода (лампочки) делает это супер легко.

Первый черновик нашего расширения теперь завершен, и пришло время протестировать его.

Выполнение и отладка

Запуск расширения выполняется так же просто, как и любой другой проект .NET. Просто нажмите клавишу F5, чтобы запустить с подключенным отладчиком или ctrl+F5 для выполнения без этого.

Это приведет к запуску экспериментального экземпляра Visual Studio с установленным расширением. Экспериментальный экземпляр — это обычная версия Visual Studio, но с отдельными параметрами и расширениями. Это помогает отделить вещи.

При запуске экспериментального экземпляра в главном меню «Изменить» должна появиться команда INSERT GUID.

Insert GUID command located in the Edit main menu.

Откройте любой текстовый файл и выполните команду, чтобы вставить новый guid. Вот и все!

Итоги

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

Код для этого расширения можно найти в репозитории примеров.

Связанный контент

  • Анатомия расширений
  • & Команды меню
  • Рекомендации проверка list

Как создать расширение для Chrome

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

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

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

Желательно знать HTML, CSS и JS (если придётся расширить набор функций) на самом базовом уровне, чтобы понимать материал лучше, но в любом случае мы будем объяснять код.

В каждом расширении для Chrome должен быть файл manifest.json . Он служит только для описания функций приложения, общего описания, номера версии и разрешений. Более подробно вы сможете ознакомиться с этим файлом в блоге команды разработчиков Chrome.

Давайте же внесём свой вклад в развитие web

Здесь всё очень просто:

< "manifest_version": 2, "name": "Tproger Launcher", "description": "Запускатор представительств Tproger", "version": "1.0.0", "icons": , "browser_action": < "default_icon": "icon.png", "default_popup": "popup.html" >, "permissions": ["activeTab"] > 

После того как мы описали наше расширение в файле manifest.json , можно благополучно переходить к следующему этапу, а именно к разметке.

Для начала давайте напишем базовый HTML-код:

Выше мы написали каркас для плагина, сейчас он полностью пуст и нужно указать название, ссылки на иконки и шрифт. Это можно сделать с помощью тега link , обратите внимание, он не закрывается:

    Tproger Media Quick Launcher      

Не забывайте указывать кодировку, иначе не отобразятся кириллические буквы.

Перейдём ко второму блоку кода, а именно к тегу body и его содержимому.

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

Переходим к следующему контейнеру. Он содержит описание функций расширений.

 
Быстрый доступ к контентным площадкам Типичного Программиста

Далее следует контейнер modal-icons , внутри которого ещё 5 контейнеров.

Для каждой иконки мы выделили отдельный контейнер с классом flex , чтобы знать, к каким элементам будем применять Flexbox.

Кроме того, мы указали названия иконок для каждого ресурса. Более детально со всеми доступными элементами можно ознакомиться на сайте Bootstrap.

Стили

Чтобы расширение выглядело красивее и было удобнее, чем сейчас, нужно добавить стили на CSS.

 /* Модальная структура документа */ /*общие настройки для всего документа*/ html, body < font-family: 'Open Sans', sans-serif; font-size: 14px; margin: 0; min-height: 180px; padding: 0; width: 380px; >/*задаём настройки для заголовков первого уровня*/ h1 < font-family: 'Menlo', monospace; font-size: 22px; font-weight: 400; margin: 0; color: #2f5876; >a:link, a:visited < color: #000000; outline: 0; text-decoration: none; >/*задаём ширину картинки*/ img < width: 30px; /*ширина изображений*/ >.modal-header < align-items: center; /*выравнивание элементов по центру*/ border-bottom: 0.5px solid #dadada; /*свойства нижней разделительной линии*/ height: 50px; >.modal-content < padding: 0 22px; /*отступы сверху и снизу, сверху и слева*/ >.modal-icons < border-top: 0.5px solid #dadada; /*свойства верхней разделительной линии*/ height: 50px; width: 100%; >.logo < padding: 16px; /*отступы со всех сторон*/ >.logo-icon < vertical-align: text-bottom; /*выравнивание по нижней части текста*/ margin-right: 12px; /*задётся отступ элементов от изображения*/ >.version

Основные настройки документа заданы, давайте перейдём к следующему фрагменту кода, в котором как раз и будет применён Flexbox, о котором шла речь в начале статьи.

.flex-container < display: flex; /*отображает контейнер в виде блочного элемента*/ justify-content: space-between; /*равномерное выравнивание элементов*/ padding: 10px 22px; >/*задаём настройки для контейнеров с иконками*/ .flex < opacity: 1; /*параметр непрозрачности иконок*/ width: 120px; >.flex:hover < opacity: 0.4; /*уровень непрозрачности при наведении курсора на элемент*/ >.flex .fa

Мы постарались как можно подробнее объяснить в комментариях относительно сложные моменты. А сейчас нам нужно лишь загрузить наше расширение в браузер Chrome и оно будет работать, а если пройдёт модерацию, то появится в магазине расширений (плагинов).

Теперь давайте добавим файл с расширением .js, если вдруг потребуется расширить функции дополнения для браузера.

  Tproger Media Quick Launcher    

Проверка кода и публикация

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

     Запускатор Tproger      /* Модальная структура документа */ /*общие настройки для всего документа*/ html, body < font-family: 'Open Sans', sans-serif; font-size: 14px; margin: 0; min-height: 180px; padding: 0; width: 380px; >/*задаём настройки для заголовков первого уровня*/ h1 < font-family: 'Menlo', monospace; font-size: 22px; font-weight: 400; margin: 0; color: #2f5876; >a:link, a:visited < color: #000000; outline: 0; text-decoration: none; >/*задаём ширину картинки*/ img < width: 30px; /*ширина изображений*/ >.modal-header < align-items: center; /*выравнивание элементов по центру*/ border-bottom: 0.5px solid #dadada; /*свойства нижней разделительной линии*/ height: 50px; >.modal-content < padding: 0 22px; /*отступы сверху и снизу, сверху и слева*/ >.modal-icons < border-top: 0.5px solid #dadada; /*свойства верхней разделительной линии*/ height: 50px; width: 100%; >.logo < padding: 16px; /*отступы со всех сторон*/ >.logo-icon < vertical-align: text-bottom; /*выравнивание по нижней части текста*/ margin-right: 12px; /*задётся отступ элементов от изображения*/ >.version < color: #444; font-size: 18px; >.flex-container < display: flex; /*отображает контейнер в виде блочного элемента*/ justify-content: space-between; /*равномерное выравнивание элементов*/ padding: 10px 22px; >/*задаём настройки для контейнеров с иконками*/ .flex < opacity: 1; /*параметр непрозрачности иконок*/ width: 120px; >.flex:hover < opacity: 0.4; /*уровень непрозрачности при наведении курсора на элемент*/ >.flex .fa -->  
Быстрый доступ к контентным площадкам Типичного Программиста

После проверки можно приступать к публикации расширения. Для этого у вас должны быть следующие файлы и папки:

И далее следуем инструкциям на скриншотах ниже.

Для загрузки расширения в магазин нам нужно зайти в меню, навести мышку на «дополнительные настройки», а затем выбрать «расширения» или ввести в адресной строке chrome://extensions/ .

Далее нажимаем на «загрузить распакованное расширение» и выбираем папку с файлами.

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

Надеемся, что всё работает правильно и вы понимаете структуру расширений для Chrome.

6 шагов по созданию расширения Chrome, которое можно продать

Свое первое расширение для Chrome я создала с целью автоматизации ряда регулярно повторяющихся процессов. В этой статье я поделюсь с вами полученным опытом и обобщу все необходимое для быстрого создания собственного расширения.

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

Шаг 1. Создание структуры каталога

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

Потребуется 3 основных компонента:

Шаг 2. Создание файла описания

Файл описания подобен файлу конфигурации, необходимому Chrome для понимания и правильной загрузки расширения.

Вот пример такого файла manifest.json :

 "manifest_version": 2, 
"name": "Front by FAM",
"version": "1.0.0",
"description": "Quick access to Front",
"browser_action": "default_icon": "img/favicon.png",
"default_title": "Front",
"default_popup": "front-popup.html"
>
>

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

Шаг 3. Создание системы расширения

Очень важный шаг. Мы будем прописывать код функциональности расширения, его систему.

В этой статье я решила сделать расширение, которое позволит вам быстро со мной связываться. ��

Проектирование

Для этого примера я все преподнесу в простом виде. Нам понадобятся:

На этом все. В конечном итоге у нас получится нечто подобное:

Написание кода

Вы заметите, что я уже интегрировала CSS-файл front.css , а также JS-файл front.js . JS-файл в этом примере я не использовала, а добавила его просто, чтобы продемонстрировать возможность применения JavaScript в построении расширения для Chrome.

Раcширение Front для Chrome:






type="image/png"
href="img/favicon.png">







Instagram










LinkedIn






Youtube







Twitter










Шаг 4. Стилизация

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

После стилизации HTML-кода получаем такой результат:

Код CSS:

@import url('https://fonts.googleapis.com/css2?family=Amatic+SC&display=swap');

body padding: 0;
margin: 0;
font-family: 'Amatic SC', cursive;
font-size: xx-large;
>

.container background-image: linear-gradient(
135deg,
rgba(52, 152, 219, 0.5) 0%,
rgba(243, 65, 65, 0.4) 100%
),
url('http://i.imgbox.com/LmWSE419.jpg');
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
background-size: cover;
height: 100%;
overflow: hidden;
>

.logo padding: 50px;
width: 300px;
margin: auto;
>

.container img.logo,
.footer,
.container p display: flex;
justify-content: center;
font-size: xx-large;
>

.text-white color: white;
>

/* Social media cards*/
.cards-list z-index: 0;
width: 100%;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
padding-bottom: 230px;
>

.card margin: 30px auto;
width: 250px;
height: 250px;
border-radius: 40px;
box-shadow: 5px 5px 30px 7px rgba(0, 0, 0, 0.25),
-5px -5px 30px 7px rgba(0, 0, 0, 0.22);
transition: 0.4s;
>

.card .card_image width: inherit;
height: inherit;
border-radius: 40px;
>

.card .card_image img width: inherit;
height: inherit;
border-radius: 40px;
object-fit: cover;
>

.card .card_title text-align: center;
border-radius: 0px 0px 40px 40px;
font-family: 'Amatic SC', cursive;
font-weight: lighter;
font-size: 50px;
margin-top: -80px;
height: 40px;
color: black;
>

.card .card_title a color: black;
>

.card:hover transform: scale(0.9, 0.9);
box-shadow: 5px 5px 30px 15px rgba(0, 0, 0, 0.25),
-5px -5px 30px 15px rgba(0, 0, 0, 0.22);
>

@media all and (max-width: 500px) .card-list /* For small screens*/
flex-direction: column;
>
>

/* Footer */
.footer,
.footer a background-color: black;
color: white;
>

Шаг 5. Расширение в действии

Это самый впечатляющий шаг. Мы опубликуем наше расширение и пронаблюдаем его в действии.

Для этого нужно:

Проверьте список ваших расширений и убедитесь, что все в порядке.

Шаг 6. Если все в порядке, то можно гордо публиковать расширение для всего мира

Все сложное вы проделали. Теперь можете переходить к публикации расширения в магазине Chrome:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *