diff --git a/frontend/src/utils/packager.js b/frontend/src/utils/packager.js new file mode 100644 index 0000000..bc086d0 --- /dev/null +++ b/frontend/src/utils/packager.js @@ -0,0 +1,24 @@ +const reMailField = /<(?.*)>/ + +function generateMailtoAnchor (address) { + return `${address}` +} + +/** + * replace range of string with another string + * "... [index+length] ..." -> "... replacement ..." + * @param {Number} start start position of range + * @param {Number} length length of range + * @param {String} replacement replacement string + * @returns {String} Result + */ +function replaceRange (start, length, replacement) { + return this.substr(0, start) + replacement + this.substr(start + length) +} + +export function formatPackager (desc) { + if (desc === undefined) { return } + const mailMatch = reMailField.exec(desc) + const htmlAnchor = generateMailtoAnchor(mailMatch.groups.email) + return replaceRange.call(desc, mailMatch.index, mailMatch[0].length, `<${htmlAnchor}>`) +} diff --git a/frontend/src/views/Package.vue b/frontend/src/views/Package.vue index b67bed6..3f5d491 100644 --- a/frontend/src/views/Package.vue +++ b/frontend/src/views/Package.vue @@ -7,6 +7,7 @@ import ViewDetail from '@/components/PackageInfo/ViewDetail.vue' import moment from 'moment' import { requestPackageInfo } from '@/api' import { calculateSize } from '@/utils/sizing' +import { formatPackager } from '@/utils/packager' const route = useRoute() @@ -54,7 +55,7 @@ requestPackageInfo(route.params.packageName) Packager: - {{ pkginfo.packager }} + Package Size: