Smartypants non brakable space french guillemets

Hi,
I’m trying to configure smartypants for french typosettings. I cannot manage to add non-breakable space to guillemets. I tried to replace them by simple quote to see if smartypants worked and it did, but when I try to add   or   to my script isn’t replace the space by the non breakable ones.

herre my code :

smartypants'=>[ 
    	'attr'  => 1,
    	'doublequote.open'  => '« ',
    	'doublequote.close'  => ' »',
        'space.doublequote' => ' ',
    	'space.emdash'  => ' ',
    	'space.endash'  => ' ',
    	'space.colon'  => ' ',
    	'space.semicolon'  => ' ',
    	'space.marks' => ' ',
    	'space.frenchquote' => ' ',
    	'space.thousand' => '',
    	'space.unit'=> ' ',
        'guillemet.leftpointing'     => '« ',
        'guillemet.rightpointing'    => ' »',
        'geresh'=> '׳',
        'geresh' => '׳',
        'gershayim'=> '״',
        'skip'=> 'pre|code|kbd|script|style|math',
  ]

What’s the leading semicolon doing there in both instances?

Oups an error in copy paste code

don’t know if it’s the right way to add nbsp to guillemets

Hey, I still not manage to have non breakables space before and after french guillemets. Is it possible with the smartypants to configure that ?
thanks

I think the whole idea of the Smartypants parser is to replace ascii characters, not characters, that are already entered correctly as they should be, just to enforce that users add the space. So it only works if you enter << instead of « etc (but the << don’t work in markdown because they have their own function):

Ok, I understand