I have two folders, same site, same settings, same module, same GeshiFilter, same Geshifilter module settings. No conflicts, no problems reported.

However,
In the 5.x site, GeshiFilter works by including tags rgb( etc etc).
In the 6.x site, Firebug shows, that Geshifilter does not insert any span tags. It's just black text, no highlighting going on.

How odd. I'm guessing it's because 6.x-1.2 is still untested.

Comments

soxofaan’s picture

Category: bug » support
Status: Active » Postponed (maintainer needs more info)

I'm guessing it's because 6.x-1.2 is still untested

6.x-1.2 is not untested, it works on my setups and also does for other users (there are approximately 8 times more users of the Drupal 6 version than the Drupal 5 version of this module)

GeshiFilter works by including tags rgb( etc etc).

What do you mean with this? there is no rgb stuff involved in either version of the module

In the 6.x site, Firebug shows, that Geshifilter does not insert any span tags. It's just black text, no highlighting going on.

This seems to indicate that GeSHi filer is not called in the filter pipeline. Are you sure you have your input filters set up correctly?

You refer to an update, does this mean that you upgraded a Drupal5 site with GeSHi filtered content to a Drupal6 site with GeSHi filter?

executex’s picture

Yes, I upgraded from Drupal5 content site with to Drupal6.

It doesn't matter, since saving the content again, doesn't magically bring back the syntax highlighting. All text is gray, because geshi filter is not adding its span tags.

span tags with color= rgb(255,0,0) (that's how Geshi works, at least according to the html on my site!)

Rearranging input filters doesn't make a difference.

GeSHi Filter for syntax highlighting 6.x-1.2 is what available updates says my module version is, so it is new.

Creating a new page, with geshi filter does the same exact thing.

Here's a sample of what html is generated:
< div class="geshifilter" >
< pre class="cpp geshifilter-cpp" style="font-family: monospace;" >#include < iostream > using namespace std; int main(){ int necklace[10]; return 0; }< / pre >
< / div > (I added spaces to not conflict with drupal.org)

Old Drupal 5 site did this:
< span style="color: rgb(0, 0, 255);" >const< /span >
(actually #0000FF... rgb is added by Firebug as a way for you to read it easier I suppose)

soxofaan’s picture

Thanks for your response, this makes things much clearer.

Can you check it the GeSHi filter can find the GeSHi library (is there any error on the admin page)?
And which version of the library are you using? GeSHi filter only supports 1.0.x, not 1.1.x

Can you also try with an input format that only contains the GeSHi filter?

executex’s picture

GeSHi library version 1.0.8.1 detected

I tried putting only geshifilter on, and it doesn't work. I tried using "div style" instead of pre, that didn't work either.
Geshifilter is just not outputting anything other than

< div class="geshifilter" >< div class="cpp geshifilter-cpp" style="font-family: monospace;" >#include <iostream>

using namespace std;< br >


int main(){< br >
  int necklace[3] = { 3, 1, 4}< br >
  // the above is the same as below for necklace5:< br >

  return 0;< br >
}< / div >< / div >

It's Drupal 6.9...
The only CSS style thats on the whole thing is just a color: #3E3E3E, geshi doesn't have its own style, and does not output any span tags.

soxofaan’s picture

Did you already try to flush the GeSHi language definition cache? (button is under the textfield for setting the path to the GeSHi library.)

executex’s picture

Now it says
" Drupal 5
drupal5"
under enabled.

under disabled languages:
Drupal 6
drupal6

But, when I look through my FTP, inside modules/geshifilter/geshi there is like a hundred language files. So I don't understand why the languages just disappeared now after flushing.

soxofaan’s picture

Status: Postponed (maintainer needs more info) » Active

the Drupal5 and Drupal6 language definition files are provided separately from the language definition files bundled with the GeSHi library itself.
So if you only have Drupal5 and Drupal6 as possible languages, there is something wrong with the detection of the normal language definition files.

The GeSHi filter module expect these language definition files to be in the folder [geshilib]/geshi/, with [geshilib] the folder of the GeSHi library, which is typically sites/all/modules/geshifilter/geshi/, so those hundreds language definition files should be under sites/all/modules/geshifilter/geshi/geshi/.

Did you change the directory structure of the GeSHi library?

as a reference, here is the code that defines where the language definition files are searched for:


function _geshifilter_get_geshi_dir() {
  return variable_get('geshifilter_geshi_dir', drupal_get_path('module', 'geshifilter') .'/geshi');
}

...

function _geshifilter_get_available_languages() {
  ....
      $dirs = array(_geshifilter_get_geshi_dir() .'/geshi', drupal_get_path('module', 'geshifilter') .'/geshi-extra');
      foreach ($dirs as $dir) {
        foreach (file_scan_directory($dir, '\.[pP][hH][pP]$') as $filename => $fileinfo) {
          ...
}
executex’s picture

Ok fixed.

Apparently, I had...
geshi/
had all the files + geshi.php

I put the rest of the files under:
geshi/geshi like you said, and now it works.

I didn't know that "Detected Geshi Library" meant detected only geshi.php. Sorry.

soxofaan’s picture

Status: Active » Fixed

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.