Monday, February 14, 2011

GitHub у поміч блогеру

Частенько блогеру, пов’язаному з IT-сферою, доводиться писати коротенькі сценарії, або ж операції, необхідні для досягнення бажаного результату. Зазвичай для подібних речей блогер ставить плагін для підсвітки синтаксису і самотужки вставляє шматки коду між спеціальними тегами. Однак щойно наш робочий скрипт змінився, чи з’їхала нумерація, як тут же всі вставки коду в статті доводиться переробляти наново.

Проте хочеться, щоб це виглядало максимально зручно для кінцевого читача. Однак і робити щоразу дурну роботу ліньки. Або ж хочеться описати деякі важливі моменти, а в кінці статті дати посилання на повністю готовий код. Або, описуючи власні дії покроково, дати користувачеві можливість просто-таки повністю скопіювати всі рядки разом, а не кожен окремо. Мало чого може залізти в голову блогеру.

Проте всі ці (і на разі не лише мої) забаганки можуть здійснитися, якщо використовувати GitHub, і, зокрема, сервіс Gist

Всім відомі сервіси для обміну шматками коду, та іншою текстовою інформацією. Це так звані Pastebin-и. Свою назву вони отримали від одного з родоначальників подібного сервісу під назвою pastebin.com і були призначені для того, щоб не кидати у вікно чату великі шматки коду, результати виконання команд, та ще купу всіляких речей, однак, з яких можна судити про проблему і дати слушну пораду. Ці сервіси дозволяють обмінюватись, вносити зміни, переглядати старі версії файлу, мають підтримку синтаксису та дозволяють модифікувати кільком особам один і той же файл. Більшість спільнот по програмуванню обзавелися власними подібними сервісами, наприклад, hpaste.org — для спільноти програмістів на Хаскелі, snipt.org — для твітерян, існують навіть боти на Perl. Проте вони з самого початку орієнтувались на чат. Це означало, що нам все одно доведеться переходити на іншу сторінку, щоб подивитись на код, а значить, просто не підходить для блогера. І тут з’являється Gist.


Сам сервіс Gist представляє собою класичну реалізацію pastebin-ів на базі git-репозиторіїв. Це значить, що з кожним таким шматком коду можна робити всілякі операції, властиві git-репозиторіям, зокрема, клонувати, зливати(мержити). На додачу це знімає обмеження на один файл, що ще покращує життя. При всьому цьому сервіс продовжує давати анонімний доступ, тобто зберігає всі можливості попередників.

І найзручніша плюшка для блогера — можливість вмонтувати код з підсвіткою синтаксису у власну публікацію та можливість скачування оригінального файлу прямо на місці. Підсвітка синтаксису реалізована за допомогою Pygments, а підключити файл в публікацію можна за допомогою тегу <script>, наприклад:

<script src="http://gist.github.com/324678.js?file=sample.html"></script>
view raw
sample.html
This Gist brought to you by GitHub.


На додачу, є перманентні посилання на кожну ревізію та кожен файл, підтримка історії, скачування всього репозиторію одним архівом. І ще більші можливості очікують на свою реалізацію. Тепер, змінивши файл, Вам не доведеться бігом редагувати його у блозі — все вже давно там.

Свій тест-драйв цих можливостей я вже зробив у попередній статті, і дуже задоволений. Проте є ще кілька речей, які я з нетерпінням очікую, і за які прошу проголосувати всіх, хто має обліковий запис на support.github.com (на жаль, для цього та основного домену облікові записи різні):
Options for gist embedded. Ці пропозиції включають в себе додання можливостей посилатись на вказані шматки коду а також кнопку для копіювання всього коду в буфер обміну.
Make all files embeddable like gists. Реалізація функціональності вмонтування для всіх файлів в стандартних репозиторіях Git. Це дозволить одного дня зробити один репозиторій для коду на весь блог і посилатись на нього. На додачу, коментатори зможуть побродити по всьому репозиторію і поназадавати каверзних питань. Дуже зручно, як на мене.

На цьому й завершу цей коротенький огляд, а для тих, хто хоче власноруч вибрати собі інструмент, даю наступні посилання:
http://en.wikipedia.org/wiki/Pastebin — стаття про розвиток сервісу pastebin і подібних
http://en.wikipedia.org/wiki/Comparison_of_pastebins — їхня порівняльна таблиця

9 comments:

  1. Для своих проектов я использовал Mercurial, который для меня проще и очевиднее чем Git.
    Для остального обычный pastebin, а также иногда удается заставить работать ideone.com (этот сайт даже откомпилировать и запустить может).

    ReplyDelete
  2. да, я тоже бывало сала поем

    ReplyDelete
  3. картинка классная!

    ReplyDelete
  4. Все очень правильно

    ReplyDelete