Особенности синтаксиса kramdown: часть 2
Это вторая статья о синтаксисе kramdown, в ней будут описаны разновидности ссылок, способы выделения блоков кода и возможности по улучшению типографики.
Ссылки
В kramdown поддерживается три вида ссылок: автоматические, строчные и реферальные.
1. Автоматические ссылки.
Это наиболее простая разновидность, для вставки такой ссылки достаточно заключить URL в угловые скобки. Какие-либо настройки для этого вида ссылок не предусмотрены.
>Это простая ссылка на домашнюю страницу: <http://prgssr.ru>.
Это простая ссылка на домашнюю страницу: http://prgssr.ru.
2. Строчные ссылки
Основная разновидность ссылок. Синтаксис строчных ссылок позволяет задавать текст внутри тега a
, отличный от URL. В kramdown к ссылке также можно добавить атрибут title
— он задается в кавычках через пробел после адреса.
>Это [ссылка](http://rubyforge. org) на страницу. В [ссылке](http://prgssr.ru "главная страница") можно указать title. Адрес ссылки также может содержать [пробелы](link with spaces.html)
Это ссылка на страницу.
В ссылке можно указать title.
3. Реферальные ссылки
Реферальные ссылки или ссылки на ссылки позволяют ссылаться на ярлык ссылки.
>Это [реферальная ссылка][linkid] на страницу. И [это] [linkid] тоже ссылка. И [это][] и даже [это].
Это реферальная ссылка на страницу. И это тоже ссылка. И это и даже это.
Чтобы реферальные ссылки заработали, их надо задать. Для этого надо просто вставить их в текст в любом месте страницы. Идентификатор ссылки задается в квадратных скобках, после них ставится двоеточие. Идентификатор может быть и кириллическим.
[linkid]: http://prgssr.ru/ "Перейти на главную страницу" [это]: http://prgssr.ru/ "Тупо нажать"
Изображения
Синтаксис для вставки изображений похож на синтаксис строчных ссылок. В начале идет восклицательный знак (!
), затем в квадратных скобках атрибут alt
, а после этого в круглых скобках URL изображения.
Адрес изображения можно также задать через реферал. Вот образец:
![Jekyll] [Jekyll]: /images/jekyll.png "Джекилл"
Аббревиатуры
В kramdown можно задавать аббревиатуры. Эта возможность также не является частью оригинального Markdown, а позаимствована из PHP Markdown Extra.
Механизм задания аббревиатур похож на задание реферальных ссылок. Астериск (*
), затем аббревиатура в квадратных скобках, за ними двоеточие и расшифровка. Однажды заданная аббревиатура работает во всем тексте.
Этот текст написан не на HTML, а с использованием другого языка! *[другого языка]: kramdown *[HTML]: HyperTextMarkupLanguage
Этот текст написан не на HTML, а с использованием другого языка!
Блоки кода
Стандартное выделение кода в Markdown это отступ в 4 пробела или один таб, язык кода задается с помощью списка вложенных атрибутов, пустые строки не прерывают блок кода — для разрыва надо использовать маркер окончания блока:
. \ \/\ (\ )
\ ) \ ) \ \
jgs ) /__ \__ ) (\ \___
(___)))__))(__))(__)))
Блок кода оборачивается тегами <pre>
и <code>
одновременно. При задании языка к ним добавляется класс “language-указанный-язык”.
Подсветка кода
Подсветка кода осуществляется в kramdown автоматически при указании языка кода. Для настройки подсветки существуют следующие опции:
Название опции | Настройка |
---|---|
syntax_highlighter | установка системы подсветки кода, по умолчанию в kramdown это coderay |
syntax_highlighter_opts | настройка системы подсветки кода, опции передаются в виде пар ключ/значение и должны быть понятны системе подсветки |
Для дефолтной системы подсветки coderay есть специальные опции:
Название опции | Настройка |
---|---|
coderay_bold_every | определяет, какие строки в нумерации должны быть выделены жирным шрифтом, по умолчанию задано значение 10 (каждая десятая строка), для отключения надо задать false . |
coderay_css | способ задания подсветки: классами CSS (class ) или инлайновыми стилями (style — это значение по умолчанию). |
coderay_default_lang | язык, синтаксис которого подсвечивается при отсутствии указания языка в блоке кода. По умолчанию nil . |
coderay_line_number_start | стартовый номер для нумерации строк кода, по умолчанию 1 . |
coderay_line_numbers | механизм вывода номеров строк: табличный (table ) или строчный (inline — дефолтный). Значение nil отключает нумерацию. |
coderay_tab_width | ширина табуляции в подсвечиваемом коде. |
coderay_wrap | блок-обертка для кода — span , div или nil . Значение по умолчанию div . |
Система подсветки кода coderay генерирует классы для блоков кода, несовместимые с Pygments и подобными системами (Rouge, Prism).
Типографские символы
В kramdown поддерживается расширение SmartyPants, улучшающее типографику.
Оно делает несколько небольших, но очень приятных автоматических изменений в разметке.
русское название | английское название | до | после |
---|---|---|---|
длинное тире | m-dash | --- | — |
короткое тире | n-dash | -- | – |
многоточие | ellipsis | ... | … |
французские кавычки | guillemets | << >> | « » |
двойные кавычки * | curly double quotes | "" "X" | ”” “X” |
одинарные кавычки * | curly single quotes | '' 'X' | ’’ ‘X’ |
Для конвертации кавычек есть специальная опция — smart_quotes
. Ее дефолтное значение lsquo,rsquo,ldquo,rdquo
— по порядку: левая одинарная, правая одинарная, левая двойная и правая двойная кавычки. С полным списком доступных вариантов кавычек можно ознакомиться в википедии.
Многоточие, в принципе, можно и убрать из списка — оно по умолчанию трансформируется из трех подряд поставленных точек в большинстве браузеров. Все остальное выглядит прекрасно, но как известно, основная проблема всех средств для улучшения типографики это то, что ими мало кто пользуется. Хотя с учетом распространенности SmartyPants имеет смысл постоянно использовать в разметке длинное тире при пунктуации и короткое тире при указании диапазонов.
Горизонтальные линии
Сколько угодно! Для генерации hr
достаточно трех или более астерисков, дефисов или подчеркиваний, их можно разделять пробелами или табами, но нельзя смешивать на одной линии.
* * * ** **
---
_ _ _ _
---------------
Экранирование
Для вывода символов, используемых для задания разметки используется экранирование. Это делается с помощью обратного слэша — все символы после него экранируются:
Это \`не код\`, а просто текст в обратных апострофах.
Это `не код`, а просто текст в обратных апострофах
Список экранируемых символов:
Символ | английское именование | русское именование |
---|---|---|
\ | backslash | обратный слэш |
. | period | точка |
* | asterisk | астериск |
_ | underscore | подчеркивание |
+ | plus | плюс |
— | minus | минус |
= | equal sign | равно |
` | back tick | обратный апостроф |
()[]{}<> | left and right parens/brackets/braces/angle brackets | левая и правая скобки/ квадратные/ фигурные/ угловые |
# | hash | хэш |
! | bang | восклицательный знак |
« | left guillemet | меньше |
» | right guillemet | больше |
: | colon | двоеточие |
| | pipe | вертикальная черта |
” | double quote | двойная кавычка |
’ | single quote | одинарная кавычка |
$ | dollar sign | знак доллара |
Примечание: внутри таблиц вертикальная черта (|) после экранирования не выводится совсем. Ее надо обернуть тегом code
.
String | Язык программирования Crystal
String представляет неизменяемую последовательность символов в кодировке UTF-8.
String обычно создается с помощью строкового литерала, заключая UTF-8 символы в двойные кавычки:
"hello world"
Обратный слеш может быть использован для обозначения специальных символов:
"\"" # двойная кавычка "\\" # обратный слеш "\e" # управляющая последовательность "\f" # смена страницы "\n" # новая строка "\r" # возврат каретки "\t" # табуляция "\v" # вертикальная табуляция
Вы можете использовать обратный слеш и до трех цифр после него для обозначения символов в восьмеричной системе счисления:
"\101" # == "A" "\123" # == "S" "\12" # == "\n" "\1" # code point 1
Вы можете использовать обратный слеш, u и четыре шестнадцатеричных символа для обозначения Unicode-последовательности:
"\u0041" # == "A"
Или вы можете использовать фигурные скобки и шесть шестнадцатеричных символов (от 0 до 10FFFF):
"\u{41}" # == "A" "\u{1F52E}" # == "🔮"
Строка может занимать несколько строк кода:
"hello world" # то же, что и "hello\n world"
Обратите внимание, что в последнем примере в результирующей строке содержатся пробелы и переводы строк. Чтобы избежать этого, разбейте исходную строку на несколько строк, объединяя их обратным слешем:
"hello " \ "world, " \ "no newlines" # то же, что и "hello world, no newlines"
Или вы можете вставлять обратныый слеш в качестве перевода строки во внутрь строкового литерала:
"hello \ world, \ no newlines" # то же, что и "hello world, no newlines"
В этом случае, пробелы в начале строки не попадут в результирующую строку.
Если вам нужно написать строку, имеющую много двойных кавычек, скобок и тому подобных символов, то вы можете использовать альтернативные литералы:
# Поддерживает двойные кавычки и вложенные круглые скобки %(hello ("world")) # то же, что и "hello (\"world\")" # Поддерживает двойные кавычки и вложенные квадратные скобки %[hello ["world"]] # то же, что и "hello [\"world\"]" # Поддерживает двойные кавычки и вложенные фигурные скобки %{hello {"world"}} # то же, что и "hello {\"world\"}" # Поддерживает двойные кавычки и вложенные треугольные скобки %<hello <"world">> # то же, что и "hello <\"world\">"
Heredoc
Вы можете использовать специальный «heredoc» синтаксис для создания строки:
<<-XML <parent> <child /> </parent> XML
«Heredoc» начинается с <<-IDENT
, где IDENT
— это идентификатор, последовательность букв и цифр, которая должна начинаться с буквы.
IDENT
, игнорируя пробелы в начале этой строки.Пробелы в начале строки удаляются из контента «heredoc» в соответствии с количеством пробельных символов, которые имеет последний IDENT
. Например:
# то же, что и "Hello\n world" <<-STRING Hello world STRING # то же, что и " Hello\n world" <<-STRING Hello world STRING
Интерполяция
Для создания строки со встроенными выражениями, вы можете использовать интерполяцию:
a = 1 b = 2 "sum = #{a + b}" # "sum = 3"
Вызывается метод Object#to_s(IO)
на каждом выражении внутри #{...}
.
Двойные угловые кронштейны
СледующийПредыдущий
Когда вы открываете, компилируете, редактируете или запускаете сценарии с помощью редактора сценариев, вы можете иногда видеть термины, заключенные в двойные угловые скобки или шевроны («»). Например, вы можете увидеть термин «event sysodlog»
как часть сценария — это представление кода события для команды display dialog
Для совместимости с азиатскими национальными кодировками «《» и «》» разрешены как синонимы ««» и «»» ((Option-\ и Option-Shift-\ соответственно на клавиатуре США), поскольку последние не существуют в некоторых азиатских кодировках.
В следующих разделах содержится дополнительная информация о том, когда в сценариях появляются шевроны.
Когда словарь недоступен
AppleScript использует двойные угловые скобки в окне сценария редактора сценариев, когда не может идентифицировать термин. Это происходит, когда он сталкивается с термином, который не является частью языка AppleScript и не определен в словаре добавления приложения или сценария, доступном при открытии или компиляции сценария.
Например, если сценарий скомпилирован на одном компьютере, а затем открыт на другом, словарь может быть недоступен или может быть взят из более старой версии приложения или дополнения к сценарию, которое не поддерживает этот термин.
Это также может произойти, если файл StandardAdditions.osax
отсутствует в /System/ScriptingAdditions
. Тогда команды добавления сценариев, такие как отображать диалоговое окно
, не будут присутствовать и будут заменены шевронной нотацией ( «event sysodlog»
) при компиляции или запуске сценария.
Когда AppleScript отображает данные в необработанном формате
В результатах также могут встречаться двойные угловые скобки. Например, если значение переменной равно Script
Объект с именем Joe
, AppleScript представляет собой сценарий
, как показано в этом сценарии:
Script Joe | ||||
. |
Аналогичным образом, если редактор сценариев не может отобразить данные переменной непосредственно в исходном формате, он использует двойные угловые скобки для заключения слова данных
и последовательности числовых значений, представляющих данные. Хотя это может визуально не напоминать исходные данные, исходный формат данных сохраняется.
Это может произойти из-за того, что команда приложения возвращает значение, не принадлежащее ни к одному из обычных классов AppleScript. Вы можете хранить такие данные в переменных и отправлять их в качестве параметров другим командам, но редактор сценариев не может отображать данные в собственном формате.
Ввод информации сценария в необработанном формате
Вы можете ввести двойные угловые скобки или шевроны («») непосредственно в сценарий, набрав Option-Backslash и Shift-Option-Backslash. Это может потребоваться, если вы работаете над сценарием, в котором необходимо использовать терминологию, недоступную на вашем текущем компьютере, например, если вы работаете дома и у вас нет самого последнего словаря для сценариев. приложение, которое вы разрабатываете, но знаете коды поддерживаемого термина.
Вы также можете использовать AppleScript для отображения базовых кодов сценария, выполнив следующие шаги:
Создайте сценарий, используя стандартные термины, скомпилированные для доступного приложения или добавления сценария.
Сохраните сценарий как текст и закройте редактор сценариев.
Удалите приложение или дополнение сценария с компьютера.
Снова откройте скрипт и скомпилируйте его.
Когда AppleScript попросит вас найти приложение или дополнение сценария, закройте диалоговое окно.
Редактор сценариев может скомпилировать сценарий, но отображает формат шеврона для всех терминов, которые зависят от отсутствующего словаря.
Отправка необработанных событий Apple из сценария
Термин «event sysodlog»
на самом деле является необработанной формой для события Apple с классом события «syso»
и идентификатором события «dlog»
(диалоговое окно
команда). Список многих четырехсимвольных кодов и связанную с ними терминологию, используемую Apple, см. в разделе 9.0011 Справочник по терминологии AppleScript и кодам событий Apple .
Вы можете использовать необработанный синтаксис для ввода и выполнения событий (даже сложных событий с многочисленными параметрами), когда нет словаря для их поддержки. Однако предоставление подробной документации о том, как это сделать, выходит за рамки данного руководства.
СледующийПредыдущий
Авторские права © Apple Inc., 2016. Все права защищены. Условия использования | Политика конфиденциальности | Обновлено: 25.01.2016
9Значение угловых скобок 0000 и как их использовать?Скобки — полезные инструменты пунктуации в письменной форме английского языка. Существует много типов скобок, таких как фигурная скобка, квадратная скобка, обычные круглые скобки и многое другое! В этой статье речь пойдет об использовании угловых скобок в английском языке .
Что такое скобки?
Фото Dan-Cristian Pădureț на UnsplashСкобки обозначают знаки препинания ([]), используемые для вставки текста в другой текст. Существует несколько типов скобок, например фигурная скобка {}, квадратная скобка [], типичная скобка () и, конечно же, угловая скобка <>. Из всех их различных применений некоторые чаще используются в британском английском, а некоторые являются стандартом для американского английского.
Скобки не часто используются в английском языке и почти никогда не используются в неформальной обстановке. Скобки являются стандартом для многих людей. Тем не менее, скобки могут быть полезны в академическом письме.
Скобки используются для уточнения смысла или для вставки дополнительной информации во всех типах письма. Однако (и это особенно актуально для студентов) скобки являются первичными компонентами цитируемого материала.
Квадратные скобки также служат для заключения латинского слова sic, что означает «так». Слово «sic» используется в академическом письме для обозначения проблемы, которая первоначально появилась в исходном материале, но не была связана с автором, который использовал цитату.
Для этого типа использования мы добавляем фразу [ sic ], чтобы читатель знал, что грамматическая ошибка была в самом исходном материале.
Квадратные скобки помогают сделать текст более четким. Автор статьи, использующий цитаты со словом «это», часто использует скобки, чтобы пояснить антецедент.
Автор часто предлагает цитату вне ее первоначального контекста. Поскольку читатели используют контекст для определения антецедента, он должен быть предложен.
В дополнение к квадратным скобкам некоторые части цитаты также выделяются и опускаются.
Угловые скобки на английском языке
Угловые скобки или шевроны — это пара знаков препинания, которые используются для обозначения . Эти знаки принято рассматривать как своего рода скобки.
Угловые скобки очень редко используются в письменной форме. В математических и компьютерных программах угловые скобки используются чаще, чем при письме.
Например, одинарная угловая скобка обычно используется для обозначения того, что что-то «меньше» (*) или «больше» в математике.
Угловые скобки редко используются в английском языке. Угловая скобка или двойной набор угловых скобок могут использоваться в некоторых языках для заключения кавычек.
Язык может использоваться неформально для вставок, обозначения речи на иностранном языке или упоминания веб-сайта. Однако все эти варианты использования встречаются редко, даже в официальной письменной форме.
Угловой кронштейн также находит применение в других областях, таких как математика, физика или компьютерное программирование. Например, угловые скобки представляют собой набор данных или действие в компьютерном коде.
Например, при написании кода вы можете написать что-то вроде этого:
Заключение
Угловые скобки широко используются в языках по всему миру, и они также широко используются в письме.