85 lines
No EOL
1.7 KiB
JavaScript
85 lines
No EOL
1.7 KiB
JavaScript
/*
|
|
---
|
|
description: defines a key/value object with language aliases e.g. javascript -> js
|
|
|
|
license: MIT-style
|
|
|
|
authors:
|
|
- Andi Dittrich
|
|
|
|
requires:
|
|
- Core/1.4.5
|
|
|
|
provides: [EnlighterJS.LanguageManager]
|
|
...
|
|
*/
|
|
EJS.LanguageManager = new Class({
|
|
|
|
Implements : Options,
|
|
|
|
options: {
|
|
'language': 'generic'
|
|
},
|
|
|
|
/**
|
|
* @constructs
|
|
* @param {Object} options The options object.
|
|
*/
|
|
initialize : function(options) {
|
|
this.setOptions(options);
|
|
},
|
|
|
|
// map of language aliases
|
|
languageAliases: {
|
|
'standard': 'generic',
|
|
'js': 'javascript',
|
|
'md': 'markdown',
|
|
'c++': 'cpp',
|
|
'c': 'cpp',
|
|
'styles': 'css',
|
|
'bash': 'shell',
|
|
'py': 'python',
|
|
'html': 'xml',
|
|
'jquery': 'javascript',
|
|
'mootools': 'javascript',
|
|
'ext.js': 'javascript',
|
|
'c#': 'csharp',
|
|
'conf': 'ini'
|
|
},
|
|
|
|
// get language name, process aliases and default languages
|
|
getLanguage: function(languageName){
|
|
// get default language
|
|
var defaultLanguage = (this.options.language != null ? this.options.language.trim().toLowerCase() : '');
|
|
|
|
// alias available ?
|
|
if (this.languageAliases[defaultLanguage]){
|
|
defaultLanguage = this.languageAliases[defaultLanguage];
|
|
}
|
|
|
|
// default language class available ?
|
|
if (defaultLanguage.trim() == '' || !EJS.Language[defaultLanguage]){
|
|
defaultLanguage = 'generic';
|
|
}
|
|
|
|
// valid string ?
|
|
if (languageName == null || languageName.trim() == ''){
|
|
return defaultLanguage;
|
|
}
|
|
|
|
// "clean" languge name
|
|
languageName = languageName.trim().toLowerCase();
|
|
|
|
// alias available ?
|
|
if (this.languageAliases[languageName]){
|
|
languageName = this.languageAliases[languageName];
|
|
}
|
|
|
|
// language class available ?
|
|
if (EJS.Language[languageName]){
|
|
return languageName;
|
|
}else{
|
|
return defaultLanguage;
|
|
}
|
|
}
|
|
}); |