const {remote, shell} = require('electron') const fs = require('fs') const path = require('path') const URL = require('url') const electronPath = path.relative(process.cwd(), remote.process.execPath) Array.from(document.querySelectorAll('a[href]')).forEach(link => { // safely add `?utm_source=default_app let url = URL.parse(link.getAttribute('href'), true) url.query = Object.assign(url.query, {utm_source: 'default_app'}) url = URL.format(url) link.addEventListener('click', (e) => { e.preventDefault() shell.openExternal(url) }) }) document.querySelector('.electron-version').innerText = `Electron v${process.versions.electron}` document.querySelector('.chrome-version').innerText = `Chromium v${process.versions.chrome}` document.querySelector('.node-version').innerText = `Node v${process.versions.node}` document.querySelector('.v8-version').innerText = `v8 v${process.versions.v8}` document.querySelector('.command-example').innerText = `${electronPath} path-to-app` function getOcticonSvg (name) { const octiconPath = path.resolve(__dirname, 'node_modules', 'octicons', 'build', 'svg', `${name}.svg`) if (fs.existsSync(octiconPath)) { const content = fs.readFileSync(octiconPath, 'utf8') const div = document.createElement('div') div.innerHTML = content return div } return null } function loadSVG (element) { for (const cssClass of element.classList) { if (cssClass.startsWith('octicon-')) { const icon = getOcticonSvg(cssClass.substr(8)) if (icon) { icon.classList = element.classList element.parentNode.insertBefore(icon, element) element.remove() break } } } } for (const element of document.querySelectorAll('.octicon')) { loadSVG(element) }