-
Notifications
You must be signed in to change notification settings - Fork 141
/
Copy pathindex.js
60 lines (52 loc) · 1.8 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const path = require('path');
module.exports = function (context) {
const {siteConfig} = context;
const {themeConfig} = siteConfig;
const {googleTagManager} = themeConfig || {};
if (!googleTagManager) {
throw new Error(
`You need to specify 'googleTagManager' object in 'themeConfig' with 'trackingId' field in it to use docusaurus-plugin-google-analytics`,
);
}
const {trackingID} = googleTagManager;
if (!trackingID) {
throw new Error(
'You specified the `googleTagManager` object in `themeConfig` but the `trackingID` field was missing. ' +
'Please ensure this is not a mistake.',
);
}
return {
name: 'docusaurus-plugin-gtm',
// getClientModules() {
// return isProd ? [path.resolve(__dirname, './analytics')] : [];
// },
injectHtmlTags() {
return {
headTags: [
{
tagName: 'script',
innerHTML: `
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','${trackingID}');`,
},
],
preBodyTags: [
{
tagName: 'noscript',
innerHTML: `<iframe src="https://www.googletagmanager.com/ns.html?id=${trackingID}"
height="0" width="0" style="display:none;visibility:hidden"></iframe>`,
},
],
};
},
};
};