mirror of
https://github.com/schollz/cowyo.git
synced 2023-08-10 21:13:00 +03:00
Add -css option for custom CSS on the /read page
This commit is contained in:
parent
5ae5c91945
commit
2040dbaaa5
31
handlers.go
31
handlers.go
@ -17,7 +17,9 @@ import (
|
|||||||
"github.com/schollz/cowyo/encrypt"
|
"github.com/schollz/cowyo/encrypt"
|
||||||
)
|
)
|
||||||
|
|
||||||
func serve(host, port, crt_path, key_path string, TLS bool) {
|
var customCSS []byte
|
||||||
|
|
||||||
|
func serve(host, port, crt_path, key_path string, TLS bool, cssFile string) {
|
||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
router := gin.Default()
|
router := gin.Default()
|
||||||
store := sessions.NewCookieStore([]byte("secret"))
|
store := sessions.NewCookieStore([]byte("secret"))
|
||||||
@ -45,6 +47,17 @@ func serve(host, port, crt_path, key_path string, TLS bool) {
|
|||||||
// start long-processes as threads
|
// start long-processes as threads
|
||||||
go thread_SiteMap()
|
go thread_SiteMap()
|
||||||
|
|
||||||
|
// collect custom CSS
|
||||||
|
if len(cssFile) > 0 {
|
||||||
|
var errRead error
|
||||||
|
customCSS, errRead = ioutil.ReadFile(cssFile)
|
||||||
|
if errRead != nil {
|
||||||
|
fmt.Println(errRead.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Printf("Loaded CSS file, %d bytes\n", len(customCSS))
|
||||||
|
}
|
||||||
|
|
||||||
if TLS {
|
if TLS {
|
||||||
http.ListenAndServeTLS(host+":"+port, crt_path, key_path, router)
|
http.ListenAndServeTLS(host+":"+port, crt_path, key_path, router)
|
||||||
} else {
|
} else {
|
||||||
@ -166,12 +179,22 @@ func handlePageRequest(c *gin.Context) {
|
|||||||
data, _ := Asset("/static/img/cowyo/favicon.ico")
|
data, _ := Asset("/static/img/cowyo/favicon.ico")
|
||||||
c.Data(http.StatusOK, contentType("/static/img/cowyo/favicon.ico"), data)
|
c.Data(http.StatusOK, contentType("/static/img/cowyo/favicon.ico"), data)
|
||||||
return
|
return
|
||||||
|
} else if page == "/static/css/custom.css" {
|
||||||
|
c.Data(http.StatusOK, contentType("custom.css"), customCSS)
|
||||||
|
return
|
||||||
} else if page == "static" {
|
} else if page == "static" {
|
||||||
filename := page + command
|
filename := page + command
|
||||||
data, err := Asset(filename)
|
var data []byte
|
||||||
if err != nil {
|
fmt.Println(filename)
|
||||||
|
if filename == "static/css/custom.css" {
|
||||||
|
data = customCSS
|
||||||
|
} else {
|
||||||
|
var errAssset error
|
||||||
|
data, errAssset = Asset(filename)
|
||||||
|
if errAssset != nil {
|
||||||
c.String(http.StatusInternalServerError, "Could not find data")
|
c.String(http.StatusInternalServerError, "Could not find data")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
c.Data(http.StatusOK, contentType(filename), data)
|
c.Data(http.StatusOK, contentType(filename), data)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -291,7 +314,7 @@ func handlePageRequest(c *gin.Context) {
|
|||||||
"HasDotInName": strings.Contains(page, "."),
|
"HasDotInName": strings.Contains(page, "."),
|
||||||
"RecentlyEdited": getRecentlyEdited(page, c),
|
"RecentlyEdited": getRecentlyEdited(page, c),
|
||||||
"IsPublished": p.IsPublished,
|
"IsPublished": p.IsPublished,
|
||||||
"CustomCSS": "",
|
"CustomCSS": len(customCSS) > 0,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
7
main.go
7
main.go
@ -38,7 +38,7 @@ func main() {
|
|||||||
} else {
|
} else {
|
||||||
fmt.Printf("\nRunning cowyo server (version %s) at http://%s:%s\n\n", version, host, c.GlobalString("port"))
|
fmt.Printf("\nRunning cowyo server (version %s) at http://%s:%s\n\n", version, host, c.GlobalString("port"))
|
||||||
}
|
}
|
||||||
serve(c.GlobalString("host"), c.GlobalString("port"), c.GlobalString("cert"), c.GlobalString("key"), TLS)
|
serve(c.GlobalString("host"), c.GlobalString("port"), c.GlobalString("cert"), c.GlobalString("key"), TLS, c.GlobalString("css"))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
app.Flags = []cli.Flag{
|
app.Flags = []cli.Flag{
|
||||||
@ -72,6 +72,11 @@ func main() {
|
|||||||
Value: "",
|
Value: "",
|
||||||
Usage: "absolute path to SSL private key",
|
Usage: "absolute path to SSL private key",
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "css",
|
||||||
|
Value: "",
|
||||||
|
Usage: "use a custom CSS file",
|
||||||
|
},
|
||||||
cli.BoolFlag{
|
cli.BoolFlag{
|
||||||
Name: "debug, d",
|
Name: "debug, d",
|
||||||
Usage: "turn on debugging",
|
Usage: "turn on debugging",
|
||||||
|
@ -22,7 +22,8 @@
|
|||||||
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||||
<meta name="theme-color" content="#fff">
|
<meta name="theme-color" content="#fff">
|
||||||
|
|
||||||
{{ if and .CustomCSS .IsPublished }}
|
{{ if and .CustomCSS .ReadPage }}
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/css/custom.css">
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<script type="text/javascript" src="/static/js/jquery-1.8.3.js"></script>
|
<script type="text/javascript" src="/static/js/jquery-1.8.3.js"></script>
|
||||||
<link rel="stylesheet" type="text/css" href="/static/css/github-markdown.css">
|
<link rel="stylesheet" type="text/css" href="/static/css/github-markdown.css">
|
||||||
|
Loading…
Reference in New Issue
Block a user