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

Каждый кто сталкивался с задачей вставки программного кода задумывался над альтернативным способом: чтобы было красиво, чтобы была подсветка команд, чтобы были номера строк. Ну вот, например, как показано ниже.
sum = 0 n = 5 for i in range(1, n + 1): sum += i print(sum)
Для решения этой проблемы вам может пригодиться готовый шаблон текстового оформления кода для редактора Ворд. Ваш код с этим шаблоном может выглядеть также как на картинке ниже:

Скачать шаблон (формат *.docx) можно здесь.
я [ 07 декабря 2023, 12:45 ] # ↓ 0
using System;
using System.Linq;
using System.Collections.Generic;
namespace AprioriAlg
{
class Apriori
{
private static int support;
private static double confidence;
private static char[] item_Split = { ‘,’ };
private static string itemSplit = «,»;
private static String CON = «->»;
private static ListtransList = new List();
public Apriori(int min_sup, double min_conf) // Конструктор, в котором начальные пороги поддержки и доверия инициализируются
{
transList.Add(«apple,banana,orange,pear,»);
transList.Add(«apple,banana,orange,»);
transList.Add(«cake,orange,»);
transList.Add(«milk,pear,»);
transList.Add(«apple,cake,orange,»);
transList.Add(«apple,pear,»);
transList.Add(«pizza,orange,pear,»);
transList.Add(«apple,pear,»);
transList.Add(«apple,banana,orange,pear,»);
transList.Add(«apple,orange,pear,»);
support = min_sup;
confidence = min_conf;
}
public ListAprioriShow() {
return transList;
}
private Dictionary getItem()
{
Dictionary mItem = new Dictionary();
Dictionary Items = new Dictionary();
foreach (String trans in transList)
{
String[] items = trans.Split(item_Split, StringSplitOptions.RemoveEmptyEntries);
foreach (String item in items)
{
int count;
if (mItem.ContainsKey(item + itemSplit) == true)
{
count = mItem[item + itemSplit];
mItem.Remove(item + itemSplit);
mItem.Add(item + itemSplit, count + 1);
}
else
{
mItem.Add(item + itemSplit, 1);
}
}
}
ListkeySet = mItem.Keys.ToList();
foreach (String key in keySet)
{
int count = mItem[key];
if (count >= support)
{
Items.Add(key, count);
}
}
return Items;
}
private Dictionary getCollection(Dictionary item)
{
Dictionary dateCollection = new Dictionary();
ListitemSet1 = item.Keys.ToList();
ListitemSet2 = item.Keys.ToList();
foreach (String item1 in itemSet1)
{
foreach (String item2 in itemSet2)
{
String[] tmp1 = item1.Split(item_Split, StringSplitOptions.RemoveEmptyEntries);
String[] tmp2 = item2.Split(item_Split, StringSplitOptions.RemoveEmptyEntries);
String c = «»;
if (tmp1.Length == 1)
{
if (tmp1[0].CompareTo(tmp2[0]) < 0)
{
c = tmp1[0] + itemSplit + tmp2[0] + itemSplit;
}
}
else
{
bool flag = true;
for (int i = 0; i < tmp1.Length — 1; i++)
{
if (tmp1[i].Equals(tmp2[i]) == false)
{
flag = false;
break;
}
}
if (flag == true && (tmp1[tmp1.Length — 1].CompareTo(tmp2[tmp2.Length — 1]) < 0))
{
c = item1 + tmp2[tmp2.Length — 1] + itemSplit;
}
}
bool Set = false;
if (c != «»)
{
String[] tmpC = c.Split(item_Split, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < tmpC.Length; i++)
{
String subC = «»;
for (int j = 0; j < tmpC.Length; j++)
{
if (i != j)
{
subC = subC + tmpC[j] + itemSplit;
}
}
if (item.ContainsKey(subC) == false)
{
Set = false;
break;
}
}
}
else
{
Set = true;
}
if (Set == false)
{
dateCollection.Add(c, 0);
}
}
}
return dateCollection;
}
public Dictionary get()
{
Dictionary Collections = new Dictionary();
foreach (KeyValuePair item in getItem())
{
Collections.Add(item.Key, item.Value);
}
Dictionary itemkFc = new Dictionary();
foreach (KeyValuePair item in getItem())
{
itemkFc.Add(item.Key, item.Value);
}
while (itemkFc != null && itemkFc.Count != 0)
{
Dictionary candidateCollection = getCollection(itemkFc);
ListccKeySet = candidateCollection.Keys.ToList();
foreach (String trans in transList)
{
foreach (String candidate in ccKeySet)
{
bool flag = true;
String[] candidateItems = candidate.Split(item_Split, StringSplitOptions.RemoveEmptyEntries);
foreach (String candidateItem in candidateItems)
{
if (trans.IndexOf(candidateItem + itemSplit) == -1)
{
flag = false;
break;
}
}
if (flag == true)
{
int count = candidateCollection[candidate];
candidateCollection.Remove(candidate);
candidateCollection.Add(candidate, count + 1);
}
}
}
itemkFc.Clear();
foreach (String candidate in ccKeySet)
{
int count = candidateCollection[candidate];
if (count >= support)
{
itemkFc.Add(candidate, count);
}
}
foreach (KeyValuePair item in itemkFc)
{
if (Collections.ContainsKey(item.Key))
{
Collections.Remove(item.Key);
}
Collections.Add(item.Key, item.Value);
}
}
return Collections;
}
private void build(ListsourceSet, List result)
{
if (sourceSet.Count == 1)
{
Listset = new List();
set.Add(sourceSet[0]);
result.Add(set);
}
else if (sourceSet.Count > 1)
{
build(sourceSet.Take(sourceSet.Count — 1).ToList(), result);
int size = result.Count;
Listsingle = new List();
single.Add(sourceSet[sourceSet.Count — 1]);
result.Add(single);
Listclone;
for (int i = 0; i < size; i++)
{
clone = new List();
foreach (String str in result[i])
{
clone.Add(str);
}
clone.Add(sourceSet[sourceSet.Count — 1]);
result.Add(clone);
}
}
}
public Dictionary Rules(Dictionary Collection)
{
Dictionary Rule = new Dictionary();
ListkeySet = Collection.Keys.ToList();
foreach (String key in keySet)
{
double countAll = Collection[key];
String[] keyItems = key.Split(item_Split, StringSplitOptions.RemoveEmptyEntries);
if (keyItems.Length > 1)
{
Listsource = keyItems.ToList();
List result = new List();
build(source, result);
foreach (ListitemList in result)
{
if (itemList.Count < source.Count)
{
ListotherList = new List();
foreach (String sourceItem in source)
{
if (!itemList.Contains(sourceItem))
{
otherList.Add(sourceItem);
}
}
String reasonStr = «»;
String resultStr = «»;
foreach (String item in itemList)
{
reasonStr = reasonStr + item + itemSplit;
}
foreach (String item in otherList)
{
resultStr = resultStr + item + itemSplit;
}
double countReason = Collection[reasonStr];
double itemConfidence = countAll / countReason;
if (itemConfidence >= confidence)
{
String rule = reasonStr + CON + resultStr;
Rule.Add(rule, itemConfidence);
}
}
}
}
}
return Rule;
}
}
}
Как вставить код программы в Word
Если вы изучаете программирование в университете, то вам приходится писать пояснительные записки к курсовым и дипломным работам, оформлять лабораторные работы в которых надо приводить код или фрагменты программ, написанных, например, на Python, C++, Pascal, Javascript и так далее. Прочитав эту публикацию, вы научитесь делать это красиво и правильно. Например, так как показано на скрине ниже, если вы используете в своей работе Ворд: officerelease.com/word/ для подготовки текстов.

Согласитесь, выглядит такой код в тексте очень солидно. Вы можете сами убедиться в этом, скачав файл с примером, скрин которого здесь приведен. Ну а теперь расскажем как повторить такой же код быстро и без проблем. Научившись делать это один раз, вы будете использовать этот прием постоянно.
Алгоритм добавления кода с подсветкой в Word
- Получите подсветку нужного вам кода кода в любом онлайн сервисе, который генерирует css стиль подсветки и код html-страницы. Это можно сделать здесь.
- В любом текстовом редакторе, например в Notepad+, создайте простейший html-файл, добавив в него код, полученный в предыдущем пункте.
- Сохраните этот файл в кодировке utf-8 с расширением html.
- Перейдите в ваш редактор Word и в нужное место вставьте сохраненный html-файл.
- Если надо, отредактируйте формат вставленного кода.
Включение кода в документацию
Есть несколько способов, отличных от снимков экрана , чтобы включить код в статью, опубликованную на Microsoft Learn:
- Отдельные элементы (слова) в строке. Ниже приведен пример стиля code . Используйте формат кода при ссылке на именованные параметры и переменные в ближайшем блоке кода в тексте. Формат кода также можно использовать для свойств, методов, классов и ключевых слов языка. Дополнительные сведения см. в разделе Элементы кода далее в этой статье.
- Блоки кода в файле Markdown, содержащем статью.
```csharp public static void Log(string message) < _logger.LogInformation(message); >```
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26".
. code language="csharp" source="~/samples-durable-functions/samples/csx/shared/Location.csx" highlight="2,5".
. code source="PowerShell.ps1" interactive="cloudshell-powershell".
Помимо описания синтаксиса Markdown для каждого метода включения кода, в статье приведено общее руководство для всех блоков кода.
Элементы кода
«Элемент кода» является ключевым словом языка программирования, именем класса, именем свойства и т. д. Не всегда очевидно, что рассматривается в качестве кода. Например, имена пакетов NuGet должны считаться кодом. Если возникают сомнения, ознакомьтесь с рекомендациями по форматированию текста.
Встроенные стили кода
Чтобы включить элемент кода в текст статьи, поместите его между одинарными кавычками в виде обратного апострофа (`), чтобы указать стиль кода. Встроенный стиль кода не должен использовать формат тройных кавычек.
| Markdown | Отображение |
|---|---|
| По умолчанию Entity Framework интерпретирует свойство с именем Id или ClassnameID как первичный ключ. | По умолчанию Entity Framework интерпретирует свойство с именем Id или ClassnameID как первичный ключ. |
При локализации статьи (переводе на другие языки) текст, имеющий стиль кода, не переводится. Если вы хотите предотвратить локализацию без использования стиля кода, см. раздел Нелокализованные строки.
Полужирный стиль
В более старых руководствах по стилю для встроенного кода используется полужирный шрифт. Полужирный шрифт можно использовать, когда стиль кода настолько перегружен, что его трудно читать. Например, таблица Markdown со множеством элементов кода может выглядеть перегруженной, если везде применять стилизацию кода. Если выбрано использование полужирного начертания, используйте синтаксис нелокализованных строк, чтобы код не был локализован.
Создание ссылок
Ссылка на справочную документацию может оказаться более полезной, чем формат кода в некоторых контекстах. Если используется ссылка, не применяйте формат кода к тексту ссылки. Стилизация ссылки как кода может скрыть тот факт, что текст является ссылкой.
Если вы используете ссылку и ссылаетесь на тот же элемент позже в том же контексте, сделайте последующие экземпляры форматом кода, а не ссылками. Пример:
The first reference to in this text is a link. Subsequent references to `System.CommandLine` can be in code style.
Первая ссылка на System.CommandLine в этом тексте — это гиперссылка. Последующие ссылки на System.CommandLine написаны в виде кода.
Заполнители
Если требуется, чтобы пользователь заменил часть отображаемого кода собственными значениями, используйте текст заполнителя, заключенный в угловые скобки. Пример:
Вы можете заметить, что квадратные скобки нужно удалить при замене реальных значений. В руководстве по стилю письма от Майкрософт предлагается использовать курсив, который можно форматировать внутри встроенного кода, заключенного в угловые скобки:
Фигурные скобки <> не рекомендуются для использования в качестве синтаксических заполнителей. Их можно спутать с той же нотацией, которая используется в заменяемом тексте, строках форматирования, интерполяции строк, текстовых шаблонах и подобных конструкциях программирования.
Имена заполнителей можно разделять дефисами (kebab-case), подчеркиванием или не разделяться вообще (Pascal case). Kebab-case может вызывать синтаксические ошибки, а знаки подчеркивания могут конфликтовать с подчеркиванием. Использование всех заглавных букв может вызвать конфликты с именованными константами во многих языках, хотя такой текст также может привлекать внимание к имени заполнителя.
Блоки кода
Синтаксис для включения кода в документ зависит от того, где находится код:
- в файле Markdown статьи;
- в файле кода в том же репозитории;
- в файле кода в другом репозитории.
Ниже приведены рекомендации, которые применяются для всех трех типов блоков кода:
- Снимки экрана
- автоматизируйте проверку кода;
- выделяйте основные строки кода;
- избегайте горизонтальных полос прокрутки;
- явно определяйте неправильный код.
Снимки экрана
Все методы, перечисленные в предыдущем разделе, приводят к созданию пригодных для использования блоков кода:
- Вы можете копировать их.
- Они индексируются поисковыми механизмами.
- Они доступны для средств чтения с экрана.
Это лишь несколько из причин, по которым снимки экрана IDE не рекомендуются в качестве метода включения кода в статью. Используйте снимки экрана IDE для кода только в том случае, если вы показываете что-то о самой среде IDE, например IntelliSense. Не используйте снимки экрана, только чтобы показать цвета и выделение.
Проверка кода
В некоторых репозиториях реализованы процессы, которые автоматически компилируют все примеры кода для проверки на наличие ошибок. Это делается в репозитории .NET. Дополнительные сведения см. в разделе об участии в репозитории .NET.
Если вы включаете блоки кода из другого репозитория, обсудите с владельцами стратегию обслуживания кода, чтобы включенный код не перестал работать и не устарел при обновлении версий библиотек, используемых кодом.
Выделение
Фрагменты кода обычно содержат больше кода, чем необходимо для предоставления контекста. Чтобы улучшить читаемость, рекомендуется выделить ключевые строки, на которых нужно сконцентрировать внимание во фрагменте кода, как показано в следующем примере:

Если код включен в файл Markdown статьи, его не удастся выделить. Выделение поддерживается только для фрагментов кода, включенных с помощью ссылки на файл кода.
Горизонтальные полосы прокрутки
Разбейте длинные строки, чтобы избежать горизонтальных полос прокрутки. Полосы прокрутки в блоках кода затрудняют его чтение. Это особенно проблематично в более длинных блоках кода, где невозможно одновременно показать полосу прокрутки и строку, которую необходимо прочитать.
Чтобы свести к минимуму горизонтальные полосы прокрутки в блоках кода, рекомендуется разбивать строки кода, длиннее 85 символов. Но помните, что присутствие или отсутствие полосы прокрутки не является единственным критерием удобочитаемости. Если разбивка длинной строки затрудняет чтение или удобство копирования и вставки, строка может быть длиннее 85 символов.
Явное определение неправильного кода
В некоторых сценариях рекомендуется указывать шаблоны кода, которые следует избегать, например:
- Код, который вызывает ошибку компилятора при попытке выполнения.
- Код, который будет компилироваться правильно, но его рекомендуется выполнять.
Для таких сценариев:
- Укажите на ошибку как в комментариях к коду, так и в тексте статьи. Читатели часто пропускают текст статьи и ищут только код, поэтому важно объяснить ошибку не только в тексте статьи. Также недостаточно объяснить ошибку в комментариях к коду, так как комментарии к коду не локализованы.
- Рассмотрите возможность комментирования кода, если предполагается ошибка компилятора. Закомментированный код не нарушит работу системы непрерывной интеграции (CI), если в репозитории со статьей он есть сейчас или будет реализован в будущем.
Пример того, как представлять нерекомендуемый код, см. в разделе Пример использования Rune: изменение регистра букв. В этом примере совет, как избежать ошибки, встроен в сам код, так как имя метода C# — ConvertToUpperBadExample .
Встроенные блоки кода
Используйте встроенные блоки кода, только когда непрактично отображать код по ссылке на файл кода. Как правило, встроенный код сложнее тестировать и обновлять по сравнению с файлом кода, который является частью полного проекта. И встроенный код может опускать контекст, который может помочь разработчику понять и использовать код. Эти рекомендации относятся главным образом к языкам программирования. Встроенные блоки кода также могут использоваться для выходных и входных данных (например, JSON), языков запросов (таких как SQL) и языков сценариев (например, PowerShell).
Есть два способа указать, что раздел текста в файле статьи является блоком кода: заключив его в тройные обратные кавычки («`) или сделав отступ. Отделение является предпочтительным, так как в этом случае можно указать язык. Старайтесь не использовать отступы, потому что с ними просто ошибиться и другому автору будет сложно понять ваше намерение при редактировании статьи.
Языковые индикаторы размещаются сразу же после открытия тройных обратных кавычек, как в следующем примере:
```json < "aggregator": < "batchSize": 1000, "flushTimeout": "00:00:30" >> ```
GitHub Flavored Markdown поддерживает разделение блоков кода тильдами (~), а также обратными кавычками (`). Символ, используемый для открытия и закрытия блока кода, должен быть одинаковым в пределах одного блока кода.
Дополнительные сведения о значениях, которые можно использовать в качестве индикаторов языка, см. в разделе об именах и псевдонимах языков.
Если вы используете слово языка или среды после тройных кавычек («`), которые не поддерживаются, такое слово отобразится в заголовке раздела кода на отображенной странице. По возможности используйте индикатор языка или среды во встроенных блоках кода.
При копировании и вставке кода из документа Word убедитесь, что в нем нет изогнутых кавычек, которые являются для кода недопустимыми. Если есть, замените их на обычные кавычки ( ‘ и » ). Кроме того, можно использовать функцию замены смарт-кавычек в пакете разработки Learn.
Ссылки на фрагмент кода в репозитории
Предпочтительный способ включения фрагментов кода для языков программирования в документы — использование ссылки на файл кода. Этот метод позволяет выделить строки кода и предоставить больше контекста для фрагмента кода, доступного в GitHub для разработчиков. Код можно включить с помощью формата с тройным двоеточием (. ) вручную или в Visual Studio Code с помощью пакета разработки Learn.
- Находясь в Visual Studio Code, нажмите клавиши ALT+M или OPTION+M и выберите «Фрагмент кода».
- Вам будет предложено выполнить поиск по всему содержимому, в какой-то области или по различным репозиториям. Для локального поиска выберите полный поиск.
- Введите условие поиска и найдите нужный файл. Найдя файл, выберите его.
- Затем выберите, какие строки кода нужно включить в фрагмент, используя следующие параметры: ИД, Диапазон или Никакие.
- В зависимости от выбора на шаге 4 предоставьте необходимые значения.
Отображение всего файла кода:
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs".
Отображение части файла кода путем указания номера строк:
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26".
Отображение части файла кода путем указания имени фрагмента кода:
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" >В следующих разделах описаны эти примеры:
- Использование относительного пути к файлу кода
- Включение только выбранных номеров строк
- Использование ссылки на фрагмент кода с именем
- Выделение выбранных строк
Дополнительные сведения см. в разделе Ссылки на синтаксис фрагментов кода далее в этой статье.
Путь к файлу кода
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26".
Пример взят из репозитория документов ASP.NET, файла статьи aspnetcore/data/ef-mvc/crud.md. Для ссылки на файл кода используется относительный путь к aspnetcore/data/ef-mvc/intro/samples/cu/Controllers/StudentsController.cs в том же репозитории.
Выбранные номера строк
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26".
В этом примере отображаются только строки 2–24 и 26 из файла кода StudentController.cs.
Предпочтительнее использовать именованные фрагменты кода, а не жестко заданные номера строк, как описано в следующем разделе.
Именованный фрагмент кода
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" >Используйте для имени только буквы и символы подчеркивания.
В примере отображается раздел snippet_Create файла кода. Файл кода для этого примера содержит теги фрагментов в комментариях в коде C#:
// code excluded from the snippet // // code included in the snippet // // code excluded from the snippet
Именованные фрагменты кода могут быть вложенными, как показано в следующем примере:
// public static void SomeMethod() < // // Single line of code. // > //
При отображении фрагмента Method кода теги Line не включаются в отображаемые выходные данные.
По возможности ссылайтесь на именованный раздел, а не указывайте номера строк. Ссылки на номера строк являются ненадежными, так как файлы кода неизбежно изменяются с помощью способов, которые изменяют номера строк. Вы не обязательно получите уведомления об этих изменениях. В статье в конечном итоге будут отображаться неправильные строки, и вы даже не будете об этом знать.
Выделение выбранных строк
. code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26" highlight="2,5".
В примере выделены строки 2 и 5, если считать от начала отображаемого фрагмента кода. Подсчет выделяемых номеров строк не начинается от начала файла кода. Другими словами, выделяются строки 3 и 6 файла кода.
Ссылки на фрагменты кода в другом репозитории
Если файл кода, на который необходимо сослаться, находится в другом репозитории, необходимо настроить репозиторий кода в качестве зависимого репозитория. При этом нужно указать его имя. Это имя затем выступает в качестве имени папки, используемого для ссылки на код.
Например, репозиторий документов — Azure/azure-docs, а репозиторий кода — Azure/azure-functions-durable-extension.
В корневой папке azure-docs добавьте следующий раздел в .openpublishing.publish.config.json:
Теперь при добавлении ссылки на sample-durable-functions, как если бы это была папка в azure-docs, вы на самом деле ссылаетесь на корневую папку в репозитории azure-functions-durable-extension.
Код можно включить с помощью формата с тройным двоеточием (. ) вручную или в Visual Studio Code с помощью пакета разработки Learn.
- Находясь в Visual Studio Code, нажмите клавиши ALT+M или OPTION+M и выберите «Фрагмент кода».
- Вам будет предложено выполнить поиск по всему содержимому, в какой-то области или по различным репозиториям. Выберите поиск по репозиториям.
- Вам будет представлен набор репозиториев из .openpublishing.publish.config.json. Выберите репозиторий.
- Введите условие поиска и найдите нужный файл. Найдя файл, выберите его.
- Затем выберите, какие строки кода нужно включить в фрагмент, используя следующие параметры: ИД, Диапазон или Никакие.
- В зависимости от выбора на шаге 5 предоставьте значение.
Ссылка на фрагмент кода будет выглядеть следующим образом:
. code language="csharp" source="~/samples-durable-functions/samples/csx/shared/Location.csx" highlight="2,5".
В репозитории azure-functions-durable-extension этот файл кода находится в папке samples/csx/shared. Как отмечалось ранее, номера строк для выделения начинаются от начала фрагмента, а не от начала файла.
Имя, присвоенное зависимому репозиторию, относится к корню репозитория main, а тильда ( ~ ) ссылается на корень набора документов. Корень набора документов определяется в build_source_folder .openpublishing.publish.config.json . Путь к фрагменту кода в предыдущем примере работает в репозитории azure-docs, так как build_source_folder относится к корню репозитория ( . ). Если бы в качестве build_source_folder использовалось articles , путь начинался бы с ~/../samples-durable-functions , а не с ~/samples-durable-functions .
Фрагменты кода в записной книжке Jupyter
Вы можете сослаться на ячейку в записной книжке Jupyter в виде фрагмента кода. Чтобы сослаться на ячейку, сделайте следующее.
- Добавьте метаданные ячеек, на которые вы хотите сослаться, в записную книжку.
- Настройте доступ к репозиторию.
- Используйте синтаксис фрагмента кода записной книжки Jupyter в файле Markdown.
Добавление метаданных в записную книжку
- Присвойте ячейке имя, добавив метаданные ячейки в записную книжку Jupyter.
- В Jupyter вы можете редактировать метаданные ячейки, сначала включив панель инструментов ячейки. Для этого выберите Просмотр > Панель инструментов ячейки > Редактировать метаданные.
- После включения панели инструментов ячейки выберите Изменить метаданные в ячейке, которой нужно присвоить имя.
- Кроме того, можно изменить метаданные непосредственно в структуре JSON записной книжки.
- В метаданных ячейки добавьте атрибут «name»:
"metadata": ">,
"metadata": ,
Совет Вы можете добавить любые другие метаданные, которые помогут отслеживать использование ячейки. Пример:
"metadata": < "name": "workspace", "msdoc": "how-to-track-experiments.md" >,
Настройка доступа к репозиторию
Если файл записной книжки, на который требуется сослаться, находится в другом репозитории, нужно настроить репозиторий кода в качестве зависимого репозитория.
Справочник по синтаксису фрагмента кода записной книжки Jupyter
После добавления в записную книжку необходимых метаданных создайте ссылку на нее в файле Markdown. Используйте имя , добавленное в записную книжку, и путь , настроенный в качестве зависимого репозитория.
[!notebook-[] (/?name=)]
[!notebook-python[] (~/MachineLearningNotebooks/train-on-local.ipynb?name=workspace)]
Этот синтаксис является блоком расширения Markdown. Он должен использоваться в отдельной строке.
Используйте любой из поддерживаемых языков для идентификатора .
Интерактивные фрагменты кода
Встроенные блоки интерактивного кода
Для следующих языков фрагменты кода можно сделать исполняемыми в окне браузера:
- Azure Cloud Shell
- Azure PowerShell Cloud Shell
- C# REPL
Если включен интерактивный режим, в отображаемых полях с кодом будут кнопки Попробовать или Запустить. Например:
```azurepowershell-interactive New-AzResourceGroup -Name myResourceGroup -Location westeurope ```
отображается следующим образом:
New-AzResourceGroup -Name myResourceGroup -Location westeurope
```csharp-interactive var aFriend = "Maria"; Console.WriteLine($"Hello "); ```
var aFriend = "Maria"; Console.WriteLine($"Hello ");
Чтобы включить эту функцию для конкретного блока кода, используйте специальный идентификатор языка. Доступны следующие параметры:
- azurepowershell-interactive — активирует Cloud Shell в Azure PowerShell, как в предыдущем примере.
- azurecli-interactive — включает Azure Cloud Shell
- csharp-interactive — включает C# REPL
В Azure Cloud Shell и PowerShell Cloud Shell пользователи могут выполнять команды только с собственной учетной записью Azure.
Фрагменты кода, включаемые по ссылке
Для фрагментов кода, включаемых по ссылке, можно включить интерактивный режим. Чтобы включить эту функцию для конкретного блока кода, используйте атрибут interactive . Допустимые значения атрибута:
- cloudshell-powershell — активирует Cloud Shell в Azure PowerShell, как в предыдущем примере.
- cloudshell-bash — включает Azure Cloud Shell
- try-dotnet — активирует Try .NET.
- try-dotnet-class — активирует Try .NET с формированием шаблонов классов.
- try-dotnet-method — активирует Try .NET с формированием шаблонов методов.
Ниже приведены некоторые примеры:
. code source="PowerShell.ps1" interactive="cloudshell-powershell".
. code source="Bash.sh" interactive="cloudshell-bash".
В Azure Cloud Shell и PowerShell Cloud Shell пользователи могут выполнять команды только с собственной учетной записью Azure.
При использовании .NET Interactive содержимое блока кода будет зависеть от того, какой из трех вариантов формирования шаблонов вы выберете:
- Без формирования шаблонов ( try-dotnet ). Блок кода должен представлять полный текст программы. Например, допустимым будет файл Program.cs, созданный dotnet new console . Это удобно для демонстрации программы небольшого размера целиком, включая все необходимые директивы using . Операторы верхнего уровня сейчас не поддерживаются.
- Формирование шаблонов методов ( try-dotnet-method ). Блок кода должен представлять содержимое метода Main в консольном приложении. Вы можете учитывать директивы using , добавленные шаблоном dotnet new console . Этот вариант удобен для коротких фрагментов кода, которые демонстрируют использование одной функции.
- Формирование шаблонов классов ( try-dotnet-class ). Блок кода должен представлять класс с методом Main , который выполняет для программы роль точки входа. Этот вариант можно использовать для демонстрации взаимодействия между элементами класса.
Синтаксис ссылок на фрагменты
. code language="" source="" ="".
Этот синтаксис является блоком расширения Markdown. Он должен использоваться в отдельной строке.
- (необязательно)
- Язык фрагмента кода. Дополнительные сведения см. в разделе Поддерживаемые языки далее в этой статье.
- Относительный путь в файловой системе, который указывает файл фрагмента кода для ссылки.
- Используются вместе для указания способа получения кода из файла и его отображения:
- range : 1,3-5 Диапазон строк. Этот пример содержит строки 1, 3, 4 и 5.
- id : Create Идентификатор фрагмента, который нужно вставить из файла кода. Это значение не может существовать одновременно с диапазоном.
- highlight : 2-4,6 Диапазон и (или) номера строк, которые должны выделяться в создаваемом фрагменте кода. Нумерация задается относительно отображаемых строк (в соответствии с диапазоном или идентификатором), а не файла.
- interactive : cloudshell-powershell , cloudshell-bash , try-dotnet , try-dotnet-class , try-dotnet-method Строковое значение, определяющее тип используемой интерактивности.
- Сведения о представлении имени тега в исходных файлах фрагмента кода для каждого языка см. в разделе с рекомендациями по DocFX.
Поддерживаемые языки
Пакет разработки Learn включает функцию для завершения инструкций и проверки доступных идентификаторов языка для блоков ограждения кода.
Огороженные блоки кода
Имя Допустимые псевдонимы .NET Core CLI dotnetcli 1C 1c ABNF abnf Журналы доступа accesslog Ada ada Ассемблер ARM armasm , arm Ассемблер AVR avrasm ActionScript actionscript , as Алан alan , i AngelScript angelscript , asc ANTLR antlr Apache apache , apacheconf AppleScript applescript , osascript Аркады arcade AsciiDoc asciidoc , adoc AspectJ aspectj ASPX aspx ASP.NET (C#) aspx-csharp ASP.NET (VB) aspx-vb AutoHotkey autohotkey AutoIt autoit Awk awk , mawk , nawk , gawk Axapta axapta AzCopy azcopy Azure CLI azurecli Azure CLI (интерактивный) azurecli-interactive Azure PowerShell azurepowershell Azure Powershell (интерактивный) azurepowershell-interactive Bash bash , sh , zsh Basic basic форма Бэкуса-Наура (BNF) bnf C c C# csharp , cs C# (интерактивный) csharp-interactive C++ cpp , c , cc , h , c++ , h++ , hpp C++/CX cppcx C++/WinRT cppwinrt C/AL cal Cache Object Script cos , cls CMake cmake , cmake.in Coq coq Поставщик служб шифрования csp CSS css Cap’n Proto capnproto , capnp Clojure clojure , clj CoffeeScript coffeescript , coffee , cson , iced Crmsh crmsh , crm , pcmk Crystal crystal , cr Cypher (Neo4j) cypher D d DAX Power BI dax Файл зоны DNS dns , zone , bind DOS dos , bat , cmd Dart dart Delphi delphi , dpr , dfm , pas , pascal , freepascal , lazarus , lpr , lfm Поиск различий diff , patch Django django , jinja Dockerfile dockerfile , docker dsconfig dsconfig DTS (дерево устройств) dts Dust dust , dst Dylan dylan EBNF ebnf Elixir elixir Elm elm Erlang erlang , erl Excel excel , xls , xlsx Extempore extempore , xtlang , xtm F# fsharp , fs FIX fix Fortran fortran , f90 , f95 G-Code gcode , nc Gams gams , gms GAUSS gauss , gss GDScript godot , gdscript Gherkin gherkin GN for Ninja gn , gni Go go , golang Golo golo , gololang Gradle gradle GraphQL graphql Groovy groovy HTML html , xhtml HTTP http , https Haml haml Рули handlebars , hbs , html.hbs , html.handlebars Haskell haskell , hs Haxe haxe , hx Hy hy , hylang Ini ini Inform7 inform7 , i7 IRPF90 irpf90 JSON json Java java , jsp JavaScript javascript , js , jsx Kotlin kotlin , kt Kusto kusto Leaf leaf Lasso lasso , ls , lassoscript Меньше less LDIF ldif Lisp lisp LiveCode Server livecodeserver LiveScript livescript , ls Lua lua Makefile makefile , mk , mak Markdown markdown , md , mkdown , mkd Mathematica mathematica , mma , wl Matlab matlab Maxima maxima Maya Embedded Language mel Mercury mercury Язык сценариев mIRC mirc , mrc Mizar mizar MOF mof Mojolicious mojolicious Monkey monkey Moonscript moonscript , moon MS Graph (интерактивный) msgraph-interactive N1QL n1ql NSIS nsis Nginx nginx , nginxconf Nimrod nimrod , nim Nix nix OCaml ocaml , ml Objective C objectivec , mm , objc , obj-c OpenGL Shading Language glsl OpenSCAD openscad , scad Язык правил Oracle ruleslanguage Oxygene oxygene PF pf , pf.conf PHP php , php3 , php4 , php5 , php6 Parser3 parser3 Perl perl , pl , pm Обычный текст без выделения plaintext Pony pony PostgreSQL и PL/pgSQL pgsql , postgres , postgresql PowerShell powershell , ps PowerShell (интерактивный) powershell-interactive Обработка processing Prolog prolog Свойства properties Protocol Buffers protobuf Puppet puppet , pp Python python , py , gyp Результаты профилировщика Python profile Q# qsharp Q k , kdb QML qml R r Razor CSHTML cshtml , razor , razor-cshtml ReasonML reasonml , re RenderMan RIB rib RenderMan RSL rsl Roboconf graph , instances Robot Framework robot , rf Файлы спецификаций RPM rpm-specfile , rpm , spec , rpm-spec , specfile Ruby ruby , rb , gemspec , podspec , thor , irb Rust rust , rs SAS SAS , sas SCSS scss SQL sql STEP Part 21 p21 , step , stp Scala scala Схема scheme Scilab scilab , sci Выражения фигуры shexc Оболочка shell , console Smali smali Smalltalk smalltalk , st Solidity solidity , sol Stan stan Stata stata Структурированный текст iecst , scl , stl , structured-text Стилус stylus , styl SubUnit subunit Supercollider supercollider , sc Swift swift Tcl tcl , tk Terraform (HCL) terraform , tf , hcl Test Anything Protocol tap TeX tex Thrift thrift TOML toml TP tp Twig twig , craftcms TypeScript typescript , ts VB.NET vbnet , vb VBScript vbscript , vbs VHDL vhdl Vala vala Verilog verilog , v Скрипт Vim vim Visual Basic vb Visual Basic для приложений vba X++ xpp Сборка x86 x86asm XL xl , tao XQuery xquery , xpath , xq XAML xaml XML xml , xhtml , rss , atom , xjb , xsd , xsl , plist YAML yml , yaml Zephir zephir , zep Функция завершения Dev Lang пакета разработки Learn использует первый допустимый псевдоним при наличии нескольких псевдонимов.
Дальнейшие действия
Сведения о форматировании текста для типов содержимого, отличных от кода, см. в разделе Рекомендации по форматированию текста.
Подсветка кода онлайн
Для оформления программного кода разных языков программирования в редакторе Word или для публикации кода на веб-странице может понадобиться его подсветка с помощью css-стилей. Вы можете воспользоваться онлайн сервисом для подсветки кода. Введите нужный вам код, выберите язык, получите предварительный просмотр, скопируйте и вставьте его в Ворд.
Выберите язык: Номера строк Использовать CSS
Подсветка кодаРезультат подсветки кода Вставьте html-код на веб-страницу где вы хотите опубликовать исходный код с подсветкой
Здесь используются относительные размеры, в том числе шрифта. Возможно вам надо будет подправить стили для вашей веб-страницы.
Предварительный просмотр кода на веб-странице
Выделите и скопируйте (Ctr+C) код с подсветкой, а затем вставьте на вашу страницу или в ваш редактор Word (Ctrl+V). Вставленный в Word код можно редактировать (например, увеличить размер шрифта). Код вставляется как список со специфическим форматированием.