Информация об изменениях

Сообщение Проект нового языка разметки от 01.09.2014 17:59

Изменено 01.09.2014 18:17 AndrewVK

Старое обсуждение

Спецификация разметки

Стили текста

Жирный

Выделяется символами ~*~* с обеих сторон. При этом слева от открывающей ~*~* должен быть пробел или начало строки, а справа не пробел и не конец строки. Для закрывающей, соответственно, не пробел и не начало строки слева, и пробел или конец строки справа.
**слово**
**несколько слов**
1 ** 2

Выходной HTML
<strong>слово</strong>
<strong>несколько слов</strong>
1 * 2

Внутри блока кода вместо одинарного символа * следует использовать двойной **

=== Курсив ===
Выделяется символами // с обеих сторон. Правила по обрамлению пробелами соответствуют выделению жирным.
//слово//
//несколько слов//

Выходной HTML
<em>слово</em>
<em>несколько слов</em>


Подчеркнутый

__слово__
__несколько слов__


Перечеркнутый

--слово--
--несколько слов--


Верхний индекс

^^слово^^
^^несколько слов^^


Нижний индекс

___слово___
___несколько слов___


Заголовки

= Уровень 1
== Уровень 2
=== Уровень 3
==== Уровень 4
===== Уровень 5
====== Уровень 6


Параграфы

Начало строки — начало параграфа. Перенос строки — конец параграфа.
One Two
Three

Выходной HTML
<p class='plain-text'>One Two</p>
<p class='plain-text'>Three</p>


Цитаты сообщений

Строка цитаты имеет следующий формат:
* Префикс из символов, цифр и знака подчеркивания, без пробелов, длиной от 0 до 6 символов.
* Произвольное количество символов >. Количество символов определяет уровень вложенности.
* Произвольный текст до конца строки.
A>> O La La
Bb> One Two

Выходной HTML
<span class='quota-prefix'>A</span><span class='quota level2'>O La La</span>
<span class='quota-prefix'>Bb</span><span class='quota level1'>O La La</span>


Списки


Ненумерованный список

Элемент списка — строка, начинающаяся с одного или нескольких символов * (в зависимости от уровня вложенности) и следующего за ним пробела.
* Item 1
** Item 1.1
* Item 2
* Item 3


Нумерованный список

Элемент списка — строка, начинающаяся с символа # или № и следующего за ним пробела
№ Item 1
## Item 1.1
№ Item 2
№ Item 3


Ссылки

((текст ссылки|url))

Текст ссылки может быть пустым. В этом случае в качестве текста используется сам url, но с заменой url escaping на исходный текст.

Ссылки на сообщения по имени

TBD

Ссылки на сообщения по id

TDB

Изображения

!((имя изображения|url))

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

Смайлы


Стандартные смайлы

:)
:))
:)))
:(
;)
:-\


Смайлы из расширений

Имеют формат :smileid:, где smileid — строка от 1 до 5 символов английского или русского алфавита без пробелов и знаков препинания. Для каждого smileid должны быть два синонима — в русской и английской раскладке.

Свернутый блок

Начинается с символов +++ в начале строки и следующего за этими символами названия блока. Завершается строкой из символов +++.
+++ Много текста
Текст текст текст текст.
+++


Код

Внутри кода игнорируется вся разметка, за исключением выделения. Внутри кода так же допускается использование ~{~{~{ и ~}~}~}. Признак конца кода определяется парсером по парности фигурных скобок.

Строчный код

Кусок текста, окруженный тройными скобками ~{~{~{ и ~}~}~} на одной строке. Опционально между второй и третьей открывающей скобкой можно указать название языка.
Текст {{ruby{if (x == 0) return;}}} текст

Выходной HTML:
Текст <span class='code'>if (x == 0) return;</span> текст


Блок кода

Кусок текста, окруженный тройными скобками ~{~{~{ и ~}~}~} на отдельных строчках. Опционально между второй и третьей открывающей скобкой можно указать название языка.
{{cs{
  if (x == 0)
    return;
}}} текст

Выходной HTML:
<div class='code'>
  <span class='code-keyword'>if</span> (x == <span class='code-num-literal'>0</span>)
    <span class='code-keyword'>return</span>;
</div>

Перед открывающими скобками можно указать символ +. Это будет означать, что блок кода будет по умолчанию свернут в строку "Код[[ язык]".

Выделение в коде

Выделить можно либо строку целиком, либо конкретный участок кода. Выделенная строка начинается с символов >>> и следующего на ними пробельного символа. Выделенный участок кода должен быть расположен на одной строке и обрамляется символами >>> и <<< слева и справа. Расположение этих символов относительно слов соответствует правилам для выделения жирным.
if (x == 0)
>>>  Foo();
else
  x = >>>GetX()<<<;


Блочная цитата

Начинается с тройного символа " и им же заканчивается.
"""
Один классик сказал …
"""

Перед открывающими кавычками можно указать символ +. Это будет означать, что цитата будет по умолчанию свернута в строку "Цитата".

Таблицы

|* Header 1 | Header 2 | Header 3|
|  Cell 1.1 | Cell 1.2 | Cell 1.3|
|  Cell 2.1 | Cell 2.2 | Cell 2.3|
|Left aligned | Centered | Right aligned|
|>| Colspan |<|
|\|||
|Rowspan|||


Горизонтальный разделитель

Строка, состоящая только из трех символов ---

Сообщение модератора или системы

Заключается в скобки из тройных символов !!!

Теглайн

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

Экранирование

Для экранирования служебного символа или комбинации можно применять символ экранирования \. Символ \, окруженный пробелами или двойной \\ интерпретируется как просто символ \.

Автозамены

Некоторые комбинации символов заменяются:
* ... (три точки) на … (троеточие)
* --, окруженный пробелами на ­— (длинное тире)

Объекты

Предназначены для вставки внешних по отношению к форматтеру объектов. Должно присутствовать уникальное имя объекта, а в теле тега значение параметров в JSON формате.
TBD
Старое обсуждение
Автор: AndrewVK
Дата: 20.08.12

Спецификация разметки

Стили текста

Жирный

Выделяется символами ~*~* с обеих сторон. При этом слева от открывающей ~*~* должен быть пробел или начало строки, а справа не пробел и не конец строки. Для закрывающей, соответственно, не пробел и не начало строки слева, и пробел или конец строки справа.
**слово**
**несколько слов**
1 ** 2

Выходной HTML
<strong>слово</strong>
<strong>несколько слов</strong>
1 * 2

Внутри блока кода вместо одинарного символа * следует использовать двойной **

=== Курсив ===
Выделяется символами // с обеих сторон. Правила по обрамлению пробелами соответствуют выделению жирным.
//слово//
//несколько слов//

Выходной HTML
<em>слово</em>
<em>несколько слов</em>


Подчеркнутый

__слово__
__несколько слов__


Перечеркнутый

--слово--
--несколько слов--


Верхний индекс

^^слово^^
^^несколько слов^^


Нижний индекс

___слово___
___несколько слов___


Заголовки

= Уровень 1
== Уровень 2
=== Уровень 3
==== Уровень 4
===== Уровень 5
====== Уровень 6


Параграфы

Начало строки — начало параграфа. Перенос строки — конец параграфа.
One Two
Three

Выходной HTML
<p class='plain-text'>One Two</p>
<p class='plain-text'>Three</p>


Цитаты сообщений

Строка цитаты имеет следующий формат:
* Префикс из символов, цифр и знака подчеркивания, без пробелов, длиной от 0 до 6 символов.
* Произвольное количество символов >. Количество символов определяет уровень вложенности.
* Произвольный текст до конца строки.
A>> O La La
Bb> One Two

Выходной HTML
<span class='quota-prefix'>A</span><span class='quota level2'>O La La</span>
<span class='quota-prefix'>Bb</span><span class='quota level1'>O La La</span>


Списки


Ненумерованный список

Элемент списка — строка, начинающаяся с одного или нескольких символов * (в зависимости от уровня вложенности) и следующего за ним пробела.
* Item 1
** Item 1.1
* Item 2
* Item 3


Нумерованный список

Элемент списка — строка, начинающаяся с символа # или № и следующего за ним пробела
№ Item 1
## Item 1.1
№ Item 2
№ Item 3


Ссылки

((текст ссылки|url))

Текст ссылки может быть пустым. В этом случае в качестве текста используется сам url, но с заменой url escaping на исходный текст.

Ссылки на сообщения по имени

TBD

Ссылки на сообщения по id

TDB

Изображения

!((имя изображения|url))

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

Смайлы


Стандартные смайлы

:)
:))
:)))
:(
;)
:-\


Смайлы из расширений

Имеют формат :smileid:, где smileid — строка от 1 до 5 символов английского или русского алфавита без пробелов и знаков препинания. Для каждого smileid должны быть два синонима — в русской и английской раскладке.

Свернутый блок

Начинается с символов +++ в начале строки и следующего за этими символами названия блока. Завершается строкой из символов +++.
+++ Много текста
Текст текст текст текст.
+++


Код

Внутри кода игнорируется вся разметка, за исключением выделения. Внутри кода так же допускается использование ~{~{~{ и ~}~}~}. Признак конца кода определяется парсером по парности фигурных скобок.

Строчный код

Кусок текста, окруженный тройными скобками ~{~{~{ и ~}~}~} на одной строке. Опционально между второй и третьей открывающей скобкой можно указать название языка.
Текст {{ruby{if (x == 0) return;}}} текст

Выходной HTML:
Текст <span class='code'>if (x == 0) return;</span> текст


Блок кода

Кусок текста, окруженный тройными скобками ~{~{~{ и ~}~}~} на отдельных строчках. Опционально между второй и третьей открывающей скобкой можно указать название языка.
{{cs{
  if (x == 0)
    return;
}}} текст

Выходной HTML:
<div class='code'>
  <span class='code-keyword'>if</span> (x == <span class='code-num-literal'>0</span>)
    <span class='code-keyword'>return</span>;
</div>

Перед открывающими скобками можно указать символ +. Это будет означать, что блок кода будет по умолчанию свернут в строку "Код[[ язык]".

Выделение в коде

Выделить можно либо строку целиком, либо конкретный участок кода. Выделенная строка начинается с символов >>> и следующего на ними пробельного символа. Выделенный участок кода должен быть расположен на одной строке и обрамляется символами >>> и <<< слева и справа. Расположение этих символов относительно слов соответствует правилам для выделения жирным.
if (x == 0)
>>>  Foo();
else
  x = >>>GetX()<<<;


Блочная цитата

Начинается с тройного символа " и им же заканчивается.
"""
Один классик сказал …
"""

Перед открывающими кавычками можно указать символ +. Это будет означать, что цитата будет по умолчанию свернута в строку "Цитата".

Таблицы

|* Header 1 | Header 2 | Header 3|
|  Cell 1.1 | Cell 1.2 | Cell 1.3|
|  Cell 2.1 | Cell 2.2 | Cell 2.3|
|Left aligned | Centered | Right aligned|
|>| Colspan |<|
|\|||
|Rowspan|||


Горизонтальный разделитель

Строка, состоящая только из трех символов ---

Сообщение модератора или системы

Заключается в скобки из тройных символов !!!

Теглайн

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

Экранирование

Для экранирования служебного символа или комбинации можно применять символ экранирования \. Символ \, окруженный пробелами или двойной \\ интерпретируется как просто символ \.

Автозамены

Некоторые комбинации символов заменяются:
* ... (три точки) на … (троеточие)
* --, окруженный пробелами на ­— (длинное тире)

Объекты

Предназначены для вставки внешних по отношению к форматтеру объектов. Должно присутствовать уникальное имя объекта, а в теле тега значение параметров в JSON формате.
TBD