Compare commits

...

39 Commits
1.4.2 ... 2.0

Author SHA1 Message Date
lealife
cc4b003503 markdown vim cursor fixed 2016-05-25 09:51:53 +08:00
lealife
091922175a box leanote logo 2016-05-22 16:12:51 +08:00
lealife
371c93912d build 2016-05-22 10:36:36 +08:00
lealife
27221acda7 new logo 2016-05-22 10:34:40 +08:00
lealife
5db724e80b new logo 2016-05-21 23:05:50 +08:00
lealife
5c9e95ed60 build 2016-04-16 14:53:30 +08:00
lealife
2fc97ed42d markdown editor prettify add linenums 2016-04-16 14:51:54 +08:00
lealife
45cca30cec lea++ -> Explore 2016-04-16 12:09:48 +08:00
lealife
31167b6aaf recount tags 2016-04-16 11:58:39 +08:00
lealife
139906b9d6 recount tags when public note 2016-04-16 11:31:27 +08:00
lealife
a9d49369e2 upgrade markdown mathjax 2016-04-12 22:02:36 +08:00
life
303e0da5c0 Update README.md 2016-04-09 10:12:46 +08:00
life
ff5523bfaa Merge pull request #340 from eric2100/patch-15
Update blog.conf
2016-04-08 17:07:20 +08:00
Tsunghan,Tsai
063dd0140d Update blog.conf
部分口語修改
2016-04-08 12:31:41 +08:00
life
c52d388d5d Merge pull request #337 from eric2100/patch-14
Update msg.conf
2016-04-07 17:31:04 +08:00
eric2100
18bcdb48af Update msg.conf 2016-04-07 12:29:03 +08:00
life
db8f132507 Merge pull request #333 from eric2100/patch-9
Update blog.conf
2016-04-05 10:14:31 +08:00
life
439d5212b0 Merge pull request #334 from eric2100/patch-10
Update markdown.conf
2016-04-05 10:13:40 +08:00
life
88e2320027 Merge pull request #335 from eric2100/patch-11
Update member.conf
2016-04-05 10:13:09 +08:00
life
659a4e590a Merge pull request #336 from eric2100/patch-12
Update tinymce_editor.conf
2016-04-05 10:12:19 +08:00
eric2100
ab7f2386e0 Update tinymce_editor.conf 2016-04-05 00:24:21 +08:00
eric2100
ec82ff18f2 Update member.conf 2016-04-05 00:16:00 +08:00
eric2100
f3f00626e6 Update markdown.conf 2016-04-05 00:03:27 +08:00
eric2100
80fbb56426 Update blog.conf 2016-04-05 00:01:46 +08:00
life
a5c952882f Merge pull request #332 from eric2100/patch-8
Update album.conf
2016-04-03 21:30:30 +08:00
eric2100
973b452a7e Update album.conf 2016-04-02 21:12:30 +08:00
lealife
25bcd21ea9 overwrite revel.Message 2016-03-19 23:00:41 +08:00
lealife
09de5e1e83 Gulp js i18n generator 2016-03-19 15:46:41 +08:00
lealife
15b0ef21ff restructure messages 2016-03-19 15:37:36 +08:00
lealife
9cf9ded855 remove config langs. Gulp will get all langs by messages/ 2016-03-19 15:17:15 +08:00
lealife
7af433ebaf build 2016-03-19 14:36:47 +08:00
lealife
67b608b324 set langs to config and modify gulp build to support langs 2016-03-19 14:30:07 +08:00
lealife
2aa3f5a654 support 中文繁体 2016-03-19 14:05:09 +08:00
lealife
f5538218bd remove baidu statistics Code
https://github.com/leanote/leanote/issues/318
2016-03-04 22:23:53 +08:00
lealife
0e3bdd177c md resize when toggle 2016-02-27 15:30:01 +08:00
lealife
12520cc09d mathjax 2.6.1 2016-02-27 14:20:31 +08:00
life
cb67892124 Merge pull request #309 from alexsourcerer/patch-8
Update msg.fr
2016-02-18 14:55:17 +08:00
alexsourcerer
45c09c9a26 Update msg.fr
I updated the msg.fr file (note that the website isn't it french at all anymore for french users)
2016-02-03 23:10:50 +01:00
lealife
20951ea2dd build release 2015-12-25 23:59:57 +08:00
879 changed files with 5142 additions and 2572 deletions

View File

@@ -15,6 +15,8 @@ var base = leanoteBase + '/public'; // public base
var noteDev = leanoteBase + '/app/views/note/note-dev.html';
var noteProBase = leanoteBase + '/app/views/note';
var messagesPath = leanoteBase + 'messages';
// 合并Js, 这些js都是不怎么修改, 且是依赖
// 840kb, 非常耗时!!
gulp.task('concatDepJs', function() {
@@ -205,6 +207,7 @@ gulp.task('i18n', function() {
ls(leanoteBase + '/app/views');
console.log('parsed');
var langs = {}; // zh-cn: 1
// msg.zh
function getAllMsgs(fname) {
@@ -229,14 +232,25 @@ gulp.task('i18n', function() {
return msg;
}
// 得到所有的语言的后缀
// 返回{en-us: 1, }
function getAllLangs() {
var langs = {};
var files = fs.readdirSync(messagesPath);
for(fn in files) {
var fname = files[fn];
if (fname.indexOf('-') > 0) {
langs[fname] = 1;
}
}
return langs;
}
// msg.zh, msg.js
function genI18nJsFile(fromFilename, otherNames, keys) {
function genI18nJsFile(targetFilename, lang, fromFilenames, keys) {
var msgs = {};
otherNames.unshift(fromFilename);
// console.log(fromFilename);
// console.log(otherNames);
otherNames.forEach(function (name) {
var tmpMsgs = getAllMsgs(leanoteBase + '/messages/' + name);
fromFilenames.forEach(function (name) {
var tmpMsgs = getAllMsgs(leanoteBase + '/messages/' + lang + '/' + name + '.conf');
for (var i in tmpMsgs) {
msgs[i] = tmpMsgs[i];
}
@@ -261,22 +275,24 @@ gulp.task('i18n', function() {
'}';
// 写入到文件中
var toFilename = fromFilename + '.js';
var toFilename = targetFilename + '.' + lang + '.js';
fs.writeFile(base + '/js/i18n/' + toFilename, str);
}
// 必须要的
// keys.push();
function genTinymceLang(lang) {
var msgs = getAllMsgs(leanoteBase + 'messages/' + lang + '/tinymce_editor.conf');
var str = 'tinymce.addI18n("' + lang + '",' + JSON.stringify(msgs) + ');';
fs.writeFile(base + '/tinymce/langs/' + lang + '.js', str);
}
genI18nJsFile('blog.zh', [], keys);
genI18nJsFile('blog.en', [], keys);
genI18nJsFile('blog.fr', [], keys);
genI18nJsFile('blog.pt', [], keys);
var langs = getAllLangs();
for (var lang in langs) {
genI18nJsFile('blog', lang, ['blog'], keys);
genI18nJsFile('msg', lang, ['msg', 'member', 'markdown', 'album'], keys);
genI18nJsFile('msg.fr', ['member.fr', 'markdown.fr', 'album.fr'], keys);
genI18nJsFile('msg.zh', ['member.zh', 'markdown.zh', 'album.zh'], keys);
genI18nJsFile('msg.en', ['member.en', 'markdown.en', 'album.en'], keys);
genI18nJsFile('msg.pt', ['member.pt', 'markdown.pt', 'album.pt'], keys);
genTinymceLang(lang);
}
});
// 合并album需要的js

View File

@@ -79,7 +79,7 @@ You are welcome to join us.
* Email: leanote@leanote.com
* [Leanote BBS](http://bbs.leanote.com)
* [Leanote Google Group](https://groups.google.com/forum/#!forum/leanote)
* QQ Group: 256076853, 158716820
* QQ Group: 326073529, 256076853, 158716820
-----------------------------------------------------------------------
@@ -160,6 +160,6 @@ Leanote还有很多问题, 如果你喜欢它, 欢迎加入我们一起完善Lea
## 联系&加入我们
* Email: leanote@leanote.com
* [Leanote 社区](http://bbs.leanote.com)
* QQ群: 256076853, 158716820(已满)
* QQ群: 326073529, 256076853, 158716820
* [Leanote Google Group](https://groups.google.com/forum/#!forum/leanote)

View File

@@ -3,6 +3,7 @@ package controllers
import (
"encoding/json"
"github.com/leanote/leanote/app/info"
"github.com/leanote/leanote/app/lea/i18n"
"github.com/revel/revel"
"gopkg.in/mgo.v2/bson"
// . "github.com/leanote/leanote/app/lea"
@@ -19,6 +20,11 @@ type BaseController struct {
*revel.Controller
}
// 覆盖revel.Message
func (c *BaseController) Message(message string, args ...interface{}) (value string) {
return i18n.Message(c.Request.Locale, message, args...)
}
func (c BaseController) GetUserId() string {
if userId, ok := c.Session["UserId"]; ok {
return userId
@@ -181,13 +187,17 @@ func (c BaseController) E404() revel.Result {
// 设置本地
func (c BaseController) SetLocale() string {
locale := string(c.Request.Locale) // zh-CN
// lang := locale
// if strings.Contains(locale, "-") {
// pos := strings.Index(locale, "-")
// lang = locale[0:pos]
// }
// if lang != "zh" && lang != "en" {
// lang = "en"
// }
lang := locale
if strings.Contains(locale, "-") {
pos := strings.Index(locale, "-")
lang = locale[0:pos]
}
if lang != "zh" && lang != "en" && lang != "fr" && lang != "pt" {
lang = "en"
if !i18n.HasLang(locale) {
lang = i18n.GetDefaultLang()
}
c.RenderArgs["locale"] = lang
c.RenderArgs["siteUrl"] = configService.GetSiteUrl()

View File

@@ -1,94 +0,0 @@
package main
import (
"bufio"
"encoding/json"
"fmt"
"os"
"strings"
)
// convert revel msg to js msg
var msgBasePath = "/Users/life/Documents/Go/package2/src/github.com/leanote/leanote/messages/"
var targetBasePath = "/Users/life/Documents/Go/package2/src/github.com/leanote/leanote/public/js/i18n/"
func parse(filename string) {
file, err := os.Open(msgBasePath + filename)
reader := bufio.NewReader(file)
msg := map[string]string{}
if err != nil {
fmt.Println(err)
return
}
for true {
line, _, err := reader.ReadLine()
if err != nil {
break
}
if len(line) == 0 {
continue
}
// 对每一行进行处理
if line[0] == '#' || line[1] == '#' {
continue
}
lineStr := string(line)
// 找到第一个=位置
pos := strings.Index(lineStr, "=")
if pos < 0 {
continue
}
key := string(line[0:pos])
value := string(line[pos+1:])
// fmt.Println(lineStr)
// fmt.Println(value)
msg[key] = value
}
// JSON
b, _ := json.Marshal(msg)
str := string(b)
fmt.Println(str)
targetName := targetBasePath + filename + ".js"
file2, err2 := os.OpenFile(targetName, os.O_RDWR|os.O_CREATE, 0644)
if err2 != nil {
file2, err2 = os.Create(targetName)
}
file2.WriteString("var MSG = " + str + ";" + `
function getMsg(key, data) {
var msg = MSG[key]
if(msg) {
if(data) {
if(!isArray(data)) {
data = [data];
}
for(var i = 0; i < data.length; ++i) {
msg = msg.replace("%s", data[i]);
}
}
return msg;
}
return key;
}`)
}
// 生成js的i18n文件
func main() {
parse("msg.en")
parse("msg.zh")
parse("msg.fr")
parse("msg.pt")
parse("blog.zh")
parse("blog.en")
parse("blog.fr")
parse("blog.pt")
}

View File

@@ -10,6 +10,7 @@ import (
"github.com/leanote/leanote/app/db"
. "github.com/leanote/leanote/app/lea"
_ "github.com/leanote/leanote/app/lea/binder"
"github.com/leanote/leanote/app/lea/i18n"
"github.com/leanote/leanote/app/lea/route"
"github.com/leanote/leanote/app/service"
"github.com/revel/revel"
@@ -38,9 +39,10 @@ func init() {
// session.SessionFilter, // leanote session
// session.MSessionFilter, // leanote memcache session
revel.FlashFilter, // Restore and write the flash cookie.
revel.ValidationFilter, // Restore kept validation errors and save new ones from cookie.
revel.I18nFilter, // Resolve the requested language
revel.FlashFilter, // Restore and write the flash cookie.
revel.ValidationFilter, // Restore kept validation errors and save new ones from cookie.
// revel.I18nFilter, // Resolve the requested language
i18n.I18nFilter, // Resolve the requested language by leanote
revel.InterceptorFilter, // Run interceptors around the action.
revel.CompressFilter, // Compress the result.
revel.ActionInvoker, // Invoke the action.
@@ -180,10 +182,18 @@ func init() {
return template.HTML(tagStr)
}
revel.TemplateFuncs["msg"] = func(renderArgs map[string]interface{}, message string, args ...interface{}) template.HTML {
str, ok := renderArgs[revel.CurrentLocaleRenderArg].(string)
if !ok {
return ""
}
return template.HTML(i18n.Message(str, message, args...))
}
// 不用revel的msg
revel.TemplateFuncs["leaMsg"] = func(renderArgs map[string]interface{}, key string) template.HTML {
locale, _ := renderArgs[revel.CurrentLocaleRenderArg].(string)
str := revel.Message(locale, key)
str := i18n.Message(locale, key)
if strings.HasPrefix(str, "???") {
str = key
}
@@ -392,9 +402,9 @@ func init() {
*/
/*
{{range $i := N 1 10}}
<div>{{$i}}</div>
{{end}}
{{range $i := N 1 10}}
<div>{{$i}}</div>
{{end}}
*/
revel.TemplateFuncs["N"] = func(start, end int) (stream chan int) {
stream = make(chan int)

223
app/lea/i18n/i18n.go Normal file
View File

@@ -0,0 +1,223 @@
package i18n
import (
"fmt"
"github.com/revel/revel"
"github.com/robfig/config"
"os"
"path/filepath"
"regexp"
"strings"
)
const (
CurrentLocaleRenderArg = "currentLocale" // The key for the current locale render arg value
messageFilesDirectory = "messages"
messageFilePattern = `^\w+\.conf$`
unknownValueFormat = "??? %s ???"
defaultLanguageOption = "i18n.default_language"
localeCookieConfigKey = "i18n.cookie"
)
var (
// All currently loaded message configs.
// en-us, zh-cn, zh-hk ->
messages map[string]*config.Config
)
func GetAllLangMessages() map[string]*config.Config {
return messages
}
func HasLang(lang string) bool {
_, ok := messages[lang]
return ok
}
func GetDefaultLang() string {
lang, _ := revel.Config.String(defaultLanguageOption)
return lang
}
// Return all currently loaded message languages.
func MessageLanguages() []string {
languages := make([]string, len(messages))
i := 0
for language, _ := range messages {
languages[i] = language
i++
}
return languages
}
// Perform a message look-up for the given locale and message using the given arguments.
//
// When either an unknown locale or message is detected, a specially formatted string is returned.
func Message(locale, message string, args ...interface{}) string {
language, region := parseLocale(locale)
langAndRegion := language + "-" + region
// revel.TRACE.Println(langAndRegion + " 怎么回事")
messageConfig, knownLanguage := messages[langAndRegion]
if !knownLanguage {
// revel.TRACE.Printf("Unsupported language for locale '%s' and message '%s', trying default language", locale, message)
if defaultLanguage, found := revel.Config.String(defaultLanguageOption); found {
// revel.TRACE.Printf("Using default language '%s'", defaultLanguage)
messageConfig, knownLanguage = messages[defaultLanguage]
if !knownLanguage {
// WARN.Printf("Unsupported default language for locale '%s' and message '%s'", defaultLanguage, message)
return fmt.Sprintf(unknownValueFormat, message)
}
} else {
// WARN.Printf("Unable to find default language option (%s); messages for unsupported locales will never be translated", defaultLanguageOption)
return fmt.Sprintf(unknownValueFormat, message)
}
}
// This works because unlike the goconfig documentation suggests it will actually
// try to resolve message in DEFAULT if it did not find it in the given section.
value, error := messageConfig.String(region, message)
if error != nil {
// WARN.Printf("Unknown message '%s' for locale '%s'", message, locale)
return fmt.Sprintf(unknownValueFormat, message)
}
if len(args) > 0 {
// revel.TRACE.Printf("Arguments detected, formatting '%s' with %v", value, args)
value = fmt.Sprintf(value, args...)
}
return value
}
func parseLocale(locale string) (language, region string) {
if strings.Contains(locale, "-") {
languageAndRegion := strings.Split(locale, "-")
return languageAndRegion[0], languageAndRegion[1]
}
return locale, ""
}
// Recursively read and cache all available messages from all message files on the given path.
func loadMessages(path string) {
messages = make(map[string]*config.Config)
if error := filepath.Walk(path, loadEachMessageLang); error != nil && !os.IsNotExist(error) {
// ERROR.Println("Error reading messages files:", error)
}
}
// 加载每一个文件夹
func loadEachMessageLang(parentPath string, parentInfo os.FileInfo, osError error) (err error) {
if !parentInfo.IsDir() {
return nil
}
if err := filepath.Walk(parentPath, func(path string, info os.FileInfo, osError error) error {
return loadMessageFile(parentInfo.Name(), path, info, osError)
}); err != nil && !os.IsNotExist(err) {
// ERROR.Println("Error reading messages files:", error)
}
return err
}
// Load a single message file
func loadMessageFile(locale string, path string, info os.FileInfo, osError error) error {
if osError != nil {
return osError
}
if info.IsDir() {
return nil
}
if matched, _ := regexp.MatchString(messageFilePattern, info.Name()); matched {
if config, error := parseMessagesFile(path); error != nil {
return error
} else {
// locale := parseLocaleFromFileName(info.Name())
// revel.TRACE.Print(locale + "----locale")
// If we have already parsed a message file for this locale, merge both
if _, exists := messages[locale]; exists {
messages[locale].Merge(config)
revel.TRACE.Printf("Successfully merged messages for locale '%s'", locale)
} else {
messages[locale] = config
}
revel.TRACE.Println("Successfully loaded messages from file", info.Name())
}
} else {
revel.TRACE.Printf("Ignoring file %s because it did not have a valid extension", info.Name())
}
return nil
}
func parseMessagesFile(path string) (messageConfig *config.Config, error error) {
messageConfig, error = config.ReadDefault(path)
return
}
func parseLocaleFromFileName(file string) string {
extension := filepath.Ext(file)[1:]
return strings.ToLower(extension)
}
func init() {
revel.OnAppStart(func() {
loadMessages(filepath.Join(revel.BasePath, messageFilesDirectory))
})
}
func I18nFilter(c *revel.Controller, fc []revel.Filter) {
if foundCookie, cookieValue := hasLocaleCookie(c.Request); foundCookie {
revel.TRACE.Printf("Found locale cookie value: %s", cookieValue)
setCurrentLocaleControllerArguments(c, cookieValue)
} else if foundHeader, headerValue := hasAcceptLanguageHeader(c.Request); foundHeader {
revel.TRACE.Printf("Found Accept-Language header value: %s", headerValue)
setCurrentLocaleControllerArguments(c, headerValue)
} else {
revel.TRACE.Println("Unable to find locale in cookie or header, using empty string")
setCurrentLocaleControllerArguments(c, "")
}
fc[0](c, fc[1:])
}
// Set the current locale controller argument (CurrentLocaleControllerArg) with the given locale.
func setCurrentLocaleControllerArguments(c *revel.Controller, locale string) {
c.Request.Locale = locale
c.RenderArgs[CurrentLocaleRenderArg] = locale
}
// Determine whether the given request has valid Accept-Language value.
//
// Assumes that the accept languages stored in the request are sorted according to quality, with top
// quality first in the slice.
func hasAcceptLanguageHeader(request *revel.Request) (bool, string) {
if request.AcceptLanguages != nil && len(request.AcceptLanguages) > 0 {
return true, request.AcceptLanguages[0].Language
}
return false, ""
}
// Determine whether the given request has a valid language cookie value.
func hasLocaleCookie(request *revel.Request) (bool, string) {
if request != nil && request.Cookies() != nil {
name := revel.Config.StringDefault(localeCookieConfigKey, revel.CookiePrefix+"_LANG")
if cookie, error := request.Cookie(name); error == nil {
return true, cookie.Value
} else {
revel.TRACE.Printf("Unable to read locale cookie with name '%s': %s", name, error.Error())
}
}
return false, ""
}

View File

@@ -438,11 +438,7 @@ func (this *NoteService) UpdateNote(updatedUserId, noteId string, needUpdate bso
afterUsn := userService.IncrUsn(userId)
needUpdate["Usn"] = afterUsn
// 添加tag2
// TODO 这个tag去掉, 添加tag另外添加, 不要这个
if tags, ok := needUpdate["Tags"]; ok {
tagService.AddTagsI(userId, tags)
}
needRecountTags := false
// 是否修改了isBlog
// 也要修改noteContents的IsBlog
@@ -455,6 +451,19 @@ func (this *NoteService) UpdateNote(updatedUserId, noteId string, needUpdate bso
if !note.IsBlog {
needUpdate["PublicTime"] = needUpdate["UpdatedTime"]
}
needRecountTags = true
}
}
// 添加tag2
// TODO 这个tag去掉, 添加tag另外添加, 不要这个
if tags, ok := needUpdate["Tags"]; ok {
tagService.AddTagsI(userId, tags)
// 如果是博客, 标签改了, 那么重新计算
if note.IsBlog {
needRecountTags = true
}
}
@@ -463,6 +472,13 @@ func (this *NoteService) UpdateNote(updatedUserId, noteId string, needUpdate bso
return ok, "", 0
}
if needRecountTags {
// 重新计算tags
go (func() {
blogService.ReCountBlogTags(userId)
})()
}
// 重新获取之
note = this.GetNoteById(noteId)

View File

@@ -16,12 +16,15 @@
<script src="/public/admin/js/ie/excanvas.js"></script>
<![endif]-->
</head>
<body class="">
<body class="lang-{{$.locale}}">
<section class="vbox">
<header class="bg-dark dk header navbar navbar-fixed-top-xs">
<div class="navbar-header aside-md clearfix" id="logo">
<a href="/admin/index" class="navbar-brand" data-toggle="fullscreen"></a>
<div>Admin</div>
<div class="navbar-header logo-ctn">
<a href="/admin/index" class="navbar-brand clearfix" data-toggle="fullscreen">
<span id="logo"></span>
<span class="logo-title">Admin</span>
</a>
</div>
<ul class="nav navbar-nav navbar-right m-n hidden-xs nav-user">
@@ -37,16 +40,16 @@
</li>
<li class="hidden-xs">
<a href="http://lea.leanote.com" class="dk" target="_blank">
lea++
Leanote Explore
</a>
</li>
<li class="hidden-xs">
<a href="/note" class="dk" target="_blank">
<a href="/note" class="dk">
My Note
</a>
</li>
<li class="hidden-xs">
<a href="/blog" class="dk" target="_blank">
<a href="/blog" class="dk">
My Blog
</a>
</li>

View File

@@ -2,7 +2,7 @@
<section id="box" class="animated fadeInUp">
<div>
<h1 id="logo">Leanote</h1>
<h1 id="logo"></h1>
<div id="boxForm">
<div id="boxHeader">{{msg . "findPassword"}}</div>
<form>
@@ -27,7 +27,7 @@
<a href="/index">{{msg . "home"}}</a>
</p>
<p>
<a href="/index">leanote</a> © 2014-2015
<a href="https://leanote.com">Leanote</a> © 2014-2016
</p>
</div>

View File

@@ -2,7 +2,7 @@
<section id="box" class="animated fadeInUp">
<div>
<h1 id="logo">Leanote</h1>
<h1 id="logo"></h1>
<div id="boxForm">
<div id="boxHeader">{{msg . "updatePassword"}}</div>
<form>
@@ -36,7 +36,7 @@
<a href="/index">{{msg . "home"}}</a>
</p>
<p>
<a href="/index">leanote</a> © 2014-2015
<a href="https://leanote.com">Leanote</a> © 2014-2016
</p>
</div>

View File

@@ -2,7 +2,7 @@
<section id="box" class="animated fadeInUp">
<div>
<h1 id="logo">Leanote</h1>
<h1 id="logo"></h1>
<div id="boxForm">
<div id="boxHeader">{{msg . "findPasswordTimeout"}}</div>
<form>
@@ -21,7 +21,7 @@
<a href="/index">{{msg . "home"}}</a>
</p>
<p>
<a href="/index">leanote</a> © 2014-2015
<a href="https://leanote.com">Leanote</a> © 2014-2016
</p>
</div>

View File

@@ -8,14 +8,14 @@
<br />
leanote@leanote.com
<br />
Copyright © 2014-2015 <a href="https://leanote.com">Leanote</a>
Copyright © 2014-2016 <a href="https://leanote.com">Leanote</a>
</div>
<div class="col-md-6">
<i class="fa fa-globe fa-3x icon-muted"></i>
<h2>Join Us</h2>
<a href="https://github.com/leanote/leanote">Github Leanote</a>
<br />
QQ Group: <span id="qqGrup">256076853, <s>158716820</s></span>
QQ Group: <span id="qqGrup">326073529, 256076853, 158716820</span>
</div>
</div>
</div>

View File

@@ -4,16 +4,14 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="leanote,leanote.com">
<meta name="description" content="Leanote, {{msg $ "moto"}}">
<meta name="author" content="leanote">
<meta name="keywords" content="leanote,leanote.com,蚂蚁笔记">
<meta name="description" content="Leanote,蚂蚁笔记, {{msg $ "moto"}}">
<meta name="author" content="leanote,蚂蚁笔记">
<title>{{.title}}</title>
<link href="/css/bootstrap.css" rel="stylesheet">
<link href="/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
<link href="/css/index.css" rel="stylesheet">
<style>
</style>
<script>
function log(o) {
@@ -21,7 +19,7 @@ function log(o) {
</script>
</head>
<body>
<body class="lang-{{$.locale}}">
<nav id="headerContainer" style="background-color:#fff" class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
@@ -31,8 +29,8 @@ function log(o) {
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/index">
<img src="/images/logo/leanote_black.png" id="" title="leanote, {{msg $ "moto"}}"/>
<a class="navbar-brand" href="/index" id="logo">
<img src="/images/logo/leanote_black.png" class="hide" title="leanote, {{msg $ "moto"}}"/>
</a>
</div>
@@ -41,7 +39,8 @@ function log(o) {
<a data-lang="en-us">English</a>
<a data-lang="fr-fr">Français</a>
<a data-lang="zh-cn">简体中文</a>
<a data-lang="pt-br">Portugu&ecirc;s</a>
<a data-lang="zh-hk">繁体中文</a>
<a data-lang="pt-pt">Portugu&ecirc;s</a>
</div>
<ul class="nav navbar-nav navbar-left">
@@ -49,13 +48,13 @@ function log(o) {
<li style="position: relative; margin-right: 3px;">
<a href="http://bbs.leanote.com" target="_blank" class="">{{msg . "discussion"}}</a>
</li>
<li><a id="leanoteBlog" href="http://lea.leanote.com" target="_blank" title="Lea++, leanote blog platform" class="">Lea++</a></li>
<li><a id="leanoteBlog" href="http://lea.leanote.com" target="_blank" title="Leanote explore, leanote blog platform" class="">{{leaMsg . "Leanote Explore"}}</a></li>
<li><a id="leanoteApp" href="http://app.leanote.com" target="_blank" title="Leanote App" class="">{{msg . "desktopApp"}}</a></li>
<li>
<a href="http://leanote.org#donate" target="_blank" class="">{{msg . "donate"}}</a>
</li>
<li><a href="http://leanote.org" target="_blank" title="leanote.org" class="">leanote.org</a></li>
{{if .userInfo.Email}}

View File

@@ -4,9 +4,9 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="leanote,leanote.com">
<meta name="description" content="leanote, {{msg $ "moto"}}">
<meta name="author" content="leanote">
<meta name="keywords" content="leanote,蚂蚁笔记,leanote.com">
<meta name="description" content="leanote, 蚂蚁笔记, {{msg $ "moto"}}">
<meta name="author" content="leanote,蚂蚁笔记">
<title>{{.title}}</title>
<link href="/css/bootstrap.css" rel="stylesheet">

View File

@@ -77,15 +77,5 @@ var lang = '{{.locale}}';
<script src="/js/home/index.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?d0c988e37b452b3bf1220d45b30f2de2";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>

View File

@@ -15,7 +15,7 @@
</div>
-->
<div>
<h1 id="logo">Leanote</h1>
<h1 id="logo"></h1>
<div id="boxForm">
<div id="boxHeader">{{msg . "login"}}</div>
<form>
@@ -61,10 +61,10 @@
<div id="boxFooter">
<p>
<a href="/index">{{msg . "home"}}</a>
<a href="/">{{msg . "home"}}</a>
</p>
<p>
<a href="/index">leanote</a> © 2014-2015
<a href="https://leanote.com">Leanote</a> © 2014-2016
</p>
</div>

View File

@@ -6,7 +6,7 @@
</div>
-->
<div>
<h1 id="logo">Leanote</h1>
<h1 id="logo"></h1>
<div id="boxForm">
<div id="boxHeader">{{msg . "register"}}</div>
<form>
@@ -43,7 +43,7 @@
<a href="/index">{{msg . "home"}}</a>
</p>
<p>
<a href="/index">leanote</a> © 2014-2015
<a href="https://leanote.com">Leanote</a> © 2014-2016
</p>
</div>

View File

@@ -16,24 +16,24 @@
<script src="/public/admin/js/ie/excanvas.js"></script>
<![endif]-->
</head>
<body class="">
<body class="lang-{{$.locale}}">
<section class="vbox">
<header class="bg-dark dk header navbar navbar-fixed-top-xs">
<div class="navbar-header aside-md" id="logo">
<div class="navbar-header aside-md logo-ctn">
<a href="/member" class="navbar-brand clearfix" data-toggle="fullscreen">
<span class="logo-icon"></span>
<span id="logo"></span>
<span class="logo-title">{{msg . "memberCenter"}}</span>
</a>
</div>
<ul class="nav navbar-nav navbar-right m-n hidden-xs nav-user">
<li class="hidden-xs">
<a href="/note" class="dk" target="_blank">
<a href="/note" class="dk">
{{msg . "myNote"}}
</a>
</li>
<li class="hidden-xs">
<a href="/blog/{{$.session.Username}}" class="dk" target="_blank">
<a href="/blog/{{$.session.Username}}" class="dk">
{{msg . "myBlog"}}
</a>
</li>

View File

@@ -6,8 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="apple-touch-fullscreen" content="yes">
<meta name=”apple-mobile-web-app-capable” content=”yes” />
<meta name="keywords" content="leanote,leanote.com">
<meta name="description" content="Leanote, {{msg $ "moto"}}">
<meta name="keywords" content="leanote,leanote.com,蚂蚁笔记">
<meta name="description" content="Leanote, 蚂蚁笔记, {{msg $ "moto"}}">
<title>Leanote, {{msg $ "moto"}}</title>
<link href="/css/bootstrap-min.css" rel="stylesheet" />
@@ -39,7 +39,7 @@ function log(o) {
}
</script>
</head>
<body>
<body class="leanote-plugin lang-{{$.locale}}">
<div id="page">
<div id="pageInner">
@@ -47,17 +47,10 @@ function log(o) {
<!-- <div id="headerContainer"> -->
<div id="header">
<!--
<div id="headerLeft" class="pull-left">
</div>
-->
<div id="logo" class="pull-left">
<!--<span>lea</span>note -->
<!--<img style="height: 45px;" src="/images/logo/leanote_white.png" title="leanote, 不一样的笔记" alt="leanote">-->
</div>
<a id="logo" href="/" title="Leanote {{msg . "home"}}" class="pull-left"></a>
<div id="switcher" class="pull-left">
<i class="fa fa-align-justify" id="leftSwitcher" title="{{msg . "leftHidden"}}"></i>
<span id="leftSwitcher2" title="{{msg . "leftShow"}}"></span>
<i class="fa fa-dedent" id="leftSwitcher" title="{{msg . "leftHidden"}}"></i>
<span id="leftSwitcher2" class="fa fa-indent" title="{{msg . "leftShow"}}"></span>
</div>
<!-- search -->
<div class="pull-left" id="searchWrap">
@@ -134,9 +127,9 @@ function log(o) {
</span>
</div>
<div class="pull-right" style="margin: 0 10px" id="myProfile">
<div class="pull-right" id="myProfile">
<div class="dropdown">
<a class="dropdown-toggle" title="{{.userInfo.Username}}" data-toggle="dropdown" style="line-height: 60px;">
<a class="dropdown-toggle profile-img" title="{{.userInfo.Username}}" data-toggle="dropdown">
<img alt="{{.userInfo.Username}}" title="{{.userInfo.Username}}" src="{{if .userInfo.Logo}}{{.userInfo.Logo}}{{else}}/images/blog/default_avatar.png{{end}}" id="myAvatar"/>
<span class="username">
{{.userInfo.Username}}
@@ -198,7 +191,7 @@ function log(o) {
<div class="pull-right top-nav writting-hide lea-blog">
<a target="_blank" href="http://lea.leanote.com">
Lea++
{{msg . "Explore"}}
</a>
</div>

View File

@@ -6,8 +6,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="apple-touch-fullscreen" content="yes">
<meta name=”apple-mobile-web-app-capable” content=”yes” />
<meta name="keywords" content="leanote,leanote.com">
<meta name="description" content="Leanote, {{msg $ "moto"}}">
<meta name="keywords" content="leanote,leanote.com,蚂蚁笔记">
<meta name="description" content="Leanote, 蚂蚁笔记, {{msg $ "moto"}}">
<title>Leanote, {{msg $ "moto"}}</title>
<link href="/css/bootstrap-min.css" rel="stylesheet" />
<!-- 先加载, 没有样式, 宽度不定 -->
@@ -35,23 +35,16 @@ function log(o) {
}
</script>
</head>
<body>
<body class="leanote-plugin lang-{{$.locale}}">
<div id="page">
<div id="pageInner">
<!-- 头部 -->
<!-- <div id="headerContainer"> -->
<div id="header">
<!--
<div id="headerLeft" class="pull-left">
</div>
-->
<div id="logo" class="pull-left">
<!--<span>lea</span>note -->
<!--<img style="height: 45px;" src="/images/logo/leanote_white.png" title="leanote, 不一样的笔记" alt="leanote">-->
</div>
<a id="logo" href="/" title="Leanote {{msg . "home"}}" class="pull-left"></a>
<div id="switcher" class="pull-left">
<i class="fa fa-align-justify" id="leftSwitcher" title="{{msg . "leftHidden"}}"></i>
<span id="leftSwitcher2" title="{{msg . "leftShow"}}"></span>
<i class="fa fa-dedent" id="leftSwitcher" title="{{msg . "leftHidden"}}"></i>
<span id="leftSwitcher2" class="fa fa-indent" title="{{msg . "leftShow"}}"></span>
</div>
<!-- search -->
<div class="pull-left" id="searchWrap">
@@ -124,9 +117,9 @@ function log(o) {
</span>
</div>
<div class="pull-right" style="margin: 0 10px" id="myProfile">
<div class="pull-right" id="myProfile">
<div class="dropdown">
<a class="dropdown-toggle" title="{{.userInfo.Username}}" data-toggle="dropdown" style="line-height: 60px;">
<a class="dropdown-toggle profile-img" title="{{.userInfo.Username}}" data-toggle="dropdown">
<img alt="{{.userInfo.Username}}" title="{{.userInfo.Username}}" src="{{if .userInfo.Logo}}{{.userInfo.Logo}}{{else}}/images/blog/default_avatar.png{{end}}" id="myAvatar"/>
<span class="username">
{{.userInfo.Username}}
@@ -187,7 +180,7 @@ function log(o) {
</div>
<div class="pull-right top-nav writting-hide lea-blog">
<a target="_blank" href="http://lea.leanote.com">
Lea++
{{msg . "Explore"}}
</a>
</div>

View File

@@ -44,7 +44,7 @@ log.warn.prefix = "WARN "
log.error.prefix = "ERROR "
# The default language of this application.
i18n.default_language=en
i18n.default_language=en-us
module.static=github.com/revel/modules/static

74
conf/app.conf-default Normal file
View File

@@ -0,0 +1,74 @@
#------------------------
# leanote config
#------------------------
http.port=9000
site.url=http://localhost:9000 # or http://x.com:8080, http://www.xx.com:9000
# admin username
adminUsername=admin
# mongdb
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
# or you can set the mongodb url for more complex needs the format is:
# mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb
# db.url=mongodb://root:root123@localhost:27017/leanote
# db.urlEnv=${MONGODB_URL} # set url from env. eg.
# mongodb://root:root123@localhost:27017/leanote
# You Must Change It !! About Security!!
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y
#--------------------------------
# revel config
# for dev
#--------------------------------
app.name=leanote
http.addr=
http.ssl=false
cookie.httponly=false
cookie.prefix=LEANOTE
cookie.domain= # for share cookie with sub-domain
cookie.secure=false
format.date=2006-01-02
format.datetime=2006-01-02 15:04:05 # 必须这样配置
results.chunked=false
log.trace.prefix = "TRACE "
log.info.prefix = "INFO "
log.warn.prefix = "WARN "
log.error.prefix = "ERROR "
# The default language of this application.
i18n.default_language=en-us
module.static=github.com/revel/modules/static
[dev]
mode.dev=true
results.pretty=true
watch=true
module.testrunner = # github.com/revel/modules/testrunner
log.trace.output = stderr
log.info.output = stderr
log.warn.output = stderr
log.error.output = stderr
[prod]
mode.dev=false
results.pretty=false
watch=false
module.testrunner =
log.trace.output = off
log.info.output = off
log.warn.output = %(app.name)s.log
log.error.output = %(app.name)s.log

View File

@@ -83,6 +83,7 @@ notGoodPassword=Tt's not a good password, the length is at least 6
# note
myBlog=Blog
Explore=Explore
history=Histories
save=Save
editorTips=Tips

View File

@@ -0,0 +1,179 @@
Cut=Cut
Header 2=Header 2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.
Div=Div
Paste=Paste
Close=Close
Font Family=Font Family
Pre=Pre
Align right=Align right
New document=New document
Blockquote=Blockquote
Numbered list=Numbered list
Increase indent=Increase indent
Formats=Formats
Headers=Headers
Select all=Select all
Header 3=Header 3
Blocks=Blocks
Undo=Undo
Strikethrough=Strike-through
Bullet list=Bullet list
Header 1=Header 1
Superscript=Superscript
Clear formatting=Clear formatting
Font Sizes=Font Sizes
Subscript=Subscript
Header 6=Header 6
Redo=Redo
Paragraph=Paragraph
Ok=Ok
Bold=Bold
Code=Code
Italic=Italic
Align center=Align centre
Header 5=Header 5
Decrease indent=Decrease indent
Header 4=Header 4
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.
Underline=Underline
Cancel=Cancel
Justify=Justify
Inline=Inline
Copy=Copy
Align left=Align left
Visual aids=Visual aids
Lower Greek=Lower Greek
Square=Square
Default=Default
Lower Alpha=Lower Alpha
Circle=Circle
Disc=Disc
Upper Alpha=Upper Alpha
Upper Roman=Upper Roman
Lower Roman=Lower Roman
Name=Name
Anchor=Anchor
You have unsaved changes are you sure you want to navigate away?=You have unsaved changes are you sure you want to navigate away?
Restore last draft=Restore last draft
Special character=Special character
Source code=Source code
Right to left=Right to left
Left to right=Left to right
Emoticons=Emoticons
Robots=Robots
Document properties=Document properties
Title=Title
Keywords=Keywords
Encoding=Encoding
Description=Description
Author=Author
Language=Language
`ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` toggle code
Fullscreen=Full-screen
Horizontal line=Horizontal line
Horizontal space=Horizontal space
Insert\/edit image=Insert\/edit image
General=General
Advanced=Advanced
Source=Source
Border=Border
Constrain proportions=Constrain proportions
Vertical space=Vertical space
Image description=Image description
Style=Style
Dimensions=Dimensions
Insert image=Insert image
Insert date\/time=Insert date\/time
Remove link=Remove link
Url=URL
Text to display=Text to display
Anchors=Anchors
Insert link=Insert link
New window=New window
None=None
The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?=The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?
Target=Target
The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?=The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?
Insert\/edit link=Insert\/edit link
Insert\/edit video=Insert\/edit video
Poster=Poster
Alternative source=Alternative source
Paste your embed code below:=Paste your embed code below:
Insert video=Insert video
Embed=Embed
Nonbreaking space=Non-breaking space
Page break=Page break
Paste as text=Paste as text
Preview=Preview
Print=Print
Save=Save
Could not find the specified string.=Could not find the specified string.
Replace=Replace
Next=Next
Whole words=Whole words
Find and replace=Find and replace
Replace with=Replace with
Find=Find
Replace all=Replace all
Match case=Match case
Prev=Prev
Spellcheck=Spell-check
Finish=Finish
Ignore all=Ignore all
Ignore=Ignore
Insert row before=Insert row before
Rows=Rows
Height=Height
Paste row after=Paste row after
Alignment=Alignment
Column group=Column group
Row=Row
Insert column before=Insert column before
Split cell=Split cell
Cell padding=Cell padding
Cell spacing=Cell spacing
Row type=Row type
Insert table=Insert table
Body=Body
Caption=Caption
Footer=Footer
Delete row=Delete row
Paste row before=Paste row before
Scope=Scope
Delete table=Delete table
Header cell=Header cell
Column=Column
Cell=Cell
Header=Header
Cell type=Cell type
Copy row=Copy row
Row properties=Row properties
Table properties=Table properties
Row group=Row group
Right=Right
Insert column after=Insert column after
Cols=Cols
Insert row after=Insert row after
Width=Width
Cell properties=Cell properties
Left=Left
Cut row=Cut row
Delete column=Delete column
Center=Centre
Merge cells=Merge cells
Insert template=Insert template
Templates=Templates
Background color=Background colour
Text color=Text colour
Show blocks=Show blocks
Show invisible characters=Show invisible characters
Words: {0}=Words: {0}
Insert=Insert
File=File
Edit=Edit
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help
Tools=Tools
View=View
Table=Table
Format=Format

View File

@@ -80,6 +80,7 @@ notGoodPassword=Le mot de passe est incorrect, il doit comporter au moins 6 cara
# note
myBlog=Blog
Explore=Explore
history=Historique
save=Sauvegarder
editorTips=Astuces
@@ -111,7 +112,7 @@ saving=Sauvegarde
saveSuccess=Sauvegarde réussie
SearchNote=Chercher une note
SearchNotebook=Chercher un bloc-note
Toggle Modify with Readonly=Toggle Modify with Readonly
Toggle Modify with Readonly=Passer d'écriture à lecture seule
update=Mettre à jour
create=Créer
@@ -245,30 +246,30 @@ themeValidHasRoundInclude=WARNING: Les modèles ont des références circulaires
# share
tokenExpired=Token Expired
Share=Share
hasSharedThisNote=has shared this note
inputSharePwd=Please input password
shareToGroup=Share to group
shareByPwd=Share by password
groupName=Group Name
operation=Operation
groupAndMemberManage=Manage group/member
shareToGroupTips=If you share your note to group, the member belongs to group will have the right to access the note
shared=Shared
notShared=Not shared
shareLink=Share link
sharePwd=Access password
cancelShare=Cancel
getShareLinkAndPwd=Get link and password
Share=Partager
hasSharedThisNote=a partagé cette note
inputSharePwd=Veuillez entrer le mot de passe
shareToGroup=Partager avec le groupe
shareByPwd=Partager via un mot de passe
groupName=Nom du groupe
operation=Opération
groupAndMemberManage=Gérer le groupe/les membres
shareToGroupTips=Si vous partagez cette note avec le groupe, les membres auront le droit d'y accéder.
shared=Partagé
notShared=Non partagé
shareLink=Partager le lien
sharePwd=Accès au mot de passe
cancelShare=Annuler
getShareLinkAndPwd=Obtenir le lien et le mot de passe
# Common
created=Créé
updated=Mis à jour
modify=Modifier
Search=Search
Save Success=Save Success
Please save note firstly!=Please save note firstly!
Please sign in firstly!=Please sign in firstly!
Search=Chercher
Save Success=Sauvegardé avec succès
Please save note firstly!=Veuillez d'abord enregistrer votre note!
Please sign in firstly!=Veuillez d'abord vous enregistrer!
# error
notFound=Page introuvable.

View File

@@ -0,0 +1,179 @@
Cut=Cut
Header 2=Header 2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.
Div=Div
Paste=Paste
Close=Close
Font Family=Font Family
Pre=Pre
Align right=Align right
New document=New document
Blockquote=Blockquote
Numbered list=Numbered list
Increase indent=Increase indent
Formats=Formats
Headers=Headers
Select all=Select all
Header 3=Header 3
Blocks=Blocks
Undo=Undo
Strikethrough=Strike-through
Bullet list=Bullet list
Header 1=Header 1
Superscript=Superscript
Clear formatting=Clear formatting
Font Sizes=Font Sizes
Subscript=Subscript
Header 6=Header 6
Redo=Redo
Paragraph=Paragraph
Ok=Ok
Bold=Bold
Code=Code
Italic=Italic
Align center=Align centre
Header 5=Header 5
Decrease indent=Decrease indent
Header 4=Header 4
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.
Underline=Underline
Cancel=Cancel
Justify=Justify
Inline=Inline
Copy=Copy
Align left=Align left
Visual aids=Visual aids
Lower Greek=Lower Greek
Square=Square
Default=Default
Lower Alpha=Lower Alpha
Circle=Circle
Disc=Disc
Upper Alpha=Upper Alpha
Upper Roman=Upper Roman
Lower Roman=Lower Roman
Name=Name
Anchor=Anchor
You have unsaved changes are you sure you want to navigate away?=You have unsaved changes are you sure you want to navigate away?
Restore last draft=Restore last draft
Special character=Special character
Source code=Source code
Right to left=Right to left
Left to right=Left to right
Emoticons=Emoticons
Robots=Robots
Document properties=Document properties
Title=Title
Keywords=Keywords
Encoding=Encoding
Description=Description
Author=Author
Language=Language
`ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` toggle code
Fullscreen=Full-screen
Horizontal line=Horizontal line
Horizontal space=Horizontal space
Insert\/edit image=Insert\/edit image
General=General
Advanced=Advanced
Source=Source
Border=Border
Constrain proportions=Constrain proportions
Vertical space=Vertical space
Image description=Image description
Style=Style
Dimensions=Dimensions
Insert image=Insert image
Insert date\/time=Insert date\/time
Remove link=Remove link
Url=URL
Text to display=Text to display
Anchors=Anchors
Insert link=Insert link
New window=New window
None=None
The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?=The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?
Target=Target
The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?=The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?
Insert\/edit link=Insert\/edit link
Insert\/edit video=Insert\/edit video
Poster=Poster
Alternative source=Alternative source
Paste your embed code below:=Paste your embed code below:
Insert video=Insert video
Embed=Embed
Nonbreaking space=Non-breaking space
Page break=Page break
Paste as text=Paste as text
Preview=Preview
Print=Print
Save=Save
Could not find the specified string.=Could not find the specified string.
Replace=Replace
Next=Next
Whole words=Whole words
Find and replace=Find and replace
Replace with=Replace with
Find=Find
Replace all=Replace all
Match case=Match case
Prev=Prev
Spellcheck=Spell-check
Finish=Finish
Ignore all=Ignore all
Ignore=Ignore
Insert row before=Insert row before
Rows=Rows
Height=Height
Paste row after=Paste row after
Alignment=Alignment
Column group=Column group
Row=Row
Insert column before=Insert column before
Split cell=Split cell
Cell padding=Cell padding
Cell spacing=Cell spacing
Row type=Row type
Insert table=Insert table
Body=Body
Caption=Caption
Footer=Footer
Delete row=Delete row
Paste row before=Paste row before
Scope=Scope
Delete table=Delete table
Header cell=Header cell
Column=Column
Cell=Cell
Header=Header
Cell type=Cell type
Copy row=Copy row
Row properties=Row properties
Table properties=Table properties
Row group=Row group
Right=Right
Insert column after=Insert column after
Cols=Cols
Insert row after=Insert row after
Width=Width
Cell properties=Cell properties
Left=Left
Cut row=Cut row
Delete column=Delete column
Center=Centre
Merge cells=Merge cells
Insert template=Insert template
Templates=Templates
Background color=Background colour
Text color=Text colour
Show blocks=Show blocks
Show invisible characters=Show invisible characters
Words: {0}=Words: {0}
Insert=Insert
File=File
Edit=Edit
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help
Tools=Tools
View=View
Table=Table
Format=Format

View File

@@ -83,6 +83,7 @@ notGoodPassword=Esta não é uma boa senha, o tamanho deve ser de pelo menos 6 c
# note
myBlog=Blog
Explore=Explore
history=Histórico
save=Salvar
editorTips=Dicas

View File

@@ -0,0 +1,179 @@
Cut=Cut
Header 2=Header 2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.
Div=Div
Paste=Paste
Close=Close
Font Family=Font Family
Pre=Pre
Align right=Align right
New document=New document
Blockquote=Blockquote
Numbered list=Numbered list
Increase indent=Increase indent
Formats=Formats
Headers=Headers
Select all=Select all
Header 3=Header 3
Blocks=Blocks
Undo=Undo
Strikethrough=Strike-through
Bullet list=Bullet list
Header 1=Header 1
Superscript=Superscript
Clear formatting=Clear formatting
Font Sizes=Font Sizes
Subscript=Subscript
Header 6=Header 6
Redo=Redo
Paragraph=Paragraph
Ok=Ok
Bold=Bold
Code=Code
Italic=Italic
Align center=Align centre
Header 5=Header 5
Decrease indent=Decrease indent
Header 4=Header 4
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.
Underline=Underline
Cancel=Cancel
Justify=Justify
Inline=Inline
Copy=Copy
Align left=Align left
Visual aids=Visual aids
Lower Greek=Lower Greek
Square=Square
Default=Default
Lower Alpha=Lower Alpha
Circle=Circle
Disc=Disc
Upper Alpha=Upper Alpha
Upper Roman=Upper Roman
Lower Roman=Lower Roman
Name=Name
Anchor=Anchor
You have unsaved changes are you sure you want to navigate away?=You have unsaved changes are you sure you want to navigate away?
Restore last draft=Restore last draft
Special character=Special character
Source code=Source code
Right to left=Right to left
Left to right=Left to right
Emoticons=Emoticons
Robots=Robots
Document properties=Document properties
Title=Title
Keywords=Keywords
Encoding=Encoding
Description=Description
Author=Author
Language=Language
`ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` toggle code
Fullscreen=Full-screen
Horizontal line=Horizontal line
Horizontal space=Horizontal space
Insert\/edit image=Insert\/edit image
General=General
Advanced=Advanced
Source=Source
Border=Border
Constrain proportions=Constrain proportions
Vertical space=Vertical space
Image description=Image description
Style=Style
Dimensions=Dimensions
Insert image=Insert image
Insert date\/time=Insert date\/time
Remove link=Remove link
Url=URL
Text to display=Text to display
Anchors=Anchors
Insert link=Insert link
New window=New window
None=None
The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?=The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?
Target=Target
The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?=The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?
Insert\/edit link=Insert\/edit link
Insert\/edit video=Insert\/edit video
Poster=Poster
Alternative source=Alternative source
Paste your embed code below:=Paste your embed code below:
Insert video=Insert video
Embed=Embed
Nonbreaking space=Non-breaking space
Page break=Page break
Paste as text=Paste as text
Preview=Preview
Print=Print
Save=Save
Could not find the specified string.=Could not find the specified string.
Replace=Replace
Next=Next
Whole words=Whole words
Find and replace=Find and replace
Replace with=Replace with
Find=Find
Replace all=Replace all
Match case=Match case
Prev=Prev
Spellcheck=Spell-check
Finish=Finish
Ignore all=Ignore all
Ignore=Ignore
Insert row before=Insert row before
Rows=Rows
Height=Height
Paste row after=Paste row after
Alignment=Alignment
Column group=Column group
Row=Row
Insert column before=Insert column before
Split cell=Split cell
Cell padding=Cell padding
Cell spacing=Cell spacing
Row type=Row type
Insert table=Insert table
Body=Body
Caption=Caption
Footer=Footer
Delete row=Delete row
Paste row before=Paste row before
Scope=Scope
Delete table=Delete table
Header cell=Header cell
Column=Column
Cell=Cell
Header=Header
Cell type=Cell type
Copy row=Copy row
Row properties=Row properties
Table properties=Table properties
Row group=Row group
Right=Right
Insert column after=Insert column after
Cols=Cols
Insert row after=Insert row after
Width=Width
Cell properties=Cell properties
Left=Left
Cut row=Cut row
Delete column=Delete column
Center=Centre
Merge cells=Merge cells
Insert template=Insert template
Templates=Templates
Background color=Background colour
Text color=Text colour
Show blocks=Show blocks
Show invisible characters=Show invisible characters
Words: {0}=Words: {0}
Insert=Insert
File=File
Edit=Edit
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help
Tools=Tools
View=View
Table=Table
Format=Format

View File

@@ -15,6 +15,7 @@ try=体验一下
usernameOrEmail=用户名或Email
password=密码
home=主页
Leanote Explore=Leanote探索
desktopApp=客户端
aboutLeanote=关于Leanote
suggestions=建议
@@ -105,6 +106,7 @@ notGoodPassword=密码至少6位
# 笔记主页
myBlog=我的博客
Explore=探索
history=历史记录
save=保存
editorTips=帮助

View File

@@ -0,0 +1,186 @@
Cut=剪切
Header 2=标题2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=你的浏览器不支持对剪贴板的访问请使用Ctrl+X\/C\/V键进行复制粘贴。
Div=Div区块
Paste=粘贴
Close=关闭
Font Family=字体
Pre=预格式文本
Align right=右对齐
New document=新文档
Blockquote=引用
Numbered list=编号列表
Increase indent=增加缩进
Formats=格式
Headers=标题
Select all=全选
Header 3=标题3
Blocks=区块
Undo=撤消
Strikethrough=删除线
Bullet list=项目符号
Header 1=标题1
Superscript=上标
Clear formatting=清除格式
Font Sizes=字号
Subscript=下标
Header 6=标题6
Redo=重复
Paragraph=段落
Ok=确定
Bold=粗体
Code=代码
Italic=斜体
Align center=居中
Header 5=标题5
Decrease indent=减少缩进
Header 4=标题4
Convert Code=转换成文本
toggleCode=ctrl+shift+c 切换代码
Language=代码语言
`ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` 切换代码
Toggle ace with raw html=Ace代码与普通Pre代码切换
Inline Code=<code>
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=当前为纯文本粘贴模式,再次点击可以回到普通粘贴模式。
Underline=下划线
Cancel=取消
Justify=两端对齐
Inline=文本
Copy=复制
Align left=左对齐
Visual aids=网格线
Lower Greek=小写希腊字母
Square=方块
Default=默认
Lower Alpha=小写英文字母
Circle=空心圆
Disc=实心圆
Upper Alpha=大写英文字母
Upper Roman=大写罗马字母
Lower Roman=小写罗马字母
Name=名称
Anchor=锚点
You have unsaved changes are you sure you want to navigate away?=你还有文档尚未保存,确定要离开?
Restore last draft=恢复上次的草稿
Special character=特殊符号
Source code=源代码
Right to left=从右到左
Left to right=从左到右
Emoticons=表情
Robots=机器人
Document properties=文档属性
Title=标题
Keywords=关键词
Encoding=编码
Description=描述
Author=作者
Fullscreen=全屏
Horizontal line=水平分割线
Horizontal space=水平边距
Insert\/edit image=上传/插入图片
Insert\/edit mind map=新建/编辑思维导图
Insert Mind Map=插入思维导图
Mind Map=思维导图
Image=图片
Insert Image=插入
General=普通
Advanced=高级
Source=地址
Border=边框
Constrain proportions=保持纵横比
Vertical space=垂直边距
Image description=图片描述
Style=样式
Dimensions=大小
Insert image=插入图片
Insert date\/time=插入日期\/时间
Remove link=删除链接
Url=地址
Text to display=显示文字
Anchors=锚点
Insert link=插入链接
New window=在新窗口打开
None=无
Target=打开方式
Insert\/edit link=插入\/编辑链接
Insert\/edit video=插入\/编辑视频
Poster=封面
Alternative source=镜像
Paste your embed code below:=将内嵌代码粘贴在下面:
Insert video=插入视频
Embed=内嵌
Nonbreaking space=不间断空格
Page break=分页符
Paste as text=粘贴为文本
Preview=预览
Print=打印
Save=保存
Could not find the specified string.=未找到搜索内容.
Replace=替换
Next=下一个
Whole words=全字匹配
Find and replace=查找和替换
Replace with=替换为
Find=查找
Replace all=全部替换
Match case=区分大小写
Prev=上一个
Spellcheck=拼写检查
Finish=完成
Ignore all=全部忽略
Ignore=忽略
Insert row before=在上方插入
Rows=行
Height=高
Paste row after=粘贴到下方
Alignment=对齐方式
Column group=列组
Row=行
Insert column before=在左侧插入
Split cell=拆分单元格
Cell padding=单元格内边距
Cell spacing=单元格外间距
Row type=行类型
Insert table=插入表格
Body=表体
Caption=标题
Footer=表尾
Delete row=删除行
Paste row before=粘贴到上方
Scope=范围
Delete table=删除表格
Header cell=表头单元格
Column=列
Cell=单元格
Header=表头
Cell type=单元格类型
Copy row=复制行
Row properties=行属性
Table properties=表格属性
Row group=行组
Right=右对齐
Insert column after=在右侧插入
Cols=列
Insert row after=在下方插入
Width=宽
Cell properties=单元格属性
Left=左对齐
Cut row=剪切行
Delete column=删除列
Center=居中
Merge cells=合并单元格
Insert template=插入模板
Templates=模板
Background color=背景色
Text color=文字颜色
Show blocks=显示区块边框
Show invisible characters=显示不可见字符
Words: {0}=字数:{0}
Insert=插入
File=文件
Edit=编辑
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=在编辑区按ALT-F9打开菜单按ALT-F10打开工具栏按ALT-0查看帮助
Tools=工具
View=视图
Table=表格
Format=格式

31
messages/zh-hk/album.conf Normal file
View File

@@ -0,0 +1,31 @@
# album image
Images=圖片
Upload=上傳
Image URL=圖片地址
Albums=相冊
Default=預設
File title search=通過標題搜索
Go to upload images=去上傳圖片
Rename=重新命名
Add=新增
Add Album=新增相簿
Add Image=新增圖片
Can't load this url=不能載入該圖片
No Images=無圖片
Click to upload images Or Drop images to here=點擊上傳圖片或將圖片拖至此
Cannot delete default album=不能刪除預設相簿
Cannot rename default album=不能重命名預設相簿
This album has images, please delete it's images at first.=相簿內有圖片, 不能刪除
Rename Album=重新命名
Add Success!=新增成功!
Rename Success!=重新命名成功!
Delete Success!=刪除成功
Are you sure to delete this image ?=確定刪除該圖片?
click to remove this image=刪除圖片
error=錯誤
Error=錯誤
Prev=上一頁
Next=下一頁

97
messages/zh-hk/blog.conf Normal file
View File

@@ -0,0 +1,97 @@
# blog
blog=部落格
aboutMe=關於我
blogSet=部落格設定
blogNavs=導航
quickLinks=快速連結
latestPosts=最近發表
noBlog=無部落格
noTag=無
blogClass=分類
updatedTime=更新
createdTime=建立
fullBlog=全文
blogNav=導航
more=更多...
previous=上一頁
next=下一頁
#
# set blog
#
blogSet=部落格設定
baseInfoSet=基本設定
commentSet=評論設定
themeSet=主題設定
theme=主題
blogName=部落格標題
blogLogo=部落格Logo
blogDesc=部落格描述
aboutMe=關於我
#domain
domainSet=域名設定
subDomain=部落格子域名
domain=自定義域名
# theme
elegant=大氣
navFixed=導航左側固定
openComment=開啟評論?
chooseComment=選擇評論系統
disqusHelp=請填寫您申請的Disqus唯一url前綴. 建議您申請Disqus帳號, 這樣可以自己管理評論. 或使用leanote的預設Disqus Id.
needHelp=需要幫助?
blogLogoTips=上傳logo將顯示logo(替代部落格標題)
saveSuccess=保存成功
community=社區
home=主頁
none=無
moreShare=更多分享
sinaWeibo=新浪微博
weixin=微信
tencentWeibo=騰訊微博
qqZone=QQ空間
renren=人人網
report=檢舉
like=讚
unlike=取消讚
viewers=人讀過
author=作者
delete=刪除
reply=回復
comment=評論
comments=條評論
cancel=取消
confirm=確認
signIn=登錄
signUp=註冊
submitComment=發表評論
reportReason1=不友善內容
reportReason2=廣告等垃圾信息
reportReason3=違法違規內容
reportReason4=不宜公開討論的政治內容
other=其它
reportReason=檢舉理由
chooseReason=請選擇檢舉理由
reportSuccess=檢舉成功, 我們處理後會通知作者, 感謝您的監督
error=錯誤
reportComment?=檢舉該評論?
reportBlog?=檢舉該部落格?
confirmDeleteComment=確定刪除該評論?
scanQRCode=打開微信掃一掃二維碼
justNow=剛剛
minutesAgo=分鐘前
hoursAgo=個小時前
daysAgo=天前
weeksAgo=周前
monthsAgo=個月前
a=a

View File

@@ -0,0 +1,35 @@
# markdown editor
Hyperlink=超連結
Please provide the link URL and an optional title=請填寫連結和一個可選的標題
optional title=可選標題
Ok=確定
Cancel=取消
Strong=粗體
strong text=粗體
Emphasis=斜體
emphasized text=斜體
Blockquote=引用
Code Sample=代碼
enter code here=代碼
Image=圖片
Heading=標題
Numbered List=有序列表
Bulleted List=無序列表
List item=項目
Horizontal Rule=水平線
Markdown syntax=Markdown 語法
Undo=還原
Redo=重作
enter image description here=圖片標題
enter link description here=連結標題
Edit mode=編輯模式
Vim mode=Vim模式
Emacs mode=Emacs模式
Normal mode=普通模式
Normal=普通
Light=輕量
Light editor=輕量編輯器
Insert Image=插入

137
messages/zh-hk/member.conf Normal file
View File

@@ -0,0 +1,137 @@
####################
# 個人中心
####################
memberCenter=個人中心
userNotExists=使用者尚未註冊
hasUsers=使用者已存在
Leanote Blog Theme Api=Leanote博客主題API
My Group=我的群組
group=群組
newGroup=新增群組
deleteGroup=刪除群組
addMemberTips=輸入使用者名稱或電子郵件建立使用者
deleteMember=刪除使用者
forbiddenNotMyGroup=無權限操作, 非該群組的所有者
userExistsInGroup=已存在該使用者
notMyGroup=非該組組的所有者
# 博客列表
# 博客摘要設定
Abstract=摘要
Description=描述
Once the abstract has been updated, it will not set the abstract automatically other than you cancel it.=以下內容設定後, 以後修改筆記時將不自動獲取. 若將該文章取消為博客後, 以下內容會自動獲取.
Main Image=主要圖片
Get next image as main image from content=從筆記中自動取得一張
Raw Content=原文
# member title
Leanote Member Center=Leanote 個人中心
Username=使用者名稱
Email=Email
Password=密碼
Avatar=頭像
Add Account=新增Leanote帳號
Update Post Abstract=更新博文摘要
Blog Base Info=博客基本設定
Comment=評論設定
Posts=博文管理
Domain=域名
Paging=分頁
Category=分類管理
Add Single=添加單頁
Update Single=修改單頁
Single=單頁管理
Theme=主題
Update Theme=修改主題
#memeber
welcomeToLeanote=歡迎來到leanote
accountInfo=帳戶資訊
accountType=帳戶類型
premiumAccountType=旗艦套餐
normalAccountType=共享套餐
imageSize=圖片空間
attachSize=附件空間
totalTraffic=流量
upgrade=升級套餐
leanoteEvents=Leanote動態
addLeanoteAccount=新增Leanote帳號
defaultComment=預設leanote評論系統
upgradeAccountTips=Leanote支持綁定自己的域名到博客上, 請 <a class="btn btn-default" href="/service">升級您的帳戶</a>
cateIsPublicNotebook=分類是公開為博客的記事本
dragAndSort=拖動可排序
permanentLink=固定連結
cate=分類
noCates=無分類
single=單頁面
singleTips=您可以添加多個單頁面
addSingle=添加單頁面
updateSingle=修改單頁面
inputSingleTitle=請輸入單頁面標題
saveSort=保存排序
pagingAndSort=分頁與排序設定
perPageSize=每頁記錄數
sortField=排序字段
sortType=排序類型
publicTime=發表時間
createdTime=建立時間
updatedTime=更新時間
desc=降序
asc=升序
postList=文章列表
hasSelfDefined=已設定
noSelfDefined=未設定
setAbstract=摘要設定
title=標題
content=內容
addTheme=新增主題
importTheme=匯入主題
exportTheme=匯出主題
export=匯出
preview=預覽
edit=編輯
use=使用
install=安裝
currentTheme=當前主題
myOtherThemes=我的其它主題
leanoteThemeMarket=Leanote主題市場
updateTheme=編輯主題
tplStyleScript=模板, 樣式, 腳本
newFile=新文件
image=圖片
currentFile=當前文件
tpl=模板
style=樣式
script=腳本
header=頭部
footer=底部
index=首頁
cate=分類
search=搜索頁
single=單頁
archive=歸檔頁
post=文章頁
tags=標簽頁
tag_posts=標簽文章頁
share_comment=分享評論
themeJson=主題配置
paging=分頁
highlight=高亮
# view js
Are you sure ?=你確定執行該操作?
Are you sure to install it ?=你確定安裝該主題?
Are you sure to delete=你確定刪除
Success=成功
Error=錯誤
File exists=檔案已存在
Delete file=刪除檔案
No images=無圖片
Filename=文件名
Group Title=群組標題

319
messages/zh-hk/msg.conf Normal file
View File

@@ -0,0 +1,319 @@
# leanote
app=Leanote
moto=不只是筆記!
moto2=知識管理, 博客, 分享, 協作... 盡在Leanote
moto3=簡約而不簡單
fork github=Github 源碼
# 首頁
openSource=開源
Desktop App=桌面客戶端
forgetPassword = 忘記密碼?
or=或
try=體驗一下
3th=第三方登入
usernameOrEmail=使用者名稱或Email
password=密碼
home=首頁
Leanote Explore=Leanote探索
desktopApp=客戶端
aboutLeanote=關於Leanote
suggestions=建議
yourSuggestions=說明完善Leanote
leanoteBlog=官方博客
knowledge=知識
knowledgeInfo=leanote是一個筆記, 你可以用它來管理自己的知識.
share=分享
shareInfo=你也可以將知識分享給你的好友.
cooperation=協作
cooperationInfo=分享給好友的同時也可以讓你的好友和你一起來完善它.
blog=博客
blogInfo=將筆記公開, 讓知識傳播的更遠!
suggestionsInfo=說明我們完善leanote
yourContact=您的聯絡方式
emailOrOthers=Email或其它聯絡方式
captcha=驗證碼
reloadCaptcha=刷新驗證碼
captchaError=驗證碼錯誤
inputCaptcha=請輸入驗證碼
noTag=無標簽
hi=Hi
welcomeUseLeanote=Welcome!
myNote=My note
curUser=Email
# form
submit=送出
Submit=送出
register=註冊
login=登入
Password=密碼
password2=請確認密碼
email=Email
inputUsername=請輸入使用者名稱或Email
inputEmail=請輸入Email
wrongEmail=Email錯誤
wrongUsernameOrPassword=使用者名稱或密碼錯誤
inputPassword=請輸入密碼
inputLoginPasswordTips=請輸入登入密碼
wrongPassword=密碼錯誤
logining=登入
loginSuccess=登入成功
hi=Hi
welcomeUseLeanote=歡迎使用leanote
myNote=我的筆記
curUser=當前登入帳戶
# form
submit=送出
login=登入
register=註冊
password2=確認密碼
email=Email
inputUsername=請輸入使用者名稱或Email
inputEmail=請輸入Email
wrongEmail=Email格式有誤
wrongUsernameOrPassword=使用者名稱或密碼錯誤
inputPassword=請輸入密碼
wrongPassword=密碼錯誤
logining=正在登入
loginSuccess=登入成功, 正在跳轉
ing=正在處理
use = 使用
hadAcount = 已有帳戶?
hasAcount = 還無帳戶?
signInWithThird=使用第三方帳號登入
# 註冊
registerSuccessAndRdirectToNote=註冊成功, 正在跳轉...
userHasBeenRegistered=%s已被註冊
# 找回密碼
passwordTips=密碼至少6位
findPassword=找回密碼
findPasswordSendEmailOver=已經將修改密碼的連結傳送到您的郵箱, 請查收郵件.
checkEmai=查收郵箱
updatePassword=修改密碼
findPasswordTimeout=連結已過期
reFindPassword=重新找回密碼
updatePassword=修改密碼
updatePasswordSuccessRedirectToLogin=修改成功, 正在跳轉到登入頁
inputPassword2=請再次輸入密碼
confirmPassword=兩次密碼輸入不一致
notGoodPassword=密碼至少6位
# 筆記首頁
myBlog=我的博客
Explore=探索
history=歷史記錄
save=儲存
editorTips=說明
editorTipsInfo=<h4>1. 快捷鍵</h4>ctrl+shift+c 代碼塊切換 <h4>2. shift+enter 跳出當前區域</h4>比如在代碼塊中<img src="/images/outofcode.png" style="width: 90px"/>按shift+enter可跳出當前代碼塊.
newNote=新記事
newMarkdownNote=新Markdown記事
noNoteNewNoteTips=該記事本下空空如也...何不
canntNewNoteTips=Sorry, 這裏不能新增筆記的. 你需要先選擇一個記事本.
new=新建
newMarkdown=新Markdown記事
clickAddTag=點擊新增標簽
notebook=記事本
note=筆記
myNotebook=我的記事本
addNotebook=新增記事本
search=搜尋
clearSearch=清除搜尋
all=最新
trash=垃圾桶
delete=刪除
unTitled=無標題
defaultShare=預設分享
leftHidden=隱藏左側
leftShow=展開左側
nav=文檔導航
writingMode=寫作模式
normalMode=普通模式
saving=正在儲存
saveSuccess=儲存成功
SearchNote=搜尋筆記
SearchNotebook=搜尋記事本
Choose File=選擇文件
Download All=下載全部
Information=信息
Are you sure to delete it ?=確認刪除?
Insert link into content=將附件連結插入到內容中
Download=下載
Delete=刪除
Drop images to here=將圖片拖動至此
Toggle Modify with Readonly=編輯與只讀切換
update=更新
create=建立
Update Time=更新時間
Create Time=建立時間
Post Url=博文連結
demoRegister=<a href="/register">立即註冊</a>
close=關閉
cancel=取消
send=傳送
# 標簽
tag=標簽
myTag=我的標簽
red=紅色
yellow=黃色
blue=藍色
green=綠色
# 設定
accountSetting=帳戶設定
logout=退出
basicInfo=基本信息
basicInfoSet=博客基本設定
updateEmail=修改Email
usernameSetting=使用者名稱設定
chooseImage=選擇圖片
oldPassword=舊密碼
newPassword=新密碼
admin=後台管理
default=預設
simple=簡約
# tinymce
uploadImage=上傳圖片
# blog
aboutMe=關於我
blogSet=博客設定
# error
notFound=該頁面不存在
# index
discussion=社區討論
download=下載
howToInstallLeanote=leanote安裝步驟
#
attachments = 附件
donate = 捐贈
# contextmenu
shareToFriends=分享給好友
publicAsBlog=公開為博客
cancelPublic=取消公開為博客
move=移動
copy=複製
rename=重命名
exportPdf=匯出PDF
addChildNotebook=新增子記事本
deleteAllShared=刪除所有分享
deleteSharedNotebook=刪除分享記事本
copyToMyNotebook=複製到我的記事本
####note-dev
emailInSending=正在傳送郵件到
checkEmail=查看郵件
setUsername=使用者名稱設定
setUsernameTips=你的郵箱是 <code>%s</code>, 可以再設定一個唯一的使用者名稱.<br />使用者名稱至少4位, 不可含特殊字符.
currentEmail=當前郵箱為: <code>%s</code>
updateEmail=修改郵箱
updateEmailTips=郵箱修改後, 驗證之後才有效, 驗證之後新的郵箱地址將會作為登入帳號使用.
sendVerifiedEmail=傳送驗證郵箱
sendSuccess=傳送成功
sendFailed=傳送失敗
verified=已驗證
unVerified=未驗證
verifiedNow=現在去驗證
resendVerifiedEmail=重新傳送驗證郵件
# 分享
defaultShare=預設分享
addShare=新增分享
friendEmail=好友郵箱
permission=權限
readOnly=只讀
writable=可寫
inputFriendEmail=請輸入好友郵箱
clickToChangePermission=點擊改變權限
sendInviteEmailToYourFriend=傳送邀請email給Ta
copySuccess=複製成功
copyFailed=對不起, 複製失敗, 請自行複製
friendNotExits=該用戶還沒有註冊%s, 複製邀請連結傳送給Ta, 邀請連結: %s
emailBodyRequired=郵件內容不能為空
clickToCopy=點擊複製
sendSuccess=傳送成功
inviteEmailBody=Hi, 你好, 我是%s, %s非常好用, 快來註冊吧!
<span></span> notes selected=當前選中了 <span></span> 篇筆記
# 歷史記錄
historiesNum=leanote會儲存筆記的最近<b>10</b>份歷史記錄
noHistories=無歷史記錄
datetime=日期
restoreFromThisVersion=從該版本還原
confirmBackup=確定要從該版還原? 還原前leanote會備份當前版本到歷史記錄中.
createAccount=建立帳號
createAccountSuccess=帳號建立成功
createAccountFailed=帳號建立失敗
thirdCreateAcountTips=您現在使用的是第三方帳號登入%(app)s, 您也可以註冊%(app)s帳號登入, 趕緊註冊一個吧. <br />註冊成功後仍可以使用第三方帳號登入leanote並管理您現有的筆記.
## valid msg
cannotUpdateDemo=抱歉, Demo用戶不允許修改
inputUsername=請輸入使用者名稱
updateUsernameSuccess=使用者名稱修改成功
usernameIsExisted=使用者名稱已存在
noSpecialChars=不能包含特殊字符
minLength=長度至少為%s
errorEmail=請輸入正確的email
verifiedEmaiHasSent=驗證郵件已傳送, 請及時查閱郵件並驗證.
emailSendFailed=郵件傳送失敗
inputPassword=請輸入密碼
inputNewPassword=請輸入新密碼
inputPassword2=請輸入確認密碼
errorPassword=請輸入長度不少於6位的密碼, 盡量復雜
oldPasswordError=舊密碼錯誤
confirmPassword=兩次密碼輸入不正確
updatePasswordSuccess=修改密碼成功
errorDomain=請輸入正確的網域名稱, 如www.myblog.com
domainExisted=網域名稱已存在
errorSubDomain=請輸入正確的博客子網域名稱, 長度至少為4, 不能包含特殊字符
subDomainExisted=博客子網域名稱已存在
domainNotPointToLeanote=該網域名稱還未指向 d.leanote.com, 請稍後再試
errorPerPageSize=每頁記錄數至少為1
errorSortField=排序類型錯誤
themeValidHasRoundInclude=警告: 模板存在循環引用問題!
#share
tokenExpired = 會話已過期
Share=分享
hasSharedThisNote=分享了筆記
inputSharePwd=您需要輸入分享密碼才能查看
shareToGroup=分享給項目組
shareByPwd=通過密碼分享
groupName=分組名
operation=操作
groupAndMemberManage=項目組/成員管理
shareToGroupTips=將筆記/記事本分享給項目組後, 該組下的用戶便擁有了該筆記/記事本
shared=已分享
notShared=未分享
shareLink=分享連結
sharePwd=查看密碼
cancelShare=取消分享
getShareLinkAndPwd=生成該筆記的分享連結和密碼
#############
# 通用
#############
created=建立
updated=更新
modify=修改
Search=搜尋
Save Success=儲存成功
Please save note firstly!=請先儲存筆記!
Please sign in firstly!=你還沒有登入, 請先登入!
# 必須要加這個, 奇怪
[CN]

View File

@@ -0,0 +1,186 @@
Cut=剪切
Header 2=標題2
Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.=你的瀏覽器不支持對剪貼簿的訪問請使用Ctrl+X\/C\/V鍵進行複製貼上。
Div=Div區塊
Paste=貼上
Close=關閉
Font Family=字體
Pre=預格式文本
Align right=靠右對齊
New document=新文件
Blockquote=引用
Numbered list=編號列表
Increase indent=增加縮進
Formats=格式
Headers=標題
Select all=全選
Header 3=標題3
Blocks=區塊
Undo=撤消
Strikethrough=刪除線
Bullet list=項目符號
Header 1=標題1
Superscript=上標
Clear formatting=清除格式
Font Sizes=字體大小
Subscript=下標
Header 6=標題6
Redo=重作
Paragraph=段落
Ok=確定
Bold=粗體
Code=代碼
Italic=斜體
Align center=置中
Header 5=標題5
Decrease indent=減少縮進
Header 4=標題4
Convert Code=轉換成文本
toggleCode=ctrl+shift+c 切換代碼
Language=代碼語言
`ctrl/cmd+shift+c` toggle code=`ctrl/cmd+shift+c` 切換代碼
Toggle ace with raw html=Ace代碼與普通Pre代碼切換
Inline Code=<code>
Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.=當前為純文本貼上模式,再次點擊可以回到普通貼上模式。
Underline=下劃線
Cancel=取消
Justify=分散段期
Inline=文本
Copy=複製
Align left=靠左對齊
Visual aids=網格線
Lower Greek=小寫希臘字母
Square=方塊
Default=預設
Lower Alpha=小寫英文字母
Circle=空心圓
Disc=實心圓
Upper Alpha=大寫英文字母
Upper Roman=大寫羅馬字母
Lower Roman=小寫羅馬字母
Name=名稱
Anchor=錨點
You have unsaved changes are you sure you want to navigate away?=你還有檔案尚未保存,確定要離開?
Restore last draft=恢復上次的草稿
Special character=特殊符號
Source code=原始碼
Right to left=從右到左
Left to right=從左到右
Emoticons=表情
Robots=機器人
Document properties=文件屬性
Title=標題
Keywords=關鍵詞
Encoding=編碼
Description=描述
Author=作者
Fullscreen=全螢幕
Horizontal line=水平分割線
Horizontal space=水平邊距
Insert\/edit image=上傳/插入圖片
Insert\/edit mind map=新建/編輯心智圖
Insert Mind Map=插入心智圖
Mind Map=心智圖
Image=圖片
Insert Image=插入
General=普通
Advanced=進階
Source=地址
Border=邊框
Constrain proportions=保持長寬比
Vertical space=垂直邊距
Image description=圖片描述
Style=樣式
Dimensions=大小
Insert image=插入圖片
Insert date\/time=插入日期\/時間
Remove link=刪除連結
Url=地址
Text to display=顯示文字
Anchors=錨點
Insert link=插入連結
New window=在新窗口打開
None=無
Target=打開方式
Insert\/edit link=插入\/編輯連結
Insert\/edit video=插入\/編輯視頻
Poster=封面
Alternative source=鏡像
Paste your embed code below:=將內嵌代碼貼上在下面:
Insert video=插入視頻
Embed=內嵌
Nonbreaking space=不間斷空格
Page break=分頁符號
Paste as text=未格式化文字
Preview=預覽
Print=列印
Save=儲存
Could not find the specified string.=沒有找到搜索內容.
Replace=取代
Next=下一個
Whole words=全文匹配
Find and replace=尋找和取代
Replace with=取代為
Find=尋找
Replace all=全部取代
Match case=區分大小寫
Prev=上一個
Spellcheck=拼寫檢查
Finish=完成
Ignore all=全部忽略
Ignore=忽略
Insert row before=在上方插入
Rows=行
Height=高
Paste row after=貼上到下方
Alignment=對齊方式
Column group=列組
Row=行
Insert column before=在左側插入
Split cell=拆分單元格
Cell padding=單元格內邊距
Cell spacing=單元格外間距
Row type=行類型
Insert table=插入表格
Body=表體
Caption=標題
Footer=表尾
Delete row=刪除行
Paste row before=貼上到上方
Scope=範圍
Delete table=刪除表格
Header cell=表頭單元格
Column=列
Cell=單元格
Header=表頭
Cell type=單元格類型
Copy row=複製行
Row properties=行屬性
Table properties=表格屬性
Row group=行組
Right=靠右對齊
Insert column after=在右側插入
Cols=列
Insert row after=在下方插入
Width=寬
Cell properties=單元格屬性
Left=左對齊
Cut row=剪切行
Delete column=刪除列
Center=居中
Merge cells=合並單元格
Insert template=插入模板
Templates=模板
Background color=背景色
Text color=文字顏色
Show blocks=顯示區塊邊框
Show invisible characters=顯示不可見字符
Words: {0}=字數:{0}
Insert=插入
File=文件
Edit=編輯
Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help=在編輯區按ALT-F9打開選單按ALT-F10打開工具列按ALT-0查看說明
Tools=工具
View=檢視
Table=表格
Format=格式

View File

@@ -1,3 +1,45 @@
@font-face {
font-family: 'leanote';
src: url('../../fonts/leanote-font3/leanote.eot?-vcf23i');
src: url('../../fonts/leanote-font3/leanote.eot?#iefix-vcf23i') format('embedded-opentype'), url('../../fonts/leanote-font3/leanote.ttf?-vcf23i') format('truetype'), url('../../fonts/leanote-font3/leanote.woff?-vcf23i') format('woff'), url('../../fonts/leanote-font3/leanote.svg?-vcf23i#leanote') format('svg');
font-weight: normal;
font-style: normal;
}
#logo,
.mce-i-mind,
.mce-i-ace-pre,
.lea-icon {
font-family: 'leanote' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-markdown:before {
content: "\e604";
}
.mce-i-mind:before {
content: "\e602";
}
.mce-i-ace-pre:before {
content: "\e603";
}
#logo:before {
content: "\e901";
line-height: 1;
margin-top: 5px;
display: inline-block;
vertical-align: top;
}
#logo.icon-only:before {
content: "\e902";
}
.lang-zh-cn #logo:before {
content: "\e900";
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
@@ -22,14 +64,6 @@
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
}
/* leanote */
@font-face {
font-family: 'leanoteregular';
src: url('../../fonts/leanote/leanote-regular-webfont.eot');
src: url('../../fonts/leanote/leanote-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../../fonts/leanote/leanote-regular-webfont.woff') format('woff'), url('../../fonts/leanote/leanote-regular-webfont.ttf') format('truetype'), url('../../fonts/leanote/leanote-regular-webfont.svg#leanoteregular') format('svg');
font-weight: normal;
font-style: normal;
}
::selection {
background: #000000;
color: #ffffff;
@@ -52,20 +86,21 @@ h2,
h3 {
font-family: 'Open Sans', '微软雅黑', Arial, Tahoma, sans-serif;
}
#logo a {
font-family: "leanoteregular";
font-size: 32px;
.logo-ctn {
display: block;
float: left;
margin-top: -5px;
}
#logo div {
.logo-ctn #logo {
float: left;
padding-right: 3px;
}
.logo-ctn #logo:before {
line-height: 38px;
font-size: 28px;
}
.logo-ctn .logo-title {
float: left;
line-height: 50px;
}
#logo a:before {
content: "a";
}
.animated {
-webkit-animation-fill-mode: both;
-moz-animation-fill-mode: both;

View File

@@ -13,6 +13,8 @@
@containerWidth: 945px;
@titleColor: #5AD4A0;
@import "../../css/theme/includes/icon.less";
// font
@font-face {
font-family: 'Open Sans';
@@ -38,17 +40,7 @@
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
}
/* leanote */
@font-face {
font-family: 'leanoteregular';
src: url('../../fonts/leanote/leanote-regular-webfont.eot');
src: url('../../fonts/leanote/leanote-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../../fonts/leanote/leanote-regular-webfont.woff') format('woff'),
url('../../fonts/leanote/leanote-regular-webfont.ttf') format('truetype'),
url('../../fonts/leanote/leanote-regular-webfont.svg#leanoteregular') format('svg');
font-weight: normal;
font-style: normal;
}
@selectionBg: @aBlackColor;
@selectionColor: #fff;
@@ -65,24 +57,22 @@ h1, h2, h3 {
font-family: @fontFamily;
}
#logo {
a {
font-family: "leanoteregular";
font-size: 32px;
display: block;
.logo-ctn {
display: block;
#logo {
float: left;
margin-top: -5px;
padding-right: 3px;
&:before {
line-height: 38px;
font-size: 28px;
}
}
div {
.logo-title {
float: left;
line-height: 50px;
}
a:before {
content: "a";
}
}
//
//------------
.animated {

View File

@@ -1,325 +0,0 @@
.entry-controls {
text-align: right;
padding-top: 20px;
margin-top: 20px;
margin-bottom: 10px;
border-top: 1px solid #f1f2f3;
}
.entry-controls .right-section {
float: right;
color: #9d9e9f;
}
.entry-controls .right-section a {
color: #9d9e9f;
}
.post-menu-button {
padding-bottom: 10px;
}
.ui-menu-button {
position: relative;
display: inline-block;
cursor: pointer;
}
.entry-controls .control-item {
margin-left: 15px;
color: #9d9e9f;
font-size: 15px;
opacity: 1;
-webkit-transition: all 0.05s ease-in-out;
-moz-transition: all 0.05s ease-in-out;
-o-transition: all 0.05s ease-in-out;
transition: all 0.05s ease-in-out;
}
.vote-section-wrapper {
display: inline-block;
float: left;
}
.entry-controls .voters {
display: block;
margin-top: 52px;
height: 25px;
clear: both;
}
.entry-controls .voters .more-voters,
.entry-controls .voters .voter {
width: 25px;
height: 25px;
position: relative;
margin: 0 8px 8px 0;
float: left;
}
.entry-controls .voters .voter > img {
float: left;
}
.avatar-small {
width: 25px;
height: 25px;
border-radius: 50%;
}
.comment-box {
margin: 0;
padding: 0;
font-size: 16px;
}
.comment-box a {
font-size: 16px;
}
.comment-box .box-header {
border-top: 1px solid #f1f2f3;
font-size: 15px;
color: #9d9e9f;
padding: 30px 0 10px;
position: relative;
}
.comment-box .box-header .icon {
margin-right: 8px;
vertical-align: -3px;
}
.comment-box .box-header a.comment-options {
margin-left: 10px;
}
@media screen and (max-width: 600px) {
.comment-box .box-header {
padding-left: 17px;
padding-right: 17px;
}
}
.comment-box .load-more {
height: 26px;
margin-top: 15px;
padding-top: 24px;
text-align: center;
font-size: 15px;
border-top: solid 1px #f1f2f3;
}
.comment-box .load-more a {
color: #9d9e9f;
}
.comment-box .ui-spinner {
margin: 0 auto;
}
.comment-box .ui-spinner.small {
position: relative;
left: 10px;
}
.comment-box.empty.cannot-comment {
border: 1px solid #dddddd;
}
.comment-box.cannot-comment .editable,
.comment-box.cannot-comment .editable,
.comment-box.comment-box.cannot-comment .command,
.comment-box.comment-box.cannot-comment .op-link.reply {
display: none !important;
}
.comment-box.empty.cannot-comment .comment-form {
margin: 0;
}
.comment-box.empty.cannot-comment .comment-box-ft {
background: #ffffff;
}
.comment-box.empty.cannot-comment .comment-box-ft,
.comment-box .comment-box-ft {
position: relative;
margin-top: 0;
}
.comment-box .avatar {
width: 40px;
height: 40px;
border-radius: 20px;
float: left;
}
.comment-box .message {
margin-top: 24px;
padding: 10px;
border-radius: 4px;
text-align: center;
background: #F7F8F9;
color: #9d9e9f;
}
.comment-item {
position: relative;
list-style: none;
outline: 0;
padding: 15px 0;
border-bottom: solid 1px #f1f2f3;
}
.item-highlight * {
border-radius: 5px;
font-weight: bold;
}
@media screen and (max-width: 600px) {
.comment-item {
padding-left: 17px;
padding-right: 17px;
}
}
.comment-item > .avatar-link {
float: left;
margin: 4px 0 0;
}
.comment-item > .comment-body {
margin: 0 0 0 60px;
}
.comment-item .comment-content {
min-height: 22px;
font-size: 15px;
word-wrap: break-word;
padding: 5px 0;
}
.comment-item .comment-hd,
.comment-item .comment-ft {
color: #9d9e9f;
}
.comment-item .comment-hd .desc,
.comment-item .comment-ft .desc {
font-size: 15px;
}
.comment-item .comment-ft {
font-size: 15px;
}
.comment-item .op-link {
color: #9d9e9f;
font-size: 15px;
margin-left: 12px;
}
.comment-item .op-link {
visibility: hidden;
}
@media screen and (max-width: 420px) {
.comment-item .op-link .icon {
display: none;
}
}
.comment-item .like-num {
float: right;
}
.comment-item .like-num.nil {
display: none;
}
.comment-item:hover .op-link {
visibility: visible;
}
.comment-form.comment-reply-form {
padding: 20px 0;
}
.comment-form .row {
margin: 0;
}
.comment-form .editable {
padding: 6px 12px;
font-size: 16px;
min-height: 18px;
line-height: 26px;
white-space: pre-wrap;
width: 100%;
color: #222;
cursor: text;
border: 1px solid #DDD;
border-radius: 4px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) inset;
background: #e6eaed;
color: #747f8c;
}
#commentForm {
border-top: solid 1px #f1f2f3;
padding: 10px 0;
}
.comment-form .editable:focus {
outline: none;
border: 1px solid #cccccc;
}
.comment-form > .command {
display: none;
margin-top: 20px;
padding-bottom: 0;
text-align: right;
}
.comment-form > .command .save {
float: right;
}
.comment-form > .command .cancel {
color: #9d9e9f;
vertical-align: -7px;
margin-right: 10px;
}
.comment-form.expanded .command {
display: block;
}
.comment-form > .avatar + .editable {
margin-left: 60px;
}
#comments {
padding: 0;
}
#comments form {
display: none;
}
@media screen and (max-width: 600px) {
.comment-form {
padding-left: 17px;
padding-right: 17px;
}
}
.btn-zan {
border-radius: 50px;
}
.btn-weibo {
border-radius: 50px;
color: #d44137;
border-color: #d44137;
}
.btn-weibo:hover {
color: #fff;
background: #d44137;
}
.btn-weixin {
color: #38ad5a;
border-color: #38ad5a;
border-radius: 50px;
}
.btn-weixin:hover {
color: #fff;
background: #38ad5a;
}
.reply-comment-btn {
width: 100px;
}
.avatar-wrap {
float: left;
}
.editor-wrap {
margin-left: 60px;
}
#weixinQRCode {
text-align: center;
}
.report-form ul {
margin: 0;
padding: 0;
}
.report-form .options > li {
list-style: none;
display: block;
line-height: 2;
color: #666768;
}
.report-form .options input {
margin-right: 10px;
vertical-align: 1px;
}
.footnote {
color: red;
}
#moreComments {
padding: 20px 0;
text-align: center;
}
.needLogin {
padding: 20px 0;
text-align: center;
font-size: 18px;
border-top: 1px solid #f1f2f3;
}
.needLogin a {
font-size: 18px;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,15 +0,0 @@
html {
border: none;
}
body {
background-color: #fbfcf7;
}
* {
font-size: 16px;
}
pre {
font-size: 14px;
}
img {
max-width: 100% !important;
}

View File

@@ -1,27 +0,0 @@
html {
margin-top: 3px;
padding: 3px;
border: 1px solid #ebeff2;
border-radius: 5px;
-webkit-border-radius: 5px;
border-width: 1px;
box-shadow: none;
}
* {
font-family: Helvetica, Tahoma, Arial, Hiragino Sans GB, "Microsoft YaHei", "微软雅黑", "Micro Hei", SimSun, "宋体", Heiti, "黑体", sans-serif;
}
.mce-item-table,
.mce-item-table td,
.mce-item-table th,
.mce-item-table caption {
border: 1px solid #9B9898;
border-collapse: collapse;
}
img {
max-width: 100% !important;
}
@media screen and (max-width: 500px) {
* {
font-size: 16px;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,45 @@
@font-face {
font-family: 'leanote';
src: url('../../fonts/leanote-font3/leanote.eot?-vcf23i');
src: url('../../fonts/leanote-font3/leanote.eot?#iefix-vcf23i') format('embedded-opentype'), url('../../fonts/leanote-font3/leanote.ttf?-vcf23i') format('truetype'), url('../../fonts/leanote-font3/leanote.woff?-vcf23i') format('woff'), url('../../fonts/leanote-font3/leanote.svg?-vcf23i#leanote') format('svg');
font-weight: normal;
font-style: normal;
}
#logo,
.mce-i-mind,
.mce-i-ace-pre,
.lea-icon {
font-family: 'leanote' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-markdown:before {
content: "\e604";
}
.mce-i-mind:before {
content: "\e602";
}
.mce-i-ace-pre:before {
content: "\e603";
}
#logo:before {
content: "\e901";
line-height: 1;
margin-top: 5px;
display: inline-block;
vertical-align: top;
}
#logo.icon-only:before {
content: "\e902";
}
.lang-zh-cn #logo:before {
content: "\e900";
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
@@ -22,6 +64,11 @@
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
}
#logo {
font-size: 32px;
color: #000;
padding-top: 8px;
}
/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/
::selection {
background: #000000;
@@ -60,14 +107,13 @@ a:hover {
margin: 0;
}
#headerContainer .navbar-brand {
padding: 0;
padding-left: 10px;
line-height: 60px;
}
#headerContainer .navbar-brand img {
height: 50px;
display: inline-block;
margin-top: -5px;
padding: 8px;
}
#headerContainer .navbar-nav a {
line-height: 60px;
@@ -687,14 +733,13 @@ input,
opacity: 0;
}
.footer-leanote {
margin-top: 20px;
color: #475F77;
text-align: center;
margin-top: 20px;
color: #475F77;
text-align: center;
}
#footer .footer-leanote a {
color: #475F77;
color: #475F77;
}
/* news */
.index-news a:hover {
text-decoration: underline !important;

View File

@@ -13,6 +13,8 @@
@containerWidth: 945px;
@titleColor: #5AD4A0;
@import "./theme/includes/icon.less";
// font
@font-face {
font-family: 'Open Sans';
@@ -39,6 +41,12 @@
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
}
#logo {
font-size: 32px;
color: #000;
padding-top: 8px;
}
/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/
@selectionBg: @aBlackColor;
@selectionColor: #fff;
@@ -74,13 +82,13 @@ a:hover {
box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.1);
margin: 0;
.navbar-brand {
padding: 0;
padding-left: 10px;
line-height: @headerHeight;
// line-height: @headerHeight;
img {
height: 50px;
display: inline-block;
margin-top: -5px;
padding: 8px;
}
}
.navbar-nav a {

View File

@@ -2,6 +2,7 @@
@import "includes/animation.less";
@import "includes/common.less";
@import "includes/icon.less";
@import "includes/header.less";
@import "includes/page.less";
@@ -21,43 +22,6 @@
@import "includes/tag.less";
@import "includes/batch.less";
#logo,
#switcher span,
.mce-i-mind,
.mce-i-ace-pre,
.lea-icon
{
font-family: 'leanote' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-markdown:before {
content: "\e604";
}
.mce-i-mind:before {
content: "\e602";
}
.mce-i-ace-pre:before {
content: "\e603";
}
#logo:before {
content: "\e600";
line-height: 1;
margin-top: 5px;
display: inline-block;
vertical-align: top;
}
#switcher span:before {
content: "\e601";
}
*,.h1,
.h2,
.h3,
@@ -103,7 +67,9 @@ h1, h2, h3 {
@fontFamily: 'Open Sans', Helvetica, Tahoma, Arial, Hiragino Sans GB, "Microsoft YaHei", "微软雅黑", "Micro Hei", SimSun, "宋体", Heiti, "黑体", sans-serif;
// @fontFamily: Helvetica, Tahoma, Arial, Hiragino Sans GB, "Microsoft YaHei", "微软雅黑", "Micro Hei", SimSun, "宋体", Heiti, "黑体", sans-serif;
@aceFontFamily: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', Hiragino Sans GB, "Microsoft YaHei", "微软雅黑";
@aceFontFamily: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', Hiragino Sans GB, "Microsoft YaHei", "微软雅黑", monospace, sans-serif;
// @fontFamily: PingFang SC,Hiragino Sans GB,Helvetica Neue,Microsoft Yahei,WenQuanYi Micro Hei,sans-serif;
@aceFontFamily: Menlo, 'Ubuntu Mono', Consolas, 'Courier New', 'Microsoft Yahei', 'Hiragino Sans GB', 'WenQuanYi Micro Hei', sans-serif;
// header
@headerTextColor: #fff;

File diff suppressed because one or more lines are too long

View File

@@ -3,7 +3,7 @@
*/
// 字体
/*
@font-face {
font-family: 'Open Sans';
font-style: normal;
@@ -28,33 +28,6 @@
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff');
}
*/
/* leanote */
/*
@font-face {
font-family: 'leanoteregular';
src: url('../../fonts/leanote/leanote-regular-webfont.eot');
src: url('../../fonts/leanote/leanote-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../../fonts/leanote/leanote-regular-webfont.woff') format('woff'),
url('../../fonts/leanote/leanote-regular-webfont.ttf') format('truetype'),
url('../../fonts/leanote/leanote-regular-webfont.svg#leanoteregular') format('svg');
font-weight: normal;
font-style: normal;
}
*/
@font-face {
font-family: 'leanote';
src:url('../../fonts/leanote-font2/leanote.eot?-vcf23i');
src:url('../../fonts/leanote-font2/leanote.eot?#iefix-vcf23i') format('embedded-opentype'),
url('../../fonts/leanote-font2/leanote.ttf?-vcf23i') format('truetype'),
url('../../fonts/leanote-font2/leanote.woff?-vcf23i') format('woff'),
url('../../fonts/leanote-font2/leanote.svg?-vcf23i#leanote') format('svg');
font-weight: normal;
font-style: normal;
}
.close:focus {
outline: none;
@@ -64,6 +37,9 @@
visibility: hidden;
}
.mobile-show {
display: none;
}
.btn {
border-radius: 2px;
@@ -78,7 +54,6 @@
}
//-----------------
// 下拉菜单
.dropdown-submenu {
@@ -190,10 +165,10 @@
border-radius: 3px;
margin:0;
// border: 1px solid @hColor;
border: 1px solid #e6eaed;
// border: 1px solid #e6eaed;
/*overflow-x: hidden; */
/*overflow-y: scroll;*/
box-shadow: rgba(0, 0, 0, 0.172549) 0px 6px 12px 0px;
// box-shadow: rgba(0, 0, 0, 0.172549) 0px 6px 12px 0px;
&:before {
content: "";

View File

@@ -18,9 +18,6 @@
padding: 2px;
}
#logo {
font-size: 36px;
}
#avatar {
height: 60px; max-width: 200px; display: inline-block; margin: 10px;
@@ -157,7 +154,8 @@ a:hover {
width: 140px;
height: @headerHeight;
padding-left: 10px;
padding-top: 0px;
padding-top: 9px;
font-size: 32px;
}
#switcher {
@@ -173,11 +171,9 @@ a:hover {
color: @hColor;
}
}
span {
border-radius: 5px;
// background-color: @switcherBgColor;
#leftSwitcher2 {
cursor: pointer;
font-size: 18px;
font-size: 16px;
line-height: 34px;
margin-top: 8px;
padding: 0 5px;
@@ -271,3 +267,31 @@ a:hover {
vertical-align: middle;
visibility: hidden;
}
#inviteFriends {
position: relative;
.dot {
display: inline-block;
position: absolute;
right: -8px;
top: -8px;
width: 8px;
height: 8px;
border-radius: 50%;
background: #FF9263;
}
}
#inviteUrl {
width: 400px;
padding: 3px;
border-radius: 3px;
border: 1px solid #eee;
}
#myProfile {
margin: 0 10px;
}
.profile-img {
line-height: 60px;
}

View File

@@ -0,0 +1,51 @@
@font-face {
font-family: 'leanote';
src:url('../../fonts/leanote-font3/leanote.eot?-vcf23i');
src:url('../../fonts/leanote-font3/leanote.eot?#iefix-vcf23i') format('embedded-opentype'),
url('../../fonts/leanote-font3/leanote.ttf?-vcf23i') format('truetype'),
url('../../fonts/leanote-font3/leanote.woff?-vcf23i') format('woff'),
url('../../fonts/leanote-font3/leanote.svg?-vcf23i#leanote') format('svg');
font-weight: normal;
font-style: normal;
}
#logo,
.mce-i-mind,
.mce-i-ace-pre,
.lea-icon
{
font-family: 'leanote' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-markdown:before {
content: "\e604";
}
.mce-i-mind:before {
content: "\e602";
}
.mce-i-ace-pre:before {
content: "\e603";
}
#logo:before {
content: "\e901";
line-height: 1;
margin-top: 5px;
display: inline-block;
vertical-align: top;
}
#logo.icon-only:before {
content: "\e902";
}
.lang-zh-cn {
#logo:before {
content: "\e900";
}
}

View File

@@ -157,12 +157,20 @@
font-style: normal;
}
textarea#wmd-input {
color: #000 !important;
font-family: @aceFontFamily;
}
// 为了防止vim在linux下光标混乱的问题
.ace_editor {
font-family: @aceFontFamily;
// font-family: @aceFontFamily !important; // 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro';
}
.ace_editor * {
font-family: inherit;
}
/*
// markdown editor ace
@mdAceTextColor: #2C3E50; // #04294E; // #384654;
@mdAceHeadingColor: #000; // 1a2026
@@ -295,8 +303,152 @@ textarea#wmd-input {
background-color: rgb(101, 189, 119, 0.9);
}
}
*/
// markdown todo list
.m-todo-item {
list-style: none;
}
// markdown editor ace
@mdAceTextColor: #333333; // #04294E; // #384654;
@mdAceHeadingColor: #1d3e81; // 1a2026
@mdAceBlockquoteColor: #003873;
@mdAceCursorColor: #243342;
@mdAceTextColor: #000;
@mdAceTagColor: #1d3e81; // rgba(87, 108, 130, 0.6);
textarea#wmd-input {
color: #000 !important;
}
#wmd-input {
.ace_cjk {
color: inherit;
}
.ace_searchbtn_close {
margin: 0px;
}
.ace_content {
padding-top: 5px;
}
&.ace_editor {
color: @mdAceTextColor;
}
&.ace-tm {
background-color: #ffffff;
}
&.ace-tm .ace_text-input {
box-sizing: initial;
}
&.ace-tm .ace_marker-layer .ace_active-line {
background-color: rgba(89, 128, 166, 0.05);
}
&.ace-tm .ace_cursor {
color: @mdAceCursorColor;
}
// 左侧的线
&.ace-tm .ace_print-margin {
background: none;
// background-color: rgba(89, 128, 166, 0.05);
}
&.ace-tm .ace_markup.ace_heading {
color: @mdAceTextColor;
font-weight: bold;
&.ace_1,&.ace_2,&.ace_3,&.ace_4,&.ace_5 {
color: @mdAceTagColor;
}
}
&.ace-tm .ace_markup.ace_list {
color: @mdAceTextColor;
}
&.ace-tm .ace_constant.ace_language {
color: @mdAceTagColor;
font-weight: normal;
}
&.ace-tm .ace_meta.ace_tag {
color: #384654;
font-style: italic;
font-weight: bold;
// background-color: rgba(0, 0, 0, 0.04);
}
&.ace-tm .ace_keyword.ace_operator {
color: #384654;
background-color: transparent;
}
&.ace-tm .ace_storage,
&.ace-tm .ace_keyword {
color: #384654;
// background-color: rgba(0, 0, 0, 0.04);
font-weight: bold;
}
&.ace-tm .ace_entity.ace_name.ace_function {
color: #1a2026;
font-weight: bold;
}
&.ace-tm .ace_string {
color: #384654;
font-style: italic;
// background-color: rgba(0, 0, 0, 0.04);
}
&.ace-tm .ace_invalid {
color: inherit;
background: inherit;
}
&.ace-tm .ace_strong {
color: @mdAceTextColor;
font-weight: bold;
}
&.ace-tm .ace_emphasis {
color: @mdAceTextColor;
font-style: italic;
}
&.ace-tm .ace_blockquote {
color: @mdAceTextColor;
}
&.ace-tm .ace_code {
color: #1a2026;
// background-color: rgba(0, 0, 0, 0.04);
}
&.ace-tm .ace_code_block {
color: #1a2026;
}
&.ace-tm .ace_link {
color: @mdAceTextColor;
background-color: transparent;
text-decoration: underline;
}
.ace_underline {
color: @mdAceHeadingColor;
text-decoration: none;
}
&.ace-tm .ace_description {
color: #576c82;
}
&.ace-tm .ace_constant {
color: #384654;
}
&.ace-tm .ace_comment {
color: rgba(87, 108, 130, 0.6);
font-style: italic;
}
&.ace-tm .ace_marker-layer .misspelled {
position: absolute;
z-index: -2;
border-bottom: 1px dotted red;
margin-bottom: -1px;
}
// vim cursor
&.normal-mode .ace_cursor {
// background-color: #003A92;
}
// emacs cursor
&.emacs-mode .ace_cursor {
border: 2px rgba(101, 189, 119, 0.8) solid !important;
background-color: rgb(101, 189, 119, 0.9);
}
}

View File

@@ -41,6 +41,7 @@
padding: 8px;
line-height: 20px;
vertical-align: top;
word-break: break-all;
}
td {
max-width: 280px;

View File

@@ -20,24 +20,35 @@
#notebookMin,
.ui-loader,
#md-section-helper,
.writing-mobile-hide
.writing-mobile-hide,
.tips-ctn,
#wmd-undo-button,
#wmd-redo-button,
#wmd-hr-button,
#wmd-help-button
{
display: none !important;
}
*,
.ztree li a.level0 span,
.ztree li a.level1 span,
.label
{
font-size: 16px;
}
.label i {
opacity: 1;
width: 20px;
width: 12px;
&:hover, &:focus {
color: @green !important;
}
}
#leftSwitcher:before {
content: "\f039";
}
a:focus, a:hover, a:active {
color: @green !important;
}
@@ -89,6 +100,7 @@ a:focus, a:hover, a:active {
visibility: hidden !important;
}
left: 0 !important;
padding-left: 0;
}
#note.editor-show {
visibility: visible;
@@ -147,7 +159,7 @@ a:focus, a:hover, a:active {
}
#tag {
position: absolute;
right: 140px;
right: 124px;
left:0;
top:0;
bottom:0;
@@ -186,8 +198,9 @@ a:focus, a:hover, a:active {
#left-column {
width: 100% !important;
}
#mdEditor #wmd-input {
font-size: 16px;
#mdEditor #wmd-input * {
font-size: 14px;
}
.new-markdown-text-abbr, .new-note-text-abbr {
@@ -266,6 +279,9 @@ a:focus, a:hover, a:active {
#editorContent .ace-tomorrow {
padding: 0;
}
#note, #editor, #mdEditor {
left: 0;
}
// readonly
@@ -288,10 +304,11 @@ a:focus, a:hover, a:active {
-webkit-overflow-scrolling: touch !important;
}
.preview-container {
left: 10px;
left: 5px;
}
}
}
// ipad
@@ -317,23 +334,13 @@ a:focus, a:hover, a:active {
#tag {
position: absolute;
right: 310px;
left:0;
left: 0;
top:0;
bottom:0;
overflow: hidden;
padding-left: 5px;
#tags {
position: absolute;
left: 50px;
right: 0;
top: 0;
bottom: 0;
overflow-y: hidden;
overflow-x: scroll;
position: absolute;
line-height: 40px;
line-height: inherit !important;
}
#tagDropdown {
float: left;
width: 50px;
@@ -353,6 +360,18 @@ a:focus, a:hover, a:active {
}
}
#tags {
position: absolute;
left: 50px;
right: 0;
top: 0;
bottom: 0;
overflow-y: hidden;
overflow-x: scroll;
position: absolute;
line-height: 40px;
line-height: inherit !important;
}
}
@media screen and (max-width: 800px) {
@@ -392,7 +411,7 @@ a:focus, a:hover, a:active {
#tag {
position: absolute;
right: 160px;
right: 124px;
left:0;
top:0;
bottom:0;
@@ -460,7 +479,7 @@ a:focus, a:hover, a:active {
width: 100% !important;
}
#mdEditor #wmd-input {
font-size: 16px;
font-size: 14px;
}
.my-link {
@@ -482,7 +501,7 @@ a:focus, a:hover, a:active {
// 有一些toolbar不能显示
.wmd-button-bar-inner {
overflow: scroll;
// overflow: scroll;
height: 30px;
}
@@ -501,5 +520,120 @@ a:focus, a:hover, a:active {
left: 10px;
}
}
#searchNote {
margin-top: 2px;
}
#noteTitle {
// padding: 0;
}
#tags {
.label, .label i {
font-size: 10px;
}
}
.mobile-hide {
display: none;
}
.mobile-show {
display: block;
}
#editorContent, #mdEditor {
bottom: 0 !important;
}
#mdEditor .layout-wrapper-l3, #editorContent {
margin-top: 0;
border: none;
}
// iframe插件 视频
.leanote-plugin {
@pluginHeaderHeight: 40px;
#header {
height: @pluginHeaderHeight;
}
#mainContainer {
top: @pluginHeaderHeight;
}
.profile-img {
line-height: @pluginHeaderHeight - 3;
}
#switcher i {
padding: 11px 0;
}
#searchNote {
padding-top: 1px;
}
#newNoteWrap {
line-height: 22px;
}
#leanoteMsg {
margin-top: 0;
}
*,
.ztree li a.level0 span,
.ztree li a.level1 span,
#noteItemList .item-setting, #noteItemList .item-blog {
font-size: 14px;
}
h1, h2, h3, h4, h5 {
}
.leanoteNav h1 {
font-size: 16px;
}
h1 {
font-size: 24px;
}
h2 {
font-size: 20px;
}
h3 {
font-size: 18px;
}
h4 {
font-size: 16px;
}
#noteItemList .item-setting, #noteItemList .item-blog {
width: 23px;
padding: 1px;
}
#noteItemList .item {
height: 69px;
}
#noteItemList .item-thumb {
width: 60px;
height: 60px;
margin-top: 0px;
}
#preview-contents {
padding-left: 0;
}
#msg {
font-size: 12px;
}
#noteInfo {
width: 265px;
}
#noteInfo table th {
min-width: 72px;
}
#noteInfo .post-url-wrap span {
word-break: break-all;
}
}
.extension-preview-buttons {
border: none;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="leanoteregular" horiz-adv-x="512" >
<font-face units-per-em="2048" ascent="2048" descent="0" />
<missing-glyph horiz-adv-x="500" />
<glyph horiz-adv-x="0" />
<glyph unicode="&#xd;" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="0" />
<glyph unicode=" " />
<glyph unicode="&#x22;" horiz-adv-x="2048" />
<glyph unicode="a" horiz-adv-x="6750" d="M7 729q11 76 43 139.5t85 104.5t125 41q47 63 77 145q23 63 23 149q0 26 -2 54q-43 6 -95 15t-95 25q-44 17 -68 46q-16 18 -15 44q0 15 5 32q8 25 27.5 33t47.5 9t59.5 -1t62.5 4q27 4 50 15t46 22.5t44.5 19.5t45.5 4q39 -25 55.5 -71t26.5 -99q28 -6 52 -6q15 0 28 2 q35 6 67.5 15.5t65.5 14.5l20 2q25 0 54 -9q18 43 39.5 61.5t54.5 25.5t77 11t105 18q27 6 57.5 18.5t60.5 19.5q16 4 30 4q12 0 24 -3q24 -6 33 -39q7 -21 7 -39q0 -22 -12 -36q-20 -26 -56.5 -43t-77.5 -29t-66 -33q-33 -25 -61.5 -75t-51 -113.5t-37 -136t-16.5 -140.5 v-20q0 -56 9 -106q11 -60 40 -97q51 -12 106.5 -40t104 -67.5t83 -92t46.5 -113.5q8 -39 8 -78q-1 -10 -1 -20q-2 -48 -16.5 -90t-39 -72.5t-57.5 -42.5q-38 -15 -71 -15q-18 0 -34 4q-46 12 -79 45t-56.5 79t-38.5 91q1 -12 1 -23q-1 -66 -31 -128q-36 -72 -94 -115 t-130 -48h-12q-65 0 -127 46q-37 29 -52 74t-26.5 93t-28 94t-53.5 79q-12 1 -23 1q-28 0 -50 -4q-32 -5 -60 -9t-55 -5t-53 9q-66 23 -104 78t-50 125q-6 37 -6 76q0 35 5 71zM313 844q43 -10 56.5 16.5t-2.5 54.5q-33 0 -43.5 -20t-10.5 -51zM492 1245q-4 -15 -4 -27 q0 -16 7 -26q13 -18 36.5 -24.5t51 -1.5t44.5 18q-3 29 -3 54q0 38 7 70q12 52 22 107q-10 6 -27.5 9t-35 1t-30.5 -8t-15 -18q35 0 52 -16.5t19 -41t-7 -51t-26.5 -44t-42 -20.5t-48.5 19zM563 424q20 -35 32.5 -78t30.5 -80q19 -38 49 -62q28 -23 77 -22h8q18 18 25.5 44 t7.5 53.5t-9.5 54t-23.5 45.5q-47 14 -101.5 18t-95.5 27zM672 1245q-2 -6 -2 -11q0 -6 3 -12q5 -8 11 -13t13.5 -10t9.5 -15q28 -8 52 -8q28 0 49 12q38 22 54 62q11 30 11 62q1 12 -1 24q-6 46 -28 78q-20 32 -56 37q-4 1 -8 1q-33 0 -73 -37q29 4 45 -7t26 -28 q5 -18 5 -36q0 -16 -5 -34q-10 -36 -35 -55q-10 -14 -22 -12t-25 7q-12 6 -19 8q-5 2 -5 -7v-6zM885 459q51 -16 79.5 -66.5t53 -106t53.5 -99.5t82 -50q9 -1 17 -1q22 0 40 8q26 10 46 28t32 42t19 48q7 33 7 65q0 45 -14 85q-22 70 -66 125t-103.5 91t-118.5 46 q-4 -25 -12.5 -43t-6.5 -47q41 -10 79 -29.5t66 -49.5q30 -30 46 -66q15 -32 14 -70v-9q-25 37 -62 80q-38 44 -81 68q-35 20 -70 19q-9 0 -18 -1q-45 -6 -82 -67zM1502 836v140.5v139.5q1 139 9 273h162v-1119q-14 -6 -37.5 -8t-48 -2t-47 2t-37.5 8q1 93 1 187v95z M1783 560q-2 34 -1 68q0 36 1 72q3 72 10 135.5t20.5 111.5t29.5 67q23 23 71 39t110 25q62 8 128 10q11 0 22 1q56 -1 106 -7q62 -8 111.5 -23t76.5 -37q42 -36 58 -98q11 -43 11 -89q1 -19 -1 -37q-6 -64 -35 -119.5t-76 -76.5q-49 -23 -99 -25q-13 -1 -26 -1q-37 0 -75 4 q-51 6 -107 10q-16 1 -32 1q-40 0 -83 -7v170q29 3 60 3q15 0 31 -1q48 -2 95 -3h23q34 0 66 2q42 3 75 17q6 18 9 50t-9 48q-29 20 -76 26q-36 5 -76 5h-25q-54 -2 -107.5 -6t-92.5 -6q-12 -41 -16 -96.5t-4 -113.5t4 -116.5t8 -103.5q46 -23 106 -27q48 -3 101 -3h27 q68 1 136 5q27 2 53 2q40 0 77 -4v-170q-56 6 -114 6q-40 0 -82 -3q-100 -7 -189.5 -7t-160.5 19.5t-105 82.5q-14 25 -22.5 78.5t-11.5 121.5zM2630 492q-1 10 -1 20q-1 56 19 110q22 64 72 97q37 25 86 32q43 6 91 6h15q56 -1 120 -4q27 -1 56 -1q38 0 78 2v-170 q-25 -2 -51 -2q-20 0 -42 1q-50 3 -97 4h-16q-38 0 -73 -4q-42 -5 -69 -26q-10 -14 -10 -49t10 -49q27 -18 74 -24.5t99 -6.5t103.5 5t90.5 7q18 37 24 96.5t6 124t-7 125t-15 103.5q-80 10 -173 10q-33 0 -67 -1q-73 -3 -142 -3q-56 0 -110 2q2 20 1 46t-2 50.5t0 46 t10 37.5q48 -4 97 -4q25 0 49 1q74 3 144 5q20 1 41 1q49 0 95 -4q64 -5 114.5 -24.5t85.5 -57.5t45 -105q15 -97 17 -201v-24q0 -90 -16 -170q-18 -90 -61.5 -155t-117.5 -77q-43 -6 -105 -10q-42 -3 -85 -3q-21 0 -43 1q-64 2 -123.5 9t-91.5 22q-59 25 -90 84t-35 127z M3506 262v787q0 23 19 28q61 -9 126 -9q37 0 75 3q106 8 203 10h18q86 1 157 -17q78 -20 119 -87q37 -61 39 -147v-34q0 -70 -6 -146q-8 -96 -15 -196q-2 -31 -2 -60q0 -68 11 -132h-170v608q-29 25 -76 32q-41 6 -88 6h-14q-54 -1 -111 -4q-19 -1 -37 -1q-36 0 -70 4 q-8 -75 -9 -155q0 -40 -0.5 -81t0.5 -82q1 -83 2 -165v-54q0 -54 -1 -108h-170zM4363 639q-2 36 -1.5 70.5t1.5 66.5q3 66 12.5 120t25.5 81q25 43 67.5 61.5t110.5 28.5q61 8 134 12q36 2 71.5 2t69.5 -2q68 -4 123 -19.5t86 -45.5q16 -16 29.5 -62.5t22.5 -108t12 -131.5 q2 -53 2 -104v-34q-1 -66 -8 -120.5t-21 -84.5q-10 -16 -35 -41l-29 -29q-29 -18 -78 -31q-50 -12 -110 -17q-43 -4 -88 -4q-18 0 -36 1q-64 2 -123 11t-105 25.5t-68 41.5q-18 18 -31.5 66t-22 111.5t-11.5 135.5zM4540 664.5q0 -60.5 6.5 -118t16.5 -95.5q33 -10 85 -16.5 t107.5 -6.5t104.5 6t78 25q4 45 8 102t4 116.5t-4 115t-16 96.5q-37 4 -87.5 8t-102.5 4t-99 -5t-78 -17q-12 -39 -17.5 -96.5t-5.5 -118zM5224 907v160q10 10 31 9t41 1v312h160v-304q17 -12 42 -12q10 0 20 2q24 4 46 4q14 0 27 -2v-180h-135v-635h-160v627q-4 8 -14 9 t-21.5 1h-23t-13.5 8zM5674 560q-2 34 -2 68q0 36 2 72q3 72 10 135.5t20.5 111.5t29.5 67q23 23 71 39t109 25q62 8 128 10q11 0 23 1q55 -1 105 -7q62 -8 112 -23t77 -37q43 -36 59 -98q11 -43 11 -89q-1 -19 -3 -37q-6 -64 -34.5 -119.5t-75.5 -76.5q-49 -23 -98 -25 q-13 -1 -26 -1q-38 0 -76 4q-52 6 -108 10q-16 1 -32 1q-40 0 -82 -7v170q29 3 60 3q15 0 31 -1q47 -2 95 -3h24q35 0 66 2q42 3 74 17q6 18 9.5 50t-9.5 48q-29 20 -76 26q-36 5 -76 5h-25q-54 -2 -107.5 -6t-91.5 -6q-12 -41 -16.5 -96.5t-4.5 -113.5t4 -116.5t8 -103.5 q45 -23 105 -27q48 -3 102 -3h26q68 1 137 5q28 2 54 2q39 0 76 -4v-170q-56 6 -114 6q-41 0 -83 -3q-100 -7 -189 -7t-159.5 19.5t-105.5 82.5q-14 25 -22.5 78.5t-11.5 121.5z" />
<glyph unicode="b" horiz-adv-x="1771" d="M8 912q14 94 54 172.5t107 130t155 53.5q59 80 97 182q28 76 28 180q0 35 -3 74q-53 8 -117.5 18.5t-118.5 32t-85 57.5q-19 22 -19 52q0 19 7 41q8 31 33.5 41t59.5 11h23q25 0 51 -1h19q30 0 59 4q35 6 64 20.5t56.5 28.5t55 23.5t58.5 5.5q47 -31 68.5 -88.5 t31.5 -122.5q35 -8 66 -8q18 0 34 3q46 7 86 18q40 12 82 18q13 2 25 1q31 0 66 -10q23 53 50 76t67 32t95.5 14t133.5 24q33 6 71.5 22.5t75.5 25.5q20 5 37 5q15 0 29 -4q30 -8 45 -49q9 -27 9 -48q0 -28 -14 -47q-26 -34 -72 -54.5t-98.5 -36t-82.5 -40.5 q-41 -31 -77 -93t-63.5 -142t-46 -170t-20.5 -176v-23q0 -73 11 -136q13 -73 50 -120q66 -16 134.5 -50t128 -84t103.5 -114.5t60 -142.5q9 -46 9 -91q0 -15 -1 -31q-4 -60 -22 -112.5t-49 -91t-72 -55.5q-47 -18 -87 -18q-23 -1 -43 5q-56 16 -99 57.5t-72 99t-45 114.5 q1 -12 1 -23q0 -87 -40 -166q-45 -89 -117 -144q-72 -54 -162 -61q-9 -1 -18 -1q-80 0 -155 59q-45 37 -64.5 92.5t-35 116t-36 117.5t-65.5 98q-12 1 -24 1q-35 0 -66 -5q-41 -6 -76 -11q-34 -5 -68 -6h-6q-31 0 -63 11q-82 29 -128 99q-47 69 -63 157q-9 47 -8 96 q-1 43 6 87zM391 1055q14 -3 26 -3q31 0 43 24q8 16 8 32q0 18 -9 37q-41 0 -54.5 -25.5t-13.5 -64.5zM614 1559q-5 -17 -5 -32q1 -21 11 -36q18 -25 46 -32t62 -2t54 22q-3 31 -3 58q1 53 11 97q16 66 27 135q-14 8 -35.5 11.5t-42 1.5t-37 -11.5t-20.5 -23.5h7 q37 1 57 -19q22 -22 25 -52q1 -6 0 -13q0 -25 -9 -51q-12 -33 -34.5 -54.5t-52.5 -24.5h-6q-27 0 -55 26zM705 528q25 -43 40 -96t37 -99t60 -77q35 -29 100 -29h8q23 23 32 55q8 28 8 59v7q-1 35 -11 68t-29 57q-29 8 -61.5 13.5t-65 10.5t-63.5 12t-55 19zM838 1559 q-2 -7 -2 -13q0 -10 4 -16q6 -10 14 -17.5t16.5 -14.5t12.5 -19q36 -10 65 -10q36 -1 62 15q46 28 66 78q14 36 15 77q-1 15 -3 31q-8 58 -34 98t-70 48q-5 1 -11 0q-40 0 -90 -47q37 4 57.5 -8t32.5 -35q6 -21 6 -42q1 -24 -7 -48q-14 -45 -44 -67q-10 -16 -26.5 -13t-31 9 t-24.5 9q-8 2 -8 -10v-5zM1108 573q41 -14 70.5 -47.5t52 -76.5t42 -90.5t42 -87.5t53.5 -67.5t74 -31.5q9 -1 18 0q28 0 52 8q32 12 56.5 36t41 53.5t22.5 58.5q9 42 9 82q1 53 -15 104q-26 88 -82.5 156.5t-131.5 113.5t-148 58q-4 -29 -14.5 -52.5t-8.5 -58.5 q51 -12 99.5 -37.5t84 -62.5t55.5 -83q19 -42 19 -88v-9q-31 45 -79 99t-101 85q-43 25 -88 25q-11 0 -21 -2q-56 -8 -102 -85z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#x2000;" horiz-adv-x="1024" />
<glyph unicode="&#x2001;" horiz-adv-x="2048" />
<glyph unicode="&#x2002;" horiz-adv-x="1024" />
<glyph unicode="&#x2003;" horiz-adv-x="2048" />
<glyph unicode="&#x2004;" horiz-adv-x="682" />
<glyph unicode="&#x2005;" />
<glyph unicode="&#x2006;" horiz-adv-x="341" />
<glyph unicode="&#x2007;" horiz-adv-x="341" />
<glyph unicode="&#x2008;" horiz-adv-x="256" />
<glyph unicode="&#x2009;" horiz-adv-x="409" />
<glyph unicode="&#x200a;" horiz-adv-x="113" />
<glyph unicode="&#x202f;" horiz-adv-x="409" />
<glyph unicode="&#x205f;" />
<glyph unicode="&#x25fc;" horiz-adv-x="1024" d="M0 0z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -1 +0,0 @@
leanote logo is designed by jaguarWang(https://github.com/jaguarWang)

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because one or more lines are too long

View File

@@ -226,6 +226,10 @@ var Resize = {
$t.removeClass('open');//.addClass('close');
self.rightColumn.find('.layout-resizer').removeClass('open');
$('.preview-container').hide();
if(MD) {
MD.resize();
}
} else {
$t.addClass('open');
self.rightColumn.find('.layout-resizer').addClass('open');
@@ -233,8 +237,8 @@ var Resize = {
$('.preview-container').show();
self.rightColumn.css('left', everLeftWidth).width('auto');
if(MD) {
MD.onResize();
if(MD) {
MD.resize();
}
}
});
@@ -528,8 +532,7 @@ function initEditor() {
// content_css 不再需要
// content_css : [LEA.sPath + "/css/editor/editor.css"], // .concat(em.getWritingCss()),
skin : "custom",
// tinymce just support en & zh lang currently
language: LEA.locale != 'en' && LEA.locale != 'zh' ? 'en' : LEA.locale,
language: LEA.locale, // 语言
plugins : [
"autolink link leaui_image lists hr", "paste",
"searchreplace leanote_nav leanote_code tabfocus",

Some files were not shown because too many files have changed in this diff Show More