mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-15 15:41:19 +00:00
106 lines
2.3 KiB
JavaScript
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;
|
|
});
|