當前位置: 首頁>>代碼示例>>Golang>>正文


Golang middleware.Context類代碼示例

本文整理匯總了Golang中github.com/peachdocs/peach/modules/middleware.Context的典型用法代碼示例。如果您正苦於以下問題:Golang Context類的具體用法?Golang Context怎麽用?Golang Context使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Context類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: Docs

func Docs(ctx *middleware.Context) {
	toc := models.Tocs[ctx.Locale.Language()]
	if toc == nil {
		toc = models.Tocs[setting.Docs.Langs[0]]
	}
	ctx.Data["Toc"] = toc

	nodeName := strings.TrimPrefix(strings.ToLower(strings.TrimSuffix(ctx.Req.URL.Path, ".html")), setting.Page.DocsBaseURL)
	node, isDefault := toc.GetDoc(nodeName)
	if node == nil {
		NotFound(ctx)
		return
	}
	if !setting.ProdMode {
		node.ReloadContent()
	}

	langVer := toc.Lang
	if isDefault {
		ctx.Data["IsShowingDefault"] = isDefault
		langVer = setting.Docs.Langs[0]
	}
	ctx.Data["Title"] = node.Title
	ctx.Data["Content"] = fmt.Sprintf(`<script type="text/javascript" src="/%s/%s?=%d"></script>`, langVer, node.DocumentPath+".js", node.LastBuildTime)

	renderEditPage(ctx, node.DocumentPath)
	ctx.HTML(200, "docs")
}
開發者ID:52M,項目名稱:peach,代碼行數:28,代碼來源:docs.go

示例2: Pages

func Pages(ctx *middleware.Context) {
	toc := models.Tocs[ctx.Locale.Language()]
	if toc == nil {
		toc = models.Tocs[setting.Docs.Langs[0]]
	}

	pageName := strings.ToLower(strings.TrimSuffix(ctx.Req.URL.Path[1:], ".html"))
	for i := range toc.Pages {
		if toc.Pages[i].Name == pageName {
			page := toc.Pages[i]
			if !com.IsFile(page.FileName) {
				ctx.Data["IsShowingDefault"] = true
				page = models.Tocs[setting.Docs.Langs[0]].Pages[i]
			}
			if !setting.ProdMode {
				page.ReloadContent()
			}

			ctx.Data["Title"] = page.Title
			ctx.Data["Content"] = fmt.Sprintf(`<script type="text/javascript" src="/%s/%s?=%d"></script>`, toc.Lang, page.DocumentPath+".js", page.LastBuildTime)
			ctx.Data["Pages"] = toc.Pages

			renderEditPage(ctx, page.DocumentPath)
			ctx.HTML(200, "docs")
			return
		}
	}

	NotFound(ctx)
}
開發者ID:TDose,項目名稱:peach,代碼行數:30,代碼來源:home.go

示例3: Home

func Home(ctx *middleware.Context) {
	if !setting.Page.HasLandingPage {
		ctx.Redirect(setting.Page.DocsBaseURL)
		return
	}

	ctx.HTML(200, "home")
}
開發者ID:TDose,項目名稱:peach,代碼行數:8,代碼來源:home.go

示例4: Docs

func Docs(ctx *middleware.Context) {
	toc := models.Tocs[ctx.Locale.Language()]
	if toc == nil {
		toc = models.Tocs[setting.Docs.Langs[0]]
	}
	ctx.Data["Toc"] = toc

	nodeName := strings.TrimPrefix(strings.ToLower(strings.TrimSuffix(ctx.Req.URL.Path, ".html")), setting.Page.DocsBaseURL)
	title, content, isDefault := toc.GetDoc(nodeName)
	if content == nil {
		NotFound(ctx)
		return
	}
	ctx.Data["Title"] = title
	ctx.Data["Content"] = string(content)
	ctx.Data["IsShowingDefault"] = isDefault
	ctx.HTML(200, "docs")
}
開發者ID:0-T-0,項目名稱:peach,代碼行數:18,代碼來源:docs.go

示例5: Hook

func Hook(ctx *middleware.Context) {
	if ctx.Query("secret") != setting.Docs.Secret {
		ctx.Error(403)
		return
	}

	log.Info("Incoming hook update request")
	if err := models.ReloadDocs(); err != nil {
		ctx.Error(500)
		return
	}
	ctx.Status(200)
}
開發者ID:TDose,項目名稱:peach,代碼行數:13,代碼來源:docs.go

示例6: DocsStatic

func DocsStatic(ctx *middleware.Context) {
	if len(ctx.Params("*")) > 0 {
		f, err := os.Open(path.Join(models.Tocs[setting.Docs.Langs[0]].RootPath, "images", ctx.Params("*")))
		if err != nil {
			ctx.JSON(500, map[string]interface{}{
				"error": err.Error(),
			})
			return
		}
		defer f.Close()

		_, err = io.Copy(ctx.Resp, f)
		if err != nil {
			ctx.JSON(500, map[string]interface{}{
				"error": err.Error(),
			})
			return
		}
		return
	}
	ctx.Error(404)
}
開發者ID:TDose,項目名稱:peach,代碼行數:22,代碼來源:docs.go

示例7: Pages

func Pages(ctx *middleware.Context) {
	toc := models.Tocs[ctx.Locale.Language()]
	if toc == nil {
		toc = models.Tocs[setting.Docs.Langs[0]]
	}

	pageName := strings.ToLower(strings.TrimSuffix(ctx.Req.URL.Path[1:], ".html"))
	for i := range toc.Pages {
		if toc.Pages[i].Name == pageName {
			page := toc.Pages[i]
			if !com.IsFile(page.FileName) {
				ctx.Data["IsShowingDefault"] = true
				page = models.Tocs[setting.Docs.Langs[0]].Pages[i]
			}
			ctx.Data["Title"] = page.Title
			ctx.Data["Content"] = string(page.Content())
			ctx.Data["Pages"] = toc.Pages
			ctx.HTML(200, "docs")
			return
		}
	}

	NotFound(ctx)
}
開發者ID:0-T-0,項目名稱:peach,代碼行數:24,代碼來源:home.go

示例8: Protect

func Protect(ctx *middleware.Context) {
	if !models.Protector.HasProtection {
		return
	}

	// Check if resource is protected.
	allows, yes := models.Protector.Resources[strings.TrimPrefix(ctx.Req.URL.Path, "/docs/")]
	if !yes {
		return
	}

	// Check if auth is presented.
	authHead := ctx.Req.Header.Get("Authorization")
	if len(authHead) == 0 {
		authRequired(ctx)
		return
	}

	auths := strings.Fields(authHead)
	if len(auths) != 2 || auths[0] != "Basic" {
		ctx.Error(401)
		return
	}

	uname, passwd, err := basicAuthDecode(auths[1])
	if err != nil {
		ctx.Error(401)
		return
	}

	// Check if auth is valid.
	if models.Protector.Users[uname] != encodeMd5(passwd) {
		ctx.Error(401)
		return
	}

	// Check if user has access to the resource.
	if !allows[uname] {
		ctx.Error(403)
		return
	}
}
開發者ID:52M,項目名稱:peach,代碼行數:42,代碼來源:protect.go

示例9: NotFound

func NotFound(ctx *middleware.Context) {
	ctx.Data["Title"] = "404"
	ctx.HTML(404, "404")
}
開發者ID:TDose,項目名稱:peach,代碼行數:4,代碼來源:home.go

示例10: authRequired

func authRequired(ctx *middleware.Context) {
	ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=\".\"")
	ctx.Error(401)
}
開發者ID:52M,項目名稱:peach,代碼行數:4,代碼來源:protect.go


注:本文中的github.com/peachdocs/peach/modules/middleware.Context類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。