401761b3d6e38e2cb8ebfd31be8825f3e4378b91
[ndcode_site.git] / _lib / blog_post.jst
1 let assert = require('assert')
2
3 return async (env, head, body, scripts) => {
4   let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
5   let get_navigation = await _require('/_lib/get_navigation.jst')
6   let navbar = await _require('/_lib/navbar.jst')
7
8   await navbar(
9     env,
10     head,
11     // body
12     async _out => {
13       await breadcrumbs(env, _out)
14
15       let transaction = await env.site.database.Transaction()
16       try {
17         let root = await transaction.get()
18         let p = await get_navigation(root, env.component_names)
19
20         div.row.mb-3 {
21           div.col-sm-12 {
22             img.img-responsive(
23               src=await p.get_json('image') || 'image.jpg'
24             ) {}
25           }
26         }
27
28         h3 {
29           `${await p.get_json('description')}—by ${await p.get_json('author')}`
30         }
31       }
32       finally {
33         transaction.rollback()
34       }
35
36       await body(_out)
37     },
38     scripts
39   )
40 }