@@ -439,15 +439,34 @@ def context_for_searchtool(self) -> Dict[str, Any]:
439439 js_splitter_code = self .js_splitter_code
440440
441441 return {
442- 'search_language_stemming_code' : self .lang . js_stemmer_code ,
442+ 'search_language_stemming_code' : self .get_js_stemmer_code () ,
443443 'search_language_stop_words' : jsdump .dumps (sorted (self .lang .stopwords )),
444444 'search_scorer_tool' : self .js_scorer_code ,
445445 'search_word_splitter_code' : js_splitter_code ,
446446 }
447447
448+ def get_js_stemmer_rawcodes (self ) -> List [str ]:
449+ """Returns a list of non-minified stemmer JS files to copy."""
450+ if self .lang .js_stemmer_rawcode :
451+ return [
452+ path .join (package_dir , 'search' , 'non-minified-js' , fname )
453+ for fname in ('base-stemmer.js' , self .lang .js_stemmer_rawcode )
454+ ]
455+ else :
456+ return []
457+
448458 def get_js_stemmer_rawcode (self ) -> str :
459+ return None
460+
461+ def get_js_stemmer_code (self ) -> str :
462+ """Returns JS code that will be inserted into language_data.js."""
449463 if self .lang .js_stemmer_rawcode :
450- return path .join (package_dir , 'search' , 'non-minified-js' ,
451- self .lang .js_stemmer_rawcode )
464+ js_dir = path .join (package_dir , 'search' , 'minified-js' )
465+ with open (path .join (js_dir , 'base-stemmer.js' )) as js_file :
466+ base_js = js_file .read ()
467+ with open (path .join (js_dir , self .lang .js_stemmer_rawcode )) as js_file :
468+ language_js = js_file .read ()
469+ return ('%s\n %s\n Stemmer = %sStemmer;' %
470+ (base_js , language_js , self .lang .language_name ))
452471 else :
453- return None
472+ return self . lang . js_stemmer_code
0 commit comments