При написании статьи о выборе плагина для размещения в блоге личного портфолио я невольно пришел к мысли, что не плохо было бы в своих статьях размещать примеры различного кода (PHP, CSS, HTML и т.д.). Для этих целей существует масса плагинов.
Среди которых: SyntaxHighlighter Plus, WP-Syntax, Ion Snytax Highlighter, Raw HTML, CodeColorer, а так же многие другие. Все они по своему хороши до тех пор, пока вы при редактировании статьи не переключитесь в визуальный режим редактирования. Визуальный редактор (по умолчанию на платформе TinyMCE) просто удалит часть кода который вы хотели опубликовать или просто заменит на спец символы. Делает он это не со зла, а в целях безопасности. В итоге, если у вас в статье есть форматированный код вам категорически нельзя переключатся в режим визуального редактора и все время редактирования контента довольствоваться аскетичным HTML видом. Из создавшейся ситациии есть два выхода.
- Сменить ваш WYSIWYG редактор на другой, не использующий в основе TinyMCE. Который будет не менее удобен и к тому же не будет автоматически исправлять HTML теги в спец символы (например, символ < исправится на ‹) и дальше пользоваться любимым плагином для подсветки и форматирования кода.
- Установить плагин WP-SynHighlight который, как «Магомед» — сам идет к визуальному редактору. А именно выводит кнопку на панели, позволяющую оформлять код в визуальном режиме обходя таким образом конфликт интересов.
Может показаться что названый плагин не функционален, но это не так. Среди основных функций можно выделить следующие:
- Подсветка синтаксиса языков (в наборе более 50 языков)
- Возможность выводить номера строк форматированного кода, с настройкой номера первой строки. Возможно вообще отключить нумерацию строк в выводе конкретного кода.
- Возможность задать заголовок для поля в котором выводится код.
- Область с кодом можно свернуть нажатием на заголовок.
- При наведении на какую либо фунцкию в PHP коде дается ссылка на описание этой фунции на сайте php.net
- Возможность плагина по форматированнию кода в комментариях блога (можно отключить по требованию).
Пример форматирования кода с использованием плагина WP-SynHighlight
- <?php
- /*
- Plugin Name: WP-SynHighlight
- Plugin URI: http://www.fractalizer.ru/freeware-projects/wordpress-plugins/wp-synhighlight/
- Description: Syntax highlighting using shortcodes Your code goes here Please see README.txt and screenshots for more information
- Version: 0.961
- Author: Vladislav "FractalizeR" Rastrusny
- Author URI: http://www.fractalizer.ru
- */
-
- /* Copyright 2008 Vladislav "FractalizeR" Rastrusny (email : FractalizeR@yandex.ru)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
- //Registering highlighter
- require_once 'modules/highlighter.php';
- add_shortcode('codesyntax', 'fr_codesyntax_handler');
-
- //Making post-installation routines
- require_once 'modules/on_install.php';
- register_activation_hook(__FILE__, 'wp_synhighlight_on_install');
-
- //Adding styles
- require_once 'modules/styles.php';
- add_action('wp_head', 'wp_synhighlight_head');
-
- //Internationalization
- require_once 'modules/i18n.php';
- wp_synhighlighter_i18n_setup();
-
- //Setting comments processing style
- require_once 'modules/comments.php';
- wp_synhighlighter_comments_setup();
-
- //Loading editor plugin
- require_once 'modules/richeditor.php';
- add_action('init', 'wp_synhighlighter_addbuttons');
- //Adding options page
- add_action('admin_menu', 'wp_synhighlight_settings');
- function wp_synhighlight_settings() {
- add_options_page('WP-SynHighlight Settings', 'WP-SynHighlight', 'activate_plugins',
- }
- ?>
Единственное что возможно придется настраивать вручную – это размер форматированного кода. Может существенное не совпадать с текущим размером остального текста. Исправляется следующим образом:
Открываем файл wp-content/plugins/wp-synhighlight/wp-synhighlighter.css
И добавляем строку font-size:10px;
В примере ниже я задал размер шрифта во второй строке CSS файла.
- div.wp-synhighlighter-inner {
- font-size:10pt;
- height: auto;
- max-height: 300px;
- overflow: auto;
Если есть желание изменяйте остальные параметры как вам угодно, для улучшения внешнего вида форматированного текста. Если вам не нравится подсветка синтаксиса вообще, то при выборе языка поставьте «Text».
Так же рекомендую почитать: