CodeColorer – плагин для вставки форматированного кода в записи


Если в  запи­сях вы при­во­ди­те при­ме­ры про­грамм­ных кодов, то зна­чит вы уже позна­ко­ми­лись с про­бле­мой отоб­ра­же­ния тако­го кон­тен­та. Все дело в том, что WordPress при выво­де стра­ни­цы с запи­сью иска­жа­ет неко­то­рый код, пре­об­ра­зуя HTML-код в его сущ­но­сти. Таким обра­зом про­грамм­ный код ста­но­вит­ся нечи­та­е­мым, а если попро­бо­вать его ско­пи­ро­вать и вста­вить в какой-нибудь про­ект, то он будет еще и нера­бо­чим. И это поло­же­ние не исправ­ля­ет даже спе­ци­аль­ная раз­мет­ка с помо­щью эле­мен­та pre, кото­рую, каза­лось бы, при­ду­ма­ли спе­ци­аль­но для таких слу­ча­ев. Выхо­да тут может быть два: либо встав­лять про­грамм­ный код, пред­ва­ри­тель­но пре­об­ра­зо­вав его в сим­воль­ное обо­зна­че­ние, либо исполь­зо­вать допол­ни­тель­ные пла­ги­ны и скрип­ты. Пре­об­ра­зо­вать код перед пуб­ли­ка­ци­ей мож­но срав­ни­тель­но лег­ко, вос­поль­зо­вав­шись, напри­мер, онлай­но­вым сер­ви­сом-пере­ко­ди­ров­щи­ком, одна­ко полу­чив­ший­ся код ста­но­вит­ся для вас в даль­ней­шем неудо­бо­чи­та­е­мым – если вы в после­ду­ю­щем захо­ти­те отре­дак­ти­ро­вать запись, то код в тек­сте поста будет труд­но чита­е­мым. Поэто­му опти­маль­ным реше­ни­ем явля­ет­ся исполь­зо­ва­ние допол­ни­тель­но­го пла­ги­на, рас­по­зна­ю­ще­го и фор­ма­ти­ру­ю­ще­го про­грамм­ный код, встав­лен­ный в текст запи­си. Таки пла­ги­ном явля­ет­ся [text]CodeColorer[/text].

Thank you for reading this post, don't forget to subscribe!

Пла­гин для фор­ма­ти­ро­ва­ние про­грамм­но­го кода исполь­зу­ет рас­про­стра­нен­ную биб­лио­те­ку GeSHi, кото­рая под­дер­жи­ва­ет боль­шое коли­че­ство язы­ков про­грам­ми­ро­ва­ния и раз­ме­ток. Пла­гин [text]CodeColorer[/text] предо­став­ля­ет мно­же­ство свойств, дела­ю­щих чте­ние про­грамм­но­го кода удобным:

  • защи­ща­ет код от иска­же­ний в WordPress – все сим­во­лы будут выгля­деть не так, как это­го хочет дви­жок, а имен­но так, как вы их ввели;
  • встав­ля­ет фор­ма­ти­ро­ван­ный код в RSS;
  • поз­во­ля­ет исполь­зо­вать фор­ма­ти­ро­ван­ный код внут­ри тек­ста, не пре­ры­вая его (строч­ный код);
  • под­све­чи­ва­ет код в комментариях;
  • авто­ма­ти­че­ски встав­ля­ет ссыл­ки на документацию;
  • авто­ма­ти­че­ски нуме­ру­ет строчки;
  • выде­ля­ет фоно­вым цве­том про­из­воль­ные строч­ки кода;
  • под­све­чи­ва­ет син­так­сис раз­ных язы­ков и разметок;
  • поз­во­ля­ет настро­ить раз­мер бло­ка с кодом;
  • име­ет несколь­ко пред­уста­нов­лен­ных цве­то­вых схем, поз­во­ля­ю­щих гар­мо­нич­но впи­сы­вать про­грамм­ный код в общее оформ­ле­ние блога.

Встав­ка кода в запись про­ис­хо­дит с помо­щью шорткода:

Пара­метр lang ука­зы­ва­ет на язык про­грам­ми­ро­ва­ния, исполь­зу­е­мый в коде. В каче­стве lang вы може­те исполь­зо­вать: abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp-qt, cpp, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml, oobas, oracle11, oracle8, pascal, per, perl, php-brief, php, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, yaml, z80.

Пла­гин [text]CodeColorer[/text] име­ет раз­дел настро­ек, в кото­ром мож­но уста­но­вить все пара­мет­ры фор­ма­ти­ро­ва­ния, исполь­зу­е­мые по-умолчанию.

 

Если же вам нуж­но вста­вить код с оформ­ле­ни­ем, отли­ча­ю­щим­ся от стан­дарт­но­го, то это мож­но сде­лать с помо­щью допол­ни­тель­ных пара­мет­ров шорткода.

Пара­мет­ры:

  • lang – язык при­ме­ра кода
  • tab_size – сколь­ко про­бе­лов исполь­зо­вать для пред­став­ле­ния сим­во­ла табуляции
  • line_numbers – когда true, будут добав­ле­ны номе­ра строк
  • first_line – номер пер­вой стро­ки в блоке
  • highlight – номе­ра строк для выде­ле­ния, раз­де­лен­ные запя­той (напри­мер, 1,5,8,9)
  • no_links – когда false, клю­че­вые сло­ва будут пред­став­ле­ны в виде ссы­лок на руководство
  • lines – сколь­ко строк в бло­ке отоб­ра­жа­ют­ся без появ­ле­ния скролл­ба­ра; может рав­нять­ся -1 – в этом слу­чае вер­ти­каль­ной поло­сы про­крут­ки не будет вообще
  • width – шири­на бло­ка кода
  • height – высо­та бло­ка кода в пик­се­лях; исполь­зу­ет­ся, если код содер­жит боль­ше, чем lines строк
  • rss_width – шири­на бло­ка кода в RSS лентах
  • theme – цве­то­вая схе­ма (default, blackboard, dawn, mac-classic, twitlight, vibrant)
  • inline ( буле­во ) – когда true, блок кода будет отоб­ра­жен в теге, исполь­зу­ет­ся для встав­ки одно­строч­ных кус­ков кода в обыч­ный текст
  • strict – когда true, будет вклю­чен “стро­гий” режим под­свет­ки. По умол­ча­нию CodeColorer пыта­ет­ся уга­дать, исполь­зо­вать этот режим или нет, а опция поз­во­ля­ет при­ну­ди­тель­но вклю­чить или выклю­чить его, если пред­по­ло­же­ние было сде­ла­но неверно
  • nowrap – когда false, гори­зон­таль­ная поло­са про­крут­ки не будут отоб­ра­жать­ся. Вме­сто это­го стро­ка кода будет раз­би­та на две на гра­ни­це блока
  • noborder – когда true, рам­ка вокруг бло­ка кода не будет отображаться
  • class – допол­ни­тель­ные клас­сы CSS для обрам­ля­ю­ще­го блок эле­мен­та HTML