Офис НП AMWAY в Ярославле
→ На карте Офис AMWAY в ЯрославлеПрием и выдача заказов, презентация продукции Амвей, мастер–классы, вопросы по бизнесу Amway:
●Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
●Телефон: +7 (920) 112-00-91
●Email: matyxho@mail.ru
●Сайт: https://www.amway.ru/user/lebedem
●Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » Подключение и настройка SyntaxHighlighter
Сниппет
SyntaxHighlighter- это фреймворк для подсветки синтаксиса на твоем ресурсе. Попробуем разобраться, как его подключить и настроить.
Подключение и настройка SyntaxHighlighter
Подключение и настройка SyntaxHighlighter
Очень много ресурсов, в том числе и весьма популярных, используют данную библиотеку для подсветки кода синтаксиса. Почему же именно ее?
- Действия выполняются на стороне клиента, следовательно, снижается нагрузка на сервер
- Богатый выбор языков программирования для подсветки синтаксиса
- Несколько шаблонов тем, которые можно без труда подстроить под дизайн твоего сайта
- Гибкие настройки (файл shCore.js).
Итак, сначала качаем официальный архив SyntaxHighlighter, распаковываем. В принципе, нам нужны будут только папки scripts и styles.
Подключение
До закрывающего тега < /head > произведем подключение основных и языковых файлов.
Код: HTML
1 2 3 4 5 6 7 | < script type = 'text/javascript' src = 'scripts/shCore.js' ></ script > < script type = 'text/javascript' src = 'scripts/shBrushJScript.js' ></ script > < link type = 'text/css' rel = 'Stylesheet' href = 'styles/shCore.css' /> < link type = 'text/css' rel = 'Stylesheet' href = 'styles/shThemeDefault.css' /> < script type = 'text/javascript' > SyntaxHighlighter.all(); </ script > |
В принципе, подключение уже есть: мы подключили файл настроек, тему по умолчанию (ты можешь выбрать другую), и один из файлов подсветки синтаксиса, а именно- JavaScript. Ты подключи себе те языки, которые будут необходимы, можно подключить все, но тогда страница будет генерироваться чуть дольше. Этого можно избежать, объединив все файлы для подсветки различных языков программирования в один, но об этом- чуть позже.
Динамическая подгрузка необходимых файлов
В данной версии SyntaxHighlighter реализована прекрасная возможность динамической подгрузки необходимых файлов для подсветки различных языков программирования. За это отвечает файл shAutoloader.js. Думаю, грех не воспользоваться столь прекрасным дополнением, как динамическая загрузка. Вот как будет выглядеть теперь наш код подключения:
Код: HTML
1 2 3 4 5 6 7 8 9 10 | < link type = 'text/css' rel = 'Stylesheet' href = 'styles/shCore.css' /> < link type = 'text/css' rel = 'Stylesheet' href = 'styles/shThemeDefault.css' /> < script src = 'scripts/shCore.js' type = 'text/javascript' ></ script > < script src = 'scripts/shAutoloader.js' type = 'text/javascript' ></ script > < script type = 'text/javascript' > SyntaxHighlighter.autoloader( 'js jscript javascript /scripts/shBrushJScript.js', 'applescript /scripts/shBrushAppleScript.js'); SyntaxHighlighter.all(); </ script > |
В данном примере мы подключили два языка. Руководствуясь этим примером, ты сможешь реализовать динамическую загрузку всех необходимых языков для подсветки. Альясы языков программирования ты легко найдешь через тот же гугл, либо на сайте разработчика SyntaxHighlighter.
Вывод кода для подсветки
Собственно, данный пункт- самый короткий. Все, что нам нужно будет подсветить, просто заключаем в тег < pre > с классом brush и альясом языка, подсветку которого необходимо осуществить, вот пример:
Код: HTML
1 | < pre class = 'brush: js' >Здесь контент, который необходимо подсветить</ pre > |
Обьединённые в один файл языки программирования
Однако у себя я сделал немного по-другому: я просто объединил все файлы в один, добавил подключение регистрационного файла (дабы все было по-честному). Скачать архив SyntaxHighlighter MegaLang ты можешь здесь. Вот как в этом случае будет выглядеть подключение:
Код: HTML
1 2 3 4 5 6 7 8 9 | < link type = 'text/css' rel = 'stylesheet' href = 'styles/shCoreEclipse.css' ></ link > < link type = 'text/css' rel = 'stylesheet' href = 'styles/shThemeEclipse.css' ></ link > < script class = 'javascript' src = 'scripts/XRegExp.js' ></ script > < script class = 'javascript' src = 'scripts/shLegacy.js' ></ script > < script class = 'javascript' src = 'scripts/shCore.js' ></ script > < script class = 'javascript' src = 'scripts/shMegaLang.js' ></ script > < script type = 'text/javascript' > SyntaxHighlighter.all(); </ script > |
То есть, за одно подключение мы загрузим сразу все языки. Плюс, в последнем архиве файл shCore.js доступен для редактирования настроек- с ними уж ты сам разбирайся. Как видишь, в последнем примере подключена не дефолтная тема, а Eclipse- здесь уж ты сам выбирай, какая для твоего сайта будет лучше.
Скрываемые блоки
Данная полезность позволяет скрывать блоки с кодом, открывая их по клику. Добавь collapse: true к тегу < pre > или < script >, например, вот так:
Код: HTML
1 | < pre class = 'brush: js; collapse: true' >Здесь контент, который необходимо подсветить и скрыть</ pre > |
В результате появится ссылка, при клике на которую откроется содержимое блока.
Примеры подсветки синтаксиса с помощью SyntaxHighlighter
Ну и в заключении- несколько примеров для наглядности, так сказать.
Пример кода js:
Код: JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | ;( function () { // CommonJS SyntaxHighlighter = SyntaxHighlighter || ( typeof require !== 'undefined' ? require( 'shCore' ).SyntaxHighlighter : null ); function Brush() { var keywords = 'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' + 'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' + 'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' + 'Date Decimal Declare Default Delegate Dim DirectCast Do Double Each ' + 'Else ElseIf End Enum Erase Error Event Exit False Finally For Friend ' + 'Function Get GetType GoSub GoTo Handles If Implements Imports In ' + 'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module ' + 'MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing ' + 'NotInheritable NotOverridable Object On Option Optional Or OrElse ' + 'Overloads Overridable Overrides ParamArray Preserve Private Property ' + 'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume ' + 'Return Select Set Shadows Shared Short Single Static Step Stop String ' + 'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until ' + 'Variant When While With WithEvents WriteOnly Xor' ; this .regexList = [ { regex: / '.*$/gm, css: ' comments ' }, // one line comments { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: ' string ' }, // strings { regex: /^\s*#.*$/gm, css: ' preprocessor ' }, // preprocessor tags like #region and #endregion { regex: new RegExp(this.getKeywords(keywords), ' gm '), css: ' keyword ' } // vb keyword ]; this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags); }; Brush.prototype = new SyntaxHighlighter.Highlighter(); Brush.aliases = [' vb ', ' vbnet ']; SyntaxHighlighter.brushes.Vb = Brush; // CommonJS typeof(exports) != ' undefined' ? exports.Brush = Brush : null ; })(); |
Пример кода css:
Код: CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | body { background-attachment : fixed ; background : #6CA4AC url (images/body-bg.png) repeat-x ; color : #003F66 ; font : 11 px Georgia , Verdana , Tahoma , Arial ,Sans- Serif ; margin : 7 px 0 ; padding : 0 ; } .sf-menu li li { background-color : #62B0BC ; } .sf-menu li li li { background-color : #333 ; } a { text-decoration : none ; color : #1C666E ; } a: hover { text-decoration : none ; color : #200000 ; } a.side { text-decoration : none ; color : #1C666E ; } a: hover .side { text-decoration : none ; color : #200000 ; } .main-container { width : 100 % ; overflow : auto ; } .outer-container { width : 940 px ; margin-left : auto ; margin-right : auto ; } .container { height : 100 % ; color : #200000 ; background : url (images/container.png) repeat-y scroll 0 0 transparent ; padding : 2 px ; } .header { margin : 0 px ; height : 130 px ; color : #2A6E9B ; padding : 5 px ; } .banners { padding : 1 px ; margin : 1 px 10 px 0 10 px ; } .sub-header { font : 12 px / 1.0 em Georgia ; color : #fff ; font-weight : bold ; background-color : #1D7381 ; background-image : URL(images/menu.png); height : 42 px ; background-repeat : repeat-x ; } |
Пример кода Python:
Код: PYTHON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import xmlrpclib class CookieTransport(xmlrpclib.Transport): def __init__( self , SESSION_ID_STRING = 'SAPE' ): xmlrpclib.Transport.__init__( self ) self .mycookies = None self .mysessid = None self .SESSION_ID_STRING = SESSION_ID_STRING def parseCookies( self ,s): if s is None : return { self .SESSION_ID_STRING: None } ret = {} tmp = s.split( ';' ) for t in tmp: coppia = t.split( '=' ) k = coppia[ 0 ].strip() v = coppia[ 1 ].strip() ret[k] = v return ret def request( self , host, handler, request_body, verbose = 0 ): h = self .make_connection(host) if verbose: h.set_debuglevel( 1 ) self .send_request(h, handler, request_body) self .send_host(h, host) if not self .mysessid is None : h.putheader( "Cookie" , "%s=%s" % ( self .SESSION_ID_STRING, self .mysessid) ) self .send_user_agent(h) self .send_content(h, request_body) errcode, errmsg, headers = h.getreply() if self .mysessid is None : self .mycookies = self .parseCookies ( headers.getheader( 'set-cookie' ) ) if self .mycookies.has_key ( self .SESSION_ID_STRING): self .mysessid = self .mycookies [ self .SESSION_ID_STRING] if errcode ! = 200 : raise xmlrpclib.ProtocolError(host + handler, errcode, errmsg, headers) self .verbose = verbose try : sock = h._conn.sock except AttributeError: sock = None return self ._parse_response (h.getfile(), sock) |
Пример кода SQL:
Код: SQL
1 2 3 4 5 | $cat_list_result = dbquery( 'SELECT download_cat_id, download_cat_name FROM ' .DB_DOWNLOAD_CATS. ' WHERE ' .groupaccess( 'download_cat_access' ). ' ORDER BY download_cat_name' ); |
Что ж, наслаждайся! Незаменимая вещь для сайта ВебМастера.
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:
Последние активные темы форума
Темы | Просмотров | Ответов | Последние сообщения |