From a388b6a0251de305c5ca302747ab4d16f7edcfb4 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Mon, 14 Sep 2015 18:18:26 +0100 Subject: [PATCH] working settings --- edit/edit.go | 2 +- frontmatter/frontmatter.go | 3 +- hugo.go | 6 +-- page/page.go | 9 +++- settings/settings.go | 40 +++++++++++++--- static/css/main.css | 94 ++++++++++++++++++++++++++----------- static/hugo.png | Bin 0 -> 49506 bytes static/js/app.js | 38 +++++++++++++++ templates/base_full.tmpl | 47 +++++++++++-------- templates/frontmatter.tmpl | 10 ++-- templates/settings.tmpl | 3 +- 11 files changed, 187 insertions(+), 65 deletions(-) create mode 100644 static/hugo.png diff --git a/edit/edit.go b/edit/edit.go index 0b3d0d7f..9716ccd1 100644 --- a/edit/edit.go +++ b/edit/edit.go @@ -50,7 +50,7 @@ func Execute(w http.ResponseWriter, r *http.Request) (int, error) { page := new(page.Page) page.Title = "Edit" page.Body = inf - return page.Render(w, "edit") + return page.Render(w, r, "edit") } return 200, nil diff --git a/frontmatter/frontmatter.go b/frontmatter/frontmatter.go index 2cfb5117..f4e97012 100644 --- a/frontmatter/frontmatter.go +++ b/frontmatter/frontmatter.go @@ -24,12 +24,12 @@ func Pretty(content []byte, language string) (interface{}, error) { return []string{}, err } + //log.Print(c) return rawToPretty(c, ""), nil } type frontmatter struct { Name string - Tag string Content interface{} SubContent bool } @@ -55,7 +55,6 @@ func rawToPretty(config interface{}, master string) interface{} { for index := range names { c := new(frontmatter) c.Name = names[index] - c.Tag = master + "_" + names[index] c.SubContent = false i := config.(map[string]interface{})[names[index]] diff --git a/hugo.go b/hugo.go index ea2b1f4a..d3d3e6f3 100644 --- a/hugo.go +++ b/hugo.go @@ -1,4 +1,4 @@ -//go:generate go-bindata -pkg assets -o assets/assets.go static/css/ static/js/ templates/ +//go:generate go-bindata -pkg assets -o assets/assets.go static/css/ static/js/ templates/ static/ package hugo @@ -31,8 +31,8 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) if middleware.Path(r.URL.Path).Matches("/admin") { page := parseComponents(r)[1] - if page == "assets" { - filename := strings.Replace(r.URL.Path, "/admin/assets", "static", 1) + if page == "static" { + filename := strings.Replace(r.URL.Path, "/admin/", "", 1) file, err := assets.Asset(filename) if err != nil { diff --git a/page/page.go b/page/page.go index c8be31cc..cffb5fd5 100644 --- a/page/page.go +++ b/page/page.go @@ -24,8 +24,13 @@ type Page struct { } // Render the page -func (p *Page) Render(w http.ResponseWriter, templates ...string) (int, error) { - templates = append(templates, "base_full") +func (p *Page) Render(w http.ResponseWriter, r *http.Request, templates ...string) (int, error) { + if r.URL.Query().Get("minimal") == "true" { + templates = append(templates, "base_minimal") + } else { + templates = append(templates, "base_full") + } + var tpl *template.Template for i, t := range templates { diff --git a/settings/settings.go b/settings/settings.go index 66280ea0..1727db99 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -1,6 +1,8 @@ package settings import ( + "bytes" + "encoding/json" "io/ioutil" "log" "net/http" @@ -8,20 +10,46 @@ import ( "github.com/hacdias/caddy-hugo/frontmatter" "github.com/hacdias/caddy-hugo/page" + "github.com/spf13/hugo/commands" ) +type test struct { + Test string +} + // Execute the page func Execute(w http.ResponseWriter, r *http.Request) (int, error) { + language := getConfigFrontMatter() + + if language == "" { + log.Print("Configuration frontmatter can't be defined") + return 500, nil + } + if r.Method == "POST" { + err := os.Remove("config." + language) - } else { - language := getConfigFrontMatter() - - if language == "" { - log.Print("Configuration frontmatter can't be defined") + if err != nil { + log.Print(err) return 500, nil } + buf := new(bytes.Buffer) + buf.ReadFrom(r.Body) + raw := buf.Bytes() + + content := new(bytes.Buffer) + json.Indent(content, raw, "", " ") + + err = ioutil.WriteFile("config.json", content.Bytes(), 0666) + + if err != nil { + log.Print(err) + return 500, err + } + + commands.Execute() + } else { content, err := ioutil.ReadFile("config." + language) if err != nil { @@ -39,7 +67,7 @@ func Execute(w http.ResponseWriter, r *http.Request) (int, error) { page := new(page.Page) page.Title = "Settings" page.Body = f - return page.Render(w, "settings", "frontmatter") + return page.Render(w, r, "settings", "frontmatter") } return 200, nil } diff --git a/static/css/main.css b/static/css/main.css index b4073cc7..57839442 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -1,36 +1,76 @@ body { - font-family: 'Roboto', sans-serif; - padding-top: 3em; + font-family: 'Roboto', sans-serif; + color: #212121; + height: 100%; + width: 100%; } - -/* SITE HEADER */ - -.site-header { - height: 3em; - width: 100%; - background-color: #263238; - color: #fff; - padding: 0 2em; - box-sizing: border-box; - position: fixed; - top: 0; - left: 0; +header { + position: fixed; + top: 0; + left: 0; + height: 3em; + width: 100%; + background-color: #212121; + padding: 0 2em; + box-sizing: border-box; + z-index: 999; + color: #fff; +} +header nav {} header nav ul { + margin: 0; + padding: 0; +} +header nav ul li { + list-style-type: none; + display: inline-block; + vertical-align: middle; +} +header nav img { + height: 2em; +} +header nav ul li a { + padding: 0.5em 0.5em; + line-height: 2em; + display: block; + text-decoration: none; + color: inherit; + transition: .5s ease background-color; +} +header nav ul li a:hover { + background-color: rgba(255, 255, 255, 0.3); +} +main { + top: 3em; + position: relative; } - .content { - margin: 1.5em auto; - width: 80%; - max-width: 960px; + margin: 1.5em auto; + width: 80%; + max-width: 800px; } - textarea { - width: 100%; - min-height: 50em; - resize: vertical; - border: 0; - font-family: inherit; + width: 100%; + min-height: 50em; + resize: vertical; + border: 0; + font-family: inherit; } -.block { - margin: 1em 0; +/* FORMS */ + +form { + } + +form input { + +color: rgba(0, 0, 0, 0.41);width: 15em;line-height: 1.25em;margin: .5em 0;border: 1px solid #fff;transition: .5s ease-out all;} + +form input:focus { + color: inherit; + outline: 0; + border-bottom: 1px solid #2196F3; +} + +form label { +width: 10.5em;display: inline-block;} diff --git a/static/hugo.png b/static/hugo.png new file mode 100644 index 0000000000000000000000000000000000000000..aa15c5ed2933dc65392c75a1c52a02058397a827 GIT binary patch literal 49506 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 N)OFQL|Gx9j{{al?0bl?C literal 0 HcmV?d00001 diff --git a/static/js/app.js b/static/js/app.js index e69de29b..7375b563 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -0,0 +1,38 @@ +$(document).ready(function() { + $('form').submit(function(event) { + var data = JSON.stringify($(this).serializeField()) + var url = $(this).attr('action') + + $.ajax({ + type : 'POST', + url : url, + data : data, + dataType : 'json', + encode : true + }).done(function(data) { + console.log(data); + }); + + event.preventDefault(); + }); +}); + +$.fn.serializeField = function() { + var result = {}; + this.each(function() { + $(this).find("> *").each(function() { + var $this = $(this); + var name = $this.attr("name"); + + if ($this.is("fieldset") && name) { + result[name] = $this.serializeField(); + } + else { + $.each($this.serializeArray(), function() { + result[this.name] = this.value; + }); + } + }); + }); + return result; +}; diff --git a/templates/base_full.tmpl b/templates/base_full.tmpl index 8ffdf5d0..7e801a1a 100644 --- a/templates/base_full.tmpl +++ b/templates/base_full.tmpl @@ -1,28 +1,37 @@ - - - - - - {{ .Title }} + + + + + +{{ .Title }} - + - - + + - - - + + + - - + +
+ +
+
+ {{ template "content" . }} +
+
-{{ template "content" . }} - -
+
diff --git a/templates/frontmatter.tmpl b/templates/frontmatter.tmpl index cb9261b1..f705aa39 100644 --- a/templates/frontmatter.tmpl +++ b/templates/frontmatter.tmpl @@ -1,11 +1,13 @@ {{ define "frontmatter" }} {{ range $key, $value := . }} {{ if $value.SubContent }} -

{{ splitCapitalize $value.Name }}

- {{ template "frontmatter" $value.Content }} +
+ {{ splitCapitalize $value.Name }} + {{ template "frontmatter" $value.Content }} +
{{ else}} - -
+ +
{{ end }} {{ end }} {{ end }} diff --git a/templates/settings.tmpl b/templates/settings.tmpl index 7dc8c79f..e53ad1a0 100644 --- a/templates/settings.tmpl +++ b/templates/settings.tmpl @@ -3,8 +3,9 @@ {{ with .Body }}

Settings

-
+ {{ template "frontmatter" . }} +
{{ end }}