Commit d9737b8da7935049dc1e0bfb9b0147eada9f7843
Merge remote-tracking branch 'origin/hyperscript'
cel committed on 7/19/2017, 1:43:04 AMParent: 07ff4c602e229a458d6210ac0c19dc2b699b740f
Parent: ccc712bad78a439c6287c829554052b9cd943a4b
Files changed
index.js | changed |
render.js | changed |
index.js | ||
---|---|---|
@@ -172,9 +172,9 @@ | ||
172 | 172 … | delete channelSubscriptions[msg.value.content.channel] |
173 | 173 … | } |
174 | 174 … | }) |
175 | 175 … | |
176 | - serveFeeds(req, res, following, channelSubscriptions, feedId, 'user feed ' + about.name) | |
176 … | + serveFeeds(req, res, following, channelSubscriptions, feedId, 'user feed ' + (about ? about.name : "")) | |
177 | 177 … | }) |
178 | 178 … | ) |
179 | 179 … | }) |
180 | 180 … | } |
@@ -224,9 +224,9 @@ | ||
224 | 224 … | pull( |
225 | 225 … | pull.values(logs), |
226 | 226 … | paramap(addAuthorAbout, 8), |
227 | 227 … | paramap(addVoteMessage, 8), |
228 | - pull(renderThread(defaultOpts, | |
228 … | + pull(renderThread(defaultOpts, '', | |
229 | 229 … | renderShowAll(showAll, req.url)), |
230 | 230 … | wrapPage('#' + channelId)), |
231 | 231 … | toPull(res, function (err) { |
232 | 232 … | if (err) console.error('[viewer]', err) |
render.js | ||
---|---|---|
@@ -42,13 +42,19 @@ | ||
42 | 42 … | return href; |
43 | 43 … | }; |
44 | 44 … | |
45 | 45 … | MdRenderer.prototype.image = function(href, title, text) { |
46 | - return h('img', | |
47 | - { src: this.opts.img_base + href, | |
48 | - alt: text, | |
49 | - title: title | |
50 | - }).outerHTML; | |
46 … | + if (text.endsWith(".svg")) | |
47 … | + return h('object', | |
48 … | + { type: 'image/svg+xml', | |
49 … | + data: href, | |
50 … | + alt: text }).outerHTML; | |
51 … | + else | |
52 … | + return h('img', | |
53 … | + { src: this.opts.img_base + href, | |
54 … | + alt: text, | |
55 … | + title: title | |
56 … | + }).outerHTML; | |
51 | 57 … | }; |
52 | 58 … | |
53 | 59 … | function renderEmoji(emoji) { |
54 | 60 … | var opts = this.renderer.opts; |
@@ -76,9 +82,9 @@ | ||
76 | 82 … | |
77 | 83 … | function formatMsgs(id, ext, opts) { |
78 | 84 … | switch (ext || "html") { |
79 | 85 … | case "html": |
80 | - return pull(renderThread(opts), wrapPage(id)); | |
86 … | + return pull(renderThread(opts, id, ''), wrapPage(id)); | |
81 | 87 … | case "js": |
82 | 88 … | return pull(renderThread(opts), wrapJSEmbed(opts)); |
83 | 89 … | case "json": |
84 | 90 … | return wrapJSON(); |
@@ -113,27 +119,26 @@ | ||
113 | 119 … | figCaption.innerHTML = 'Feed of ' + about.name + '<br>' + |
114 | 120 … | (about.description != undefined ? |
115 | 121 … | marked(about.description, opts.marked) : ''); |
116 | 122 … | return pull( |
117 | - pull.map(renderMsg.bind(this, opts)), | |
123 … | + pull.map(renderMsg.bind(this, opts, '')), | |
118 | 124 … | wrap(toolTipTop() + '<main>' + |
119 | 125 … | h('article', |
120 | 126 … | h('header', |
121 | 127 … | h('figure', |
122 | 128 … | h('img', |
123 | 129 … | { src: opts.img_base + about.image, |
124 | - height: 200, | |
125 | - width: 200 | |
130 … | + style: 'max-height: 200px; max-width: 200px;' | |
126 | 131 … | }), |
127 | 132 … | figCaption) |
128 | 133 … | )).outerHTML, |
129 | 134 … | showAllHTML + '</main>' + callToAction()) |
130 | 135 … | ); |
131 | 136 … | } |
132 | 137 … | |
133 | -function renderThread(opts, showAllHTML = "") { | |
138 … | +function renderThread(opts, id, showAllHTML = "") { | |
134 | 139 … | return pull( |
135 | - pull.map(renderMsg.bind(this, opts)), | |
140 … | + pull.map(renderMsg.bind(this, opts, id)), | |
136 | 141 … | wrap(toolTipTop() + '<main>', |
137 | 142 … | showAllHTML + '</main>' + callToAction()) |
138 | 143 … | ); |
139 | 144 … | } |
@@ -332,9 +337,9 @@ | ||
332 | 337 … | function docWrite(str) { |
333 | 338 … | return "document.write(" + JSON.stringify(str) + ")\n"; |
334 | 339 … | } |
335 | 340 … | |
336 | -function renderMsg(opts, msg) { | |
341 … | +function renderMsg(opts, id, msg) { | |
337 | 342 … | var c = msg.value.content || {}; |
338 | 343 … | var name = encodeURIComponent(msg.key); |
339 | 344 … | return h('article#' + name, |
340 | 345 … | h('header', |
@@ -346,9 +351,9 @@ | ||
346 | 351 … | h('a.ssb-avatar-name', |
347 | 352 … | { href: opts.base + escape(msg.value.author) }, |
348 | 353 … | msg.author.name), |
349 | 354 … | msgTimestamp(msg, opts.base + name)))), |
350 | - render(opts, c)).outerHTML; | |
355 … | + render(opts, id, c)).outerHTML; | |
351 | 356 … | } |
352 | 357 … | |
353 | 358 … | function renderRss(opts, msg) { |
354 | 359 … | var c = msg.value.content || {}; |
@@ -386,18 +391,18 @@ | ||
386 | 391 … | function formatDate(date) { |
387 | 392 … | return htime(date); |
388 | 393 … | } |
389 | 394 … | |
390 | -function render(opts, c) { | |
395 … | +function render(opts, id, c) { | |
391 | 396 … | var base = opts.base; |
392 | 397 … | if (c.type === "post") { |
393 | 398 … | var channel = c.channel |
394 | 399 … | ? h('div.top-right', |
395 | 400 … | h('a', |
396 | 401 … | { href: base + 'channel/' + c.channel }, |
397 | 402 … | '#' + c.channel)) |
398 | 403 … | : ""; |
399 | - return [channel, renderPost(opts, c)]; | |
404 … | + return [channel, renderPost(opts, id, c)]; | |
400 | 405 … | } else if (c.type == "vote" && c.vote.expression == "Dig") { |
401 | 406 … | var channel = c.channel |
402 | 407 … | ? [' in ', |
403 | 408 … | h('a', |
@@ -442,18 +447,23 @@ | ||
442 | 447 … | else if (c.type == "issue") { |
443 | 448 … | return [h('span.status', |
444 | 449 … | "Created a git issue" + |
445 | 450 … | (c.repoName != undefined ? " in repo " + c.repoName : ""), |
446 | - renderPost(opts, c))]; | |
451 … | + renderPost(opts, id, c))]; | |
447 | 452 … | } |
448 | - else if (c.type == "git-update") { | |
453 … | + else if (c.type == "git-repo") { | |
449 | 454 … | return h('span.status', |
450 | - "Did a git update " + | |
451 | - (c.repoName != undefined ? " in repo " + c.repoName : "") + | |
452 | - '<br>' + | |
453 | - (c.commits != undefined ? | |
454 | - c.commits.map(com => { return "-" +com.title; }).join('<br>') : "")); | |
455 … | + "Created a git repo " + c.name); | |
455 | 456 … | } |
457 … | + else if (c.type == "git-update") { | |
458 … | + var s = h('span.status'); | |
459 … | + s.innerHTML = "Did a git update " + | |
460 … | + (c.repoName != undefined ? " in repo " + c.repoName : "") + | |
461 … | + '<br>' + | |
462 … | + (c.commits != undefined ? | |
463 … | + c.commits.map(com => { return "-" +com.title; }).join('<br>') : ""); | |
464 … | + return s; | |
465 … | + } | |
456 | 466 … | else if (c.type == "ssb-dns") { |
457 | 467 … | return [h('span.status', 'Updated DNS'), renderDefault(c)]; |
458 | 468 … | } |
459 | 469 … | else if (c.type == "pub") { |
@@ -473,18 +483,23 @@ | ||
473 | 483 … | '#' + c.channel)) |
474 | 484 … | else return renderDefault(c); |
475 | 485 … | } |
476 | 486 … | |
477 | -function renderPost(opts, c) { | |
487 … | +function renderPost(opts, id, c) { | |
478 | 488 … | opts.mentions = {}; |
479 | 489 … | if (Array.isArray(c.mentions)) { |
480 | 490 … | c.mentions.forEach(function (link) { |
481 | 491 … | if (link && link.name && link.link) |
482 | 492 … | opts.mentions[link.name] = link.link; |
483 | 493 … | }); |
484 | 494 … | } |
485 | 495 … | var s = h('section'); |
486 | - s.innerHTML = marked(String(c.text), opts.marked); | |
496 … | + var content = ''; | |
497 … | + if (c.root && c.root != id) | |
498 … | + content += 'Re: ' + h('a', | |
499 … | + { href: '/' + encodeURIComponent(c.root) }, | |
500 … | + c.root.substring(0, 10)).outerHTML + '<br>'; | |
501 … | + s.innerHTML = content + marked(String(c.text), opts.marked); | |
487 | 502 … | return s; |
488 | 503 … | } |
489 | 504 … | |
490 | 505 … | function renderDefault(c) { |
Built with git-ssb-web