Prechádzať zdrojové kódy

Allow partials in data object; use partials in github pattern to add star and fork count

sbkwgh 7 rokov pred
rodič
commit
ded566d301

+ 4 - 0
frontend/src/assets/scss/elementStyles.scss

@@ -267,6 +267,10 @@ b, strong {
 		max-height: 100px;
 		margin-right: 0.5rem;
 	}
+
+	#{&}__partial {
+		margin-top: 0.5rem;
+	}
 }
 
 blockquote.twitter-tweet {

+ 5 - 0
lib/linkPreview/getPreviewHTML.js

@@ -12,6 +12,11 @@ module.exports = function getPreviewHTML (data) {
 			<h2>
 				from <%= hostname %>
 			</h2>
+			<% if(locals.partial) { %>
+				<div class='link_preview__partial'>
+					<%- partial %>
+				</div>
+			<% } %>
 			<% if(locals.image || locals.description) { %>
 				<p>
 					<% if(locals.image) { %>

+ 14 - 1
lib/linkPreview/patterns/github.js

@@ -1,4 +1,5 @@
 let url = require('url');
+let ejs = require('ejs');
 let axios = require('axios');
 
 module.exports = {
@@ -10,10 +11,22 @@ module.exports = {
 			let pathname = url.parse(link_url).pathname;
 			let res = await axios.get('https://api.github.com/repos' + pathname);
 
+			let partialTemplate = `
+				<a href='<%= html_url + '/stargazers' %>' target='_blank' rel='noopener noreferer'>
+					<%= stargazers_count %> stargazer<%= stargazers_count === 1 ? '' : 's' %>
+				</a>
+				and
+				<a href='<%= html_url + '/network' %>' target='_blank' rel='noopener noreferer'>
+					<%= forks_count %> fork<%= forks_count === 1 ? '' : 's' %>
+				</a>
+			`;
+
 			return {
 				title: res.data.full_name,
 				url: res.data.html_url,
-				description: res.data.description
+				description: res.data.description,
+				partial: ejs.render(partialTemplate, res.data),
+				image: res.data.owner.avatar_url
 			};
 		} catch (e) {
 			console.log(e)