, в ней в том числе и этот вопрос обсуждался. Этот документ, собственно, на ее основе создан, я его просто перетащил сюда с битбакета, чтобы можно было обсуждать, а заодно и wiki потестировать.
Для markdown есть несколько расширений. Плюс никто не мешает написать свой.
Они много где используются и поддерживаются.
Десятилетие обкатки.
А единый устраивающий всех язык разметки всё равно не создать.
, в ней в том числе и этот вопрос обсуждался. Этот документ, собственно, на ее основе создан, я его просто перетащил сюда с битбакета, чтобы можно было обсуждать, а заодно и wiki потестировать.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, A-Myth, Вы писали:
AM>Для markdown есть несколько расширений. Плюс никто не мешает написать свой.
Ну а если писать свой, то тогда в чем вопрос?
AM>Они много где используются и поддерживаются.
Там в топике есть ссылки, и markdown далеко не на первом месте по популярности.
AM>Десятилетие обкатки.
Десятилетие это сильно сказано. Я точно помню что в 2009 это был еще довольно малоизвестный формат. Опять же, bbcode в разы старше, если уж на обкатку ориентироваться.
AM>А единый устраивающий всех язык разметки всё равно не создать.
Но можно создать такой, который устраивает максимальное количество. Да и не в устраиваемости дело, а в удобстве. Большая часть разметок создана хаотично, люди явно не везде тщательно задумывались об удобстве. А у нас еще и специфика двуязычной клавиатуры накладывается.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AM>>Для markdown есть несколько расширений. Плюс никто не мешает написать свой. AVK>Ну а если писать свой, то тогда в чем вопрос?
Имел в виду — "своё". Расширение. А основную базу оставить от markdown.
По поводу популярности: "Sites such as GitHub, reddit, Diaspora, Stack Exchange, OpenStreetMap, and SourceForge use variants of Markdown to facilitate discussion between users"
Тут, конечно, дело вкуса и свободного времени, если есть возможность, то создавайте и обкатывайте — "больше языков хороших и разных".
Здравствуйте, A-Myth, Вы писали:
AM>Имел в виду — "своё". Расширение. А основную базу оставить от markdown.
База в обсуждаемом проекте от markdown с creole и оставлена, по возможности. Ты почитай топик то, там с markdown все и начиналось.
AM>По поводу популярности: "Sites such as GitHub, reddit, Diaspora, Stack Exchange, OpenStreetMap, and SourceForge use variants of Markdown to facilitate discussion between users"
Ну вот и у нас будет variant of Markdown.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Как я понял, оттенок цитат — это первый шаг. Но что-то неочень градиент, 1-2 уровня цитаты контрастные, а некоторые сливаются (у меня). Девочку бы посадить, настроить, с 5+ разными мониторами...
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Ops, Вы писали:
Ops>Как я понял, оттенок цитат — это первый шаг.
Нет. Это просто 100 лет висевшая микрозадачка, которую несложно было сделать. В янусе практически с самого начала реализовано в редакторе.
Ops>Но что-то неочень градиент, 1-2 уровня цитаты контрастные, а некоторые сливаются (у меня).
А остальные не очень и важно. Их, по хорошему, вообще не должно быть, удалять надо.
Ops> Девочку бы посадить, настроить, с 5+ разными мониторами...
Девочку это мы завсегда за
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
Ops>> Девочку бы посадить, настроить, с 5+ разными мониторами... AVK>Девочку это мы завсегда за
Если столько разных мониторов есть — могу жену попросить, она с цветами неплохо разбирается (именно поэтому девочку). Но без этих ваших грязных намеков.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Казалось бы, инициатива достойна всяческих похвал. Однако, сам Джон Грубер несколько возмущён, что посторонние люди называют очередную реализацию синтаксиса «стандартной». Существует более двух десятков реализаций синтаксиса, и почему 25-тая вдруг должна называться «стандартной» с самого начала?
Здравствуйте, AndrewVK, Вы писали:
AVK>Выделяется символами ** с обеих сторон. При этом слева от открывающей ** должен быть пробел или начало строки, а справа не пробел и не конец строки. Для закрывающей, соответственно, не пробел и не начало строки слева, и пробел или конец строки справа.
Как насчет такого:
Глагол run — это неправильный глагол. Важно знать его формы наизусть.
формы глагола run
1 форма глагола run — r**u**n (первая форма это и есть сам глагол)
2 форма глагола run — r//a//n
3 форма глагола run — r**u**n
Пробельный символ это символ: Unicode символ CharacterTabulation
Unicode символ LineTabulation
Unicode символ FormFeed
Unicode символ ZeroWidthNoBreakSpace
Символ с unicode классом Zs
Разметка делится на две уровня. Разметка уровня документа и разметка содержимого.
К разметке уровня документа относятся: Заголовки.
Списки.
Цитаты сообщений.
Блоковые цитаты (Blockquote).
Таблицы.
Горизонтальный разделитель (вертикальная черта, hr).
Сообщение модератора или системы.
Теглайны.
Параграфы.
К разметке содержимого относится: Стили: жирный, курсив, подчеркнутый, зачеркнутый, верхний и нижний индексы.
Ссылки.
Картинки.
Смайлики.
Код.
Разметка уровня документа
Заголовки
= Уровень 1
== Уровень 2
=== Уровень 3
==== Уровень 4
===== Уровень 5
====== Уровень 6
Начало строки — начало параграфа. Конец строки — соответственно конец. Пустые строки между параграфами игнорируются. Если параграф начинается с пробелов или табуляций — они убираются, а вместо этого в параграфе фиксируется количество отступов. За один отступ считается одна табуляция или два пробела. Нечетное количество пробелов округляется до четного в меньшую сторону.
Строка цитаты имеет следующий формат:
* Префикс из символов, цифр и знака подчеркивания, без пробелов, длиной от 0 до 6 символов.
* Произвольное количество символов >. Количество символов определяет уровень вложенности.
* Произвольный текст до конца строки.
A>> O La La
Bb> One Two
Выходной HTML
<span class='quota level2'><span class='quota-prefix'>A>></span>O La La</span>
<span class='quota level1'><span class='quota-prefix'>Bb>></span>O La La</span>
Списки
Ненумерованный список
Элемент списка — строка, начинающаяся с одного или нескольких символов * (в зависимости от уровня вложенности) и следующего за ним пробела.
Нумерованные и ненумерованные списки могут быть смешаны между собой на разных уровнях. Нумерованные и ненумерованные списки на одном уровне трактуются как два разных списка.
Свернутый блок
Начинается с символов +++ в начале строки и следующего за этими символами названия блока. Завершается строкой из символов +++.
+++ Много текста
Текст текст текст текст.
+++
Выходной HTML
<div class='collapsible'>
<div class='title'>Много текста</div>
<div class='content'>
Текст текст текст текст.
</div>
</div>
Блочная цитата
Начинается с тройного символа " и им же заканчивается.
"""
Один классик сказал …
"""
Перед открывающими кавычками можно указать символ +. Это будет означать, что цитата будет по умолчанию свернута в строку "Цитата".
Строка, состоящая только из трех символов ---
Выходной HTML:
<hr/>
Сообщение модератора или системы
Заключается в скобки из тройных символов !!!
Теглайн
Строка, начинающаяся с трех символов @@@, следующиего за ними одного или нескольких пробелов и произвольным текстом далее до конца строки.
@@@Janus v1.2.1
Выходной HTML:
<div class='tagline'>Janus v1.2.1</div>
Объекты
Предназначены для вставки внешних по отношению к форматтеру объектов. Должно присутствовать уникальное имя объекта, а в теле тега значение параметров в JSON формате.
Общее правило для стилей текста: Открывающая конструкция должна заканчиваться не пробельным символом;
Перед закрывающей конструкцией должен стоять не пробельный символ;
имя изображения может быть пустым. В этом случае в качестве текста используется последний сегмент пути url (имя файла). Если впереди стоит знак + — изображение по умолчанию свернуто.
Выходной HTML
Имеют формат :smileid:, где smileid — строка от 1 до 5 символов английского или русского алфавита без пробелов и знаков препинания. Для каждого smileid должны быть два синонима — в русской и английской раскладке.
Код
Внутри кода игнорируется вся разметка, за исключением выделения. Внутри кода так же допускается использование {{{ и }}}. Признак конца кода определяется парсером по парности фигурных скобок.
Кусок текста, окруженный тройными скобками {{{ и }}} распознается как код. Опционально между второй и третьей открывающей скобкой можно указать название языка.
Текст {{ruby{if (x == 0) return;}}} текст
Выходной HTML:
Текст <span class='code'>if (x == 0) return;</span> текст
Если перед и или за блоком кода не идет ничего кроме пробельных символов или конца строки, такой блок форматируется как блочный.
Перед открывающими скобками можно указать символ +. Это будет означать, что блок кода будет по умолчанию свернут в строку.
Выделение в коде
Выделить можно либо строку целиком, либо конкретный участок кода. Выделенная строка начинается с символов >>> и следующего на ними пробельного символа. Выделенный участок кода должен быть расположен на одной строке и обрамляется символами >>> и <<< слева и справа. Расположение этих символов относительно слов соответствует правилам для выделения жирным.
if (x == 0)
>>> Foo();
else
x = >>>GetX()<<<;
Экранирование
Для экранирования служебного символа можно применять символ экранирования \. Действует только для следующих символов — "\_*+-/!|><@{(:#№[". Все остальные комбинации трактуются как просто текст.
Автозамены
Некоторые комбинации символов заменяются:
* ... (три точки) на … (троеточие)
* --, окруженный пробелами на — (длинное тире)
const string rmdStringSource = "**hello**";
const string rbbStringSource = "[-b]hello[/-b]";
var rmdLexer = new RsdnMarkdownLexer();
var rbbLexer = new RsdnBbCodeLexer();
var rmdTree = Parser.Parse(rmdLexer, rmdStringSource);
var rbbTree = Parser.Parse(rbbLexer, rbbStringSource);
Здравствуйте, AndrewVK, Вы писали:
Ops>>Как я понял, оттенок цитат — это первый шаг.
AVK>Нет. Это просто 100 лет висевшая микрозадачка, которую несложно было сделать. В янусе практически с самого начала реализовано в редакторе.