mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-09-22 08:30:42 +02:00
✨ Support read-only publish service
* 🎨 kernel supports read-only publishing services * 🐛 Fix authentication vulnerabilities * 🎨 Protect secret information * 🎨 Adjust the permission control * 🎨 Adjust the permission control * 🎨 Fixed the vulnerability that `getFile` gets file `conf.json` * 🎨 Add API `/api/setting/setPublish` * 🎨 Add API `/api/setting/getPublish` * 🐛 Fixed the issue that PWA-related files could not pass BasicAuth * 🎨 Add a settings panel for publishing features * 📝 Add guide for `Publish Service` * 📝 Update Japanese user guide * 🎨 Merge fixed static file services
This commit is contained in:
parent
536879cb84
commit
ba2193403d
47 changed files with 3690 additions and 375 deletions
|
@ -17,44 +17,17 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"mime"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/88250/gulu"
|
||||
"github.com/88250/lute/ast"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/conf"
|
||||
"github.com/siyuan-note/siyuan/kernel/model"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
)
|
||||
|
||||
func serveSnippets(c *gin.Context) {
|
||||
filePath := strings.TrimPrefix(c.Request.URL.Path, "/snippets/")
|
||||
ext := filepath.Ext(filePath)
|
||||
name := strings.TrimSuffix(filePath, ext)
|
||||
confSnippets, err := model.LoadSnippets()
|
||||
if nil != err {
|
||||
logging.LogErrorf("load snippets failed: %s", err)
|
||||
c.Status(404)
|
||||
return
|
||||
}
|
||||
|
||||
for _, s := range confSnippets {
|
||||
if s.Name == name && ("" != ext && s.Type == ext[1:]) {
|
||||
c.Header("Content-Type", mime.TypeByExtension(ext))
|
||||
c.String(http.StatusOK, s.Content)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 没有在配置文件中命中时在文件系统上查找
|
||||
filePath = filepath.Join(util.SnippetsPath, filePath)
|
||||
c.File(filePath)
|
||||
}
|
||||
|
||||
func getSnippet(c *gin.Context) {
|
||||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(http.StatusOK, ret)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue