суббота, 20 августа 2011 г.

Подсветка синтаксиса

Подсветка синтаксиса – это то, без чего нам теперь уже не обойтись и мы, конечно, благодарны средам разработки, которые одарили нас этим чудом. Но как экспортировать эти чудеса в html для интернетов? Есть несколько способов:
  1. Воспользоваться самой IDE. Так вы получите подсветку в стиле, привычном для вас и, возможно, ваших коллег (или соучастников сообщества, в которое вы обратились),  Например, JetBrains Pycharm (а также NetBeans) предлагает удобную подсветку синтаксиса с возможностью выбрать кусок текста, который надо подсветить.

    Минус: стили подсветки не инлайнятся и в код вашего сообщения, если вы куда-то этот код отправляете, необходимо вставлять также и блок со стилем. Это не всегда удобно (например, мне сейчас пришлось так сделать).
    def setUp(self): 
            self.group = TestGroup() 
            self.moderation_rules = ModerationRule.get_many(data_getter=lambda x: moderation_rules)
    
    
  2. Использовать редактор VIM.
    Не все знают, что в vim есть поддержка экспорта в HTML. Для этого существует команда :TOhtml, которая генерирует html-код в стиле vim и выводит его в отдельном "окне", что позволяет его сохранить (:w).
      Плюсы:
    • Имеется почти на каждом компьютере с unix-подобной ОС.
    • VIM такой VIM. Все-таки vim - это круто. Когда вы его используете, вы как бы соприкасаетесь с историей (жаль, это нужно далеко не всегда).
      Минусы:
    • Вам в 80% случаях придется не по вкусу то, что он нагенерировал (или вы собираетесь вставить код на какой-нибудь черный фон?).
    • Непонятно, как изменить цветовую схему того, что он выдает.

  3. Использовать сервис в интернете для подсветки синтаксиса. Например, tohtml.com (а вообще их более 9000). Это, наверное, самый оптимальный вариант, так как код, изготовляемый сервисом, уже готов для вставки в различные формы на форумах, блогах итд.
      Плюсы:
    • Код здесь получается довольно приятным по цвету и все стили - инлайнятся, поэтому не нужно вставлять никаких дополнительных блоков
    • Поддерживается множество языков программирования, а также множество вариантов расцветки.
    • Не нужно иметь IDE под рукой - сервис работает достаточно быстро и, разумеется, везде, где есть интернет.
      Минусы:
    • Возможно, вам покажется непривычной расцветка кода, которую вам предложит сервис
    * более удобные реализации данной фичи есть, например, в редакторе kate (но это потребует кучу библиотек для KDE).