04. Строчные элементы
Для выполнения этого задания вам нужно создать новый репозиторий.
Все главы являются теоретическими, их нужно только прочитать.
Ссылки
Часто случается так, что в тексте документации нам нужно поместить ссылку на внешний ресурс или другое место этого же документа. Общий вид ссылки в markdown выглядит так:
[текст ссылки](адрес_ссылки)
Например:
[Реальный кейс: с чем мы столкнулись при переходе на облачную модель](https://habr.com/ru/company/lanit/blog/599945/)
Реальный кейс: с чем мы столкнулись при переходе на облачную модель
Но что, если мы используем одну и туже ссылку много раз в тексте?
Можно ли нам как то упростить себе жизнь и записать
эту ссылку всего один раз? Давайте свяжем её, как переменную в обычных языках программирования, с каким-нибудь коротким названием
и будем дальше обращаться к нему. Название должно быть уникальным. Правда, в отличие от переменных, наше слово
будет навсегда связанным с одной конкретной ссылкой, и, в строгом смысле слова, переменной называться просто не может.
Потому что не меняется. Такие слова называют id
(identification number), идентификационный номер. Ссылки, созданные такими
образом будем называть многоразовыми.
id
- уникальный идентификатор, раньше он мог состоять только из уникальных
цифр, потому что поначалу широко использовался в таблицах баз данных. В свою очередь этот подход заимствован
из бумажых реестров, где нумеровалась
каждая строка. Сейчас id
- это всё ещё уникальный идентификатор. При этом он может быть
уже не просто числом, но и просто последовательностью символов.
Чтобы создать многоразовую ссылку, нужно немного изменить вид обычной ссылки. В квадратных скобках мы
указываем наш id
. Идентификаторы ссылок могут состоять из букв, цифр, пробелов и знаков пунктуации,
однако они не чувствительны к
регистру. То есть эти два варианта эквивалентны:
[my_id]: http://example.com/ "Необязательная подсказка"
[mY_Id]: http://example.com/ "Необязательная подсказка"
В самом тексте она не отображается, но в исходники вставлена эта строчка
Теперь мы можем ссылаться на него из любого места документа.
[текст нашей первой ссылки][my_id]
[текст нашей второй ссылки][my_id]
[текст нашей третьей ссылки][my_id]
Получим:
Также можно выводить сам id
вместо названия, для этого нужно написать id
в первых квадратных скобках, а вторые
оставить пустыми. Что за символы до и после объявления таких ссылок мы обсудим немного позже. Так обозначается
блок кода.
[my_id][]
Получим: my_id
Если нужно вывести просто ссылку без замещающего адрес текста, то эту ссылку можно просто поместить между символами
<
и >
.
<https://habr.com/>
Получим:
Выделение текста
Чтобы выделить текст курсивом, нужно в его начале и конце поставить по одному символу звёздочки *
или
нижнего подчёркивания _
. Чтобы сделать текст полужирным, нужно две
Если ввести следующий текст:
Как мы видели ранее, *CW33300* - это конвейерный процессор, _то есть он объединяет множество команд в очередь_
и выполняет их параллельно на разных этапах. Это значительно повышает скорость обработки команд, но без
должного контроля это может привести к конфликтам конвейера, вызывающим ошибки вычислений.
Архитектура **MIPS I** подвержена конфликтам __управления и конфликтам данных__, то есть команды могут выполняться
не тогда, когда нужно, и оперировать с устаревшими данными до их обновления.
Получим:
Как мы видели ранее, CW33300 - это конвейерный процессор, то есть он объединяет множество команд в очередь и выполняет их параллельно на разных этапах. Это значительно повышает скорость обработки команд, но без должного контроля это может привести к конфликтам конвейера, вызывающим ошибки вычислений.
Архитектура MIPS I подвержена конфликтам управления и конфликтам данных, то есть команды могут выполняться не тогда, когда нужно, и оперировать с устаревшими данными до их обновления.
Блоки кода
Чтобы вставить в документацию тот или иной код, причём так, чтобы был подсвечен синтаксис языка, нужно использовать специальный блок - блок кода. Для этого нужно либо каждую строчку абзаца начинать с четырёх отступов, либо на первой и последней строчке написать три апострофа `.
Тут важно различать апостроф ', который соответствует букве э
, но на английской раскладке и `, который
соответствует ё
. Нам нужен именно ё
.
Например:
```
public static void swap(int[] arr, int l, int r) {
int tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
}
```
Получим:
public static void swap(int[] arr, int l, int r) {
int tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
}
Обратите внимание на то, что у образца добавлены отступы. Это происходит из-за того, что markdown - тоже язык. Все вставки markdown я оформил при помощи таких блоков. Если не сохранить отступы, то интерпретатор решит, что у меня два пустых блока кода перед исходником и после, а сам исходник не оформит.
Он интерпретирует последовательно, не видит картины в целом, тем более не может догадаться, что подразумевалось. Ему нужны конкретные инструкции. Он считывает первые три апострофа, потом сразу три вторых, и блок кода для него на этом заканчивается. Дальше он просто выводит все символы исходника и снова встречает три апострофа. Для него это начало блока кода. После этого он снова встречает три апострофа. Блок кода снова закончился.
Вот так выглядит работающее оформление в моих исходниках:
Обратите внимание: после открывающих блок кода апострофов добавлено слово md. Это не просто так. Интерпретатор не умеет угадывать язык. Ему нужно явно это указать.
```java
public static void swap(int[] arr, int l, int r) {
int tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
}
```
Получим:
class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello, World");
}
}
Месседжер Teleram тоже использует блоки кода. Вы можете точно также отправить свой код товарищу с подсветкой синтаксиса.
Для этого нужно выделить его теми же тремя апострофами ё
.
Текст отправляемого сообщения и результат будут выглядеть примерно так:
Если вам не нужно выделять несколько строк кода, а всего несколько символов или слов, можно использовать
одиночный апостроф, который ё
, а не э
:
`CP2`, или Geometry Transformation Engine (`GTE`) - это специальный математический
сопроцессор, ускоряющий векторные и матричные вычисления.
CP2
, или Geometry Transformation Engine (GTE
) - это специальный математический
сопроцессор, ускоряющий векторные и матричные вычисления.
Изображения
Изображения добавляются в документацию так же, как ссылки. Только перед описанием картинки нужно поставить восклицательный знак:

Получим картинку Шлёпы:
Текст, написанный в квадратных скобках отображается, пока не загрузилась картинка. Также можно добавить подсказку:

Если навести курсор мыши на картинку, появится текст "Это Шлёпа".
Также можно создать многоразовую картинку.
Создаём сначала id для картинки:
[floppa]: /img/project/markdown/floppa.png "Big Russian Cat"
Я добавил здесь этот код в исходниках, но его не видно, зато будет видно сами картинки:
![Floppa1][floppa]
![Floppa2][floppa]
![Floppa3][floppa]
![Floppa4][floppa]
Обратный слеш
Обратный слеш \
находится над кнопкой Enter
. Вернее, эту кнопку надо зажать одновременно с клавишей Shift
.
Сама клавиша, как вы, возможно догадались или знаете, просто слеш /
.
Этот слеш применяется для так называемого экранирования экранирования управляющих символов. Управляющие символы - это символы: * \ ` _ { } [ ] () # + - . !
Каждый из них участвует в той или иной команде, поэтому они называются управляющими. Если их использовать не в командах, а просто в тексте, то интерпретатор может не понять, что ему нужно сделать: толи это команда, толи просто символ.
В таких случая перед символом ставят обратный слеш.
Тогда символ защищён от интерпретатора. Интерпретатор увидит, что перед управляющим символом стоит
экранирующий символ \
. Чтобы экранировать сам символ обратного слэша, надо добавить перед ним второй слэш \\
\* \\ \` \_ \{ \} \[ \] \(\) \# \+ \- \. \!
Получим:
* \ ` _ { } [ ] () # + - . !
Задание
Чтобы картинки отображались в readme на github, нужно добавить её в папку локального репозитория. После этого нужно добавить её в список индексации и указывать относительный путь.
Например, если картинка test.png
лежит внутри папки img
, которая в свою очередь лежит в папке репозитория,
то её адрес будет img/test.png
.

В таблице ниже представлены ссылки на статьи с хабра. Вам нужно написать readme.md
файл
порождающий текст, свёрстанный, как статья по вашей ссылке. Репозиторий нужно опубликовать
на гитхабе и прислать ссылку на него в соответствующий контест.
Комментарии, хэш-теги и прочее верстать не нужно. Раскрывающиеся элементы нужно верстать, как обычный текст. Если статья слишком большая, то необходимо сверстать первые 7 прокруток на экране, не меньшем школьных при масштабе .
Если в статье есть видео, просто не учитывайте их. Анимации gif
- это такие же картинки.
Чтобы сохранить картинку, кликните по ней правой кнопкой мыши и выберите пункт Сохранить картинку как...
.
Чтобы определиться, какую статью нужно верстать, найдите в таблице ваш номер в группе (см. группу в eschool либо можно посмотреть в этом файле), в этой же строке будет нужная вам ссылка.