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

Состоялся выпуск мобильной платформы Android 8.1

Компания Google опубликовала релиз открытой мобильной платформы Android - Android 8.1. дальше »

Open Android Alliance: альтернативный альянс разработчиков Android

Open Source-энтузиасты создали новый альянс Open Android Alliance, который нацелился на разработку полностью открытой версии мобильной Linux/Java-платформы Android. дальше »

Вышла финальная версия iOS 11.2 для iPhone и iPad (1)

Со 2 декабря пользователям iPhone и iPad стал доступен финальный релиз прошивки. Общедоступная версия iOS 11.2 несет в себе целый ряд изменений, в том числе появление функции Apple Pay Cash для совершения денежных переводов, а также ускоренную идентификацию посредством Face ID. дальше »

Полный возврат Мюнхена с Linux на Windows обойдётся почти в 50 млн евро

Самый долгий проект по миграции городской администрации с операционной системы Windows на свободные продукты во главе с GNU/Linux — LiMux в Мюнхене (Германия) — уже «развернули» ранее в этом году. дальше »

Вышла мобильная ОС Sailfish 2.1.3

Компания Jolla, основанная бывшими сотрудниками Nokia с целью разработки новых смартфонов, построенных на базе Linux-платформы MeeGo, опубликовала релиз операционной системы Sailfish 2.1.3. дальше »

Выпущена финальная версия iOS 11.1 для iPhone и iPad

1 ноября владельцам мобильных устройств Apple стало доступно первое значительное обновление платформы iOS 11. дальше »

Apple выпустила iOS 11.0.3 для iPhone и iPad

Компания Apple выпустила iOS 11.0.3 для iPhone и iPad. Это уже третье обновление системы за месяц с момента выпуска. дальше »

Linux Foundation представил первый выпуск платформы для интернета вещей EdgeX

Организация Linux Foundation представила первый значительный релиз проекта EdgeX Foundry, развивающего открытую платформу для упрощения создания решений на базе IoT-устройств. дальше »

Компания Oracle выпустила Java SE 9 и Java EE 8

После трёх с половиной лет разработки компания Oracle выпустила платформу Java SE 9 (Java Platform, Standard Edition 9), в качестве эталонной реализации которой используется открытый проект OpenJDK. дальше »

Стартовал проект Gitcoin, предлагающий выплаты в криптовалюте за разработку для Open Source-проектов

Недавно состоялся запуск инициативы Gitcoin по решению проблемы недостаточной мотивированности разработчиков вовлекаться в улучшение свободного программного обеспечения. дальше »