From 60655400b4382ac11a10036620be85b7a5166593 Mon Sep 17 00:00:00 2001 From: Jerome Thiry Date: Wed, 27 Dec 2017 15:23:08 +0100 Subject: [PATCH] :bug: Use latest tag for image source URL in the readme --- lib/package-detail-view.js | 16 ++++++++++------ lib/package-manager.coffee | 8 ++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/package-detail-view.js b/lib/package-detail-view.js index 7fe27024..a8489470 100644 --- a/lib/package-detail-view.js +++ b/lib/package-detail-view.js @@ -372,21 +372,25 @@ export default class PackageDetailView { readme = fs.readFileSync(this.readmePath, {encoding: 'utf8'}) } - let readmeSrc - if (this.pack.path) { // If package is installed, use installed path - readmeSrc = this.pack.path + let readmeSrc = this.pack.path + this.initView(readme, readmeSrc) } else { // If package isn't installed, use url path - let repoUrl = this.packageManager.getRepositoryUrl(this.pack) + let repoURL = this.packageManager.getRepositoryUrl(this.pack) // Check if URL is undefined (i.e. package is unpublished) - if (repoUrl) { - readmeSrc = repoUrl + `/blob/master/` + if (repoURL) { + // This only serves for img src + this.packageManager.getReadmeSrc(repoURL).then(readmeSrc => + this.initView(readme, readmeSrc) + ) } } + } + initView (readme, readmeSrc) { const readmeView = new PackageReadmeView(readme, readmeSrc) if (this.readmeView) { this.readmeView.element.parentElement.replaceChild(readmeView.element, this.readmeView.element) diff --git a/lib/package-manager.coffee b/lib/package-manager.coffee index d33a9cb7..6937b54e 100644 --- a/lib/package-manager.coffee +++ b/lib/package-manager.coffee @@ -435,6 +435,14 @@ class PackageManager repoUrl = "https://github.com/#{repoName}" repoUrl.replace(/\.git$/, '').replace(/\/+$/, '').replace(/^git\+/, '') + getReadmeSrc: (url) -> + repoData = url.split('/') + releaseURL = "https://api.github.com/repos/#{repoData[3]}/#{repoData[4]}/tags" + # Builds the url to img src from the readme based on latest tag + fetch(releaseURL) + .then((res) => res.json()) + .then((json) => return "#{url}/raw/#{json[0].name}/") + checkNativeBuildTools: -> new Promise (resolve, reject) => apmProcess = @runCommand ['install', '--check'], (code, stdout, stderr) ->