2.01.06 21:50

WordPress, Инструменты

Для написания статей на этом блоге я пользуюсь синтаксисом Markdown. Это один из альтернативных синтаксисов оформления текстов без использования HTML-тегов. И хотя я всегда считал, что придумывание новых еще более упрощенных синтаксисов для и так несложного HTML'а -- это зло, Markdown мне понравился. Он, пожалуй, самый продуманный из тех, что я видел, и самый ненавязчивый.

Вот вещи, которые мне особенно нравятся:

Вставка кода -- это, пожалуй, самое главное для меня на блоге, который впрямую посвящен примерам HTML-кода :-). И именно поэтому я тут же отказался от WYSIWYG-редактора Wordpress 2.0: в нем для вставки HTML предлагается заменять все угловые скобки на &lt; и &gt;. И хотя сам процесс замены можно автоматизировать, читать это потом и редактировать все равно ужасно муторно. В Markdown же код можно вставлять и редактировать в его первоначальном виде. Он автоматически escape'ится и форматируется в <pre>.

Однако, у Markdown есть и свои недостатки. Особенно мне не нравились такие:

Но оказывается, есть штука, которая решает по крайней мере часть этих проблем -- Markdown Extra. В частности, она позволяет задавать id заголовкам, специально разрешать markdown-синтаксис внутри HTML'а и умеет кодировать <dl>.

Вчера поставил ее и переформатировал свой новогодний пост:

Веб-разработчикам
: Чтобы [IE7][] понимал CSS как остальные браузеры.

Программистам
: Чтобы ваш босс узнал про [agile-методы][] и перестал повторять, 
  что вы "вечно все не успеваете".

Проектировщикам
: Чтобы ваша система на [Rails][] или [Django][] масштабировалась 
  так же хорошо, как прототипируется.

Блогерам
: [<img class="right" src="/blog/wp-content/too-much-spam.png" 
  alt="81% всех комментариев - спам.">][spam] Чтобы вы забыли про 
  спам в комментариях.

Фрилансерам
: Чтобы клиенты косяками несли деньги, услышав от вас "Web 2.0"

И всем-всем-всем -- хорошего нового года!

[IE7]: http://blogs.msdn.com/ie/
[agile-методы]: http://martinfowler.com/articles/newMethodology.html
[Rails]: http://www.rubyonrails.org/
[Django]: http://www.djangoproject.com/
[spam]: http://akismet.com/

Так что всем, у кого технарные блоги -- оченно рекомендую.

Комментарии: 8 (feed)

  1. vilky

    Так это просто диалект вики-разметки.

    Отсутствие id'ов и class'ов в ней - это фича.

  2. Иван Сагалаев

    Какой именно вики-разметки? :-)

    Все эти синтаксисы, конечно, чем-то похожи. Но почему отсутствие id и class'ов -- фича?

  3. vilky

    Потому что это язык публикации, а не создания документов. Идентификаторы могут синтезироваться из эксплицитного (явно существующего) текста.

    То есть,

    ===Заголовок=== есть <h3 id="Заголовок"> Заголовок </h3>

    [[Текст ссылки]] (в простейшем случае) есть <a href="Текст ссылки">Текст ссылки</a>

    То есть вики-разметка - это совсем уже не код, а чистый текст. Ничего, чего бы не было видно в тексте, под ней спрятать нельзя. И испортить страницу, на которой публикуется фрагмент нельзя. И единство внешнего вида обеспечивается.

    Разумеется, вики-разметка бывает разная, но у большинства правил общая база. В самом общем случае, вики-разметка - это расширение набора знаков препинания, причём некоторые из вики-пунктограмм с той же семантикой использовались до появления компьютеров (астериксы для выделения полужирным, подчёркивания для италика, тире для списков и таблиц и т.д.)

  4. Иван Сагалаев

    Вот... А я все пытался это в своем комментарии сформулировать... Дело в том, что markdown -- не язык публикации внутри замкнутой системы документов. Он служит для описания HTML-документов "вообще". Поэтому он не такой агрессивный, как любая wiki-разметка, где генерятся idшки заголовкам и ссылки из CamelCase-слов. То есть, он менее специальный. От того и проще.

  5. memyself

    Увы... Квадратную скобку неудобно при кириллической раскладке набирать. В этом смысле близок к идеалу ваккоформаттер, но и в нём цитирование реализовывается через <[...]>.

  6. dp_wiz

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

  7. TeXHaPb

    А как быть с объединением ячеек в таблицах MarkDown? Я так понял, это невозможно...

  8. Иван Сагалаев

    В исходном Markdown таблиц нет вообще. В Markdown Extra есть, но да, там объединять ячейки нельзя. HTML is your friend :-)

Добавить комментарий

Вы можете подписать комментарий своим OpenID-логином или именем с EMail'ом.

OpenID

Имя и EMail

Текст через пустую строку превращается в отдельные абзацы, цитата отделяется символами > слева, списка состоит из пунктов с дефисом слева, курсив выделяется * с каждой стороны, жирный - двойными **, блоки кода отступают слева на 4 пробела