updates and cleanup

pull/21/head
Matthias Kretschmann 3 years ago
parent 4ee4c92524
commit c0269c71e2
Signed by: m
GPG Key ID: 606EEEF3C479A91F

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

@ -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

@ -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": {

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

@ -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:

@ -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:

@ -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": {

@ -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
}

@ -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),

Loading…
Cancel
Save