Crayon Syntax Highlighter - Version 1.7.22

Version Description

  • Fixed dimension and redraw issues on scrollbars
Download this release

Release Info

Developer akarmenia
Plugin Icon wp plugin Crayon Syntax Highlighter
Version 1.7.22
Comparing to
See all releases

Code changes from version 1.7.11 to 1.7.22

crayon_formatter.class.php CHANGED
@@ -58,6 +58,9 @@ class CrayonFormatter {
58
  $css = $captured_element->css() . CrayonLangs::known_elements($captured_element->fallback());
59
  return self::split_lines($matches[0], $css);
60
  }
 
 
 
61
  }
62
  }
63
 
@@ -195,18 +198,18 @@ class CrayonFormatter {
195
  $readonly = $touch ? '' : 'readonly';
196
  $print_plain = $print_plain_button = '';
197
  $print_plain = '<textarea class="crayon-plain" settings="' . $plain_settings . '" '. $readonly .' wrap="off" style="' . $plain_style .'">' . self::clean_code($hl->code()) . '</textarea>';
198
- $print_plain_button = $hl->setting_val(CrayonSettings::PLAIN_TOGGLE) ? '<a href="#" class="crayon-plain-button crayon-button" title="Toggle Plain Code" onclick="CrayonSyntax.toggle_plain(\'' . $uid . '\'); return false;"></a>' : '';
199
  $print_copy_button = !$touch && $hl->setting_val(CrayonSettings::PLAIN) && $hl->setting_val(CrayonSettings::COPY) ?
200
- '<a href="#" class="crayon-copy-button crayon-button" title="Copy Plain Code" onclick="CrayonSyntax.copy_plain(\'' . $uid . '\'); return false;"></a>' : '';
201
  } else {
202
  $print_plain = $plain_settings = $print_plain_button = $print_copy_button = '';
203
  }
204
 
205
  $print_popup_button = $hl->setting_val(CrayonSettings::POPUP) ?
206
- '<a href="#" class="crayon-popup-button crayon-button" title="Open Code in Window" onclick="return false;"></a>' : '';
207
 
208
  if ($hl->setting_val(CrayonSettings::NUMS_TOGGLE)) {
209
- $print_nums_button = '<a href="#" class="crayon-nums-button crayon-button" title="Toggle Line Numbers" onclick="CrayonSyntax.toggle_nums(\'' . $uid . '\'); return false;"></a>';
210
  } else {
211
  $print_nums_button = '';
212
  }
@@ -217,7 +220,7 @@ class CrayonFormatter {
217
  $buttons = $print_plus.$print_nums_button.$print_copy_button.$print_popup_button.$print_plain_button.$print_lang;
218
  $button_preload = '';
219
  foreach (array('nums', 'copy', 'popup', 'plain') as $name) {
220
- $button_preload .= '<a href="#" class="crayon-'.$name.'-button crayon-button crayon-pressed crayon-invisible"></a>';
221
  }
222
  $toolbar = '
223
  <div class="crayon-toolbar" settings="'.$toolbar_settings.'">'.$print_title.'
@@ -242,7 +245,7 @@ class CrayonFormatter {
242
  // Print theme id
243
  // We make the assumption that the id is correct (checked in crayon_wp)
244
  $theme_id = $hl->setting_val(CrayonSettings::THEME);
245
- $theme_id_dashed = CrayonUtil::clean_css_name($theme_id);
246
 
247
  if (!$hl->setting_val(CrayonSettings::ENQUEUE_THEMES)) {
248
  $output .= CrayonResources::themes()->get_css($theme_id);
@@ -251,10 +254,13 @@ class CrayonFormatter {
251
  // Print theme id
252
  // We make the assumption that the id is correct (checked in crayon_wp)
253
  $font_id = $hl->setting_val(CrayonSettings::FONT);
254
- $font_id_dashed = $font_id ? 'crayon-font-' . CrayonUtil::clean_css_name($font_id) : '';
255
 
256
- if (!$hl->setting_val(CrayonSettings::ENQUEUE_FONTS)) {
257
- $output .= CrayonResources::fonts()->get_css($font_id);
 
 
 
258
  }
259
 
260
  // Determine font size
@@ -264,7 +270,7 @@ class CrayonFormatter {
264
  $font_height = ($font_size + 4) . 'px !important;';
265
  $toolbar_height = ($font_size + 8) . 'px !important;';
266
  $font_style .= "#$uid * { font-size: $font_size line-height: $font_height}";
267
- $font_style .= "#$uid .crayon-toolbar, #$uid .crayon-toolbar div { height: $toolbar_height line-height: $toolbar_height }\n";
268
  $font_style .= "#$uid .crayon-num, #$uid .crayon-line, #$uid .crayon-toolbar a.crayon-button { height: $font_height }\n";
269
  } else {
270
  if (($font_size = CrayonGlobalSettings::get(CrayonSettings::FONT_SIZE)) !== FALSE) {
@@ -276,13 +282,14 @@ class CrayonFormatter {
276
  }
277
 
278
  // Determine scrollbar visibility
279
- switch ($hl->setting_index(CrayonSettings::SCROLL) && !$touch) {
280
- case 0 :
281
- $code_settings .= ' scroll-mouseover';
282
- break;
283
- default :
284
- $code_settings .= ' scroll-always';
285
- }
 
286
 
287
  // Disable animations
288
  if ($hl->setting_val(CrayonSettings::DISABLE_ANIM)) {
@@ -372,12 +379,12 @@ class CrayonFormatter {
372
  // Debugging stats
373
  $runtime = $hl->runtime();
374
  if (!$hl->setting_val(CrayonSettings::DISABLE_RUNTIME) && is_array($runtime) && !empty($runtime)) {
375
- $output = CRAYON_NL . CRAYON_NL . '<!-- Crayon Syntax Highlighter v' . $CRAYON_VERSION . ' -->'
376
  . CRAYON_NL . $output . CRAYON_NL . '<!-- ';
377
  foreach ($hl->runtime() as $type => $time) {
378
  $output .= '[' . $type . ': ' . sprintf('%.4f seconds', $time) . '] ';
379
  }
380
- $output .= '-->' . CRAYON_NL . CRAYON_NL;
381
  }
382
  // Determine whether to print to screen or save
383
  if ($print) {
58
  $css = $captured_element->css() . CrayonLangs::known_elements($captured_element->fallback());
59
  return self::split_lines($matches[0], $css);
60
  }
61
+ } else {
62
+ // All else fails, return the match
63
+ return $matches[0];
64
  }
65
  }
66
 
198
  $readonly = $touch ? '' : 'readonly';
199
  $print_plain = $print_plain_button = '';
200
  $print_plain = '<textarea class="crayon-plain" settings="' . $plain_settings . '" '. $readonly .' wrap="off" style="' . $plain_style .'">' . self::clean_code($hl->code()) . '</textarea>';
201
+ $print_plain_button = $hl->setting_val(CrayonSettings::PLAIN_TOGGLE) ? '<a class="crayon-plain-button crayon-button" title="Toggle Plain Code"></a>' : '';
202
  $print_copy_button = !$touch && $hl->setting_val(CrayonSettings::PLAIN) && $hl->setting_val(CrayonSettings::COPY) ?
203
+ '<a class="crayon-copy-button crayon-button" title="Copy Plain Code"></a>' : '';
204
  } else {
205
  $print_plain = $plain_settings = $print_plain_button = $print_copy_button = '';
206
  }
207
 
208
  $print_popup_button = $hl->setting_val(CrayonSettings::POPUP) ?
209
+ '<a class="crayon-popup-button crayon-button" title="Open Code in Window" onclick="return false;"></a>' : '';
210
 
211
  if ($hl->setting_val(CrayonSettings::NUMS_TOGGLE)) {
212
+ $print_nums_button = '<a class="crayon-nums-button crayon-button" title="Toggle Line Numbers"></a>';
213
  } else {
214
  $print_nums_button = '';
215
  }
220
  $buttons = $print_plus.$print_nums_button.$print_copy_button.$print_popup_button.$print_plain_button.$print_lang;
221
  $button_preload = '';
222
  foreach (array('nums', 'copy', 'popup', 'plain') as $name) {
223
+ $button_preload .= '<a class="crayon-'.$name.'-button crayon-button crayon-pressed crayon-invisible"></a>';
224
  }
225
  $toolbar = '
226
  <div class="crayon-toolbar" settings="'.$toolbar_settings.'">'.$print_title.'
245
  // Print theme id
246
  // We make the assumption that the id is correct (checked in crayon_wp)
247
  $theme_id = $hl->setting_val(CrayonSettings::THEME);
248
+ $theme_id_dashed = CrayonUtil::space_to_hyphen($theme_id);
249
 
250
  if (!$hl->setting_val(CrayonSettings::ENQUEUE_THEMES)) {
251
  $output .= CrayonResources::themes()->get_css($theme_id);
254
  // Print theme id
255
  // We make the assumption that the id is correct (checked in crayon_wp)
256
  $font_id = $hl->setting_val(CrayonSettings::FONT);
257
+ $font_id_dashed = '';
258
 
259
+ if ($font_id != NULL && $font_id != CrayonFonts::DEFAULT_FONT) {
260
+ if (!$hl->setting_val(CrayonSettings::ENQUEUE_FONTS)) {
261
+ $output .= CrayonResources::fonts()->get_css($font_id);
262
+ }
263
+ $font_id_dashed = 'crayon-font-' . CrayonUtil::space_to_hyphen($font_id);
264
  }
265
 
266
  // Determine font size
270
  $font_height = ($font_size + 4) . 'px !important;';
271
  $toolbar_height = ($font_size + 8) . 'px !important;';
272
  $font_style .= "#$uid * { font-size: $font_size line-height: $font_height}";
273
+ $font_style .= "#$uid .crayon-toolbar, #$uid .crayon-toolbar * { height: $toolbar_height line-height: $toolbar_height }\n";
274
  $font_style .= "#$uid .crayon-num, #$uid .crayon-line, #$uid .crayon-toolbar a.crayon-button { height: $font_height }\n";
275
  } else {
276
  if (($font_size = CrayonGlobalSettings::get(CrayonSettings::FONT_SIZE)) !== FALSE) {
282
  }
283
 
284
  // Determine scrollbar visibility
285
+ $code_settings .= $hl->setting_val(CrayonSettings::SCROLL) && !$touch ? ' scroll-always' : ' scroll-mouseover';
286
+ // switch ($hl->setting_index(CrayonSettings::SCROLL) && !$touch) {
287
+ // case 0 :
288
+ // $code_settings .= ' scroll-mouseover';
289
+ // break;
290
+ // default :
291
+ // $code_settings .= ' scroll-always';
292
+ // }
293
 
294
  // Disable animations
295
  if ($hl->setting_val(CrayonSettings::DISABLE_ANIM)) {
379
  // Debugging stats
380
  $runtime = $hl->runtime();
381
  if (!$hl->setting_val(CrayonSettings::DISABLE_RUNTIME) && is_array($runtime) && !empty($runtime)) {
382
+ $output = '<!-- Crayon Syntax Highlighter v' . $CRAYON_VERSION . ' -->'
383
  . CRAYON_NL . $output . CRAYON_NL . '<!-- ';
384
  foreach ($hl->runtime() as $type => $time) {
385
  $output .= '[' . $type . ': ' . sprintf('%.4f seconds', $time) . '] ';
386
  }
387
+ $output .= '-->' . CRAYON_NL;
388
  }
389
  // Determine whether to print to screen or save
390
  if ($print) {
crayon_highlighter.class.php CHANGED
@@ -40,6 +40,8 @@ class CrayonHighlighter {
40
  if ($language !== NULL) {
41
  $this->language($language);
42
  }
 
 
43
  $this->id($id);
44
  }
45
 
40
  if ($language !== NULL) {
41
  $this->language($language);
42
  }
43
+ // Default ID
44
+ $id = $id !== NULL ? $id : uniqid();
45
  $this->id($id);
46
  }
47
 
crayon_resource.class.php CHANGED
@@ -103,7 +103,7 @@ class CrayonResourceCollection {
103
  $file = CrayonUtil::path_rem_ext($file);
104
  }
105
  if ($this->exists($file)) {
106
- $this->add($file, $this->resource_instance($file));
107
  }
108
  }
109
  }
@@ -149,17 +149,26 @@ class CrayonResourceCollection {
149
  return $this->get($this->default_id);
150
  }
151
 
152
- /* Override in subclasses */
153
  public function resource_instance($id, $name = NULL) {
154
  return new CrayonResource($id, $name);
155
  }
156
-
157
- public function add($name, $object) {
158
- if (is_string($name) && !empty($name)) {
159
- $this->collection[strtolower(trim($name))] = $object;
 
 
 
 
 
160
  asort($this->collection);
161
  }
162
  }
 
 
 
 
163
 
164
  public function remove($name) {
165
  if (is_string($name) && !empty($name) && array_key_exists($name, $this->collection)) {
@@ -176,7 +185,7 @@ class CrayonResourceCollection {
176
  $this->load();
177
  if ($id === NULL) {
178
  return $this->collection;
179
- } else if (is_string($id) && ($id = strtolower(trim($id))) !== FALSE && $this->is_loaded($id)) {
180
  return $this->collection[$id];
181
  }
182
  return NULL;
@@ -283,8 +292,9 @@ class CrayonResource {
283
  private $name = '';
284
 
285
  function __construct($id, $name = NULL) {
 
286
  CrayonUtil::str($this->id, $id);
287
- ( empty($name) ) ? $this->name(CrayonUtil::ucwords($this->id)) : $this->name($name);
288
  }
289
 
290
  function __tostring() {
@@ -296,10 +306,24 @@ class CrayonResource {
296
  }
297
 
298
  function name($name = NULL) {
299
- if (!CrayonUtil::str($this->name, $name, FALSE)) {
300
- return $this->name;
 
 
301
  }
302
  }
 
 
 
 
 
 
 
 
 
 
 
 
303
  }
304
 
305
  /* Keeps track of usage */
103
  $file = CrayonUtil::path_rem_ext($file);
104
  }
105
  if ($this->exists($file)) {
106
+ $this->add_resource($this->resource_instance($file));
107
  }
108
  }
109
  }
149
  return $this->get($this->default_id);
150
  }
151
 
152
+ /* Override in subclasses to create subclass object if needed */
153
  public function resource_instance($id, $name = NULL) {
154
  return new CrayonResource($id, $name);
155
  }
156
+
157
+ // /* Override in subclasses to clean differently */
158
+ // public function clean_id($id) {
159
+ // return CrayonUtil::space_to_hyphen( strtolower(trim($id)) );
160
+ // }
161
+
162
+ public function add($id, $resource) {
163
+ if (is_string($id) && !empty($id)) {
164
+ $this->collection[$id] = $resource;
165
  asort($this->collection);
166
  }
167
  }
168
+
169
+ public function add_resource($resource) {
170
+ $this->add($resource->id(), $resource);
171
+ }
172
 
173
  public function remove($name) {
174
  if (is_string($name) && !empty($name) && array_key_exists($name, $this->collection)) {
185
  $this->load();
186
  if ($id === NULL) {
187
  return $this->collection;
188
+ } else if (is_string($id) && $this->is_loaded($id)) {
189
  return $this->collection[$id];
190
  }
191
  return NULL;
292
  private $name = '';
293
 
294
  function __construct($id, $name = NULL) {
295
+ $id = $this->clean_id($id);
296
  CrayonUtil::str($this->id, $id);
297
+ ( empty($name) ) ? $this->name( $this->clean_name($this->id) ) : $this->name($name);
298
  }
299
 
300
  function __tostring() {
306
  }
307
 
308
  function name($name = NULL) {
309
+ if ($name === NULL) {
310
+ return $this->name;
311
+ } else {
312
+ $this->name = $name;
313
  }
314
  }
315
+
316
+ // Override
317
+ function clean_id($id) {
318
+ return CrayonUtil::space_to_hyphen( strtolower(trim($id)) );
319
+ }
320
+
321
+ // Override
322
+ function clean_name($id) {
323
+ $id = CrayonUtil::hyphen_to_space( strtolower(trim($id)) );
324
+ return CrayonUtil::ucwords($id);
325
+ }
326
+
327
  }
328
 
329
  /* Keeps track of usage */
crayon_settings.class.php CHANGED
@@ -77,6 +77,8 @@ class CrayonSettings {
77
  const SHOW_PLAIN_DEFAULT = 'show-plain-default';
78
  const ENQUEUE_THEMES = 'enqueque-themes';
79
  const ENQUEUE_FONTS = 'enqueque-fonts';
 
 
80
 
81
  private static $cache_array;
82
 
@@ -156,7 +158,7 @@ class CrayonSettings {
156
  new CrayonSetting(self::TAB_SIZE, 4),
157
  new CrayonSetting(self::FALLBACK_LANG, CrayonLangs::DEFAULT_LANG),
158
  new CrayonSetting(self::LOCAL_PATH, ''),
159
- new CrayonSetting(self::SCROLL, array(crayon__('On MouseOver'), crayon__('Always'))),
160
  new CrayonSetting(self::PLAIN, TRUE),
161
  new CrayonSetting(self::PLAIN_TOGGLE, TRUE),
162
  new CrayonSetting(self::SHOW_PLAIN_DEFAULT, FALSE),
@@ -180,6 +182,8 @@ class CrayonSettings {
180
  new CrayonSetting(self::PLAIN_TAG, TRUE),
181
  new CrayonSetting(self::ENQUEUE_THEMES, TRUE),
182
  new CrayonSetting(self::ENQUEUE_FONTS, TRUE),
 
 
183
  );
184
 
185
  $this->set($settings);
77
  const SHOW_PLAIN_DEFAULT = 'show-plain-default';
78
  const ENQUEUE_THEMES = 'enqueque-themes';
79
  const ENQUEUE_FONTS = 'enqueque-fonts';
80
+ const MAIN_QUERY = 'main-query';
81
+ const SAFE_ENQUEUE = 'safe-enqueue';
82
 
83
  private static $cache_array;
84
 
158
  new CrayonSetting(self::TAB_SIZE, 4),
159
  new CrayonSetting(self::FALLBACK_LANG, CrayonLangs::DEFAULT_LANG),
160
  new CrayonSetting(self::LOCAL_PATH, ''),
161
+ new CrayonSetting(self::SCROLL, FALSE),//array(crayon__('On MouseOver'), crayon__('Always'))),
162
  new CrayonSetting(self::PLAIN, TRUE),
163
  new CrayonSetting(self::PLAIN_TOGGLE, TRUE),
164
  new CrayonSetting(self::SHOW_PLAIN_DEFAULT, FALSE),
182
  new CrayonSetting(self::PLAIN_TAG, TRUE),
183
  new CrayonSetting(self::ENQUEUE_THEMES, TRUE),
184
  new CrayonSetting(self::ENQUEUE_FONTS, TRUE),
185
+ new CrayonSetting(self::MAIN_QUERY, FALSE),
186
+ new CrayonSetting(self::SAFE_ENQUEUE, TRUE),
187
  );
188
 
189
  $this->set($settings);
crayon_settings_wp.class.php CHANGED
@@ -63,15 +63,20 @@ class CrayonSettingsWP {
63
  wp_enqueue_script('crayon_js', plugins_url(CRAYON_JS, __FILE__), array('jquery'), $CRAYON_VERSION);
64
  wp_enqueue_script('crayon_admin_js', plugins_url(CRAYON_JS_ADMIN, __FILE__), array('jquery'), $CRAYON_VERSION);
65
  wp_enqueue_script('crayon_jquery_popup', plugins_url(CRAYON_JQUERY_POPUP, __FILE__), array('jquery'), $CRAYON_VERSION);
 
 
 
66
  }
67
 
68
  public static function settings() {
69
  if (!current_user_can('manage_options')) {
70
  wp_die(crayon__('You do not have sufficient permissions to access this page.'));
71
  }
 
72
  ?>
73
 
74
- <div class="wrap">
 
75
  <div id="icon-options-general" class="icon32"><br>
76
  </div>
77
  <h2>Crayon Syntax Highlighter <?php crayon_e('Settings'); ?></h2>
@@ -97,6 +102,8 @@ class CrayonSettingsWP {
97
  </form>
98
  </div>
99
 
 
 
100
  <?php
101
  }
102
 
@@ -142,9 +149,16 @@ class CrayonSettingsWP {
142
  }
143
  }
144
 
145
- // Saves settings from CrayonGlobalSettings to the db
146
- public static function save_settings() {
147
- update_option(self::OPTIONS, CrayonGlobalSettings::get_array());
 
 
 
 
 
 
 
148
  }
149
 
150
  // Cache
@@ -185,7 +199,6 @@ class CrayonSettingsWP {
185
  update_option(self::CACHE, self::$cache);
186
  self::load_cache();
187
  }
188
-
189
 
190
  // Paths
191
 
@@ -382,8 +395,7 @@ class CrayonSettingsWP {
382
  $web = $CRAYON_WEBSITE;
383
  echo '
384
  <div id="crayon-help" class="updated settings-error crayon-help">
385
- <span><strong>Howdy, coder!</strong> Thanks for using Crayon. Use <strong>help</strong> on the top of this page to learn how to use the shortcode and basic features, or check out my <a href="#info">Twitter & Email</a>. For online help and info, visit <a target="_blank" href="'.$web,'">here</a>.</span>
386
- <a class="crayon-help-close" href="#" url="'.$url.'">X</a>
387
  </div>
388
  ';
389
  }
@@ -484,12 +496,7 @@ class CrayonSettingsWP {
484
  $name = CrayonSettings::FALLBACK_LANG;
485
  echo crayon__('When no language is provided, use the fallback'), ': ', '<select id="', $name, '" name="', self::OPTIONS,
486
  '[', $name, ']" crayon-preview="1">';
487
- foreach ($langs as $lang) {
488
-
489
- $title = $lang->name() . ' [' . $lang->id() . ']';
490
- echo '<option value="', $lang->id(), '" ', selected(self::$options[CrayonSettings::FALLBACK_LANG],
491
- $lang->id()), '>', $title, '</option>';
492
- }
493
  // Information about parsing
494
  $parsed = CrayonResources::langs()->is_parsed();
495
  $count = count($langs);
@@ -504,13 +511,21 @@ class CrayonSettingsWP {
504
  echo '<br/><span class="crayon-error">', sprintf(crayon__('The selected language with id %s could not be loaded'), '<strong>'.$db_fallback.'</strong>'), '. </span>';
505
  }
506
  // Language parsing info
507
- echo '<a href="#" id="show-lang" onclick="CrayonSyntaxAdmin.show_langs(\'', plugins_url(CRAYON_LIST_LANGS_PHP, __FILE__),
508
- '\'); return false;">', crayon__('Show Languages'), '</a><div id="lang-info"></div>';
509
  } else {
510
  echo 'No languages could be parsed.';
511
  }
512
  }
513
  }
 
 
 
 
 
 
 
 
514
 
515
  public static function themes() {
516
  $db_theme = self::$options[CrayonSettings::THEME]; // Theme name from db
@@ -524,8 +539,16 @@ class CrayonSettingsWP {
524
  $title = $theme->name();
525
  echo '<option value="', $theme->id(), '" ', selected($db_theme, $theme->id()), '>', $title, '</option>';
526
  }
527
- echo '</select><span class="crayon-span-10"></span>';
 
 
 
 
 
 
 
528
  // Preview checkbox
 
529
  self::checkbox(array(CrayonSettings::PREVIEW, crayon__('Enable Live Preview')), FALSE, FALSE);
530
  echo '</select><span class="crayon-span-10"></span>';
531
  self::checkbox(array(CrayonSettings::ENQUEUE_THEMES, crayon__('Enqueue themes in the header (more efficient).') . ' <a href="http://bit.ly/zTUAQV" target="_blank">' . crayon__('Learn More') . '</a>'));
@@ -533,7 +556,6 @@ class CrayonSettingsWP {
533
  if (!CrayonResources::themes()->is_loaded($db_theme) || !CrayonResources::themes()->exists($db_theme)) {
534
  echo '<span class="crayon-error">', sprintf(crayon__('The selected theme with id %s could not be loaded'), '<strong>'.$db_theme.'</strong>'), '. </span>';
535
  }
536
- echo '<div id="crayon-preview" url="', plugins_url(CRAYON_PREVIEW_PHP, __FILE__), '"></div>';
537
  }
538
 
539
  public static function fonts() {
@@ -556,6 +578,7 @@ class CrayonSettingsWP {
556
  // Default font doesn't actually exist as a file, it means do not override default theme font
557
  echo '<span class="crayon-error">', sprintf(crayon__('The selected font with id %s could not be loaded'), '<strong>'.$db_font.'</strong>'), '. </span><br/>';
558
  }
 
559
  self::checkbox(array(CrayonSettings::ENQUEUE_FONTS, crayon__('Enqueue fonts in the header (more efficient).') . ' <a href="http://bit.ly/zTUAQV" target="_blank">' . crayon__('Learn More') . '</a>'));
560
  }
561
 
@@ -568,8 +591,7 @@ class CrayonSettingsWP {
568
  self::checkbox(array(CrayonSettings::COPY, crayon__('Enable code copy/paste')));
569
  echo '</span>';
570
  self::checkbox(array(CrayonSettings::POPUP, crayon__('Enable opening code in a window')));
571
- echo crayon__('Display scrollbars (when needed)'),': ';
572
- self::dropdown(CrayonSettings::SCROLL);
573
  echo crayon__('Tab size in spaces'),': ';
574
  self::textbox(array('name' => CrayonSettings::TAB_SIZE, 'size' => 2, 'break' => TRUE));
575
  self::checkbox(array(CrayonSettings::TRIM_WHITESPACE, crayon__('Remove whitespace surrounding the shortcode content')));
@@ -593,6 +615,8 @@ class CrayonSettingsWP {
593
  self::dropdown(CrayonSettings::CACHE, false);
594
  echo '<input type="submit" id="crayon-cache-clear" name="crayon-cache-clear" class="button-secondary" value="', crayon__('Clear Now'), '" /><br/>';
595
  self::checkbox(array(CrayonSettings::EFFICIENT_ENQUEUE, crayon__('Attempt to load Crayon\'s CSS and JavaScript only when needed').'. <a href="http://ak.net84.net/?p=660" target="_blank">'.crayon__('Why?').'</a>'));
 
 
596
  self::checkbox(array(CrayonSettings::TOUCHSCREEN, crayon__('Disable mouse gestures for touchscreen devices (eg. MouseOver)')));
597
  self::checkbox(array(CrayonSettings::DISABLE_ANIM, crayon__('Disable animations')));
598
  self::checkbox(array(CrayonSettings::DISABLE_RUNTIME, crayon__('Disable runtime stats')));
@@ -669,14 +693,26 @@ class CrayonSettingsWP {
669
  <td colspan="2">'.$links.'</td>
670
  </tr>
671
  </table>';
 
 
 
 
 
 
 
 
 
 
 
 
672
  }
673
  }
674
  // Add the settings menus
675
 
676
  if (defined('ABSPATH') && is_admin()) {
677
- add_action('admin_menu', 'CrayonSettingsWP::admin_load');
678
  // For the admin section
679
- add_filter('plugin_row_meta', 'CrayonWP::plugin_row_meta');
 
680
  }
681
 
682
  ?>
63
  wp_enqueue_script('crayon_js', plugins_url(CRAYON_JS, __FILE__), array('jquery'), $CRAYON_VERSION);
64
  wp_enqueue_script('crayon_admin_js', plugins_url(CRAYON_JS_ADMIN, __FILE__), array('jquery'), $CRAYON_VERSION);
65
  wp_enqueue_script('crayon_jquery_popup', plugins_url(CRAYON_JQUERY_POPUP, __FILE__), array('jquery'), $CRAYON_VERSION);
66
+ if (CRAYON_THEME_EDITOR) {
67
+ wp_enqueue_script('crayon_theme_editor', plugins_url(CRAYON_THEME_EDITOR_JS, __FILE__), array('jquery'), $CRAYON_VERSION);
68
+ }
69
  }
70
 
71
  public static function settings() {
72
  if (!current_user_can('manage_options')) {
73
  wp_die(crayon__('You do not have sufficient permissions to access this page.'));
74
  }
75
+
76
  ?>
77
 
78
+ <div id="crayon-main-wrap" class="wrap">
79
+
80
  <div id="icon-options-general" class="icon32"><br>
81
  </div>
82
  <h2>Crayon Syntax Highlighter <?php crayon_e('Settings'); ?></h2>
102
  </form>
103
  </div>
104
 
105
+ <div id="crayon-theme-editor-wrap" class="wrap" url="<?php echo plugins_url(CRAYON_THEME_EDITOR_PHP, __FILE__); ?>"></div>
106
+
107
  <?php
108
  }
109
 
149
  }
150
  }
151
 
152
+ public static function get_settings() {
153
+ return get_option(self::OPTIONS);
154
+ }
155
+
156
+ // Saves settings from CrayonGlobalSettings, or provided array, to the db
157
+ public static function save_settings($settings) {
158
+ if ($settings === NULL) {
159
+ $settings = CrayonGlobalSettings::get_array();
160
+ }
161
+ update_option(self::OPTIONS, $settings);
162
  }
163
 
164
  // Cache
199
  update_option(self::CACHE, self::$cache);
200
  self::load_cache();
201
  }
 
202
 
203
  // Paths
204
 
395
  $web = $CRAYON_WEBSITE;
396
  echo '
397
  <div id="crayon-help" class="updated settings-error crayon-help">
398
+ <p><strong>Howdy, coder!</strong> Thanks for using Crayon. Use <strong>help</strong> on the top of this page to learn how to use the shortcode and basic features, or check out my <a href="#info">Twitter & Email</a>. For online help and info, visit <a target="_blank" href="'.$web,'">here</a>. <a class="crayon-help-close" url="'.$url.'">X</a></p>
 
399
  </div>
400
  ';
401
  }
496
  $name = CrayonSettings::FALLBACK_LANG;
497
  echo crayon__('When no language is provided, use the fallback'), ': ', '<select id="', $name, '" name="', self::OPTIONS,
498
  '[', $name, ']" crayon-preview="1">';
499
+ self::lang_dropdown($langs);
 
 
 
 
 
500
  // Information about parsing
501
  $parsed = CrayonResources::langs()->is_parsed();
502
  $count = count($langs);
511
  echo '<br/><span class="crayon-error">', sprintf(crayon__('The selected language with id %s could not be loaded'), '<strong>'.$db_fallback.'</strong>'), '. </span>';
512
  }
513
  // Language parsing info
514
+ echo '<a id="show-lang" onclick="CrayonSyntaxAdmin.show_langs(\'', plugins_url(CRAYON_LIST_LANGS_PHP, __FILE__),
515
+ '\');">', crayon__('Show Languages'), '</a><div id="lang-info"></div>';
516
  } else {
517
  echo 'No languages could be parsed.';
518
  }
519
  }
520
  }
521
+
522
+ public static function lang_dropdown($langs) {
523
+ foreach ($langs as $lang) {
524
+ $title = $lang->name() . ' [' . $lang->id() . ']';
525
+ echo '<option value="', $lang->id(), '" ', selected(self::$options[CrayonSettings::FALLBACK_LANG],
526
+ $lang->id()), '>', $title, '</option>';
527
+ }
528
+ }
529
 
530
  public static function themes() {
531
  $db_theme = self::$options[CrayonSettings::THEME]; // Theme name from db
539
  $title = $theme->name();
540
  echo '<option value="', $theme->id(), '" ', selected($db_theme, $theme->id()), '>', $title, '</option>';
541
  }
542
+ echo '</select><span class="crayon-span-5"></span>';
543
+ // Theme editor
544
+ if (CRAYON_THEME_EDITOR) {
545
+ echo '<a id="crayon-theme-editor-button" class="button-primary crayon-admin-button" loading="'. crayon__('Loading...') .'" loaded="'. crayon__('Theme Editor') .'" >'. crayon__('Theme Editor') .'</a></br>';
546
+ }
547
+ // Preview Box
548
+ echo '<div id="crayon-preview" url="', plugins_url(CRAYON_PREVIEW_PHP, __FILE__), '"></div>';
549
+ printf(crayon__('Change the %1$sfallback language%2$s to change the sample code. Lines 5-7 are marked.'), '<a href="#langs">', '</a>');
550
  // Preview checkbox
551
+ echo '<div style="height:10px;"></div>';
552
  self::checkbox(array(CrayonSettings::PREVIEW, crayon__('Enable Live Preview')), FALSE, FALSE);
553
  echo '</select><span class="crayon-span-10"></span>';
554
  self::checkbox(array(CrayonSettings::ENQUEUE_THEMES, crayon__('Enqueue themes in the header (more efficient).') . ' <a href="http://bit.ly/zTUAQV" target="_blank">' . crayon__('Learn More') . '</a>'));
556
  if (!CrayonResources::themes()->is_loaded($db_theme) || !CrayonResources::themes()->exists($db_theme)) {
557
  echo '<span class="crayon-error">', sprintf(crayon__('The selected theme with id %s could not be loaded'), '<strong>'.$db_theme.'</strong>'), '. </span>';
558
  }
 
559
  }
560
 
561
  public static function fonts() {
578
  // Default font doesn't actually exist as a file, it means do not override default theme font
579
  echo '<span class="crayon-error">', sprintf(crayon__('The selected font with id %s could not be loaded'), '<strong>'.$db_font.'</strong>'), '. </span><br/>';
580
  }
581
+ echo '<div style="height:10px;"></div>';
582
  self::checkbox(array(CrayonSettings::ENQUEUE_FONTS, crayon__('Enqueue fonts in the header (more efficient).') . ' <a href="http://bit.ly/zTUAQV" target="_blank">' . crayon__('Learn More') . '</a>'));
583
  }
584
 
591
  self::checkbox(array(CrayonSettings::COPY, crayon__('Enable code copy/paste')));
592
  echo '</span>';
593
  self::checkbox(array(CrayonSettings::POPUP, crayon__('Enable opening code in a window')));
594
+ self::checkbox(array(CrayonSettings::SCROLL, crayon__('Always display scrollbars')));
 
595
  echo crayon__('Tab size in spaces'),': ';
596
  self::textbox(array('name' => CrayonSettings::TAB_SIZE, 'size' => 2, 'break' => TRUE));
597
  self::checkbox(array(CrayonSettings::TRIM_WHITESPACE, crayon__('Remove whitespace surrounding the shortcode content')));
615
  self::dropdown(CrayonSettings::CACHE, false);
616
  echo '<input type="submit" id="crayon-cache-clear" name="crayon-cache-clear" class="button-secondary" value="', crayon__('Clear Now'), '" /><br/>';
617
  self::checkbox(array(CrayonSettings::EFFICIENT_ENQUEUE, crayon__('Attempt to load Crayon\'s CSS and JavaScript only when needed').'. <a href="http://ak.net84.net/?p=660" target="_blank">'.crayon__('Why?').'</a>'));
618
+ self::checkbox(array(CrayonSettings::SAFE_ENQUEUE, crayon__('Disable enqueuing for page templates that may contain The Loop.') . ' <a href="http://bit.ly/AcWRNY" target="_blank">' . crayon__('Learn More') . '</a>'));
619
+ self::checkbox(array(CrayonSettings::MAIN_QUERY, crayon__('Load Crayons only from the main Wordpress query')));
620
  self::checkbox(array(CrayonSettings::TOUCHSCREEN, crayon__('Disable mouse gestures for touchscreen devices (eg. MouseOver)')));
621
  self::checkbox(array(CrayonSettings::DISABLE_ANIM, crayon__('Disable animations')));
622
  self::checkbox(array(CrayonSettings::DISABLE_RUNTIME, crayon__('Disable runtime stats')));
693
  <td colspan="2">'.$links.'</td>
694
  </tr>
695
  </table>';
696
+
697
+ }
698
+
699
+ public static function plugin_row_meta($meta, $file) {
700
+ if ($file == CrayonWP::basename()) {
701
+ $meta[] = '<a href="options-general.php?page=crayon_settings">' . crayon__('Settings') . '</a>';
702
+ if (CRAYON_THEME_EDITOR) {
703
+ $meta[] = '<a href="options-general.php?page=crayon_settings&subpage=theme_editor">' . crayon__('Theme Editor') . '</a>';
704
+ }
705
+ $meta[] = '<a href="http://bit.ly/crayondonate" target="_blank">' . crayon__('Donate') . '</a>';
706
+ }
707
+ return $meta;
708
  }
709
  }
710
  // Add the settings menus
711
 
712
  if (defined('ABSPATH') && is_admin()) {
 
713
  // For the admin section
714
+ add_action('admin_menu', 'CrayonSettingsWP::admin_load');
715
+ add_filter('plugin_row_meta', 'CrayonSettingsWP::plugin_row_meta', 10, 2);
716
  }
717
 
718
  ?>
crayon_wp.class.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Crayon Syntax Highlighter
4
  Plugin URI: http://ak.net84.net/projects/crayon-syntax-highlighter
5
  Description: Supports multiple languages, themes, highlighting from a URL, local file or post text.
6
- Version: 1.7.11
7
  Author: Aram Kocharyan
8
  Author URI: http://ak.net84.net/
9
  Text Domain: crayon-syntax-highlighter
@@ -28,8 +28,9 @@ require_once (CRAYON_HIGHLIGHTER_PHP);
28
  require_once ('crayon_settings_wp.class.php');
29
 
30
  if (defined('ABSPATH')) {
 
31
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
32
- set_crayon_info(get_plugin_data( __FILE__ ));
33
  }
34
 
35
  /* The plugin class that manages all other classes and integrates Crayon with WP */
@@ -59,6 +60,13 @@ class CrayonWP {
59
  const REGEX_CLOSED_NO_CAPTURE = '(?:\[crayon\b[^\]]*/\])';
60
  const REGEX_TAG_NO_CAPTURE = '(?:\[crayon\b[^\]]*\][\r\n]*?.*?[\r\n]*?\[/crayon\])';
61
 
 
 
 
 
 
 
 
62
  const REGEX_ID = '#(?<!\$)\[crayon#i';
63
 
64
  const MODE_NORMAL = 0, MODE_JUST_CODE = 1, MODE_PLAIN_CODE = 2;
@@ -84,6 +92,8 @@ class CrayonWP {
84
  * $mode can be: 0 = return crayon content, 1 = return only code, 2 = return only plain code
85
  */
86
  private static function shortcode($atts, $content = NULL, $id = NULL, $mode = self::MODE_NORMAL) {
 
 
87
  // Load attributes from shortcode
88
  $allowed_atts = array('url' => NULL, 'lang' => NULL, 'title' => NULL, 'mark' => NULL);
89
  $filtered_atts = shortcode_atts($allowed_atts, $atts);
@@ -133,6 +143,8 @@ class CrayonWP {
133
 
134
  /* Returns Crayon instance */
135
  public static function instance($extra_attr = array(), $id = NULL) {
 
 
136
  // Create Crayon
137
  $crayon = new CrayonHighlighter();
138
 
@@ -148,21 +160,33 @@ class CrayonWP {
148
  return $crayon;
149
  }
150
 
 
 
 
 
 
 
 
151
  /* Search for Crayons in posts and queue them for creation */
152
- // TODO remove $posts from params
153
  public static function the_posts($posts) {
 
 
154
  // Whether to enqueue syles/scripts
155
  $enqueue = FALSE;
156
  CrayonSettingsWP::load_settings(TRUE); // Load just the settings from db, for now
157
 
158
- global $wp_the_query;
159
- $posts = $wp_the_query->posts;
160
-
161
  self::init_mini_tags();
162
 
163
  // Search for shortcode in query
164
  foreach ($posts as $post) {
165
 
 
 
 
 
 
 
 
166
  // To improve efficiency, avoid complicated regex with a simple check first
167
  if (CrayonUtil::strposa($post->post_content, self::$search_tags, TRUE) === FALSE) {
168
  continue;
@@ -258,7 +282,7 @@ class CrayonWP {
258
  }
259
  }
260
  // If font is now valid, change the array
261
- if ($font) {
262
  $atts_array[CrayonSettings::FONT] = $font_id;
263
  $font->used(TRUE);
264
  }
@@ -290,6 +314,8 @@ class CrayonWP {
290
  }
291
 
292
  private static function enqueue_resources() {
 
 
293
  global $CRAYON_VERSION;
294
  wp_enqueue_style('crayon-style', plugins_url(CRAYON_STYLE, __FILE__), array(), $CRAYON_VERSION);
295
  //wp_enqueue_script('crayon-jquery', plugins_url(CRAYON_JQUERY, __FILE__), array(), $CRAYON_VERSION);
@@ -317,13 +343,16 @@ class CrayonWP {
317
 
318
  // Add Crayon into the_content
319
  public static function the_content($the_content) {
 
 
320
  global $post;
321
  // Go through queued posts and find crayons
322
  $post_id = strval($post->ID);
323
 
324
  if (self::$is_excerpt) {
325
  // Remove Crayon from content if we are displaying an excerpt
326
- return preg_replace(self::regex_no_capture(), '', $the_content);
 
327
  }
328
 
329
  // Find if this post has Crayons
@@ -343,16 +372,54 @@ class CrayonWP {
343
  // Apply shortcode to the content
344
  $crayon_formatted = self::shortcode($atts, $content, $id);
345
  }
 
 
 
346
  $the_content = CrayonUtil::preg_replace_escape_back(self::regex_with_id($id), $crayon_formatted, $the_content, 1, $count);
347
  }
348
  }
349
  return $the_content;
350
  }
351
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  // Remove Crayons from the_excerpt
353
  public static function the_excerpt($the_excerpt) {
 
 
354
  self::$is_excerpt = TRUE;
355
- $the_excerpt = wpautop(wp_trim_excerpt(''));
 
 
 
 
 
 
 
356
  self::$is_excerpt = FALSE;
357
  return $the_excerpt;
358
  }
@@ -375,6 +442,8 @@ class CrayonWP {
375
  }
376
 
377
  public static function wp_head() {
 
 
378
  self::$wp_head = TRUE;
379
  if (!self::$enqueued) {
380
  // We have missed our chance to check before enqueuing. Use setting to either load always or only in the_post
@@ -405,12 +474,15 @@ class CrayonWP {
405
  public static function crayon_font_css() {
406
  global $CRAYON_VERSION;
407
  $css = CrayonResources::fonts()->get_used_css();
408
- foreach ($css as $font=>$url) {
409
- wp_enqueue_style('crayon-font-'.$font, $url, array(), $CRAYON_VERSION);
 
 
410
  }
411
  }
412
 
413
  public static function init($request) {
 
414
  self::load_textdomain();
415
  }
416
 
@@ -418,20 +490,41 @@ class CrayonWP {
418
  load_plugin_textdomain(CRAYON_DOMAIN, false, CRAYON_DIR.CRAYON_TRANS_DIR);
419
  }
420
 
421
- public static function plugin_row_meta($meta) {
422
- $meta[] = '<a href="options-general.php?page=crayon_settings">' . crayon__('View Settings') . '</a>';
423
- $meta[] = '<a href="http://ak.net84.net/files/donate.php" target="_blank">' . crayon__('Donate') . '</a>';
424
- return $meta;
425
- }
426
-
427
  public static function install() {
428
-
429
  }
430
 
431
  public static function uninstall() {
432
 
433
  }
434
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
435
  }
436
 
437
  // Only if WP is loaded
@@ -441,8 +534,16 @@ if (defined('ABSPATH')) {
441
 
442
  // Filters and Actions
443
  add_filter('init', 'CrayonWP::init');
444
- // add_filter('the_posts', 'CrayonWP::the_posts');
445
- add_action('wp', 'CrayonWP::the_posts');
 
 
 
 
 
 
 
 
446
  add_filter('the_content', 'CrayonWP::the_content');
447
  add_filter('the_excerpt', 'CrayonWP::the_excerpt');
448
  add_action('template_redirect', 'CrayonWP::wp_head');
3
  Plugin Name: Crayon Syntax Highlighter
4
  Plugin URI: http://ak.net84.net/projects/crayon-syntax-highlighter
5
  Description: Supports multiple languages, themes, highlighting from a URL, local file or post text.
6
+ Version: 1.7.22
7
  Author: Aram Kocharyan
8
  Author URI: http://ak.net84.net/
9
  Text Domain: crayon-syntax-highlighter
28
  require_once ('crayon_settings_wp.class.php');
29
 
30
  if (defined('ABSPATH')) {
31
+ // Used to get plugin version info
32
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
33
+ crayon_set_info(get_plugin_data( __FILE__ ));
34
  }
35
 
36
  /* The plugin class that manages all other classes and integrates Crayon with WP */
60
  const REGEX_CLOSED_NO_CAPTURE = '(?:\[crayon\b[^\]]*/\])';
61
  const REGEX_TAG_NO_CAPTURE = '(?:\[crayon\b[^\]]*\][\r\n]*?.*?[\r\n]*?\[/crayon\])';
62
 
63
+ const REGEX_QUICK_CAPTURE = '(?:\[crayon[^\]]*\].*?\[/crayon\])|(?:\[crayon[^\]]*/\])';
64
+
65
+ const REGEX_BETWEEN_PARAGRAPH = '<p[^<]*>(?:[^<]*<(?!/?p(\s+[^>]*)?>)[^>]+(\s+[^>]*)?>)*[^<]*((?:\[crayon[^\]]*\].*?\[/crayon\])|(?:\[crayon[^\]]*/\]))(?:[^<]*<(?!/?p(\s+[^>]*)?>)[^>]+(\s+[^>]*)?>)*[^<]*</p[^<]*>';
66
+ const REGEX_BETWEEN_PARAGRAPH_SIMPLE = '(<p(?:\s+[^>]*)?>)(.*?)(</p(?:\s+[^>]*)?>)';
67
+ const REGEX_BR_BEFORE = '<br\s*/?>\s*(\[crayon)';
68
+ const REGEX_BR_AFTER = '(\[/crayon\])\s*<br\s*/?>';
69
+
70
  const REGEX_ID = '#(?<!\$)\[crayon#i';
71
 
72
  const MODE_NORMAL = 0, MODE_JUST_CODE = 1, MODE_PLAIN_CODE = 2;
92
  * $mode can be: 0 = return crayon content, 1 = return only code, 2 = return only plain code
93
  */
94
  private static function shortcode($atts, $content = NULL, $id = NULL, $mode = self::MODE_NORMAL) {
95
+ // CrayonLog::log('shortcode');
96
+
97
  // Load attributes from shortcode
98
  $allowed_atts = array('url' => NULL, 'lang' => NULL, 'title' => NULL, 'mark' => NULL);
99
  $filtered_atts = shortcode_atts($allowed_atts, $atts);
143
 
144
  /* Returns Crayon instance */
145
  public static function instance($extra_attr = array(), $id = NULL) {
146
+ // CrayonLog::log('instance');
147
+
148
  // Create Crayon
149
  $crayon = new CrayonHighlighter();
150
 
160
  return $crayon;
161
  }
162
 
163
+ /* Uses the main query */
164
+ public static function wp() {
165
+ global $wp_the_query;
166
+ $posts = $wp_the_query->posts;
167
+ self::the_posts($posts);
168
+ }
169
+
170
  /* Search for Crayons in posts and queue them for creation */
 
171
  public static function the_posts($posts) {
172
+ // CrayonLog::log('the_posts');
173
+
174
  // Whether to enqueue syles/scripts
175
  $enqueue = FALSE;
176
  CrayonSettingsWP::load_settings(TRUE); // Load just the settings from db, for now
177
 
 
 
 
178
  self::init_mini_tags();
179
 
180
  // Search for shortcode in query
181
  foreach ($posts as $post) {
182
 
183
+ // If we get query for a page, then that page might have a template and load more posts containing Crayons
184
+ // By this state, we would be unable to enqueue anything (header already written).
185
+ if (CrayonGlobalSettings::val(CrayonSettings::SAFE_ENQUEUE) && is_page($post->ID)) {
186
+ CrayonGlobalSettings::set(CrayonSettings::ENQUEUE_THEMES, false);
187
+ CrayonGlobalSettings::set(CrayonSettings::ENQUEUE_FONTS, false);
188
+ }
189
+
190
  // To improve efficiency, avoid complicated regex with a simple check first
191
  if (CrayonUtil::strposa($post->post_content, self::$search_tags, TRUE) === FALSE) {
192
  continue;
282
  }
283
  }
284
  // If font is now valid, change the array
285
+ if ($font != NULL && $font_id != CrayonFonts::DEFAULT_FONT) {
286
  $atts_array[CrayonSettings::FONT] = $font_id;
287
  $font->used(TRUE);
288
  }
314
  }
315
 
316
  private static function enqueue_resources() {
317
+ // CrayonLog::log('enqueue');
318
+
319
  global $CRAYON_VERSION;
320
  wp_enqueue_style('crayon-style', plugins_url(CRAYON_STYLE, __FILE__), array(), $CRAYON_VERSION);
321
  //wp_enqueue_script('crayon-jquery', plugins_url(CRAYON_JQUERY, __FILE__), array(), $CRAYON_VERSION);
343
 
344
  // Add Crayon into the_content
345
  public static function the_content($the_content) {
346
+ // CrayonLog::log('the_content');
347
+
348
  global $post;
349
  // Go through queued posts and find crayons
350
  $post_id = strval($post->ID);
351
 
352
  if (self::$is_excerpt) {
353
  // Remove Crayon from content if we are displaying an excerpt
354
+ $excerpt = preg_replace(self::regex_no_capture(), '', $the_content);
355
+ return $excerpt;
356
  }
357
 
358
  // Find if this post has Crayons
372
  // Apply shortcode to the content
373
  $crayon_formatted = self::shortcode($atts, $content, $id);
374
  }
375
+ // Replacing may cause <p> tags to become disjoint with a <div> inside them, close and reopen them
376
+ $the_content = preg_replace_callback('#' . self::REGEX_BETWEEN_PARAGRAPH_SIMPLE . '#msi', 'CrayonWP::add_paragraphs', $the_content);
377
+ // Replace the code with the Crayon
378
  $the_content = CrayonUtil::preg_replace_escape_back(self::regex_with_id($id), $crayon_formatted, $the_content, 1, $count);
379
  }
380
  }
381
  return $the_content;
382
  }
383
 
384
+ public static function add_paragraphs($capture) {
385
+ if (count($capture) != 4) {
386
+ return $capture[0];
387
+ }
388
+
389
+ // Remove <br/>
390
+ $capture[2] = preg_replace('#' . self::REGEX_BR_BEFORE . '#msi', '$1', $capture[2]);
391
+ $capture[2] = preg_replace('#' . self::REGEX_BR_AFTER . '#msi', '$1', $capture[2]);
392
+ // Add <p>
393
+ $capture[2] = trim($capture[2]);
394
+
395
+ if (stripos($capture[2], '[crayon') !== 0) {
396
+ $capture[2] = preg_replace('#(\[crayon)#msi', '</p>$1', $capture[2]);
397
+ } else {
398
+ $capture[1] = '';
399
+ }
400
+
401
+ if ( stripos($capture[2], '[/crayon]') !== strlen($capture[2]) - strlen('[/crayon]') ) {
402
+ $capture[2] = preg_replace('#(\[/crayon\])#msi', '$1<p>', $capture[2]);
403
+ } else {
404
+ $capture[3] = '';
405
+ }
406
+
407
+ return $capture[1].$capture[2].$capture[3];
408
+ }
409
+
410
  // Remove Crayons from the_excerpt
411
  public static function the_excerpt($the_excerpt) {
412
+ // CrayonLog::log('excerpt');
413
+
414
  self::$is_excerpt = TRUE;
415
+ global $post;
416
+ if (!empty($post->post_excerpt)) {
417
+ // Use custom excerpt if defined
418
+ $the_excerpt = wpautop($post->post_excerpt);
419
+ } else {
420
+ // Pass wp_trim_excerpt('') to gen from content (and remove [crayons])
421
+ $the_excerpt = wpautop(wp_trim_excerpt(''));
422
+ }
423
  self::$is_excerpt = FALSE;
424
  return $the_excerpt;
425
  }
442
  }
443
 
444
  public static function wp_head() {
445
+ // CrayonLog::log('head');
446
+
447
  self::$wp_head = TRUE;
448
  if (!self::$enqueued) {
449
  // We have missed our chance to check before enqueuing. Use setting to either load always or only in the_post
474
  public static function crayon_font_css() {
475
  global $CRAYON_VERSION;
476
  $css = CrayonResources::fonts()->get_used_css();
477
+ foreach ($css as $font_id=>$url) {
478
+ if ($font_id != CrayonFonts::DEFAULT_FONT) {
479
+ wp_enqueue_style('crayon-font-'.$font_id, $url, array(), $CRAYON_VERSION);
480
+ }
481
  }
482
  }
483
 
484
  public static function init($request) {
485
+ // CrayonLog::log('init');
486
  self::load_textdomain();
487
  }
488
 
490
  load_plugin_textdomain(CRAYON_DOMAIN, false, CRAYON_DIR.CRAYON_TRANS_DIR);
491
  }
492
 
 
 
 
 
 
 
493
  public static function install() {
494
+ self::update();
495
  }
496
 
497
  public static function uninstall() {
498
 
499
  }
500
 
501
+ public static function update() {
502
+ // Upgrade database
503
+ global $CRAYON_VERSION;
504
+ $settings = CrayonSettingsWP::get_settings();
505
+ if ($settings === NULL || !isset($settings[CrayonSettings::VERSION])) {
506
+ return;
507
+ }
508
+
509
+ $version = $settings[CrayonSettings::VERSION];
510
+ $defaults = CrayonSettings::get_defaults_array();
511
+ $touched = FALSE;
512
+
513
+ if ($version < '1.7.21') {
514
+ $settings[CrayonSettings::SCROLL] = $defaults[CrayonSettings::SCROLL];
515
+ $touched = TRUE;
516
+ }
517
+
518
+ if ($touched) {
519
+ $settings[CrayonSettings::VERSION] = $CRAYON_VERSION;
520
+ CrayonSettingsWP::save_settings($settings);
521
+ }
522
+ }
523
+
524
+ public static function basename() {
525
+ return plugin_basename(__FILE__);
526
+ }
527
+
528
  }
529
 
530
  // Only if WP is loaded
534
 
535
  // Filters and Actions
536
  add_filter('init', 'CrayonWP::init');
537
+
538
+ // TODO find a better way to handle updates
539
+ CrayonWP::update();
540
+ CrayonSettingsWP::load_settings(TRUE);
541
+ if (CrayonGlobalSettings::val(CrayonSettings::MAIN_QUERY)) {
542
+ add_action('wp', 'CrayonWP::wp');
543
+ } else {
544
+ add_filter('the_posts', 'CrayonWP::the_posts');
545
+ }
546
+
547
  add_filter('the_content', 'CrayonWP::the_content');
548
  add_filter('the_excerpt', 'CrayonWP::the_excerpt');
549
  add_action('template_redirect', 'CrayonWP::wp_head');
css/admin_style.css CHANGED
@@ -21,12 +21,15 @@
21
  margin-bottom: 5px;
22
  }
23
 
24
- .crayon-span,.crayon-span-10,.crayon-span-50,.crayon-span-100,.crayon-span-110
25
- {
26
  line-height: 24px;
27
  display: inline-block;
28
  }
29
 
 
 
 
 
30
  .crayon-span-10 {
31
  min-width: 10px;
32
  }
@@ -65,6 +68,7 @@
65
 
66
  .crayon-help {
67
  min-height: 30px;
 
68
  }
69
 
70
  .crayon-help .crayon-help-close,
@@ -80,7 +84,6 @@
80
  margin: 0;
81
  padding: 0;
82
  font-size: 12px;
83
- line-height: 30px;
84
  }
85
 
86
  #crayon-log-text {
@@ -149,6 +152,7 @@
149
 
150
  #crayon-preview {
151
  float: none;
 
152
  }
153
 
154
  #crayon-logo {
@@ -162,6 +166,22 @@
162
  margin: 0px;
163
  }
164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  #gmail-icon, #twitter-icon, #donate-icon {
166
  width: 24px;
167
  height: 24px;
21
  margin-bottom: 5px;
22
  }
23
 
24
+ .crayon-span,.crayon-span-5,.crayon-span-10,.crayon-span-50,.crayon-span-100,.crayon-span-110 {
 
25
  line-height: 24px;
26
  display: inline-block;
27
  }
28
 
29
+ .crayon-span-5 {
30
+ min-width: 5px;
31
+ }
32
+
33
  .crayon-span-10 {
34
  min-width: 10px;
35
  }
68
 
69
  .crayon-help {
70
  min-height: 30px;
71
+ padding: 5px 10px;
72
  }
73
 
74
  .crayon-help .crayon-help-close,
84
  margin: 0;
85
  padding: 0;
86
  font-size: 12px;
 
87
  }
88
 
89
  #crayon-log-text {
152
 
153
  #crayon-preview {
154
  float: none;
155
+ padding: 0;
156
  }
157
 
158
  #crayon-logo {
166
  margin: 0px;
167
  }
168
 
169
+ .crayon-admin-button {
170
+ display: inline-block;
171
+ text-align: center;
172
+ }
173
+
174
+ #crayon-editor-table td {
175
+ vertical-align: top;
176
+ }
177
+ .crayon-editor-controls {
178
+
179
+ }
180
+ .crayon-editor-controls,
181
+ .crayon-editor-control-wrapper {
182
+ width: 300px;
183
+ }
184
+
185
  #gmail-icon, #twitter-icon, #donate-icon {
186
  width: 24px;
187
  height: 24px;
css/fonts/consolas/consolas-webfont.eot ADDED
Binary file
css/fonts/consolas/consolas-webfont.svg ADDED
@@ -0,0 +1,261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>
5
+ This is a custom SVG webfont generated by Font Squirrel.
6
+ Copyright : 2005 Microsoft Corporation All Rights Reserved
7
+ Designer : Lucas de Groot
8
+ Foundry : Microsoft Corporation
9
+ Foundry URL : httpwwwmicrosoftcomtypographyctfonts
10
+ </metadata>
11
+ <defs>
12
+ <font id="ConsolasRegular" horiz-adv-x="1126" >
13
+ <font-face units-per-em="2048" ascent="1521" descent="-527" />
14
+ <missing-glyph horiz-adv-x="500" />
15
+ <glyph unicode=" " />
16
+ <glyph unicode="!" d="M428 113q0 27 10.5 51.5t28.5 42.5t42 28.5t52 10.5q27 0 51 -10.5t41.5 -28.5t28 -42.5t10.5 -51.5t-10.5 -51t-28 -41.5t-41.5 -28t-51 -10.5q-28 0 -52 10.5t-42 28t-28.5 41.5t-10.5 51zM455 1413h211l-27 -1030h-154z" />
17
+ <glyph unicode="&#x22;" d="M258 1413h221l-28 -469h-164zM647 1413h221l-28 -469h-164z" />
18
+ <glyph unicode="#" d="M43 367v130h226l36 350h-211v130h224l34 330h146l-33 -330h256l34 330h148l-35 -330h215v-130h-228l-35 -350h210v-130h-223l-37 -367h-148l37 367h-255l-37 -367h-148l37 367h-213zM417 497h256l35 350h-256z" />
19
+ <glyph unicode="$" d="M111 45v166q63 -22 137.5 -36t165.5 -19l59 450q-65 25 -128 54t-112.5 69.5t-80.5 95.5t-31 131q0 62 26 122.5t81 109t139 80t200 37.5l25 190h145l-26 -195q52 -5 104.5 -13t97.5 -19v-154q-55 14 -111 24t-110 15l-57 -428q67 -26 133 -56.5t118.5 -72t85 -98.5 t32.5 -136q0 -84 -34 -149t-95 -110t-147 -70.5t-189 -30.5l-33 -238h-146l33 238q-81 6 -154.5 17.5t-127.5 25.5zM307 975q0 -69 47.5 -113.5t141.5 -81.5l51 375q-125 -11 -182.5 -58.5t-57.5 -121.5zM559 156q135 10 196.5 60t61.5 136q0 36 -13 64.5t-39 51.5t-64.5 43 t-90.5 40z" />
20
+ <glyph unicode="%" d="M20 0l920 1413h166l-922 -1413h-164zM37 1124q0 64 19 119.5t54.5 96.5t86 64t112.5 23q61 0 109.5 -19t83 -56t53 -92t18.5 -127q0 -65 -19 -120.5t-54.5 -96t-86 -64t-112.5 -23.5q-61 0 -109.5 19t-83 56.5t-53 92.5t-18.5 127zM184 1128q0 -88 32 -130t89 -42 q29 0 51.5 13t38 36t23.5 54.5t8 68.5q0 88 -32 130t-89 42q-29 0 -51.5 -13t-38 -36t-23.5 -54.5t-8 -68.5zM553 281q0 64 19 119.5t54.5 96.5t86 64t112.5 23q61 0 110 -19t83.5 -56.5t53 -92.5t18.5 -127q0 -65 -19.5 -120t-55 -96t-86 -64t-112.5 -23q-61 0 -109.5 19 t-83 56t-53 92.5t-18.5 127.5zM700 285q0 -88 32 -130t89 -42q29 0 51.5 13t38.5 36t24 54.5t8 68.5q0 88 -32.5 130t-89.5 42q-29 0 -51.5 -13t-38 -36t-23.5 -54.5t-8 -68.5z" />
21
+ <glyph unicode="&#x26;" d="M57 352q0 76 20 135.5t54 106t78.5 82t93.5 65.5l-22 31q-56 69 -83.5 140t-27.5 139q0 72 23 133t67.5 105.5t110 69.5t149.5 25q81 0 142 -23t102 -63t61.5 -92.5t20.5 -111.5q0 -75 -25.5 -131.5t-67 -100t-95 -77.5t-109.5 -66l258 -322q44 118 41 285h176 q0 -131 -26 -238t-74 -192l202 -252h-231l-88 109q-71 -60 -158.5 -91.5t-189.5 -31.5q-97 0 -172 27t-126 75.5t-77.5 115.5t-26.5 148zM238 373q0 -53 17 -97t48.5 -75.5t77 -48.5t102.5 -17q130 0 228 96l-318 398q-34 -23 -62.5 -49t-49 -57t-32 -68t-11.5 -82z M350 1067q0 -54 20 -100.5t64 -102.5l27 -35q43 24 81 48.5t66.5 54t45 65t16.5 80.5q0 75 -42 117.5t-114 42.5q-40 0 -70.5 -13t-51.5 -36t-31.5 -54t-10.5 -67z" />
22
+ <glyph unicode="'" d="M449 1413h229l-29 -469h-172z" />
23
+ <glyph unicode="(" d="M300 524q0 121 24.5 241.5t79 241.5t144 242t217.5 240l101 -103q-388 -383 -388 -849q0 -232 98 -446t290 -404l-105 -107q-461 427 -461 944z" />
24
+ <glyph unicode=")" d="M260 -317q195 193 291 403t96 440q0 476 -387 856l105 107q461 -427 461 -950q0 -108 -22 -224t-75 -237.5t-142.5 -246.5t-225.5 -251z" />
25
+ <glyph unicode="*" d="M164 838l307 151l-307 154l69 117l283 -189l-24 342h143l-25 -342l283 191l70 -123l-308 -152l306 -147l-68 -119l-281 186l23 -342h-143l22 342l-287 -186z" />
26
+ <glyph unicode="+" d="M84 469v152h393v405h172v-405h393v-152h-393v-408h-172v408h-393z" />
27
+ <glyph unicode="," d="M238 -205q51 -2 99 9t84.5 32.5t58.5 53.5t22 73q0 42 -14.5 68t-32.5 48t-32.5 47t-14.5 67q0 21 8 44t24.5 42t42 31t60.5 12t67.5 -14.5t57 -44.5t39 -75t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35v137z" />
28
+ <glyph unicode="-" d="M264 463v164h598v-164h-598z" />
29
+ <glyph unicode="." d="M389 147q0 35 13 65.5t35.5 53.5t52.5 36t65 13q34 0 64.5 -13t53 -36t35.5 -53.5t13 -65.5q0 -34 -13 -64t-35.5 -52.5t-53 -35.5t-64.5 -13q-35 0 -65 13t-52.5 35.5t-35.5 52.5t-13 64z" />
30
+ <glyph unicode="/" d="M115 -215l686 1628h166l-686 -1628h-166z" />
31
+ <glyph unicode="0" d="M88 653q0 150 30.5 274t91 212.5t151.5 137t212 48.5q105 0 191 -39.5t147 -122t94 -209.5t33 -301q0 -150 -30 -273.5t-91 -212t-151.5 -137t-212.5 -48.5q-105 0 -191 39.5t-147 121.5t-94 209t-33 301zM264 659q0 -31 0.5 -62t3.5 -60l553 409q-15 51 -38 93t-55 72.5 t-73 47.5t-92 17q-68 0 -123.5 -33t-94.5 -98.5t-60 -162t-21 -223.5zM301 369q15 -52 38 -96t55.5 -75.5t74 -49t94.5 -17.5q68 0 123.5 33t94.5 98t60 161.5t21 223.5q0 34 -2.5 67.5t-5.5 65.5z" />
32
+ <glyph unicode="1" d="M135 1094l416 219h154v-1151h292v-162h-821v162h336v954l-313 -170z" />
33
+ <glyph unicode="2" d="M147 0v156l338 336q83 82 135 142t81 109.5t39 93.5t10 95q0 48 -13 91.5t-40 76.5t-70 52t-103 19q-83 0 -151 -37t-125 -96l-96 115q74 78 170.5 125t224.5 47q87 0 158.5 -26t123.5 -75t80.5 -120t28.5 -160q0 -75 -20 -139t-60.5 -127.5t-102 -131.5t-145.5 -149 l-237 -231h635v-166h-861z" />
34
+ <glyph unicode="3" d="M164 0v156q62 -11 131 -17t141 -6q98 0 167.5 17.5t113.5 50.5t64 80t20 106q0 54 -24 94t-67.5 67t-104 40.5t-132.5 13.5h-149v143h151q59 0 107.5 15.5t83 44.5t53 71.5t18.5 96.5q0 105 -64 153t-188 48q-66 0 -136 -13t-150 -39v152q34 12 72.5 21.5t77 16t76.5 10 t73 3.5q104 0 183 -22.5t132 -64.5t80 -102t27 -135q0 -112 -57.5 -188t-157.5 -121q51 -8 100.5 -32t89 -61.5t64 -88.5t24.5 -113q0 -86 -35 -161.5t-105 -132t-176 -89t-247 -32.5q-78 0 -140 5t-116 13z" />
35
+ <glyph unicode="4" d="M43 289v153l557 865h250v-865h223v-153h-223v-289h-178v289h-629zM217 442h455v697z" />
36
+ <glyph unicode="5" d="M178 0v158q54 -13 123.5 -19t140.5 -6q80 0 144 19t109 54.5t69 86t24 113.5q0 122 -87.5 177.5t-251.5 55.5h-248v668h704v-152h-540v-367h114q94 0 183 -17t158.5 -59.5t112 -114t42.5 -179.5q0 -97 -42 -177t-115.5 -137.5t-173.5 -89.5t-216 -32q-29 0 -62.5 1.5 t-66.5 4t-64.5 5.5t-56.5 7z" />
37
+ <glyph unicode="6" d="M123 561q0 100 13 194t43 177t80 152t124.5 118.5t175.5 77t234 27.5h129v-152h-140q-117 0 -203 -28t-144 -79t-89 -123t-39 -161l-4 -41q63 37 145.5 59.5t178.5 22.5q99 0 173.5 -29t124 -80.5t74.5 -123.5t25 -158q0 -90 -32.5 -169t-92.5 -137.5t-144.5 -92 t-187.5 -33.5q-108 0 -191 34.5t-139 106t-85 180.5t-29 258zM303 575q0 -129 18 -215.5t53.5 -138.5t87.5 -74t120 -22q57 0 104.5 18.5t82 54.5t54 87.5t19.5 117.5q0 60 -14.5 108.5t-45.5 82t-78.5 52t-113.5 18.5q-38 0 -77 -7t-76.5 -19.5t-71.5 -28.5t-62 -34z" />
38
+ <glyph unicode="7" d="M117 1145v162h884v-162l-548 -1145h-199l569 1145h-706z" />
39
+ <glyph unicode="8" d="M119 305q0 120 67 207t207 158q-128 65 -187 144.5t-59 182.5q0 63 26 122t78.5 105t131.5 73.5t186 27.5q101 0 177.5 -21.5t128.5 -61.5t78 -97t26 -127q0 -114 -63.5 -194t-180.5 -140q58 -29 108 -64t87 -78t57.5 -96t20.5 -118q0 -83 -34 -147.5t-95 -108.5 t-144 -67t-180 -23q-107 0 -188.5 24t-136.5 67t-83 102t-28 130zM307 317q0 -45 19.5 -79.5t53.5 -58.5t81 -36t102 -12q53 0 100 11t81.5 33.5t54.5 57t20 82.5q0 37 -12 72t-43 69t-83 68t-132 70q-68 -33 -114.5 -65.5t-75 -66t-40.5 -69.5t-12 -76zM326 1008 q0 -39 15 -72t46.5 -62t78.5 -57t112 -57q113 53 168 110.5t55 133.5q0 89 -62.5 132.5t-175.5 43.5q-112 0 -174.5 -43t-62.5 -129z" />
40
+ <glyph unicode="9" d="M100 891q0 91 33 170t92.5 137.5t142.5 92.5t183 34q97 0 179.5 -32t142.5 -103.5t94 -185.5t34 -277q0 -191 -46 -328.5t-136 -226t-223 -130.5t-307 -42h-109v152h121q129 0 223 26t156.5 76.5t95.5 123t41 165.5l4 41q-63 -37 -145 -59.5t-178 -22.5q-99 0 -174 29 t-124.5 81t-74.5 123.5t-25 155.5zM283 903q0 -61 14.5 -109t45 -81.5t78.5 -51.5t114 -18q37 0 76.5 7t77 19t71.5 28t61 34q0 129 -19 215.5t-55 139t-87.5 74.5t-116.5 22q-56 0 -103.5 -18.5t-82 -54t-54.5 -87.5t-20 -119z" />
41
+ <glyph unicode=":" d="M410 135q0 31 12 59t33 49t48.5 33.5t59.5 12.5q31 0 59 -12.5t49 -33.5t33.5 -49t12.5 -59q0 -32 -12.5 -59.5t-33.5 -48.5t-49 -33t-59 -12q-32 0 -59.5 12t-48.5 33t-33 48.5t-12 59.5zM410 868q0 31 12 59t33 49t48.5 33.5t59.5 12.5q31 0 59 -12.5t49 -33.5 t33.5 -49t12.5 -59q0 -32 -12.5 -59.5t-33.5 -48.5t-49 -33t-59 -12q-32 0 -59.5 12t-48.5 33t-33 48.5t-12 59.5z" />
42
+ <glyph unicode=";" d="M250 -205q51 -2 99 9t84.5 32.5t58.5 53.5t22 73q0 42 -14.5 68t-32.5 48t-32.5 47t-14.5 67q0 21 8 44t24.5 42t42 31t60.5 12t67.5 -14.5t57 -44.5t39 -75t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35v137zM410 868q0 31 12 59t33 49t48.5 33.5 t59.5 12.5q31 0 59 -12.5t49 -33.5t33.5 -49t12.5 -59q0 -32 -12.5 -59.5t-33.5 -48.5t-49 -33t-59 -12q-32 0 -59.5 12t-48.5 33t-33 48.5t-12 59.5z" />
43
+ <glyph unicode="&#x3c;" d="M137 545l672 561l109 -111l-545 -448l545 -453l-109 -110z" />
44
+ <glyph unicode="=" d="M133 298v147h860v-147h-860zM133 646v147h860v-147h-860z" />
45
+ <glyph unicode="&#x3e;" d="M209 94l545 449l-545 452l108 111l672 -561l-672 -561z" />
46
+ <glyph unicode="?" d="M303 1257v156h27q101 0 184.5 -19t149 -51.5t114 -76.5t81 -93t48 -101.5t15.5 -102.5q0 -162 -90 -245.5t-261 -94.5l-8 -246h-149l-13 383h117q61 0 102 13t66 37t36 58.5t11 77.5q0 73 -30 130t-84 96t-128.5 59t-162.5 20h-25zM356 113q0 27 10 51.5t28 42.5t42 28.5 t51 10.5q28 0 52 -10.5t41.5 -28.5t27.5 -42.5t10 -51.5t-10 -51t-27.5 -41.5t-41.5 -28t-52 -10.5q-27 0 -51 10.5t-42 28t-28 41.5t-10 51z" />
47
+ <glyph unicode="@" d="M10 344q-1 151 20 289.5t60.5 258.5t96 218.5t128 168t155.5 108t179 38.5q119 0 206.5 -48.5t144.5 -140t84.5 -224.5t27.5 -303q-1 -172 -22.5 -294.5t-60.5 -200.5t-94.5 -114.5t-123.5 -36.5q-78 0 -116 40t-38 108q-38 -77 -82 -112.5t-106 -35.5q-94 0 -141 70.5 t-47 222.5q0 55 6.5 118t22 126.5t40.5 122t61.5 103t86.5 71.5t114 27q38 0 71 -9t48 -18l129 31l-80 -520q-9 -64 -10 -106t5.5 -66t20.5 -33.5t35 -9.5q28 0 53 29.5t44.5 91t31 155.5t11.5 223q0 144 -18 257t-57 192t-101.5 120.5t-151.5 41.5q-68 0 -131.5 -34.5 t-118 -97t-99 -150t-76 -193.5t-49 -228t-17.5 -254q0 -322 97 -480.5t273 -158.5q89 0 166 20.5t160 61.5v-129q-82 -38 -164 -57t-172 -19q-255 0 -377.5 191t-124.5 569zM440 373q0 -96 12 -138t46 -42q12 0 24 5t25.5 19.5t29.5 40.5t35 68l66 438q-9 12 -27.5 21.5 t-46.5 9.5q-30 0 -54 -21t-42.5 -56t-31 -79.5t-21 -91.5t-12 -92.5t-3.5 -81.5z" />
48
+ <glyph unicode="A" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699z" />
49
+ <glyph unicode="B" d="M158 0v1307h374q437 0 437 -318q0 -106 -50.5 -182t-164.5 -113q53 -10 100.5 -34t83.5 -62t57 -90t21 -117q0 -94 -36.5 -166.5t-104 -122.5t-163 -76t-212.5 -26h-342zM336 150h188q153 0 228 57t75 178q0 50 -21 90t-61 67.5t-97.5 42.5t-129.5 15h-182v-450zM336 748 h178q61 0 110.5 13t85 40t55 67.5t19.5 96.5q0 40 -12 75.5t-42 61t-81 40.5t-129 15h-184v-409z" />
50
+ <glyph unicode="C" d="M92 639q0 157 41 284t117 215.5t184 136.5t242 48q91 0 169 -15.5t150 -47.5v-175q-71 39 -147 59.5t-166 20.5q-92 0 -166.5 -34.5t-126.5 -100t-80 -160t-28 -215.5q0 -254 103 -383t302 -129q84 0 161 19.5t148 54.5v-168q-157 -65 -329 -65q-277 0 -425.5 165.5 t-148.5 489.5z" />
51
+ <glyph unicode="D" d="M109 0v1307h337q306 0 456.5 -157.5t150.5 -481.5q0 -94 -14.5 -180t-46.5 -160t-83 -134.5t-125 -103.5t-172 -66.5t-223 -23.5h-280zM287 154h133q446 0 446 501q0 139 -26 235t-79 155t-133 85.5t-188 26.5h-153v-1003z" />
52
+ <glyph unicode="E" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743z" />
53
+ <glyph unicode="F" d="M205 0v1307h737v-152h-555v-424h526v-149h-526v-582h-182z" />
54
+ <glyph unicode="G" d="M66 639q0 161 45 288.5t126.5 216t196 135t252.5 46.5q88 0 167.5 -15.5t152.5 -49.5v-177q-73 39 -150 60.5t-168 21.5q-104 0 -185 -37t-136.5 -104.5t-85 -162.5t-29.5 -210q0 -120 24 -215t75 -161t130.5 -101t190.5 -35q19 0 41 2t44 5.5t42.5 8.5t36.5 11v416h-267 v147h443v-668q-41 -19 -86.5 -34t-93 -25t-94.5 -15t-91 -5q-134 0 -241.5 42t-183 124.5t-116 205.5t-40.5 285z" />
55
+ <glyph unicode="H" d="M111 0v1307h178v-553h549v553h178v-1307h-178v600h-549v-600h-178z" />
56
+ <glyph unicode="I" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782z" />
57
+ <glyph unicode="J" d="M182 59v179q62 -45 137.5 -71t149.5 -26q109 0 168 66.5t59 191.5v754h-497v154h678v-908q0 -84 -25 -159.5t-76 -131.5t-128 -89t-181 -33q-39 0 -79.5 5.5t-78 15t-70.5 23t-57 29.5z" />
58
+ <glyph unicode="K" d="M156 0v1307h178v-607l479 607h211l-516 -621l539 -686h-224l-489 641v-641h-178z" />
59
+ <glyph unicode="L" d="M233 0v1307h181v-1155h571v-152h-752z" />
60
+ <glyph unicode="M" d="M49 0l64 1307h211l176 -492l57 -166l55 166l185 492h217l63 -1307h-174l-26 815l-11 313l-61 -182l-193 -520h-123l-184 500l-61 202l-4 -327l-23 -801h-168z" />
61
+ <glyph unicode="N" d="M119 0v1307h229l363 -772l131 -299v700v371h166v-1307h-232l-381 815l-110 262v-659v-418h-166z" />
62
+ <glyph unicode="O" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5z" />
63
+ <glyph unicode="P" d="M158 0v1307h368q97 0 186 -21.5t156.5 -69.5t107.5 -124t40 -185q0 -80 -30 -158.5t-93 -140.5t-161 -100.5t-234 -38.5h-162v-469h-178zM336 621h166q158 0 243.5 69t85.5 209q0 126 -82.5 193t-230.5 67h-182v-538z" />
64
+ <glyph unicode="Q" d="M57 637q0 178 41 308t111.5 214.5t164.5 125t199 40.5q126 0 219.5 -45.5t155.5 -131t92.5 -207t30.5 -273.5q0 -160 -34 -280.5t-93 -204.5t-139 -132t-172 -63q15 -88 70 -141.5t155 -53.5q48 0 94.5 16t94.5 54l79 -123q-66 -54 -136 -77t-144 -23q-80 0 -147 22 t-116.5 65.5t-79.5 109t-36 151.5q-104 15 -181 66t-128 134.5t-76 197t-25 251.5zM242 664q0 -119 18 -215.5t56.5 -165.5t99.5 -106.5t147 -37.5q84 0 145 40t100.5 109t58.5 161.5t19 197.5q0 116 -17.5 211.5t-56.5 164t-100.5 106.5t-148.5 38q-84 0 -144.5 -40 t-99.5 -108.5t-58 -160t-19 -194.5z" />
65
+ <glyph unicode="R" d="M170 0v1307h350q114 0 196 -25t134.5 -70t77 -108.5t24.5 -140.5q0 -61 -18 -115.5t-53.5 -99t-88 -77t-120.5 -48.5q55 -19 93.5 -66.5t78.5 -126.5l207 -430h-201l-195 418q-22 48 -45 79.5t-49.5 50t-58 26.5t-70.5 8h-84v-582h-178zM348 725h144q63 0 113.5 14.5 t86 43t55 70t19.5 95.5q0 105 -65.5 157t-184.5 52h-168v-432z" />
66
+ <glyph unicode="S" d="M111 27v172q75 -28 168.5 -44t212.5 -16q86 0 146.5 13.5t99 40t56 64.5t17.5 87q0 53 -29.5 90.5t-77.5 67t-109.5 54t-125.5 50.5t-125.5 56.5t-109.5 72t-77.5 97.5t-29.5 133q0 67 28 132t87 115.5t151.5 81.5t220.5 31q33 0 71.5 -3t78 -8.5t78 -12.5t71.5 -15v-160 q-77 22 -154 33.5t-149 11.5q-153 0 -225 -51t-72 -137q0 -53 29.5 -91t77.5 -68t109.5 -54.5t125.5 -50.5t125.5 -57t109.5 -73.5t77.5 -99.5t29.5 -135q0 -93 -38 -163t-106 -116.5t-163.5 -69.5t-210.5 -23q-52 0 -103.5 4t-99 10t-89.5 14t-76 17z" />
67
+ <glyph unicode="T" d="M86 1155v152h954v-152h-387v-1155h-180v1155h-387z" />
68
+ <glyph unicode="U" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183z" />
69
+ <glyph unicode="V" d="M4 1307h201l282 -881l80 -258l82 258l283 881h190l-444 -1307h-240z" />
70
+ <glyph unicode="W" d="M45 1307h168l51 -889l15 -244l63 207l158 485h123l182 -520l61 -172l4 180l52 953h159l-88 -1307h-231l-162 465l-45 149l-47 -161l-150 -453h-223z" />
71
+ <glyph unicode="X" d="M18 0l435 668l-400 639h211l299 -492l301 492h205l-401 -631l434 -676h-225l-318 528l-319 -528h-222z" />
72
+ <glyph unicode="Y" d="M0 1307h215l260 -478l96 -192l88 174l263 496h204l-473 -840v-467h-180v471z" />
73
+ <glyph unicode="Z" d="M111 0v133l671 1012h-653v162h872v-140l-667 -1001h680v-166h-903z" />
74
+ <glyph unicode="[" d="M345 -410v1858h493v-140h-327v-1578h327v-140h-493z" />
75
+ <glyph unicode="\" d="M160 1413h166l686 -1628h-166z" />
76
+ <glyph unicode="]" d="M288 -270h325v1578h-325v140h493v-1858h-493v140z" />
77
+ <glyph unicode="^" d="M121 668l366 639h142l385 -639h-174l-289 501l-272 -501h-158z" />
78
+ <glyph unicode="_" d="M0 -266h1126v-144h-1126v144z" />
79
+ <glyph unicode="`" d="M0 1004zM174 1413h252l242 -242h-174z" />
80
+ <glyph unicode="a" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5z" />
81
+ <glyph unicode="b" d="M160 59v1354h174v-389l-8 -186q75 101 160.5 142.5t183.5 41.5q86 0 151 -36t109 -101.5t66 -158t22 -206.5q0 -125 -34.5 -223.5t-98 -167t-154.5 -105t-205 -36.5q-89 0 -182 17t-184 54zM334 172q51 -20 104 -31.5t101 -11.5q60 0 114.5 19t96 63.5t66 118t24.5 182.5 q0 79 -11.5 145t-36.5 113t-64 73.5t-93 26.5q-33 0 -67 -10.5t-70.5 -35t-77 -65t-86.5 -100.5v-487z" />
82
+ <glyph unicode="c" d="M158 492q0 119 37 216t104 166t160 106.5t205 37.5q78 0 146 -11t130 -36v-166q-65 34 -132.5 49.5t-139.5 15.5q-67 0 -126.5 -25.5t-104.5 -73.5t-71 -117t-26 -156q0 -182 88.5 -272.5t245.5 -90.5q71 0 137.5 16t128.5 48v-162q-68 -26 -139.5 -38.5t-147.5 -12.5 q-238 0 -366.5 129t-128.5 377z" />
83
+ <glyph unicode="d" d="M109 481q0 128 35 227.5t99.5 168t155 104t201.5 35.5q48 0 94.5 -6t91.5 -19v422h175v-1413h-156l-6 190q-73 -106 -158 -157t-184 -51q-86 0 -151.5 36t-109 101.5t-65.5 157.5t-22 204zM287 492q0 -182 53.5 -271.5t151.5 -89.5q66 0 139.5 59t154.5 175v466 q-43 20 -95 30.5t-103 10.5q-142 0 -221.5 -92t-79.5 -288z" />
84
+ <glyph unicode="e" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123z" />
85
+ <glyph unicode="f" d="M0 1004zM80 713v145h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323z" />
86
+ <glyph unicode="g" d="M94 -160q0 73 34 128t105 106q-26 12 -45 30t-31 39.5t-18 45.5t-6 47q0 65 30.5 119t72.5 102q-19 23 -33.5 45t-25 47.5t-16 55t-5.5 67.5q0 78 28.5 142.5t80 110.5t124 71.5t160.5 25.5q37 0 71 -5t60 -13h364v-142h-161q28 -35 43.5 -81.5t15.5 -100.5 q0 -78 -28.5 -142.5t-80.5 -110.5t-124.5 -71.5t-159.5 -25.5q-63 0 -118 13.5t-87 33.5q-19 -28 -32 -53t-13 -56q0 -38 36.5 -63t96.5 -27l264 -10q75 -2 138.5 -19t109 -49t71 -79t25.5 -109q0 -67 -29 -127t-89.5 -105.5t-153.5 -72.5t-221 -27q-122 0 -207.5 19.5 t-140.5 54t-80 82t-25 104.5zM279 -145q0 -71 74 -103.5t206 -32.5q83 0 139.5 15t91 39.5t49.5 56t15 64.5q0 61 -50 90t-153 34l-262 9q-33 -22 -54.5 -43t-33.5 -42.5t-17 -43t-5 -43.5zM332 676q0 -48 16 -88t45 -68t68.5 -43.5t87.5 -15.5q52 0 92.5 17.5t68 47.5 t42 69t14.5 81q0 48 -16 88t-45 68t-68.5 43.5t-87.5 15.5q-52 0 -92.5 -18t-68 -47.5t-42 -68.5t-14.5 -81z" />
87
+ <glyph unicode="h" d="M160 0v1413h174v-409l-6 -158q41 49 80.5 82.5t79 54.5t80.5 30t85 9q150 0 232 -91.5t82 -275.5v-655h-174v641q0 116 -43.5 173.5t-124.5 57.5q-35 0 -65.5 -9.5t-63.5 -33t-72 -63.5t-90 -100v-666h-174z" />
88
+ <glyph unicode="i" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM426 1288q0 29 10.5 53.5t29 43.5t43.5 29.5t54 10.5t54 -10.5t43.5 -29.5t29 -43.5t10.5 -53.5q0 -28 -10.5 -53t-29 -44t-43.5 -29.5t-54 -10.5t-54 10.5t-43.5 29.5t-29 44t-10.5 53z" />
89
+ <glyph unicode="j" d="M131 -203q31 -16 66.5 -29t73 -22t75.5 -13.5t74 -4.5q114 0 179 72t65 212v848h-492v144h668v-986q0 -105 -30 -186.5t-86 -137.5t-137.5 -85t-183.5 -29q-74 0 -144.5 13.5t-127.5 37.5v166zM598 1288q0 28 10.5 53t29 44t43.5 29.5t54 10.5t54 -10.5t43.5 -29.5 t29 -44t10.5 -53q0 -29 -10.5 -53.5t-29 -43.5t-43.5 -29.5t-54 -10.5t-54 10.5t-43.5 29.5t-29 43.5t-10.5 53.5z" />
90
+ <glyph unicode="k" d="M182 0v1413h174v-868l451 459h230l-471 -463l497 -541h-239l-468 538v-538h-174z" />
91
+ <glyph unicode="l" d="M172 0v145h330v1125h-297v143h473v-1268h299v-145h-805z" />
92
+ <glyph unicode="m" d="M90 0v1004h133l8 -191q26 57 50.5 97t50.5 64.5t55.5 36t65.5 11.5q81 0 123 -53t42 -164q24 52 47 92.5t49.5 68t58.5 42t74 14.5q189 0 189 -291v-731h-160v721q0 47 -3.5 77t-11 47.5t-19 24.5t-28.5 7q-20 0 -37 -12t-36.5 -39t-43 -71.5t-55.5 -109.5v-645h-159v702 q0 55 -3.5 89t-11 53t-19.5 26t-29 7q-18 0 -34 -10t-35.5 -36t-43.5 -71t-57 -115v-645h-160z" />
93
+ <glyph unicode="n" d="M160 0v1004h155l7 -162q44 52 85 86.5t80.5 55.5t80.5 29.5t85 8.5q155 0 234.5 -91.5t79.5 -275.5v-655h-174v641q0 118 -44 174.5t-131 56.5q-32 0 -62.5 -9.5t-63.5 -33t-71.5 -63.5t-86.5 -100v-666h-174z" />
94
+ <glyph unicode="o" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5z" />
95
+ <glyph unicode="p" d="M160 -410v1414h155l11 -168q75 103 160 144.5t184 41.5q86 0 151 -36t109 -101.5t66 -158t22 -206.5q0 -134 -37.5 -234t-103.5 -166t-156 -99t-195 -33q-48 0 -95.5 5t-96.5 17v-420h-174zM334 172q48 -20 101 -31.5t104 -11.5q141 0 221 95.5t80 287.5q0 79 -11.5 145 t-36.5 113t-64 73.5t-93 26.5q-33 0 -67 -10.5t-70.5 -35t-77 -65t-86.5 -100.5v-487z" />
96
+ <glyph unicode="q" d="M109 481q0 108 28.5 205t88 170.5t152.5 116.5t222 43q51 0 101 -8t106 -25l154 39v-1432h-175v379l9 215q-142 -202 -338 -202q-88 0 -153 36t-108.5 102t-65 158t-21.5 203zM287 492q0 -84 12.5 -151t38 -113.5t64 -71.5t90.5 -25q66 0 139.5 59t154.5 175v466 q-40 19 -90.5 31t-107.5 12q-147 0 -224 -97t-77 -285z" />
97
+ <glyph unicode="r" d="M201 0v1004h159l5 -185q89 107 175.5 155t174.5 48q157 0 237 -101q75 -94 74 -273v-27h-176v17q0 118 -38 174q-42 60 -122 60q-35 0 -70.5 -12.5t-73 -40t-79.5 -70.5t-90 -104v-645h-176z" />
98
+ <glyph unicode="s" d="M182 20v160q88 -25 175 -38t173 -13q125 0 185 34t60 97q0 27 -9.5 48.5t-34.5 41t-77.5 40.5t-143.5 48q-68 20 -125.5 45.5t-99.5 60.5t-66 82t-24 111q0 42 19.5 92t66.5 93t127 71.5t200 28.5q59 0 131 -6.5t150 -22.5v-155q-82 20 -155.5 29.5t-127.5 9.5 q-65 0 -109.5 -10t-72 -27.5t-39.5 -41t-12 -50.5t10.5 -49t39 -42.5t79.5 -41t133 -44.5q89 -26 150 -54.5t99 -63.5t54.5 -79t16.5 -100q0 -53 -18 -95t-49 -74.5t-72 -55.5t-87.5 -38t-95.5 -22t-96 -7q-102 0 -187.5 9t-167.5 29z" />
99
+ <glyph unicode="t" d="M63 858v146h281v276l174 45v-321h451v-146h-451v-510q0 -108 57.5 -161.5t169.5 -53.5q48 0 105 7.5t119 23.5v-150q-59 -15 -122 -21.5t-128 -6.5q-189 0 -282 85.5t-93 262.5v524h-281z" />
100
+ <glyph unicode="u" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275z" />
101
+ <glyph unicode="v" d="M66 1004h198l246 -664l53 -162l55 166l244 660h191l-394 -1004h-200z" />
102
+ <glyph unicode="w" d="M37 1004h170l84 -682l18 -152l43 133l146 451h125l157 -445l45 -133l15 141l78 687h172l-146 -1004h-211l-145 420l-29 102l-33 -108l-139 -414h-205z" />
103
+ <glyph unicode="x" d="M70 0l389 504l-371 500h223l264 -386l259 386h215l-377 -504l393 -500h-231l-271 383l-268 -383h-225z" />
104
+ <glyph unicode="y" d="M59 -254q22 -3 48 -5.5t55 -2.5q48 0 89.5 14t78.5 45.5t71 81.5t66 121l-401 1004h198l254 -664l51 -156l58 160l235 660h191l-342 -898q-53 -137 -109.5 -236t-123.5 -162.5t-147 -93.5t-179 -30q-26 0 -47 1t-46 3v158z" />
105
+ <glyph unicode="z" d="M164 0v125l567 733h-553v146h762v-136l-557 -721h590v-147h-809z" />
106
+ <glyph unicode="{" d="M162 506v139h43q73 0 119 12t72 36.5t36 62.5t10 90v237q0 84 20 151.5t65.5 115t118 73t177.5 25.5h74v-140h-59q-232 0 -232 -225v-233q0 -244 -211 -275q213 -21 213 -274v-342q0 -229 230 -229h59v-140h-74q-193 0 -287 90.5t-94 274.5v344q0 49 -11 87.5t-38.5 65 t-73 40.5t-114.5 14h-43z" />
107
+ <glyph unicode="|" d="M481 -410v2048h164v-2048h-164z" />
108
+ <glyph unicode="}" d="M229 -270h60q231 0 231 225v346q0 244 211 274q-213 23 -213 275v229q0 229 -229 229h-60v140h74q193 0 287 -90.5t94 -274.5v-231q0 -49 11 -87.5t38.5 -65t73.5 -40.5t115 -14h43v-139h-43q-73 0 -119.5 -12t-72.5 -36.5t-36 -62.5t-10 -90v-350q0 -84 -20 -151.5 t-65 -115t-118 -73t-178 -25.5h-74v140z" />
109
+ <glyph unicode="~" d="M66 401q-2 76 15.5 140.5t53 112t89 74t124.5 26.5q55 0 99 -18.5t81.5 -46.5t69 -61t62 -61t60.5 -46.5t64 -18.5q63 0 90 46t27 148h160q1 -76 -16 -140.5t-53 -111.5t-89.5 -73.5t-124.5 -26.5q-55 0 -99 18.5t-81.5 46.5t-69 61t-62 61t-60.5 46.5t-64 18.5 q-59 0 -87.5 -47t-28.5 -148h-160z" />
110
+ <glyph unicode="&#xa0;" />
111
+ <glyph unicode="&#xa1;" d="M434 891q0 27 10.5 51t28.5 41.5t41.5 28t50.5 10.5q28 0 52 -10.5t42 -28t28.5 -41.5t10.5 -51q0 -28 -10.5 -52t-28.5 -42t-42 -28.5t-52 -10.5q-27 0 -50.5 10.5t-41.5 28.5t-28.5 42t-10.5 52zM461 -410l26 1031h154l31 -1031h-211z" />
112
+ <glyph unicode="&#xa2;" d="M125 657q0 112 35 203.5t99 157.5t153 103.5t196 41.5l43 332h148l-45 -340q40 -5 78 -14.5t75 -22.5v-164q-42 20 -85 34t-87 22l-94 -693q71 0 137 14.5t129 45.5v-158q-134 -49 -284 -49l-58 -420h-145l57 432q-171 35 -261.5 154t-90.5 321zM307 666 q0 -131 50 -212.5t141 -115.5l90 676q-59 -8 -110.5 -34.5t-89.5 -71t-59.5 -105.5t-21.5 -137z" />
113
+ <glyph unicode="&#xa3;" d="M92 0v148h160v431h-160v143h160v180q0 101 29.5 179.5t84 132.5t132 82.5t174.5 28.5q106 0 190 -37.5t144 -92.5l-97 -111q-26 22 -52 39.5t-54.5 29.5t-61.5 18t-73 6q-54 0 -98 -17t-75 -50t-48 -81.5t-17 -112.5v-194h436v-143h-436v-431h567v-148h-905z" />
114
+ <glyph unicode="&#xa4;" d="M86 152l174 229q-35 51 -54.5 119.5t-19.5 154.5q0 78 21 147.5t61 125.5l-182 243l154 91l147 -230q38 22 84 33.5t100 11.5q102 0 179 -37l141 222l149 -91l-174 -229q35 -51 54.5 -119.5t19.5 -154.5q0 -78 -21 -147.5t-61 -125.5l182 -243l-153 -91l-148 230 q-38 -22 -84 -33.5t-100 -11.5q-103 0 -178 37l-141 -222zM366 662q0 -131 53 -197t144 -66q52 0 89.5 24t61.5 61.5t35 84.5t11 93q0 131 -53 196.5t-144 65.5q-52 0 -89 -23.5t-61.5 -61t-35.5 -84.5t-11 -93z" />
115
+ <glyph unicode="&#xa5;" d="M55 1307h205l209 -367l100 -188l107 192l205 363h196l-424 -705v-29h308v-135h-308v-162h308v-135h-308v-141h-180v141h-307v135h307v162h-309v135h309v29z" />
116
+ <glyph unicode="&#xa6;" d="M481 -410v836h164v-836h-164zM481 827v811h164v-811h-164z" />
117
+ <glyph unicode="&#xa7;" d="M141 674q0 39 11 79t33 77.5t55 71t77 59.5q-29 24 -52 64.5t-23 94.5q0 48 19.5 101.5t66.5 98.5t127 75t200 30q115 0 226 -24v-150q-63 17 -118.5 24t-111.5 7q-65 0 -108.5 -11t-70.5 -30.5t-38.5 -46.5t-11.5 -59q0 -34 24.5 -63.5t64.5 -58.5t91 -58t104.5 -61.5 t104.5 -69.5t91 -82t64.5 -98.5t24.5 -119.5q0 -40 -11.5 -80t-34 -77.5t-55.5 -70.5t-75 -58q32 -26 55 -67t23 -89q0 -83 -39 -142.5t-100 -98t-135.5 -56.5t-145.5 -18q-51 0 -91 2t-75 6t-67 10.5t-66 15.5v160q37 -12 71.5 -21t69.5 -15t72.5 -8.5t79.5 -2.5 q125 0 185.5 41.5t60.5 114.5q0 33 -24.5 62t-65 57t-91.5 57t-105 61.5t-105 69.5t-91.5 81.5t-65 97.5t-24.5 118zM311 690q0 -61 36 -109.5t92.5 -91t124.5 -81.5t132 -80q31 15 54 37.5t39 47.5t24 50.5t8 46.5q0 61 -37 109.5t-94 90t-125.5 80t-130.5 80.5 q-30 -15 -53 -37t-38.5 -47t-23.5 -50t-8 -46z" />
118
+ <glyph unicode="&#xa8;" d="M0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5 t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
119
+ <glyph unicode="&#xa9;" d="M12 653q0 148 39.5 271t112.5 211.5t174.5 138t226.5 49.5q129 0 231 -51.5t172.5 -142t108 -213t37.5 -263.5q0 -148 -39.5 -271t-112.5 -211.5t-175 -137.5t-226 -49q-129 0 -231 51.5t-172.5 141.5t-108 212.5t-37.5 263.5zM160 653q0 -114 28.5 -212.5t81 -171 t127 -113.5t166.5 -41q91 0 165.5 38.5t127.5 109t81.5 169.5t28.5 221q0 114 -28 212.5t-80.5 171t-127.5 114t-167 41.5q-90 0 -164.5 -38.5t-127.5 -109t-82 -170t-29 -221.5zM299 647q0 78 21.5 140.5t61 107t95.5 68.5t125 24q93 0 168 -31v-134q-35 19 -72 29t-75 10 q-82 0 -127 -54.5t-45 -156.5q0 -106 44.5 -155.5t129.5 -49.5q76 0 145 37v-130q-83 -33 -174 -33q-297 0 -297 328z" />
120
+ <glyph unicode="&#xaa;" d="M225 358v136h676v-136h-676zM244 821q0 97 83 156t251 59h104v49q0 51 -34.5 82t-117.5 31q-49 0 -110 -14t-123 -39v133q51 20 117 31.5t135 11.5q78 0 133 -16t90 -46t51.5 -72.5t16.5 -94.5v-461h-133l-11 92q-46 -48 -102.5 -77.5t-134.5 -29.5q-99 0 -157 51.5 t-58 153.5zM410 825q0 -42 24 -64t72 -22q40 0 84 22.5t92 65.5v101h-119q-41 0 -70 -8t-47.5 -22.5t-27 -33t-8.5 -39.5z" />
121
+ <glyph unicode="&#xab;" d="M143 543l258 403l138 -69l-218 -334l218 -336l-138 -70zM563 543l275 399l133 -72l-234 -327l234 -328l-133 -72z" />
122
+ <glyph unicode="&#xac;" d="M117 469v152h854v-447h-170v295h-684z" />
123
+ <glyph unicode="&#xad;" d="M264 463v164h598v-164h-598z" />
124
+ <glyph unicode="&#x2010;" d="M264 463v164h598v-164h-598z" />
125
+ <glyph unicode="&#xae;" d="M106 969q0 94 36 177.5t98 145t145 97.5t178 36q94 0 177.5 -36t145.5 -97.5t98 -145t36 -177.5q0 -95 -36 -178t-98 -145t-145.5 -98t-177.5 -36q-95 0 -178 36t-145 98t-98 145t-36 178zM221 969q0 -74 26.5 -138.5t73 -112.5t109 -76t133.5 -28q72 0 134 28t108.5 76 t73 112.5t26.5 138.5q0 73 -26.5 137.5t-73 112.5t-108.5 76t-134 28q-71 0 -133.5 -28t-109 -76t-73 -112.5t-26.5 -137.5zM397 709v520h156q88 0 140 -32t52 -112q0 -57 -32.5 -89t-81.5 -40q18 -5 34 -22t33 -51l82 -174h-116l-74 168q-11 23 -28.5 35t-43.5 12h-20v-215 h-101zM498 1001h41q46 0 74 18.5t28 55.5q0 38 -24.5 55t-73.5 17h-45v-146z" />
126
+ <glyph unicode="&#xaf;" d="M0 1004zM301 1225v133h524v-133h-524z" />
127
+ <glyph unicode="&#x2c9;" d="M0 1004zM301 1225v133h524v-133h-524z" />
128
+ <glyph unicode="&#xb0;" d="M213 1083q0 72 26 134.5t73 108.5t112.5 72.5t144.5 26.5q83 0 147.5 -24t108 -67.5t66 -104t22.5 -133.5q0 -72 -26 -134.5t-73 -108.5t-112.5 -72.5t-144.5 -26.5q-83 0 -147 24t-108 67.5t-66.5 104t-22.5 133.5zM375 1090q0 -43 10.5 -80t33.5 -64t58.5 -42t85.5 -15 q90 0 139 55t49 146q0 43 -11 79.5t-33.5 63.5t-58 42t-85.5 15q-45 0 -80 -14.5t-59 -40.5t-36.5 -63t-12.5 -82z" />
129
+ <glyph unicode="&#xb1;" d="M104 684v147h375v388h168v-388h375v-147h-375v-389h-168v389h-375zM133 0v145h860v-145h-860z" />
130
+ <glyph unicode="&#xb2;" d="M246 774l217 168q58 45 94.5 77t57.5 57.5t28.5 48t7.5 49.5q0 46 -33.5 76t-99.5 30q-51 0 -97 -18.5t-83 -50.5l-86 106q54 54 128.5 83.5t158.5 29.5q63 0 117.5 -15.5t94 -46.5t62.5 -76.5t23 -105.5q0 -47 -14 -88t-42.5 -79.5t-70.5 -75.5t-97 -76l-114 -82h385 v-154h-637v143z" />
131
+ <glyph unicode="&#xb3;" d="M274 771q34 -8 89.5 -12t115.5 -4q91 0 145 28.5t54 80.5q0 24 -10 43.5t-33.5 33t-62.5 21t-97 7.5h-82v129h76q49 0 82 8.5t53 23t28.5 34t8.5 40.5q0 19 -7 34.5t-23 27t-43.5 18t-67.5 6.5q-54 0 -109 -9t-100 -23v141q24 7 53.5 12.5t61 9.5t64 6.5t62.5 2.5 q148 0 218.5 -53.5t70.5 -141.5q0 -71 -33 -115.5t-92 -70.5q38 -10 68.5 -25t52.5 -36.5t33.5 -50.5t11.5 -68q0 -56 -25 -103t-73.5 -80.5t-121.5 -52t-169 -18.5q-29 0 -58 1t-55 3t-48 5t-38 7v140z" />
132
+ <glyph unicode="&#xb4;" d="M0 1004zM459 1171l241 242h252l-319 -242h-174z" />
133
+ <glyph unicode="&#xb5;" d="M160 -410v1414h174v-639q0 -232 174 -232q30 0 62 10t63.5 32.5t67 62t79.5 100.5v666h174v-689q0 -51 5 -85t17.5 -54.5t32.5 -29.5t50 -9h18v-139q-14 -3 -31.5 -5.5t-37.5 -2.5q-50 0 -85.5 12.5t-59.5 36t-38.5 57.5t-23.5 76q-43 -57 -83 -93.5t-79.5 -57.5t-75 -29 t-68.5 -8q-52 0 -96.5 18.5t-78.5 57.5l14 -173v-297h-174z" />
134
+ <glyph unicode="&#xb6;" d="M109 995q0 87 32.5 163t99 133t168.5 89.5t242 32.5h346v-1208q0 -105 -29.5 -187t-85 -137.5t-135 -84.5t-178.5 -29t-185 32t-159 90l90 131q53 -46 121.5 -75t141.5 -29q114 0 179.5 71t65.5 212v1071h-168v-699q-155 0 -259.5 33.5t-168.5 91t-91 135t-27 164.5z" />
135
+ <glyph unicode="&#xb7;" d="M397 565q0 34 13 65t35.5 53.5t52.5 36t65 13.5q34 0 64.5 -13.5t53 -36t35.5 -53.5t13 -65t-13 -64t-35.5 -52.5t-53 -36t-64.5 -13.5q-35 0 -65 13.5t-52.5 36t-35.5 52.5t-13 64z" />
136
+ <glyph unicode="&#x2219;" d="M397 565q0 34 13 65t35.5 53.5t52.5 36t65 13.5q34 0 64.5 -13.5t53 -36t35.5 -53.5t13 -65t-13 -64t-35.5 -52.5t-53 -36t-64.5 -13.5q-35 0 -65 13.5t-52.5 36t-35.5 52.5t-13 64z" />
137
+ <glyph unicode="&#xb8;" d="M436 -295l66 295h172l-86 -295h-152z" />
138
+ <glyph unicode="&#xb9;" d="M227 1266l312 156h139v-646h201v-145h-613v145h238v467l-219 -108z" />
139
+ <glyph unicode="&#xba;" d="M221 965q0 76 24 141t69 113t110.5 75t148.5 27q78 0 139.5 -22t104 -65.5t65.5 -108.5t23 -150q0 -75 -23.5 -140.5t-68.5 -114t-109.5 -76.5t-146.5 -28q-78 0 -140.5 22t-106 65.5t-66.5 109t-23 152.5zM225 358v136h676v-136h-676zM385 969q0 -109 48.5 -163 t129.5 -54q45 0 78 16.5t55.5 46t33.5 69.5t11 87q0 108 -45.5 161t-132.5 53q-45 0 -78 -17t-55.5 -46.5t-33.5 -69t-11 -83.5z" />
140
+ <glyph unicode="&#xbb;" d="M156 215l233 328l-233 327l133 72l274 -399l-274 -400zM588 207l217 336l-217 334l137 69l258 -403l-258 -406z" />
141
+ <glyph unicode="&#xbc;" d="M20 0l920 1413h166l-922 -1413h-164zM25 1296l239 129h139v-581h-157v426l-166 -90zM535 109v122l219 338h233v-338h90v-122h-90v-109h-153v109h-299zM688 231h146v226z" />
142
+ <glyph unicode="&#xbd;" d="M20 0l920 1413h166l-922 -1413h-164zM25 1296l239 129h139v-581h-157v426l-166 -90zM633 502q22 19 45 34.5t48.5 26t55 16t64.5 5.5q44 0 83 -12.5t68.5 -36.5t46.5 -59.5t17 -82.5q0 -30 -9.5 -56.5t-30 -53t-53 -54.5t-79.5 -61l-62 -43h252v-125h-440v125l186 147 q47 35 63.5 60.5t16.5 54.5q0 15 -3.5 28t-12.5 23.5t-24.5 16.5t-39.5 6q-32 0 -59.5 -14t-65.5 -46z" />
143
+ <glyph unicode="&#xbe;" d="M20 0l920 1413h166l-922 -1413h-164zM86 842v119q23 -5 53.5 -8t59.5 -3q63 0 89.5 18.5t26.5 49.5q0 34 -24 47.5t-78 13.5h-90v113h84q47 0 64.5 17.5t17.5 43.5q0 23 -18.5 39.5t-63.5 16.5q-31 0 -58 -5.5t-53 -11.5v113q34 12 71.5 17t82.5 5q100 0 152.5 -38 t52.5 -103q0 -52 -19 -84t-61 -49q56 -11 85 -44t29 -87q0 -42 -18 -77t-53.5 -61t-88 -40.5t-122.5 -14.5q-31 0 -63 3.5t-58 9.5zM535 109v122l219 338h233v-338h90v-122h-90v-109h-153v109h-299zM688 231h146v226z" />
144
+ <glyph unicode="&#xbf;" d="M203 35q0 161 90.5 245t259.5 95l8 246h150l12 -383h-117q-61 0 -102 -13t-66 -37t-36 -58.5t-11 -78.5q0 -73 30.5 -129.5t84.5 -95.5t128.5 -59.5t162.5 -20.5h24v-156h-26q-101 0 -184.5 19t-149.5 51.5t-114.5 76.5t-80.5 93.5t-47.5 102t-15.5 102.5zM506 891 q0 27 10 51t27.5 41.5t41.5 28t52 10.5t52 -10.5t41.5 -28t27.5 -41.5t10 -51q0 -28 -10 -52t-27.5 -42t-41.5 -28.5t-52 -10.5t-52 10.5t-41.5 28.5t-27.5 42t-10 52z" />
145
+ <glyph unicode="&#xc0;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM205 1659h252l211 -213h-179z" />
146
+ <glyph unicode="&#xc1;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
147
+ <glyph unicode="&#xc2;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
148
+ <glyph unicode="&#xc3;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17t-70.5 37 t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
149
+ <glyph unicode="&#xc4;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5z M676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
150
+ <glyph unicode="&#xc5;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM362 1550q0 42 15.5 77t42.5 60.5t63.5 39t79.5 13.5t80 -13.5t64 -39t42 -60.5t15 -77q0 -41 -15 -76.5t-42 -61t-64 -40t-80 -14.5t-79.5 14.5t-63.5 40t-42.5 61 t-15.5 76.5zM473 1550q0 -40 25 -65t65 -25q42 0 66 25t24 65q0 41 -24 64.5t-66 23.5q-40 0 -65 -23.5t-25 -64.5z" />
151
+ <glyph unicode="&#xc6;" d="M-43 0l532 1307h582v-142h-321v-417h307v-142h-307v-463h335v-143h-501v281h-342l-109 -281h-176zM297 424h287v743z" />
152
+ <glyph unicode="&#xc7;" d="M92 639q0 157 41 284t117 215.5t184 136.5t242 48q91 0 169 -15.5t150 -47.5v-175q-71 39 -147 59.5t-166 20.5q-92 0 -166.5 -34.5t-126.5 -100t-80 -160t-28 -215.5q0 -252 103 -382t302 -130q84 0 161 19.5t148 54.5v-168q-159 -65 -319 -65l-82 -279h-152l66 295 q-202 41 -309 204.5t-107 434.5z" />
153
+ <glyph unicode="&#xc8;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM205 1659h252l211 -213h-179z" />
154
+ <glyph unicode="&#xc9;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
155
+ <glyph unicode="&#xca;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
156
+ <glyph unicode="&#xcb;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42 t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
157
+ <glyph unicode="&#xcc;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM205 1659h252l211 -213h-179z" />
158
+ <glyph unicode="&#xcd;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
159
+ <glyph unicode="&#xce;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
160
+ <glyph unicode="&#xcf;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42 t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
161
+ <glyph unicode="&#xd0;" d="M0 602v150h139v555h318q305 0 450.5 -157.5t145.5 -481.5q0 -94 -13.5 -180t-44.5 -160t-81 -134.5t-122.5 -103.5t-170 -66.5t-222.5 -23.5h-260v602h-139zM317 154h113q223 0 329.5 125.5t106.5 375.5q0 139 -24.5 235t-75.5 155t-129.5 85.5t-185.5 26.5h-134v-405 h226v-150h-226v-448z" />
162
+ <glyph unicode="&#xd1;" d="M119 0v1307h229l363 -772l131 -299v700v371h166v-1307h-232l-381 815l-110 262v-659v-418h-166zM0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17 t-70.5 37t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
163
+ <glyph unicode="&#xd2;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM205 1659h252l211 -213h-179z" />
164
+ <glyph unicode="&#xd3;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
165
+ <glyph unicode="&#xd4;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
166
+ <glyph unicode="&#xd5;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17 q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17t-70.5 37t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
167
+ <glyph unicode="&#xd6;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42 t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
168
+ <glyph unicode="&#xd7;" d="M147 844l117 117l303 -306l301 301l107 -106l-301 -301l305 -303l-117 -117l-303 305l-301 -301l-106 107l301 301z" />
169
+ <glyph unicode="&#xd8;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q62 0 115 -12l64 209h145l-78 -258q127 -75 188.5 -228.5t61.5 -373.5q0 -176 -41 -304t-111.5 -211.5t-164.5 -124t-199 -40.5q-31 0 -59 2.5t-56 7.5l-61 -207h-146l76 256q-126 72 -188 227.5t-62 378.5zM242 657 q0 -146 27.5 -259t90.5 -179l283 940q-19 5 -38.5 7.5t-41.5 2.5q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM485 145q17 -5 37 -6.5t41 -1.5q84 0 144.5 40.5t100 110t58.5 162.5t19 199q0 146 -28 257t-91 179z" />
170
+ <glyph unicode="&#xd9;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM205 1659h252l211 -213h-179z" />
171
+ <glyph unicode="&#xda;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM459 1446l211 213h252l-285 -213h-178z " />
172
+ <glyph unicode="&#xdb;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM248 1446l231 213h168l232 -213h-183 l-135 102l-135 -102h-178z" />
173
+ <glyph unicode="&#xdc;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM238 1552q0 22 8.5 42t22.5 34 t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5 q-45 0 -75.5 30.5t-30.5 75.5z" />
174
+ <glyph unicode="&#xdd;" d="M0 1307h215l260 -478l96 -192l88 174l263 496h204l-473 -840v-467h-180v471zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
175
+ <glyph unicode="&#xde;" d="M158 0v1307h178v-195h190q97 0 186 -23t156.5 -72.5t107.5 -127.5t40 -187q0 -80 -30 -160t-93 -144t-161 -104t-234 -40h-162v-254h-178zM336 406h166q158 0 243.5 74t85.5 214q0 63 -21 113t-61.5 85.5t-98.5 54t-132 18.5h-182v-559z" />
176
+ <glyph unicode="&#xdf;" d="M147 0v1010q0 106 32 184t89 129.5t135 76.5t170 25q85 0 151.5 -20t112.5 -57t69.5 -89.5t23.5 -117.5q0 -60 -19.5 -102t-48.5 -73t-63 -55t-63 -47.5t-48.5 -50.5t-19.5 -65t26 -69t65.5 -62t85.5 -63t85.5 -72t65.5 -89.5t26 -113.5q0 -53 -19.5 -105t-64 -93 t-115.5 -67t-174 -26q-51 0 -93 4.5t-67 7.5v154q11 -4 29 -8t39 -7t43 -4.5t41 -1.5q53 0 91.5 10t63 27t36.5 39.5t12 48.5q0 47 -26 83t-65 68t-85 64t-85 69.5t-65 85t-26 111.5q0 56 19.5 96t48.5 70.5t63 54t63 48t48.5 53t19.5 67.5q0 82 -50.5 119t-146.5 37 q-54 0 -97 -15t-74 -47.5t-47.5 -83.5t-16.5 -122v-1016h-175z" />
177
+ <glyph unicode="&#xe0;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM174 1413h252l242 -242h-174z" />
178
+ <glyph unicode="&#xe1;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
179
+ <glyph unicode="&#xe2;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
180
+ <glyph unicode="&#xe3;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17 q40 0 70.5 27.5t58.5 70.5l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
181
+ <glyph unicode="&#xe4;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5 t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
182
+ <glyph unicode="&#xe5;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM348 1294q0 43 17 81t46 66t68 44t84 16t84 -16t68 -44t46 -66t17 -81t-17 -80.5 t-46 -65.5t-68 -44t-84 -16t-84 16t-68 44t-46 65.5t-17 80.5zM463 1294q0 -42 29 -71t71 -29q21 0 39 8t31.5 21.5t21.5 31.5t8 39t-8 39.5t-21.5 32t-31.5 21.5t-39 8t-39 -8t-31.5 -21.5t-21.5 -32t-8 -39.5z" />
183
+ <glyph unicode="&#xe6;" d="M31 268q0 75 19.5 134.5t60 100t103.5 62t151 21.5h120v84q0 101 -34.5 156t-118.5 55q-57 0 -120.5 -19.5t-125.5 -54.5v151q24 12 54.5 23.5t63.5 20.5t68 14.5t68 5.5q91 0 152.5 -29.5t87.5 -91.5q35 56 90.5 88.5t128.5 32.5q78 0 132.5 -32t89 -90t50.5 -139.5 t16 -180.5q0 -54 -1 -81t-3 -42h-444q0 -161 46.5 -246.5t154.5 -85.5q57 0 113 12t98 29v-139q-23 -10 -53 -18.5t-63 -14.5t-67 -9t-65 -3q-194 0 -268 174q-51 -82 -117 -128t-142 -46q-120 0 -182.5 73t-62.5 213zM195 274q0 -75 26 -112t74 -37q42 0 88.5 34t101.5 122 v176h-125q-87 0 -126 -50t-39 -133zM639 586h285q1 62 -5.5 116.5t-22 94.5t-41 63t-62.5 23q-39 0 -67.5 -23t-48 -62.5t-29 -94t-9.5 -117.5z" />
184
+ <glyph unicode="&#xe7;" d="M158 492q0 119 37 216t104 166t160 106.5t205 37.5q78 0 146 -11t130 -36v-166q-65 34 -132.5 49.5t-139.5 15.5q-67 0 -126.5 -25.5t-104.5 -73.5t-71 -117t-26 -156q0 -182 88.5 -272.5t245.5 -90.5q71 0 137.5 16t128.5 48v-162q-68 -26 -135 -38t-128 -13l-82 -281 h-152l66 295q-174 38 -262.5 163.5t-88.5 328.5z" />
185
+ <glyph unicode="&#xe8;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM174 1413h252l242 -242h-174z" />
186
+ <glyph unicode="&#xe9;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
187
+ <glyph unicode="&#xea;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
188
+ <glyph unicode="&#xeb;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5 t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
189
+ <glyph unicode="&#xec;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM174 1413h252l242 -242h-174z" />
190
+ <glyph unicode="&#xed;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
191
+ <glyph unicode="&#xee;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
192
+ <glyph unicode="&#xef;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5 t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
193
+ <glyph unicode="&#xf0;" d="M100 477q0 109 31 206.5t91 171t147.5 116.5t201.5 43q7 0 20 -1t25 -3q-20 29 -44 63.5t-50 69.5l-280 -60v146l186 39l-115 145h217l82 -104l297 61v-145l-204 -41q73 -101 129 -192.5t94 -175.5t58 -162t20 -152q0 -53 -8.5 -112.5t-28.5 -117t-54.5 -110t-86 -93 t-123 -64t-166.5 -23.5q-106 0 -188 35.5t-137.5 100.5t-84.5 156.5t-29 202.5zM279 487q0 -87 20.5 -154t57 -112.5t87 -68.5t109.5 -23q69 0 120.5 26.5t85.5 74t51 114.5t17 148q0 86 -26.5 173t-83.5 187q-42 9 -74 12.5t-61 3.5q-84 0 -142 -31t-93.5 -83.5 t-51.5 -121.5t-16 -145z" />
194
+ <glyph unicode="&#xf1;" d="M160 0v1004h155l7 -162q44 52 85 86.5t80.5 55.5t80.5 29.5t85 8.5q155 0 234.5 -91.5t79.5 -275.5v-655h-174v641q0 118 -44 174.5t-131 56.5q-32 0 -62.5 -9.5t-63.5 -33t-71.5 -63.5t-86.5 -100v-666h-174zM0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17 t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
195
+ <glyph unicode="&#xf2;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM174 1413h252l242 -242h-174z" />
196
+ <glyph unicode="&#xf3;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
197
+ <glyph unicode="&#xf4;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
198
+ <glyph unicode="&#xf5;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5 l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
199
+ <glyph unicode="&#xf6;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5 t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
200
+ <glyph unicode="&#xf7;" d="M84 469v152h958v-152h-958zM428 154q0 27 10.5 51.5t28.5 42.5t42 28.5t52 10.5q27 0 51 -10.5t41.5 -28.5t28 -42.5t10.5 -51.5t-10.5 -51t-28 -41.5t-41.5 -28t-51 -10.5q-28 0 -52 10.5t-42 28t-28.5 41.5t-10.5 51zM428 936q0 27 10.5 51t28.5 41.5t42 28t52 10.5 q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51q0 -28 -10.5 -52t-28 -42t-41.5 -28.5t-51 -10.5q-28 0 -52 10.5t-42 28.5t-28.5 42t-10.5 52z" />
201
+ <glyph unicode="&#xf8;" d="M92 496q0 121 32.5 218.5t94.5 165.5t151 105t203 37q44 0 91 -6l67 203h146l-82 -244q113 -54 176 -170.5t63 -294.5q0 -122 -32.5 -220t-94.5 -166.5t-151 -105t-203 -36.5q-45 0 -88 6l-68 -203h-145l82 244q-114 55 -178 171.5t-64 295.5zM266 502q0 -113 30 -193 t89 -125l229 688q-12 2 -27.5 3.5t-29.5 1.5q-78 0 -133 -30t-90 -81.5t-51.5 -119.5t-16.5 -144zM514 131q12 -2 27.5 -3t27.5 -1q78 0 133 30t90 81.5t51.5 119.5t16.5 144q0 112 -30.5 192t-86.5 125z" />
202
+ <glyph unicode="&#xf9;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM174 1413h252l242 -242h-174z" />
203
+ <glyph unicode="&#xfa;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
204
+ <glyph unicode="&#xfb;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
205
+ <glyph unicode="&#xfc;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5 t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
206
+ <glyph unicode="&#xfd;" d="M59 -254q22 -3 48 -5.5t55 -2.5q48 0 89.5 14t78.5 45.5t71 81.5t66 121l-401 1004h198l254 -664l51 -156l58 160l235 660h191l-342 -898q-53 -137 -109.5 -236t-123.5 -162.5t-147 -93.5t-179 -30q-26 0 -47 1t-46 3v158zM0 1004zM459 1171l241 242h252l-319 -242h-174z " />
207
+ <glyph unicode="&#xfe;" d="M160 -410v1823h174v-389l-8 -186q75 101 160.5 142.5t183.5 41.5q86 0 151 -36t109 -101.5t66 -158t22 -206.5q0 -125 -34.5 -223.5t-98 -167t-154.5 -105t-205 -36.5q-48 0 -95.5 5t-96.5 17v-420h-174zM334 172q51 -20 104 -31.5t101 -11.5q60 0 114.5 19t96 63.5 t66 118t24.5 182.5q0 79 -11.5 145t-36.5 113t-64 73.5t-93 26.5q-33 0 -67 -10.5t-70.5 -35t-77 -65t-86.5 -100.5v-487z" />
208
+ <glyph unicode="&#xff;" d="M59 -254q22 -3 48 -5.5t55 -2.5q48 0 89.5 14t78.5 45.5t71 81.5t66 121l-401 1004h198l254 -664l51 -156l58 160l235 660h191l-342 -898q-53 -137 -109.5 -236t-123.5 -162.5t-147 -93.5t-179 -30q-26 0 -47 1t-46 3v158zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5 t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24 t-24 35.5t-9 43.5z" />
209
+ <glyph unicode="&#x131;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805z" />
210
+ <glyph unicode="&#x152;" d="M31 647q0 174 38.5 301t103.5 210t152 123t185 40q24 0 55 -2t61.5 -5t57 -5t41.5 -2h369v-146h-330v-411h309v-146h-309v-457h330v-147h-365q-74 0 -127 -7t-96 -7q-122 0 -211.5 43.5t-148 127.5t-87 207t-28.5 283zM209 653q0 -252 77.5 -386t229.5 -134q20 0 38 2.5 t38 7.5v1022q-14 3 -35.5 6t-46.5 3q-80 0 -137 -40.5t-93.5 -111t-53.5 -165.5t-17 -204z" />
211
+ <glyph unicode="&#x153;" d="M39 494q0 122 20 219.5t59.5 166t99.5 105.5t140 37q78 0 131.5 -42t94.5 -132q18 41 39 73.5t48 55t61.5 34t78.5 11.5q66 0 118 -31t87.5 -91t54.5 -147t19 -198q0 -37 -0.5 -60.5t-2.5 -35.5h-423q0 -161 46 -244.5t140 -83.5q57 0 110.5 12t94.5 29v-145 q-45 -20 -102.5 -32.5t-118.5 -12.5q-91 0 -161 43.5t-102 132.5q-35 -85 -92.5 -130.5t-134.5 -45.5q-78 0 -135 29t-95 91.5t-56.5 159.5t-18.5 232zM203 500q0 -101 8.5 -172t26.5 -115.5t46 -65t66 -20.5q139 0 139 373q0 103 -9.5 174.5t-27.5 116.5t-44 65.5t-58 20.5 q-35 0 -62.5 -21.5t-46.5 -67.5t-28.5 -117t-9.5 -171zM664 588h264q1 78 -9 133t-27 89.5t-40.5 50.5t-50.5 16q-69 0 -102 -76t-35 -213z" />
212
+ <glyph unicode="&#x178;" d="M0 1307h215l260 -478l96 -192l88 174l263 496h204l-473 -840v-467h-180v471zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552 q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
213
+ <glyph unicode="&#x2c6;" d="M0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
214
+ <glyph unicode="&#x2da;" d="M0 1004zM348 1294q0 43 17 81t46 66t68 44t84 16t84 -16t68 -44t46 -66t17 -81t-17 -80.5t-46 -65.5t-68 -44t-84 -16t-84 16t-68 44t-46 65.5t-17 80.5zM463 1294q0 -42 29 -71t71 -29q21 0 39 8t31.5 21.5t21.5 31.5t8 39t-8 39.5t-21.5 32t-31.5 21.5t-39 8t-39 -8 t-31.5 -21.5t-21.5 -32t-8 -39.5z" />
215
+ <glyph unicode="&#x2dc;" d="M0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
216
+ <glyph unicode="&#x3bc;" d="M160 -410v1414h174v-639q0 -232 174 -232q30 0 62 10t63.5 32.5t67 62t79.5 100.5v666h174v-689q0 -51 5 -85t17.5 -54.5t32.5 -29.5t50 -9h18v-139q-14 -3 -31.5 -5.5t-37.5 -2.5q-50 0 -85.5 12.5t-59.5 36t-38.5 57.5t-23.5 76q-43 -57 -83 -93.5t-79.5 -57.5t-75 -29 t-68.5 -8q-52 0 -96.5 18.5t-78.5 57.5l14 -173v-297h-174z" />
217
+ <glyph unicode="&#x2000;" horiz-adv-x="870" />
218
+ <glyph unicode="&#x2001;" horiz-adv-x="1740" />
219
+ <glyph unicode="&#x2002;" horiz-adv-x="870" />
220
+ <glyph unicode="&#x2003;" horiz-adv-x="1740" />
221
+ <glyph unicode="&#x2004;" horiz-adv-x="580" />
222
+ <glyph unicode="&#x2005;" horiz-adv-x="435" />
223
+ <glyph unicode="&#x2006;" horiz-adv-x="290" />
224
+ <glyph unicode="&#x2007;" horiz-adv-x="290" />
225
+ <glyph unicode="&#x2008;" horiz-adv-x="217" />
226
+ <glyph unicode="&#x2009;" horiz-adv-x="348" />
227
+ <glyph unicode="&#x200a;" horiz-adv-x="96" />
228
+ <glyph unicode="&#x2011;" d="M264 463v164h598v-164h-598z" />
229
+ <glyph unicode="&#x2012;" d="M264 463v164h598v-164h-598z" />
230
+ <glyph unicode="&#x2013;" d="M133 469v152h860v-152h-860z" />
231
+ <glyph unicode="&#x2014;" d="M-4 469v152h1134v-152h-1134z" />
232
+ <glyph unicode="&#x2018;" d="M406 1001q0 83 30 160t90.5 135.5t151 93.5t211.5 35v-137q-51 1 -99 -9t-84.5 -31.5t-58.5 -53.5t-22 -74t14.5 -67.5t32.5 -47.5t32.5 -47.5t14.5 -66.5q0 -21 -8 -44t-24.5 -42t-42 -31t-60.5 -12q-36 0 -68 14.5t-56.5 44.5t-39 75t-14.5 105z" />
233
+ <glyph unicode="&#x2019;" d="M238 762v137q51 -2 99 8.5t84.5 32t58.5 53.5t22 74t-14.5 68t-32.5 48t-32.5 47t-14.5 66q0 22 8 44.5t24.5 41.5t42 31t60.5 12t67.5 -14.5t57 -44t39 -74.5t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35z" />
234
+ <glyph unicode="&#x201a;" d="M238 -205q51 -2 99 9t84.5 32.5t58.5 53.5t22 73q0 42 -14.5 68t-32.5 48t-32.5 47t-14.5 67q0 21 8 44t24.5 42t42 31t60.5 12t67.5 -14.5t57 -44.5t39 -75t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35v137z" />
235
+ <glyph unicode="&#x201c;" d="M104 1028q0 78 28.5 149.5t84 126.5t138 88t190.5 33v-129q-44 1 -85.5 -8.5t-74 -29.5t-52.5 -50t-20 -69t13 -63t29 -45t29 -44.5t13 -62.5q0 -20 -7.5 -41.5t-23 -39t-39.5 -29t-57 -11.5t-63 14t-53 42t-36.5 70t-13.5 99zM629 1028q0 78 28 149.5t83.5 126.5t138 88 t190.5 33v-129q-44 1 -85.5 -8.5t-74 -29.5t-52 -50t-19.5 -69t13 -63t29 -45t29 -44.5t13 -62.5q0 -20 -7.5 -41.5t-23 -39t-39.5 -29t-57 -11.5t-63 14t-53 42t-36.5 70t-13.5 99z" />
236
+ <glyph unicode="&#x201d;" d="M57 803v129q44 -2 85.5 8t74 30t52.5 50.5t20 69.5t-13 62.5t-29 44.5t-29 45t-13 63q0 20 7.5 41t23 38.5t39.5 29t57 11.5t63 -14t53 -41.5t36.5 -70t13.5 -99.5q0 -78 -28.5 -149.5t-84 -126.5t-138 -88t-190.5 -33zM582 803v129q43 -2 85 8t74 30t52 50.5t20 69.5 t-13 62.5t-29 44.5t-29 45t-13 63q0 20 7.5 41t23 38.5t39.5 29t57 11.5t63 -14t53 -41.5t36.5 -70t13.5 -99.5q0 -78 -28.5 -149.5t-84 -126.5t-137.5 -88t-190 -33z" />
237
+ <glyph unicode="&#x201e;" d="M57 -197q44 -2 85.5 8t74 30.5t52.5 50.5t20 69t-13 63t-29 45t-29 44.5t-13 62.5q0 20 7.5 41.5t23 39t39.5 29t57 11.5t63 -14t53 -42t36.5 -70t13.5 -99q0 -78 -28.5 -149.5t-84 -127t-138 -88.5t-190.5 -33v129zM582 -197q43 -2 85 8t74 30.5t52 50.5t20 69t-13 63 t-29 45t-29 44.5t-13 62.5q0 20 7.5 41.5t23 39t39.5 29t57 11.5t63 -14t53 -42t36.5 -70t13.5 -99q0 -78 -28.5 -149.5t-84 -127t-137.5 -88.5t-190 -33v129z" />
238
+ <glyph unicode="&#x2022;" d="M258 565q0 63 24 118.5t65.5 97t97 65.5t118.5 24t118.5 -24t97 -65.5t65.5 -97t24 -118.5t-24 -118.5t-65.5 -97t-97 -65.5t-118.5 -24t-118.5 24t-97 65.5t-65.5 97t-24 118.5z" />
239
+ <glyph unicode="&#x2026;" d="M59 102q0 25 9 47t24.5 38.5t37.5 26t48 9.5t48 -9.5t37.5 -25.5t24.5 -38.5t9 -47.5q0 -24 -9 -46t-24.5 -38.5t-37.5 -26t-48 -9.5t-48 9.5t-37.5 25.5t-24.5 38t-9 47zM444 102q0 25 9 47t24.5 38.5t37.5 26t48 9.5t48 -9.5t37.5 -25.5t24.5 -38.5t9 -47.5 q0 -24 -9 -46t-24.5 -38.5t-37.5 -26t-48 -9.5t-48 9.5t-37.5 25.5t-24.5 38t-9 47zM829 102q0 25 9 47t24.5 38.5t37.5 26t48 9.5t48 -9.5t37.5 -25.5t24.5 -38.5t9 -47.5q0 -24 -9 -46t-24.5 -38.5t-37.5 -26t-48 -9.5t-48 9.5t-37.5 25.5t-24.5 38t-9 47z" />
240
+ <glyph unicode="&#x202f;" horiz-adv-x="348" />
241
+ <glyph unicode="&#x2039;" d="M288 545l359 446l134 -97l-293 -349l293 -349l-134 -98z" />
242
+ <glyph unicode="&#x203a;" d="M345 195l293 349l-293 349l134 98l359 -447l-359 -446z" />
243
+ <glyph unicode="&#x205f;" horiz-adv-x="435" />
244
+ <glyph unicode="&#x2081;" d="M227 420l312 156h139v-646h201v-145h-613v145h238v467l-219 -108z" />
245
+ <glyph unicode="&#x2082;" d="M246 -72l217 168q58 45 94.5 77t57.5 57.5t28.5 48t7.5 49.5q0 46 -33.5 76t-99.5 30q-51 0 -97 -18.5t-83 -50.5l-86 106q54 54 128.5 83.5t158.5 29.5q63 0 117.5 -15.5t94 -46.5t62.5 -76.5t23 -105.5q0 -47 -14 -88t-42.5 -79.5t-70.5 -75.5t-97 -76l-114 -82h385 v-154h-637v143z" />
246
+ <glyph unicode="&#x2083;" d="M274 -75q34 -8 89.5 -12t115.5 -4q91 0 145 28.5t54 80.5q0 24 -10 43.5t-33.5 33t-62.5 21t-97 7.5h-82v129h76q49 0 82 8.5t53 23t28.5 34t8.5 40.5q0 19 -7 34.5t-23 27t-43.5 18t-67.5 6.5q-54 0 -109 -9t-100 -23v141q24 7 53.5 12.5t61 9.5t64 6.5t62.5 2.5 q148 0 218.5 -53.5t70.5 -141.5q0 -71 -33 -115.5t-92 -70.5q38 -10 68.5 -25t52.5 -36.5t33.5 -50.5t11.5 -68q0 -56 -25 -103t-73.5 -80.5t-121.5 -52t-169 -18.5q-29 0 -58 1t-55 3t-48 5t-38 7v140z" />
247
+ <glyph unicode="&#x20ac;" d="M51 422v136h144q-2 19 -2 38v42q0 25 1 49.5t3 48.5h-146v136h166q23 105 68 189t109 142.5t145.5 90t179.5 31.5q80 0 148.5 -16t133.5 -47v-171q-63 38 -130.5 58.5t-147.5 20.5q-124 0 -204 -76t-118 -222h402v-136h-422q-2 -21 -3 -42.5t-1 -43.5q0 -25 1 -47t1 -45 h424v-136h-404q32 -143 111.5 -214t216.5 -71q74 0 142.5 19.5t131.5 54.5v-164q-69 -32 -141.5 -48.5t-150.5 -16.5q-211 0 -335.5 110t-162.5 330h-160z" />
248
+ <glyph unicode="&#x2122;" d="M10 1202v105h406v-105h-133v-424h-136v424h-137zM442 778l76 529h158l80 -285l18 -86l17 76l86 295h159l80 -529h-135l-37 285l-12 86l-19 -76l-82 -295h-129l-79 301l-19 70l-2 -57l-43 -314h-117z" />
249
+ <glyph unicode="&#xe000;" horiz-adv-x="1004" d="M0 1005h1005v-1005h-1005v1005z" />
250
+ <glyph unicode="&#xfb01;" d="M0 1004zM47 758v145h178v121q0 201 114.5 301t340.5 100q53 0 120 -8.5t130 -23.5v-150q-60 17 -128 27t-128 10q-134 0 -204.5 -61t-70.5 -185v-131h564v-903h-175v758h-389v-758h-174v758h-178z" />
251
+ <glyph unicode="&#xfb02;" d="M0 1004zM47 758v145h178v119q0 201 114 301t335 100q65 0 137.5 -6.5t151.5 -23.5v-1393h-175v1274q-30 5 -59 6.5t-61 1.5q-137 0 -203 -63t-66 -187v-129h213v-145h-213v-758h-174v758h-178z" />
252
+ <glyph unicode="&#xfb03;" horiz-adv-x="3378" d="M2424 0v145h330v715h-297v144h473v-859h299v-145h-805zM2678 1288q0 29 10.5 53.5t29 43.5t43.5 29.5t54 10.5t54 -10.5t43.5 -29.5t29 -43.5t10.5 -53.5q0 -28 -10.5 -53t-29 -44t-43.5 -29.5t-54 -10.5t-54 10.5t-43.5 29.5t-29 44t-10.5 53zM1126 1004zM1206 713v145 h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323zM0 1004zM80 713v145h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323z" />
253
+ <glyph unicode="&#xfb04;" horiz-adv-x="3378" d="M2424 0v145h330v1125h-297v143h473v-1268h299v-145h-805zM1126 1004zM1206 713v145h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323zM0 1004zM80 713v145h323v166q0 401 418 401q104 0 230 -24v-150 q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323z" />
254
+ <glyph d="M0 1307zM205 1659h252l211 -213h-179z" />
255
+ <glyph d="M0 1307zM459 1446l211 213h252l-285 -213h-178z" />
256
+ <glyph d="M0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
257
+ <glyph d="M0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17t-70.5 37t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
258
+ <glyph d="M0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42 t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
259
+ <glyph d="M0 1307zM362 1550q0 42 15.5 77t42.5 60.5t63.5 39t79.5 13.5t80 -13.5t64 -39t42 -60.5t15 -77q0 -41 -15 -76.5t-42 -61t-64 -40t-80 -14.5t-79.5 14.5t-63.5 40t-42.5 61t-15.5 76.5zM473 1550q0 -40 25 -65t65 -25q42 0 66 25t24 65q0 41 -24 64.5t-66 23.5 q-40 0 -65 -23.5t-25 -64.5z" />
260
+ </font>
261
+ </defs></svg>
css/fonts/consolas/consolas-webfont.ttf ADDED
Binary file
css/fonts/consolas/consolas-webfont.woff ADDED
Binary file
css/fonts/consolas/consolas.css ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Generated by Font Squirrel (http://www.fontsquirrel.com) on January 8, 2012 */
2
+
3
+
4
+
5
+ @font-face {
6
+ font-family: 'ConsolasRegular';
7
+ src: url('consolas-webfont.eot');
8
+ src: url('consolas-webfont.eot?#iefix') format('embedded-opentype'),
9
+ url('consolas-webfont.woff') format('woff'),
10
+ url('consolas-webfont.ttf') format('truetype'),
11
+ url('consolas-webfont.svg#ConsolasRegular') format('svg');
12
+ font-weight: normal;
13
+ font-style: normal;
14
+
15
+ }
16
+
css/images/theme_editor.png ADDED
Binary file
css/style.css CHANGED
@@ -52,6 +52,8 @@ coloring etc.
52
  display: block !important;
53
  width: 100% !important;
54
  height: 100% !important;
 
 
55
  }
56
 
57
  .crayon-popup .crayon-main,
@@ -81,6 +83,7 @@ coloring etc.
81
  margin-top: 0px !important;
82
  margin-right: 0px !important;
83
  margin-bottom: 0px !important;
 
84
  /* left margin needed for nums toggle */
85
  }
86
 
@@ -139,10 +142,13 @@ coloring etc.
139
  display: inline;
140
  float: left !important;
141
  min-width: 20px;
142
-
 
 
143
  height: 16px;
144
  line-height: 16px;
145
  margin: 2px 2px !important;
 
146
  border-radius: 5px;
147
  -webkit-border-radius: 5px;
148
  -moz-border-radius: 5px;
@@ -150,60 +156,52 @@ coloring etc.
150
  }
151
 
152
  /* Plain Button */
153
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-plain-button:link {
 
 
154
  background-image: url('images/toolbar/plain_dark.png');
155
- background-position: center;
156
- background-repeat: no-repeat;
157
  }
158
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-plain-button:hover,
159
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-plain-button.crayon-pressed {
 
160
  background-image: url('images/toolbar/plain_light.png');
161
  }
162
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-plain-button:active {
163
- background-image: url('images/toolbar/plain_dark.png');
164
- }
165
 
166
  /* Copy Button */
167
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-copy-button:link {
 
 
168
  background-image: url('images/toolbar/copy_dark.png');
169
- background-position: center;
170
- background-repeat: no-repeat;
171
  }
172
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-copy-button:hover,
173
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-copy-button.crayon-pressed {
 
174
  background-image: url('images/toolbar/copy_light.png');
175
  }
176
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-copy-button:active {
177
- background-image: url('images/toolbar/copy_dark.png');
178
- }
179
 
180
  /* Popup Button */
181
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-popup-button:link {
 
 
182
  background-image: url('images/toolbar/popup_dark.png');
183
- background-position: center;
184
- background-repeat: no-repeat;
185
  }
186
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-popup-button:hover,
187
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-popup-button.crayon-pressed {
 
188
  background-image: url('images/toolbar/popup_light.png');
189
  }
190
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-popup-button:active {
191
- background-image: url('images/toolbar/popup_dark.png');
192
- }
193
 
194
  /* Nums Button */
195
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-nums-button:link {
 
 
196
  background-image: url('images/toolbar/nums_dark.png');
197
- background-position: center;
198
- background-repeat: no-repeat;
199
  }
200
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-nums-button:hover,
201
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-nums-button.crayon-pressed {
 
202
  background-image: url('images/toolbar/nums_light.png');
203
  }
204
- .crayon-syntax .crayon-toolbar a.crayon-button.crayon-nums-button:active {
205
- background-image: url('images/toolbar/nums_dark.png');
206
- }
207
 
208
  /* Plus Sign */
209
  .crayon-syntax .crayon-toolbar .crayon-mixed-highlight {
@@ -249,6 +247,7 @@ coloring etc.
249
  font-family: Monaco, 'MonacoRegular', 'Courier New', monospace;
250
  font-size: 12px;
251
  line-height: 16px;
 
252
  }
253
  .crayon-syntax .crayon-num,
254
  .crayon-syntax .crayon-line {
@@ -256,6 +255,8 @@ coloring etc.
256
  }
257
 
258
  .crayon-syntax .crayon-plain {
 
 
259
  position: absolute;
260
  opacity: 0;
261
  padding: 0 5px;
52
  display: block !important;
53
  width: 100% !important;
54
  height: 100% !important;
55
+ opacity: 100 !important;
56
+ position: relative !important;
57
  }
58
 
59
  .crayon-popup .crayon-main,
83
  margin-top: 0px !important;
84
  margin-right: 0px !important;
85
  margin-bottom: 0px !important;
86
+ width: auto !important;
87
  /* left margin needed for nums toggle */
88
  }
89
 
142
  display: inline;
143
  float: left !important;
144
  min-width: 20px;
145
+
146
+ background-repeat: no-repeat;
147
+ background-position: center;
148
  height: 16px;
149
  line-height: 16px;
150
  margin: 2px 2px !important;
151
+ border: none;
152
  border-radius: 5px;
153
  -webkit-border-radius: 5px;
154
  -moz-border-radius: 5px;
156
  }
157
 
158
  /* Plain Button */
159
+ .crayon-toolbar a.crayon-button.crayon-plain-button,
160
+ .crayon-toolbar a.crayon-button.crayon-plain-button:hover,
161
+ .crayon-toolbar a.crayon-button.crayon-plain-button.crayon-pressed:hover {
162
  background-image: url('images/toolbar/plain_dark.png');
 
 
163
  }
164
+ .crayon-toolbar a.crayon-button.crayon-plain-button.crayon-pressed,
165
+ .crayon-toolbar a.crayon-button.crayon-plain-button:active,
166
+ .crayon-toolbar a.crayon-button.crayon-plain-button.crayon-pressed:active {
167
  background-image: url('images/toolbar/plain_light.png');
168
  }
 
 
 
169
 
170
  /* Copy Button */
171
+ .crayon-toolbar a.crayon-button.crayon-copy-button,
172
+ .crayon-toolbar a.crayon-button.crayon-copy-button:hover,
173
+ .crayon-toolbar a.crayon-button.crayon-copy-button.crayon-pressed:hover {
174
  background-image: url('images/toolbar/copy_dark.png');
 
 
175
  }
176
+ .crayon-toolbar a.crayon-button.crayon-copy-button.crayon-pressed,
177
+ .crayon-toolbar a.crayon-button.crayon-copy-button:active,
178
+ .crayon-toolbar a.crayon-button.crayon-copy-button.crayon-pressed:active {
179
  background-image: url('images/toolbar/copy_light.png');
180
  }
 
 
 
181
 
182
  /* Popup Button */
183
+ .crayon-toolbar a.crayon-button.crayon-popup-button,
184
+ .crayon-toolbar a.crayon-button.crayon-popup-button:hover,
185
+ .crayon-toolbar a.crayon-button.crayon-popup-button.crayon-pressed:hover {
186
  background-image: url('images/toolbar/popup_dark.png');
 
 
187
  }
188
+ .crayon-toolbar a.crayon-button.crayon-popup-button.crayon-pressed,
189
+ .crayon-toolbar a.crayon-button.crayon-popup-button:active,
190
+ .crayon-toolbar a.crayon-button.crayon-popup-button.crayon-pressed:active {
191
  background-image: url('images/toolbar/popup_light.png');
192
  }
 
 
 
193
 
194
  /* Nums Button */
195
+ .crayon-toolbar a.crayon-button.crayon-nums-button,
196
+ .crayon-toolbar a.crayon-button.crayon-nums-button:hover,
197
+ .crayon-toolbar a.crayon-button.crayon-nums-button.crayon-pressed:hover {
198
  background-image: url('images/toolbar/nums_dark.png');
 
 
199
  }
200
+ .crayon-toolbar a.crayon-button.crayon-nums-button.crayon-pressed,
201
+ .crayon-toolbar a.crayon-button.crayon-nums-button:active,
202
+ .crayon-toolbar a.crayon-button.crayon-nums-button.crayon-pressed:active {
203
  background-image: url('images/toolbar/nums_light.png');
204
  }
 
 
 
205
 
206
  /* Plus Sign */
207
  .crayon-syntax .crayon-toolbar .crayon-mixed-highlight {
247
  font-family: Monaco, 'MonacoRegular', 'Courier New', monospace;
248
  font-size: 12px;
249
  line-height: 16px;
250
+ font-weight: 500;
251
  }
252
  .crayon-syntax .crayon-num,
253
  .crayon-syntax .crayon-line {
255
  }
256
 
257
  .crayon-syntax .crayon-plain {
258
+ width: 100%;
259
+ height: 100%;
260
  position: absolute;
261
  opacity: 0;
262
  padding: 0 5px;
fonts/consolas.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ @import url('../css/fonts/consolas/consolas.css');
2
+
3
+ .crayon-font-consolas * {
4
+ font-family: Consolas, 'ConsolasRegular', 'Courier New', monospace !important;
5
+ }
fonts/{courier new.css → courier-new.css} RENAMED
File without changes
global.php CHANGED
@@ -2,7 +2,11 @@
2
 
3
  // Switches
4
 
5
- define('CRAYON_DEBUG', FALSE); // Enable to show exceptions on screen
 
 
 
 
6
 
7
  // Constants
8
 
@@ -36,6 +40,7 @@ define('CRAYON_UTIL_DIR', crayon_s('util'));
36
  define('CRAYON_CSS_DIR', crayon_s('css'));
37
  define('CRAYON_JS_DIR', crayon_s('js'));
38
  define('CRAYON_TRANS_DIR', crayon_s('trans'));
 
39
 
40
  // Paths
41
 
@@ -56,7 +61,7 @@ define('CRAYON_LANG_EXT', CRAYON_LANG_PATH . 'extensions.txt');
56
  define('CRAYON_LANG_ALIAS', CRAYON_LANG_PATH . 'aliases.txt');
57
  define('CRAYON_LANG_DELIM', CRAYON_LANG_PATH . 'delimiters.txt');
58
  define('CRAYON_HELP_FILE', CRAYON_UTIL_PATH . 'help.htm');
59
- define('CRAYON_JQUERY', CRAYON_JS_DIR . 'jquery-1.7.min.js');
60
  define('CRAYON_JQUERY_POPUP', CRAYON_JS_DIR . 'jquery.popup.js');
61
  define('CRAYON_JS', CRAYON_JS_DIR . 'crayon.js');
62
  define('CRAYON_JS_ADMIN', CRAYON_JS_DIR . 'crayon_admin.js');
@@ -64,6 +69,8 @@ define('CRAYON_STYLE', CRAYON_CSS_DIR . 'style.css');
64
  define('CRAYON_STYLE_ADMIN', CRAYON_CSS_DIR . 'admin_style.css');
65
  define('CRAYON_LOGO', CRAYON_CSS_DIR . 'images/crayon_logo.png');
66
  define('CRAYON_DONATE_BUTTON', CRAYON_CSS_DIR . 'images/donate.png');
 
 
67
 
68
  // PHP Files
69
  define('CRAYON_FORMATTER_PHP', CRAYON_ROOT_PATH . 'crayon_formatter.class.php');
@@ -81,6 +88,7 @@ define('CRAYON_LOG_PHP', CRAYON_UTIL_DIR . 'crayon_log.class.php');
81
  define('CRAYON_LIST_LANGS_PHP', CRAYON_UTIL_DIR . 'list_langs.php');
82
  define('CRAYON_PREVIEW_PHP', CRAYON_UTIL_DIR . 'preview.php');
83
  define('CRAYON_AJAX_PHP', CRAYON_UTIL_DIR . 'ajax.php');
 
84
 
85
  // Script time
86
 
@@ -135,21 +143,21 @@ function crayon_pb($url) {
135
  }
136
 
137
  // Get/Set plugin information
138
- function set_crayon_info($info_array) {
139
  global $CRAYON_VERSION, $CRAYON_DATE, $CRAYON_AUTHOR, $CRAYON_WEBSITE, $uid;
140
  if (!is_array($info_array)) {
141
  return;
142
  }
143
- set_info('Version', $info_array, $CRAYON_VERSION);
144
  $CRAYON_VERSION .= $uid;
145
  if (($date = @filemtime(CRAYON_README_FILE)) !== FALSE) {
146
  $CRAYON_DATE = date("jS F, Y", $date);
147
  }
148
- set_info('AuthorName', $info_array, $CRAYON_A);
149
- set_info('PluginURI', $info_array, $CRAYON_WEBSITE);
150
  }
151
 
152
- function set_info($key, $array, &$info) {
153
  if (array_key_exists($key, $array)) {
154
  $info = $array[$key];
155
  } else {
2
 
3
  // Switches
4
 
5
+ // Enable to show exceptions on screen
6
+ define('CRAYON_DEBUG', FALSE);
7
+
8
+ // TODO remove once done
9
+ define('CRAYON_THEME_EDITOR', false);
10
 
11
  // Constants
12
 
40
  define('CRAYON_CSS_DIR', crayon_s('css'));
41
  define('CRAYON_JS_DIR', crayon_s('js'));
42
  define('CRAYON_TRANS_DIR', crayon_s('trans'));
43
+ define('CRAYON_THEME_EDITOR_DIR', crayon_s('theme-editor'));
44
 
45
  // Paths
46
 
61
  define('CRAYON_LANG_ALIAS', CRAYON_LANG_PATH . 'aliases.txt');
62
  define('CRAYON_LANG_DELIM', CRAYON_LANG_PATH . 'delimiters.txt');
63
  define('CRAYON_HELP_FILE', CRAYON_UTIL_PATH . 'help.htm');
64
+ //define('CRAYON_JQUERY', CRAYON_JS_DIR . 'jquery-1.7.min.js');
65
  define('CRAYON_JQUERY_POPUP', CRAYON_JS_DIR . 'jquery.popup.js');
66
  define('CRAYON_JS', CRAYON_JS_DIR . 'crayon.js');
67
  define('CRAYON_JS_ADMIN', CRAYON_JS_DIR . 'crayon_admin.js');
69
  define('CRAYON_STYLE_ADMIN', CRAYON_CSS_DIR . 'admin_style.css');
70
  define('CRAYON_LOGO', CRAYON_CSS_DIR . 'images/crayon_logo.png');
71
  define('CRAYON_DONATE_BUTTON', CRAYON_CSS_DIR . 'images/donate.png');
72
+ define('CRAYON_THEME_EDITOR_BUTTON', CRAYON_CSS_DIR . 'images/theme_editor.png');
73
+ define('CRAYON_THEME_EDITOR_JS', CRAYON_UTIL_DIR . CRAYON_THEME_EDITOR_DIR . 'editor.js');
74
 
75
  // PHP Files
76
  define('CRAYON_FORMATTER_PHP', CRAYON_ROOT_PATH . 'crayon_formatter.class.php');
88
  define('CRAYON_LIST_LANGS_PHP', CRAYON_UTIL_DIR . 'list_langs.php');
89
  define('CRAYON_PREVIEW_PHP', CRAYON_UTIL_DIR . 'preview.php');
90
  define('CRAYON_AJAX_PHP', CRAYON_UTIL_DIR . 'ajax.php');
91
+ define('CRAYON_THEME_EDITOR_PHP', CRAYON_UTIL_DIR . CRAYON_THEME_EDITOR_DIR . 'editor.php');
92
 
93
  // Script time
94
 
143
  }
144
 
145
  // Get/Set plugin information
146
+ function crayon_set_info($info_array) {
147
  global $CRAYON_VERSION, $CRAYON_DATE, $CRAYON_AUTHOR, $CRAYON_WEBSITE, $uid;
148
  if (!is_array($info_array)) {
149
  return;
150
  }
151
+ crayon_set_info_key('Version', $info_array, $CRAYON_VERSION);
152
  $CRAYON_VERSION .= $uid;
153
  if (($date = @filemtime(CRAYON_README_FILE)) !== FALSE) {
154
  $CRAYON_DATE = date("jS F, Y", $date);
155
  }
156
+ crayon_set_info_key('AuthorName', $info_array, $CRAYON_A);
157
+ crayon_set_info_key('PluginURI', $info_array, $CRAYON_WEBSITE);
158
  }
159
 
160
+ function crayon_set_info_key($key, $array, &$info) {
161
  if (array_key_exists($key, $array)) {
162
  $info = $array[$key];
163
  } else {
js/crayon.js CHANGED
@@ -14,9 +14,69 @@ if (typeof crayon_log == 'undefined') {
14
  }
15
  }
16
 
17
- // jQuery
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
- // jQuery.noConflict();
20
 
21
  var PRESSED = 'crayon-pressed';
22
  var UNPRESSED = '';
@@ -25,7 +85,6 @@ var CRAYON_SYNTAX = 'div.crayon-syntax';
25
  var CRAYON_TOOLBAR = '.crayon-toolbar';
26
  var CRAYON_INFO = '.crayon-info';
27
  var CRAYON_PLAIN = '.crayon-plain';
28
- var CRAYON_PLAIN_BUTTON = '.crayon-plain-button';
29
  var CRAYON_MAIN = '.crayon-main';
30
  var CRAYON_TABLE = '.crayon-table';
31
  var CRAYON_CODE = '.crayon-code';
@@ -33,6 +92,8 @@ var CRAYON_NUMS = '.crayon-nums';
33
  var CRAYON_NUMS_CONTENT = '.crayon-nums-content';
34
  var CRAYON_NUMS_BUTTON = '.crayon-nums-button';
35
  var CRAYON_POPUP_BUTTON = '.crayon-popup-button';
 
 
36
 
37
  jQuery(document).ready(function() {
38
  CrayonSyntax.init();
@@ -41,6 +102,7 @@ jQuery(document).ready(function() {
41
  var CrayonSyntax = new function() {
42
 
43
  var crayon = new Object();
 
44
 
45
  this.init = function() {
46
  if (typeof crayon == 'undefined') {
@@ -49,10 +111,21 @@ var CrayonSyntax = new function() {
49
 
50
  jQuery(CRAYON_SYNTAX).each(function() {
51
  var uid = jQuery(this).attr('id');
 
 
 
 
 
 
 
 
 
 
 
 
52
  var toolbar = jQuery(this).find(CRAYON_TOOLBAR);
53
  var info = jQuery(this).find(CRAYON_INFO);
54
  var plain = jQuery(this).find(CRAYON_PLAIN);
55
- var plain_button = jQuery(this).find(CRAYON_PLAIN_BUTTON);
56
  var main = jQuery(this).find(CRAYON_MAIN);
57
  var table = jQuery(this).find(CRAYON_TABLE);
58
  var code = jQuery(this).find(CRAYON_CODE);
@@ -60,12 +133,12 @@ var CrayonSyntax = new function() {
60
  var nums_content = jQuery(this).find(CRAYON_NUMS_CONTENT);
61
  var nums_button = jQuery(this).find(CRAYON_NUMS_BUTTON);
62
  var popup_button = jQuery(this).find(CRAYON_POPUP_BUTTON);
63
- // Register the objects
64
- make_uid(uid);
 
65
  crayon[uid] = jQuery(this);
66
  crayon[uid].toolbar = toolbar;
67
  crayon[uid].plain = plain;
68
- crayon[uid].plain_button = plain_button;
69
  crayon[uid].info = info;
70
  crayon[uid].main = main;
71
  crayon[uid].table = table;
@@ -74,6 +147,8 @@ var CrayonSyntax = new function() {
74
  crayon[uid].nums_content = nums_content;
75
  crayon[uid].nums_button = nums_button;
76
  crayon[uid].popup_button = popup_button;
 
 
77
  crayon[uid].nums_visible = true;
78
  crayon[uid].plain_visible = false;
79
 
@@ -83,14 +158,15 @@ var CrayonSyntax = new function() {
83
  // Set plain
84
  jQuery(CRAYON_PLAIN).css('z-index', 0);
85
 
86
- // Remember CSS dimensions
87
- var main_style = crayon[uid].main.get(0).style;
88
- crayon[uid].main_height = main_style.height;
89
- crayon[uid].main_max_height = main_style.maxHeight;
90
- crayon[uid].main_min_height = main_style.minHeight;
91
- crayon[uid].main_width = main_style.width;
92
- crayon[uid].main_max_width = main_style.maxWidth;
93
- crayon[uid].main_min_width = main_style.minWidth;
 
94
 
95
  var load_timer;
96
  var last_num_width = nums.width();
@@ -98,24 +174,28 @@ var CrayonSyntax = new function() {
98
  crayon[uid].loading = true;
99
  crayon[uid].scroll_block_fix = false;
100
 
 
 
 
 
 
101
  var load_func = function() {
102
  if (main.height() < 30) {
103
  crayon[uid].scroll_block_fix = true;
104
  }
105
 
106
- // Reconsile dimensions
107
- plain.height(main.height());
108
- plain.width(main.width());
109
-
110
  // If nums hidden by default
111
  if (nums.filter('[settings~="hide"]').length != 0) {
112
  nums_content.ready(function() {
 
113
  CrayonSyntax.toggle_nums(uid, true, true);
114
  });
115
  } else {
116
  update_nums_button(uid);
117
  }
118
-
119
  // TODO If width has changed or timeout, stop timer
120
  if (/*last_num_width != nums.width() ||*/ i == 5) {
121
  clearInterval(load_timer);
@@ -125,6 +205,7 @@ var CrayonSyntax = new function() {
125
  };
126
  main.ready(function() {
127
  load_timer = setInterval(load_func, 300);
 
128
  });
129
 
130
  // Used for toggling
@@ -153,16 +234,15 @@ var CrayonSyntax = new function() {
153
  }, function() {
154
  code_popup(uid);
155
  }, function() {
156
- //alert('after');
157
  });
158
 
159
  plain.css('opacity', 0);
160
- crayon.toolbar_neg_height = '-' + toolbar.height() + 'px';
161
  // If a toolbar with mouseover was found
162
  if (toolbar.filter('[settings~="mouseover"]').length != 0 && !touchscreen) {
163
  crayon[uid].toolbar_mouseover = true;
164
 
165
- toolbar.css('margin-top', crayon.toolbar_neg_height);
166
  toolbar.hide();
167
  // Overlay the toolbar if needed, only if doing so will not hide the
168
  // whole code!
@@ -201,7 +281,7 @@ var CrayonSyntax = new function() {
201
  nums_button.hide();
202
  }
203
  if (plain.filter('[settings~="show-plain-default"]').length != 0) {
204
- CrayonSyntax.toggle_plain(uid, true);
205
  }
206
  }
207
  // Scrollbar show events
@@ -223,13 +303,21 @@ var CrayonSyntax = new function() {
223
  }
224
 
225
  var make_uid = function(uid) {
 
226
  if (typeof crayon[uid] == 'undefined') {
227
  crayon[uid] = jQuery('#'+uid);
 
228
  return true;
229
  }
 
 
230
  return false;
231
  }
232
 
 
 
 
 
233
  var code_popup = function(uid) {
234
  if (typeof crayon[uid] == 'undefined') {
235
  return make_uid(uid);
@@ -248,7 +336,7 @@ var CrayonSyntax = new function() {
248
  }
249
 
250
  var remove_css_inline = function(string) {
251
- return string.replace(/style\s*=\s*"[^"]+"/mi, '');
252
  }
253
 
254
  // Get all CSS on the page as a string
@@ -268,12 +356,13 @@ var CrayonSyntax = new function() {
268
 
269
  var plain = crayon[uid].plain;
270
 
271
- CrayonSyntax.toggle_plain(uid, true, true);
272
  toolbar_toggle(uid, true);
273
 
274
  key = crayon[uid].mac ? '\u2318' : 'CTRL';
275
  text = 'Press ' + key + '+C to Copy, ' + key + '+V to Paste :)';
276
  crayon_info(uid, text);
 
277
  }
278
 
279
  var crayon_info = function(uid, text, show) {
@@ -367,12 +456,13 @@ var CrayonSyntax = new function() {
367
  return;
368
  }
369
 
 
 
370
  var visible, hidden;
371
  if (typeof hover != 'undefined') {
372
  if (hover) {
373
  visible = main;
374
  hidden = plain;
375
- //crayon[uid].plain_visible = true;
376
  } else {
377
  visible = plain;
378
  hidden = main;
@@ -381,11 +471,9 @@ var CrayonSyntax = new function() {
381
  if (main.css('z-index') == 1) {
382
  visible = main;
383
  hidden = plain;
384
- //crayon[uid].plain_visible = true;
385
  } else {
386
  visible = plain;
387
  hidden = main;
388
- //crayon[uid].plain_visible = false;
389
  }
390
  }
391
 
@@ -426,20 +514,22 @@ var CrayonSyntax = new function() {
426
  hidden.css('overflow', hid_over);
427
  }
428
 
429
- // Refresh scrollbar draw
430
- hidden.scrollTop(crayon[uid].top + 1);
431
- hidden.scrollTop(crayon[uid].top);
432
- hidden.scrollLeft(crayon[uid].left + 1);
433
- hidden.scrollLeft(crayon[uid].left);
434
-
435
  // Give focus to plain code
436
  if (hidden == plain) {
437
  if (select) {
438
  plain.select();
439
  } else {
440
- plain.focus();
 
441
  }
442
  }
 
 
 
 
 
 
 
443
  });
444
 
445
  // Restore scroll positions to hidden
@@ -450,15 +540,17 @@ var CrayonSyntax = new function() {
450
 
451
  // Hide toolbar if possible
452
  toolbar_toggle(uid, false);
 
453
  }
454
 
455
  this.toggle_nums = function(uid, hide, instant) {
456
  if (typeof crayon[uid] == 'undefined') {
457
- return make_uid(uid);
 
458
  }
459
 
460
  if (crayon[uid].table.is(':animated')) {
461
- return;
462
  }
463
  var nums_width = Math.round(crayon[uid].nums_content.width() + 1);
464
  var neg_width = '-' + nums_width + 'px';
@@ -473,7 +565,6 @@ var CrayonSyntax = new function() {
473
  }
474
 
475
  var num_margin;
476
- var table_width = crayon[uid].main.width();
477
  if (num_hidden) {
478
  // Show
479
  num_margin = '0px';
@@ -483,14 +574,12 @@ var CrayonSyntax = new function() {
483
  crayon[uid].table.css('margin-left', '0px');
484
  crayon[uid].nums_visible = false;
485
  num_margin = neg_width;
486
- table_width += nums_width;
487
  }
488
 
489
  if (typeof instant != 'undefined') {
490
  crayon[uid].table.css('margin-left', num_margin);
491
- crayon[uid].table.width(table_width);
492
  update_nums_button(uid);
493
- return;
494
  }
495
 
496
  // Stop jerking animation from scrollbar appearing for a split second due to
@@ -501,8 +590,7 @@ var CrayonSyntax = new function() {
501
  crayon[uid].main.css('overflow', 'hidden');
502
  }
503
  crayon[uid].table.animate({
504
- marginLeft: num_margin,
505
- width: table_width
506
  }, animt(200, uid), function() {
507
  if (typeof crayon[uid] != 'undefined') {
508
  update_nums_button(uid);
@@ -511,6 +599,14 @@ var CrayonSyntax = new function() {
511
  }
512
  }
513
  });
 
 
 
 
 
 
 
 
514
  }
515
 
516
  // Convert '-10px' to -10
@@ -575,13 +671,15 @@ var CrayonSyntax = new function() {
575
  if (typeof crayon[uid] == 'undefined') {
576
  return make_uid(uid);
577
  }
578
- if (typeof show == 'undefined' /*|| crayon[uid].loading*/) {
579
  return;
580
  }
581
 
582
  var main = crayon[uid].main;
583
  var plain = crayon[uid].plain;
584
 
 
 
585
  if (show) {
586
  main.css('overflow', 'auto');
587
  plain.css('overflow', 'auto');
@@ -595,8 +693,8 @@ var CrayonSyntax = new function() {
595
  }
596
  if (!crayon[uid].scroll_block_fix) {
597
  // Fix dimensions so scrollbars stay inside
598
- main.css('height', main.height());
599
- main.css('width', main.width());
600
  } else {
601
  // Relax dimensions so scrollbars are visible
602
  main.css('height', '');
@@ -612,10 +710,10 @@ var CrayonSyntax = new function() {
612
  plain.css('overflow', 'hidden');
613
  if (!crayon[uid].scroll_block_fix) {
614
  // Restore dimensions
615
- main.css('height', crayon[uid].main_height);
616
- main.css('max-height', crayon[uid].main_max_height);
617
- main.css('min-height', crayon[uid].main_min_height);
618
- main.css('width', crayon[uid].main_width);
619
  }
620
  }
621
  // Register that overflow has changed
@@ -625,14 +723,18 @@ var CrayonSyntax = new function() {
625
 
626
  /* Fix weird draw error, causes blank area to appear where scrollbar once was. */
627
  var fix_scroll_blank = function(uid) {
628
- if (typeof crayon[uid] == 'undefined') {
629
- return make_uid(uid);
630
- }
631
- var width = crayon[uid].main.width();
632
- crayon[uid].main.width(width);
633
- crayon[uid].main.width(width - 1);
634
- crayon[uid].main.width(width + 1);
635
- crayon[uid].main.width(width);
 
 
 
 
636
  }
637
 
638
  var animt = function(x, uid) {
14
  }
15
  }
16
 
17
+ jQuery.fn.exists = function () {
18
+ return this.length !== 0;
19
+ }
20
+
21
+ // For those who need them (< IE 9), add support for CSS functions
22
+ var isStyleFuncSupported = CSSStyleDeclaration.prototype.getPropertyValue != null;
23
+ if (!isStyleFuncSupported) {
24
+ CSSStyleDeclaration.prototype.getPropertyValue = function(a) {
25
+ return this.getAttribute(a);
26
+ };
27
+ CSSStyleDeclaration.prototype.setProperty = function(styleName, value, priority) {
28
+ this.setAttribute(styleName,value);
29
+ var priority = typeof priority != 'undefined' ? priority : '';
30
+ if (priority != '') {
31
+ // Add priority manually
32
+ var rule = new RegExp(RegExp.escape(styleName) + '\\s*:\\s*' + RegExp.escape(value) + '(\\s*;)?', 'gmi');
33
+ this.cssText = this.cssText.replace(rule, styleName + ': ' + value + ' !' + priority + ';');
34
+ }
35
+ }
36
+ CSSStyleDeclaration.prototype.removeProperty = function(a) {
37
+ return this.removeAttribute(a);
38
+ }
39
+ CSSStyleDeclaration.prototype.getPropertyPriority = function(styleName) {
40
+ var rule = new RegExp(RegExp.escape(styleName) + '\\s*:\\s*[^\\s]*\\s*!important(\\s*;)?', 'gmi');
41
+ return rule.test(this.cssText) ? 'important' : '';
42
+ }
43
+ }
44
+
45
+ // Escape regex chars with \
46
+ RegExp.escape = function(text) {
47
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
48
+ }
49
+
50
+ // The style function
51
+ jQuery.fn.style = function(styleName, value, priority) {
52
+ // DOM node
53
+ var node = this.get(0);
54
+ // Ensure we have a DOM node
55
+ if (typeof node == 'undefined') {
56
+ return;
57
+ }
58
+ // CSSStyleDeclaration
59
+ var style = this.get(0).style;
60
+ // Getter/Setter
61
+ if (typeof styleName != 'undefined') {
62
+ if (typeof value != 'undefined') {
63
+ // Set style property
64
+ var priority = typeof priority != 'undefined' ? priority : '';
65
+ style.setProperty(styleName, value, priority);
66
+ } else {
67
+ // Get style property
68
+ return style.getPropertyValue(styleName);
69
+ }
70
+ } else {
71
+ // Get CSSStyleDeclaration
72
+ return style;
73
+ }
74
+ }
75
+
76
+
77
+
78
+
79
 
 
80
 
81
  var PRESSED = 'crayon-pressed';
82
  var UNPRESSED = '';
85
  var CRAYON_TOOLBAR = '.crayon-toolbar';
86
  var CRAYON_INFO = '.crayon-info';
87
  var CRAYON_PLAIN = '.crayon-plain';
 
88
  var CRAYON_MAIN = '.crayon-main';
89
  var CRAYON_TABLE = '.crayon-table';
90
  var CRAYON_CODE = '.crayon-code';
92
  var CRAYON_NUMS_CONTENT = '.crayon-nums-content';
93
  var CRAYON_NUMS_BUTTON = '.crayon-nums-button';
94
  var CRAYON_POPUP_BUTTON = '.crayon-popup-button';
95
+ var CRAYON_COPY_BUTTON = '.crayon-copy-button';
96
+ var CRAYON_PLAIN_BUTTON = '.crayon-plain-button';
97
 
98
  jQuery(document).ready(function() {
99
  CrayonSyntax.init();
102
  var CrayonSyntax = new function() {
103
 
104
  var crayon = new Object();
105
+ var currUID = 0;
106
 
107
  this.init = function() {
108
  if (typeof crayon == 'undefined') {
111
 
112
  jQuery(CRAYON_SYNTAX).each(function() {
113
  var uid = jQuery(this).attr('id');
114
+ if (uid == 'crayon-') {
115
+ // No ID, generate one
116
+ uid += getUID();
117
+ }
118
+ jQuery(this).attr('id', uid);
119
+ crayon_log(uid);
120
+
121
+ if (!make_uid(uid)) {
122
+ // Already a Crayon
123
+ return;
124
+ }
125
+
126
  var toolbar = jQuery(this).find(CRAYON_TOOLBAR);
127
  var info = jQuery(this).find(CRAYON_INFO);
128
  var plain = jQuery(this).find(CRAYON_PLAIN);
 
129
  var main = jQuery(this).find(CRAYON_MAIN);
130
  var table = jQuery(this).find(CRAYON_TABLE);
131
  var code = jQuery(this).find(CRAYON_CODE);
133
  var nums_content = jQuery(this).find(CRAYON_NUMS_CONTENT);
134
  var nums_button = jQuery(this).find(CRAYON_NUMS_BUTTON);
135
  var popup_button = jQuery(this).find(CRAYON_POPUP_BUTTON);
136
+ var copy_button = jQuery(this).find(CRAYON_COPY_BUTTON);
137
+ var plain_button = jQuery(this).find(CRAYON_PLAIN_BUTTON);
138
+
139
  crayon[uid] = jQuery(this);
140
  crayon[uid].toolbar = toolbar;
141
  crayon[uid].plain = plain;
 
142
  crayon[uid].info = info;
143
  crayon[uid].main = main;
144
  crayon[uid].table = table;
147
  crayon[uid].nums_content = nums_content;
148
  crayon[uid].nums_button = nums_button;
149
  crayon[uid].popup_button = popup_button;
150
+ crayon[uid].copy_button = copy_button;
151
+ crayon[uid].plain_button = plain_button;
152
  crayon[uid].nums_visible = true;
153
  crayon[uid].plain_visible = false;
154
 
158
  // Set plain
159
  jQuery(CRAYON_PLAIN).css('z-index', 0);
160
 
161
+ // XXX Remember CSS dimensions
162
+ var main_style = crayon[uid].main.style();
163
+
164
+ crayon[uid].main_style = {
165
+ height: main_style.height || '',
166
+ max_height: main_style.maxHeight || '',
167
+ min_height: main_style.minHeight || '',
168
+ width: main_style.width || ''
169
+ }
170
 
171
  var load_timer;
172
  var last_num_width = nums.width();
174
  crayon[uid].loading = true;
175
  crayon[uid].scroll_block_fix = false;
176
 
177
+ // Register click events
178
+ nums_button.click(function() { CrayonSyntax.toggle_nums(uid) });
179
+ plain_button.click(function() { CrayonSyntax.toggle_plain(uid) });
180
+ copy_button.click(function() { CrayonSyntax.copy_plain(uid) });
181
+
182
  var load_func = function() {
183
  if (main.height() < 30) {
184
  crayon[uid].scroll_block_fix = true;
185
  }
186
 
187
+ reconsile_dimensions(uid);
188
+
 
 
189
  // If nums hidden by default
190
  if (nums.filter('[settings~="hide"]').length != 0) {
191
  nums_content.ready(function() {
192
+ crayon_log('function' + uid);
193
  CrayonSyntax.toggle_nums(uid, true, true);
194
  });
195
  } else {
196
  update_nums_button(uid);
197
  }
198
+
199
  // TODO If width has changed or timeout, stop timer
200
  if (/*last_num_width != nums.width() ||*/ i == 5) {
201
  clearInterval(load_timer);
205
  };
206
  main.ready(function() {
207
  load_timer = setInterval(load_func, 300);
208
+ fix_scroll_blank(uid);
209
  });
210
 
211
  // Used for toggling
234
  }, function() {
235
  code_popup(uid);
236
  }, function() {
237
+ //crayon_log('after');
238
  });
239
 
240
  plain.css('opacity', 0);
 
241
  // If a toolbar with mouseover was found
242
  if (toolbar.filter('[settings~="mouseover"]').length != 0 && !touchscreen) {
243
  crayon[uid].toolbar_mouseover = true;
244
 
245
+ toolbar.css('margin-top', '-' + toolbar.height() + 'px');
246
  toolbar.hide();
247
  // Overlay the toolbar if needed, only if doing so will not hide the
248
  // whole code!
281
  nums_button.hide();
282
  }
283
  if (plain.filter('[settings~="show-plain-default"]').length != 0) {
284
+ this.toggle_plain(uid, true);
285
  }
286
  }
287
  // Scrollbar show events
303
  }
304
 
305
  var make_uid = function(uid) {
306
+ crayon_log(crayon);
307
  if (typeof crayon[uid] == 'undefined') {
308
  crayon[uid] = jQuery('#'+uid);
309
+ crayon_log('make ' + uid);
310
  return true;
311
  }
312
+
313
+ crayon_log('no make ' + uid);
314
  return false;
315
  }
316
 
317
+ var getUID = function() {
318
+ return currUID++;
319
+ }
320
+
321
  var code_popup = function(uid) {
322
  if (typeof crayon[uid] == 'undefined') {
323
  return make_uid(uid);
336
  }
337
 
338
  var remove_css_inline = function(string) {
339
+ return string.replace(/style\s*=\s*["'][^"]+["']/gmi, '');
340
  }
341
 
342
  // Get all CSS on the page as a string
356
 
357
  var plain = crayon[uid].plain;
358
 
359
+ this.toggle_plain(uid, true, true);
360
  toolbar_toggle(uid, true);
361
 
362
  key = crayon[uid].mac ? '\u2318' : 'CTRL';
363
  text = 'Press ' + key + '+C to Copy, ' + key + '+V to Paste :)';
364
  crayon_info(uid, text);
365
+ return false;
366
  }
367
 
368
  var crayon_info = function(uid, text, show) {
456
  return;
457
  }
458
 
459
+ reconsile_dimensions(uid);
460
+
461
  var visible, hidden;
462
  if (typeof hover != 'undefined') {
463
  if (hover) {
464
  visible = main;
465
  hidden = plain;
 
466
  } else {
467
  visible = plain;
468
  hidden = main;
471
  if (main.css('z-index') == 1) {
472
  visible = main;
473
  hidden = plain;
 
474
  } else {
475
  visible = plain;
476
  hidden = main;
 
477
  }
478
  }
479
 
514
  hidden.css('overflow', hid_over);
515
  }
516
 
 
 
 
 
 
 
517
  // Give focus to plain code
518
  if (hidden == plain) {
519
  if (select) {
520
  plain.select();
521
  } else {
522
+ // XXX not needed
523
+ // plain.focus();
524
  }
525
  }
526
+
527
+ // Refresh scrollbar draw
528
+ hidden.scrollTop(crayon[uid].top + 1);
529
+ hidden.scrollTop(crayon[uid].top);
530
+ hidden.scrollLeft(crayon[uid].left + 1);
531
+ hidden.scrollLeft(crayon[uid].left);
532
+
533
  });
534
 
535
  // Restore scroll positions to hidden
540
 
541
  // Hide toolbar if possible
542
  toolbar_toggle(uid, false);
543
+ return false;
544
  }
545
 
546
  this.toggle_nums = function(uid, hide, instant) {
547
  if (typeof crayon[uid] == 'undefined') {
548
+ make_uid(uid);
549
+ return false;
550
  }
551
 
552
  if (crayon[uid].table.is(':animated')) {
553
+ return false;
554
  }
555
  var nums_width = Math.round(crayon[uid].nums_content.width() + 1);
556
  var neg_width = '-' + nums_width + 'px';
565
  }
566
 
567
  var num_margin;
 
568
  if (num_hidden) {
569
  // Show
570
  num_margin = '0px';
574
  crayon[uid].table.css('margin-left', '0px');
575
  crayon[uid].nums_visible = false;
576
  num_margin = neg_width;
 
577
  }
578
 
579
  if (typeof instant != 'undefined') {
580
  crayon[uid].table.css('margin-left', num_margin);
 
581
  update_nums_button(uid);
582
+ return false;
583
  }
584
 
585
  // Stop jerking animation from scrollbar appearing for a split second due to
590
  crayon[uid].main.css('overflow', 'hidden');
591
  }
592
  crayon[uid].table.animate({
593
+ marginLeft: num_margin
 
594
  }, animt(200, uid), function() {
595
  if (typeof crayon[uid] != 'undefined') {
596
  update_nums_button(uid);
599
  }
600
  }
601
  });
602
+ return false;
603
+ }
604
+
605
+ var fix_table_width = function(uid) {
606
+ if (typeof crayon[uid] == 'undefined') {
607
+ make_uid(uid);
608
+ return false;
609
+ }
610
  }
611
 
612
  // Convert '-10px' to -10
671
  if (typeof crayon[uid] == 'undefined') {
672
  return make_uid(uid);
673
  }
674
+ if (typeof show == 'undefined') {
675
  return;
676
  }
677
 
678
  var main = crayon[uid].main;
679
  var plain = crayon[uid].plain;
680
 
681
+ var main_size = {width:main.width(), height:main.height()};
682
+
683
  if (show) {
684
  main.css('overflow', 'auto');
685
  plain.css('overflow', 'auto');
693
  }
694
  if (!crayon[uid].scroll_block_fix) {
695
  // Fix dimensions so scrollbars stay inside
696
+ main.css('height', main_size.height);
697
+ main.css('width', main_size.width);
698
  } else {
699
  // Relax dimensions so scrollbars are visible
700
  main.css('height', '');
710
  plain.css('overflow', 'hidden');
711
  if (!crayon[uid].scroll_block_fix) {
712
  // Restore dimensions
713
+ main.css('height', crayon[uid].main_style['height']);
714
+ main.css('max-height', crayon[uid].main_style['max-height']);
715
+ main.css('min-height', crayon[uid].main_style['min-height']);
716
+ main.css('width', crayon[uid].main_style['width']);
717
  }
718
  }
719
  // Register that overflow has changed
723
 
724
  /* Fix weird draw error, causes blank area to appear where scrollbar once was. */
725
  var fix_scroll_blank = function(uid) {
726
+ // Scrollbar draw error in Chrome
727
+ crayon[uid].table.style('width', '100%', 'important');
728
+ var redraw = setTimeout(function() {
729
+ crayon[uid].table.style('width', '');
730
+ clearInterval(redraw);
731
+ }, 10);
732
+ }
733
+
734
+ var reconsile_dimensions = function(uid) {
735
+ // Reconsile dimensions
736
+ crayon[uid].plain.height(crayon[uid].main.height());
737
+ //crayon[uid].plain.width(crayon[uid].main.width());
738
  }
739
 
740
  var animt = function(x, uid) {
js/crayon_admin.js CHANGED
@@ -5,9 +5,6 @@ if (typeof DEBUG == 'undefined') {
5
  var DEBUG = false;
6
  }
7
 
8
- // Disables $ for referencing jQuery
9
- jQuery.noConflict();
10
-
11
  if (typeof crayon_log == 'undefined') {
12
  function crayon_log(string) {
13
  if (typeof console != 'undefined' && DEBUG) {
@@ -32,26 +29,46 @@ jQuery(document).ready(function() {
32
  CrayonSyntaxAdmin.init();
33
  });
34
 
35
- // Preview
36
- var preview, preview_cbox, preview_url, preview_height, preview_timer, preview_delay_timer, preview_get;
37
- // The DOM object ids that trigger a preview update
38
- var preview_obj_names = [];
39
- // The jQuery objects for these objects
40
- var preview_objs = [];
41
- var preview_last_values = [];
42
- // Alignment
43
- var align_drop, float;
44
- // Toolbar
45
- var overlay, toolbar;
46
- // Error
47
- var msg_cbox, msg;
48
- // Log
49
- var log_button, log_text, log;
50
-
51
  var CrayonSyntaxAdmin = new function() {
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  this.init = function() {
54
  crayon_log('admin init');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  // Help
56
  help = jQuery('.crayon-help-close');
57
  help.click(function() {
@@ -114,6 +131,8 @@ var CrayonSyntaxAdmin = new function() {
114
  var text = ( log_button.val() == show_log ? hide_log : show_log );
115
  log_button.val(text);
116
  });
 
 
117
  }
118
 
119
  /* Whenever a control changes preview */
@@ -138,15 +157,15 @@ var CrayonSyntaxAdmin = new function() {
138
  //jQuery(window).scrollTop(top.position().top);
139
 
140
  // Delay resize
141
- preview.css('height', preview.height());
142
- preview.css('overflow', 'hidden');
143
- preview_timer = setInterval(function() {
144
- preview.css('height', '');
145
- preview.css('overflow', 'visible');
146
- clearInterval(preview_timer);
147
- }, 1000);
148
 
149
- // Load Data
150
  jQuery.get(preview_url + preview_get, function(data) {
151
  //crayon_log(data);
152
  preview.html(data);
@@ -274,6 +293,68 @@ var CrayonSyntaxAdmin = new function() {
274
  jQuery('#lang-info').show();
275
  jQuery('#lang-info').html(data);
276
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  }
278
 
279
  }
5
  var DEBUG = false;
6
  }
7
 
 
 
 
8
  if (typeof crayon_log == 'undefined') {
9
  function crayon_log(string) {
10
  if (typeof console != 'undefined' && DEBUG) {
29
  CrayonSyntaxAdmin.init();
30
  });
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  var CrayonSyntaxAdmin = new function() {
33
 
34
+ // Preview
35
+ var preview, preview_cbox, preview_url, preview_height, preview_timer, preview_delay_timer, preview_get;
36
+ // The DOM object ids that trigger a preview update
37
+ var preview_obj_names = [];
38
+ // The jQuery objects for these objects
39
+ var preview_objs = [];
40
+ var preview_last_values = [];
41
+ // Alignment
42
+ var align_drop, float;
43
+ // Toolbar
44
+ var overlay, toolbar;
45
+ // Error
46
+ var msg_cbox, msg;
47
+ // Log
48
+ var log_button, log_text, log;
49
+
50
+ var main_wrap, theme_editor_wrap, editor_url, theme_editor_button;
51
+ var theme_editor_loaded = false;
52
+ var theme_editor_loading = false;
53
+
54
  this.init = function() {
55
  crayon_log('admin init');
56
+
57
+ // Wraps
58
+ main_wrap = jQuery('#crayon-main-wrap');
59
+ theme_editor_wrap = jQuery('#crayon-theme-editor-wrap');
60
+ editor_url = theme_editor_wrap.attr('url');
61
+ theme_editor_button = jQuery('#crayon-theme-editor-button');
62
+ theme_editor_button.click(function() { CrayonSyntaxAdmin.show_theme_editor(); });
63
+
64
+ // Theme editor
65
+ var get_vars = this.get_vars();
66
+ if (get_vars['subpage'] == 'theme_editor') {
67
+ this.show_theme_editor();
68
+ } else {
69
+ this.show_main();
70
+ }
71
+
72
  // Help
73
  help = jQuery('.crayon-help-close');
74
  help.click(function() {
131
  var text = ( log_button.val() == show_log ? hide_log : show_log );
132
  log_button.val(text);
133
  });
134
+
135
+
136
  }
137
 
138
  /* Whenever a control changes preview */
157
  //jQuery(window).scrollTop(top.position().top);
158
 
159
  // Delay resize
160
+ // preview.css('height', preview.height());
161
+ // preview.css('overflow', 'hidden');
162
+ // preview_timer = setInterval(function() {
163
+ // preview.css('height', '');
164
+ // preview.css('overflow', 'visible');
165
+ // clearInterval(preview_timer);
166
+ // }, 1000);
167
 
168
+ // Load Preview
169
  jQuery.get(preview_url + preview_get, function(data) {
170
  //crayon_log(data);
171
  preview.html(data);
293
  jQuery('#lang-info').show();
294
  jQuery('#lang-info').html(data);
295
  });
296
+ return false;
297
+ }
298
+
299
+ this.get_vars = function() {
300
+ var vars = {};
301
+ var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
302
+ vars[key] = value;
303
+ });
304
+ return vars;
305
+ }
306
+
307
+ // Changing wrap views
308
+ this.show_main = function() {
309
+ theme_editor_wrap.hide();
310
+ main_wrap.show();
311
+ jQuery(window).scrollTop(0);
312
+ return false;
313
+ }
314
+
315
+ this.show_theme_editor_now = function() {
316
+ main_wrap.hide();
317
+ theme_editor_wrap.show();
318
+ jQuery(window).scrollTop(0);
319
+
320
+ theme_editor_loading = false;
321
+ theme_editor_button.html(theme_editor_button.attr('loaded'));
322
+ }
323
+
324
+ this.show_theme_editor = function() {
325
+ if (theme_editor_loading) {
326
+ return;
327
+ }
328
+ theme_editor_button.css('width', theme_editor_button.width());
329
+ if (!theme_editor_loaded) {
330
+ theme_editor_loading = true;
331
+ theme_editor_button.html(theme_editor_button.attr('loading'));
332
+
333
+ // Simulate loading with timer
334
+ // editor_timer = setInterval(function() {
335
+ // clearInterval(editor_timer);
336
+
337
+ // Load theme editor
338
+ jQuery.get(editor_url, function(data) {
339
+ theme_editor_wrap.html(data);
340
+ // CrayonSyntax.init();
341
+
342
+ // Load url from preview into theme editor
343
+ jQuery('#crayon-editor-preview').attr('url', preview_url);
344
+
345
+ // Load preview into editor
346
+ CrayonSyntaxThemeEditor.init();
347
+
348
+ // show_theme_editor_now();
349
+ });
350
+
351
+ // }, 2000);
352
+
353
+ theme_editor_loaded = true;
354
+ } else {
355
+ this.show_theme_editor_now();
356
+ }
357
+ return false;
358
  }
359
 
360
  }
langs/css/css.txt CHANGED
@@ -3,7 +3,7 @@
3
  # ELEMENT_NAME [optional-css-class] REGULAR_EXPRESSION
4
 
5
  NAME CSS
6
- VERSION 1.7.0
7
 
8
  COMMENT (/\*.*?\*/)
9
  STRING (?default)
@@ -14,9 +14,8 @@
14
  TAG (</?\s*[^<\s>]+\s*>?)|(\s*>)
15
  ATTR:ENTITY [\w-]+(?=\s*=")
16
 
17
- SELECTOR:KEYWORD (\.|\#)[A-Za-z_][\w-]*\b(?=[^;}]*{)
18
  PROPERTY:ENTITY \b[A-Za-z_][\w-]*(?=\s*:)
19
  IMP:CONSTANT !important
20
- VALUE:IDENTIFIER (?<=:)[\s\w-]+(?=[^;{:]*;)
21
  SYMBOL (?default)
22
-
3
  # ELEMENT_NAME [optional-css-class] REGULAR_EXPRESSION
4
 
5
  NAME CSS
6
+ VERSION 1.8.0
7
 
8
  COMMENT (/\*.*?\*/)
9
  STRING (?default)
14
  TAG (</?\s*[^<\s>]+\s*>?)|(\s*>)
15
  ATTR:ENTITY [\w-]+(?=\s*=")
16
 
17
+ SELECTOR:KEYWORD [^\s\;\{\}][^\;\{\}]*(?=\{)
18
  PROPERTY:ENTITY \b[A-Za-z_][\w-]*(?=\s*:)
19
  IMP:CONSTANT !important
20
+ VALUE:IDENTIFIER [^\s\{\}\;\:\!\(\)]+
21
  SYMBOL (?default)
 
langs/js/js.txt CHANGED
@@ -3,10 +3,11 @@
3
  # ELEMENT_NAME [optional-css-class] REGULAR_EXPRESSION
4
 
5
  NAME JavaScript
6
- VERSION 1.1
7
 
8
  COMMENT (?default)
9
  STRING (?default)
 
10
 
11
  STATEMENT (?default)
12
  RESERVED (?default)|\b(?<![:\.])(?-i:(?alt:reserved.txt))(?![:\.])\b
3
  # ELEMENT_NAME [optional-css-class] REGULAR_EXPRESSION
4
 
5
  NAME JavaScript
6
+ VERSION 1.8
7
 
8
  COMMENT (?default)
9
  STRING (?default)
10
+ REGEX:COMMENT /([^/]|(?<=\\)/)+/[gmiys]
11
 
12
  STATEMENT (?default)
13
  RESERVED (?default)|\b(?<![:\.])(?-i:(?alt:reserved.txt))(?![:\.])\b
langs/objc/objc.txt CHANGED
@@ -14,9 +14,9 @@
14
  TYPE \b(?alt:type.txt)\b
15
  MODIFIER (?alt:modifier_at.txt)\b|\b(?alt:modifier.txt)\b
16
 
 
17
  ENTITY (\b[a-z_]\w*\b(?=\s*\([^\)]*\)))|((?<!\.)(\b[a-z_]\w*\b)(?=[^},.:;\)]*{))|(\b[a-z_]\w+\b\s+(?=\b[a-z_][\w]+\b(?!\s*\:)))|(\b[a-z_]\w*\s*\*)|(?-i:NS[\w]+)
18
  VARIABLE (?default)|(\*\w+)
19
  IDENTIFIER (?default)
20
- CONSTANT (?default)|\b(?alt:constant.txt)\b
21
  OPERATOR (?default)
22
  SYMBOL (?default)
14
  TYPE \b(?alt:type.txt)\b
15
  MODIFIER (?alt:modifier_at.txt)\b|\b(?alt:modifier.txt)\b
16
 
17
+ CONSTANT (?default)|\b(?alt:constant.txt)\b
18
  ENTITY (\b[a-z_]\w*\b(?=\s*\([^\)]*\)))|((?<!\.)(\b[a-z_]\w*\b)(?=[^},.:;\)]*{))|(\b[a-z_]\w+\b\s+(?=\b[a-z_][\w]+\b(?!\s*\:)))|(\b[a-z_]\w*\s*\*)|(?-i:NS[\w]+)
19
  VARIABLE (?default)|(\*\w+)
20
  IDENTIFIER (?default)
 
21
  OPERATOR (?default)
22
  SYMBOL (?default)
langs/xhtml/xhtml.txt CHANGED
@@ -3,7 +3,7 @@
3
  # ELEMENT_NAME [optional-css-class] REGULAR_EXPRESSION
4
 
5
  NAME XHTML
6
- VERSION 1.7.0
7
 
8
  COMMENT \<!--.*?--\>
9
  ATT_STR:STRING (((?<!\\)".*?(?<!\\)")|((?<!\\)'.*?(?<!\\)'))
@@ -15,5 +15,7 @@
15
 
16
  ATTR:ENTITY [\w-]+(?=\s*=")
17
  TEXT:IDENTIFIER (?<=\>)[^\<\>]*(?=\<)
 
18
  SYMBOL (?default)
 
19
  # OTHER:CONSTANT (?default:identifier)
3
  # ELEMENT_NAME [optional-css-class] REGULAR_EXPRESSION
4
 
5
  NAME XHTML
6
+ VERSION 1.7.17
7
 
8
  COMMENT \<!--.*?--\>
9
  ATT_STR:STRING (((?<!\\)".*?(?<!\\)")|((?<!\\)'.*?(?<!\\)'))
15
 
16
  ATTR:ENTITY [\w-]+(?=\s*=")
17
  TEXT:IDENTIFIER (?<=\>)[^\<\>]*(?=\<)
18
+ OPERATOR (?default)
19
  SYMBOL (?default)
20
+
21
  # OTHER:CONSTANT (?default:identifier)
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Crayon Syntax Highlighter ===
2
  Contributors: akarmenia
3
- Donate link: http://ak.net84.net/files/donate.php
4
  Tags: syntax highlighter, syntax, highlighter, highlighting, crayon, code highlighter
5
  Requires at least: 3.0
6
  Tested up to: 3.3.1
7
- Stable tag: trunk
8
 
9
  Syntax Highlighter supporting multiple languages, themes, fonts, highlighting from a URL, local file or post text.
10
 
@@ -71,6 +71,7 @@ Please Thank Me With <a href="http://ak.net84.net/files/donate.php" target="_bla
71
  * Italian
72
  * Spanish
73
  * Japanese (thanks to @west_323)
 
74
  * Help from translators at improving/adding to this list greatly appreciated!
75
 
76
  **Articles**
@@ -83,8 +84,10 @@ These are helpful for discovering new features.
83
 
84
  **Planned Features**
85
 
86
- * Highlighting priority
 
87
  * Theme Editor
 
88
 
89
  == Installation ==
90
 
@@ -115,11 +118,59 @@ Contact me at http://twitter.com/crayonsyntax or crayon.syntax@gmail.com.
115
 
116
  == Screenshots ==
117
 
118
- 1. Classic theme in Live Preview under Settings > Crayon.
119
  2. Twilight theme.
120
 
121
  == Changelog ==
122
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  = 1.7.11 =
124
  * Added the option of either enqueuing themes and fonts (efficient) or printing them before the Crayon each time when enqueuing fails
125
  * Thanks to http://www.adostudio.it/ for finding the bugs
@@ -337,3 +388,11 @@ http://wordpress.org/support/topic/plugin-crayon-syntax-highlighter-this-plugin-
337
  == Upgrade Notice ==
338
 
339
  Make sure to upgrade to the latest release when possible, I usually fix bugs on the day and add new features quickly.
 
 
 
 
 
 
 
 
1
  === Crayon Syntax Highlighter ===
2
  Contributors: akarmenia
3
+ Donate link: http://bit.ly/crayondonate
4
  Tags: syntax highlighter, syntax, highlighter, highlighting, crayon, code highlighter
5
  Requires at least: 3.0
6
  Tested up to: 3.3.1
7
+ Stable tag: 1.7.22
8
 
9
  Syntax Highlighter supporting multiple languages, themes, fonts, highlighting from a URL, local file or post text.
10
 
71
  * Italian
72
  * Spanish
73
  * Japanese (thanks to @west_323)
74
+ * Russian (thanks to minimus - http://simplelib.com)
75
  * Help from translators at improving/adding to this list greatly appreciated!
76
 
77
  **Articles**
84
 
85
  **Planned Features**
86
 
87
+ * Ruby support (feel free to add before me!)
88
+ * Highlighting in sentences
89
  * Theme Editor
90
+ * Visual Editor Support
91
 
92
  == Installation ==
93
 
118
 
119
  == Screenshots ==
120
 
121
+ 1. Classic theme.
122
  2. Twilight theme.
123
 
124
  == Changelog ==
125
 
126
+ = 1.8.0 =
127
+ * Theme Editor coming soon!
128
+
129
+ = 1.7.22 =
130
+ * Fixed dimension and redraw issues on scrollbars
131
+
132
+ = 1.7.21 =
133
+ * Fixed a bug that relied on register_activation_hook to update the database on auto update
134
+
135
+ = 1.7.20 =
136
+ * "Always display scrollbars" now a checkbox
137
+
138
+ = 1.7.19 =
139
+ * Fixed issue with Crayons failing to load on pages with templates containing The Loop. http://bit.ly/AcWRNY
140
+ * Objective-C operators improved
141
+
142
+ = 1.7.18 =
143
+ * Fixed issue with extra &lt;br/&gt; and &lt;p&gt; tags before and after Crayons
144
+
145
+ = 1.7.17 =
146
+ * Added a setting to use just the main WP query or to use the_posts wherever it is used (default now).
147
+ * Improved XHTML
148
+
149
+ = 1.7.16 =
150
+ * Running out of revision numbers!
151
+ * Fixed a bug causing default-theme from loading as a font
152
+ * Fixed an issue where the js used to remove inline styles before opening in another window was missing the /g regex modifier
153
+ * Cleaned up loading and event handling in crayon.js
154
+ * Fixed a bug causing code popup to fail
155
+ * Improved CSS language
156
+ * Improved JS language by adding regex syntax, yay!
157
+ * Fixed issues with resizing Crayon and dimensions
158
+ * Added support for custom excerpts
159
+
160
+ = 1.7.15 =
161
+ * Fixed a bug prevented fonts and themes with spaces from being enqueued. Thanks to Fredrik Nygren.
162
+ * Improved handling of id's and names of resources.
163
+
164
+ = 1.7.14 =
165
+ * Fixed a bug that could potentially cause a PHP warning when reading the log when not permitted to do so.
166
+
167
+ = 1.7.13 =
168
+ * Fixed a bug causing my settings and donate links to be appended to all plugins in the list. Thanks to Ben.
169
+
170
+ = 1.7.12 =
171
+ * Added Russian translation thanks to minimus (http://simplelib.com)
172
+ * Added Consolas Font
173
+
174
  = 1.7.11 =
175
  * Added the option of either enqueuing themes and fonts (efficient) or printing them before the Crayon each time when enqueuing fails
176
  * Thanks to http://www.adostudio.it/ for finding the bugs
388
  == Upgrade Notice ==
389
 
390
  Make sure to upgrade to the latest release when possible, I usually fix bugs on the day and add new features quickly.
391
+
392
+ == Donations ==
393
+
394
+ Thanks to all those who donate to my project!
395
+
396
+ * Nick Weisser (http://www.openstream.ch/), Switzerland
397
+ * Perry Bonewell (http://pointatthemoon.co.uk/), United Kingdom
398
+ * Andrew McDonnell (http://blog.oldcomputerjunk.net/), Australia
screenshot-1.png CHANGED
Binary file
screenshot-2.png CHANGED
Binary file
themes/classic/classic.css CHANGED
@@ -97,19 +97,24 @@ Author URI: http://ak.net84.net/
97
  .crayon-theme-classic .crayon-language {
98
  color: #999 !important;
99
  }
100
- .crayon-theme-classic a.crayon-button:link {
101
- background-color: #F2F2F2 !important;
102
- color: #666 !important;
 
103
  }
104
  .crayon-theme-classic a.crayon-button:hover,
105
- .crayon-theme-classic a.crayon-button.crayon-pressed {
106
- background-color: #BBB !important;
107
- color: #FFF !important;
108
  }
 
 
 
109
  .crayon-theme-classic a.crayon-button:active {
110
- background-color: #F2F2F2 !important;
111
- color: #666 !important;
112
  }
 
113
  /* End Code Style ================== */
114
 
115
  /* Syntax Highlighting ============= */
97
  .crayon-theme-classic .crayon-language {
98
  color: #999 !important;
99
  }
100
+
101
+ /* Buttons */
102
+ .crayon-theme-classic a.crayon-button {
103
+ background-color: transparent;
104
  }
105
  .crayon-theme-classic a.crayon-button:hover,
106
+ .crayon-theme-classic a.crayon-button.crayon-pressed:hover {
107
+ background-color: #F2F2F2;
108
+ color: #666;
109
  }
110
+ /* :active MUST come after :hover */
111
+ .crayon-theme-classic a.crayon-button.crayon-pressed,
112
+ .crayon-theme-classic a.crayon-button.crayon-pressed:active,
113
  .crayon-theme-classic a.crayon-button:active {
114
+ background-color: #BBB;
115
+ color: #FFF;
116
  }
117
+
118
  /* End Code Style ================== */
119
 
120
  /* Syntax Highlighting ============= */
themes/twilight/twilight.css CHANGED
@@ -102,21 +102,25 @@ Author URI: http://ak.net84.net/
102
  .crayon-theme-twilight .crayon-language {
103
  color: #666 !important;
104
  }
105
- .crayon-theme-twilight a.crayon-button:link {
106
- background-color: #ddd !important;
107
- color: #666 !important;
 
 
 
 
108
  }
109
  .crayon-theme-twilight a.crayon-button:hover,
110
- .crayon-theme-twilight a.crayon-button.crayon-pressed {
111
- background-color: #777 !important;
112
- color: #ccc !important;
113
  }
 
 
 
114
  .crayon-theme-twilight a.crayon-button:active {
115
- background-color: #F2F2F2 !important;
116
- color: #666 !important;
117
- }
118
- .crayon-theme-twilight .crayon-toolbar .crayon-mixed-highlight {
119
- background-image: url('../../css/images/toolbar/plus_dark.png');
120
  }
121
  /* End Code Style ================== */
122
 
102
  .crayon-theme-twilight .crayon-language {
103
  color: #666 !important;
104
  }
105
+ .crayon-theme-twilight .crayon-toolbar .crayon-mixed-highlight {
106
+ background-image: url('../../css/images/toolbar/plus_dark.png');
107
+ }
108
+
109
+ /* Buttons */
110
+ .crayon-theme-twilight a.crayon-button {
111
+ background-color: transparent;
112
  }
113
  .crayon-theme-twilight a.crayon-button:hover,
114
+ .crayon-theme-twilight a.crayon-button.crayon-pressed:hover {
115
+ background-color: #ddd;
116
+ color: #666;
117
  }
118
+ /* :active MUST come after :hover */
119
+ .crayon-theme-twilight a.crayon-button.crayon-pressed,
120
+ .crayon-theme-twilight a.crayon-button.crayon-pressed:active,
121
  .crayon-theme-twilight a.crayon-button:active {
122
+ background-color: #777;
123
+ color: #ccc;
 
 
 
124
  }
125
  /* End Code Style ================== */
126
 
trans/crayon-syntax-highlighter-ru_RU.mo ADDED
Binary file
trans/crayon-syntax-highlighter-ru_RU.po CHANGED
@@ -1,20 +1,20 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: \n"
6
  "PO-Revision-Date: \n"
7
- "Last-Translator: \n"
8
- "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
- "X-Poedit-Language: \n"
14
- "X-Poedit-Country: \n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
- "X-Poedit-Basepath: \n"
18
  "X-Poedit-Bookmarks: \n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
@@ -22,502 +22,592 @@ msgstr ""
22
  #: crayon_settings.class.php:99
23
  #@ crayon-syntax-highlighter
24
  msgid "Hourly"
25
- msgstr ""
26
 
27
  #: crayon_settings.class.php:99
28
  #@ crayon-syntax-highlighter
29
  msgid "Daily"
30
- msgstr ""
31
 
32
  #: crayon_settings.class.php:100
33
  #@ crayon-syntax-highlighter
34
  msgid "Weekly"
35
- msgstr ""
36
 
37
  #: crayon_settings.class.php:100
38
  #@ crayon-syntax-highlighter
39
  msgid "Monthly"
40
- msgstr ""
41
 
42
  #: crayon_settings.class.php:101
43
  #@ crayon-syntax-highlighter
44
  msgid "Immediately"
45
- msgstr ""
46
 
47
  #: crayon_settings.class.php:125
48
  #: crayon_settings.class.php:129
49
  #@ crayon-syntax-highlighter
50
  msgid "Max"
51
- msgstr ""
52
 
53
  #: crayon_settings.class.php:125
54
  #: crayon_settings.class.php:129
55
  #@ crayon-syntax-highlighter
56
  msgid "Min"
57
- msgstr ""
58
 
59
  #: crayon_settings.class.php:125
60
  #: crayon_settings.class.php:129
61
  #@ crayon-syntax-highlighter
62
  msgid "Static"
63
- msgstr ""
64
 
65
  #: crayon_settings.class.php:127
66
  #: crayon_settings.class.php:131
67
  #@ crayon-syntax-highlighter
68
  msgid "Pixels"
69
- msgstr ""
70
 
71
  #: crayon_settings.class.php:127
72
  #: crayon_settings.class.php:131
73
  #@ crayon-syntax-highlighter
74
  msgid "Percent"
75
- msgstr ""
76
 
77
  #: crayon_settings.class.php:140
78
  #@ crayon-syntax-highlighter
79
  msgid "None"
80
- msgstr ""
81
 
82
  #: crayon_settings.class.php:140
83
  #@ crayon-syntax-highlighter
84
  msgid "Left"
85
- msgstr ""
86
 
87
  #: crayon_settings.class.php:140
88
  #@ crayon-syntax-highlighter
89
  msgid "Center"
90
- msgstr ""
91
 
92
  #: crayon_settings.class.php:140
93
  #@ crayon-syntax-highlighter
94
  msgid "Right"
95
- msgstr ""
96
 
97
  #: crayon_settings.class.php:142
98
  #: crayon_settings.class.php:159
99
  #: crayon_settings.class.php:164
100
  #@ crayon-syntax-highlighter
101
  msgid "On MouseOver"
102
- msgstr ""
103
 
104
  #: crayon_settings.class.php:142
105
  #: crayon_settings.class.php:148
106
  #: crayon_settings.class.php:159
107
  #@ crayon-syntax-highlighter
108
  msgid "Always"
109
- msgstr ""
110
 
111
  #: crayon_settings.class.php:142
112
  #: crayon_settings.class.php:148
113
  #@ crayon-syntax-highlighter
114
  msgid "Never"
115
- msgstr ""
116
 
117
  #: crayon_settings.class.php:148
118
  #@ crayon-syntax-highlighter
119
  msgid "When Found"
120
- msgstr ""
121
 
122
  #: crayon_settings.class.php:164
123
  #@ crayon-syntax-highlighter
124
  msgid "On Double Click"
125
- msgstr ""
126
 
127
  #: crayon_settings.class.php:164
128
  #@ crayon-syntax-highlighter
129
  msgid "On Single Click"
130
- msgstr ""
 
 
 
 
 
131
 
132
  #: crayon_settings.class.php:172
133
  #@ crayon-syntax-highlighter
134
  msgid "An error has occurred. Please try again later."
135
- msgstr ""
136
 
137
  #: crayon_settings_wp.class.php:39
138
  #: crayon_settings_wp.class.php:77
139
  #@ crayon-syntax-highlighter
140
  msgid "Settings"
141
- msgstr ""
142
 
143
  #: crayon_settings_wp.class.php:70
144
  #@ crayon-syntax-highlighter
145
  msgid "You do not have sufficient permissions to access this page."
146
- msgstr ""
147
 
148
  #: crayon_settings_wp.class.php:89
149
  #@ crayon-syntax-highlighter
150
  msgid "Save Changes"
151
- msgstr ""
152
 
153
  #: crayon_settings_wp.class.php:95
154
  #@ crayon-syntax-highlighter
155
  msgid "Reset Settings"
156
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
  #: crayon_settings_wp.class.php:425
159
  #@ crayon-syntax-highlighter
160
  msgid "Height"
161
- msgstr ""
162
 
163
  #: crayon_settings_wp.class.php:431
164
  #@ crayon-syntax-highlighter
165
  msgid "Width"
166
- msgstr ""
167
 
168
  #: crayon_settings_wp.class.php:437
169
  #@ crayon-syntax-highlighter
170
  msgid "Top Margin"
171
- msgstr ""
172
 
173
  #: crayon_settings_wp.class.php:438
174
  #@ crayon-syntax-highlighter
175
  msgid "Bottom Margin"
176
- msgstr ""
177
 
178
  #: crayon_settings_wp.class.php:439
179
  #: crayon_settings_wp.class.php:444
180
  #@ crayon-syntax-highlighter
181
  msgid "Left Margin"
182
- msgstr ""
183
 
184
  #: crayon_settings_wp.class.php:440
185
  #: crayon_settings_wp.class.php:444
186
  #@ crayon-syntax-highlighter
187
  msgid "Right Margin"
188
- msgstr ""
189
 
190
  #: crayon_settings_wp.class.php:450
191
  #@ crayon-syntax-highlighter
192
  msgid "Horizontal Alignment"
193
- msgstr ""
194
 
195
  #: crayon_settings_wp.class.php:453
196
  #@ crayon-syntax-highlighter
197
  msgid "Allow floating elements to surround Crayon"
198
- msgstr ""
199
 
200
  #: crayon_settings_wp.class.php:458
201
  #@ crayon-syntax-highlighter
202
  msgid "Display the Toolbar"
203
- msgstr ""
204
 
205
  #: crayon_settings_wp.class.php:461
206
  #@ crayon-syntax-highlighter
207
  msgid "Overlay the toolbar on code rather than push it down when possible"
208
- msgstr ""
209
 
210
  #: crayon_settings_wp.class.php:462
211
  #@ crayon-syntax-highlighter
212
  msgid "Toggle the toolbar on single click when it is overlayed"
213
- msgstr ""
214
 
215
  #: crayon_settings_wp.class.php:463
216
  #@ crayon-syntax-highlighter
217
  msgid "Delay hiding the toolbar on MouseOut"
218
- msgstr ""
219
 
220
  #: crayon_settings_wp.class.php:465
221
  #@ crayon-syntax-highlighter
222
  msgid "Display the title when provided"
223
- msgstr ""
224
 
225
  #: crayon_settings_wp.class.php:466
226
  #@ crayon-syntax-highlighter
227
  msgid "Display the language"
228
- msgstr ""
229
 
230
  #: crayon_settings_wp.class.php:471
231
  #@ crayon-syntax-highlighter
232
  msgid "Display striped code lines"
233
- msgstr ""
234
 
235
  #: crayon_settings_wp.class.php:472
236
  #@ crayon-syntax-highlighter
237
  msgid "Enable line marking for important lines"
238
- msgstr ""
239
 
240
  #: crayon_settings_wp.class.php:473
241
  #@ crayon-syntax-highlighter
242
  msgid "Display line numbers by default"
243
- msgstr ""
244
 
245
  #: crayon_settings_wp.class.php:474
246
  #@ crayon-syntax-highlighter
247
  msgid "Enable line number toggling"
248
- msgstr ""
249
 
250
  #: crayon_settings_wp.class.php:475
251
  #@ crayon-syntax-highlighter
252
  msgid "Start line numbers from"
253
- msgstr ""
254
 
255
  #: crayon_settings_wp.class.php:485
256
  #@ crayon-syntax-highlighter
257
  msgid "When no language is provided, use the fallback"
258
- msgstr ""
 
 
 
 
 
 
 
 
 
259
 
260
  #: crayon_settings_wp.class.php:498
261
  #@ crayon-syntax-highlighter
262
  msgid "Parsing was successful"
263
- msgstr ""
264
 
265
  #: crayon_settings_wp.class.php:498
266
  #@ crayon-syntax-highlighter
267
  msgid "Parsing was unsuccessful"
268
- msgstr ""
269
 
270
  #: crayon_settings_wp.class.php:504
271
  #, php-format
272
  #@ crayon-syntax-highlighter
273
  msgid "The selected language with id %s could not be loaded"
274
- msgstr ""
275
 
276
  #: crayon_settings_wp.class.php:508
277
  #@ crayon-syntax-highlighter
278
  msgid "Show Languages"
279
- msgstr ""
280
 
281
  #: crayon_settings_wp.class.php:529
282
  #@ crayon-syntax-highlighter
283
  msgid "Enable Live Preview"
284
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
 
286
  #: crayon_settings_wp.class.php:534
287
  #, php-format
288
  #@ crayon-syntax-highlighter
289
  msgid "The selected theme with id %s could not be loaded"
290
- msgstr ""
291
 
292
  #: crayon_settings_wp.class.php:548
293
  #@ crayon-syntax-highlighter
294
  msgid "Theme Default"
295
- msgstr ""
296
 
297
  #: crayon_settings_wp.class.php:552
298
  #@ crayon-syntax-highlighter
299
  msgid "Custom Font Size"
300
- msgstr ""
301
 
302
  #: crayon_settings_wp.class.php:557
303
  #, php-format
304
  #@ crayon-syntax-highlighter
305
  msgid "The selected font with id %s could not be loaded"
306
- msgstr ""
 
 
 
 
 
307
 
308
  #: crayon_settings_wp.class.php:563
309
  #@ crayon-syntax-highlighter
310
  msgid "Enable plain code view and display"
311
- msgstr ""
 
 
 
 
 
 
 
 
 
 
312
 
313
  #: crayon_settings_wp.class.php:568
314
  #@ crayon-syntax-highlighter
315
  msgid "Enable code copy/paste"
316
- msgstr ""
317
 
318
  #: crayon_settings_wp.class.php:570
319
  #@ crayon-syntax-highlighter
320
  msgid "Enable opening code in a window"
321
- msgstr ""
322
 
323
  #: crayon_settings_wp.class.php:571
324
  #@ crayon-syntax-highlighter
325
  msgid "Display scrollbars (when needed)"
326
- msgstr ""
327
 
328
  #: crayon_settings_wp.class.php:573
329
  #@ crayon-syntax-highlighter
330
  msgid "Tab size in spaces"
331
- msgstr ""
332
 
333
  #: crayon_settings_wp.class.php:575
334
  #@ crayon-syntax-highlighter
335
  msgid "Remove whitespace surrounding the shortcode content"
336
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
 
338
  #: crayon_settings_wp.class.php:585
339
  #@ crayon-syntax-highlighter
340
  msgid "When loading local files and a relative path is given for the URL, use the absolute path"
341
- msgstr ""
 
 
 
 
 
342
 
343
  #: crayon_settings_wp.class.php:592
344
  #@ crayon-syntax-highlighter
345
  msgid "Clear the cache used to store remote code requests"
346
- msgstr ""
347
 
348
  #: crayon_settings_wp.class.php:594
349
  #@ crayon-syntax-highlighter
350
  msgid "Clear Now"
351
- msgstr ""
 
 
 
 
 
 
 
 
 
 
352
 
353
  #: crayon_settings_wp.class.php:596
354
  #@ crayon-syntax-highlighter
355
  msgid "Disable mouse gestures for touchscreen devices (eg. MouseOver)"
356
- msgstr ""
357
 
358
  #: crayon_settings_wp.class.php:597
359
  #@ crayon-syntax-highlighter
360
  msgid "Disable animations"
361
- msgstr ""
362
 
363
  #: crayon_settings_wp.class.php:598
364
  #@ crayon-syntax-highlighter
365
  msgid "Disable runtime stats"
366
- msgstr ""
367
 
368
  #: crayon_settings_wp.class.php:605
369
  #@ crayon-syntax-highlighter
370
  msgid "Log errors for individual Crayons"
371
- msgstr ""
372
 
373
  #: crayon_settings_wp.class.php:606
374
  #@ crayon-syntax-highlighter
375
  msgid "Log system-wide errors"
376
- msgstr ""
377
 
378
  #: crayon_settings_wp.class.php:607
379
  #@ crayon-syntax-highlighter
380
  msgid "Display custom message for errors"
381
- msgstr ""
382
 
383
  #: crayon_settings_wp.class.php:619
384
  #@ crayon-syntax-highlighter
385
  msgid "Show Log"
386
- msgstr ""
387
 
388
  #: crayon_settings_wp.class.php:621
389
  #@ crayon-syntax-highlighter
390
  msgid "Clear Log"
391
- msgstr ""
392
 
393
  #: crayon_settings_wp.class.php:622
394
  #@ crayon-syntax-highlighter
395
  msgid "Email Admin"
396
- msgstr ""
397
 
398
  #: crayon_settings_wp.class.php:624
399
  #@ crayon-syntax-highlighter
400
  msgid "Email Developer"
401
- msgstr ""
402
-
403
- #: crayon_settings_wp.class.php:640
404
- #@ crayon-syntax-highlighter
405
- msgid "Version"
406
- msgstr ""
407
-
408
- #: crayon_settings_wp.class.php:642
409
- #@ crayon-syntax-highlighter
410
- msgid "Developer"
411
- msgstr ""
412
-
413
- #: crayon_settings_wp.class.php:666
414
- #@ crayon-syntax-highlighter
415
- msgid "The result of innumerable hours of hard work over many months. It's an ongoing project, keep me motivated!"
416
- msgstr ""
417
-
418
- #: util/preview.php:63
419
- #, php-format
420
- #@ crayon-syntax-highlighter
421
- msgid "Change the %1$sfallback language%2$s to change the sample code. Lines 5-7 are marked."
422
- msgstr ""
423
-
424
- #: crayon_settings_wp.class.php:411
425
- #@ crayon-syntax-highlighter
426
- msgid "Crayon Help"
427
- msgstr ""
428
-
429
- #: crayon_settings_wp.class.php:595
430
- #@ crayon-syntax-highlighter
431
- msgid "Attempt to load Crayon's CSS and JavaScript only when needed"
432
- msgstr ""
433
-
434
- #: crayon_settings_wp.class.php:595
435
- #@ crayon-syntax-highlighter
436
- msgid "Why?"
437
- msgstr ""
438
-
439
- #: crayon_settings_wp.class.php:497
440
- #, php-format
441
- #@ crayon-syntax-highlighter
442
- msgid "%d language has been detected."
443
- msgid_plural "%d languages have been detected."
444
- msgstr[0] ""
445
- msgstr[1] ""
446
- msgstr[2] ""
447
-
448
- #: crayon_settings_wp.class.php:588
449
- #@ crayon-syntax-highlighter
450
- msgid "Followed by your relative URL."
451
- msgstr ""
452
 
453
  #: crayon_settings_wp.class.php:626
454
  #@ crayon-syntax-highlighter
455
  msgid "The log is currently empty."
456
- msgstr ""
457
 
458
  #: crayon_settings_wp.class.php:628
459
  #@ crayon-syntax-highlighter
460
  msgid "The log file exists and is writable."
461
- msgstr ""
462
 
463
  #: crayon_settings_wp.class.php:628
464
  #@ crayon-syntax-highlighter
465
  msgid "The log file exists and is not writable."
466
- msgstr ""
467
 
468
  #: crayon_settings_wp.class.php:630
469
  #@ crayon-syntax-highlighter
470
  msgid "The log file does not exist and is not writable."
471
- msgstr ""
472
-
473
- #: crayon_settings_wp.class.php:576
474
- #@ crayon-syntax-highlighter
475
- msgid "Capture &lt;pre&gt; tags as Crayons"
476
- msgstr ""
477
-
478
- #: crayon_settings_wp.class.php:531
479
- #: crayon_settings_wp.class.php:559
480
- #: crayon_settings_wp.class.php:577
481
- #: crayon_settings_wp.class.php:578
482
- #: crayon_settings_wp.class.php:579
483
- #@ crayon-syntax-highlighter
484
- msgid "Learn More"
485
- msgstr ""
486
-
487
- #: crayon_settings_wp.class.php:580
488
- #@ crayon-syntax-highlighter
489
- msgid "Show Mixed Language Icon (+)"
490
- msgstr ""
491
 
492
- #: crayon_settings_wp.class.php:579
493
  #@ crayon-syntax-highlighter
494
- msgid "Allow Mixed Language Highlighting with delimiters and tags."
495
- msgstr ""
496
 
497
- #: crayon_settings_wp.class.php:577
498
  #@ crayon-syntax-highlighter
499
- msgid "Capture Mini Tags like [php][/php] as Crayons."
500
- msgstr ""
501
 
502
- #: crayon_settings_wp.class.php:578
503
  #@ crayon-syntax-highlighter
504
- msgid "Enable [plain][/plain] tag."
505
- msgstr ""
506
 
507
- #: crayon_settings.class.php:164
508
  #@ crayon-syntax-highlighter
509
- msgid "Disable Mouse Events"
510
- msgstr ""
511
 
512
- #: crayon_settings_wp.class.php:566
513
  #@ crayon-syntax-highlighter
514
- msgid "Enable plain code toggling"
515
- msgstr ""
516
 
517
- #: crayon_settings_wp.class.php:567
 
518
  #@ crayon-syntax-highlighter
519
- msgid "Show the plain code by default"
520
- msgstr ""
521
 
522
  #. translators: plugin header field 'Name'
523
  #: crayon_wp.class.php:0
@@ -549,96 +639,6 @@ msgstr ""
549
  msgid "http://ak.net84.net/"
550
  msgstr ""
551
 
552
- #: crayon_wp.class.php:428
553
- #@ crayon-syntax-highlighter
554
- msgid "View Settings"
555
- msgstr ""
556
-
557
- #: crayon_wp.class.php:429
558
- #@ crayon-syntax-highlighter
559
- msgid "Donate"
560
- msgstr ""
561
-
562
- #: crayon_settings_wp.class.php:206
563
- #@ crayon-syntax-highlighter
564
- msgid "General"
565
- msgstr ""
566
-
567
- #: crayon_settings_wp.class.php:207
568
- #@ crayon-syntax-highlighter
569
- msgid "Theme"
570
- msgstr ""
571
-
572
- #: crayon_settings_wp.class.php:208
573
- #@ crayon-syntax-highlighter
574
- msgid "Font"
575
- msgstr ""
576
-
577
- #: crayon_settings_wp.class.php:209
578
- #@ crayon-syntax-highlighter
579
- msgid "Metrics"
580
- msgstr ""
581
-
582
- #: crayon_settings_wp.class.php:210
583
- #@ crayon-syntax-highlighter
584
- msgid "Toolbar"
585
- msgstr ""
586
-
587
- #: crayon_settings_wp.class.php:211
588
- #@ crayon-syntax-highlighter
589
- msgid "Lines"
590
- msgstr ""
591
-
592
- #: crayon_settings_wp.class.php:212
593
- #@ crayon-syntax-highlighter
594
- msgid "Code"
595
- msgstr ""
596
-
597
- #: crayon_settings_wp.class.php:213
598
- #@ crayon-syntax-highlighter
599
- msgid "Languages"
600
- msgstr ""
601
-
602
- #: crayon_settings_wp.class.php:214
603
- #@ crayon-syntax-highlighter
604
- msgid "Files"
605
- msgstr ""
606
-
607
- #: crayon_settings_wp.class.php:215
608
- #@ crayon-syntax-highlighter
609
- msgid "Misc"
610
- msgstr ""
611
-
612
- #: crayon_settings_wp.class.php:218
613
- #@ crayon-syntax-highlighter
614
- msgid "Debug"
615
- msgstr ""
616
-
617
- #: crayon_settings_wp.class.php:219
618
- #@ crayon-syntax-highlighter
619
- msgid "Errors"
620
- msgstr ""
621
-
622
- #: crayon_settings_wp.class.php:220
623
- #@ crayon-syntax-highlighter
624
- msgid "Log"
625
- msgstr ""
626
-
627
- #: crayon_settings_wp.class.php:223
628
- #@ crayon-syntax-highlighter
629
- msgid "About"
630
- msgstr ""
631
-
632
- #: crayon_settings_wp.class.php:531
633
- #@ crayon-syntax-highlighter
634
- msgid "Enqueue themes in the header (more efficient)."
635
- msgstr ""
636
-
637
- #: crayon_settings_wp.class.php:559
638
- #@ crayon-syntax-highlighter
639
- msgid "Enqueue fonts in the header (more efficient)."
640
- msgstr ""
641
-
642
  #. translators: plugin header field 'Version'
643
  #: crayon_wp.class.php:0
644
  #@ crayon-syntax-highlighter
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Crayon Syntax Highlighter\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2012-01-07 12:58+0300\n"
6
  "PO-Revision-Date: \n"
7
+ "Last-Translator: minimus <minimus@blogcoding.ru>\n"
8
+ "Language-Team: minimus <minimus@simplelib.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-Language: Russian\n"
14
+ "X-Poedit-Country: BELARUS\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
+ "X-Poedit-Basepath: .\n"
18
  "X-Poedit-Bookmarks: \n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
22
  #: crayon_settings.class.php:99
23
  #@ crayon-syntax-highlighter
24
  msgid "Hourly"
25
+ msgstr "Каждый час"
26
 
27
  #: crayon_settings.class.php:99
28
  #@ crayon-syntax-highlighter
29
  msgid "Daily"
30
+ msgstr "Ежедневно"
31
 
32
  #: crayon_settings.class.php:100
33
  #@ crayon-syntax-highlighter
34
  msgid "Weekly"
35
+ msgstr "Еженедельно"
36
 
37
  #: crayon_settings.class.php:100
38
  #@ crayon-syntax-highlighter
39
  msgid "Monthly"
40
+ msgstr "Ежемесячно"
41
 
42
  #: crayon_settings.class.php:101
43
  #@ crayon-syntax-highlighter
44
  msgid "Immediately"
45
+ msgstr "Немедленно"
46
 
47
  #: crayon_settings.class.php:125
48
  #: crayon_settings.class.php:129
49
  #@ crayon-syntax-highlighter
50
  msgid "Max"
51
+ msgstr "Максимум"
52
 
53
  #: crayon_settings.class.php:125
54
  #: crayon_settings.class.php:129
55
  #@ crayon-syntax-highlighter
56
  msgid "Min"
57
+ msgstr "Минимум"
58
 
59
  #: crayon_settings.class.php:125
60
  #: crayon_settings.class.php:129
61
  #@ crayon-syntax-highlighter
62
  msgid "Static"
63
+ msgstr "Фиксировано"
64
 
65
  #: crayon_settings.class.php:127
66
  #: crayon_settings.class.php:131
67
  #@ crayon-syntax-highlighter
68
  msgid "Pixels"
69
+ msgstr "Пиксел"
70
 
71
  #: crayon_settings.class.php:127
72
  #: crayon_settings.class.php:131
73
  #@ crayon-syntax-highlighter
74
  msgid "Percent"
75
+ msgstr "Процентов"
76
 
77
  #: crayon_settings.class.php:140
78
  #@ crayon-syntax-highlighter
79
  msgid "None"
80
+ msgstr "Нет"
81
 
82
  #: crayon_settings.class.php:140
83
  #@ crayon-syntax-highlighter
84
  msgid "Left"
85
+ msgstr "Влево"
86
 
87
  #: crayon_settings.class.php:140
88
  #@ crayon-syntax-highlighter
89
  msgid "Center"
90
+ msgstr "По центру"
91
 
92
  #: crayon_settings.class.php:140
93
  #@ crayon-syntax-highlighter
94
  msgid "Right"
95
+ msgstr "Вправо"
96
 
97
  #: crayon_settings.class.php:142
98
  #: crayon_settings.class.php:159
99
  #: crayon_settings.class.php:164
100
  #@ crayon-syntax-highlighter
101
  msgid "On MouseOver"
102
+ msgstr "При наведении мыши"
103
 
104
  #: crayon_settings.class.php:142
105
  #: crayon_settings.class.php:148
106
  #: crayon_settings.class.php:159
107
  #@ crayon-syntax-highlighter
108
  msgid "Always"
109
+ msgstr "Всегда"
110
 
111
  #: crayon_settings.class.php:142
112
  #: crayon_settings.class.php:148
113
  #@ crayon-syntax-highlighter
114
  msgid "Never"
115
+ msgstr "Никогда"
116
 
117
  #: crayon_settings.class.php:148
118
  #@ crayon-syntax-highlighter
119
  msgid "When Found"
120
+ msgstr "Если определён"
121
 
122
  #: crayon_settings.class.php:164
123
  #@ crayon-syntax-highlighter
124
  msgid "On Double Click"
125
+ msgstr "При двойном клике"
126
 
127
  #: crayon_settings.class.php:164
128
  #@ crayon-syntax-highlighter
129
  msgid "On Single Click"
130
+ msgstr "При клике"
131
+
132
+ #: crayon_settings.class.php:164
133
+ #@ crayon-syntax-highlighter
134
+ msgid "Disable Mouse Events"
135
+ msgstr "Запретить отслеживание событий мыши"
136
 
137
  #: crayon_settings.class.php:172
138
  #@ crayon-syntax-highlighter
139
  msgid "An error has occurred. Please try again later."
140
+ msgstr "Произошла ошибка. Попробуйте ещё раз позднее."
141
 
142
  #: crayon_settings_wp.class.php:39
143
  #: crayon_settings_wp.class.php:77
144
  #@ crayon-syntax-highlighter
145
  msgid "Settings"
146
+ msgstr "Параметры"
147
 
148
  #: crayon_settings_wp.class.php:70
149
  #@ crayon-syntax-highlighter
150
  msgid "You do not have sufficient permissions to access this page."
151
+ msgstr "У вас недостаточно прав для доступа к этой странице."
152
 
153
  #: crayon_settings_wp.class.php:89
154
  #@ crayon-syntax-highlighter
155
  msgid "Save Changes"
156
+ msgstr "Сохранить параметры"
157
 
158
  #: crayon_settings_wp.class.php:95
159
  #@ crayon-syntax-highlighter
160
  msgid "Reset Settings"
161
+ msgstr "Параметры по умолчанию"
162
+
163
+ #: crayon_settings_wp.class.php:206
164
+ #@ crayon-syntax-highlighter
165
+ msgid "General"
166
+ msgstr "Основные"
167
+
168
+ #: crayon_settings_wp.class.php:207
169
+ #@ crayon-syntax-highlighter
170
+ msgid "Theme"
171
+ msgstr "Тема"
172
+
173
+ #: crayon_settings_wp.class.php:208
174
+ #@ crayon-syntax-highlighter
175
+ msgid "Font"
176
+ msgstr "Шрифт"
177
+
178
+ #: crayon_settings_wp.class.php:209
179
+ #@ crayon-syntax-highlighter
180
+ msgid "Metrics"
181
+ msgstr "Метрики"
182
+
183
+ #: crayon_settings_wp.class.php:210
184
+ #@ crayon-syntax-highlighter
185
+ msgid "Toolbar"
186
+ msgstr "Панель инструментов"
187
+
188
+ #: crayon_settings_wp.class.php:211
189
+ #@ crayon-syntax-highlighter
190
+ msgid "Lines"
191
+ msgstr "Строки"
192
+
193
+ #: crayon_settings_wp.class.php:212
194
+ #@ crayon-syntax-highlighter
195
+ msgid "Code"
196
+ msgstr "Код"
197
+
198
+ #: crayon_settings_wp.class.php:213
199
+ #@ crayon-syntax-highlighter
200
+ msgid "Languages"
201
+ msgstr "Языки"
202
+
203
+ #: crayon_settings_wp.class.php:214
204
+ #@ crayon-syntax-highlighter
205
+ msgid "Files"
206
+ msgstr "Файлы"
207
+
208
+ #: crayon_settings_wp.class.php:215
209
+ #@ crayon-syntax-highlighter
210
+ msgid "Misc"
211
+ msgstr "Разное"
212
+
213
+ #: crayon_settings_wp.class.php:218
214
+ #@ crayon-syntax-highlighter
215
+ msgid "Debug"
216
+ msgstr "Отладка"
217
+
218
+ #: crayon_settings_wp.class.php:219
219
+ #@ crayon-syntax-highlighter
220
+ msgid "Errors"
221
+ msgstr "Ошибки"
222
+
223
+ #: crayon_settings_wp.class.php:220
224
+ #@ crayon-syntax-highlighter
225
+ msgid "Log"
226
+ msgstr "Журнал ошибок"
227
+
228
+ #: crayon_settings_wp.class.php:223
229
+ #@ crayon-syntax-highlighter
230
+ msgid "About"
231
+ msgstr "О плагине"
232
+
233
+ #: crayon_settings_wp.class.php:411
234
+ #@ crayon-syntax-highlighter
235
+ msgid "Crayon Help"
236
+ msgstr "Справка Crayon"
237
 
238
  #: crayon_settings_wp.class.php:425
239
  #@ crayon-syntax-highlighter
240
  msgid "Height"
241
+ msgstr "Высота"
242
 
243
  #: crayon_settings_wp.class.php:431
244
  #@ crayon-syntax-highlighter
245
  msgid "Width"
246
+ msgstr "Ширина"
247
 
248
  #: crayon_settings_wp.class.php:437
249
  #@ crayon-syntax-highlighter
250
  msgid "Top Margin"
251
+ msgstr "Верхний отступ"
252
 
253
  #: crayon_settings_wp.class.php:438
254
  #@ crayon-syntax-highlighter
255
  msgid "Bottom Margin"
256
+ msgstr "Нижний отступ"
257
 
258
  #: crayon_settings_wp.class.php:439
259
  #: crayon_settings_wp.class.php:444
260
  #@ crayon-syntax-highlighter
261
  msgid "Left Margin"
262
+ msgstr "Левый отступ"
263
 
264
  #: crayon_settings_wp.class.php:440
265
  #: crayon_settings_wp.class.php:444
266
  #@ crayon-syntax-highlighter
267
  msgid "Right Margin"
268
+ msgstr "Правый отступ"
269
 
270
  #: crayon_settings_wp.class.php:450
271
  #@ crayon-syntax-highlighter
272
  msgid "Horizontal Alignment"
273
+ msgstr "Выравнивание по горизонтали"
274
 
275
  #: crayon_settings_wp.class.php:453
276
  #@ crayon-syntax-highlighter
277
  msgid "Allow floating elements to surround Crayon"
278
+ msgstr "Разрешить плавающий режим"
279
 
280
  #: crayon_settings_wp.class.php:458
281
  #@ crayon-syntax-highlighter
282
  msgid "Display the Toolbar"
283
+ msgstr "Показывать панель инструментов"
284
 
285
  #: crayon_settings_wp.class.php:461
286
  #@ crayon-syntax-highlighter
287
  msgid "Overlay the toolbar on code rather than push it down when possible"
288
+ msgstr "Использовать, если возможно, наложение панели инструментов на панель кодов без смещения кодов вниз"
289
 
290
  #: crayon_settings_wp.class.php:462
291
  #@ crayon-syntax-highlighter
292
  msgid "Toggle the toolbar on single click when it is overlayed"
293
+ msgstr "Показывать панель инструментов по клику, если она скрыта"
294
 
295
  #: crayon_settings_wp.class.php:463
296
  #@ crayon-syntax-highlighter
297
  msgid "Delay hiding the toolbar on MouseOut"
298
+ msgstr "Задержка исчезания панели инструментов при уходе курсора мыши за пределы панели"
299
 
300
  #: crayon_settings_wp.class.php:465
301
  #@ crayon-syntax-highlighter
302
  msgid "Display the title when provided"
303
+ msgstr "Показывать заголовок, если он задан"
304
 
305
  #: crayon_settings_wp.class.php:466
306
  #@ crayon-syntax-highlighter
307
  msgid "Display the language"
308
+ msgstr "Показывать язык кода"
309
 
310
  #: crayon_settings_wp.class.php:471
311
  #@ crayon-syntax-highlighter
312
  msgid "Display striped code lines"
313
+ msgstr "Использовать чередование цвета строк кода"
314
 
315
  #: crayon_settings_wp.class.php:472
316
  #@ crayon-syntax-highlighter
317
  msgid "Enable line marking for important lines"
318
+ msgstr "Разрешить маркировку важных строк кода"
319
 
320
  #: crayon_settings_wp.class.php:473
321
  #@ crayon-syntax-highlighter
322
  msgid "Display line numbers by default"
323
+ msgstr "Показывать нумерацию строк по умолчанию"
324
 
325
  #: crayon_settings_wp.class.php:474
326
  #@ crayon-syntax-highlighter
327
  msgid "Enable line number toggling"
328
+ msgstr "Разрешить переключение нумерации строк"
329
 
330
  #: crayon_settings_wp.class.php:475
331
  #@ crayon-syntax-highlighter
332
  msgid "Start line numbers from"
333
+ msgstr "Начинать нумерацию строк с"
334
 
335
  #: crayon_settings_wp.class.php:485
336
  #@ crayon-syntax-highlighter
337
  msgid "When no language is provided, use the fallback"
338
+ msgstr "Если язык не поддерживается, использовать"
339
+
340
+ #: crayon_settings_wp.class.php:497
341
+ #, php-format
342
+ #@ crayon-syntax-highlighter
343
+ msgid "%d language has been detected."
344
+ msgid_plural "%d languages have been detected."
345
+ msgstr[0] "Обнаружен %d язык."
346
+ msgstr[1] "Обнаружено %d языка."
347
+ msgstr[2] "Обнаружено %d языков."
348
 
349
  #: crayon_settings_wp.class.php:498
350
  #@ crayon-syntax-highlighter
351
  msgid "Parsing was successful"
352
+ msgstr "Разбор произведён успешно"
353
 
354
  #: crayon_settings_wp.class.php:498
355
  #@ crayon-syntax-highlighter
356
  msgid "Parsing was unsuccessful"
357
+ msgstr "Разбор закончился неудачей"
358
 
359
  #: crayon_settings_wp.class.php:504
360
  #, php-format
361
  #@ crayon-syntax-highlighter
362
  msgid "The selected language with id %s could not be loaded"
363
+ msgstr "Выбранный язык (ID %s) не загружен."
364
 
365
  #: crayon_settings_wp.class.php:508
366
  #@ crayon-syntax-highlighter
367
  msgid "Show Languages"
368
+ msgstr "Показать языки"
369
 
370
  #: crayon_settings_wp.class.php:529
371
  #@ crayon-syntax-highlighter
372
  msgid "Enable Live Preview"
373
+ msgstr "Разрешить показ примера"
374
+
375
+ #: crayon_settings_wp.class.php:531
376
+ #@ crayon-syntax-highlighter
377
+ msgid "Enqueue themes in the header (more efficient)."
378
+ msgstr "Загружать темы в заголовке страницы (более эффективно)."
379
+
380
+ #: crayon_settings_wp.class.php:531
381
+ #: crayon_settings_wp.class.php:559
382
+ #: crayon_settings_wp.class.php:577
383
+ #: crayon_settings_wp.class.php:578
384
+ #: crayon_settings_wp.class.php:579
385
+ #@ crayon-syntax-highlighter
386
+ msgid "Learn More"
387
+ msgstr "Подробнее"
388
 
389
  #: crayon_settings_wp.class.php:534
390
  #, php-format
391
  #@ crayon-syntax-highlighter
392
  msgid "The selected theme with id %s could not be loaded"
393
+ msgstr "Выбранная тема (ID %s) не загружена."
394
 
395
  #: crayon_settings_wp.class.php:548
396
  #@ crayon-syntax-highlighter
397
  msgid "Theme Default"
398
+ msgstr "Шрифт по умолчанию"
399
 
400
  #: crayon_settings_wp.class.php:552
401
  #@ crayon-syntax-highlighter
402
  msgid "Custom Font Size"
403
+ msgstr "Пользовательский размер шрифта"
404
 
405
  #: crayon_settings_wp.class.php:557
406
  #, php-format
407
  #@ crayon-syntax-highlighter
408
  msgid "The selected font with id %s could not be loaded"
409
+ msgstr "Выбранный шрифт (ID %s) не может быть загружен."
410
+
411
+ #: crayon_settings_wp.class.php:559
412
+ #@ crayon-syntax-highlighter
413
+ msgid "Enqueue fonts in the header (more efficient)."
414
+ msgstr "Загружать шрифты в заголовке страницы (более эффективно)."
415
 
416
  #: crayon_settings_wp.class.php:563
417
  #@ crayon-syntax-highlighter
418
  msgid "Enable plain code view and display"
419
+ msgstr "Разрешить показ кода как обычного текста"
420
+
421
+ #: crayon_settings_wp.class.php:566
422
+ #@ crayon-syntax-highlighter
423
+ msgid "Enable plain code toggling"
424
+ msgstr "Разрешить переключение показа кода как простого текста"
425
+
426
+ #: crayon_settings_wp.class.php:567
427
+ #@ crayon-syntax-highlighter
428
+ msgid "Show the plain code by default"
429
+ msgstr "Показывать код как простой текст по умолчанию"
430
 
431
  #: crayon_settings_wp.class.php:568
432
  #@ crayon-syntax-highlighter
433
  msgid "Enable code copy/paste"
434
+ msgstr "Разрешить копирование/вставку кода"
435
 
436
  #: crayon_settings_wp.class.php:570
437
  #@ crayon-syntax-highlighter
438
  msgid "Enable opening code in a window"
439
+ msgstr "Разрешить показ кода в отдельном окне"
440
 
441
  #: crayon_settings_wp.class.php:571
442
  #@ crayon-syntax-highlighter
443
  msgid "Display scrollbars (when needed)"
444
+ msgstr "Показывать полосы прокрутки (если необходимо)"
445
 
446
  #: crayon_settings_wp.class.php:573
447
  #@ crayon-syntax-highlighter
448
  msgid "Tab size in spaces"
449
+ msgstr "Размер табуляций в пробелах"
450
 
451
  #: crayon_settings_wp.class.php:575
452
  #@ crayon-syntax-highlighter
453
  msgid "Remove whitespace surrounding the shortcode content"
454
+ msgstr "Удалять пробелы окружающие контент короткого кода"
455
+
456
+ #: crayon_settings_wp.class.php:576
457
+ #@ crayon-syntax-highlighter
458
+ msgid "Capture &lt;pre&gt; tags as Crayons"
459
+ msgstr "Определять тег &lt;pre&gt; как код Crayon"
460
+
461
+ #: crayon_settings_wp.class.php:577
462
+ #@ crayon-syntax-highlighter
463
+ msgid "Capture Mini Tags like [php][/php] as Crayons."
464
+ msgstr "Обрабатывать мини-теги, например [php][/php], как теги Crayon."
465
+
466
+ #: crayon_settings_wp.class.php:578
467
+ #@ crayon-syntax-highlighter
468
+ msgid "Enable [plain][/plain] tag."
469
+ msgstr "Разрешить теги [plain][/plain]."
470
+
471
+ #: crayon_settings_wp.class.php:579
472
+ #@ crayon-syntax-highlighter
473
+ msgid "Allow Mixed Language Highlighting with delimiters and tags."
474
+ msgstr "Разрешить подсветку смешанных языков."
475
+
476
+ #: crayon_settings_wp.class.php:580
477
+ #@ crayon-syntax-highlighter
478
+ msgid "Show Mixed Language Icon (+)"
479
+ msgstr "Показывать иконку смешанных языков (+)"
480
 
481
  #: crayon_settings_wp.class.php:585
482
  #@ crayon-syntax-highlighter
483
  msgid "When loading local files and a relative path is given for the URL, use the absolute path"
484
+ msgstr "При загрузке локальных файлов, относительный путь к файлу вычислять относительно этого URL"
485
+
486
+ #: crayon_settings_wp.class.php:588
487
+ #@ crayon-syntax-highlighter
488
+ msgid "Followed by your relative URL."
489
+ msgstr "Путь будет определён относительно заданного URL."
490
 
491
  #: crayon_settings_wp.class.php:592
492
  #@ crayon-syntax-highlighter
493
  msgid "Clear the cache used to store remote code requests"
494
+ msgstr "Очищать кэш используемый для хранения кодов из внешних файлов"
495
 
496
  #: crayon_settings_wp.class.php:594
497
  #@ crayon-syntax-highlighter
498
  msgid "Clear Now"
499
+ msgstr "Очистить сейчас"
500
+
501
+ #: crayon_settings_wp.class.php:595
502
+ #@ crayon-syntax-highlighter
503
+ msgid "Attempt to load Crayon's CSS and JavaScript only when needed"
504
+ msgstr "Пытаться загружать таблицы стилей (CSS) и скрипты (Javascript) плагина только тогда, когда это нужно"
505
+
506
+ #: crayon_settings_wp.class.php:595
507
+ #@ crayon-syntax-highlighter
508
+ msgid "Why?"
509
+ msgstr "Почему?"
510
 
511
  #: crayon_settings_wp.class.php:596
512
  #@ crayon-syntax-highlighter
513
  msgid "Disable mouse gestures for touchscreen devices (eg. MouseOver)"
514
+ msgstr "Отключить распознавание жестов мышью для сенсорных экранов (например Наведение Мыши)"
515
 
516
  #: crayon_settings_wp.class.php:597
517
  #@ crayon-syntax-highlighter
518
  msgid "Disable animations"
519
+ msgstr "Запретить анимацию"
520
 
521
  #: crayon_settings_wp.class.php:598
522
  #@ crayon-syntax-highlighter
523
  msgid "Disable runtime stats"
524
+ msgstr "Запретить статистику выполнения"
525
 
526
  #: crayon_settings_wp.class.php:605
527
  #@ crayon-syntax-highlighter
528
  msgid "Log errors for individual Crayons"
529
+ msgstr "Журнал ошибок для каждого кода Crayon"
530
 
531
  #: crayon_settings_wp.class.php:606
532
  #@ crayon-syntax-highlighter
533
  msgid "Log system-wide errors"
534
+ msgstr "Журнал ошибок для системно-независимых ошибок"
535
 
536
  #: crayon_settings_wp.class.php:607
537
  #@ crayon-syntax-highlighter
538
  msgid "Display custom message for errors"
539
+ msgstr "Показывать свое сообщение об ошибках"
540
 
541
  #: crayon_settings_wp.class.php:619
542
  #@ crayon-syntax-highlighter
543
  msgid "Show Log"
544
+ msgstr "Показать журнал ошибок"
545
 
546
  #: crayon_settings_wp.class.php:621
547
  #@ crayon-syntax-highlighter
548
  msgid "Clear Log"
549
+ msgstr "Очистить журнал ошибок"
550
 
551
  #: crayon_settings_wp.class.php:622
552
  #@ crayon-syntax-highlighter
553
  msgid "Email Admin"
554
+ msgstr "Сообщить администратору (e-mail)"
555
 
556
  #: crayon_settings_wp.class.php:624
557
  #@ crayon-syntax-highlighter
558
  msgid "Email Developer"
559
+ msgstr "Сообщить разработчику (e-mail)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
560
 
561
  #: crayon_settings_wp.class.php:626
562
  #@ crayon-syntax-highlighter
563
  msgid "The log is currently empty."
564
+ msgstr "Журнал ошибок пуст."
565
 
566
  #: crayon_settings_wp.class.php:628
567
  #@ crayon-syntax-highlighter
568
  msgid "The log file exists and is writable."
569
+ msgstr "Файл журнала ошибок существует и в него могут заноситься записи."
570
 
571
  #: crayon_settings_wp.class.php:628
572
  #@ crayon-syntax-highlighter
573
  msgid "The log file exists and is not writable."
574
+ msgstr "Файл журнала ошибок существует, но в него не могут заноситься записи."
575
 
576
  #: crayon_settings_wp.class.php:630
577
  #@ crayon-syntax-highlighter
578
  msgid "The log file does not exist and is not writable."
579
+ msgstr "Файл журнала ошибок не существует и в него не могут заноситься записи."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
580
 
581
+ #: crayon_settings_wp.class.php:640
582
  #@ crayon-syntax-highlighter
583
+ msgid "Version"
584
+ msgstr "Версия"
585
 
586
+ #: crayon_settings_wp.class.php:642
587
  #@ crayon-syntax-highlighter
588
+ msgid "Developer"
589
+ msgstr "Разработчик"
590
 
591
+ #: crayon_settings_wp.class.php:666
592
  #@ crayon-syntax-highlighter
593
+ msgid "The result of innumerable hours of hard work over many months. It's an ongoing project, keep me motivated!"
594
+ msgstr "Результат бесчисленных часов тяжелой работы за многие месяцы. Это - текущий проект, поддержите мою мотивацию!"
595
 
596
+ #: crayon_wp.class.php:422
597
  #@ crayon-syntax-highlighter
598
+ msgid "View Settings"
599
+ msgstr "Показать параметры"
600
 
601
+ #: crayon_wp.class.php:423
602
  #@ crayon-syntax-highlighter
603
+ msgid "Donate"
604
+ msgstr "Пожертвовать"
605
 
606
+ #: util/preview.php:63
607
+ #, php-format
608
  #@ crayon-syntax-highlighter
609
+ msgid "Change the %1$sfallback language%2$s to change the sample code. Lines 5-7 are marked."
610
+ msgstr "Измените %1$sязык подсветки%2$s, чтобы изменить пример кода. Строки 5-7 отмечены."
611
 
612
  #. translators: plugin header field 'Name'
613
  #: crayon_wp.class.php:0
639
  msgid "http://ak.net84.net/"
640
  msgstr ""
641
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
642
  #. translators: plugin header field 'Version'
643
  #: crayon_wp.class.php:0
644
  #@ crayon-syntax-highlighter
util/crayon_log.class.php CHANGED
@@ -19,7 +19,7 @@ class CrayonLog {
19
  } else {
20
  try {
21
  if (self::$file == NULL) {
22
- self::$file = fopen(CRAYON_LOG_FILE, 'a+'); // TODO why give warning?
23
 
24
  if (self::$file) {
25
  $header = CRAYON_DASH . CRAYON_NL . 'Crayon Syntax Highlighter Log Entry' . CRAYON_NL .
19
  } else {
20
  try {
21
  if (self::$file == NULL) {
22
+ self::$file = @fopen(CRAYON_LOG_FILE, 'a+');
23
 
24
  if (self::$file) {
25
  $header = CRAYON_DASH . CRAYON_NL . 'Crayon Syntax Highlighter Log Entry' . CRAYON_NL .
util/crayon_util.class.php CHANGED
@@ -191,11 +191,14 @@ class CrayonUtil {
191
  }
192
  }
193
 
194
- // Removes non-alphanumeric chars in string, replaces spaces with hypthen, makes lowercase
195
- public static function clean_css_name($str) {
196
- $str = preg_replace('#[^\w\s]#', '', $str);
197
- $str = preg_replace('#\s+#', '-', $str);
198
- return strtolower($str);
 
 
 
199
  }
200
 
201
  // Remove comments with /* */, // or #, if they occur before any other char on a line
@@ -305,6 +308,15 @@ class CrayonUtil {
305
  return $url;
306
  }
307
 
 
 
 
 
 
 
 
 
 
308
  // Creates a unique ID from a string
309
  function str_uid($str) {
310
  $uid = 0;
191
  }
192
  }
193
 
194
+ // Replaces whitespace with hypthens
195
+ public static function space_to_hyphen($str) {
196
+ return preg_replace('#\s+#', '-', $str);
197
+ }
198
+
199
+ // Replaces hypthens with spaces
200
+ public static function hyphen_to_space($str) {
201
+ return preg_replace('#-#', ' ', $str);
202
  }
203
 
204
  // Remove comments with /* */, // or #, if they occur before any other char on a line
308
  return $url;
309
  }
310
 
311
+ // Creates a unique ID from a string
312
+ function get_var_str() {
313
+ $get_vars = array();
314
+ foreach ($_GET as $get=>$val) {
315
+ $get_vars[] = $get . '=' . $val;
316
+ }
317
+ return implode($get_vars, '&');
318
+ }
319
+
320
  // Creates a unique ID from a string
321
  function str_uid($str) {
322
  $uid = 0;
util/help.htm CHANGED
@@ -176,6 +176,41 @@
176
  <td>true/false</td>
177
  <td>Show the plain code by default instead of the highlighted code</td>
178
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  <tr>
180
  <td>start-line</td>
181
  <td>number &gt;= 0</td>
176
  <td>true/false</td>
177
  <td>Show the plain code by default instead of the highlighted code</td>
178
  </tr>
179
+ <tr>
180
+ <td>copy</td>
181
+ <td>true/false</td>
182
+ <td>Enable code copy/paste</td>
183
+ </tr>
184
+ <tr>
185
+ <td>popup</td>
186
+ <td>true/false</td>
187
+ <td>Enable opening code in a window</td>
188
+ </tr>
189
+ <tr>
190
+ <td>scroll</td>
191
+ <td>true/false</td>
192
+ <td>Always show scrollbars</td>
193
+ </tr>
194
+ <tr>
195
+ <td>tab-size</td>
196
+ <td>number &gt;= 0</td>
197
+ <td>Tab size</td>
198
+ </tr>
199
+ <tr>
200
+ <td>trim-whitespace</td>
201
+ <td>true/false</td>
202
+ <td>Trim the whitespace around the code</td>
203
+ </tr>
204
+ <tr>
205
+ <td>mixed</td>
206
+ <td>true/false</td>
207
+ <td>Enable mixed highlighting (multiple languages in code)</td>
208
+ </tr>
209
+ <tr>
210
+ <td>show_mixed</td>
211
+ <td>true/false</td>
212
+ <td>Show the mixed highlighting plus sign</td>
213
+ </tr>
214
  <tr>
215
  <td>start-line</td>
216
  <td>number &gt;= 0</td>
util/list_langs.php CHANGED
@@ -14,7 +14,7 @@ if (($langs = CrayonParser::parse_all()) != FALSE) {
14
  '<td>', $lang->version(), '</td>',
15
  '<td>', implode(', ', $lang->ext()), '</td>',
16
  '<td>', implode(', ', $lang->alias()), '</td>',
17
- '<td class="', CrayonUtil::clean_css_name($lang->state_info()), '">',
18
  $lang->state_info(), '</td>',
19
  '</tr>';
20
  }
14
  '<td>', $lang->version(), '</td>',
15
  '<td>', implode(', ', $lang->ext()), '</td>',
16
  '<td>', implode(', ', $lang->alias()), '</td>',
17
+ '<td class="', strtolower(CrayonUtil::space_to_hyphen($lang->state_info())), '">',
18
  $lang->state_info(), '</td>',
19
  '</tr>';
20
  }
util/preview.php CHANGED
@@ -2,39 +2,44 @@
2
 
3
  require_once (dirname(dirname(__FILE__)) . '/crayon_wp.class.php');
4
 
5
- $wp_root_path = str_replace('wp-content/plugins/' . CRAYON_DIR, '', CrayonUtil::pathf(CRAYON_ROOT_PATH));
6
  require_once ($wp_root_path . 'wp-load.php');
7
 
8
  echo '<link rel="stylesheet" href="', plugins_url(CRAYON_STYLE, dirname(__FILE__)),
9
  '?ver=', $CRAYON_VERSION, '" type="text/css" media="all" />';
10
- echo '<script type="text/javascript">
11
-
12
- jQuery(document).ready(function() {
13
- //CrayonSyntax.init();
14
- });
15
-
16
- </script>';
17
  echo '<div id="content">';
 
18
  CrayonSettingsWP::load_settings(); // Run first to ensure global settings loaded
19
 
20
  $crayon = CrayonWP::instance();
21
 
 
 
 
22
  // Load settings from GET and validate
23
  foreach ($_GET as $key => $value) {
24
- //echo $key, ' ', $value , '<br/>';
25
- $_GET[$key] = CrayonSettings::validate($key, $value);
 
 
26
  }
27
  $crayon->settings($_GET);
28
- $settings = array(CrayonSettings::TOP_SET => TRUE, CrayonSettings::TOP_MARGIN => 10,
29
- CrayonSettings::BOTTOM_SET => FALSE, CrayonSettings::BOTTOM_MARGIN => 0);
30
- $crayon->settings($settings);
 
 
31
 
32
  // Print the theme CSS
33
  $theme_id = $crayon->setting_val(CrayonSettings::THEME);
34
- echo CrayonResources::themes()->get_css($theme_id);
 
 
35
 
36
  $font_id = $crayon->setting_val(CrayonSettings::FONT);
37
- echo CrayonResources::fonts()->get_css($font_id);
 
 
38
 
39
  // Load custom code based on language
40
  $lang = $crayon->setting_val(CrayonSettings::FALLBACK_LANG);
@@ -60,6 +65,5 @@ $crayon->marked('5-7');
60
  $crayon->output($highlight = true, $nums = true, $print = true);
61
  echo '</div>';
62
  CrayonWP::load_textdomain();
63
- printf(crayon__('Change the %1$sfallback language%2$s to change the sample code. Lines 5-7 are marked.'), '<a href="#langs">', '</a>');
64
 
65
  ?>
2
 
3
  require_once (dirname(dirname(__FILE__)) . '/crayon_wp.class.php');
4
 
5
+ $wp_root_path = str_replace('wp-content/plugins/' . CRAYON_DIR, '', CRAYON_ROOT_PATH);
6
  require_once ($wp_root_path . 'wp-load.php');
7
 
8
  echo '<link rel="stylesheet" href="', plugins_url(CRAYON_STYLE, dirname(__FILE__)),
9
  '?ver=', $CRAYON_VERSION, '" type="text/css" media="all" />';
 
 
 
 
 
 
 
10
  echo '<div id="content">';
11
+
12
  CrayonSettingsWP::load_settings(); // Run first to ensure global settings loaded
13
 
14
  $crayon = CrayonWP::instance();
15
 
16
+ // Settings to prevent from validating
17
+ $preview_settings = array();
18
+
19
  // Load settings from GET and validate
20
  foreach ($_GET as $key => $value) {
21
+ // echo $key, ' ', $value , '<br/>';
22
+ if (!in_array($key, $preview_settings)) {
23
+ $_GET[$key] = CrayonSettings::validate($key, $value);
24
+ }
25
  }
26
  $crayon->settings($_GET);
27
+ if (!isset($crayon_preview_dont_override_get) || !$crayon_preview_dont_override_get) {
28
+ $settings = array(CrayonSettings::TOP_SET => TRUE, CrayonSettings::TOP_MARGIN => 10,
29
+ CrayonSettings::BOTTOM_SET => FALSE, CrayonSettings::BOTTOM_MARGIN => 0);
30
+ $crayon->settings($settings);
31
+ }
32
 
33
  // Print the theme CSS
34
  $theme_id = $crayon->setting_val(CrayonSettings::THEME);
35
+ if ($theme_id != NULL) {
36
+ echo CrayonResources::themes()->get_css($theme_id);
37
+ }
38
 
39
  $font_id = $crayon->setting_val(CrayonSettings::FONT);
40
+ if ($font_id != NULL && $font_id != CrayonFonts::DEFAULT_FONT) {
41
+ echo CrayonResources::fonts()->get_css($font_id);
42
+ }
43
 
44
  // Load custom code based on language
45
  $lang = $crayon->setting_val(CrayonSettings::FALLBACK_LANG);
65
  $crayon->output($highlight = true, $nums = true, $print = true);
66
  echo '</div>';
67
  CrayonWP::load_textdomain();
 
68
 
69
  ?>
util/theme-editor/editor.js ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ // Crayon Syntax Highlighter Theme Editor JavaScript
3
+
4
+ if (typeof DEBUG == 'undefined') {
5
+ var DEBUG = false;
6
+ }
7
+
8
+ if (typeof crayon_log == 'undefined') {
9
+ function crayon_log(string) {
10
+ if (typeof console != 'undefined' && DEBUG) {
11
+ console.log(string);
12
+ }
13
+ }
14
+ }
15
+
16
+ //jQuery(document).ready(function() {
17
+ // crayon_log('editor loaded');
18
+ // CrayonSyntaxThemeEditor.init();
19
+ //});
20
+
21
+ var CrayonSyntaxThemeEditor = new function() {
22
+
23
+ var preview, preview_loaded, preview_url, preview_get, preview_callback, editor_controls, editor_top_controls;
24
+ var preview_objects;
25
+ var theme_dropdown;
26
+ var theme_css, is_theme_changed;
27
+
28
+ this.init = function() {
29
+ crayon_log('editor init');
30
+ preview = jQuery('#crayon-editor-preview');
31
+ preview_loaded = false;
32
+ editor_controls = jQuery('#crayon-editor-controls');
33
+ editor_top_controls = jQuery('#crayon-editor-top-controls');
34
+ preview_url = preview.attr('url');
35
+ theme_css = {};
36
+ preview_objects = {};
37
+ is_theme_changed = false;
38
+
39
+ preview_callback = function() {
40
+ preview_update();
41
+ };
42
+
43
+ // Duplicate controls from settings screen
44
+ // theme_dropdown = jQuery('#theme').clone();
45
+ // theme_dropdown.attr('id', 'editor-theme');
46
+
47
+ theme_dropdown = add_preview_object('#theme');
48
+
49
+ editor_top_controls.html(theme_dropdown);
50
+
51
+ // obj.change(preview_callback);
52
+
53
+ // Initial load
54
+ preview_update();
55
+ }
56
+
57
+ var preview_update = function() {
58
+ crayon_log('editor_preview_update');
59
+ update_get();
60
+ // Load Preview
61
+ jQuery.get(preview_url + preview_get, function(data) {
62
+ preview.html(data);
63
+ CrayonSyntax.init();
64
+ if (!preview_loaded) {
65
+ CrayonSyntaxAdmin.show_theme_editor_now();
66
+ preview_loaded = true;
67
+ }
68
+ });
69
+ }
70
+
71
+ var add_preview_object = function(selector) {
72
+ var obj = jQuery(selector);
73
+ if (obj.length == 0) {
74
+ crayon_log('add_preview_object selector: ' + selector + ' gives null');
75
+ return null;
76
+ }
77
+ obj = obj.clone();
78
+ obj.attr('old-id', obj.attr('id'));
79
+ obj.attr('id', 'editor-' + obj.attr('id'));
80
+ preview_objects[obj.attr('old-id')] = obj;
81
+ obj.change(preview_callback);
82
+ return obj;
83
+ }
84
+
85
+ var update_get = function() {
86
+ preview_get = '?toolbar=1&';
87
+ for (id in preview_objects) {
88
+ obj = preview_objects[id];
89
+ preview_get += id + '=' + obj.val() + '&';
90
+ }
91
+ crayon_log(preview_get);
92
+ }
93
+
94
+ }
95
+
96
+ //-->
util/theme-editor/editor.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $root_path = dirname(dirname(dirname(__FILE__))) . '/';
4
+ require_once $root_path . 'global.php';
5
+
6
+ //class CrayonThemeEditor {
7
+ //
8
+ //}
9
+
10
+ ?>
11
+
12
+ <div id="icon-options-general" class="icon32"><br>
13
+ </div>
14
+ <h2>Crayon Syntax Highlighter <?php crayon_e('Theme Editor'); ?></h2>
15
+
16
+ <p><a class="button-primary" onclick="CrayonSyntaxAdmin.show_main();"><?php crayon_e('Back To Settings'); ?></a></p>
17
+
18
+ <?php //crayon_e('Use the Sidebar on the right to change the Theme of the Preview window.') ?>
19
+
20
+ <div id="crayon-editor-top-controls"></div>
21
+
22
+ <table id="crayon-editor-table" style="width: 100%;" cellspacing="5" cellpadding="0">
23
+ <tr>
24
+ <td class="crayon-editor-preview-wrapper">
25
+ <div id="crayon-editor-preview">
26
+ <?php
27
+ $crayon_preview_text_hide = TRUE;
28
+ $crayon_preview_settings = TRUE;
29
+ // require_once $root_path . CRAYON_PREVIEW_PHP;
30
+ ?>
31
+ </div>
32
+ </td>
33
+ <td class="crayon-editor-control-wrapper">
34
+ <div id="crayon-editor-controls"></div>
35
+ </td>
36
+ </tr>
37
+
38
+ </table>