Skip to content

Commit

Permalink
- remove unfunctional "source code" and "homepage" nodes
Browse files Browse the repository at this point in the history
- make "readme" node display the readme markdown as html
  • Loading branch information
cboulanger committed Jul 26, 2019
1 parent 19e7f41 commit 57f771c
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 22 deletions.
3 changes: 2 additions & 1 deletion Manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"@qooxdoo/framework": "^6.0.0-beta",
"@qooxdoo/compiler": "^1.0.0-beta",
"qooxdoo/qxl.logpane": "^1.0.0-beta.0",
"qooxdoo/qxl.versionlabel": "^1.0.0-beta.0"
"qooxdoo/qxl.versionlabel": "^1.0.0-beta.0",
"maettu/qx-showdown": "^1.8.7"
}
}
8 changes: 8 additions & 0 deletions qx-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@
"uri": "qooxdoo/qxl.versionlabel",
"repo_name": "qooxdoo/qxl.versionlabel",
"repo_tag": "v1.0.0-beta.1"
},
{
"library_name": "qxShowdown",
"library_version": "1.8.7",
"path": "qx_packages/maettu_qx-showdown_v1_8_7",
"uri": "maettu/qx-showdown",
"repo_name": "maettu/qx-showdown",
"repo_tag": "v1.8.7"
}
],
"version": "2.1.0"
Expand Down
26 changes: 18 additions & 8 deletions source/class/qxl/packagebrowser/PackageBrowser.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ qx.Class.define("qxl.packagebrowser.PackageBrowser", {
},

construct: function () {

qxShowdown.Load;
this.base(arguments);

this.__menuItemStore = {};
Expand Down Expand Up @@ -731,7 +733,7 @@ qx.Class.define("qxl.packagebrowser.PackageBrowser", {
html = this.__getLibraryInfoHtml(modelNode);
break;
case "readme":
html = await this.__getHtmlFromGitHubApi(modelNode.url);
html = await this.__getReadmeHtml(modelNode.uri);
break;
case "problems":
html = this.__getProblemsHtml(modelNode.data);
Expand Down Expand Up @@ -899,19 +901,27 @@ qx.Class.define("qxl.packagebrowser.PackageBrowser", {

/**
*
* @param url
* @param uri {String} The GitHub uri
* @return {Promise<string|*|string>}
* @private
* @ignore(fetch)
* @ignore(showdown)
*/
async __getHtmlFromGitHubApi(url) {
if (!url) {
console.error("NO url!");
}
async __getReadmeHtml(uri) {
let url = `https://api.github.com/repos/${uri}/readme`;
try {
let result = await (await fetch(url)).json();
if (result.html_url) {
return this.__getOpenLinkHtml(result.html_url);
if (result.content) {
let markdown = atob(result.content);
let converter = new showdown.Converter();
let urlPrefix = `https://github.com/${uri}/tree/master/`;

let html = converter
.makeHtml(markdown)
.replace(/href="([^h][^t][^t][^p])/g,
(match, urlFragment) => 'target="_blank" href="' + urlPrefix + urlFragment
);
return html;
}
return `<p>The repository does not have a README file.`;
} catch (e) {
Expand Down
26 changes: 13 additions & 13 deletions source/class/qxl/packagebrowser/TreeDataHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,26 +89,26 @@ qx.Class.define("qxl.packagebrowser.TreeDataHandler", {
lib.manifest = elem.manifest;
lib.uri = elem.uri;
parent.add(lib);
let homepage = elem.manifest.info.homepage;
if (homepage) {
let homepageNode = new qxl.packagebrowser.Tree("Homepage");
homepageNode.type = "homepage";
homepageNode.url = homepage;
parent.add(homepageNode);
}
let sourceCodeNode = new qxl.packagebrowser.Tree("Source code");
sourceCodeNode.type = "sourcecode";
sourceCodeNode.url = `https://github.com/${elem.uri}`;
parent.add(sourceCodeNode);
// Omit these nodes for now....
// let homepage = elem.manifest.info.homepage;
// if (homepage) {
// let homepageNode = new qxl.packagebrowser.Tree("Homepage");
// homepageNode.type = "homepage";
// homepageNode.url = homepage;
// parent.add(homepageNode);
// }
// let sourceCodeNode = new qxl.packagebrowser.Tree("Source code");
// sourceCodeNode.type = "sourcecode";
// sourceCodeNode.url = `https://github.com/${elem.uri}`;
// parent.add(sourceCodeNode);
let readmeNode = new qxl.packagebrowser.Tree("Readme");
readmeNode.type = "readme";
readmeNode.url = `https://api.github.com/repos/${elem.uri}/readme`;
readmeNode.uri = elem.uri;
parent.add(readmeNode);
let applications = elem.data && elem.data.applications;
if (Array.isArray(applications) && applications.length > 0) {
let demosNode = new qxl.packagebrowser.Tree("Demos");
demosNode.type = "demo";
demosNode.data = elem.data;
parent.add(demosNode);
applications.forEach(app => {
if (app.publish !== false) {
Expand Down

0 comments on commit 57f771c

Please sign in to comment.