Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc4b003503 | ||
|
|
091922175a | ||
|
|
371c93912d | ||
|
|
27221acda7 | ||
|
|
5db724e80b | ||
|
|
5c9e95ed60 | ||
|
|
2fc97ed42d | ||
|
|
45cca30cec | ||
|
|
31167b6aaf | ||
|
|
139906b9d6 | ||
|
|
a9d49369e2 | ||
|
|
303e0da5c0 | ||
|
|
ff5523bfaa | ||
|
|
063dd0140d | ||
|
|
c52d388d5d | ||
|
|
18bcdb48af | ||
|
|
db8f132507 | ||
|
|
439d5212b0 | ||
|
|
88e2320027 | ||
|
|
659a4e590a | ||
|
|
ab7f2386e0 | ||
|
|
ec82ff18f2 | ||
|
|
f3f00626e6 | ||
|
|
80fbb56426 | ||
|
|
a5c952882f | ||
|
|
973b452a7e | ||
|
|
25bcd21ea9 | ||
|
|
09de5e1e83 | ||
|
|
15b0ef21ff | ||
|
|
9cf9ded855 | ||
|
|
7af433ebaf | ||
|
|
67b608b324 | ||
|
|
2aa3f5a654 | ||
|
|
f5538218bd | ||
|
|
0e3bdd177c | ||
|
|
12520cc09d | ||
|
|
cb67892124 | ||
|
|
45c09c9a26 | ||
|
|
20951ea2dd |
50
Gulpfile.js
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
24
app/init.go
@@ -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
@@ -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, ""
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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ês</a>
|
||||
<a data-lang="zh-hk">繁体中文</a>
|
||||
<a data-lang="pt-pt">Portuguê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}}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
179
messages/en-us/tinymce_editor.conf
Normal 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
|
||||
@@ -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.
|
||||
179
messages/fr-fr/tinymce_editor.conf
Normal 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
|
||||
@@ -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
|
||||
179
messages/pt-pt/tinymce_editor.conf
Normal 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
|
||||
@@ -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=帮助
|
||||
186
messages/zh-cn/tinymce_editor.conf
Normal 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
@@ -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
@@ -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
|
||||
35
messages/zh-hk/markdown.conf
Normal 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
@@ -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
@@ -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]
|
||||
186
messages/zh-hk/tinymce_editor.conf
Normal 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=格式
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
html {
|
||||
border: none;
|
||||
}
|
||||
body {
|
||||
background-color: #fbfcf7;
|
||||
}
|
||||
* {
|
||||
font-size: 16px;
|
||||
}
|
||||
pre {
|
||||
font-size: 14px;
|
||||
}
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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: "";
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
51
public/css/theme/includes/icon.less
Normal 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";
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -41,6 +41,7 @@
|
||||
padding: 8px;
|
||||
line-height: 20px;
|
||||
vertical-align: top;
|
||||
word-break: break-all;
|
||||
}
|
||||
td {
|
||||
max-width: 280px;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 13 KiB |
BIN
public/fonts/leanote-font3/leanote.eot
Executable file
16
public/fonts/leanote-font3/leanote.svg
Executable file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/fonts/leanote-font3/leanote.ttf
Executable file
BIN
public/fonts/leanote-font3/leanote.woff
Executable 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="
" />
|
||||
<glyph horiz-adv-x="0" />
|
||||
<glyph horiz-adv-x="0" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode=""" 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=" " />
|
||||
<glyph unicode=" " horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="2048" />
|
||||
<glyph unicode=" " horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="2048" />
|
||||
<glyph unicode=" " horiz-adv-x="682" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode=" " horiz-adv-x="341" />
|
||||
<glyph unicode=" " horiz-adv-x="341" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="409" />
|
||||
<glyph unicode=" " horiz-adv-x="113" />
|
||||
<glyph unicode=" " horiz-adv-x="409" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="◼" horiz-adv-x="1024" d="M0 0z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
@@ -1 +0,0 @@
|
||||
leanote logo is designed by jaguarWang(https://github.com/jaguarWang)
|
||||
BIN
public/images/logo/leanote-blue.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
public/images/logo/leanote-old.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 15 KiB |
BIN
public/images/logo/leanote_icon_blue-old.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 51 KiB |
2
public/js/app.min.js
vendored
@@ -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",
|
||||
|
||||