some updates
							parent
							
								
									9773f5908b
								
							
						
					
					
						commit
						5dc65eb143
					
				| 
						 | 
				
			
			@ -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'
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
											
										
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue