some updates

This commit is contained in:
Henrique Dias 2015-09-19 14:47:59 +01:00
parent 9773f5908b
commit 5dc65eb143
6 changed files with 37 additions and 15 deletions

View File

@ -75,7 +75,11 @@ module.exports = function(grunt) {
'node_modules/jquery-pjax/jquery.pjax.js',
'node_modules/jquery-serializejson/jquery.serializejson.min.js',
'node_modules/codemirror/lib/codemirror.js',
'node_modules/codemirror/mode/markdown/markdown.js'
'node_modules/codemirror/mode/css/css.js',
'node_modules/codemirror/mode/javascript/javascript.js',
'node_modules/codemirror/mode/markdown/markdown.js',
'node_modules/codemirror/mode/sass/sass.js',
'node_modules/codemirror/mode/htmlmixed/htmlmixed.js'
]
}
},

View File

@ -1 +1 @@
$(document).ready(function(){$(document).pjax("a","#main")}),$(document).on("ready pjax:success",function(){$(".scroll").perfectScrollbar(),$("#logout").click(function(a){return a.preventDefault(),$.ajax({type:"GET",url:"/admin",async:!1,username:"username",password:"password",headers:{Authorization:"Basic xxx"}}).fail(function(){window.location="/"}),!1}),$(".editor")[0]&&(editor=!1,preview=$("#preview-area"),textarea=$("#content-area"),textarea[0]&&(options={mode:"markdown",theme:"mdn-like",lineWrapping:!0,lineNumbers:!0,scrollbarStyle:null},"markdown"==textarea.data("extension")&&(options.lineNumbers=!1),editor=CodeMirror.fromTextArea(textarea[0],options)),codemirror=$(".CodeMirror"),$("#preview").click(function(a){if(a.preventDefault(),"true"==$(this).data("previewing"))preview.hide(),codemirror.fadeIn(),$(this).data("previewing","false"),notification({text:"Think, relax and do the better you can!",type:"information",timeout:2e3});else{editor.save();var b=new showdown.Converter,c=textarea.val(),d=b.makeHtml(c);codemirror.hide(),preview.html(d).fadeIn(),$(this).data("previewing","true"),notification({text:"This is how your post looks like.",type:"information",timeout:2e3})}return!1}),$("form").submit(function(a){a.preventDefault();var b=JSON.stringify($(this).serializeJSON()),c=$(this).find("input[type=submit]:focus");console.log(b),$.ajax({type:"POST",url:window.location,data:b,headers:{"X-Regenerate":c.data("regenerate"),"X-Content-Type":c.data("type")},dataType:"json",encode:!0}).done(function(a){notification({text:c.data("message"),type:"success",timeout:5e3})}).fail(function(a){notification({text:"Something went wrong.",type:"error"}),console.log(a)})}),$(".add").click(function(a){return a.preventDefault(),fieldset=$(this).closest("fieldset"),fieldset.append('<input name="'+fieldset.attr("name")+'" id="'+fieldset.attr("name")+'" value=""></input><br>'),!1}))}),$(document).on("pjax:send",function(){$("#loading").fadeIn()}),$(document).on("pjax:complete",function(){$("#loading").fadeOut()}),$.noty.themes.admin={name:"admin",helpers:{},modal:{css:{position:"fixed",width:"100%",height:"100%",backgroundColor:"#000",zIndex:1e4,opacity:.6,display:"none",left:0,top:0}}},$.noty.defaults={layout:"topRight",theme:"admin",dismissQueue:!0,animation:{open:"animated bounceInRight",close:"animated fadeOut",easing:"swing",speed:500},timeout:!1,force:!1,modal:!1,maxVisible:5,killer:!1,closeWith:["click"],callback:{onShow:function(){},afterShow:function(){},onClose:function(){},afterClose:function(){},onCloseClick:function(){}},buttons:!1},notification=function(a){var b;switch(a.type){case"success":b='<i class="fa fa-check"></i>';break;case"error":b='<i class="fa fa-times"></i>';break;case"warning":b='<i class="fa fa-exclamation"></i>';break;case"information":b='<i class="fa fa-info"></i>';break;default:b='<i class="fa fa-bell"></i>'}var c={template:'<div class="noty_message"><span class="noty_icon">'+b+'</span><span class="noty_text"></span></div>'};a=$.extend({},c,a),noty(a)};
$(document).ready(function(){$(document).pjax("a","#main")}),$(document).on("ready pjax:success",function(){$(".scroll").perfectScrollbar(),$("#logout").click(function(a){return a.preventDefault(),$.ajax({type:"GET",url:"/admin",async:!1,username:"username",password:"password",headers:{Authorization:"Basic xxx"}}).fail(function(){window.location="/"}),!1}),$(".editor")[0]&&(editor=!1,preview=$("#preview-area"),textarea=$("#content-area"),textarea[0]&&(options={mode:textarea.data("mode"),theme:"mdn-like",lineWrapping:!0,lineNumbers:!0,scrollbarStyle:null},"markdown"==textarea.data("mode")&&(options.lineNumbers=!1),editor=CodeMirror.fromTextArea(textarea[0],options)),codemirror=$(".CodeMirror"),$("#preview").click(function(a){if(a.preventDefault(),"true"==$(this).data("previewing"))preview.hide(),codemirror.fadeIn(),$(this).data("previewing","false"),notification({text:"Think, relax and do the better you can!",type:"information",timeout:2e3});else{editor.save();var b=new showdown.Converter,c=textarea.val(),d=b.makeHtml(c);codemirror.hide(),preview.html(d).fadeIn(),$(this).data("previewing","true"),notification({text:"This is how your post looks like.",type:"information",timeout:2e3})}return!1}),$("form").submit(function(a){a.preventDefault();var b=JSON.stringify($(this).serializeJSON()),c=$(this).find("input[type=submit]:focus");console.log(b),$.ajax({type:"POST",url:window.location,data:b,headers:{"X-Regenerate":c.data("regenerate"),"X-Content-Type":c.data("type")},dataType:"json",encode:!0}).done(function(a){notification({text:c.data("message"),type:"success",timeout:5e3})}).fail(function(a){notification({text:"Something went wrong.",type:"error"}),console.log(a)})}),$(".add").click(function(a){return a.preventDefault(),fieldset=$(this).closest("fieldset"),fieldset.append('<input name="'+fieldset.attr("name")+'" id="'+fieldset.attr("name")+'" value=""></input><br>'),!1}))}),$(document).on("pjax:send",function(){$("#loading").fadeIn()}),$(document).on("pjax:complete",function(){$("#loading").fadeOut()}),$.noty.themes.admin={name:"admin",helpers:{},modal:{css:{position:"fixed",width:"100%",height:"100%",backgroundColor:"#000",zIndex:1e4,opacity:.6,display:"none",left:0,top:0}}},$.noty.defaults={layout:"topRight",theme:"admin",dismissQueue:!0,animation:{open:"animated bounceInRight",close:"animated fadeOut",easing:"swing",speed:500},timeout:!1,force:!1,modal:!1,maxVisible:5,killer:!1,closeWith:["click"],callback:{onShow:function(){},afterShow:function(){},onClose:function(){},afterClose:function(){},onCloseClick:function(){}},buttons:!1},notification=function(a){var b;switch(a.type){case"success":b='<i class="fa fa-check"></i>';break;case"error":b='<i class="fa fa-times"></i>';break;case"warning":b='<i class="fa fa-exclamation"></i>';break;case"information":b='<i class="fa fa-info"></i>';break;default:b='<i class="fa fa-bell"></i>'}var c={template:'<div class="noty_message"><span class="noty_icon">'+b+'</span><span class="noty_text"></span></div>'};a=$.extend({},c,a),noty(a)};

File diff suppressed because one or more lines are too long

View File

@ -33,14 +33,14 @@ $(document).on('ready pjax:success', function() {
if (textarea[0]) {
options = {
mode: 'markdown',
mode: textarea.data("mode"),
theme: 'mdn-like',
lineWrapping: true,
lineNumbers: true,
scrollbarStyle: null
}
if (textarea.data("extension") == "markdown") {
if (textarea.data("mode") == "markdown") {
options.lineNumbers = false
}

View File

@ -20,7 +20,7 @@ import (
type editor struct {
Name string
Class string
Extension string
Mode string
Content string
FrontMatter interface{}
}
@ -174,13 +174,15 @@ func get(w http.ResponseWriter, r *http.Request, filename string) (int, error) {
// Create a new editor variable and set the extension
page := new(editor)
page.Extension = strings.TrimPrefix(filepath.Ext(filename), ".")
page.Mode = strings.TrimPrefix(filepath.Ext(filename), ".")
page.Name = filename
// Sanitize the extension
page.Mode = sanitizeMode(page.Mode)
// Handle the content depending on the file extension
switch page.Extension {
case "markdown", "md":
page.Extension = "markdown"
switch page.Mode {
case "markdown":
if hasFrontMatterRune(file) {
// Starts a new buffer and parses the file using Hugo's functions
buffer := bytes.NewBuffer(file)
@ -208,7 +210,7 @@ func get(w http.ResponseWriter, r *http.Request, filename string) (int, error) {
if hasFrontMatterRune(file) {
page.FrontMatter, err = frontmatter.Pretty(file)
} else {
page.FrontMatter, err = frontmatter.Pretty(appendFrontMatterRune(file, page.Extension))
page.FrontMatter, err = frontmatter.Pretty(appendFrontMatterRune(file, page.Mode))
}
// Check if there were any errors
@ -256,3 +258,18 @@ func appendFrontMatterRune(frontmatter []byte, language string) []byte {
return frontmatter
}
func sanitizeMode(extension string) string {
switch extension {
case "markdown", "md":
return "markdown"
case "css", "scss":
return "css"
case "html":
return "htmlmixed"
case "js":
return "javascript"
default:
return extension
}
}

View File

@ -21,13 +21,13 @@
{{ else if eq .Class "content-only" }}
<div class="container">
<div class="content">
<textarea id="content-area" name="content" class="scroll" data-extension="{{ .Extension }}">{{ .Content }}</textarea>
<textarea id="content-area" name="content" class="scroll" data-mode="{{ .Mode }}">{{ .Content }}</textarea>
<div id="preview-area" class="scroll hidden"></div>
</div>
</div>
{{ else }}
<div class="container">
<textarea id="content-area" name="content" class="scroll" data-extension="{{ .Extension }}">{{ .Content }}</textarea>
<textarea id="content-area" name="content" class="scroll" data-mode="{{ .Mode }}">{{ .Content }}</textarea>
<div id="preview-area" class="scroll hidden"></div>
</div>
<div class="sidebar scroll">
@ -39,7 +39,7 @@
</div>
<div class="action-bar">
{{ if or (eq .Extension "markdown") (eq .Extension "md") (eq .Class "full") }}
{{ if or (eq .Mode "markdown") (eq .Class "full") }}
<button id="preview" class="left">Preview</button>
{{ else }}
<span class="left"></span>