From 56c645f7a7732fa70bde7274c240484c6106655a Mon Sep 17 00:00:00 2001 From: Alex LaFroscia Date: Mon, 26 Mar 2018 17:39:15 -0700 Subject: [PATCH 1/2] Fix template edit link --- addon/components/docs-viewer/x-main/component.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addon/components/docs-viewer/x-main/component.js b/addon/components/docs-viewer/x-main/component.js index 9e8825554..6553dc6e5 100644 --- a/addon/components/docs-viewer/x-main/component.js +++ b/addon/components/docs-viewer/x-main/component.js @@ -35,8 +35,9 @@ export default Component.extend({ return `${packageJson.repository}/edit/master/addon/components/${klass}/component.js`; } else { - let templatePath = `pods/${path}`; - let file = appFiles.find(file => file.match(`${templatePath}/template.(hbs|md)`)); + let file = appFiles + .filter(file => file.match(/template.(hbs|md)/)) + .find(file => file.match(path)); return `${packageJson.repository}/edit/master/tests/dummy/app/${file}`; } From bee7bc854bf47ed0c42031a917e1a4bcb5b3646c Mon Sep 17 00:00:00 2001 From: Alex LaFroscia Date: Mon, 26 Mar 2018 17:52:52 -0700 Subject: [PATCH 2/2] Fix edit link for generated API pages --- addon/components/docs-viewer/x-main/component.js | 16 +++++++++------- index.js | 13 ++++++++++++- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/addon/components/docs-viewer/x-main/component.js b/addon/components/docs-viewer/x-main/component.js index 6553dc6e5..74c5b8e98 100644 --- a/addon/components/docs-viewer/x-main/component.js +++ b/addon/components/docs-viewer/x-main/component.js @@ -3,7 +3,7 @@ import Component from '@ember/component'; import layout from './template'; import { computed } from '@ember/object'; import appFiles from 'ember-cli-addon-docs/app-files'; -import { dasherize } from '@ember/string'; +import addonFiles from 'ember-cli-addon-docs/addon-files'; import config from 'dummy/config/environment'; import { getOwner } from '@ember/application'; @@ -23,17 +23,19 @@ export default Component.extend({ editCurrentPageUrl: computed('router.currentRouteName', function() { let path = this.get('router.currentRouteName'); if (!path) { - // `routing` doesn't exist for old ember versions via ember-try + // `router` doesn't exist for old ember versions via ember-try return; } + path = path.replace(/\./g, '/'); - if (path === 'docs/api/class') { - let params = getOwner(this).lookup('route:application').paramsFor('docs.api.class'); - let klass = dasherize(params.class_id.replace(/-.+$/g, '')); - let path = `pods/${path}`; + if (path === 'docs/api/item') { + let { path } = getOwner(this).lookup('route:application').paramsFor('docs.api.item'); + let file = addonFiles.find(f => f.match(path)); - return `${packageJson.repository}/edit/master/addon/components/${klass}/component.js`; + if (file) { + return `${packageJson.repository}/edit/master/addon/${file}`; + } } else { let file = appFiles .filter(file => file.match(/template.(hbs|md)/)) diff --git a/index.js b/index.js index 1e6e66b64..e0255e57a 100644 --- a/index.js +++ b/index.js @@ -147,8 +147,9 @@ module.exports = { treeForAddon(tree) { let dummyAppFiles = new FindDummyAppFiles([ 'tests/dummy/app' ]); + let addonFiles = new FindAddonFiles([ 'addon' ]); - return this._super(new MergeTrees([ tree, dummyAppFiles ])); + return this._super(new MergeTrees([ tree, dummyAppFiles, addonFiles ])); }, treeForVendor(vendor) { @@ -280,6 +281,16 @@ class FindDummyAppFiles extends Plugin { } } +class FindAddonFiles extends Plugin { + build() { + let addonPath = this.inputPaths[0]; + let paths = walkSync(addonPath, { directories: false }) + let pathsString = JSON.stringify(paths); + + fs.writeFileSync(path.join(this.outputPath, 'addon-files.js'), `export default ${pathsString};`); + } +} + class AutoExportAddonToApp extends Plugin { build() { let addonPath = this.inputPaths[0];