GitHub открыла Linguist — библиотеку для определения языка программирования

Опубликовано: 6 июля 2011 г., среда

 

Разработчики популярного сервиса GitHub опубликовали исходный код одного из собственных инструментов — библиотеки Linguist (на Ruby), используемой для определения языка программирования, на котором написан публикуемый на хостинге файл.

В первую очередь Linguist учитывает расширение файла — это позволяет определить язык программирования в большинстве случаев. Если не помогает, то проверяется наличие так называемого «shebang» (последовательность символов «#!», принятая для последующего указания интерпретатора, которому передается контент скрипта). Кроме того, изучается и непосредственно содержимое файлов, где по различным популярным ключевым фразам осуществляется окончательная попытка определить используемый язык программирования.

Этим функции библиотеки Linguist не ограничиваются. В ней реализованы и некоторые другие возможности, которые нашли свое применение на GitHub:

  • подсветка синтаксиса, реализованная с помощью своей обертки Albino над Pygments;
  • определение типа MIME: большая часть работы осуществляется стандартной mime–types gem из Ruby, но авторы сделали несколько добавок и надстроек;
  • статистический модуль, с помощью которого строится Language Graph на GitHub (составляет список используемых в проекте языков программирования и их популярность) и общий рейтинг Top Languages.

Исходный код библиотеки Linguist распространяется под Open Source–лицензией MIT и доступен, естественно, на самом GitHub.

Источник: GitHub, h-online.com, nixp.ru
Копировать, распространять, публиковать информацию портала News.lt без письменного согласия редакции запрещено.

Комментарии Facebook

Новый комментарий


Captcha

Google официально представила операционную систему Android O

Компания Google официально представила на конференций I/O новую операционную систему Android O, подробно рассказав о возможностях главного конкурента программной платформы Apple. дальше »

Истёк срок действия патентов на MP3

В конце апреля истёк срок действия последнего патента (US6009399A), затрагивающего формат цифрового кодирования звука MP3. дальше »

Red Hat в третий раз наградила выдающихся женщин в мире Open Source

Компания Red Hat на своём саммите в Бостоне объявила обладательниц ежегодной премии 2017 Women in Open Source Awards. дальше »

Статистика операционных систем и браузеров за апрель 2017

11 апреля Microsoft начала распространять обновление системы Windows 10 Creators Update, что ожидаемо привело к увеличению её доли рынка. дальше »

Xiaomi Redmi Note 4X получил MIUI 8 на базе Android 7.0 Nougat

Как известно, смартфоны Xiaomi предлагаются покупателям с предустановленной фирменной прошивкой MIUI, созданной на основе мобильной операционной системы Android. дальше »

Android разработчики могут подгонять приложения под разные экраны

Компании Samsung и LG выпустили смартфоны с нестандартным соотношением сторон. Так, LG G6 использует экран 18:9, а Samsung Galaxy S8 имеет соотношение 18,5:9. дальше »

Facebook представила Canvas API

Социальная сеть Facebook объявила о запуске Canvas API - полноэкранного мобильного приложения, которое позволяет компаниям и авторам рассказывать в родной среде после клика (post-click environment) о темах, предназначенных для взаимодействия со зрителями. дальше »

Началось распространение версии Android 7.1.2 Nougat

Компания Google запустила обновление операционной системы Android 7.1.2 Nougat в своей финальной версии. Об этом стали сообщать многочисленные пользователи, не участвовавшие в бета-программе. дальше »

Apple неожиданно выпустила обновление iOS 10.3.1

Компания Apple выпустила обновление своей мобильной платформы — iOS 10.3.1 спустя лишь неделю после довольно крупного релиза iOS 10.3. дальше »