Support Plausible.io Analytics
This commit is contained in:
parent
9383fa5f94
commit
213b33b9b5
2
.github/workflows/php.yml
vendored
2
.github/workflows/php.yml
vendored
@ -77,7 +77,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: composer install --prefer-dist --no-progress --no-suggest
|
run: composer install --prefer-dist --no-progress --no-suggest
|
||||||
- name: Generate documentation
|
- name: Generate documentation
|
||||||
run: bin/daux generate
|
run: bin/daux generate --value html.plausible_domain=daux.io
|
||||||
- uses: JamesIves/github-pages-deploy-action@2.0.3
|
- uses: JamesIves/github-pages-deploy-action@2.0.3
|
||||||
env:
|
env:
|
||||||
FOLDER: "static"
|
FOLDER: "static"
|
||||||
|
@ -30,6 +30,15 @@ You can Also give a specific Piwik ID as well.
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Plausible Analytics
|
||||||
|
This will embed the https://plausible.io/ tracking code.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"html": { "plausible_domain": "daux.io" }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Automatic Table of Contents
|
## Automatic Table of Contents
|
||||||
You can add a table of contents on each page automatically, read about it [here](../01_Features/Table_of_contents.md)
|
You can add a table of contents on each page automatically, read about it [here](../01_Features/Table_of_contents.md)
|
||||||
|
|
||||||
|
@ -69,18 +69,3 @@ docker run --rm -it -w /build -v "$PWD":/build daux/daux.io daux generate
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- Google Code -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var google_conversion_id = 983836026;
|
|
||||||
var google_custom_params = window.google_tag_params;
|
|
||||||
var google_remarketing_only = true;
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
|
|
||||||
</script>
|
|
||||||
<noscript>
|
|
||||||
<div style="display:inline;">
|
|
||||||
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/983836026/?value=0&guid=ON&script=0"/>
|
|
||||||
</div>
|
|
||||||
</noscript>
|
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
"repo": "dauxio/daux.io",
|
"repo": "dauxio/daux.io",
|
||||||
"edit_on_github": "dauxio/daux.io/blob/master/docs",
|
"edit_on_github": "dauxio/daux.io/blob/master/docs",
|
||||||
"twitter": ["onigoetz"],
|
"twitter": ["onigoetz"],
|
||||||
"google_analytics": "UA-3551397-7",
|
"google_analytics": false,
|
||||||
|
"plausible_domain": false,
|
||||||
"links": {
|
"links": {
|
||||||
"Download": "https://github.com/dauxio/daux.io/archive/master.zip",
|
"Download": "https://github.com/dauxio/daux.io/archive/master.zip",
|
||||||
"GitHub Repo": "https://github.com/dauxio/daux.io",
|
"GitHub Repo": "https://github.com/dauxio/daux.io",
|
||||||
"Help/Support/Bugs": "https://github.com/dauxio/daux.io/issues"
|
"Help/Support/Bugs": "https://github.com/dauxio/daux.io/issues"
|
||||||
},
|
},
|
||||||
|
|
||||||
"powered_by": "Powered by Daux.io"
|
"powered_by": "Powered by Daux.io"
|
||||||
},
|
},
|
||||||
"confluence": {
|
"confluence": {
|
||||||
|
@ -5,6 +5,9 @@ class ConfigBuilder
|
|||||||
/** @var Config */
|
/** @var Config */
|
||||||
private $config;
|
private $config;
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
private $overrideValues = [];
|
||||||
|
|
||||||
private $configuration_override_file;
|
private $configuration_override_file;
|
||||||
|
|
||||||
private function __construct(string $mode)
|
private function __construct(string $mode)
|
||||||
@ -34,7 +37,7 @@ class ConfigBuilder
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function setValue(&$array, $key, $value)
|
private function setValue(Config $array, $key, $value)
|
||||||
{
|
{
|
||||||
if (is_null($key)) {
|
if (is_null($key)) {
|
||||||
return $array = $value;
|
return $array = $value;
|
||||||
@ -48,15 +51,11 @@ class ConfigBuilder
|
|||||||
$array = &$array[$key];
|
$array = &$array[$key];
|
||||||
}
|
}
|
||||||
$array[array_shift($keys)] = $value;
|
$array[array_shift($keys)] = $value;
|
||||||
|
|
||||||
return $array;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function withValues(array $values): ConfigBuilder
|
public function withValues(array $values): ConfigBuilder
|
||||||
{
|
{
|
||||||
foreach ($values as $value) {
|
$this->overrideValues = $values;
|
||||||
$this->setValue($this->config, $value[0], $value[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@ -128,6 +127,10 @@ class ConfigBuilder
|
|||||||
{
|
{
|
||||||
$this->initializeConfiguration();
|
$this->initializeConfiguration();
|
||||||
|
|
||||||
|
foreach ($this->overrideValues as $value) {
|
||||||
|
$this->setValue($this->config, $value[0], $value[1]);
|
||||||
|
}
|
||||||
|
|
||||||
return $this->config;
|
return $this->config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,6 +76,16 @@ class Config extends BaseConfig
|
|||||||
return $this->getValue('google_analytics');
|
return $this->getValue('google_analytics');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hasPlausibleAnalyticsDomain()
|
||||||
|
{
|
||||||
|
return $this->hasValue('plausible_domain') && $this->getValue('plausible_domain');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPlausibleAnalyticsDomain()
|
||||||
|
{
|
||||||
|
return $this->getValue('plausible_domain');
|
||||||
|
}
|
||||||
|
|
||||||
public function hasPiwikAnalytics()
|
public function hasPiwikAnalytics()
|
||||||
{
|
{
|
||||||
return $this->getValue('piwik_analytics') && $this->hasValue('piwik_analytics_id');
|
return $this->getValue('piwik_analytics') && $this->hasValue('piwik_analytics_id');
|
||||||
|
@ -2,19 +2,26 @@
|
|||||||
<html class="no-js" lang="<?=$config->getLanguage() ?>">
|
<html class="no-js" lang="<?=$config->getLanguage() ?>">
|
||||||
<head>
|
<head>
|
||||||
<title><?= $page['title']; ?> <?= ($page['title'] != $config->getTitle()) ? '- ' . $config->getTitle() : "" ?></title>
|
<title><?= $page['title']; ?> <?= ($page['title'] != $config->getTitle()) ? '- ' . $config->getTitle() : "" ?></title>
|
||||||
<?php //SEO meta tags...
|
<?php
|
||||||
|
//SEO meta tags...
|
||||||
|
$meta = [];
|
||||||
|
|
||||||
if (array_key_exists('attributes', $page) && array_key_exists('description', $page['attributes'])) {
|
if (array_key_exists('attributes', $page) && array_key_exists('description', $page['attributes'])) {
|
||||||
echo " <meta name=\"description\" content=\"{$page['attributes']['description']}\">\n";
|
$meta['description'] = $page['attributes']['description'];
|
||||||
} elseif ($config->hasTagline()) {
|
} elseif ($config->hasTagline()) {
|
||||||
echo " <meta name=\"description\" content=\"{$config->getTagline()}\">\n";
|
$meta['description'] = $config->getTagLine();
|
||||||
}
|
}
|
||||||
if (array_key_exists('attributes', $page) && array_key_exists('keywords', $page['attributes'])) {
|
if (array_key_exists('attributes', $page) && array_key_exists('keywords', $page['attributes'])) {
|
||||||
echo " <meta name=\"keywords\" content=\"{$page['attributes']['keywords']}\">\n";
|
$meta['keywords'] = $page['attributes']['keywords'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('attributes', $page) && array_key_exists('author', $page['attributes'])) {
|
if (array_key_exists('attributes', $page) && array_key_exists('author', $page['attributes'])) {
|
||||||
echo " <meta name=\"author\" content=\"{$page['attributes']['author']}\">\n";
|
$meta['author'] = $page['attributes']['author'];
|
||||||
} elseif ($config->hasAuthor()) {
|
} elseif ($config->hasAuthor()) {
|
||||||
echo " <meta name=\"author\" content=\"{$config->getAuthor()}\">\n";
|
$meta['author'] = $config->getAuthor();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($meta as $name => $content) {
|
||||||
|
echo " <meta name=\"{$name}\" content=\"{$content}\">\n";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@ -28,19 +35,19 @@
|
|||||||
|
|
||||||
<!-- JS -->
|
<!-- JS -->
|
||||||
<script>
|
<script>
|
||||||
window.base_url = "<?php echo $base_url?>";
|
window.base_url = "<?= $base_url?>";
|
||||||
document.documentElement.classList.remove('no-js');
|
document.documentElement.classList.remove('no-js');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Font -->
|
<!-- Font -->
|
||||||
<?php foreach ($config->getTheme()->getFonts() as $font) {
|
<?php foreach ($config->getTheme()->getFonts() as $font) { ?>
|
||||||
echo "<link href='$font' rel='stylesheet' type='text/css'>";
|
<link href='<?= $font; ?>' rel='stylesheet' type='text/css'>
|
||||||
} ?>
|
<?php } ?>
|
||||||
|
|
||||||
<!-- CSS -->
|
<!-- CSS -->
|
||||||
<?php foreach ($config->getTheme()->getCSS() as $css) {
|
<?php foreach ($config->getTheme()->getCSS() as $css) { ?>
|
||||||
echo "<link href='$css' rel='stylesheet' type='text/css'>";
|
<link href='<?= $css; ?>' rel='stylesheet' type='text/css'>
|
||||||
} ?>
|
<?php } ?>
|
||||||
|
|
||||||
<?php if ($config->getHTML()->hasSearch()) { ?>
|
<?php if ($config->getHTML()->hasSearch()) { ?>
|
||||||
<!-- Search -->
|
<!-- Search -->
|
||||||
@ -57,14 +64,16 @@
|
|||||||
if ($config->getHTML()->hasPiwikAnalytics()) {
|
if ($config->getHTML()->hasPiwikAnalytics()) {
|
||||||
$this->insert('theme::partials/piwik_analytics', ['url' => $config->getHTML()->getPiwikAnalyticsUrl(), 'id' => $config->getHTML()->getPiwikAnalyticsId()]);
|
$this->insert('theme::partials/piwik_analytics', ['url' => $config->getHTML()->getPiwikAnalyticsUrl(), 'id' => $config->getHTML()->getPiwikAnalyticsId()]);
|
||||||
}
|
}
|
||||||
|
if ($config->getHTML()->hasPlausibleAnalyticsDomain()) {
|
||||||
|
$this->insert('theme::partials/plausible_analytics', ['domain' => $config->getHTML()->getPlausibleAnalyticsDomain()]);
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!-- JS -->
|
<!-- JS -->
|
||||||
<?php foreach ($config->getTheme()->getJS() as $js) {
|
<?php foreach ($config->getTheme()->getJS() as $js) { ?>
|
||||||
echo '<script src="' . $js . '"></script>';
|
<script src="<?= $js; ?>"></script>
|
||||||
} ?>
|
<?php } ?>
|
||||||
|
|
||||||
<?php $this->insert('theme::partials/search_script', ['page' => $page, 'base_url' => $base_url]); ?>
|
<?php $this->insert('theme::partials/search_script', ['page' => $page, 'base_url' => $base_url]); ?>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
1
templates/partials/plausible_analytics.php
Normal file
1
templates/partials/plausible_analytics.php
Normal file
@ -0,0 +1 @@
|
|||||||
|
<script async defer data-domain="<?= $domain ?>" src="https://plausible.io/js/plausible.js"></script>
|
Loading…
Reference in New Issue
Block a user