1<?php 2/******************************************************************************** 3 * bibtex.php 4 * ----- 5 * Author: Quinn Taylor (quinntaylor@mac.com) 6 * Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter) 7 * Release Version: 1.0.9.1 8 * Date Started: 2009/04/29 9 * 10 * BibTeX language file for GeSHi. 11 * 12 * CHANGES 13 * ------- 14 * 2009/04/29 (1.0.8.4) 15 * - First Release 16 * 17 * TODO 18 * ------------------------- 19 * - Add regex for matching and replacing URLs with corresponding hyperlinks 20 * - Add regex for matching more LaTeX commands that may be embedded in BibTeX 21 * (Someone who understands regex better than I should borrow from latex.php) 22 ******************************************************************************** 23 * 24 * This file is part of GeSHi. 25 * 26 * GeSHi is free software; you can redistribute it and/or modify 27 * it under the terms of the GNU General Public License as published by 28 * the Free Software Foundation; either version 2 of the License, or 29 * (at your option) any later version. 30 * 31 * GeSHi is distributed in the hope that it will be useful, 32 * but WITHOUT ANY WARRANTY; without even the implied warranty of 33 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 34 * GNU General Public License for more details. 35 * 36 * You should have received a copy of the GNU General Public License 37 * along with GeSHi; if not, write to the Free Software 38 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 39 * 40 * 41*******************************************************************************/ 42 43// http://en.wikipedia.org/wiki/BibTeX 44// http://www.fb10.uni-bremen.de/anglistik/langpro/bibliographies/jacobsen-bibtex.html 45 46$language_data = array ( 47 'LANG_NAME' => 'BibTeX', 48 'OOLANG' => false, 49 'COMMENT_SINGLE' => array( 50 1 => '%%' 51 ), 52 'COMMENT_MULTI' => array(), 53 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 54 'QUOTEMARKS' => array(), 55 'ESCAPE_CHAR' => '', 56 'KEYWORDS' => array( 57 0 => array( 58 '@comment','@preamble','@string' 59 ), 60 // Standard entry types 61 1 => array( 62 '@article','@book','@booklet','@conference','@inbook', 63 '@incollection','@inproceedings','@manual','@mastersthesis', 64 '@misc','@phdthesis','@proceedings','@techreport','@unpublished' 65 ), 66 // Custom entry types 67 2 => array( 68 '@collection','@patent','@webpage' 69 ), 70 // Standard entry field names 71 3 => array( 72 'address','annote','author','booktitle','chapter','crossref', 73 'edition','editor','howpublished','institution','journal','key', 74 'month','note','number','organization','pages','publisher','school', 75 'series','title','type','volume','year' 76 ), 77 // Custom entry field names 78 4 => array( 79 'abstract','affiliation','chaptername','cited-by','cites', 80 'contents','copyright','date-added','date-modified','doi','eprint', 81 'isbn','issn','keywords','language','lccn','lib-congress', 82 'location','price','rating','read','size','source','url' 83 ) 84 ), 85 'URLS' => array( 86 0 => '', 87 1 => '', 88 2 => '', 89 3 => '', 90 4 => '' 91 ), 92 'SYMBOLS' => array( 93 '{', '}', '#', '=', ',' 94 ), 95 'CASE_SENSITIVE' => array( 96 1 => false, 97 2 => false, 98 3 => false, 99 4 => false, 100 GESHI_COMMENTS => false, 101 ), 102 // Define the colors for the groups listed above 103 'STYLES' => array( 104 'KEYWORDS' => array( 105 1 => 'color: #C02020;', // Standard entry types 106 2 => 'color: #C02020;', // Custom entry types 107 3 => 'color: #C08020;', // Standard entry field names 108 4 => 'color: #C08020;' // Custom entry field names 109 ), 110 'COMMENTS' => array( 111 1 => 'color: #2C922C; font-style: italic;' 112 ), 113 'STRINGS' => array( 114 0 => 'color: #2020C0;' 115 ), 116 'SYMBOLS' => array( 117 0 => 'color: #E02020;' 118 ), 119 'REGEXPS' => array( 120 1 => 'color: #2020C0;', // {...} 121 2 => 'color: #C08020;', // BibDesk fields 122 3 => 'color: #800000;' // LaTeX commands 123 ), 124 'ESCAPE_CHAR' => array( 125 0 => 'color: #000000; font-weight: bold;' 126 ), 127 'BRACKETS' => array( 128 0 => 'color: #E02020;' 129 ), 130 'NUMBERS' => array( 131 ), 132 'METHODS' => array( 133 ), 134 'SCRIPT' => array( 135 ) 136 ), 137 'REGEXPS' => array( 138 // {parameters} 139 1 => array( 140 GESHI_SEARCH => "(?<=\\{)(?:\\{(?R)\\}|[^\\{\\}])*(?=\\})", 141 GESHI_REPLACE => '\0', 142 GESHI_MODIFIERS => 's', 143 GESHI_BEFORE => '', 144 GESHI_AFTER => '' 145 ), 146 2 => array( 147 GESHI_SEARCH => "\bBdsk-(File|Url)-\d+", 148 GESHI_REPLACE => '\0', 149 GESHI_MODIFIERS => 'Us', 150 GESHI_BEFORE => '', 151 GESHI_AFTER => '' 152 ), 153 3 => array( 154 GESHI_SEARCH => "\\\\[A-Za-z0-9]*+", 155 GESHI_REPLACE => '\0', 156 GESHI_MODIFIERS => 'Us', 157 GESHI_BEFORE => '', 158 GESHI_AFTER => '' 159 ), 160 ), 161 'HIGHLIGHT_STRICT_BLOCK' => array( 162 ), 163 'OBJECT_SPLITTERS' => array( 164 ), 165 'STRICT_MODE_APPLIES' => GESHI_NEVER, 166 'SCRIPT_DELIMITERS' => array( 167 ), 168 'PARSER_CONTROL' => array( 169 'ENABLE_FLAGS' => array( 170 'NUMBERS' => GESHI_NEVER 171 ), 172 'KEYWORDS' => array( 173 3 => array( 174 'DISALLOWED_AFTER' => '(?=\s*=)' 175 ), 176 4 => array( 177 'DISALLOWED_AFTER' => '(?=\s*=)' 178 ), 179 ) 180 ) 181); 182