Upgrade to nick_site commit f981fa57, adds alerts and inactive sidebar option
[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         let images = await p.get_json('images')
20
21         // we can use higher resolution images when lower not available
22         while (images.length < 2)
23           images.push(images[images.length - 1])
24
25         div.my-3 {
26           a(href=images[0]) {
27             img.img-fluid(src=images[1]) {}
28           }
29         }
30
31         h3 {
32           `${await p.get_json('description')}—by ${await p.get_json('author')}`
33         }
34       }
35       finally {
36         transaction.rollback()
37       }
38
39       await body(_out)
40     },
41     scripts
42   )
43 }