updates and cleanup

This commit is contained in:
Matthias Kretschmann 2020-02-15 14:07:20 +01:00
parent 4ee4c92524
commit c0269c71e2
Signed by: m
GPG Key ID: 606EEEF3C479A91F
9 changed files with 42 additions and 61 deletions

View File

@ -1,6 +1,3 @@
{
"presets": [
["@babel/env"],
["@babel/react"]
]
"presets": [["babel-preset-gatsby-package", { "browser": true }]]
}

View File

@ -1,10 +0,0 @@
# EditorConfig is awesome: http://EditorConfig.org
[*]
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true

View File

@ -1,10 +1,6 @@
{
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:prettier/recommended"
],
"plugins": ["react", "prettier"],
"extends": ["eslint:recommended", "plugin:prettier/recommended"],
"plugins": ["prettier"],
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {

View File

@ -1,5 +1,6 @@
{
"semi": false,
"singleQuote": true,
"trailingComma": "none"
"trailingComma": "none",
"tabWidth": 2
}

View File

@ -1,4 +1,4 @@
Copyright (c) 2018 Matthias Kretschmann m@kretschmann.io
Copyright (c) 2020 Matthias Kretschmann m@kretschmann.io
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View File

@ -82,7 +82,7 @@ plugins: [
options: {
siteId: 'YOUR_SITE_ID',
matomoUrl: 'https://YOUR_MATOMO_URL.COM',
siteUrl: 'https://YOUR_LIVE_SITE_URL.COM'
siteUrl: 'https://YOUR_LIVE_SITE_URL.COM',
// All the optional settings
exclude: ['/offline-plugin-app-shell-fallback/'],
requireConsent: false,
@ -118,7 +118,7 @@ See [CHANGELOG.md](CHANGELOG.md).
The MIT License
Copyright (c) 2018 Matthias Kretschmann
Copyright (c) 2020 Matthias Kretschmann
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View File

@ -7,39 +7,38 @@
"build": "babel src --out-dir . --ignore __tests__",
"start": "babel -w src --out-dir . --ignore __tests__",
"test": "eslint ./src/**/*.js",
"format": "prettier --write 'src/**/*.{js,jsx}'",
"format": "prettier --write 'src/**/*.js'",
"release": "release-it --non-interactive",
"changelog": "auto-changelog -p",
"prepublishOnly": "cross-env NODE_ENV=production npm run build"
},
"dependencies": {},
"devDependencies": {
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"@babel/preset-react": "^7.0.0",
"auto-changelog": "^1.13.0",
"cross-env": "^5.2.0",
"eslint": "^5.16.0",
"eslint-config-prettier": "^4.3.0",
"eslint-plugin-prettier": "^3.1.0",
"eslint-plugin-react": "^7.13.0",
"prettier": "^1.18.2",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"release-it": "^12.3.0"
"@babel/cli": "^7.8.4",
"@babel/core": "^7.8.4",
"auto-changelog": "^1.16.2",
"babel-preset-gatsby-package": "^0.2.16",
"cross-env": "^7.0.0",
"eslint": "^6.8.0",
"eslint-config-prettier": "^6.10.0",
"eslint-plugin-prettier": "^3.1.2",
"prettier": "^1.19.1",
"release-it": "^12.4.3"
},
"homepage": "https://github.com/kremalicious/gatsby-plugin-matomo",
"homepage": "https://kremalicious.com/gatsby-plugin-matomo",
"keywords": [
"gatsby",
"gatsby-plugin",
"analytics",
"matomo",
"piwik"
],
"license": "MIT",
"main": "index.js",
"peerDependencies": {
"gatsby": ">=1.9.0"
"gatsby": ">=2.0.0",
"react": ">=16.4.2",
"react-dom": ">=16.4.2"
},
"repository": "github:kremalicious/gatsby-plugin-matomo",
"bugs": {

View File

@ -1,5 +1,3 @@
/* eslint-disable no-console */
let first = true
function getDuration() {
@ -14,7 +12,7 @@ function getDuration() {
return difference
}
exports.onRouteUpdate = ({ location, prevLocation }) => {
export const onRouteUpdate = ({ location, prevLocation }) => {
if (
(process.env.NODE_ENV === 'production' && typeof _paq !== 'undefined') ||
window.dev === true
@ -40,7 +38,7 @@ exports.onRouteUpdate = ({ location, prevLocation }) => {
_paq.push(['trackAllContentImpressions'])
if (dev) {
console.log(`[Matomo] Page view for: ${url} - ${title}`)
console.debug(`[Matomo] Page view for: ${url} - ${title}`)
}
}
@ -58,9 +56,10 @@ exports.onRouteUpdate = ({ location, prevLocation }) => {
_paq.push(['trackEvent', 'javascript', 'load', 'duration', getDuration()])
if (dev) {
console.log(`[Matomo] Tracking duration for: ${url}`)
console.debug(`[Matomo] Tracking duration for: ${url}`)
}
}
}
return null
}

View File

@ -1,3 +1,4 @@
// eslint-disable-next-line no-unused-vars
import React from 'react'
function buildTrackingCode(pluginOptions) {
@ -29,29 +30,28 @@ function buildTrackingCode(pluginOptions) {
})();
if (window.dev === true) {
console.log('[Matomo] Tracking initialized')
console.log('[Matomo] matomoUrl: ${matomoUrl}, siteId: ${siteId}')
console.debug('[Matomo] Tracking initialized')
console.debug('[Matomo] matomoUrl: ${matomoUrl}, siteId: ${siteId}')
}
}
`
return (
<script
key={'gatsby-plugin-matomo'}
key="script-gatsby-plugin-matomo"
dangerouslySetInnerHTML={{ __html: html }}
/>
)
}
function buildTrackingCodeNoJs(pluginOptions, pathname) {
const html = `<img src="${pluginOptions.matomoUrl}/piwik.php?idsite=${
pluginOptions.siteId
}&rec=1&url=${pluginOptions.siteUrl +
const { matomoUrl, siteId, siteUrl } = pluginOptions
const html = `<img src="${matomoUrl}/piwik.php?idsite=${siteId}&rec=1&url=${siteUrl +
pathname}" style="border:0" alt="tracker" />`
return (
<noscript
key={'gatsby-plugin-matomo'}
key="noscript-gatsby-plugin-matomo"
dangerouslySetInnerHTML={{ __html: html }}
/>
)
@ -62,29 +62,28 @@ function buildHead(pluginOptions) {
<link
rel="preconnect"
href={pluginOptions.matomoUrl}
key={'gatsby-plugin-matomo'}
key="preconnect-gatsby-plugin-matomo"
/>
)
}
exports.onRenderBody = (
export const onRenderBody = (
{ setHeadComponents, setPostBodyComponents, pathname },
pluginOptions
) => {
const { exclude, dev } = pluginOptions
const isProduction = process.env.NODE_ENV === 'production'
let excludePaths = ['/offline-plugin-app-shell-fallback/']
if (typeof pluginOptions.exclude !== 'undefined') {
pluginOptions.exclude.map(exclude => {
if (typeof exclude !== 'undefined') {
exclude.map(exclude => {
excludePaths.push(exclude)
})
}
const isPathExcluded = excludePaths.some(path => pathname === path)
if (
(process.env.NODE_ENV === 'production' || pluginOptions.dev === true) &&
!isPathExcluded
) {
if ((isProduction || dev === true) && !isPathExcluded) {
setHeadComponents([buildHead(pluginOptions)])
setPostBodyComponents([
buildTrackingCode(pluginOptions),