MCPcopy Index your code
hub / github.com/TruthHun/BookStack / generate

Method generate

models/ebook.go:185–365  ·  view source on GitHub ↗

离线文档生成

(bookID int)

Source from the content-addressed store, hash-verified

183
184//离线文档生成
185func (m *Ebook) generate(bookID int) {
186 book, err := NewBook().Find(bookID)
187 if err != nil {
188 beego.Error(err)
189 return
190 }
191
192 debug := true
193 if beego.AppConfig.String("runmode") == "prod" {
194 debug = false
195 }
196
197 nickname := NewMember().GetNicknameByUid(book.MemberId)
198 docs, err := NewDocument().FindListByBookId(book.BookId)
199 if err != nil {
200 beego.Error(err)
201 return
202 }
203 cfg := converter.Config{
204 Contributor: beego.AppConfig.String("exportCreator"),
205 Cover: "",
206 Creator: beego.AppConfig.String("exportCreator"),
207 Timestamp: book.ReleaseTime.Format("2006-01-02"),
208 Description: book.Description,
209 Header: beego.AppConfig.String("exportHeader"),
210 Footer: beego.AppConfig.String("exportFooter"),
211 Identifier: book.Identify,
212 Language: "zh-CN",
213 Publisher: beego.AppConfig.String("exportCreator"),
214 Title: book.BookName,
215 Format: ebookExts,
216 FontSize: beego.AppConfig.String("exportFontSize"),
217 PaperSize: beego.AppConfig.String("exportPaperSize"),
218 More: []string{
219 "--pdf-page-margin-bottom", beego.AppConfig.DefaultString("exportMarginBottom", "72"),
220 "--pdf-page-margin-left", beego.AppConfig.DefaultString("exportMarginLeft", "72"),
221 "--pdf-page-margin-right", beego.AppConfig.DefaultString("exportMarginRight", "72"),
222 "--pdf-page-margin-top", beego.AppConfig.DefaultString("exportMarginTop", "72"),
223 },
224 }
225
226 folder := fmt.Sprintf("cache/books/%v/", book.Identify)
227 os.MkdirAll(folder, os.ModePerm)
228 if !debug {
229 defer os.RemoveAll(folder)
230 }
231
232 if beego.AppConfig.DefaultBool("exportCustomCover", false) {
233 // 生成书籍封面
234 if err = utils.RenderCoverByBookIdentify(book.Identify); err != nil {
235 beego.Error(err)
236 }
237 cover := "cover.png"
238 if _, err = os.Stat(folder + cover); err != nil {
239 cover = ""
240 }
241 // 用相对路径
242 cfg.Cover = cover

Callers 3

CheckAndGenerateEbookMethod · 0.95
toBufferFunction · 0.80
toBufferFunction · 0.80

Calls 15

GetFiledByIdMethod · 0.95
ExecuteViewPathTemplateFunction · 0.92
GetTextFromHtmlFunction · 0.92
RenderDocumentByIdFunction · 0.92
NewBookFunction · 0.85
NewMemberFunction · 0.85
NewDocumentFunction · 0.85
NewDocumentStoreFunction · 0.85
GetNicknameByUidMethod · 0.80
FindListByBookIdMethod · 0.80
appendFunction · 0.50

Tested by

no test coverage detected