Files
desktop-app/public/plugins/md_theme/plugin.js
2016-12-26 23:17:17 +08:00

106 lines
2.3 KiB
JavaScript

/**
* Markdown主题插件
*/
define(function() {
var mdTheme = {
langs: {
'en-us': {
'changeTheme': 'Change markdown theme',
},
'de-de': {
'changeTheme': 'Markdown auswählen',
},
'zh-cn': {
'changeTheme': 'Markdown主题设置',
},
'zh-hk': {
'changeTheme': 'Markdown主題設置'
},
'ja-jp': {
'changeTheme': 'Markdown主題設定'
}
},
// dir => {}
_themeMap : {
},
_themes: [],
getThemes: function() {
var me = this;
// 遍历主题目录, 得到主题列表
var themeFolder = __dirname + "/public/themes/markdown";
Api.nodeFs.readdirSync(themeFolder)
.filter(function(theme) {
return Api.nodeFs.statSync(themeFolder + "/" + theme).isDirectory();
})
.forEach(function(theme) {
me._themeMap[theme] = {
name: theme, // 主题名称
dir: theme
};
me._themes.push(me._themeMap[theme]);
});
},
// 改变主题
changeTheme: function (themeDir) {
var me = this;
themeDir || (themeDir = 'default');
themeDir = themeDir.toLowerCase();
$('#md-theme').attr('href', 'public/themes/markdown/' + themeDir + '/index.css');
Config.mdTheme = themeDir;
var ok = Api.writeConfig(Config);
// 选中目录
for(var i in me._themes) {
var theme = me._themes[i];
if(theme.dir != themeDir) {
theme.menu.checked = false;
} else {
theme.menu.checked = true;
}
}
},
onOpen: function() {
var me = this;
var gui = Api.gui;
me.getThemes();
var themeSubmenus = new gui.Menu();
for(var i in me._themes) {
(function(curTheme) {
curTheme.menu = new gui.MenuItem({
label: curTheme.name,
type: 'checkbox',
click: function(e) {
// var themeCss = themes[t];
me.changeTheme(curTheme.dir);
}
});
themeSubmenus.append(curTheme.menu);
})(me._themes[i]);
}
me._themeMenu = new gui.MenuItem({
submenu: themeSubmenus,
label: Api.getMsg('plugin.md_theme.changeTheme'),
});
Api.setMdThemeMenu(me._themeMenu);
},
onOpenAfter: function() {
var me = this;
me.changeTheme(Config.mdTheme || '');
},
onClose: function() {
}
};
return mdTheme;
});