Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 12 лет назад, По-русски

Так как почти каждый член сообщества Codeforces умеет программировать, мы решили отказаться от wysiwyg редактора HTML и внедрить более программистский способ разметки текста. Конечно, технические тексты станет набирать значительно удобнее, а тексты будут выглядеть единообразнее.

Теперь мы используем вариант Markdown в качестве языка разметки для публикации постов в блог и комментариев (позже будет в личных сообщениях и, вообще, всюду). Так как мы используем дополнительные расширения, то разметку мы называем просто Codeforces Markup. Расширения Codeforces можно подглядеть в редакторе, описание остальных я опубликую здесь чуть позже. В Codeforces Markup менее навороченный синтаксис спец. тегов — двойные квадратные скобки заменены на одинарные (например, [problem:11A], [user:Petr], а можно так ~Petr).

Кроме того, улучшена типографика постов и комментариев.

Посмотреть описание Markdown можно по ссылкам:

Вот короткий список возможностей:

  1. вставка хэндла пользователя (по короткому тегу вида ~tourist);
  2. курсив и жирный текст (*курсив* и **жирный текст**);
  3. код внутри строки — return a == 0 ? b : gcd(b % a, a); (поместите код между символами `);
  4. ненумерованные, нумерованные и вложенные списки;
  5. заголовки;
  6. автозамена дефисов на тире (эвристика);
  7. автовставка ссылки по адресу, пример: http://codeforces.com/;
  8. таблицы и изображения;
  9. подсветка кода;
  10. "умная" расстановка кавычек;
  11. абзацы разделяются пустой строкой, переводы строк игнорируются;
  12. спец. теги Codeforces;
  13. значительно улучшено распознавание формул, можно писать "с вас $2";
  14. и многое другое!

Несколько примеров использования тегов Codeforces:

исходный код результат
~Ripatti - Лучший автор задач 2011 - Ripatti — Лучший автор задач 2011
[user:tourist] - лидер рейтинга tourist — лидер рейтинга
[problem:125E] - задача на графы, решите [problem:125E,ее] 125E - Компания MST — задача на графы, решите ее
результаты [contest:125] доступны по [standings:125,ссылке] результаты Codeforces Testing Round 2 доступны по ссылке
решение [problem:125E] - [submission:912139] решение 125E - Компания MST912139
[photoalbum:PicasaPublicAlbumURL] симпатично вставляет фотографии из альбома

Напоминаю, что на Codeforces реализован предпросмотр, так что не надо сумасшедших экспериментов по изучению Markdown в комментариях :)

MikeMirzayanov

  • Проголосовать: нравится
  • +97
  • Проголосовать: не нравится

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
12 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится
#include <stdio.h>
int main() {
    printf("Hello wolrd!\n");
    return 0;
}
  • »
    »
    12 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    как? у меня получилось только так

    #include <stdio.h>
    
    int main() {
        printf("Hello wolrd!\n");
        return 0;
    }
    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 9   Проголосовать: нравится +5 Проголосовать: не нравится

      Мда, очень не хватает предпросмотра при редактировании ;)

      Во, окружение пятью тильдами работает:

      for (int i = 0; i < 10; ++i)
          cout << "blablabla\n";
      
      • »
        »
        »
        »
        12 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

        кстати, смотрю на свой пост и переключаю правки — после переключения код в одно строчку влепился вот так: "как? у меня получилось только так #include int main() { printf("Hello wolrd!\n"); return 0; } "

        upd. а за что минусовать? багрепорт не достоен минуса. он должен быть рассмотрен! не верите — могу скрин прикрепить

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
          Rev. 7   Проголосовать: нравится 0 Проголосовать: не нравится

          #include <cstdio>

          ~~~~~#include ~~~~~

          странно, но не получилось окружение 5ю тильдами

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится +8 Проголосовать: не нравится

Вот и первый баг обнаружился. Сделал списочек правкой ниже, и при нажатии “предпросмотр”, комментарий с код превращается вот в такое: ![Баг](http://s2.ipicture.ru/uploads/20120128/2jTfwwuD.jpg "")

Причем кол-во букв a. зависит от кол-ва нажатий кнопки :) Но при финальном просмотре все нормально.

»
12 лет назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится

I think it's more convinient if the links in post and comment will be opened in "new tab" — for most popular browser (IE, Firefox, Opera) supported tab-browser now.

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

О, наконец поймал скриншот бага, который регулярно возникал после последнего обновления. Русский интерфейс: Баг
Обратите внимание, что показывается 3 комментария, а счётчик говорит о четырёх. Плюс, по новомодному редактору, только обнаружил. При вставке картинки предлагается ввести Alt, Href и некий Title. Причём Alt прописывается в теге, а вот Title куда-то исчезает — в html-коде от него нет и следа.

UPD: В частности сейчас счётчик тоже врёт на один.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Был удален неинформативный матный комментарий. Для вставки картинок сейчас упрощу настройки.

»
12 лет назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится

Простите конечно, но я не понимаю как писать код с переводами строк и табуляцией, у меня это не выходит. Также я не могу переключиться к HTML (opera 11.61). Так задумано, что теперь мои комментарии будут полным гавном без переводов строк, и с кривым кодом в одну строчку, или это еще баги бегают?

  • »
    »
    12 лет назад, # ^ |
    Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

    Перевод строки — <br />
    Табуляцию — ручками с помощью &nbsp; один символ — один неразрывный пробел.

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 5   Проголосовать: нравится +6 Проголосовать: не нравится

      То ли я дурак, то ли лыжы не едут. Михаил, если вы можете посмотреть историю правок, очень рекомендую сделать это, ибо чушь какая-то у меня получается. При нажатии “редактироватать” вообще невесть что вылезло.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Да, были проблемы с редактированием комментариев. Вроде сейчас все исправлено.

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Используйте выделение кодом, например <br/> или &nbsp;. Хотя вроде в традициях markup форсировать перевод строки двумя висячими пробелами:

      первая строка<space><space>
      вторая строка
      • »
        »
        »
        »
        12 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +24 Проголосовать: не нравится

        В этом коменте(вашем) как и других принципе если переходить вперёд по правкам то рамка пропадает. И приходиться обновлять страницу чтобы вернуть начальный вид.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    При наборе текстов пользоваться переводами строк дурной тон. Текст должен состоять из абзацев. Прочтите документацию, абзацы разделяются очень удобно — одной или более пустой строкой. Перевод можно вставить насильственно (см. документацию по markdown), но обычно это не нужно. Табуляции в тексте это вообще что-то странное, зачем они нужны?

    Конечно, в режиме вставки кода переводы строк будут сохранены.

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Об этом уже много раз говорили, я скажу еще раз: уберите, пожалуйста бесконечную переадресацию при log out'е с некоторых страниц сайта.

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

А так и задумано, чтобы входные и выходные данные были коричневого цвета?
Например: 145E - Счастливые запросы

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

Не знаю, связано ли это с нововведениями, но при большом количестве ветвлений счетчик плюсов залезает на надпись Ответить. Вот скрин:

Может быть картинка слишком маленькая, вот ссылка на большее изображение

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    Это у вас монитор маленький сильно.

    А вообще так и раньше было, по-моему.

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Раньше кнопка "ответить" была внизу поста, если мне не изменяет память.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        А, точно.

        В общем, я имел в виду то, что голосовалка и раньше наезжала на левую верхнюю часть комментария.

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Исправили, теперь голосовалка не заезжает на "Ответить". Теперь "Ответить" заезжает на Правку, если она есть.

»
12 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится

мне кажется, что цвет фона ссылки, на которую наведён курсор, стоит сменить на менее вырвиглазный. более мягких тонов, что ли.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +18 Проголосовать: не нравится

    ...или просто убрать и сделать традиционное подчеркивание при наведении.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Вопрос вкуса. Лично мне нравится и так.

»
12 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Даешь замену ссылок на CF на внутренние (без домена), бесит слет авотризации/переход на другой язык

»
12 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

Не знаю баг ли, но если походить по правкам сначала в 3 а потом обратно в 4, то будет какая-то хрень.

Вот тут(последний коммент)

»
12 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

Было бы очень клёво, если бы добавили возможность писать полноценные формулы на языке LaTeX. Рендерить их можно было бы, например, при помощи MathJax.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Типа этого:

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Ух ты, клёво, но я нигде не могу найти, как это сделать. Ну и лично я бы предпочёл всё-таки рендер на клиенте (дабы формулы можно было выделять и они правильно растягивались), но это так, мелкие придирки.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Как и обычно — надо выставить знаки доллара вокруг формулы

»
12 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

http://codeforces.com/problemset/problem/64/B is no longer displaying for me

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится +15 Проголосовать: не нравится

Хочу видеть все комментарии.

Сделайте так, чтобы можно было автоматически не скрывать комментарии с отрицательным рейтингом.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    и вообще, зачем было введено это: скрывать коммент с очень низким рейтом?

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится

      вот-вот, тоже очень не нравится это нововведение. похоже на очередной акт против инакомыслия

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится -8 Проголосовать: не нравится

        Та ещё тупистика. Надо бы хоть как на хабре делать его светлее, но с возможностью, ёлки-палки, прочтения.

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Ну, возможность прочтения таки есть. Там надо кликнуть на "здесь".

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 4   Проголосовать: нравится +6 Проголосовать: не нравится

      очередная попытка решения 12 проблемы

      Но 12 проблема — такая 12 проблема...

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +16 Проголосовать: не нравится

        А по мне вполне успешное решение проблемы, теперь ваши комментарии стали нечитаемыми:

        Уважаемая администрация, если вы копируете систему скрытия комментариев с хабра, то копируйте её полностью, очень неудобно.

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          "Уважаемая администрация, если вы копируете систему скрытия комментариев с хабра, то копируйте её полностью, очень неудобно."
          Копируйте её полностью

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Да, сделать бы опцию "не скрывать комментарии с низким рейтингом", а то из оперы мини, чтобы прогрузить один коммент нужно прогрузить всю страницу.

»
12 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

кнопку "ответить" перенесли в верхушку каждого сообщения, так теперь может быть добавить "ответить на тему" в внизу страницы?

»
12 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

Может можно исправить вот такой момент как-нибудь?

Чтобы попасть на кнопку "Ответить" надо очень сильно постараться...

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    если ветку продлить, то будет еще на голосовалку залазить...

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

I don't like that all code is now red without highlighting the keywords...

Prettyprint was better I think.

UPD: it seems that it's working in comments, but not in blogs, formatting was discussed here

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

не знаю даже куда написать, напишу сюда: бага с просмотром новых комментариев когда переходишь к след. новому комменту страница заново пролистывается (у yeputons такого нет)

P.S. и еще теперь не "Написать комментарий", а "Write comment", это баг или фича?

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Не понял, что за бага. Напиши подробнее.

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      ну когда жмешь на стрелку вниз, обычно переходит к след комменту (так должно быть), а у меня жмешь стрелку вниз, проматывается вся страница от начала до этого коммента (все равно, врядли понятно)

      у меня Опера (через хром (опять же) все нормально), такое ощущение, что опера какая-то ущербная

»
12 лет назад, # |
  Проголосовать: нравится -7 Проголосовать: не нравится

Don't get the urge to reinvent wheels. bbcode is well tested and universal and known to work in comments including code sites. Random wiki markup comes with such complications. Imagine a problem required me to explain something like: http://pastebin.com/7ybg21rP

If I just type the ascii art here, it will look like this: .. ..**..** ..*.*.

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

После этого изменения все коды на Java стали резать глаз из-за ужасной подсветки. Может я такой один, тогда прошу прощения, но если все-таки нет — не могли бы вы как-нибудь ее поменять, вернуть ту, которая была до этого. Раньше она была эдентична подсветке в Eclipse и это было прекрасно, а теперь она какая-то блеклая и резкая, что вот ни капли не радует глаз. Заранее спасибо.

»
12 лет назад, # |
Rev. 6   Проголосовать: нравится 0 Проголосовать: не нравится

Hi, this is just a minor bug, but it seems like my username R _ R _ can not be inserted correctly (it became R_R_ because of the '_') :(

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Maybe you can use R\_R\_ -> R_R_

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 5   Проголосовать: нравится 0 Проголосовать: не нравится

      I tried, but it does not work :), as you can see below

      [user:R_R_]

      (btw, I meant inserting my username with color, link in the nice given format)

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Несколько комментариев:

  • лучше использовать «такие» кавычки (Вики);
  • перед тире следует ставить неразравный пробел (&nbsp;), за исключением случаев, когда это прямая речь.
»
12 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

А рассматривается ли вариант с добавление спойлеров?

»
11 лет назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится

Когда-то уже спрашивали, спрошу ещё раз: планируется ли добавить поддержку MathJax для формул TeX? Это бы значительно увеличило качество формул, к тому же не надо возиться с собственным TeX-парсером.

Пример работы MathJax можно посмотреть на http://math.stackexchange.com/.

Сейчас с формулами есть целая куча проблем, из-за которых формулы трудно читать. Вот только некоторые:

  • Вместо минуса «−» ставится дефис  - 
  • Выносные формулы (display math) имеют странные вертикальные отступы
  • После очередной выносной формулы первая обычная формула не работает
  • Названия функций типа min и max набираются курсивом, а не прямым начертанием
  • Многое формулы рендерятся как картинки, в результате размытость, несоответствие стилю формул не на картинках, нельзя масштабировать
  • В выносных формулах не используется \displaystyle, в результате имеем вместо
  • Символы операторов и отношений не находятся на уровне строчных букв: a = 1
  • Нельзя набрать десятичную дробь, после запятой вставляется пробел: 1, 5
  • Формулы выравниваются не по базовой линии, а по центру:
  • \pmod не работает
»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

У меня не отображаются картинки в коментариях к данному блогу. (Chrome android)

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Два вопроса:

Как можно сделать "cut"?
Т.е. перенести часть текста поста под ссылку "Полный текст", тег <cut> не помогает.

Какой рекомендуемый способ вставки изображений?
Хостингов, которые хранят "вечно" не знаю. Единственное, что приходит в голову — разместить в своем google-аккаунте и вставить прямую ссылку.

  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Вроде работает [cut] в отдельном параграфе.

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Через [cut] не получилось, пробовал разные комбинации пустых строк до и после тега, вы не могли бы привести пример "кода"?
      Конструкция <!-- more --> тоже не хочет работать.

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        Пример исходного кода http://pastebin.com/Bi9k20RR моего поста http://codeforces.com/blog/entry/9183

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        Я сейчас посмотрел внимательней, где-то год назад работало такое:

        здесь вводный текст
        
        [cut]
         
        ### Здесь новый заголовок

        На строке после [cut] зачем-то стоит пробел, наверное, без него было плохо.

      • »
        »
        »
        »
        10 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        Всем спасибо за ответы! Разобрался. Выяснилось, что пробел после [cut] не обязателен. Текст сбивался из-за отсутствия непробельного символа между [cut] и <pre>

        Не работает:

        Статистика по [contest:371]:
        [cut]
        
        <pre>
        

        Работает:

        Статистика по [contest:371]
        [cut]
        :
        
        <pre>
        
»
7 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Can anyone teach me how to upload an image in comments?

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

На подскажите как вставлять знак доллара сам по себе?

А то, например, в этом комментарии (в первой его редакции) два долларовых знака интерпретируются как формула, не смотря на пустую строку между ними.

Видел, что это возможно, но не знаю как посмотреть исходный markup. (Это вроде возможно только после того, как в исходный текст вносятся правки?)

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    $x$

    &#36;x&#36;

    • »
      »
      »
      7 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Спасибо.

      Кстати, внутри backticks не срабатывает: &#36;

      Для этого случая можно вместо backticks использовать <code>&#36;</code>

      $

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

How to write a code in a comment?

»
6 лет назад, # |
  Проголосовать: нравится -18 Проголосовать: не нравится

How to write a code in a comment?

»
18 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
12 месяцев назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

hii