render.jsView |
---|
| 1 … | +var fs = require('fs') |
1 | 2 … | var path = require('path') |
| 3 … | +var proc = require('child_process') |
2 | 4 … | var pull = require("pull-stream") |
3 | 5 … | var marked = require("ssb-marked") |
4 | 6 … | var htime = require("human-time") |
5 | 7 … | var emojis = require("emoji-named-characters") |
6 | 8 … | var cat = require("pull-cat") |
7 | 9 … | var h = require('hyperscript') |
8 | 10 … | var refs = require('ssb-ref') |
| 11 … | +var pkg = require('./package') |
9 | 12 … | |
|
10 | 13 … | var emojiDir = path.join(require.resolve("emoji-named-characters"), "../pngs") |
11 | 14 … | |
12 | 15 … | exports.wrapPage = wrapPage |
156 | 159 … | pull.map(renderRss.bind(this, opts)) |
157 | 160 … | ) |
158 | 161 … | } |
159 | 162 … | |
| 163 … | +const gitHead = proc.spawnSync('git', ['rev-parse', 'HEAD'], { |
| 164 … | + encoding: 'utf8', |
| 165 … | + cwd: __dirname |
| 166 … | +}).stdout.trim() |
| 167 … | +const gitHeadShort = gitHead && gitHead.substr(0, 7) |
| 168 … | +const commitUrl = pkg.homepage && |
| 169 … | + pkg.homepage.replace(/\/+$/, '') + '/commit/' + gitHead |
| 170 … | +const gitLink = !gitHead ? '' : |
| 171 … | + !commitUrl ? `<code title="${gitHead}">${gitHeadShort}</code>` : |
| 172 … | + `<a href="${commitUrl}" title="${gitHead}"><code>${gitHeadShort}</code></a>` |
| 173 … | + |
| 174 … | +const footer = ` |
| 175 … | +<div class=footer>AGPLv3 © <a href="${pkg.homepage}">${pkg.name}</a> ${gitLink}</div> |
| 176 … | +` |
| 177 … | + |
160 | 178 … | function wrapPage(id) { |
161 | 179 … | return wrap( |
162 | 180 … | "<!doctype html><html><head>" + |
163 | 181 … | "<meta charset=utf-8>" + |
166 | 184 … | "</title>" + |
167 | 185 … | '<meta name=viewport content="width=device-width,initial-scale=1">' + |
168 | 186 … | styles + |
169 | 187 … | "</head><body>", |
170 | | - "</body></html>" |
| 188 … | + footer + "\n</body></html>" |
171 | 189 … | ) |
172 | 190 … | } |
173 | 191 … | |
174 | 192 … | function wrapRss(id, opts) { |
288 | 306 … | width: 13em; |
289 | 307 … | text-align: center; |
290 | 308 … | text-decoration: none; |
291 | 309 … | margin-top: 20px; |
292 | | - margin-bottom: 60px; |
| 310 … | + margin-bottom: 30px; |
293 | 311 … | background-color: #5c7cfa; |
294 | 312 … | padding: 15px 0; |
295 | 313 … | color: #edf2ff; |
296 | 314 … | border-radius: 3px; |
302 | 320 … | } |
303 | 321 … | .attending { |
304 | 322 … | text-align: center; |
305 | 323 … | } |
| 324 … | + .footer { |
| 325 … | + text-align: center; |
| 326 … | + margin-bottom: 10px; |
| 327 … | + font-size: 14px; |
| 328 … | + color: #868e96; |
| 329 … | + } |
306 | 330 … | </style> |
307 | 331 … | ` |
308 | 332 … | |
309 | 333 … | function wrapJSON() { |