|
|
|
// TODO: This file was created by bulk-decaffeinate.
|
|
|
|
// Sanity-check the conversion and remove this comment.
|
|
|
|
/*
|
|
|
|
* decaffeinate suggestions:
|
|
|
|
* DS102: Remove unnecessary code created because of implicit returns
|
|
|
|
* DS206: Consider reworking classes to avoid initClass
|
|
|
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
|
|
|
|
*/
|
|
|
|
//= require app/searcher
|
|
|
|
|
|
|
|
(function() {
|
|
|
|
let applyAliases = undefined;
|
|
|
|
const Cls = (app.models.Entry = class Entry extends app.Model {
|
|
|
|
static initClass() {
|
|
|
|
|
|
|
|
let ALIASES;
|
|
|
|
applyAliases = function(string) {
|
|
|
|
if (ALIASES.hasOwnProperty(string)) {
|
|
|
|
return [string, ALIASES[string]];
|
|
|
|
} else {
|
|
|
|
const words = string.split('.');
|
|
|
|
for (let i = 0; i < words.length; i++) {
|
|
|
|
var word = words[i];
|
|
|
|
if (ALIASES.hasOwnProperty(word)) {
|
|
|
|
words[i] = ALIASES[word];
|
|
|
|
return [string, words.join('.')];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return string;
|
|
|
|
};
|
|
|
|
|
|
|
|
this.ALIASES = (ALIASES = {
|
|
|
|
'angular': 'ng',
|
|
|
|
'angular.js': 'ng',
|
|
|
|
'backbone.js': 'bb',
|
|
|
|
'c++': 'cpp',
|
|
|
|
'coffeescript': 'cs',
|
|
|
|
'crystal': 'cr',
|
|
|
|
'elixir': 'ex',
|
|
|
|
'javascript': 'js',
|
|
|
|
'julia': 'jl',
|
|
|
|
'jquery': '$',
|
|
|
|
'knockout.js': 'ko',
|
|
|
|
'kubernetes': 'k8s',
|
|
|
|
'less': 'ls',
|
|
|
|
'lodash': '_',
|
|
|
|
'löve': 'love',
|
|
|
|
'marionette': 'mn',
|
|
|
|
'markdown': 'md',
|
|
|
|
'matplotlib': 'mpl',
|
|
|
|
'modernizr': 'mdr',
|
|
|
|
'moment.js': 'mt',
|
|
|
|
'openjdk': 'java',
|
|
|
|
'nginx': 'ngx',
|
|
|
|
'numpy': 'np',
|
|
|
|
'pandas': 'pd',
|
|
|
|
'postgresql': 'pg',
|
|
|
|
'python': 'py',
|
|
|
|
'ruby.on.rails': 'ror',
|
|
|
|
'ruby': 'rb',
|
|
|
|
'rust': 'rs',
|
|
|
|
'sass': 'scss',
|
|
|
|
'tensorflow': 'tf',
|
|
|
|
'typescript': 'ts',
|
|
|
|
'underscore.js': '_'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
// Attributes: name, type, path
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
super(...arguments);
|
|
|
|
this.text = applyAliases(app.Searcher.normalizeString(this.name));
|
|
|
|
}
|
|
|
|
|
|
|
|
addAlias(name) {
|
|
|
|
const text = applyAliases(app.Searcher.normalizeString(name));
|
|
|
|
if (!Array.isArray(this.text)) { this.text = [this.text]; }
|
|
|
|
this.text.push(Array.isArray(text) ? text[1] : text);
|
|
|
|
}
|
|
|
|
|
|
|
|
fullPath() {
|
|
|
|
return this.doc.fullPath(this.isIndex() ? '' : this.path);
|
|
|
|
}
|
|
|
|
|
|
|
|
dbPath() {
|
|
|
|
return this.path.replace(/#.*/, '');
|
|
|
|
}
|
|
|
|
|
|
|
|
filePath() {
|
|
|
|
return this.doc.fullPath(this._filePath());
|
|
|
|
}
|
|
|
|
|
|
|
|
fileUrl() {
|
|
|
|
return this.doc.fileUrl(this._filePath());
|
|
|
|
}
|
|
|
|
|
|
|
|
_filePath() {
|
|
|
|
let result = this.path.replace(/#.*/, '');
|
|
|
|
if (result.slice(-5) !== '.html') { result += '.html'; }
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
isIndex() {
|
|
|
|
return this.path === 'index';
|
|
|
|
}
|
|
|
|
|
|
|
|
getType() {
|
|
|
|
return this.doc.types.findBy('name', this.type);
|
|
|
|
}
|
|
|
|
|
|
|
|
loadFile(onSuccess, onError) {
|
|
|
|
return app.db.load(this, onSuccess, onError);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
Cls.initClass();
|
|
|
|
return Cls;
|
|
|
|
})();
|