├── .DS_Store ├── README.md ├── blog ├── conf └── app.conf ├── controllers ├── album.go ├── article.go ├── base.go ├── comment.go ├── default.go └── user.go ├── initial ├── .DS_Store ├── blog.sql ├── init.go ├── sql.go └── tplfunc.go ├── main.go ├── models ├── album.go ├── article.go ├── comment.go └── user.go ├── routers └── router.go ├── static ├── .DS_Store ├── css │ ├── .DS_Store │ ├── blog.css │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ └── bootstrap.min.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── img │ └── avatar │ │ ├── 0.jpg │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ └── 5.jpg ├── js │ ├── .DS_Store │ ├── blog.js │ ├── bootstrap-fileinput-master │ │ ├── .gitignore │ │ ├── CHANGE.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── composer.json │ │ ├── css │ │ │ ├── fileinput.css │ │ │ └── fileinput.min.css │ │ ├── examples │ │ │ └── index.html │ │ ├── img │ │ │ ├── loading-sm.gif │ │ │ └── loading.gif │ │ ├── js │ │ │ ├── fileinput.js │ │ │ ├── fileinput.min.js │ │ │ ├── locales │ │ │ │ ├── LANG.js │ │ │ │ ├── ar.js │ │ │ │ ├── bg.js │ │ │ │ ├── ca.js │ │ │ │ ├── cr.js │ │ │ │ ├── cz.js │ │ │ │ ├── da.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── es.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr.js │ │ │ │ ├── hu.js │ │ │ │ ├── id.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── nl.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-BR.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── sk.js │ │ │ │ ├── th.js │ │ │ │ ├── tr.js │ │ │ │ ├── uk.js │ │ │ │ ├── zh-TW.js │ │ │ │ └── zh.js │ │ │ └── plugins │ │ │ │ ├── canvas-to-blob.js │ │ │ │ ├── canvas-to-blob.min.js │ │ │ │ ├── purify.js │ │ │ │ ├── purify.min.js │ │ │ │ ├── sortable.js │ │ │ │ └── sortable.min.js │ │ ├── nuget │ │ │ ├── Package.nuspec │ │ │ └── build.bat │ │ ├── package.json │ │ ├── sass │ │ │ └── fileinput.scss │ │ └── themes │ │ │ ├── fa │ │ │ └── fa.js │ │ │ └── gly │ │ │ └── gly.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── jquery.min.js │ ├── jquery.url.js │ ├── jquery.validate.js │ ├── lightbox │ │ ├── css │ │ │ ├── lightbox.css │ │ │ └── lightbox.min.css │ │ ├── images │ │ │ ├── close.png │ │ │ ├── loading.gif │ │ │ ├── next.png │ │ │ └── prev.png │ │ └── js │ │ │ ├── lightbox-plus-jquery.js │ │ │ ├── lightbox-plus-jquery.min.js │ │ │ ├── lightbox-plus-jquery.min.map │ │ │ ├── lightbox.js │ │ │ ├── lightbox.min.js │ │ │ └── lightbox.min.map │ └── npm.js ├── keditor │ ├── kindeditor-min.js │ ├── lang │ │ ├── en.js │ │ ├── zh_CN.js │ │ └── zh_TW.js │ ├── php │ │ ├── JSON.php │ │ ├── demo.php │ │ ├── file_manager_json.php │ │ └── upload_json.php │ ├── plugins │ │ ├── anchor │ │ │ └── anchor.js │ │ ├── baidumap │ │ │ ├── baidumap.js │ │ │ └── map.html │ │ ├── clearhtml │ │ │ └── clearhtml.js │ │ ├── code │ │ │ ├── code.js │ │ │ ├── prettify.css │ │ │ └── prettify.js │ │ ├── emoticons │ │ │ ├── emoticons.js │ │ │ └── images │ │ │ │ ├── 0.gif │ │ │ │ ├── 1.gif │ │ │ │ ├── 10.gif │ │ │ │ ├── 100.gif │ │ │ │ ├── 101.gif │ │ │ │ ├── 102.gif │ │ │ │ ├── 103.gif │ │ │ │ ├── 104.gif │ │ │ │ ├── 105.gif │ │ │ │ ├── 106.gif │ │ │ │ ├── 107.gif │ │ │ │ ├── 108.gif │ │ │ │ ├── 109.gif │ │ │ │ ├── 11.gif │ │ │ │ ├── 110.gif │ │ │ │ ├── 111.gif │ │ │ │ ├── 112.gif │ │ │ │ ├── 113.gif │ │ │ │ ├── 114.gif │ │ │ │ ├── 115.gif │ │ │ │ ├── 116.gif │ │ │ │ ├── 117.gif │ │ │ │ ├── 118.gif │ │ │ │ ├── 119.gif │ │ │ │ ├── 12.gif │ │ │ │ ├── 120.gif │ │ │ │ ├── 121.gif │ │ │ │ ├── 122.gif │ │ │ │ ├── 123.gif │ │ │ │ ├── 124.gif │ │ │ │ ├── 125.gif │ │ │ │ ├── 126.gif │ │ │ │ ├── 127.gif │ │ │ │ ├── 128.gif │ │ │ │ ├── 129.gif │ │ │ │ ├── 13.gif │ │ │ │ ├── 130.gif │ │ │ │ ├── 131.gif │ │ │ │ ├── 132.gif │ │ │ │ ├── 133.gif │ │ │ │ ├── 134.gif │ │ │ │ ├── 14.gif │ │ │ │ ├── 15.gif │ │ │ │ ├── 16.gif │ │ │ │ ├── 17.gif │ │ │ │ ├── 18.gif │ │ │ │ ├── 19.gif │ │ │ │ ├── 2.gif │ │ │ │ ├── 20.gif │ │ │ │ ├── 21.gif │ │ │ │ ├── 22.gif │ │ │ │ ├── 23.gif │ │ │ │ ├── 24.gif │ │ │ │ ├── 25.gif │ │ │ │ ├── 26.gif │ │ │ │ ├── 27.gif │ │ │ │ ├── 28.gif │ │ │ │ ├── 29.gif │ │ │ │ ├── 3.gif │ │ │ │ ├── 30.gif │ │ │ │ ├── 31.gif │ │ │ │ ├── 32.gif │ │ │ │ ├── 33.gif │ │ │ │ ├── 34.gif │ │ │ │ ├── 35.gif │ │ │ │ ├── 36.gif │ │ │ │ ├── 37.gif │ │ │ │ ├── 38.gif │ │ │ │ ├── 39.gif │ │ │ │ ├── 4.gif │ │ │ │ ├── 40.gif │ │ │ │ ├── 41.gif │ │ │ │ ├── 42.gif │ │ │ │ ├── 43.gif │ │ │ │ ├── 44.gif │ │ │ │ ├── 45.gif │ │ │ │ ├── 46.gif │ │ │ │ ├── 47.gif │ │ │ │ ├── 48.gif │ │ │ │ ├── 49.gif │ │ │ │ ├── 5.gif │ │ │ │ ├── 50.gif │ │ │ │ ├── 51.gif │ │ │ │ ├── 52.gif │ │ │ │ ├── 53.gif │ │ │ │ ├── 54.gif │ │ │ │ ├── 55.gif │ │ │ │ ├── 56.gif │ │ │ │ ├── 57.gif │ │ │ │ ├── 58.gif │ │ │ │ ├── 59.gif │ │ │ │ ├── 6.gif │ │ │ │ ├── 60.gif │ │ │ │ ├── 61.gif │ │ │ │ ├── 62.gif │ │ │ │ ├── 63.gif │ │ │ │ ├── 64.gif │ │ │ │ ├── 65.gif │ │ │ │ ├── 66.gif │ │ │ │ ├── 67.gif │ │ │ │ ├── 68.gif │ │ │ │ ├── 69.gif │ │ │ │ ├── 7.gif │ │ │ │ ├── 70.gif │ │ │ │ ├── 71.gif │ │ │ │ ├── 72.gif │ │ │ │ ├── 73.gif │ │ │ │ ├── 74.gif │ │ │ │ ├── 75.gif │ │ │ │ ├── 76.gif │ │ │ │ ├── 77.gif │ │ │ │ ├── 78.gif │ │ │ │ ├── 79.gif │ │ │ │ ├── 8.gif │ │ │ │ ├── 80.gif │ │ │ │ ├── 81.gif │ │ │ │ ├── 82.gif │ │ │ │ ├── 83.gif │ │ │ │ ├── 84.gif │ │ │ │ ├── 85.gif │ │ │ │ ├── 86.gif │ │ │ │ ├── 87.gif │ │ │ │ ├── 88.gif │ │ │ │ ├── 89.gif │ │ │ │ ├── 9.gif │ │ │ │ ├── 90.gif │ │ │ │ ├── 91.gif │ │ │ │ ├── 92.gif │ │ │ │ ├── 93.gif │ │ │ │ ├── 94.gif │ │ │ │ ├── 95.gif │ │ │ │ ├── 96.gif │ │ │ │ ├── 97.gif │ │ │ │ ├── 98.gif │ │ │ │ ├── 99.gif │ │ │ │ └── static.gif │ │ ├── filemanager │ │ │ ├── filemanager.js │ │ │ └── images │ │ │ │ ├── file-16.gif │ │ │ │ ├── file-64.gif │ │ │ │ ├── folder-16.gif │ │ │ │ ├── folder-64.gif │ │ │ │ └── go-up.gif │ │ ├── flash │ │ │ └── flash.js │ │ ├── hide │ │ │ └── hide.js │ │ ├── image │ │ │ ├── image.js │ │ │ └── images │ │ │ │ ├── align_left.gif │ │ │ │ ├── align_right.gif │ │ │ │ ├── align_top.gif │ │ │ │ └── refresh.png │ │ ├── insertfile │ │ │ └── insertfile.js │ │ ├── lineheight │ │ │ └── lineheight.js │ │ ├── link │ │ │ └── link.js │ │ ├── map │ │ │ ├── map.html │ │ │ └── map.js │ │ ├── media │ │ │ └── media.js │ │ ├── multiimage │ │ │ ├── images │ │ │ │ ├── image.png │ │ │ │ ├── select-files-en.png │ │ │ │ ├── select-files-zh_CN.png │ │ │ │ └── swfupload.swf │ │ │ └── multiimage.js │ │ ├── pagebreak │ │ │ └── pagebreak.js │ │ ├── plainpaste │ │ │ └── plainpaste.js │ │ ├── preview │ │ │ └── preview.js │ │ ├── quickformat │ │ │ └── quickformat.js │ │ ├── table │ │ │ └── table.js │ │ ├── template │ │ │ ├── html │ │ │ │ ├── 1.html │ │ │ │ ├── 2.html │ │ │ │ └── 3.html │ │ │ └── template.js │ │ └── wordpaste │ │ │ └── wordpaste.js │ └── themes │ │ ├── common │ │ ├── anchor.gif │ │ ├── blank.gif │ │ ├── flash.gif │ │ ├── loading.gif │ │ ├── media.gif │ │ └── rm.gif │ │ ├── default │ │ ├── background.png │ │ ├── default.css │ │ └── default.png │ │ ├── qq │ │ ├── editor.gif │ │ └── qq.css │ │ └── simple │ │ └── simple.css └── uploadfile │ └── 2016-6 │ ├── 7 │ ├── 0ef780a2f3bc341c2f84134bf64f9b1f.jpeg │ └── 7ce38ffb5cf3872cdb6813679298c9da.jpg │ ├── 8 │ └── 741b7c9d67caf9fd0a97c98cc4af8fe9.jpg │ ├── 13 │ ├── 6df17b2e5bee99079bcf5b6370573f7e.jpg │ └── 8cf452b7a340b9af24691790744b2e2f.jpg │ └── 18 │ ├── 15e85af2d07a821080fb6042740dcfef.jpg │ ├── 30a0c19a0bc631b17c153305e4057bf9.jpg │ ├── 36e0eb3e0c79a5a42f6b6a3d3d86acd0.jpg │ ├── 3cfff060d836fbc1d0b24d7a0983acf7.jpg │ ├── 3d512592859aa84faa56603b11477ab5.jpg │ ├── 4be52d99a87a6814ba69966e91d5141e.jpg │ ├── 4d6d51f99879a58555491b00afabc2c4.jpg │ ├── 8227b410299a80e1c27b2a8ca3ac0e4f.jpg │ ├── aa6fb96a694becb35a59551a59b42e8f.jpg │ └── d821b0af29253b87dd81dd507ccd4dd4.jpg ├── tests ├── .DS_Store └── default_test.go ├── tmp ├── .DS_Store └── f │ ├── .DS_Store │ └── a │ ├── .DS_Store │ └── faa1a85ca3f007a21047f1d8172b3e8a ├── utils └── function.go └── views ├── .DS_Store ├── 404.tpl ├── about.tpl ├── album-upload.tpl ├── album.tpl ├── article-detail.tpl ├── article-form.tpl ├── article.tpl ├── inc ├── foot.tpl ├── head.tpl └── meta.tpl ├── index.tpl └── login.tpl /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Beego Blog 2 | 3 | #介绍 4 | 这是一个轻便的Blog,里博客,相册,登录~ 5 | 数据库:在initial/blog.sql,自行导入。 6 | 用户名和密码:13888888888,123456 7 | 8 | -------------------------------------------------------------------------------- /blog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/blog -------------------------------------------------------------------------------- /conf/app.conf: -------------------------------------------------------------------------------- 1 | appname = blog 2 | httpport = 8080 3 | #runmode = pro 4 | runmode = dev 5 | copyrequestbody = true 6 | 7 | 8 | mysqluser = "root" 9 | mysqlpass = "" 10 | mysqlurls = "127.0.0.1" 11 | mysqldb = "blog" 12 | mysqlport = "3306" 13 | 14 | pageoffset = 9 15 | 16 | sessionon = true 17 | #sessionprovider = memory 18 | sessionprovider = file 19 | sessionproviderconfig = "./tmp" 20 | sessiongcmaxlifetime = 31536000 21 | sessioncookielifetime = 31536000 22 | 23 | 24 | globaltitle = "Lock的博客" 25 | globalkeyword = "Lock博客,记录生活" 26 | globaldesp = "记录生活的点点滴滴" -------------------------------------------------------------------------------- /controllers/album.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "fmt" 5 | "strings" 6 | 7 | . "github.com/lock-upme/beegoblog/models" 8 | 9 | "github.com/astaxie/beego" 10 | "github.com/astaxie/beego/utils/pagination" 11 | ) 12 | 13 | //upload 14 | type UploadAlbumController struct { 15 | BaseController 16 | } 17 | 18 | func (this *UploadAlbumController) Get() { 19 | if !this.isLogin { 20 | this.Redirect("/login", 302) 21 | return 22 | } 23 | this.TplName = "album-upload.tpl" 24 | } 25 | 26 | //修改blog 27 | type EditAlbumController struct { 28 | BaseController 29 | } 30 | 31 | func (this *EditAlbumController) Post() { 32 | id, err := this.GetInt("id") 33 | title := this.GetString("title") 34 | summary := this.GetString("summary") 35 | status, _ := this.GetInt("status") 36 | 37 | if "" == title { 38 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "请填写标题"} 39 | this.ServeJSON() 40 | } 41 | _, errAttr := GetAlbum(id) 42 | if errAttr != nil { 43 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "相册不存在"} 44 | this.ServeJSON() 45 | } 46 | 47 | var alb Album 48 | alb.Title = title 49 | alb.Summary = summary 50 | alb.Status = status 51 | 52 | err = UpdateAlbum(id, alb) 53 | 54 | if err == nil { 55 | this.Data["json"] = map[string]interface{}{"code": 1, "message": "相册修改成功", "id": id} 56 | } else { 57 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "相册修改出错"} 58 | } 59 | this.ServeJSON() 60 | } 61 | 62 | //列表 63 | type ListAlbumController struct { 64 | BaseController 65 | } 66 | 67 | func (this *ListAlbumController) Get() { 68 | 69 | //添加上传的图片到表 70 | str := this.GetSession("uploadMultiPic") 71 | if str != nil { 72 | str = strings.Trim(str.(string), "||") 73 | strPic := strings.Split(str.(string), "||") 74 | 75 | strn := this.GetSession("uploadMultiName") 76 | strn = strings.Trim(strn.(string), "||") 77 | strName := strings.Split(strn.(string), "||") 78 | 79 | //fmt.Println(strName) 80 | 81 | for i, pic := range strPic { 82 | var alb Album 83 | alb.Picture = pic 84 | alb.Title = strName[i] 85 | alb.Status = 1 86 | 87 | _, err2 := AddAlbum(alb) 88 | fmt.Println(err2) 89 | } 90 | this.DelSession("uploadMultiName") 91 | this.DelSession("uploadMultiPic") 92 | } 93 | 94 | page, err1 := this.GetInt("p") 95 | title := this.GetString("title") 96 | keywords := this.GetString("keywords") 97 | status := this.GetString("status") 98 | if err1 != nil { 99 | page = 1 100 | } 101 | 102 | offset, err2 := beego.AppConfig.Int("pageoffset") 103 | if err2 != nil { 104 | offset = 9 105 | } 106 | 107 | condArr := make(map[string]string) 108 | condArr["title"] = title 109 | condArr["keywords"] = keywords 110 | if !this.isLogin { 111 | condArr["status"] = "1" 112 | } else { 113 | condArr["status"] = status 114 | } 115 | countAlbum := CountAlbum(condArr) 116 | 117 | paginator := pagination.SetPaginator(this.Ctx, offset, countAlbum) 118 | _, _, alb := ListAlbum(condArr, page, offset) 119 | 120 | fmt.Println(countAlbum) 121 | 122 | this.Data["paginator"] = paginator 123 | this.Data["alb"] = alb 124 | this.TplName = "album.tpl" 125 | } 126 | -------------------------------------------------------------------------------- /controllers/base.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | ) 6 | 7 | type BaseController struct { 8 | beego.Controller 9 | isLogin bool 10 | } 11 | 12 | func (this *BaseController) Prepare() { 13 | userLogin := this.GetSession("userLogin") 14 | if userLogin == nil { 15 | this.isLogin = false 16 | } else { 17 | this.isLogin = true 18 | } 19 | this.Data["isLogin"] = this.isLogin 20 | } 21 | 22 | func (this *BaseController) Go404() { 23 | this.TplName = "404.tpl" 24 | return 25 | } 26 | -------------------------------------------------------------------------------- /controllers/comment.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "time" 5 | 6 | . "github.com/lock-upme/beegoblog/models" 7 | ) 8 | 9 | //添加评论 10 | type AddCommentController struct { 11 | BaseController 12 | } 13 | 14 | func (this *AddCommentController) Post() { 15 | /*if !this.isLogin { 16 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "请先登录"} 17 | this.ServeJSON() 18 | return 19 | }*/ 20 | nickname := this.GetString("nickname") 21 | article_id, _ := this.GetInt("article_id") 22 | content := this.GetString("content") 23 | uri := this.GetString("uri") 24 | 25 | if "" == nickname { 26 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "请填写昵称"} 27 | this.ServeJSON() 28 | return 29 | } 30 | 31 | if "" == content { 32 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "请填写内容"} 33 | this.ServeJSON() 34 | return 35 | } 36 | 37 | var com Comment 38 | com.Nickname = nickname 39 | com.ArticleId = article_id 40 | com.Uri = uri 41 | com.Content = content 42 | com.Status = 1 43 | com.Created = time.Now().Unix() 44 | 45 | id, err := AddComment(com) 46 | if err == nil { 47 | this.Data["json"] = map[string]interface{}{"code": 1, "message": "评论添加成功", "id": id} 48 | } else { 49 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "评论添加出错"} 50 | } 51 | this.ServeJSON() 52 | } 53 | 54 | //修改 55 | type EditCommentController struct { 56 | BaseController 57 | } 58 | 59 | func (this *EditCommentController) Post() { 60 | if !this.isLogin { 61 | this.Data["json"] = map[string]interface{}{"code": 0, "message": this.isLogin} 62 | this.ServeJSON() 63 | return 64 | } 65 | id, _ := this.GetInt("id") 66 | status, _ := this.GetInt("status") 67 | 68 | var com Comment 69 | com.Status = status 70 | 71 | err := UpdateComment(id, com) 72 | 73 | if err == nil { 74 | this.Data["json"] = map[string]interface{}{"code": 1, "message": "状态更新成功", "id": id} 75 | } else { 76 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "状态修改失败"} 77 | } 78 | this.ServeJSON() 79 | } 80 | -------------------------------------------------------------------------------- /controllers/user.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | . "github.com/lock-upme/beegoblog/models" 5 | //"strconv" 6 | 7 | //"github.com/astaxie/beego" 8 | ) 9 | 10 | //login 11 | type LoginUserController struct { 12 | //beego.Controller 13 | BaseController 14 | } 15 | 16 | func (this *LoginUserController) Get() { 17 | check := this.isLogin 18 | if check { 19 | this.Redirect("/article", 302) 20 | } else { 21 | this.TplName = "login.tpl" 22 | } 23 | 24 | } 25 | 26 | func (this *LoginUserController) Post() { 27 | phone := this.GetString("phone") 28 | password := this.GetString("password") 29 | 30 | if "" == phone { 31 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "请填写手机号"} 32 | this.ServeJSON() 33 | } 34 | 35 | if "" == password { 36 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "请填写密码"} 37 | this.ServeJSON() 38 | } 39 | 40 | err, user := LoginUser(phone, password) 41 | 42 | if err == nil { 43 | this.SetSession("userLogin", "1") 44 | this.Data["json"] = map[string]interface{}{"code": 1, "message": "贺喜你,登录成功", "user": user} 45 | } else { 46 | this.Data["json"] = map[string]interface{}{"code": 0, "message": "登录失败"} 47 | } 48 | this.ServeJSON() 49 | } 50 | 51 | //logout 52 | 53 | type LogoutUserController struct { 54 | BaseController 55 | } 56 | 57 | func (this *LogoutUserController) Get() { 58 | this.DelSession("userLogin") 59 | //this.Ctx.WriteString("you have logout") 60 | this.Redirect("/article", 302) 61 | 62 | } 63 | 64 | //about me 65 | type AboutUserController struct { 66 | BaseController 67 | } 68 | 69 | func (this *AboutUserController) Get() { 70 | 71 | id := 1 72 | 73 | pro, err := GetProfile(id) 74 | if err != nil { 75 | this.Redirect("/404.html", 302) 76 | } 77 | this.Data["pro"] = pro 78 | this.TplName = "about.tpl" 79 | } 80 | -------------------------------------------------------------------------------- /initial/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/initial/.DS_Store -------------------------------------------------------------------------------- /initial/init.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | func init() { 4 | InitSql() 5 | InitTplFunc() 6 | } 7 | -------------------------------------------------------------------------------- /initial/sql.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/astaxie/beego" 7 | "github.com/astaxie/beego/orm" 8 | _ "github.com/go-sql-driver/mysql" 9 | ) 10 | 11 | func InitSql() { 12 | user := beego.AppConfig.String("mysqluser") 13 | passwd := beego.AppConfig.String("mysqlpass") 14 | host := beego.AppConfig.String("mysqlurls") 15 | port, err := beego.AppConfig.Int("mysqlport") 16 | dbname := beego.AppConfig.String("mysqldb") 17 | if nil != err { 18 | port = 3306 19 | } 20 | orm.Debug = true 21 | orm.RegisterDriver("mysql", orm.DRMySQL) 22 | //orm.RegisterDataBase("default", "mysql", "root:@/blog?charset=utf8", 30) 23 | orm.RegisterDataBase("default", "mysql", fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8", user, passwd, host, port, dbname)) 24 | 25 | } 26 | -------------------------------------------------------------------------------- /initial/tplfunc.go: -------------------------------------------------------------------------------- 1 | package initial 2 | 3 | import ( 4 | "github.com/lock-upme/beegoblog/utils" 5 | 6 | "github.com/astaxie/beego" 7 | ) 8 | 9 | func InitTplFunc() { 10 | beego.AddFuncMap("date_mh", utils.GetDateMH) 11 | beego.AddFuncMap("date", utils.GetDate) 12 | beego.AddFuncMap("avatar", utils.GetGravatar) 13 | 14 | } 15 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | _ "github.com/lock-upme/beegoblog/routers" 5 | 6 | "html/template" 7 | "net/http" 8 | 9 | _ "github.com/lock-upme/beegoblog/initial" 10 | 11 | "github.com/astaxie/beego" 12 | ) 13 | 14 | func main() { 15 | beego.ErrorHandler("404", page_not_found) 16 | beego.Run() 17 | } 18 | 19 | func page_not_found(rw http.ResponseWriter, r *http.Request) { 20 | t, _ := template.New("404.tpl").ParseFiles("views/404.tpl") 21 | 22 | data := make(map[string]interface{}) 23 | data["content"] = "page not found" 24 | t.Execute(rw, data) 25 | } 26 | -------------------------------------------------------------------------------- /models/album.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | //"strconv" 5 | "time" 6 | 7 | "github.com/astaxie/beego/orm" 8 | _ "github.com/go-sql-driver/mysql" 9 | ) 10 | 11 | type Album struct { 12 | Id int 13 | Title string 14 | Picture string 15 | Keywords string 16 | Summary string 17 | Created int64 18 | Viewnum int 19 | Status int 20 | } 21 | 22 | func (this *Album) TableName() string { 23 | return "album" 24 | } 25 | 26 | func init() { 27 | orm.RegisterModel(new(Album)) 28 | } 29 | 30 | func GetAlbum(id int) (Album, error) { 31 | o := orm.NewOrm() 32 | o.Using("default") 33 | alb := Album{Id: id} 34 | err := o.Read(&alb) 35 | 36 | //if err == orm.ErrNoRows { 37 | //return alb, nil 38 | //} 39 | return alb, err 40 | } 41 | 42 | func UpdateAlbum(id int, updAlb Album) error { 43 | o := orm.NewOrm() 44 | o.Using("default") 45 | alb := Album{Id: id} 46 | 47 | alb.Title = updAlb.Title 48 | alb.Summary = updAlb.Summary 49 | alb.Status = updAlb.Status 50 | _, err := o.Update(&alb, "title", "summary", "status") 51 | return err 52 | } 53 | 54 | func AddAlbum(updAlb Album) (int64, error) { 55 | o := orm.NewOrm() 56 | o.Using("default") 57 | alb := new(Album) 58 | 59 | alb.Title = updAlb.Title 60 | alb.Picture = updAlb.Picture 61 | alb.Keywords = updAlb.Keywords 62 | alb.Summary = updAlb.Summary 63 | alb.Created = time.Now().Unix() 64 | alb.Viewnum = 1 65 | alb.Status = updAlb.Status 66 | 67 | id, err := o.Insert(alb) 68 | return id, err 69 | } 70 | 71 | func ListAlbum(condArr map[string]string, page int, offset int) (num int64, err error, alb []Album) { 72 | o := orm.NewOrm() 73 | qs := o.QueryTable("album") 74 | cond := orm.NewCondition() 75 | if condArr["title"] != "" { 76 | cond = cond.And("title__icontains", condArr["title"]) 77 | } 78 | if condArr["keywords"] != "" { 79 | cond = cond.Or("keywords__icontains", condArr["keywords"]) 80 | } 81 | if condArr["status"] != "" { 82 | //status, _ := strconv.Atoi(condArr["status"]) 83 | cond = cond.And("status", condArr["status"]) 84 | } 85 | qs = qs.SetCond(cond) 86 | if page < 1 { 87 | page = 1 88 | } 89 | if offset < 1 { 90 | offset = 9 91 | } 92 | start := (page - 1) * offset 93 | var albums []Album 94 | num, err1 := qs.Limit(offset, start).All(&albums) 95 | return num, err1, albums 96 | } 97 | 98 | func CountAlbum(condArr map[string]string) int64 { 99 | o := orm.NewOrm() 100 | qs := o.QueryTable("album") 101 | cond := orm.NewCondition() 102 | if condArr["title"] != "" { 103 | cond = cond.And("title__icontains", condArr["title"]) 104 | } 105 | if condArr["keywords"] != "" { 106 | cond = cond.Or("keywords__icontains", condArr["keywords"]) 107 | } 108 | if condArr["status"] != "" { 109 | cond = cond.And("status", condArr["status"]) 110 | } 111 | num, _ := qs.SetCond(cond).Count() 112 | return num 113 | } 114 | -------------------------------------------------------------------------------- /models/article.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | //"strconv" 5 | "time" 6 | 7 | "github.com/astaxie/beego/orm" 8 | _ "github.com/go-sql-driver/mysql" 9 | ) 10 | 11 | type Article struct { 12 | Id int 13 | Title string 14 | Uri string 15 | Keywords string 16 | Summary string 17 | Content string 18 | Author string 19 | Created int64 20 | Viewnum int 21 | Status int 22 | } 23 | 24 | func (this *Article) TableName() string { 25 | return "article" 26 | } 27 | 28 | func init() { 29 | //orm.RegisterDriver("mysql", orm.DRMySQL) 30 | //orm.RegisterDataBase("default", "mysql", "root:@/blog?charset=utf8", 30) 31 | orm.RegisterModel(new(Article)) 32 | //orm.RunSyncdb("default", false, true) 33 | } 34 | 35 | func GetArticle(id int) (Article, error) { 36 | o := orm.NewOrm() 37 | o.Using("default") 38 | art := Article{Id: id} 39 | err := o.Read(&art) 40 | 41 | //if err == orm.ErrNoRows { 42 | //return art, nil 43 | //} 44 | return art, err 45 | } 46 | 47 | func UpdateArticle(id int, updArt Article) error { 48 | o := orm.NewOrm() 49 | o.Using("default") 50 | art := Article{Id: id} 51 | 52 | art.Title = updArt.Title 53 | art.Uri = updArt.Uri 54 | art.Keywords = updArt.Keywords 55 | art.Summary = updArt.Summary 56 | art.Content = updArt.Content 57 | art.Author = updArt.Author 58 | art.Status = updArt.Status 59 | _, err := o.Update(&art) 60 | return err 61 | } 62 | 63 | func AddArticle(updArt Article) (int64, error) { 64 | o := orm.NewOrm() 65 | o.Using("default") 66 | art := new(Article) 67 | 68 | art.Title = updArt.Title 69 | art.Uri = updArt.Uri 70 | art.Keywords = updArt.Keywords 71 | art.Summary = updArt.Summary 72 | art.Content = updArt.Content 73 | art.Author = updArt.Author 74 | art.Created = time.Now().Unix() 75 | art.Viewnum = 1 76 | art.Status = updArt.Status 77 | 78 | id, err := o.Insert(art) 79 | return id, err 80 | } 81 | 82 | func ListArticle(condArr map[string]string, page int, offset int) (num int64, err error, art []Article) { 83 | o := orm.NewOrm() 84 | qs := o.QueryTable("article") 85 | cond := orm.NewCondition() 86 | if condArr["title"] != "" { 87 | cond = cond.And("title__icontains", condArr["title"]) 88 | } 89 | if condArr["keywords"] != "" { 90 | cond = cond.Or("keywords__icontains", condArr["keywords"]) 91 | } 92 | if condArr["status"] != "" { 93 | //status, _ := strconv.Atoi(condArr["status"]) 94 | cond = cond.And("status", condArr["status"]) 95 | } 96 | qs = qs.SetCond(cond) 97 | if page < 1 { 98 | page = 1 99 | } 100 | if offset < 1 { 101 | offset = 9 102 | } 103 | start := (page - 1) * offset 104 | var articles []Article 105 | num, err1 := qs.Limit(offset, start).All(&articles) 106 | return num, err1, articles 107 | } 108 | 109 | func CountArticle(condArr map[string]string) int64 { 110 | o := orm.NewOrm() 111 | qs := o.QueryTable("article") 112 | cond := orm.NewCondition() 113 | if condArr["title"] != "" { 114 | cond = cond.And("title__icontains", condArr["title"]) 115 | } 116 | if condArr["keywords"] != "" { 117 | cond = cond.Or("keywords__icontains", condArr["keywords"]) 118 | } 119 | if condArr["status"] != "" { 120 | cond = cond.And("status", condArr["status"]) 121 | } 122 | num, _ := qs.SetCond(cond).Count() 123 | return num 124 | } 125 | -------------------------------------------------------------------------------- /models/comment.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | //"strconv" 5 | "time" 6 | 7 | "github.com/astaxie/beego/orm" 8 | _ "github.com/go-sql-driver/mysql" 9 | ) 10 | 11 | type Comment struct { 12 | Id int 13 | ArticleId int 14 | Nickname string 15 | Uri string 16 | Content string 17 | Created int64 18 | Status int 19 | } 20 | 21 | func (this *Comment) TableName() string { 22 | return "comment" 23 | } 24 | 25 | func init() { 26 | orm.RegisterModel(new(Comment)) 27 | } 28 | 29 | func UpdateComment(id int, updCom Comment) error { 30 | o := orm.NewOrm() 31 | o.Using("default") 32 | com := Comment{Id: id} 33 | 34 | com.Status = updCom.Status 35 | _, err := o.Update(&com, "status") 36 | return err 37 | } 38 | 39 | func AddComment(updCom Comment) (int64, error) { 40 | o := orm.NewOrm() 41 | o.Using("default") 42 | com := new(Comment) 43 | 44 | com.ArticleId = updCom.ArticleId 45 | com.Nickname = updCom.Nickname 46 | com.Uri = updCom.Uri 47 | com.Content = updCom.Content 48 | com.Created = time.Now().Unix() 49 | com.Status = updCom.Status 50 | 51 | id, err := o.Insert(com) 52 | return id, err 53 | } 54 | 55 | func ListComment(condArr map[string]string, page int, offset int) (num int64, err error, com []Comment) { 56 | o := orm.NewOrm() 57 | qs := o.QueryTable("comment") 58 | cond := orm.NewCondition() 59 | if condArr["article_id"] != "" { 60 | cond = cond.And("article_id", condArr["article_id"]) 61 | } 62 | if condArr["status"] != "" { 63 | cond = cond.And("status", condArr["status"]) 64 | } 65 | qs = qs.SetCond(cond) 66 | if page < 1 { 67 | page = 1 68 | } 69 | if offset < 1 { 70 | offset = 9 71 | } 72 | start := (page - 1) * offset 73 | var comments []Comment 74 | num, err1 := qs.Limit(offset, start).All(&comments) 75 | return num, err1, comments 76 | } 77 | 78 | func CountComment(condArr map[string]string) int64 { 79 | o := orm.NewOrm() 80 | qs := o.QueryTable("comment") 81 | cond := orm.NewCondition() 82 | if condArr["article_id"] != "" { 83 | cond = cond.And("article_id", condArr["article_id"]) 84 | } 85 | if condArr["status"] != "" { 86 | cond = cond.And("status", condArr["status"]) 87 | } 88 | num, _ := qs.SetCond(cond).Count() 89 | return num 90 | } 91 | -------------------------------------------------------------------------------- /models/user.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/astaxie/beego/orm" 7 | "github.com/gogather/com" 8 | ) 9 | 10 | type User struct { 11 | Id int 12 | Phone string 13 | UserProfile *UserProfile `orm:"rel(one)"` 14 | Password string 15 | Status int 16 | Created int64 17 | Changed int64 18 | } 19 | type UserProfile struct { 20 | Id int 21 | Realname string 22 | Sex int 23 | Birth string 24 | Email string 25 | Phone string 26 | Address string 27 | Hobby string 28 | Intro string 29 | User *User `orm:"reverse(one)"` 30 | } 31 | 32 | func (this *User) TableName() string { 33 | return "user" 34 | } 35 | func init() { 36 | orm.RegisterModel(new(User), new(UserProfile)) // 37 | } 38 | 39 | func LoginUser(phone string, password string) (err error, user []User) { 40 | o := orm.NewOrm() 41 | qs := o.QueryTable("user") 42 | cond := orm.NewCondition() 43 | 44 | cond = cond.And("phone", phone) 45 | pwdmd5 := com.Md5(password) 46 | cond = cond.And("password", pwdmd5) 47 | cond = cond.And("status", 1) 48 | 49 | qs = qs.SetCond(cond) 50 | var users []User 51 | err1 := qs.Limit(1).One(&users) 52 | return err1, users 53 | } 54 | 55 | func GetUser(id int) (User, error) { 56 | var user User 57 | var err error 58 | o := orm.NewOrm() 59 | 60 | user = User{Id: id} 61 | err = o.Read(&user) 62 | 63 | if err == orm.ErrNoRows { 64 | return user, nil 65 | } 66 | return user, err 67 | } 68 | 69 | func GetProfile(id int) (UserProfile, error) { 70 | var pro UserProfile 71 | var err error 72 | o := orm.NewOrm() 73 | 74 | pro = UserProfile{Id: id} 75 | err = o.Read(&pro) 76 | 77 | if err == orm.ErrNoRows { 78 | return pro, nil 79 | } 80 | return pro, err 81 | } 82 | 83 | func UpdateProfile(id int, updPro UserProfile) error { 84 | var pro UserProfile 85 | o := orm.NewOrm() 86 | pro = UserProfile{Id: id} 87 | 88 | pro.Realname = updPro.Realname 89 | pro.Sex = updPro.Sex 90 | pro.Birth = updPro.Birth 91 | pro.Email = updPro.Email 92 | pro.Phone = updPro.Phone 93 | pro.Address = updPro.Address 94 | pro.Hobby = updPro.Hobby 95 | pro.Intro = updPro.Intro 96 | _, err := o.Update(&pro) 97 | return err 98 | 99 | } 100 | 101 | func UpdatePassword(id int, oldPawd string, newPwd string) error { 102 | o := orm.NewOrm() 103 | //salt := com.RandString(10) 104 | 105 | user := User{Id: id} 106 | err := o.Read(&user) 107 | if nil != err { 108 | return err 109 | } else { 110 | if user.Password == com.Md5(oldPawd) { 111 | user.Password = com.Md5(newPwd) 112 | _, err := o.Update(&user) 113 | return err 114 | } else { 115 | return fmt.Errorf("验证出错") 116 | } 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /routers/router.go: -------------------------------------------------------------------------------- 1 | package routers 2 | 3 | import ( 4 | "github.com/lock-upme/beegoblog/controllers" 5 | 6 | "github.com/astaxie/beego" 7 | ) 8 | 9 | func init() { 10 | beego.Router("/", &controllers.ListArticleController{}) 11 | beego.Router("/404.html", &controllers.BaseController{}, "*:Go404") 12 | 13 | beego.Router("/article", &controllers.ListArticleController{}) 14 | beego.Router("/article/:id", &controllers.ShowArticleController{}) 15 | 16 | beego.Router("/login", &controllers.LoginUserController{}) 17 | beego.Router("/logout", &controllers.LogoutUserController{}) 18 | 19 | beego.Router("/article/add", &controllers.AddArticleController{}) 20 | beego.Router("/article/edit/:id", &controllers.EditArticleController{}) 21 | 22 | beego.Router("/comment/add", &controllers.AddCommentController{}) 23 | beego.Router("/comment/edit/status", &controllers.EditCommentController{}) 24 | 25 | beego.Router("/album", &controllers.ListAlbumController{}) 26 | beego.Router("/album/upload", &controllers.UploadAlbumController{}) 27 | beego.Router("/album/edit", &controllers.EditAlbumController{}) 28 | 29 | beego.Router("/about", &controllers.AboutUserController{}) 30 | 31 | beego.Router("/uploadmulti", &controllers.UploadMultiController{}) 32 | beego.Router("/upload", &controllers.UploadController{}) 33 | 34 | //beego.Router("/article/ajax/add", &controllers.AddArticleController{}, "*:AddPost") 35 | //beego.Router("/article/add", &controllers.AddArticleController{}, "*:Add") 36 | } 37 | -------------------------------------------------------------------------------- /static/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/.DS_Store -------------------------------------------------------------------------------- /static/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/css/.DS_Store -------------------------------------------------------------------------------- /static/css/blog.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 70px 0; 3 | } 4 | 5 | .form-signin { 6 | max-width: 330px; 7 | padding: 15px; 8 | margin: 0 auto; 9 | } 10 | .form-signin .form-signin-heading, 11 | .form-signin .checkbox { 12 | margin-bottom: 10px; 13 | } 14 | .form-signin .checkbox { 15 | font-weight: normal; 16 | } 17 | .form-signin .form-control { 18 | position: relative; 19 | height: auto; 20 | -webkit-box-sizing: border-box; 21 | -moz-box-sizing: border-box; 22 | box-sizing: border-box; 23 | padding: 10px; 24 | font-size: 16px; 25 | } 26 | .form-signin .form-control:focus { 27 | z-index: 2; 28 | } 29 | .form-signin input[type="email"] { 30 | margin-bottom: -1px; 31 | border-bottom-right-radius: 0; 32 | border-bottom-left-radius: 0; 33 | } 34 | .form-signin input[type="password"] { 35 | margin-bottom: 10px; 36 | border-top-left-radius: 0; 37 | border-top-right-radius: 0; 38 | } 39 | .form-signin .help-block{color:#a94442;} 40 | .padtb10 {padding:10px 0;} 41 | 42 | 43 | .footer { 44 | margin-top:30px; 45 | bottom: 0; 46 | width: 100%; 47 | /* Set the fixed height of the footer here */ 48 | height: 60px; 49 | background-color: #f5f5f5; 50 | } 51 | 52 | 53 | .footer > .container { 54 | padding-right: 15px; 55 | padding-left: 15px; 56 | } -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/img/avatar/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/img/avatar/0.jpg -------------------------------------------------------------------------------- /static/img/avatar/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/img/avatar/1.jpg -------------------------------------------------------------------------------- /static/img/avatar/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/img/avatar/2.jpg -------------------------------------------------------------------------------- /static/img/avatar/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/img/avatar/3.jpg -------------------------------------------------------------------------------- /static/img/avatar/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/img/avatar/4.jpg -------------------------------------------------------------------------------- /static/img/avatar/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/img/avatar/5.jpg -------------------------------------------------------------------------------- /static/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/.DS_Store -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/.gitignore: -------------------------------------------------------------------------------- 1 | nuget/content/ 2 | nuget/bootstrap-fileinput.*.nupkg 3 | .DS_Store -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 - 2016, Kartik Visweswaran 2 | Krajee.com 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, this 12 | list of conditions and the following disclaimer in the documentation and/or 13 | other materials provided with the distribution. 14 | 15 | * Neither the names of Kartik Visweswaran or Krajee nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-fileinput", 3 | "version": "4.3.2", 4 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 5 | "authors": [ 6 | "Kartik Visweswaran " 7 | ], 8 | "description": "An enhanced HTML 5 file input for Bootstrap 3.x with file preview, multiple selection, ajax uploads, and more features.", 9 | "main": [ 10 | "./css/fileinput.min.css", 11 | "./js/fileinput.min.js" 12 | ], 13 | "keywords": [ 14 | "bootstrap", 15 | "file", 16 | "input", 17 | "preview", 18 | "image", 19 | "upload", 20 | "ajax", 21 | "multiple", 22 | "delete", 23 | "progress", 24 | "gallery" 25 | ], 26 | "dependencies": { 27 | "jquery": ">= 1.9.0", 28 | "bootstrap": "~3" 29 | }, 30 | "license": "BSD-3-Clause", 31 | "ignore": [ 32 | "**/.*", 33 | "node_modules", 34 | "composer.json", 35 | "examples", 36 | "bower_components", 37 | "test", 38 | "tests" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kartik-v/bootstrap-fileinput", 3 | "description": "An enhanced HTML 5 file input for Bootstrap 3.x with features for file preview for many file types, multiple selection, ajax uploads, and more.", 4 | "keywords": ["bootstrap", "jquery", "file", "input", "preview", "upload", "image", "multiple", "ajax", "delete", "progress"], 5 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 6 | "license": "BSD-3-Clause", 7 | "authors": [ 8 | { 9 | "name": "Kartik Visweswaran", 10 | "email": "kartikv2@gmail.com", 11 | "homepage": "http://www.krajee.com/" 12 | } 13 | ], 14 | "autoload": { 15 | "psr-4": { 16 | "kartik\\plugins\\fileinput\\": "" 17 | } 18 | }, 19 | "extra": { 20 | "branch-alias": { 21 | "dev-master": "4.3.x-dev" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/img/loading-sm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/bootstrap-fileinput-master/img/loading-sm.gif -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/bootstrap-fileinput-master/img/loading.gif -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/LANG.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput <_LANG_> Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['_LANG_'] = { 15 | fileSingle: 'file', 16 | filePlural: 'files', 17 | browseLabel: 'Browse …', 18 | removeLabel: 'Remove', 19 | removeTitle: 'Clear selected files', 20 | cancelLabel: 'Cancel', 21 | cancelTitle: 'Abort ongoing upload', 22 | uploadLabel: 'Upload', 23 | uploadTitle: 'Upload selected files', 24 | msgNo: 'No', 25 | msgCancelled: 'Cancelled', 26 | msgZoomModalHeading: 'Detailed Preview', 27 | msgSizeTooLarge: 'File "{name}" ({size} KB) exceeds maximum allowed upload size of {maxSize} KB.', 28 | msgFilesTooLess: 'You must select at least {n} {files} to upload.', 29 | msgFilesTooMany: 'Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}.', 30 | msgFileNotFound: 'File "{name}" not found!', 31 | msgFileSecured: 'Security restrictions prevent reading the file "{name}".', 32 | msgFileNotReadable: 'File "{name}" is not readable.', 33 | msgFilePreviewAborted: 'File preview aborted for "{name}".', 34 | msgFilePreviewError: 'An error occurred while reading the file "{name}".', 35 | msgInvalidFileType: 'Invalid type for file "{name}". Only "{types}" files are supported.', 36 | msgInvalidFileExtension: 'Invalid extension for file "{name}". Only "{extensions}" files are supported.', 37 | msgUploadAborted: 'The file upload was aborted', 38 | msgValidationError: 'Validation Error', 39 | msgLoading: 'Loading file {index} of {files} …', 40 | msgProgress: 'Loading file {index} of {files} - {name} - {percent}% completed.', 41 | msgSelected: '{n} {files} selected', 42 | msgFoldersNotAllowed: 'Drag & drop files only! Skipped {n} dropped folder(s).', 43 | msgImageWidthSmall: 'Width of image file "{name}" must be at least {size} px.', 44 | msgImageHeightSmall: 'Height of image file "{name}" must be at least {size} px.', 45 | msgImageWidthLarge: 'Width of image file "{name}" cannot exceed {size} px.', 46 | msgImageHeightLarge: 'Height of image file "{name}" cannot exceed {size} px.', 47 | msgImageResizeError: 'Could not get the image dimensions to resize.', 48 | msgImageResizeException: 'Error while resizing the image.
{errors}
', 49 | dropZoneTitle: 'Drag & drop files here …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'Remove file', 53 | uploadTitle: 'Upload file', 54 | zoomTitle: 'View details', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'Not uploaded yet', 57 | indicatorSuccessTitle: 'Uploaded', 58 | indicatorErrorTitle: 'Upload Error', 59 | indicatorLoadingTitle: 'Uploading ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Arabic Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Yasser Lotfy 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['ar'] = { 16 | fileSingle: 'ملف', 17 | filePlural: 'ملفات', 18 | browseLabel: 'تصفح …', 19 | removeLabel: 'إزالة', 20 | removeTitle: 'إزالة الملفات المختارة', 21 | cancelLabel: 'إلغاء', 22 | cancelTitle: 'إنهاء الرفع الحالي', 23 | uploadLabel: 'رفع', 24 | uploadTitle: 'رفع الملفات المختارة', 25 | msgNo: 'لا', 26 | msgCancelled: 'ألغيت', 27 | msgZoomModalHeading: 'معاينة تفصيلية', 28 | msgSizeTooLarge: 'الملف "{name}" ({size} ك.ب) تعدى الحد الأقصى المسموح للرفع {maxSize} ك.ب.', 29 | msgFilesTooLess: 'يجب عليك اختيار {n} {files} على الأقل للرفع.', 30 | msgFilesTooMany: 'عدد الملفات المختارة للرفع ({n}) تعدت الحد الأقصى المسموح به لعدد {m}.', 31 | msgFileNotFound: 'الملف "{name}" غير موجود!', 32 | msgFileSecured: 'قيود أمنية تمنع قراءة الملف "{name}".', 33 | msgFileNotReadable: 'الملف "{name}" غير قابل للقراءة.', 34 | msgFilePreviewAborted: 'تم إلغاء معاينة الملف "{name}".', 35 | msgFilePreviewError: 'حدث خطأ أثناء قراءة الملف "{name}".', 36 | msgInvalidFileType: 'نوعية غير صالحة للملف "{name}". فقط هذه النوعيات مدعومة "{types}".', 37 | msgInvalidFileExtension: 'امتداد غير صالح للملف "{name}". فقط هذه الملفات مدعومة "{extensions}".', 38 | msgUploadAborted: 'تم إلغاء رفع الملف', 39 | msgValidationError: 'خطأ التحقق من صحة', 40 | msgLoading: 'تحميل ملف {index} من {files} …', 41 | msgProgress: 'تحميل ملف {index} من {files} - {name} - {percent}% منتهي.', 42 | msgSelected: '{n} {files} مختار(ة)', 43 | msgFoldersNotAllowed: 'اسحب وأفلت الملفات فقط! تم تخطي {n} مجلد(ات).', 44 | msgImageWidthSmall: 'عرض ملف الصورة "{name}" يجب أن يكون على الأقل {size} px.', 45 | msgImageHeightSmall: 'طول ملف الصورة "{name}" يجب أن يكون على الأقل {size} px.', 46 | msgImageWidthLarge: 'عرض ملف الصورة "{name}" لا يمكن أن يتعدى {size} px.', 47 | msgImageHeightLarge: 'طول ملف الصورة "{name}" لا يمكن أن يتعدى {size} px.', 48 | msgImageResizeError: 'لم يتمكن من معرفة أبعاد الصورة لتغييرها.', 49 | msgImageResizeException: 'حدث خطأ أثناء تغيير أبعاد الصورة.
{errors}
', 50 | dropZoneTitle: 'اسحب وأفلت الملفات هنا …', 51 | dropZoneClickTitle: '
(or click to select {files})', 52 | fileActionSettings: { 53 | removeTitle: 'إزالة الملف', 54 | uploadTitle: 'رفع الملف', 55 | zoomTitle: 'مشاهدة التفاصيل', 56 | dragTitle: 'Move / Rearrange', 57 | indicatorNewTitle: 'لم يتم الرفع بعد', 58 | indicatorSuccessTitle: 'تم الرفع', 59 | indicatorErrorTitle: 'خطأ بالرفع', 60 | indicatorLoadingTitle: 'جارٍ الرفع ...' 61 | }, 62 | previewZoomButtonTitles: { 63 | prev: 'View previous file', 64 | next: 'View next file', 65 | toggleheader: 'Toggle header', 66 | fullscreen: 'Toggle full screen', 67 | borderless: 'Toggle borderless mode', 68 | close: 'Close detailed preview' 69 | } 70 | }; 71 | })(window.jQuery); 72 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/bg.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Bulgarian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['bg'] = { 15 | fileSingle: 'файл', 16 | filePlural: 'файла', 17 | browseLabel: 'Избери …', 18 | removeLabel: 'Премахни', 19 | removeTitle: 'Изчисти избраните', 20 | cancelLabel: 'Откажи', 21 | cancelTitle: 'Откажи качването', 22 | uploadLabel: 'Качи', 23 | uploadTitle: 'Качи избраните файлове', 24 | msgNo: 'Не', 25 | msgCancelled: 'Отменен', 26 | msgZoomModalHeading: 'Детайлен преглед', 27 | msgSizeTooLarge: 'Файла "{name}" ({size} KB) надвишава максималните разрешени {maxSize} KB.', 28 | msgFilesTooLess: 'Трябва да изберете поне {n} {files} файла.', 29 | msgFilesTooMany: 'Броя файлове избрани за качване ({n}) надвишава ограниченито от максимум {m}.', 30 | msgFileNotFound: 'Файлът "{name}" не може да бъде намерен!', 31 | msgFileSecured: 'От съображения за сигурност не може да прочетем файла "{name}".', 32 | msgFileNotReadable: 'Файлът "{name}" не е четим.', 33 | msgFilePreviewAborted: 'Прегледа на файла е прекратен за "{name}".', 34 | msgFilePreviewError: 'Грешка при опит за четене на файла "{name}".', 35 | msgInvalidFileType: 'Невалиден тип на файла "{name}". Разрешени са само "{types}".', 36 | msgInvalidFileExtension: 'Невалидно разрешение на "{name}". Разрешени са само "{extensions}".', 37 | msgUploadAborted: 'Качите файла, бе прекратена', 38 | msgValidationError: 'утвърждаване грешка', 39 | msgLoading: 'Зареждане на файл {index} от общо {files} …', 40 | msgProgress: 'Зареждане на файл {index} от общо {files} - {name} - {percent}% завършени.', 41 | msgSelected: '{n} {files} избрани', 42 | msgFoldersNotAllowed: 'Само пуснати файлове! Пропуснати {n} пуснати папки.', 43 | msgImageWidthSmall: 'Широчината на изображението "{name}" трябва да е поне {size} px.', 44 | msgImageHeightSmall: 'Височината на изображението "{name}" трябва да е поне {size} px.', 45 | msgImageWidthLarge: 'Широчината на изображението "{name}" не може да е по-голяма от {size} px.', 46 | msgImageHeightLarge: 'Височината на изображението "{name}" нее може да е по-голяма от {size} px.', 47 | msgImageResizeError: 'Не може да размерите на изображението, за да промените размера.', 48 | msgImageResizeException: 'Грешка при промяна на размера на изображението.
{errors}
', 49 | dropZoneTitle: 'Пуснете файловете тук …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'Махни файл', 53 | uploadTitle: 'Качване на файл', 54 | zoomTitle: 'Вижте детайли', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'Все още не е качил', 57 | indicatorSuccessTitle: 'Качено', 58 | indicatorErrorTitle: 'Качи Error', 59 | indicatorLoadingTitle: 'Качва се ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); 71 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/cz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Czech Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['cz'] = { 15 | fileSingle: 'soubor', 16 | filePlural: 'soubory', 17 | browseLabel: 'Vybrat …', 18 | removeLabel: 'Odstranit', 19 | removeTitle: 'Vyčistit vybrané soubory', 20 | cancelLabel: 'Storno', 21 | cancelTitle: 'Přerušit nahrávání', 22 | uploadLabel: 'Nahrát', 23 | uploadTitle: 'Nahrát vybrané soubory', 24 | msgNo: 'Ne', 25 | msgCancelled: 'Zrušeno', 26 | msgZoomModalHeading: 'Detailní náhled', 27 | msgSizeTooLarge: 'Soubor "{name}" ({size} KB): překročení - maximální povolená velikost {maxSize} KB.', 28 | msgFilesTooLess: 'Musíte vybrat nejméně {n} {files} pro nahrání.', 29 | msgFilesTooMany: 'Počet vybraných souborů pro nahrání ({n}): překročení - maximální povolený limit {m}.', 30 | msgFileNotFound: 'Soubor "{name}" nebyl nalezen!', 31 | msgFileSecured: 'Zabezpečení souboru znemožnilo číst soubor "{name}".', 32 | msgFileNotReadable: 'Soubor "{name}" není čitelný.', 33 | msgFilePreviewAborted: 'Náhled souboru byl přerušen pro "{name}".', 34 | msgFilePreviewError: 'Nastala chyba při načtení souboru "{name}".', 35 | msgInvalidFileType: 'Neplatný typ souboru "{name}". Pouze "{types}" souborů jsou podporovány.', 36 | msgInvalidFileExtension: 'Neplatná extenze souboru "{name}". Pouze "{extensions}" souborů jsou podporovány.', 37 | msgUploadAborted: 'Soubor nahrávání byl přerušen', 38 | msgValidationError: 'Chyba ověření', 39 | msgLoading: 'Nahrávání souboru {index} z {files} …', 40 | msgProgress: 'Nahrávání souboru {index} z {files} - {name} - {percent}% dokončeno.', 41 | msgSelected: '{n} {files} vybrano', 42 | msgFoldersNotAllowed: 'Táhni a pusť pouze soubory! Vynechané {n} pustěné složk(y).', 43 | msgImageWidthSmall: 'Šířka image soubor "{name}", musí být alespoň {size} px.', 44 | msgImageHeightSmall: 'Výška image soubor "{name}", musí být alespoň {size} px.', 45 | msgImageWidthLarge: 'Šířka obrazového souboru "{name}" nelze překročit {size} px.', 46 | msgImageHeightLarge: 'Výška obrazového souboru "{name}" nelze překročit {size} px.', 47 | msgImageResizeError: 'Nelze získat rozměry obrázku změnit velikost.', 48 | msgImageResizeException: 'Chyba při změně velikosti obrázku.
{errors}
', 49 | dropZoneTitle: 'Táhni a pusť soubory sem …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'Odstranit soubor', 53 | uploadTitle: 'nahrát soubor', 54 | zoomTitle: 'zobrazit podrobnosti', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'Ještě nenahrál', 57 | indicatorSuccessTitle: 'Nahraný', 58 | indicatorErrorTitle: 'Nahrát Chyba', 59 | indicatorLoadingTitle: 'Nahrávání ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/da.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Danish Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['da'] = { 15 | fileSingle: 'fil', 16 | filePlural: 'filer', 17 | browseLabel: 'Browse …', 18 | removeLabel: 'Fjern', 19 | removeTitle: 'Fjern valgte filer', 20 | cancelLabel: 'Fortryd', 21 | cancelTitle: 'Afbryd nuværende upload', 22 | uploadLabel: 'Upload', 23 | uploadTitle: 'Upload valgte filer', 24 | msgNo: 'Ingen', 25 | msgCancelled: 'aflyst', 26 | msgZoomModalHeading: 'Detaljeret visning', 27 | msgSizeTooLarge: 'Fil "{name}" ({size} KB) er større end de tilladte {maxSize} KB.', 28 | msgFilesTooLess: 'Du skal mindst vælge {n} {files} til upload.', 29 | msgFilesTooMany: '({n}) filer valgt til upload, men maks. {m} er tilladt.', 30 | msgFileNotFound: 'Filen "{name}" blev ikke fundet!', 31 | msgFileSecured: 'Sikkerhedsrestriktioner forhindrer læsning af "{name}".', 32 | msgFileNotReadable: 'Filen "{name}" kan ikke indlæses.', 33 | msgFilePreviewAborted: 'Filpreview annulleret for "{name}".', 34 | msgFilePreviewError: 'Der skete en fejl under læsningen af filen "{name}".', 35 | msgInvalidFileType: 'Ukendt type for filen "{name}". Kun "{types}" kan bruges.', 36 | msgInvalidFileExtension: 'Ukendt filtype for filen "{name}". Kun "{extensions}" filer kan bruges.', 37 | msgUploadAborted: 'Filupload annulleret', 38 | msgValidationError: 'Validering Fejl', 39 | msgLoading: 'Henter fil {index} af {files} …', 40 | msgProgress: 'Henter fil {index} af {files} - {name} - {percent}% færdiggjort.', 41 | msgSelected: '{n} {files} valgt', 42 | msgFoldersNotAllowed: 'Drag & drop kun filer! {n} mappe(r) sprunget over.', 43 | msgImageWidthSmall: 'Bredden af billedet "{name}" skal være på mindst {size} px.', 44 | msgImageHeightSmall: 'Højden af billedet "{name}" skal være på mindst {size} px.', 45 | msgImageWidthLarge: 'Bredden af billedet "{name}" må ikke være over {size} px.', 46 | msgImageHeightLarge: 'Højden af billedet "{name}" må ikke være over {size} px.', 47 | msgImageResizeError: 'Kunne ikke få billedets dimensioner for at ændre størrelsen.', 48 | msgImageResizeException: 'Fejl ved at ændre størrelsen på billedet.
{errors}
', 49 | dropZoneTitle: 'Drag & drop filer her …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'Fjern fil', 53 | uploadTitle: 'Upload fil', 54 | zoomTitle: 'Se detaljer', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'Ikke uploadet endnu', 57 | indicatorSuccessTitle: 'Uploadet', 58 | indicatorErrorTitle: 'Upload fejl', 59 | indicatorLoadingTitle: 'Uploader ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/de.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput German Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | */ 9 | (function ($) { 10 | "use strict"; 11 | 12 | $.fn.fileinputLocales['de'] = { 13 | fileSingle: 'Datei', 14 | filePlural: 'Dateien', 15 | browseLabel: 'Auswählen …', 16 | removeLabel: 'Löschen', 17 | removeTitle: 'Ausgewählte löschen', 18 | cancelLabel: 'Laden', 19 | cancelTitle: 'Hochladen abbrechen', 20 | uploadLabel: 'Hochladen', 21 | uploadTitle: 'Hochladen der ausgewählten Dateien', 22 | msgNo: 'Keine', 23 | msgCancelled: 'Abgebrochen', 24 | msgZoomModalHeading: 'ausführliche Vorschau', 25 | msgSizeTooLarge: 'Datei "{name}" ({size} KB) überschreitet maximal zulässige Upload-Größe von {maxSize} KB.', 26 | msgFilesTooLess: 'Sie müssen mindestens {n} {files} zum Hochladen auswählen.', 27 | msgFilesTooMany: 'Anzahl der Dateien für den Upload ausgewählt ({n}) überschreitet maximal zulässige Grenze von {m} Stück.', 28 | msgFileNotFound: 'Datei "{name}" wurde nicht gefunden!', 29 | msgFileSecured: 'Sicherheitseinstellungen verhindern das Lesen der Datei "{name}".', 30 | msgFileNotReadable: 'Die Datei "{name}" ist nicht lesbar.', 31 | msgFilePreviewAborted: 'Dateivorschau abgebrochen für "{name}".', 32 | msgFilePreviewError: 'Beim Lesen der Datei "{name}" ein Fehler aufgetreten.', 33 | msgInvalidFileType: 'Ungültiger Typ für Datei "{name}". Nur Dateien der Typen "{types}" werden unterstützt.', 34 | msgInvalidFileExtension: 'Ungültige Erweiterung für Datei "{name}". Nur Dateien mit der Endung "{extensions}" werden unterstützt.', 35 | msgUploadAborted: 'Der Datei-Upload wurde abgebrochen', 36 | msgValidationError: 'Validierungs fehler', 37 | msgLoading: 'Lade Datei {index} von {files} hoch…', 38 | msgProgress: 'Datei {index} von {files} - {name} - zu {percent}% fertiggestellt.', 39 | msgSelected: '{n} {files} ausgewählt', 40 | msgFoldersNotAllowed: 'Drag & Drop funktioniert nur bei Dateien! {n} Ordner übersprungen.', 41 | msgImageWidthSmall: 'Breite der Bilddatei "{name}" muss mindestens {size} px betragen.', 42 | msgImageHeightSmall: 'Höhe der Bilddatei "{name}" muss mindestens {size} px betragen.', 43 | msgImageWidthLarge: 'Breite der Bilddatei "{name}" nicht überschreiten {size} px.', 44 | msgImageHeightLarge: 'Höhe der Bilddatei "{name}" nicht überschreiten {size} px.', 45 | msgImageResizeError: 'Konnte nicht die Bildabmessungen zu ändern.', 46 | msgImageResizeException: 'Fehler beim Ändern der Größe des Bildes.
{errors}
', 47 | dropZoneTitle: 'Dateien hierher ziehen …', 48 | dropZoneClickTitle: '
(or click to select {files})', 49 | fileActionSettings: { 50 | removeTitle: 'Datei entfernen', 51 | uploadTitle: 'Datei hochladen', 52 | zoomTitle: 'Details anzeigen', 53 | dragTitle: 'Move / Rearrange', 54 | indicatorNewTitle: 'Noch nicht hochgeladen', 55 | indicatorSuccessTitle: 'Hochgeladen', 56 | indicatorErrorTitle: 'Upload Fehler', 57 | indicatorLoadingTitle: 'Hochladen ...' 58 | }, 59 | previewZoomButtonTitles: { 60 | prev: 'View previous file', 61 | next: 'View next file', 62 | toggleheader: 'Toggle header', 63 | fullscreen: 'Toggle full screen', 64 | borderless: 'Toggle borderless mode', 65 | close: 'Close detailed preview' 66 | } 67 | }; 68 | })(window.jQuery); 69 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Persian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Milad Nekofar 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['fa'] = { 16 | fileSingle: 'فایل', 17 | filePlural: 'فایل', 18 | browseLabel: 'مرور …', 19 | removeLabel: 'حذف', 20 | removeTitle: 'پاکسازی فایل‌های انتخاب شده', 21 | cancelLabel: 'لغو', 22 | cancelTitle: 'لغو بارگزاری جاری', 23 | uploadLabel: 'بارگذاری', 24 | uploadTitle: 'بارگذاری فایل‌های انتخاب شده', 25 | msgNo: 'No', 26 | msgCancelled: 'Cancelled', 27 | msgZoomModalHeading: 'Detailed Preview', 28 | msgSizeTooLarge: 'فایل "{name}" ({size} کیلوبایت) از حداکثر مجاز {maxSize} کیلوبایت.', 29 | msgFilesTooLess: 'شما باید حداقل {n} {files} فایل برای بارگذاری انتخاب کنید.', 30 | msgFilesTooMany: 'تعداد فایل‌های انتخاب شده برای بارگذاری ({n}) از حداکثر مجاز عبور کرده است {m}.', 31 | msgFileNotFound: 'فایل "{name}" یافت نشد!', 32 | msgFileSecured: 'محدودیت های امنیتی مانع خواندن فایل "{name}" است.', 33 | msgFileNotReadable: 'فایل "{name}" قابل نوشتن نیست.', 34 | msgFilePreviewAborted: 'پیشنمایش فایل "{name}". شکست خورد', 35 | msgFilePreviewError: 'در هنگام خواندن فایل "{name}" خطایی رخ داد.', 36 | msgInvalidFileType: 'نوع فایل "{name}" معتبر نیست. فقط "{types}" پشیبانی می‌شود.', 37 | msgInvalidFileExtension: 'پسوند فایل "{name}" معتبر نیست. فقط "{extensions}" پشتیبانی می‌شود.', 38 | msgUploadAborted: 'The file upload was aborted', 39 | msgValidationError: 'خطای اعتبار سنجی', 40 | msgLoading: 'بارگیری فایل {index} از {files} …', 41 | msgProgress: 'بارگیری فایل {index} از {files} - {name} - {percent}% تمام شد.', 42 | msgSelected: '{n} {files} انتخاب شده', 43 | msgFoldersNotAllowed: 'فقط فایل‌ها را بکشید و رها کنید! {n} پوشه نادیده گرفته شد.', 44 | msgImageWidthSmall: 'عرض فایل تصویر "{name}" باید حداقل {size} پیکسل باشد.', 45 | msgImageHeightSmall: 'ارتفاع فایل تصویر "{name}" باید حداقل {size} پیکسل باشد.', 46 | msgImageWidthLarge: 'عرض فایل تصویر "{name}" نمیتواند از {size} پیکسل بیشتر باشد.', 47 | msgImageHeightLarge: 'ارتفاع فایل تصویر "{name}" نمی‌تواند از {size} پیکسل بیشتر باشد.', 48 | msgImageResizeError: 'یافت نشد ابعاد تصویر را برای تغییر اندازه.', 49 | msgImageResizeException: 'خطا در هنگام تغییر اندازه تصویر.
{errors}
', 50 | dropZoneTitle: 'فایل‌ها را بکشید و در اینجا رها کنید …', 51 | dropZoneClickTitle: '
(or click to select {files})', 52 | fileActionSettings: { 53 | removeTitle: 'حذف فایل', 54 | uploadTitle: 'آپلود فایل', 55 | zoomTitle: 'دیدن جزئیات', 56 | dragTitle: 'Move / Rearrange', 57 | indicatorNewTitle: 'آپلود نشده است', 58 | indicatorSuccessTitle: 'آپلود شده', 59 | indicatorErrorTitle: 'بارگذاری خطا', 60 | indicatorLoadingTitle: 'آپلود ...' 61 | }, 62 | previewZoomButtonTitles: { 63 | prev: 'View previous file', 64 | next: 'View next file', 65 | toggleheader: 'Toggle header', 66 | fullscreen: 'Toggle full screen', 67 | borderless: 'Toggle borderless mode', 68 | close: 'Close detailed preview' 69 | } 70 | }; 71 | })(window.jQuery); 72 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/fi.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Finnish Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales.fi = { 15 | fileSingle: 'tiedosto', 16 | filePlural: 'tiedostot', 17 | browseLabel: 'Selaa …', 18 | removeLabel: 'Poista', 19 | removeTitle: 'Tyhjännä valitut tiedostot', 20 | cancelLabel: 'Peruuta', 21 | cancelTitle: 'Peruuta lataus', 22 | uploadLabel: 'Lataa', 23 | uploadTitle: 'Lataa valitut tiedostot', 24 | msgSizeTooLarge: 'Tiedosto "{name}" ({size} Kt) ylittää suurimman sallitun tiedoston koon, joka on {maxSize} Kt. Yritä uudelleen!', 25 | msgFilesTooLess: 'Vähintään {n} {files} tiedostoa on valittava ladattavaksi. Ole hyvä ja yritä uudelleen!', 26 | msgFilesTooMany: 'Valittujen tiedostojen lukumäärä ({n}) ylittää suurimman sallitun määrän {m}. Ole hyvä ja yritä uudelleen!', 27 | msgFileNotFound: 'Tiedostoa "{name}" ei löydy!', 28 | msgFileSecured: 'Tietoturvarajoitukset estävät tiedoston "{name}" lukemisen.', 29 | msgFileNotReadable: 'Tiedosto "{name}" ei ole luettavissa.', 30 | msgFilePreviewAborted: 'Tiedoston "{name}" esikatselu keskeytetty.', 31 | msgFilePreviewError: 'Virhe on tapahtunut luettaessa tiedostoa "{name}".', 32 | msgInvalidFileType: 'Tiedosto "{name}" on väärän tyyppinen. Ainoastaan tiedostot tyyppiä "{types}" ovat tuettuja.', 33 | msgInvalidFileExtension: 'Tiedoston "{name}" tarkenne on epäkelpo. Ainoastaan tarkenteet "{extensions}" ovat tuettuja.', 34 | msgValidationError: 'Tiedoston latausvirhe', 35 | msgLoading: 'Ladataan tiedostoa {index} / {files} …', 36 | msgProgress: 'Ladataan tiedostoa {index} / {files} - {name} - {percent}% valmistunut.', 37 | msgSelected: '{n} tiedostoa valittu', 38 | msgFoldersNotAllowed: 'Raahaa ja pudota ainoastaan tiedostoja! Ohitettu {n} raahattua kansiota.', 39 | dropZoneTitle: 'Raahaa ja pudota tiedostot tähän …', 40 | dropZoneClickTitle: '
(or click to select {files})', 41 | fileActionSettings: { 42 | removeTitle: 'Remove file', 43 | uploadTitle: 'Upload file', 44 | zoomTitle: 'View Details', 45 | dragTitle: 'Move / Rearrange', 46 | indicatorNewTitle: 'Not uploaded yet', 47 | indicatorSuccessTitle: 'Uploaded', 48 | indicatorErrorTitle: 'Upload Error', 49 | indicatorLoadingTitle: 'Uploading ...' 50 | }, 51 | previewZoomButtonTitles: { 52 | prev: 'View previous file', 53 | next: 'View next file', 54 | toggleheader: 'Toggle header', 55 | fullscreen: 'Toggle full screen', 56 | borderless: 'Toggle borderless mode', 57 | close: 'Close detailed preview' 58 | } 59 | }; 60 | 61 | $.extend($.fn.fileinput.defaults, $.fn.fileinputLocales.fi); 62 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/hu.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Hungarian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['hu'] = { 15 | fileSingle: 'fájl', 16 | filePlural: 'fájl', 17 | browseLabel: 'Böngész …', 18 | removeLabel: 'Eltávolít', 19 | removeTitle: 'Kijelölt fájlok törlése', 20 | cancelLabel: 'Mégse', 21 | cancelTitle: 'Feltöltés megszakítása', 22 | uploadLabel: 'Feltöltés', 23 | uploadTitle: 'Kijelölt fájlok feltöltése', 24 | msgNo: 'No', 25 | msgCancelled: 'Cancelled', 26 | msgZoomModalHeading: 'Részletes Preview', 27 | msgSizeTooLarge: '"{name}" fájl ({size} KB) mérete nagyobb a megengedettnél {maxSize} KB.', 28 | msgFilesTooLess: 'Legalább {n} {files} ki kell választania a feltöltéshez.', 29 | msgFilesTooMany: 'A feltölteni kívánt fájlok száma ({n}) elérte a megengedett maximumot {m}.', 30 | msgFileNotFound: '"{name}" fájl nem található!', 31 | msgFileSecured: 'Biztonsági beállítások nem engedik olvasni a fájlt "{name}".', 32 | msgFileNotReadable: '"{name}" fájl nem olvasható', 33 | msgFilePreviewAborted: '"{name}" fájl feltöltése megszakítva.', 34 | msgFilePreviewError: 'Hiba lépett fel a "{name}" fájl olvasása közben.', 35 | msgInvalidFileType: 'Nem megengedett fájl "{name}". Csak a "{types}" fájl típusok támogatottak.', 36 | msgInvalidFileExtension: 'Nem megengedett kiterjesztés / fájltípus "{name}". Csak a "{extensions}" kiterjesztés(ek) / fájltípus(ok) támogatottak.', 37 | msgUploadAborted: 'A fájl feltöltés megszakítva', 38 | msgValidationError: 'Érvényesítés hiba', 39 | msgLoading: '{index} / {files} töltése …', 40 | msgProgress: 'Feltöltés: {index} / {files} - {name} - {percent}% kész.', 41 | msgSelected: '{n} {files} kiválasztva.', 42 | msgFoldersNotAllowed: 'Csak fájlokat húzzon ide! Kihagyva {n} könyvtár.', 43 | msgImageWidthSmall: 'Szélessége image file "{name}" legalább {size} px.', 44 | msgImageHeightSmall: 'Magassága image file "{name}" legalább {size} px.', 45 | msgImageWidthLarge: 'Szélessége image file "{name}" nem haladhatja meg a {size} px.', 46 | msgImageHeightLarge: 'Magassága image file "{name}" nem haladhatja meg a {size} px.', 47 | msgImageResizeError: 'Nem lehet megszerezni a kép méretei átméretezni.', 48 | msgImageResizeException: 'Hiba történt a méretezés.
{errors}
', 49 | dropZoneTitle: 'Fájlok húzása ide …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'A fájl eltávolítása', 53 | uploadTitle: 'fájl feltöltése', 54 | zoomTitle: 'Részletek megtekintése', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'Nem feltöltve', 57 | indicatorSuccessTitle: 'Feltöltött', 58 | indicatorErrorTitle: 'Feltöltés Error', 59 | indicatorLoadingTitle: 'Feltöltése ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); 71 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/id.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Indonesian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author Bambang Riswanto 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['id'] = { 16 | fileSingle: 'berkas', 17 | filePlural: 'berkas', 18 | browseLabel: 'Pilih File …', 19 | removeLabel: 'Hapus', 20 | removeTitle: 'Hapus berkas terpilih', 21 | cancelLabel: 'Batal', 22 | cancelTitle: 'Batalkan proses pengunggahan', 23 | uploadLabel: 'Unggah', 24 | uploadTitle: 'Unggah berkas terpilih', 25 | msgNo: 'Tidak', 26 | msgCancelled: 'Dibatalkan', 27 | msgZoomModalHeading: 'Pratinjau terperinci', 28 | msgSizeTooLarge: 'Berkas "{name}" ({size} KB) melebihi ukuran upload maksimal yaitu {maxSize} KB.', 29 | msgFilesTooLess: 'Anda harus memilih setidaknya {n} {files} untuk diunggah.', 30 | msgFilesTooMany: '({n}) berkas yang dipilih untuk diunggah melebihi ukuran upload maksimal yaitu {m}.', 31 | msgFileNotFound: 'Berkas "{name}" tak ditemukan!', 32 | msgFileSecured: 'Sistem keamanan mencegah untuk membaca berkas "{name}".', 33 | msgFileNotReadable: 'Berkas "{name}" tak dapat dibaca.', 34 | msgFilePreviewAborted: 'Pratinjau untuk berkas "{name}" dibatalkan.', 35 | msgFilePreviewError: 'Kesalahan saat membaca berkas "{name}".', 36 | msgInvalidFileType: 'Jenis berkas "{name}" tidak sah. Hanya berkas "{types}" yang didukung.', 37 | msgInvalidFileExtension: 'Ekstensi berkas "{name}" tidak sah. Hanya ekstensi "{extensions}" yang didukung.', 38 | msgUploadAborted: 'Pengunggahan berkas dibatalkan', 39 | msgValidationError: 'Kesalahan validasi', 40 | msgLoading: 'Memuat {index} dari {files} berkas …', 41 | msgProgress: 'Memuat {index} dari {files} berkas - {name} - {percent}% selesai.', 42 | msgSelected: '{n} {files} dipilih', 43 | msgFoldersNotAllowed: 'Hanya tahan dan lepas file saja! {n} folder diabaikan.', 44 | msgImageWidthSmall: 'Lebar dari gambar "{name}" harus sekurangnya {size} px.', 45 | msgImageHeightSmall: 'Tinggi dari gambar "{name}" harus sekurangnya {size} px.', 46 | msgImageWidthLarge: 'Lebar dari gambar "{name}" tak boleh melebihi {size} px.', 47 | msgImageHeightLarge: 'Tinggi dari gambar "{name}" tak boleh melebihi {size} px.', 48 | msgImageResizeError: 'Tak dapat menentukan dimensi gambar untuk mengubah ukuran.', 49 | msgImageResizeException: 'Kesalahan saat mengubah ukuran gambar.
{errors}
', 50 | dropZoneTitle: 'Tarik dan lepaskan berkas disini …', 51 | dropZoneClickTitle: '
(or click to select {files})', 52 | fileActionSettings: { 53 | removeTitle: 'Hapus berkas', 54 | uploadTitle: 'Unggah berkas', 55 | zoomTitle: 'Tampilkan Rincian', 56 | dragTitle: 'Move / Rearrange', 57 | indicatorNewTitle: 'Belum diunggah', 58 | indicatorSuccessTitle: 'Sudah diunggah', 59 | indicatorErrorTitle: 'Kesalahan pengunggahan', 60 | indicatorLoadingTitle: 'Mengunggah ...' 61 | }, 62 | previewZoomButtonTitles: { 63 | prev: 'View previous file', 64 | next: 'View next file', 65 | toggleheader: 'Toggle header', 66 | fullscreen: 'Toggle full screen', 67 | borderless: 'Toggle borderless mode', 68 | close: 'Close detailed preview' 69 | } 70 | }; 71 | })(window.jQuery); 72 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/ru.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Russian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author CyanoFresh 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['ru'] = { 16 | fileSingle: 'файл', 17 | filePlural: 'файлы', 18 | browseLabel: 'Выбрать …', 19 | removeLabel: 'Удалить', 20 | removeTitle: 'Очистить выбранные файлы', 21 | cancelLabel: 'Отмена', 22 | cancelTitle: 'Отменить текущую загрузку', 23 | uploadLabel: 'Загрузить', 24 | uploadTitle: 'Загрузить выбранные файлы', 25 | msgNo: 'нет', 26 | msgCancelled: 'Отменено', 27 | msgZoomModalHeading: 'Подробное превью', 28 | msgSizeTooLarge: 'Файл "{name}" ({size} KB) превышает максимальный размер {maxSize} KB.', 29 | msgFilesTooLess: 'Вы должны выбрать как минимум {n} {files} для загрузки.', 30 | msgFilesTooMany: 'Количество выбранных файлов ({n}) превышает максимально допустимое количество {m}.', 31 | msgFileNotFound: 'Файл "{name}" не найден!', 32 | msgFileSecured: 'Ограничения безопасности запрещают читать файл "{name}".', 33 | msgFileNotReadable: 'Файл "{name}" невозможно прочитать.', 34 | msgFilePreviewAborted: 'Предпросмотр отменен для файла "{name}".', 35 | msgFilePreviewError: 'Произошла ошибка при чтении файла "{name}".', 36 | msgInvalidFileType: 'Запрещенный тип файла для "{name}". Только "{types}" разрешены.', 37 | msgInvalidFileExtension: 'Запрещенное расширение для файла "{name}". Только "{extensions}" разрешены.', 38 | msgUploadAborted: 'Выгрузка файла прервана', 39 | msgValidationError: 'Ошибка проверки', 40 | msgLoading: 'Загрузка файла {index} из {files} …', 41 | msgProgress: 'Загрузка файла {index} из {files} - {name} - {percent}% завершено.', 42 | msgSelected: 'Выбрано файлов: {n}', 43 | msgFoldersNotAllowed: 'Разрешено перетаскивание только файлов! Пропущено {n} папок.', 44 | msgImageWidthSmall: 'Ширина изображения {name} должна быть не меньше {size} px.', 45 | msgImageHeightSmall: 'Высота изображения {name} должна быть не меньше {size} px.', 46 | msgImageWidthLarge: 'Ширина изображения "{name}" не может превышать {size} px.', 47 | msgImageHeightLarge: 'Высота изображения "{name}" не может превышать {size} px.', 48 | msgImageResizeError: 'Не удалось получить размеры изображения, чтобы изменить размер.', 49 | msgImageResizeException: 'Ошибка при изменении размера изображения.
{errors}
', 50 | dropZoneTitle: 'Перетащите файлы сюда …', 51 | dropZoneClickTitle: '
(or click to select {files})', 52 | fileActionSettings: { 53 | removeTitle: 'Удалить файл', 54 | uploadTitle: 'Загрузить файл', 55 | zoomTitle: 'посмотреть детали', 56 | dragTitle: 'Move / Rearrange', 57 | indicatorNewTitle: 'Еще не загружен', 58 | indicatorSuccessTitle: 'Загружен', 59 | indicatorErrorTitle: 'Ошибка загрузки', 60 | indicatorLoadingTitle: 'Загрузка ...' 61 | }, 62 | previewZoomButtonTitles: { 63 | prev: 'View previous file', 64 | next: 'View next file', 65 | toggleheader: 'Toggle header', 66 | fullscreen: 'Toggle full screen', 67 | borderless: 'Toggle borderless mode', 68 | close: 'Close detailed preview' 69 | } 70 | }; 71 | })(window.jQuery); 72 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/sk.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Slovakian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['sk'] = { 15 | fileSingle: 'súbor', 16 | filePlural: 'súbory', 17 | browseLabel: 'Vybrať …', 18 | removeLabel: 'Odstrániť', 19 | removeTitle: 'Vyčistiť vybraté súbory', 20 | cancelLabel: 'Storno', 21 | cancelTitle: 'Prerušiť nahrávanie', 22 | uploadLabel: 'Nahrať', 23 | uploadTitle: 'Nahrať vybraté súbory', 24 | msgNo: 'Nie', 25 | msgCancelled: 'Zrušené', 26 | msgZoomModalHeading: 'Detailný náhľad', 27 | msgSizeTooLarge: 'Súbor "{name}" ({size} KB): prekročenie - maximálna povolená veľkosť {maxSize} KB.', 28 | msgFilesTooLess: 'Musíte vybrať najmenej {n} {files} pre nahranie.', 29 | msgFilesTooMany: 'Počet vybratých súborov pre nahranie ({n}): prekročenie - maximálny povolený limit {m}.', 30 | msgFileNotFound: 'Súbor "{name}" nebol nájdený!', 31 | msgFileSecured: 'Zabezpečenie súboru znemožnilo čítať súbor "{name}".', 32 | msgFileNotReadable: 'Súbor "{name}" nie je čitateľný.', 33 | msgFilePreviewAborted: 'Náhľad súboru bol prerušený pre "{name}".', 34 | msgFilePreviewError: 'Nastala chyba pri načítaní súboru "{name}".', 35 | msgInvalidFileType: 'Neplatný typ súboru "{name}". Iba "{types}" súborov sú podporované.', 36 | msgInvalidFileExtension: 'Neplatná extenzia súboru "{name}". Iba "{extensions}" súborov sú podporované.', 37 | msgUploadAborted: 'Súbor nahrávania bol prerušený', 38 | msgValidationError: 'Chyba overenia', 39 | msgLoading: 'Nahrávanie súboru {index} z {files} …', 40 | msgProgress: 'Nahrávanie súboru {index} z {files} - {name} - {percent}% dokončené.', 41 | msgSelected: '{n} {files} vybraté', 42 | msgFoldersNotAllowed: 'Tiahni a pusť iba súbory! Vynechané {n} pustené prečinok(y).', 43 | msgImageWidthSmall: 'Šírka image súboru "{name}", musí byť minimálne {size} px.', 44 | msgImageHeightSmall: 'Výška image súboru "{name}", musí byť minimálne {size} px.', 45 | msgImageWidthLarge: 'Šírka image súboru "{name}" nemôže presiahnuť {size} px.', 46 | msgImageHeightLarge: 'Výška súboru obrazu "{name}" nesmie presiahnuť {size} px.', 47 | msgImageResizeError: 'Nemožno získať rozmery obrázku zmeniť veľkosť.', 48 | msgImageResizeException: 'Chyba pri zmene veľkosti obrázka.
{errors}
', 49 | dropZoneTitle: 'Tiahni a pusť súbory tu …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'odstrániť súbor', 53 | uploadTitle: 'nahrať súbor', 54 | zoomTitle: 'Zobraziť podrobnosti', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'Ešte nenahral', 57 | indicatorSuccessTitle: 'nahral', 58 | indicatorErrorTitle: 'nahrať Chyba', 59 | indicatorLoadingTitle: 'nahrávanie ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/th.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Thai Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * 9 | * NOTE: this file must be saved in UTF-8 encoding. 10 | */ 11 | (function ($) { 12 | "use strict"; 13 | 14 | $.fn.fileinputLocales['th'] = { 15 | fileSingle: 'ไฟล์', 16 | filePlural: 'ไฟล์', 17 | browseLabel: 'เลือกดู …', 18 | removeLabel: 'ลบทิ้ง', 19 | removeTitle: 'ลบไฟล์ที่เลือกทิ้ง', 20 | cancelLabel: 'ยกเลิก', 21 | cancelTitle: 'ยกเลิกการอัพโหลด', 22 | uploadLabel: 'อัพโหลด', 23 | uploadTitle: 'อัพโหลดไฟล์ที่เลือก', 24 | msgNo: 'ไม่', 25 | msgCancelled: 'ยกเลิก', 26 | msgZoomModalHeading: 'ตัวอย่างละเอียด', 27 | msgSizeTooLarge: 'ไฟล์ "{name}" ({size} KB) มีขนาดเกินที่ระบบอนุญาตที่ {maxSize} KB, กรุณาลองใหม่อีกครั้ง!', 28 | msgFilesTooLess: 'คุณต้องเลือกไฟล์จำนวนอย่างน้อย {n} {files} เพื่ออัพโหลด, กรุณาลองใหม่อีกครั้ง!', 29 | msgFilesTooMany: 'ไฟล์ที่คุณเลือกมีจำนวน ({n}) ซึ่งเกินกว่าที่ระบบอนุญาตที่ {m}, กรุณาลองใหม่อีกครั้ง!', 30 | msgFileNotFound: 'ไม่พบไฟล์ "{name}" !', 31 | msgFileSecured: 'ระบบความปลอดภัยไม่อนุญาตให้อ่านไฟล์ "{name}".', 32 | msgFileNotReadable: 'ไม่สามารถอ่านไฟล์ "{name}" ได้', 33 | msgFilePreviewAborted: 'ไฟล์ "{name}" ไม่อนุญาตให้ดูตัวอย่าง', 34 | msgFilePreviewError: 'พบปัญหาในการดูตัวอย่างไฟล์ "{name}".', 35 | msgInvalidFileType: 'ไฟล์ "{name}" เป็นประเภทไฟล์ที่ไม่ถูกต้อง, อนุญาตเฉพาะไฟล์ประเภท "{types}"', 36 | msgInvalidFileExtension: 'ไฟล์ "{name}" เป็น extension ที่ไมถูกต้อง, อนุญาตเฉพาะไฟล์ extension "{extensions}"', 37 | msgUploadAborted: 'อัปโหลดไฟล์ถูกยกเลิก', 38 | msgValidationError: 'ข้อผิดพลาดในการตรวจสอบ', 39 | msgLoading: 'กำลังโหลดไฟล์ {index} จาก {files} …', 40 | msgProgress: 'กำลังโหลดไฟล์ {index} จาก {files} - {name} - {percent}%', 41 | msgSelected: '{n} {files} ถูกเลือก', 42 | msgFoldersNotAllowed: 'Drag & drop เฉพาะไฟล์เท่านั้น! ข้าม dropped folder จำนวน {n}', 43 | msgImageWidthSmall: 'ความกว้างของภาพไฟล์ "{name}" ต้องมีอย่างน้อย {size} px.', 44 | msgImageHeightSmall: 'ความสูงของภาพไฟล์ "{name}" ต้องมีอย่างน้อย {size} px.', 45 | msgImageWidthLarge: 'ความกว้างของภาพไฟล์ "{name}" ไม่เกิน {size} พิกเซล.', 46 | msgImageHeightLarge: 'ความสูงของไฟล์ภาพ "{name}" ไม่เกิน {size} พิกเซล.', 47 | msgImageResizeError: 'ไม่สามารถรับขนาดภาพเพื่อปรับขนาด', 48 | msgImageResizeException: 'ข้อผิดพลาดขณะปรับขนาดภาพ
{errors}
', 49 | dropZoneTitle: 'Drag & drop ไฟล์ตรงนี้ …', 50 | dropZoneClickTitle: '
(or click to select {files})', 51 | fileActionSettings: { 52 | removeTitle: 'ลบไฟล์', 53 | uploadTitle: 'อัปโหลดไฟล์', 54 | zoomTitle: 'ดูรายละเอียด', 55 | dragTitle: 'Move / Rearrange', 56 | indicatorNewTitle: 'ยังไม่ได้อัปโหลด', 57 | indicatorSuccessTitle: 'อัพโหลด', 58 | indicatorErrorTitle: 'อัปโหลดข้อผิดพลาด', 59 | indicatorLoadingTitle: 'อัพโหลด ...' 60 | }, 61 | previewZoomButtonTitles: { 62 | prev: 'View previous file', 63 | next: 'View next file', 64 | toggleheader: 'Toggle header', 65 | fullscreen: 'Toggle full screen', 66 | borderless: 'Toggle borderless mode', 67 | close: 'Close detailed preview' 68 | } 69 | }; 70 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/uk.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Ukrainian Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author CyanoFresh 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['uk'] = { 16 | fileSingle: 'файл', 17 | filePlural: 'файли', 18 | browseLabel: 'Вибрати …', 19 | removeLabel: 'Видалити', 20 | removeTitle: 'Видалити вибрані файли', 21 | cancelLabel: 'Скасувати', 22 | cancelTitle: 'Скасувати поточну загрузку', 23 | uploadLabel: 'Загрузити', 24 | uploadTitle: 'Загрузити вибрані файли', 25 | msgNo: 'Немає', 26 | msgCancelled: 'Cкасовано', 27 | msgZoomModalHeading: 'Детальний превью', 28 | msgSizeTooLarge: 'Файл "{name}" ({size} KB) перевищує максимальний розмір {maxSize} KB.', 29 | msgFilesTooLess: 'Ви повинні вибрати як мінімум {n} {files} для загрузки.', 30 | msgFilesTooMany: 'Кількість вибраних файлів ({n}) перевищує максимально допустиму кількість {m}.', 31 | msgFileNotFound: 'Файл "{name}" не знайдено!', 32 | msgFileSecured: 'Обмеження безпеки перешкоджають читанню файла "{name}".', 33 | msgFileNotReadable: 'Файл "{name}" неможливо прочитати.', 34 | msgFilePreviewAborted: 'Перегляд скасований для файла "{name}".', 35 | msgFilePreviewError: 'Сталася помилка під час читання файла "{name}".', 36 | msgInvalidFileType: 'Заборонений тип файла для "{name}". Тільки "{types}" дозволені.', 37 | msgInvalidFileExtension: 'Заборонене розширення для файла "{name}". Тільки "{extensions}" дозволені.', 38 | msgUploadAborted: 'Вивантаження файлу перервана', 39 | msgValidationError: 'Помилка перевірки', 40 | msgLoading: 'Загрузка файла {index} із {files} …', 41 | msgProgress: 'Загрузка файла {index} із {files} - {name} - {percent}% завершено.', 42 | msgSelected: '{n} {files} вибрано', 43 | msgFoldersNotAllowed: 'Дозволено перетягувати тільки файли! Пропущено {n} папок.', 44 | msgImageWidthSmall: 'Ширина зображення "{name}" повинна бути не менше {size} px.', 45 | msgImageHeightSmall: 'Висота зображення "{name}" повинна бути не менше {size} px.', 46 | msgImageWidthLarge: 'Ширина зображення "{name}" не може перевищувати {size} px.', 47 | msgImageHeightLarge: 'Висота зображення "{name}" не може перевищувати {size} px.', 48 | msgImageResizeError: 'Не вдалося розміри зображення, щоб змінити розмір.', 49 | msgImageResizeException: 'Помилка при зміні розміру зображення.
{errors}
', 50 | dropZoneTitle: 'Перетягніть файли сюди …', 51 | dropZoneClickTitle: '
(or click to select {files})', 52 | fileActionSettings: { 53 | removeTitle: 'Видалити файл', 54 | uploadTitle: 'Загрузити файл', 55 | zoomTitle: 'Подивитися деталі', 56 | dragTitle: 'Move / Rearrange', 57 | indicatorNewTitle: 'Ще не загружено', 58 | indicatorSuccessTitle: 'Загружено', 59 | indicatorErrorTitle: 'Помилка при загрузці', 60 | indicatorLoadingTitle: 'Загрузка ...' 61 | }, 62 | previewZoomButtonTitles: { 63 | prev: 'View previous file', 64 | next: 'View next file', 65 | toggleheader: 'Toggle header', 66 | fullscreen: 'Toggle full screen', 67 | borderless: 'Toggle borderless mode', 68 | close: 'Close detailed preview' 69 | } 70 | }; 71 | })(window.jQuery); 72 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Chinese Traditional Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author kangqf 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['zh-TW'] = { 16 | fileSingle: '單一檔案', 17 | filePlural: '複選檔案', 18 | browseLabel: '瀏覽 …', 19 | removeLabel: '移除', 20 | removeTitle: '清除選取檔案', 21 | cancelLabel: '取消', 22 | cancelTitle: '取消上傳中檔案', 23 | uploadLabel: '上傳', 24 | uploadTitle: '上傳選取檔案', 25 | msgNo: '沒有', 26 | msgCancelled: '取消', 27 | zoomTitle: '詳細資料', 28 | msgZoomModalHeading: '內容預覽', 29 | msgSizeTooLarge: '檔案 "{name}" ({size} KB) 大小超過上限 {maxSize} KB.', 30 | msgFilesTooLess: '最少必須選擇 {n} {files} 來上傳. ', 31 | msgFilesTooMany: '上傳的檔案數量 ({n}) 超過最大檔案上傳限制 {m}.', 32 | msgFileNotFound: '檔案 "{name}" 未發現!', 33 | msgFileSecured: '安全限制,禁止讀取檔案 "{name}".', 34 | msgFileNotReadable: '文件 "{name}" 不可讀取.', 35 | msgFilePreviewAborted: '檔案 "{name}" 預覽中止.', 36 | msgFilePreviewError: '讀取 "{name}" 發生錯誤.', 37 | msgInvalidFileType: '檔案類型錯誤 "{name}". 只能使用 "{types}" 類型的檔案.', 38 | msgInvalidFileExtension: '附檔名錯誤 "{name}". 只能使用 "{extensions}" 的檔案.', 39 | msgUploadAborted: '該文件上傳被中止', 40 | msgValidationError: '驗證錯誤', 41 | msgLoading: '載入第 {index} 個檔案,共 {files} …', 42 | msgProgress: '載入第 {index} 個檔案,共 {files} - {name} - {percent}% 成功.', 43 | msgSelected: '{n} {files} 選取', 44 | msgFoldersNotAllowed: '只支援單檔拖曳! 無法使用 {n} 拖拽的資料夹.', 45 | msgImageWidthSmall: '圖檔寬度"{name}"必須至少為{size}像素(px).', 46 | msgImageHeightSmall: '圖檔高度"{name}"必須至少為{size}像素(px).', 47 | msgImageWidthLarge: '圖檔寬度"{name}"不能超過{size}像素(px).', 48 | msgImageHeightLarge: '圖檔高度"{name}"不能超過{size}像素(px).', 49 | msgImageResizeError: '無法獲取的圖像尺寸調整。', 50 | msgImageResizeException: '錯誤而調整圖像大小。
{errors}
', 51 | dropZoneTitle: '拖曳檔案至此 …', 52 | dropZoneClickTitle: '
(or click to select {files})', 53 | fileActionSettings: { 54 | removeTitle: '刪除檔案', 55 | uploadTitle: '上傳檔案', 56 | zoomTitle: '詳細資料', 57 | dragTitle: 'Move / Rearrange', 58 | indicatorNewTitle: '尚未上傳', 59 | indicatorSuccessTitle: '上傳成功', 60 | indicatorErrorTitle: '上傳失敗', 61 | indicatorLoadingTitle: '上傳中 ...' 62 | }, 63 | previewZoomButtonTitles: { 64 | prev: 'View previous file', 65 | next: 'View next file', 66 | toggleheader: 'Toggle header', 67 | fullscreen: 'Toggle full screen', 68 | borderless: 'Toggle borderless mode', 69 | close: 'Close detailed preview' 70 | } 71 | }; 72 | })(window.jQuery); 73 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/locales/zh.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * FileInput Chinese Translations 3 | * 4 | * This file must be loaded after 'fileinput.js'. Patterns in braces '{}', or 5 | * any HTML markup tags in the messages must not be converted or translated. 6 | * 7 | * @see http://github.com/kartik-v/bootstrap-fileinput 8 | * @author kangqf 9 | * 10 | * NOTE: this file must be saved in UTF-8 encoding. 11 | */ 12 | (function ($) { 13 | "use strict"; 14 | 15 | $.fn.fileinputLocales['zh'] = { 16 | fileSingle: '文件', 17 | filePlural: '多个文件', 18 | browseLabel: '选择 …', 19 | removeLabel: '移除', 20 | removeTitle: '清除选中文件', 21 | cancelLabel: '取消', 22 | cancelTitle: '取消进行中的上传', 23 | uploadLabel: '上传', 24 | uploadTitle: '上传选中文件', 25 | msgNo: '没有', 26 | msgCancelled: '取消', 27 | msgZoomModalHeading: '详细预览', 28 | msgSizeTooLarge: '文件 "{name}" ({size} KB) 超过了允许大小 {maxSize} KB.', 29 | msgFilesTooLess: '你必须选择最少 {n} {files} 来上传. ', 30 | msgFilesTooMany: '选择的上传文件个数 ({n}) 超出最大文件的限制个数 {m}.', 31 | msgFileNotFound: '文件 "{name}" 未找到!', 32 | msgFileSecured: '安全限制,为了防止读取文件 "{name}".', 33 | msgFileNotReadable: '文件 "{name}" 不可读.', 34 | msgFilePreviewAborted: '取消 "{name}" 的预览.', 35 | msgFilePreviewError: '读取 "{name}" 时出现了一个错误.', 36 | msgInvalidFileType: '不正确的类型 "{name}". 只支持 "{types}" 类型的文件.', 37 | msgInvalidFileExtension: '不正确的文件扩展名 "{name}". 只支持 "{extensions}" 的文件扩展名.', 38 | msgUploadAborted: '该文件上传被中止', 39 | msgValidationError: '验证错误', 40 | msgLoading: '加载第 {index} 文件 共 {files} …', 41 | msgProgress: '加载第 {index} 文件 共 {files} - {name} - {percent}% 完成.', 42 | msgSelected: '{n} {files} 选中', 43 | msgFoldersNotAllowed: '只支持拖拽文件! 跳过 {n} 拖拽的文件夹.', 44 | msgImageWidthSmall: '宽度的图像文件的"{name}"的必须是至少{size}像素.', 45 | msgImageHeightSmall: '图像文件的"{name}"的高度必须至少为{size}像素.', 46 | msgImageWidthLarge: '宽度的图像文件"{name}"不能超过{size}像素.', 47 | msgImageHeightLarge: '图像文件"{name}"的高度不能超过{size}像素.', 48 | msgImageResizeError: '无法获取的图像尺寸调整。', 49 | msgImageResizeException: '错误而调整图像大小。
{errors}
', 50 | dropZoneTitle: '拖拽文件到这里 …', 51 | dropZoneClickTitle: '
(or click to select {files})', 52 | fileActionSettings: { 53 | removeTitle: '删除文件', 54 | uploadTitle: '上传文件', 55 | zoomTitle: '查看详情', 56 | dragTitle: 'Move / Rearrange', 57 | indicatorNewTitle: '没有上传', 58 | indicatorSuccessTitle: '上传', 59 | indicatorErrorTitle: '上传错误', 60 | indicatorLoadingTitle: '上传 ...' 61 | }, 62 | previewZoomButtonTitles: { 63 | prev: 'View previous file', 64 | next: 'View next file', 65 | toggleheader: 'Toggle header', 66 | fullscreen: 'Toggle full screen', 67 | borderless: 'Toggle borderless mode', 68 | close: 'Close detailed preview' 69 | } 70 | }; 71 | })(window.jQuery); -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/js/plugins/canvas-to-blob.min.js: -------------------------------------------------------------------------------- 1 | !function(a){"use strict";var b=a.HTMLCanvasElement&&a.HTMLCanvasElement.prototype,c=a.Blob&&function(){try{return Boolean(new Blob)}catch(a){return!1}}(),d=c&&a.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(a){return!1}}(),e=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||a.MSBlobBuilder,f=(c||e)&&a.atob&&a.ArrayBuffer&&a.Uint8Array&&function(a){var b,f,g,h,i,j;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):decodeURIComponent(a.split(",")[1]),f=new ArrayBuffer(b.length),g=new Uint8Array(f),h=0;h 2 | 3 | 4 | bootstrap-fileinput 5 | bootstrap-fileinput 6 | 4.3.2.1 7 | Kartik Visweswaran 8 | Kartik Visweswaran 9 | https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 10 | https://github.com/kartik-v/bootstrap-fileinput 11 | http://getbootstrap.com/favicon.ico 12 | false 13 | An enhanced HTML 5 file input for Bootstrap 3.x with file preview for various files, offers multiple selection, and more. 14 | https://github.com/kartik-v/bootstrap-fileinput/blob/master/CHANGE.md 15 | Copyright 2014 - 2016 16 | bootstrap bootstrap-fileinput 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/nuget/build.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | NuGet Update -self 4 | REM remove package content folder 5 | rmdir /s /q content 6 | 7 | REM create new package content folder 8 | mkdir content 9 | 10 | REM create sub folder for js files 11 | mkdir content\Scripts 12 | 13 | REM create sub folders for css and img files 14 | mkdir content\Content 15 | mkdir content\Content\bootstrap-fileinput 16 | 17 | REM delete the previous package versions 18 | REM del bootstrap-fileinput.* 19 | 20 | REM copy the content to the destination folders 21 | xcopy ..\js content\Scripts /D /E /C /R /I /K /Y 22 | xcopy ..\css content\Content\bootstrap-fileinput\css /D /E /C /R /I /K /Y 23 | xcopy ..\img content\Content\bootstrap-fileinput\img /D /E /C /R /I /K /Y 24 | xcopy ..\themes content\Content\bootstrap-fileinput\themes /D /E /C /R /I /K /Y 25 | xcopy ..\sass content\Content\bootstrap-fileinput\sass /D /E /C /R /I /K /Y 26 | 27 | REM create a new package 28 | NuGet Pack Package.nuspec -Exclude NuGet.exe;build.bat 29 | 30 | REM Upload the new package 31 | REM for %%f in (content\Content\bootstrap-fileinput.*) do ( 32 | REM NuGet Push %%f 33 | REM rmdir /s /q content 34 | REM del %%f 35 | REM ) 36 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-fileinput", 3 | "version": "4.3.2", 4 | "homepage": "https://github.com/kartik-v/bootstrap-fileinput", 5 | "authors": [ 6 | "Kartik Visweswaran " 7 | ], 8 | "description": "An enhanced HTML 5 file input for Bootstrap 3.x with file preview, multiple selection, ajax uploads, and more features.", 9 | "repository" : { 10 | "type": "git", 11 | "url": "https://github.com/kartik-v/bootstrap-fileinput.git" 12 | }, 13 | "bugs": { 14 | "url": "https://github.com/kartik-v/bootstrap-fileinput/issues" 15 | }, 16 | "keywords": [ 17 | "bootstrap", 18 | "file", 19 | "input", 20 | "preview", 21 | "image", 22 | "upload", 23 | "ajax", 24 | "multiple", 25 | "delete", 26 | "progress", 27 | "gallery" 28 | ], 29 | "main": "./js/fileinput.js", 30 | "peerDependencies": { 31 | "jquery": ">= 1.9.0", 32 | "bootstrap": "~3" 33 | }, 34 | "license": "BSD-3-Clause" 35 | } 36 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/themes/fa/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v4.3.2 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Font Awesome icon theme configuration for bootstrap-fileinput. Requires font awesome assets to be loaded. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2016, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD 3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function ($) { 14 | "use strict"; 15 | 16 | $.fn.fileinputThemes.fa = { 17 | fileActionSettings: { 18 | removeIcon: '', 19 | uploadIcon: '', 20 | zoomIcon: '', 21 | dragIcon: '', 22 | indicatorNew: '', 23 | indicatorSuccess: '', 24 | indicatorError: '', 25 | indicatorLoading: '' 26 | }, 27 | layoutTemplates: { 28 | fileIcon: ' ' 29 | }, 30 | previewZoomButtonIcons: { 31 | prev: '', 32 | next: '', 33 | toggleheader: '', 34 | fullscreen: '', 35 | borderless: '', 36 | close: '' 37 | }, 38 | previewFileIcon: '', 39 | browseIcon: '', 40 | removeIcon: '', 41 | cancelIcon: '', 42 | uploadIcon: '', 43 | msgValidationErrorIcon: ' ' 44 | }; 45 | })(window.jQuery); 46 | -------------------------------------------------------------------------------- /static/js/bootstrap-fileinput-master/themes/gly/gly.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * bootstrap-fileinput v4.3.2 3 | * http://plugins.krajee.com/file-input 4 | * 5 | * Glyphicon (default) theme configuration for bootstrap-fileinput. 6 | * 7 | * Author: Kartik Visweswaran 8 | * Copyright: 2014 - 2016, Kartik Visweswaran, Krajee.com 9 | * 10 | * Licensed under the BSD 3-Clause 11 | * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md 12 | */ 13 | (function ($) { 14 | "use strict"; 15 | 16 | $.fn.fileinputThemes.gly = { 17 | fileActionSettings: { 18 | removeIcon: '', 19 | uploadIcon: '', 20 | zoomIcon: '', 21 | dragIcon: '', 22 | indicatorNew: '', 23 | indicatorSuccess: '', 24 | indicatorError: '', 25 | indicatorLoading: '' 26 | }, 27 | layoutTemplates: { 28 | fileIcon: '' 29 | }, 30 | previewZoomButtonIcons: { 31 | prev: '', 32 | next: '', 33 | toggleheader: '', 34 | fullscreen: '', 35 | borderless: '', 36 | close: '' 37 | }, 38 | previewFileIcon: '', 39 | browseIcon: ' ', 40 | removeIcon: '', 41 | cancelIcon: '', 42 | uploadIcon: '', 43 | msgValidationErrorIcon: ' ' 44 | }; 45 | })(window.jQuery); 46 | -------------------------------------------------------------------------------- /static/js/lightbox/css/lightbox.min.css: -------------------------------------------------------------------------------- 1 | .lb-loader,.lightbox{text-align:center;line-height:0}body:after{content:url(../images/close.png) url(../images/loading.gif) url(../images/prev.png) url(../images/next.png);display:none}.lb-dataContainer:after,.lb-outerContainer:after{content:"";clear:both}body.lb-disable-scrolling{overflow:hidden}.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:#000;filter:alpha(Opacity=80);opacity:.8;display:none}.lightbox{position:absolute;left:0;width:100%;z-index:10000;font-weight:400}.lightbox .lb-image{display:block;height:auto;max-width:inherit;border-radius:3px}.lightbox a img{border:none}.lb-outerContainer{position:relative;background-color:#fff;width:250px;height:250px;margin:0 auto;border-radius:4px}.lb-loader,.lb-nav{position:absolute;left:0}.lb-outerContainer:after{display:table}.lb-container{padding:4px}.lb-loader{top:43%;height:25%;width:100%}.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(../images/loading.gif) no-repeat}.lb-nav{top:0;height:100%;width:100%;z-index:10}.lb-container>.nav{left:0}.lb-nav a{outline:0;background-image:url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}.lb-next,.lb-prev{height:100%;cursor:pointer;display:block}.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(../images/prev.png) left 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-prev:hover{filter:alpha(Opacity=100);opacity:1}.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(../images/next.png) right 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-next:hover{filter:alpha(Opacity=100);opacity:1}.lb-dataContainer{margin:0 auto;padding-top:5px;width:100%;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.lb-dataContainer:after{display:table}.lb-data{padding:0 4px;color:#ccc}.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}.lb-data .lb-caption{font-size:13px;font-weight:700;line-height:1em}.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(../images/close.png) top right no-repeat;text-align:right;outline:0;filter:alpha(Opacity=70);opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.lb-data .lb-close:hover{cursor:pointer;filter:alpha(Opacity=100);opacity:1} -------------------------------------------------------------------------------- /static/js/lightbox/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/lightbox/images/close.png -------------------------------------------------------------------------------- /static/js/lightbox/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/lightbox/images/loading.gif -------------------------------------------------------------------------------- /static/js/lightbox/images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/lightbox/images/next.png -------------------------------------------------------------------------------- /static/js/lightbox/images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/js/lightbox/images/prev.png -------------------------------------------------------------------------------- /static/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /static/keditor/php/demo.php: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 15 | KindEditor PHP 16 | 17 | 18 | 19 | 20 | 21 | 43 | 44 | 45 | 46 |
47 | 48 |
49 | (提交快捷键: Ctrl + Enter) 50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /static/keditor/plugins/anchor/anchor.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('anchor', function(K) { 11 | var self = this, name = 'anchor', lang = self.lang(name + '.'); 12 | self.plugin.anchor = { 13 | edit : function() { 14 | var html = ['
', 15 | '
', 16 | '', 17 | '', 18 | '
', 19 | '
'].join(''); 20 | var dialog = self.createDialog({ 21 | name : name, 22 | width : 300, 23 | title : self.lang(name), 24 | body : html, 25 | yesBtn : { 26 | name : self.lang('yes'), 27 | click : function(e) { 28 | self.insertHtml('').hideDialog().focus(); 29 | } 30 | } 31 | }); 32 | var div = dialog.div, 33 | nameBox = K('input[name="name"]', div); 34 | var img = self.plugin.getSelectedAnchor(); 35 | if (img) { 36 | nameBox.val(unescape(img.attr('data-ke-name'))); 37 | } 38 | nameBox[0].focus(); 39 | nameBox[0].select(); 40 | }, 41 | 'delete' : function() { 42 | self.plugin.getSelectedAnchor().remove(); 43 | } 44 | }; 45 | self.clickToolbar(name, self.plugin.anchor.edit); 46 | }); 47 | -------------------------------------------------------------------------------- /static/keditor/plugins/baidumap/baidumap.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | // Baidu Maps: http://dev.baidu.com/wiki/map/index.php?title=%E9%A6%96%E9%A1%B5 11 | 12 | KindEditor.plugin('baidumap', function(K) { 13 | var self = this, name = 'baidumap', lang = self.lang(name + '.'); 14 | self.clickToolbar(name, function() { 15 | var html = ['
', 16 | '
', 17 | lang.address + ' ', 18 | '', 19 | '', 20 | '', 21 | '
', 22 | '
', 23 | '
'].join(''); 24 | var dialog = self.createDialog({ 25 | name : name, 26 | width : 600, 27 | title : self.lang(name), 28 | body : html, 29 | yesBtn : { 30 | name : self.lang('yes'), 31 | click : function(e) { 32 | var map = win.map; 33 | var centerObj = map.getCenter(); 34 | var center = centerObj.lng + ',' + centerObj.lat; 35 | var zoom = map.getZoom(); 36 | var url = ['http://api.map.baidu.com/staticimage', 37 | '?center=' + encodeURIComponent(center), 38 | '&zoom=' + encodeURIComponent(zoom), 39 | '&width=558', 40 | '&height=360', 41 | '&markers=' + encodeURIComponent(center), 42 | '&markerStyles=' + encodeURIComponent('l,A')].join(''); 43 | self.exec('insertimage', url).hideDialog().focus(); 44 | } 45 | }, 46 | beforeRemove : function() { 47 | searchBtn.remove(); 48 | if (doc) { 49 | doc.write(''); 50 | } 51 | iframe.remove(); 52 | } 53 | }); 54 | var div = dialog.div, 55 | addressBox = K('[name="address"]', div), 56 | searchBtn = K('[name="searchBtn"]', div), 57 | win, doc; 58 | var iframe = K(''); 59 | function ready() { 60 | win = iframe[0].contentWindow; 61 | doc = K.iframeDoc(iframe); 62 | } 63 | iframe.bind('load', function() { 64 | iframe.unbind('load'); 65 | if (K.IE) { 66 | ready(); 67 | } else { 68 | setTimeout(ready, 0); 69 | } 70 | }); 71 | K('.ke-map', div).replaceWith(iframe); 72 | // search map 73 | searchBtn.click(function() { 74 | win.search(addressBox.val()); 75 | }); 76 | }); 77 | }); 78 | -------------------------------------------------------------------------------- /static/keditor/plugins/baidumap/map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Baidu Maps 6 | 10 | 11 | 39 | 40 | 41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /static/keditor/plugins/clearhtml/clearhtml.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('clearhtml', function(K) { 11 | var self = this, name = 'clearhtml'; 12 | self.clickToolbar(name, function() { 13 | self.focus(); 14 | var html = self.html(); 15 | html = html.replace(/(]*>)([\s\S]*?)(<\/script>)/ig, ''); 16 | html = html.replace(/(]*>)([\s\S]*?)(<\/style>)/ig, ''); 17 | html = K.formatHtml(html, { 18 | a : ['href', 'target'], 19 | embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], 20 | img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], 21 | table : ['border'], 22 | 'td,th' : ['rowspan', 'colspan'], 23 | 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] 24 | }); 25 | self.html(html); 26 | self.cmd.selection(true); 27 | self.addBookmark(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /static/keditor/plugins/code/code.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | // google code prettify: http://google-code-prettify.googlecode.com/ 11 | // http://google-code-prettify.googlecode.com/ 12 | 13 | KindEditor.plugin('code', function(K) { 14 | var self = this, name = 'code'; 15 | self.clickToolbar(name, function() { 16 | var lang = self.lang(name + '.'), 17 | html = ['
', 18 | '
', 19 | '', 35 | '
', 36 | '', 37 | '
'].join(''), 38 | dialog = self.createDialog({ 39 | name : name, 40 | width : 450, 41 | title : self.lang(name), 42 | body : html, 43 | yesBtn : { 44 | name : self.lang('yes'), 45 | click : function(e) { 46 | var type = K('.ke-code-type', dialog.div).val(), 47 | code = textarea.val(), 48 | cls = type === '' ? '' : ' lang-' + type, 49 | html = '
\n' + K.escape(code) + '
'; 50 | self.insertHtml(html).hideDialog().focus(); 51 | } 52 | } 53 | }), 54 | textarea = K('textarea', dialog.div); 55 | textarea[0].focus(); 56 | }); 57 | }); 58 | -------------------------------------------------------------------------------- /static/keditor/plugins/code/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 2 | 3 | pre.prettyprint { 4 | border: 0; 5 | border-left: 3px solid rgb(204, 204, 204); 6 | margin-left: 2em; 7 | padding: 0.5em; 8 | font-size: 110%; 9 | display: block; 10 | font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; 11 | margin: 1em 0px; 12 | white-space: pre; 13 | } 14 | -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/0.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/1.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/10.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/100.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/101.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/101.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/102.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/103.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/104.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/105.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/106.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/107.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/108.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/109.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/11.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/110.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/111.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/112.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/113.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/114.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/115.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/116.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/117.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/118.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/119.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/12.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/120.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/121.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/122.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/123.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/124.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/124.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/125.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/126.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/127.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/128.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/129.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/13.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/130.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/131.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/132.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/133.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/134.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/14.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/15.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/16.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/17.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/18.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/19.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/2.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/20.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/21.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/22.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/23.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/24.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/25.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/26.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/27.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/28.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/29.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/3.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/30.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/31.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/32.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/33.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/34.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/35.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/36.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/37.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/38.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/39.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/4.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/40.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/41.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/42.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/43.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/44.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/45.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/46.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/47.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/48.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/49.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/5.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/50.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/51.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/52.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/53.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/54.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/55.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/56.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/57.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/58.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/59.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/6.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/60.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/61.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/62.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/63.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/64.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/65.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/66.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/67.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/68.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/69.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/7.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/70.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/71.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/72.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/72.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/73.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/73.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/74.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/74.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/75.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/75.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/76.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/76.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/77.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/77.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/78.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/78.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/79.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/79.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/8.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/80.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/81.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/81.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/82.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/82.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/83.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/83.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/84.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/84.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/85.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/85.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/86.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/86.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/87.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/87.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/88.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/88.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/89.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/89.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/9.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/90.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/90.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/91.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/91.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/92.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/92.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/93.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/93.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/94.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/94.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/95.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/95.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/96.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/96.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/97.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/97.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/98.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/98.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/99.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/99.gif -------------------------------------------------------------------------------- /static/keditor/plugins/emoticons/images/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/emoticons/images/static.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/file-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/filemanager/images/file-16.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/file-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/filemanager/images/file-64.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/folder-16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/filemanager/images/folder-16.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/folder-64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/filemanager/images/folder-64.gif -------------------------------------------------------------------------------- /static/keditor/plugins/filemanager/images/go-up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/filemanager/images/go-up.gif -------------------------------------------------------------------------------- /static/keditor/plugins/hide/hide.js: -------------------------------------------------------------------------------- 1 | KindEditor.plugin('hide', function(K) { 2 | var editor = this, name = 'hide'; 3 | var content = '', newcontent = '', tmp = ''; 4 | // 点击图标时执行 5 | editor.clickToolbar(name, function() { 6 | //editor.insertHtml(1); 7 | //alert(editor.cmd.range.startOffset+' '+editor.cmd.range.endOffset); 8 | content = editor.html(); 9 | var str = editor.selectedHtml(); 10 | 11 | if (str) { 12 | newcontent = content.replace(editor.selectedHtml(),''+str+''); 13 | editor.html(newcontent); 14 | } 15 | //alert(newcontent); 16 | //alert(editor.selectedHtml()); 17 | }); 18 | }); -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/align_left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/image/images/align_left.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/align_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/image/images/align_right.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/align_top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/image/images/align_top.gif -------------------------------------------------------------------------------- /static/keditor/plugins/image/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/image/images/refresh.png -------------------------------------------------------------------------------- /static/keditor/plugins/lineheight/lineheight.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('lineheight', function(K) { 11 | var self = this, name = 'lineheight', lang = self.lang(name + '.'); 12 | self.clickToolbar(name, function() { 13 | var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'}); 14 | if (commonNode) { 15 | curVal = commonNode.css('line-height'); 16 | } 17 | var menu = self.createMenu({ 18 | name : name, 19 | width : 150 20 | }); 21 | K.each(lang.lineHeight, function(i, row) { 22 | K.each(row, function(key, val) { 23 | menu.addItem({ 24 | title : val, 25 | checked : curVal === key, 26 | click : function() { 27 | self.cmd.toggle('', { 28 | span : '.line-height=' + key 29 | }); 30 | self.updateState(); 31 | self.addBookmark(); 32 | self.hideMenu(); 33 | } 34 | }); 35 | }); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /static/keditor/plugins/link/link.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('link', function(K) { 11 | var self = this, name = 'link'; 12 | self.plugin.link = { 13 | edit : function() { 14 | var lang = self.lang(name + '.'), 15 | html = '
' + 16 | //url 17 | '
' + 18 | '' + 19 | '
' + 20 | //type 21 | '
' + 22 | '' + 23 | '' + 24 | '
' + 25 | '
', 26 | dialog = self.createDialog({ 27 | name : name, 28 | width : 450, 29 | title : self.lang(name), 30 | body : html, 31 | yesBtn : { 32 | name : self.lang('yes'), 33 | click : function(e) { 34 | var url = K.trim(urlBox.val()); 35 | if (url == 'http://' || K.invalidUrl(url)) { 36 | alert(self.lang('invalidUrl')); 37 | urlBox[0].focus(); 38 | return; 39 | } 40 | self.exec('createlink', url, typeBox.val()).hideDialog().focus(); 41 | } 42 | } 43 | }), 44 | div = dialog.div, 45 | urlBox = K('input[name="url"]', div), 46 | typeBox = K('select[name="type"]', div); 47 | urlBox.val('http://'); 48 | typeBox[0].options[0] = new Option(lang.newWindow, '_blank'); 49 | typeBox[0].options[1] = new Option(lang.selfWindow, ''); 50 | self.cmd.selection(); 51 | var a = self.plugin.getSelectedLink(); 52 | if (a) { 53 | self.cmd.range.selectNode(a[0]); 54 | self.cmd.select(); 55 | urlBox.val(a.attr('data-ke-src')); 56 | typeBox.val(a.attr('target')); 57 | } 58 | urlBox[0].focus(); 59 | urlBox[0].select(); 60 | }, 61 | 'delete' : function() { 62 | self.exec('unlink', null); 63 | } 64 | }; 65 | self.clickToolbar(name, self.plugin.link.edit); 66 | }); 67 | -------------------------------------------------------------------------------- /static/keditor/plugins/map/map.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 53 | 54 | 55 |
56 | 57 | -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/multiimage/images/image.png -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/select-files-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/multiimage/images/select-files-en.png -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/select-files-zh_CN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/multiimage/images/select-files-zh_CN.png -------------------------------------------------------------------------------- /static/keditor/plugins/multiimage/images/swfupload.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/plugins/multiimage/images/swfupload.swf -------------------------------------------------------------------------------- /static/keditor/plugins/pagebreak/pagebreak.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('pagebreak', function(K) { 11 | var self = this, name = 'pagebreak'; 12 | self.clickToolbar(name, function() { 13 | var cmd = self.cmd, range = cmd.range; 14 | self.focus(); 15 | range.enlarge(true); 16 | cmd.split(true); 17 | var tail = self.newlineTag == 'br' || K.WEBKIT ? '' : '

'; 18 | self.insertHtml('
' + tail); 19 | if (tail !== '') { 20 | var p = K('#__kindeditor_tail_tag__', self.edit.doc); 21 | range.selectNodeContents(p[0]); 22 | p.removeAttr('id'); 23 | cmd.select(); 24 | } 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /static/keditor/plugins/plainpaste/plainpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('plainpaste', function(K) { 11 | var self = this, name = 'plainpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var html = textarea.val(); 27 | html = K.escape(html); 28 | html = html.replace(/ {2}/g, '  '); 29 | if (self.newlineTag == 'p') { 30 | html = html.replace(/^/, '

').replace(/$/, '

').replace(/\n/g, '

'); 31 | } else { 32 | html = html.replace(/\n/g, '
$&'); 33 | } 34 | self.insertHtml(html).hideDialog().focus(); 35 | } 36 | } 37 | }), 38 | textarea = K('textarea', dialog.div); 39 | textarea[0].focus(); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /static/keditor/plugins/preview/preview.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('preview', function(K) { 11 | var self = this, name = 'preview', undefined; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '

' + 15 | '' + 16 | '
', 17 | dialog = self.createDialog({ 18 | name : name, 19 | width : 750, 20 | title : self.lang(name), 21 | body : html 22 | }), 23 | iframe = K('iframe', dialog.div), 24 | doc = K.iframeDoc(iframe); 25 | doc.open(); 26 | doc.write(self.fullHtml()); 27 | doc.close(); 28 | K(doc.body).css('background-color', '#FFF'); 29 | iframe[0].contentWindow.focus(); 30 | }); 31 | }); 32 | -------------------------------------------------------------------------------- /static/keditor/plugins/quickformat/quickformat.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('quickformat', function(K) { 11 | var self = this, name = 'quickformat', 12 | blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p'); 13 | function getFirstChild(knode) { 14 | var child = knode.first(); 15 | while (child && child.first()) { 16 | child = child.first(); 17 | } 18 | return child; 19 | } 20 | self.clickToolbar(name, function() { 21 | self.focus(); 22 | var doc = self.edit.doc, 23 | range = self.cmd.range, 24 | child = K(doc.body).first(), next, 25 | nodeList = [], subList = [], 26 | bookmark = range.createBookmark(true); 27 | while(child) { 28 | next = child.next(); 29 | var firstChild = getFirstChild(child); 30 | if (!firstChild || firstChild.name != 'img') { 31 | if (blockMap[child.name]) { 32 | child.html(child.html().replace(/^(\s| | )+/ig, '')); 33 | child.css('text-indent', '2em'); 34 | } else { 35 | subList.push(child); 36 | } 37 | if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) { 38 | if (subList.length > 0) { 39 | nodeList.push(subList); 40 | } 41 | subList = []; 42 | } 43 | } 44 | child = next; 45 | } 46 | K.each(nodeList, function(i, subList) { 47 | var wrapper = K('

', doc); 48 | subList[0].before(wrapper); 49 | K.each(subList, function(i, knode) { 50 | wrapper.append(knode); 51 | }); 52 | }); 53 | range.moveToBookmark(bookmark); 54 | self.addBookmark(); 55 | }); 56 | }); 57 | 58 | /** 59 | -------------------------- 60 | abcd
61 | 1234
62 | 63 | to 64 | 65 |

66 | abcd
67 | 1234
68 |

69 | 70 | -------------------------- 71 | 72 |   abcd1233 73 |

1234

74 | 75 | to 76 | 77 |

abcd1233

78 |

1234

79 | 80 | -------------------------- 81 | */ -------------------------------------------------------------------------------- /static/keditor/plugins/template/html/1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入标题 9 |

10 |

11 | 在此处输入内容 12 |

13 | 14 | -------------------------------------------------------------------------------- /static/keditor/plugins/template/html/2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 标题 9 |

10 | 11 | 12 | 13 | 16 | 19 | 20 | 21 | 24 | 27 | 28 | 29 | 32 | 35 | 36 | 37 |
14 |

标题1

15 |
17 |

标题1

18 |
22 | 内容1 23 | 25 | 内容2 26 |
30 | 内容3 31 | 33 | 内容4 34 |
38 |

39 | 表格说明 40 |

41 | 42 | -------------------------------------------------------------------------------- /static/keditor/plugins/template/html/3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

8 | 在此处输入内容 9 |

10 |
    11 |
  1. 12 | 描述1 13 |
  2. 14 |
  3. 15 | 描述2 16 |
  4. 17 |
  5. 18 | 描述3 19 |
  6. 20 |
21 |

22 | 在此处输入内容 23 |

24 |
    25 |
  • 26 | 描述1 27 |
  • 28 |
  • 29 | 描述2 30 |
  • 31 |
  • 32 | 描述3 33 |
  • 34 |
35 | 36 | -------------------------------------------------------------------------------- /static/keditor/plugins/template/template.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('template', function(K) { 11 | var self = this, name = 'template', lang = self.lang(name + '.'), 12 | htmlPath = self.pluginsPath + name + '/html/'; 13 | function getFilePath(fileName) { 14 | return htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION); 15 | } 16 | self.clickToolbar(name, function() { 17 | var lang = self.lang(name + '.'), 18 | arr = ['
', 19 | '
', 20 | // left start 21 | '
', 22 | lang. selectTemplate + '
', 28 | // right start 29 | '
', 30 | ' ', 31 | '
', 32 | '
', 33 | '
', 34 | '', 35 | '
'].join(''); 36 | var dialog = self.createDialog({ 37 | name : name, 38 | width : 500, 39 | title : self.lang(name), 40 | body : html, 41 | yesBtn : { 42 | name : self.lang('yes'), 43 | click : function(e) { 44 | var doc = K.iframeDoc(iframe); 45 | self[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus(); 46 | } 47 | } 48 | }); 49 | var selectBox = K('select', dialog.div), 50 | checkbox = K('[name="replaceFlag"]', dialog.div), 51 | iframe = K('iframe', dialog.div); 52 | checkbox[0].checked = true; 53 | iframe.attr('src', getFilePath(selectBox.val())); 54 | selectBox.change(function() { 55 | iframe.attr('src', getFilePath(this.value)); 56 | }); 57 | }); 58 | }); 59 | -------------------------------------------------------------------------------- /static/keditor/plugins/wordpaste/wordpaste.js: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * KindEditor - WYSIWYG HTML Editor for Internet 3 | * Copyright (C) 2006-2011 kindsoft.net 4 | * 5 | * @author Roddy 6 | * @site http://www.kindsoft.net/ 7 | * @licence http://www.kindsoft.net/license.php 8 | *******************************************************************************/ 9 | 10 | KindEditor.plugin('wordpaste', function(K) { 11 | var self = this, name = 'wordpaste'; 12 | self.clickToolbar(name, function() { 13 | var lang = self.lang(name + '.'), 14 | html = '
' + 15 | '
' + lang.comment + '
' + 16 | '' + 17 | '
', 18 | dialog = self.createDialog({ 19 | name : name, 20 | width : 450, 21 | title : self.lang(name), 22 | body : html, 23 | yesBtn : { 24 | name : self.lang('yes'), 25 | click : function(e) { 26 | var str = doc.body.innerHTML; 27 | str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); 28 | self.insertHtml(str).hideDialog().focus(); 29 | } 30 | } 31 | }), 32 | div = dialog.div, 33 | iframe = K('iframe', div), 34 | doc = K.iframeDoc(iframe); 35 | if (!K.IE) { 36 | doc.designMode = 'on'; 37 | } 38 | doc.open(); 39 | doc.write('WordPaste'); 40 | doc.write(''); 41 | if (!K.IE) { 42 | doc.write('
'); 43 | } 44 | doc.write(''); 45 | doc.close(); 46 | if (K.IE) { 47 | doc.body.contentEditable = 'true'; 48 | } 49 | iframe[0].contentWindow.focus(); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /static/keditor/themes/common/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/common/anchor.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/common/blank.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/common/flash.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/common/loading.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/media.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/common/media.gif -------------------------------------------------------------------------------- /static/keditor/themes/common/rm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/common/rm.gif -------------------------------------------------------------------------------- /static/keditor/themes/default/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/default/background.png -------------------------------------------------------------------------------- /static/keditor/themes/default/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/default/default.png -------------------------------------------------------------------------------- /static/keditor/themes/qq/editor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/keditor/themes/qq/editor.gif -------------------------------------------------------------------------------- /static/keditor/themes/qq/qq.css: -------------------------------------------------------------------------------- 1 | /* container */ 2 | .ke-container-qq { 3 | display: block; 4 | border: 1px solid #c3c3c3; 5 | background-color: #FFF; 6 | overflow: hidden; 7 | margin: 0; 8 | padding: 0; 9 | } 10 | /* toolbar */ 11 | .ke-container-qq .ke-toolbar { 12 | border-bottom: 1px solid #c3c3c3; 13 | background-color: #FFFFFF; 14 | padding: 2px 5px; 15 | text-align: left; 16 | overflow: hidden; 17 | zoom: 1; 18 | } 19 | .ke-toolbar-icon-url { 20 | background-image: url(editor.gif); 21 | width:18px; 22 | *xwidth:20px; 23 | height:18px; 24 | *xheight:20px; 25 | } 26 | .ke-icon-checked{ 27 | background-image: url(../default/default.png); 28 | width:16px; 29 | height:16px; 30 | } 31 | .ke-container-qq .ke-icon-bold{ 32 | background-position: 4px 1px; 33 | } 34 | .ke-container-qq .ke-icon-italic{ 35 | background-position: -27px 1px; 36 | } 37 | .ke-container-qq .ke-icon-italic{ 38 | background-position: -28px 1px; 39 | } 40 | .ke-container-qq .ke-icon-underline{ 41 | background-position: -60px 1px; 42 | } 43 | .ke-container-qq .ke-icon-fontname{ 44 | background-position: -95px 1px; 45 | } 46 | .ke-container-qq .ke-icon-fontsize{ 47 | background-position: -128px 1px; 48 | } 49 | .ke-container-qq .ke-icon-forecolor{ 50 | background-position: -159px 1px; 51 | } 52 | .ke-container-qq .ke-icon-hilitecolor{ 53 | background-position: -190px 1px; 54 | } 55 | .ke-container-qq .ke-icon-plug-align{ 56 | background-position: -223px 1px; 57 | } 58 | .plug-align-justifyleft{ 59 | background-position: -350px 1px; 60 | } 61 | .plug-align-justifycenter{ 62 | background-position: -382px 1px; 63 | } 64 | .plug-align-justifyright{ 65 | background-position: -414px 1px; 66 | } 67 | .plug-order-insertorderedlist{ 68 | background-position: -446px 1px; 69 | } 70 | .plug-order-insertunorderedlist{ 71 | background-position: -477px 1px; 72 | } 73 | .plug-indent-indent{ 74 | background-position: -513px 1px; 75 | } 76 | .plug-indent-outdent{ 77 | background-position: -545px 1px; 78 | } 79 | .ke-container-qq .ke-icon-plug-order{ 80 | background-position: -255px 1px; 81 | } 82 | .ke-container-qq .ke-icon-plug-indent{ 83 | background-position: -287px 1px; 84 | } 85 | .ke-container-qq .ke-icon-link{ 86 | background-position: -319px 1px; 87 | } 88 | 89 | .ke-container-qq .ke-toolbar .ke-outline { 90 | cursor: default; 91 | padding:0px; 92 | border:1px solid #fff; 93 | } 94 | .ke-container-qq .ke-toolbar .ke-on { 95 | border-left:1px solid white; 96 | border-top:1px solid white; 97 | border-right:1px solid gray; 98 | border-bottom:1px solid gray; 99 | background-color: #FFFFFF; 100 | } 101 | .ke-container-qq .ke-toolbar .ke-selected { 102 | border-left:1px solid gray; 103 | border-top:1px solid gray; 104 | border-right:1px solid white; 105 | border-bottom:1px solid white; 106 | background-color: #FFFFFF; 107 | } 108 | .ke-container-qq .ke-toolbar .ke-disabled { 109 | cursor: default; 110 | } 111 | 112 | .ke-colorpicker-qq{ 113 | background:#fff; 114 | } 115 | /* statusbar */ 116 | .ke-container-qq .ke-statusbar { 117 | display:none; 118 | } 119 | /* menu */ 120 | .ke-menu-qq { 121 | border:1px solid #a6a6a6; 122 | position:absolute; 123 | background:#fff; 124 | -moz-box-shadow:2px 2px 4px #DDDDDD; 125 | z-index:999; 126 | left:-400px; 127 | top:-386px; 128 | right:218px; 129 | width:130px; 130 | } 131 | .ke-menu-qq .ke-menu-item { 132 | padding:0px; 133 | background:#fff; 134 | } 135 | .ke-menu-qq .ke-menu-item-on { 136 | border:1px solid #000080;background:#FFEEC2;color:#036; 137 | } 138 | .ke-menu-qq .ke-toolbar .ke-selected { 139 | border:1px solid #9a9afb; 140 | } 141 | .ke-menu-qq .ke-menu-item-left{ 142 | width:auto; 143 | } 144 | -------------------------------------------------------------------------------- /static/keditor/themes/simple/simple.css: -------------------------------------------------------------------------------- 1 | /* container */ 2 | .ke-container-simple { 3 | display: block; 4 | border: 1px solid #CCC; 5 | background-color: #FFF; 6 | overflow: hidden; 7 | } 8 | /* toolbar */ 9 | .ke-container-simple .ke-toolbar { 10 | border-bottom: 1px solid #CCC; 11 | background-color: #FFF; 12 | padding: 2px 5px; 13 | overflow: hidden; 14 | } 15 | .ke-container-simple .ke-toolbar .ke-outline { 16 | border: 1px solid #FFF; 17 | background-color: transparent; 18 | margin: 1px; 19 | padding: 1px 2px; 20 | font-size: 0; 21 | line-height: 0; 22 | overflow: hidden; 23 | cursor: pointer; 24 | } 25 | .ke-container-simple .ke-toolbar .ke-on { 26 | border: 1px solid #5690D2; 27 | } 28 | .ke-container-simple .ke-toolbar .ke-selected { 29 | border: 1px solid #5690D2; 30 | background-color: #E9EFF6; 31 | } 32 | .ke-container-simple .ke-toolbar .ke-disabled { 33 | cursor: default; 34 | } 35 | /* statusbar */ 36 | .ke-container-simple .ke-statusbar { 37 | position: relative; 38 | background-color: #FFF; 39 | border-top: 1px solid #CCCCCC; 40 | font-size: 0; 41 | line-height: 0; 42 | *height: 12px; 43 | overflow: hidden; 44 | text-align: center; 45 | cursor: s-resize; 46 | } 47 | /* menu */ 48 | .ke-menu-simple { 49 | border: 1px solid #A0A0A0; 50 | background-color: #FFF; 51 | color: #222222; 52 | padding: 2px; 53 | font-family: "sans serif",tahoma,verdana,helvetica; 54 | font-size: 12px; 55 | text-align: left; 56 | overflow: hidden; 57 | } 58 | .ke-menu-simple .ke-menu-item { 59 | border: 1px solid #FFF; 60 | background-color: #FFF; 61 | color: #222222; 62 | height: 24px; 63 | overflow: hidden; 64 | cursor: pointer; 65 | } 66 | .ke-menu-simple .ke-menu-item-on { 67 | border: 1px solid #5690D2; 68 | background-color: #FFF; 69 | } 70 | /* colorpicker */ 71 | .ke-colorpicker-simple { 72 | border: 1px solid #A0A0A0; 73 | background-color: #FEFEFE; 74 | color: #222222; 75 | padding: 2px; 76 | } 77 | .ke-colorpicker-simple .ke-colorpicker-cell { 78 | font-size: 0; 79 | line-height: 0; 80 | border: 1px solid #FEFEFE; 81 | cursor: pointer; 82 | margin:3px; 83 | padding:0; 84 | } 85 | .ke-colorpicker-simple .ke-colorpicker-cell-top { 86 | font-family: "sans serif",tahoma,verdana,helvetica; 87 | font-size: 12px; 88 | line-height: 24px; 89 | border: 1px solid #FEFEFE; 90 | cursor: pointer; 91 | margin:0; 92 | padding:0; 93 | text-align: center; 94 | } 95 | .ke-colorpicker-simple .ke-colorpicker-cell-on { 96 | border: 1px solid #5690D2; 97 | } 98 | .ke-colorpicker-simple .ke-colorpicker-cell-selected { 99 | border: 1px solid #2446AB; 100 | } 101 | -------------------------------------------------------------------------------- /static/uploadfile/2016-6/13/6df17b2e5bee99079bcf5b6370573f7e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/13/6df17b2e5bee99079bcf5b6370573f7e.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/13/8cf452b7a340b9af24691790744b2e2f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/13/8cf452b7a340b9af24691790744b2e2f.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/15e85af2d07a821080fb6042740dcfef.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/15e85af2d07a821080fb6042740dcfef.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/30a0c19a0bc631b17c153305e4057bf9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/30a0c19a0bc631b17c153305e4057bf9.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/36e0eb3e0c79a5a42f6b6a3d3d86acd0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/36e0eb3e0c79a5a42f6b6a3d3d86acd0.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/3cfff060d836fbc1d0b24d7a0983acf7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/3cfff060d836fbc1d0b24d7a0983acf7.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/3d512592859aa84faa56603b11477ab5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/3d512592859aa84faa56603b11477ab5.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/4be52d99a87a6814ba69966e91d5141e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/4be52d99a87a6814ba69966e91d5141e.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/4d6d51f99879a58555491b00afabc2c4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/4d6d51f99879a58555491b00afabc2c4.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/8227b410299a80e1c27b2a8ca3ac0e4f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/8227b410299a80e1c27b2a8ca3ac0e4f.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/aa6fb96a694becb35a59551a59b42e8f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/aa6fb96a694becb35a59551a59b42e8f.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/18/d821b0af29253b87dd81dd507ccd4dd4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/18/d821b0af29253b87dd81dd507ccd4dd4.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/7/0ef780a2f3bc341c2f84134bf64f9b1f.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/7/0ef780a2f3bc341c2f84134bf64f9b1f.jpeg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/7/7ce38ffb5cf3872cdb6813679298c9da.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/7/7ce38ffb5cf3872cdb6813679298c9da.jpg -------------------------------------------------------------------------------- /static/uploadfile/2016-6/8/741b7c9d67caf9fd0a97c98cc4af8fe9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/static/uploadfile/2016-6/8/741b7c9d67caf9fd0a97c98cc4af8fe9.jpg -------------------------------------------------------------------------------- /tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/tests/.DS_Store -------------------------------------------------------------------------------- /tests/default_test.go: -------------------------------------------------------------------------------- 1 | package test 2 | 3 | import ( 4 | "net/http" 5 | "net/http/httptest" 6 | "testing" 7 | "runtime" 8 | "path/filepath" 9 | _ "blog/routers" 10 | 11 | "github.com/astaxie/beego" 12 | . "github.com/smartystreets/goconvey/convey" 13 | ) 14 | 15 | func init() { 16 | _, file, _, _ := runtime.Caller(1) 17 | apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator)))) 18 | beego.TestBeegoInit(apppath) 19 | } 20 | 21 | 22 | // TestMain is a sample to run an endpoint test 23 | func TestMain(t *testing.T) { 24 | r, _ := http.NewRequest("GET", "/", nil) 25 | w := httptest.NewRecorder() 26 | beego.BeeApp.Handlers.ServeHTTP(w, r) 27 | 28 | beego.Trace("testing", "TestMain", "Code[%d]\n%s", w.Code, w.Body.String()) 29 | 30 | Convey("Subject: Test Station Endpoint\n", t, func() { 31 | Convey("Status Code Should Be 200", func() { 32 | So(w.Code, ShouldEqual, 200) 33 | }) 34 | Convey("The Result Should Not Be Empty", func() { 35 | So(w.Body.Len(), ShouldBeGreaterThan, 0) 36 | }) 37 | }) 38 | } 39 | 40 | -------------------------------------------------------------------------------- /tmp/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/tmp/.DS_Store -------------------------------------------------------------------------------- /tmp/f/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/tmp/f/.DS_Store -------------------------------------------------------------------------------- /tmp/f/a/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/tmp/f/a/.DS_Store -------------------------------------------------------------------------------- /tmp/f/a/faa1a85ca3f007a21047f1d8172b3e8a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/tmp/f/a/faa1a85ca3f007a21047f1d8172b3e8a -------------------------------------------------------------------------------- /utils/function.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "crypto/md5" 5 | "crypto/rand" 6 | "encoding/base64" 7 | "encoding/hex" 8 | "io" 9 | "math/big" 10 | "net/smtp" 11 | //"strconv" 12 | "fmt" 13 | "regexp" 14 | "strings" 15 | "time" 16 | 17 | "github.com/astaxie/beego" 18 | ) 19 | 20 | //md5方法 21 | func GetMd5String(s string) string { 22 | h := md5.New() 23 | h.Write([]byte(s)) 24 | return hex.EncodeToString(h.Sum(nil)) 25 | } 26 | 27 | //Guid方法 28 | func GetGuid() string { 29 | b := make([]byte, 48) 30 | 31 | if _, err := io.ReadFull(rand.Reader, b); err != nil { 32 | return "" 33 | } 34 | return GetMd5String(base64.URLEncoding.EncodeToString(b)) 35 | } 36 | 37 | //字串截取 38 | func SubString(s string, pos, length int) string { 39 | runes := []rune(s) 40 | l := pos + length 41 | if l > len(runes) { 42 | l = len(runes) 43 | } 44 | return string(runes[pos:l]) 45 | } 46 | 47 | func GetFileSuffix(s string) string { 48 | re, _ := regexp.Compile(".(jpg|jpeg|png|gif|exe|doc|docx|ppt|pptx|xls|xlsx)") 49 | suffix := re.ReplaceAllString(s, "") 50 | return suffix 51 | } 52 | 53 | /* 54 | * to: example@example.com;example1@163.com;example2@sina.com.cn;... 55 | * subject:The subject of mail 56 | * body: The content of mail 57 | */ 58 | 59 | func SendMail(to string, subject string, body string) error { 60 | user := beego.AppConfig.String("adminemail") 61 | password := beego.AppConfig.String("adminemailpass") 62 | host := beego.AppConfig.String("adminemailhost") 63 | 64 | hp := strings.Split(host, ":") 65 | auth := smtp.PlainAuth("", user, password, hp[0]) 66 | var content_type string 67 | content_type = "Content-type:text/html;charset=utf-8" 68 | 69 | msg := []byte("To: " + to + "\r\nFrom: " + user + "<" + user + ">\r\nSubject: " + subject + "\r\n" + content_type + "\r\n\r\n" + body) 70 | send_to := strings.Split(to, ";") 71 | err := smtp.SendMail(host, auth, user, send_to, msg) 72 | return err 73 | } 74 | 75 | func RandInt64(min, max int64) int64 { 76 | maxBigInt := big.NewInt(max) 77 | i, _ := rand.Int(rand.Reader, maxBigInt) 78 | if i.Int64() < min { 79 | RandInt64(min, max) 80 | } 81 | return i.Int64() 82 | } 83 | 84 | func GetDate(timestamp int64) string { 85 | tm := time.Unix(timestamp, 0) 86 | return tm.Format("2006-01-02 15:04") 87 | } 88 | func GetDateMH(timestamp int64) string { 89 | tm := time.Unix(timestamp, 0) 90 | return tm.Format("01-02 03:04") 91 | } 92 | func GetGravatar() string { 93 | i := RandInt64(1, 5) 94 | return "/static/img/avatar/" + fmt.Sprintf("%d", i) + ".jpg" 95 | } 96 | -------------------------------------------------------------------------------- /views/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lock-upme/beegoblog/47d07dc5d164a68b1a9c2b9af58f7f3183f89bf7/views/.DS_Store -------------------------------------------------------------------------------- /views/404.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 404 6 | 7 | 8 | 9 | 10 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /views/about.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{.pro.Realname}}-{{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 | {{template "inc/head.tpl" .}} 10 |
11 |
12 |
13 | 16 |
17 |

{{if .pro.Sex}}超级Man{{else}}小小女生{{end}}

18 |

出生:{{.pro.Birth}}

19 |

邮箱是:{{.pro.Email}}

20 |

这是我的电话: {{.pro.Phone}}

21 |

我的地址: {{.pro.Address}}

22 |

经常会做这些事:{{.pro.Hobby}}

23 |

我的介绍:{{.pro.Intro}}

24 |
25 |
26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /views/album-upload.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 图片上传-{{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 | 10 | {{template "inc/head.tpl" .}} 11 |
12 |
13 |
14 |
15 | 16 |

请选择图片

17 | 18 | 19 |
20 |
21 |
22 |
23 | {{template "inc/foot.tpl" .}} 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /views/album.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 相册-{{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 | 10 | {{template "inc/head.tpl" .}} 11 |
12 |
13 | {{if $.isLogin }} 14 |
15 | 34 |
35 |
36 | {{end}} 37 | {{range $k,$v := .alb}} 38 | 39 |
40 |
41 | {{$v.Title}} 42 |
43 |

{{$v.Title}}

44 |

{{substr $v.Summary 0 20}} 

45 | {{if $.isLogin }} 46 |

修改 {{if $v.Status}}正常{{else}}屏蔽{{end}}

{{end}} 47 |
48 |
49 |
50 | {{end}} 51 | 52 | {{if .paginator.HasPages}} 53 |
54 |
    55 | {{if .paginator.HasPrev}} 56 |
  • 首页
  • 57 |
  • «
  • 58 | {{else}} 59 |
  • 首页
  • 60 |
  • «
  • 61 | {{end}} 62 | {{range $index, $page := .paginator.Pages}} {{$page}} 63 | 64 | {{end}} 65 | {{if .paginator.HasNext}} 66 |
  • »
  • 67 |
  • 尾页
  • 68 | {{else}} 69 |
  • »
  • 70 |
  • 尾页
  • 71 | {{end}} 72 |
73 | {{end}} 74 |
75 |
76 | {{template "inc/foot.tpl" .}} 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /views/article-form.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 博客编辑-{{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 | {{template "inc/head.tpl" .}} 10 |
11 |
12 |
13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
22 | 23 | 24 |
25 |
26 | 27 | 28 |
29 |
30 | 31 | 32 |
33 |
34 | 35 | 36 |
37 |
38 | 39 | 42 | 45 |
46 | 47 | 48 | 49 |
50 |
51 |
52 | {{template "inc/foot.tpl" .}} 53 | 54 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /views/article.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 | {{template "inc/head.tpl" .}} 10 |
11 |
12 | {{if $.isLogin }} 13 |
14 | 33 |
34 |
35 | {{end}} 36 | {{range $k,$v := .art}} 37 |
38 |
39 |

{{$v.Title}}({{date $v.Created}})

40 |

{{$v.Summary}}

41 | {{if $.isLogin }}

{{if eq $v.Status 0}}{{end}} 修改

{{end}} 42 |
43 |
44 | {{end}} 45 | 46 | {{if .paginator.HasPages}} 47 |
    48 | {{if .paginator.HasPrev}} 49 |
  • 首页
  • 50 |
  • «
  • 51 | {{else}} 52 |
  • 首页
  • 53 |
  • «
  • 54 | {{end}} 55 | {{range $index, $page := .paginator.Pages}} {{$page}} 56 | 57 | {{end}} 58 | {{if .paginator.HasNext}} 59 |
  • »
  • 60 |
  • 尾页
  • 61 | {{else}} 62 |
  • »
  • 63 |
  • 尾页
  • 64 | {{end}} 65 |
66 | {{end}} 67 |
68 |
69 | 70 | 71 | -------------------------------------------------------------------------------- /views/inc/foot.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /views/inc/head.tpl: -------------------------------------------------------------------------------- 1 | 23 | -------------------------------------------------------------------------------- /views/inc/meta.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /views/login.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 登录-{{config "String" "globaltitle" ""}} 6 | {{template "inc/meta.tpl" .}} 7 | 8 | 9 |
10 | 23 |
24 | {{template "inc/foot.tpl" .}} 25 | 26 | 27 | --------------------------------------------------------------------------------