From c6bab4b8b25d28059865f70a432fe356811c4374 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 15:52:54 +0200 Subject: [PATCH 01/11] Update directory structure for Zensible --- .github/workflows/docs.yml | 29 +++ docs.11tydata.js | 12 -- {api => docs/api}/api-query-from-insight.md | 0 {api => docs/api}/api-run-query.md | 0 {api => docs/api}/api-token.md | 0 {api => docs/api}/api.json | 0 {api => docs/api}/insights-reference.md | 0 {api => docs/api}/signals-reference.md | 0 .../articles}/anonymization-how-it-works.md | 0 .../articles}/app-privacy-report.md | 0 .../articles}/app-tracking-transparency.md | 0 .../articles}/apple-app-privacy.md | 0 {articles => docs/articles}/articles.json | 0 ...-if-users-upgrade-to-latest-app-version.md | 0 .../articles}/create-custom-dashboards.md | 0 .../articles}/decide-to-drop-ios-version.md | 0 {articles => docs/articles}/documentation.md | 0 .../articles}/duration-signals.md | 0 {articles => docs/articles}/grand-rename.md | 0 .../articles}/hosting-solutions.md | 0 .../articles}/how-to-funnel-insights.md | 0 .../articles}/insights-about-daily-users.md | 0 .../articles}/insights-about-monthly-users.md | 0 .../articles}/insights-about-referrers.md | 0 .../insights-about-system-version.md | 0 {articles => docs/articles}/insights.md | 0 .../invite-members-to-organization.md | 0 {articles => docs/articles}/login-options.md | 0 {articles => docs/articles}/making-account.md | 0 {articles => docs/articles}/namespaces.md | 0 .../articles}/navigation-signals.md | 0 {articles => docs/articles}/notebooks.md | 0 {articles => docs/articles}/preset-errors.md | 0 .../articles}/preset-purchases.md | 0 .../articles}/set-up-filters-insights.md | 0 .../articles}/signal-type-naming.md | 0 .../articles}/telemetry-client.md | 0 {articles => docs/articles}/test-mode.md | 0 {articles => docs/articles}/update-package.md | 0 {basics => docs/basics}/acquisition.md | 0 {basics => docs/basics}/activation.md | 0 {basics => docs/basics}/basics.json | 0 {basics => docs/basics}/index.md | 0 {basics => docs/basics}/metrics.md | 0 {basics => docs/basics}/pirate-metrics.md | 0 {basics => docs/basics}/retention.md | 0 glossary.md => docs/glossary.md | 0 {guides => docs/guides}/android-setup.md | 0 {guides => docs/guides}/flutter-setup.md | 0 {guides => docs/guides}/guides.json | 0 {guides => docs/guides}/javascript-setup.md | 0 {guides => docs/guides}/objective-c-setup.md | 0 {guides => docs/guides}/privacy-faq.md | 0 {guides => docs/guides}/react-setup.md | 0 {guides => docs/guides}/swift-setup.md | 0 {guides => docs/guides}/vue-setup.md | 0 {guides => docs/guides}/web-setup.md | 0 docs/index.md | 181 ++++++++++++++++++ index.njk => docs/index.njk | 0 {ingest => docs/ingest}/default-parameters.md | 0 {ingest => docs/ingest}/ingest.json | 0 {ingest => docs/ingest}/v1.md | 0 {ingest => docs/ingest}/v2.md | 0 .../integrations}/integrations.json | 0 .../integrations}/revenuecat.md | 0 .../integrations}/superwall.md | 0 .../web-setup-google-tag-manager.md | 0 docs/markdown.md | 111 +++++++++++ .../recipes}/averagaging-numbers.md | 0 {recipes => docs/recipes}/listing-events.md | 0 {recipes => docs/recipes}/recipes.json | 0 .../recipes}/views-per-purchase-example.md | 0 {tql => docs/tql}/aggregators.md | 0 {tql => docs/tql}/baseFilters.md | 0 {tql => docs/tql}/descending.md | 0 {tql => docs/tql}/dimensionSpec.md | 0 {tql => docs/tql}/experiment.md | 0 {tql => docs/tql}/extractionFunction.md | 0 {tql => docs/tql}/filters.md | 0 {tql => docs/tql}/firstGuideline.md | 0 {tql => docs/tql}/funnel.md | 0 {tql => docs/tql}/funnels.md | 0 {tql => docs/tql}/granularity.md | 0 {tql => docs/tql}/groupBy.md | 0 {tql => docs/tql}/post-aggregators.md | 0 {tql => docs/tql}/query.md | 0 {tql => docs/tql}/queryContext.md | 0 {tql => docs/tql}/queryType.md | 0 {tql => docs/tql}/retention.md | 0 {tql => docs/tql}/scan.md | 0 {tql => docs/tql}/time-intervals.md | 0 {tql => docs/tql}/timeseries.md | 0 {tql => docs/tql}/topN.md | 0 {tql => docs/tql}/topNMetricSpec.md | 0 {tql => docs/tql}/tql.json | 0 {tql => docs/tql}/valueFormatter.md | 0 96 files changed, 321 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/docs.yml delete mode 100644 docs.11tydata.js rename {api => docs/api}/api-query-from-insight.md (100%) rename {api => docs/api}/api-run-query.md (100%) rename {api => docs/api}/api-token.md (100%) rename {api => docs/api}/api.json (100%) rename {api => docs/api}/insights-reference.md (100%) rename {api => docs/api}/signals-reference.md (100%) rename {articles => docs/articles}/anonymization-how-it-works.md (100%) rename {articles => docs/articles}/app-privacy-report.md (100%) rename {articles => docs/articles}/app-tracking-transparency.md (100%) rename {articles => docs/articles}/apple-app-privacy.md (100%) rename {articles => docs/articles}/articles.json (100%) rename {articles => docs/articles}/check-if-users-upgrade-to-latest-app-version.md (100%) rename {articles => docs/articles}/create-custom-dashboards.md (100%) rename {articles => docs/articles}/decide-to-drop-ios-version.md (100%) rename {articles => docs/articles}/documentation.md (100%) rename {articles => docs/articles}/duration-signals.md (100%) rename {articles => docs/articles}/grand-rename.md (100%) rename {articles => docs/articles}/hosting-solutions.md (100%) rename {articles => docs/articles}/how-to-funnel-insights.md (100%) rename {articles => docs/articles}/insights-about-daily-users.md (100%) rename {articles => docs/articles}/insights-about-monthly-users.md (100%) rename {articles => docs/articles}/insights-about-referrers.md (100%) rename {articles => docs/articles}/insights-about-system-version.md (100%) rename {articles => docs/articles}/insights.md (100%) rename {articles => docs/articles}/invite-members-to-organization.md (100%) rename {articles => docs/articles}/login-options.md (100%) rename {articles => docs/articles}/making-account.md (100%) rename {articles => docs/articles}/namespaces.md (100%) rename {articles => docs/articles}/navigation-signals.md (100%) rename {articles => docs/articles}/notebooks.md (100%) rename {articles => docs/articles}/preset-errors.md (100%) rename {articles => docs/articles}/preset-purchases.md (100%) rename {articles => docs/articles}/set-up-filters-insights.md (100%) rename {articles => docs/articles}/signal-type-naming.md (100%) rename {articles => docs/articles}/telemetry-client.md (100%) rename {articles => docs/articles}/test-mode.md (100%) rename {articles => docs/articles}/update-package.md (100%) rename {basics => docs/basics}/acquisition.md (100%) rename {basics => docs/basics}/activation.md (100%) rename {basics => docs/basics}/basics.json (100%) rename {basics => docs/basics}/index.md (100%) rename {basics => docs/basics}/metrics.md (100%) rename {basics => docs/basics}/pirate-metrics.md (100%) rename {basics => docs/basics}/retention.md (100%) rename glossary.md => docs/glossary.md (100%) rename {guides => docs/guides}/android-setup.md (100%) rename {guides => docs/guides}/flutter-setup.md (100%) rename {guides => docs/guides}/guides.json (100%) rename {guides => docs/guides}/javascript-setup.md (100%) rename {guides => docs/guides}/objective-c-setup.md (100%) rename {guides => docs/guides}/privacy-faq.md (100%) rename {guides => docs/guides}/react-setup.md (100%) rename {guides => docs/guides}/swift-setup.md (100%) rename {guides => docs/guides}/vue-setup.md (100%) rename {guides => docs/guides}/web-setup.md (100%) create mode 100644 docs/index.md rename index.njk => docs/index.njk (100%) rename {ingest => docs/ingest}/default-parameters.md (100%) rename {ingest => docs/ingest}/ingest.json (100%) rename {ingest => docs/ingest}/v1.md (100%) rename {ingest => docs/ingest}/v2.md (100%) rename {integrations => docs/integrations}/integrations.json (100%) rename {integrations => docs/integrations}/revenuecat.md (100%) rename {integrations => docs/integrations}/superwall.md (100%) rename {integrations => docs/integrations}/web-setup-google-tag-manager.md (100%) create mode 100644 docs/markdown.md rename {recipes => docs/recipes}/averagaging-numbers.md (100%) rename {recipes => docs/recipes}/listing-events.md (100%) rename {recipes => docs/recipes}/recipes.json (100%) rename {recipes => docs/recipes}/views-per-purchase-example.md (100%) rename {tql => docs/tql}/aggregators.md (100%) rename {tql => docs/tql}/baseFilters.md (100%) rename {tql => docs/tql}/descending.md (100%) rename {tql => docs/tql}/dimensionSpec.md (100%) rename {tql => docs/tql}/experiment.md (100%) rename {tql => docs/tql}/extractionFunction.md (100%) rename {tql => docs/tql}/filters.md (100%) rename {tql => docs/tql}/firstGuideline.md (100%) rename {tql => docs/tql}/funnel.md (100%) rename {tql => docs/tql}/funnels.md (100%) rename {tql => docs/tql}/granularity.md (100%) rename {tql => docs/tql}/groupBy.md (100%) rename {tql => docs/tql}/post-aggregators.md (100%) rename {tql => docs/tql}/query.md (100%) rename {tql => docs/tql}/queryContext.md (100%) rename {tql => docs/tql}/queryType.md (100%) rename {tql => docs/tql}/retention.md (100%) rename {tql => docs/tql}/scan.md (100%) rename {tql => docs/tql}/time-intervals.md (100%) rename {tql => docs/tql}/timeseries.md (100%) rename {tql => docs/tql}/topN.md (100%) rename {tql => docs/tql}/topNMetricSpec.md (100%) rename {tql => docs/tql}/tql.json (100%) rename {tql => docs/tql}/valueFormatter.md (100%) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..47ee722 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,29 @@ +name: Documentation +on: + push: + branches: + - master + - main +permissions: + contents: read + pages: write + id-token: write +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - uses: actions/configure-pages@v6 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: 3.x + - run: pip install zensical + - run: zensical build --clean + - uses: actions/upload-pages-artifact@v5 + with: + path: site + - uses: actions/deploy-pages@v5 + id: deployment diff --git a/docs.11tydata.js b/docs.11tydata.js deleted file mode 100644 index e10251a..0000000 --- a/docs.11tydata.js +++ /dev/null @@ -1,12 +0,0 @@ -let data = { - layout: "docs/docpage.njk", - tags: "docs", - sitemapchangefrequency: "daily", - sitemappriority: "0.7", -}; - -// if(process.env.NODE_ENV === "production") { -data.date = "git Last Modified"; -// } - -module.exports = data; diff --git a/api/api-query-from-insight.md b/docs/api/api-query-from-insight.md similarity index 100% rename from api/api-query-from-insight.md rename to docs/api/api-query-from-insight.md diff --git a/api/api-run-query.md b/docs/api/api-run-query.md similarity index 100% rename from api/api-run-query.md rename to docs/api/api-run-query.md diff --git a/api/api-token.md b/docs/api/api-token.md similarity index 100% rename from api/api-token.md rename to docs/api/api-token.md diff --git a/api/api.json b/docs/api/api.json similarity index 100% rename from api/api.json rename to docs/api/api.json diff --git a/api/insights-reference.md b/docs/api/insights-reference.md similarity index 100% rename from api/insights-reference.md rename to docs/api/insights-reference.md diff --git a/api/signals-reference.md b/docs/api/signals-reference.md similarity index 100% rename from api/signals-reference.md rename to docs/api/signals-reference.md diff --git a/articles/anonymization-how-it-works.md b/docs/articles/anonymization-how-it-works.md similarity index 100% rename from articles/anonymization-how-it-works.md rename to docs/articles/anonymization-how-it-works.md diff --git a/articles/app-privacy-report.md b/docs/articles/app-privacy-report.md similarity index 100% rename from articles/app-privacy-report.md rename to docs/articles/app-privacy-report.md diff --git a/articles/app-tracking-transparency.md b/docs/articles/app-tracking-transparency.md similarity index 100% rename from articles/app-tracking-transparency.md rename to docs/articles/app-tracking-transparency.md diff --git a/articles/apple-app-privacy.md b/docs/articles/apple-app-privacy.md similarity index 100% rename from articles/apple-app-privacy.md rename to docs/articles/apple-app-privacy.md diff --git a/articles/articles.json b/docs/articles/articles.json similarity index 100% rename from articles/articles.json rename to docs/articles/articles.json diff --git a/articles/check-if-users-upgrade-to-latest-app-version.md b/docs/articles/check-if-users-upgrade-to-latest-app-version.md similarity index 100% rename from articles/check-if-users-upgrade-to-latest-app-version.md rename to docs/articles/check-if-users-upgrade-to-latest-app-version.md diff --git a/articles/create-custom-dashboards.md b/docs/articles/create-custom-dashboards.md similarity index 100% rename from articles/create-custom-dashboards.md rename to docs/articles/create-custom-dashboards.md diff --git a/articles/decide-to-drop-ios-version.md b/docs/articles/decide-to-drop-ios-version.md similarity index 100% rename from articles/decide-to-drop-ios-version.md rename to docs/articles/decide-to-drop-ios-version.md diff --git a/articles/documentation.md b/docs/articles/documentation.md similarity index 100% rename from articles/documentation.md rename to docs/articles/documentation.md diff --git a/articles/duration-signals.md b/docs/articles/duration-signals.md similarity index 100% rename from articles/duration-signals.md rename to docs/articles/duration-signals.md diff --git a/articles/grand-rename.md b/docs/articles/grand-rename.md similarity index 100% rename from articles/grand-rename.md rename to docs/articles/grand-rename.md diff --git a/articles/hosting-solutions.md b/docs/articles/hosting-solutions.md similarity index 100% rename from articles/hosting-solutions.md rename to docs/articles/hosting-solutions.md diff --git a/articles/how-to-funnel-insights.md b/docs/articles/how-to-funnel-insights.md similarity index 100% rename from articles/how-to-funnel-insights.md rename to docs/articles/how-to-funnel-insights.md diff --git a/articles/insights-about-daily-users.md b/docs/articles/insights-about-daily-users.md similarity index 100% rename from articles/insights-about-daily-users.md rename to docs/articles/insights-about-daily-users.md diff --git a/articles/insights-about-monthly-users.md b/docs/articles/insights-about-monthly-users.md similarity index 100% rename from articles/insights-about-monthly-users.md rename to docs/articles/insights-about-monthly-users.md diff --git a/articles/insights-about-referrers.md b/docs/articles/insights-about-referrers.md similarity index 100% rename from articles/insights-about-referrers.md rename to docs/articles/insights-about-referrers.md diff --git a/articles/insights-about-system-version.md b/docs/articles/insights-about-system-version.md similarity index 100% rename from articles/insights-about-system-version.md rename to docs/articles/insights-about-system-version.md diff --git a/articles/insights.md b/docs/articles/insights.md similarity index 100% rename from articles/insights.md rename to docs/articles/insights.md diff --git a/articles/invite-members-to-organization.md b/docs/articles/invite-members-to-organization.md similarity index 100% rename from articles/invite-members-to-organization.md rename to docs/articles/invite-members-to-organization.md diff --git a/articles/login-options.md b/docs/articles/login-options.md similarity index 100% rename from articles/login-options.md rename to docs/articles/login-options.md diff --git a/articles/making-account.md b/docs/articles/making-account.md similarity index 100% rename from articles/making-account.md rename to docs/articles/making-account.md diff --git a/articles/namespaces.md b/docs/articles/namespaces.md similarity index 100% rename from articles/namespaces.md rename to docs/articles/namespaces.md diff --git a/articles/navigation-signals.md b/docs/articles/navigation-signals.md similarity index 100% rename from articles/navigation-signals.md rename to docs/articles/navigation-signals.md diff --git a/articles/notebooks.md b/docs/articles/notebooks.md similarity index 100% rename from articles/notebooks.md rename to docs/articles/notebooks.md diff --git a/articles/preset-errors.md b/docs/articles/preset-errors.md similarity index 100% rename from articles/preset-errors.md rename to docs/articles/preset-errors.md diff --git a/articles/preset-purchases.md b/docs/articles/preset-purchases.md similarity index 100% rename from articles/preset-purchases.md rename to docs/articles/preset-purchases.md diff --git a/articles/set-up-filters-insights.md b/docs/articles/set-up-filters-insights.md similarity index 100% rename from articles/set-up-filters-insights.md rename to docs/articles/set-up-filters-insights.md diff --git a/articles/signal-type-naming.md b/docs/articles/signal-type-naming.md similarity index 100% rename from articles/signal-type-naming.md rename to docs/articles/signal-type-naming.md diff --git a/articles/telemetry-client.md b/docs/articles/telemetry-client.md similarity index 100% rename from articles/telemetry-client.md rename to docs/articles/telemetry-client.md diff --git a/articles/test-mode.md b/docs/articles/test-mode.md similarity index 100% rename from articles/test-mode.md rename to docs/articles/test-mode.md diff --git a/articles/update-package.md b/docs/articles/update-package.md similarity index 100% rename from articles/update-package.md rename to docs/articles/update-package.md diff --git a/basics/acquisition.md b/docs/basics/acquisition.md similarity index 100% rename from basics/acquisition.md rename to docs/basics/acquisition.md diff --git a/basics/activation.md b/docs/basics/activation.md similarity index 100% rename from basics/activation.md rename to docs/basics/activation.md diff --git a/basics/basics.json b/docs/basics/basics.json similarity index 100% rename from basics/basics.json rename to docs/basics/basics.json diff --git a/basics/index.md b/docs/basics/index.md similarity index 100% rename from basics/index.md rename to docs/basics/index.md diff --git a/basics/metrics.md b/docs/basics/metrics.md similarity index 100% rename from basics/metrics.md rename to docs/basics/metrics.md diff --git a/basics/pirate-metrics.md b/docs/basics/pirate-metrics.md similarity index 100% rename from basics/pirate-metrics.md rename to docs/basics/pirate-metrics.md diff --git a/basics/retention.md b/docs/basics/retention.md similarity index 100% rename from basics/retention.md rename to docs/basics/retention.md diff --git a/glossary.md b/docs/glossary.md similarity index 100% rename from glossary.md rename to docs/glossary.md diff --git a/guides/android-setup.md b/docs/guides/android-setup.md similarity index 100% rename from guides/android-setup.md rename to docs/guides/android-setup.md diff --git a/guides/flutter-setup.md b/docs/guides/flutter-setup.md similarity index 100% rename from guides/flutter-setup.md rename to docs/guides/flutter-setup.md diff --git a/guides/guides.json b/docs/guides/guides.json similarity index 100% rename from guides/guides.json rename to docs/guides/guides.json diff --git a/guides/javascript-setup.md b/docs/guides/javascript-setup.md similarity index 100% rename from guides/javascript-setup.md rename to docs/guides/javascript-setup.md diff --git a/guides/objective-c-setup.md b/docs/guides/objective-c-setup.md similarity index 100% rename from guides/objective-c-setup.md rename to docs/guides/objective-c-setup.md diff --git a/guides/privacy-faq.md b/docs/guides/privacy-faq.md similarity index 100% rename from guides/privacy-faq.md rename to docs/guides/privacy-faq.md diff --git a/guides/react-setup.md b/docs/guides/react-setup.md similarity index 100% rename from guides/react-setup.md rename to docs/guides/react-setup.md diff --git a/guides/swift-setup.md b/docs/guides/swift-setup.md similarity index 100% rename from guides/swift-setup.md rename to docs/guides/swift-setup.md diff --git a/guides/vue-setup.md b/docs/guides/vue-setup.md similarity index 100% rename from guides/vue-setup.md rename to docs/guides/vue-setup.md diff --git a/guides/web-setup.md b/docs/guides/web-setup.md similarity index 100% rename from guides/web-setup.md rename to docs/guides/web-setup.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..b50d7a1 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,181 @@ +--- +icon: lucide/rocket +--- + +!!! warning + + This is a test for a new documentation system. Trust nothing and no one. The original TelemetryDeck + documentation still lives at https://telemetrydeck.com/docs/ for now. + + +---- + +# Get started + +For full documentation visit [zensical.org](https://zensical.org/docs/). + +## Commands + +* [`zensical new`][new] - Create a new project +* [`zensical serve`][serve] - Start local web server +* [`zensical build`][build] - Build your site + + [new]: https://zensical.org/docs/usage/new/ + [serve]: https://zensical.org/docs/usage/preview/ + [build]: https://zensical.org/docs/usage/build/ + +## Examples + +### Admonitions + +> Go to [documentation](https://zensical.org/docs/authoring/admonitions/) + +!!! note + + This is a **note** admonition. Use it to provide helpful information. + +!!! warning + + This is a **warning** admonition. Be careful! + +### Details + +> Go to [documentation](https://zensical.org/docs/authoring/admonitions/#collapsible-blocks) + +??? info "Click to expand for more info" + + This content is hidden until you click to expand it. + Great for FAQs or long explanations. + +## Code Blocks + +> Go to [documentation](https://zensical.org/docs/authoring/code-blocks/) + +``` python hl_lines="2" title="Code blocks" +def greet(name): + print(f"Hello, {name}!") # (1)! + +greet("Python") +``` + +1. > Go to [documentation](https://zensical.org/docs/authoring/code-blocks/#code-annotations) + + Code annotations allow to attach notes to lines of code. + +Code can also be highlighted inline: `#!python print("Hello, Python!")`. + +## Content tabs + +> Go to [documentation](https://zensical.org/docs/authoring/content-tabs/) + +=== "Python" + + ``` python + print("Hello from Python!") + ``` + +=== "Rust" + + ``` rs + println!("Hello from Rust!"); + ``` + +## Diagrams + +> Go to [documentation](https://zensical.org/docs/authoring/diagrams/) + +``` mermaid +graph LR + A[Start] --> B{Error?}; + B -->|Yes| C[Hmm...]; + C --> D[Debug]; + D --> B; + B ---->|No| E[Yay!]; +``` + +## Footnotes + +> Go to [documentation](https://zensical.org/docs/authoring/footnotes/) + +Here's a sentence with a footnote.[^1] + +Hover it, to see a tooltip. + +[^1]: This is the footnote. + + +## Formatting + +> Go to [documentation](https://zensical.org/docs/authoring/formatting/) + +- ==This was marked (highlight)== +- ^^This was inserted (underline)^^ +- ~~This was deleted (strikethrough)~~ +- H~2~O +- A^T^A +- ++ctrl+alt+del++ + +## Icons, Emojis + +> Go to [documentation](https://zensical.org/docs/authoring/icons-emojis/) + +* :sparkles: `:sparkles:` +* :rocket: `:rocket:` +* :tada: `:tada:` +* :memo: `:memo:` +* :eyes: `:eyes:` + +## Maths + +> Go to [documentation](https://zensical.org/docs/authoring/math/) + +$$ +\cos x=\sum_{k=0}^{\infty}\frac{(-1)^k}{(2k)!}x^{2k} +$$ + +!!! warning "Needs configuration" + Note that MathJax is included via a `script` tag on this page and is not + configured in the generated default configuration to avoid including it + in a pages that do not need it. See the documentation for details on how + to configure it on all your pages if they are more Maths-heavy than these + simple starter pages. + + + + +## Task Lists + +> Go to [documentation](https://zensical.org/docs/authoring/lists/#using-task-lists) + +* [x] Install Zensical +* [x] Configure `zensical.toml` +* [x] Write amazing documentation +* [ ] Deploy anywhere + +## Tooltips + +> Go to [documentation](https://zensical.org/docs/authoring/tooltips/) + +[Hover me][example] + + [example]: https://example.com "I'm a tooltip!" diff --git a/index.njk b/docs/index.njk similarity index 100% rename from index.njk rename to docs/index.njk diff --git a/ingest/default-parameters.md b/docs/ingest/default-parameters.md similarity index 100% rename from ingest/default-parameters.md rename to docs/ingest/default-parameters.md diff --git a/ingest/ingest.json b/docs/ingest/ingest.json similarity index 100% rename from ingest/ingest.json rename to docs/ingest/ingest.json diff --git a/ingest/v1.md b/docs/ingest/v1.md similarity index 100% rename from ingest/v1.md rename to docs/ingest/v1.md diff --git a/ingest/v2.md b/docs/ingest/v2.md similarity index 100% rename from ingest/v2.md rename to docs/ingest/v2.md diff --git a/integrations/integrations.json b/docs/integrations/integrations.json similarity index 100% rename from integrations/integrations.json rename to docs/integrations/integrations.json diff --git a/integrations/revenuecat.md b/docs/integrations/revenuecat.md similarity index 100% rename from integrations/revenuecat.md rename to docs/integrations/revenuecat.md diff --git a/integrations/superwall.md b/docs/integrations/superwall.md similarity index 100% rename from integrations/superwall.md rename to docs/integrations/superwall.md diff --git a/integrations/web-setup-google-tag-manager.md b/docs/integrations/web-setup-google-tag-manager.md similarity index 100% rename from integrations/web-setup-google-tag-manager.md rename to docs/integrations/web-setup-google-tag-manager.md diff --git a/docs/markdown.md b/docs/markdown.md new file mode 100644 index 0000000..e2da6dc --- /dev/null +++ b/docs/markdown.md @@ -0,0 +1,111 @@ +--- +icon: simple/markdown +--- + +# Markdown in 5min + +## Headers + +``` +# H1 Header +## H2 Header +### H3 Header +#### H4 Header +##### H5 Header +###### H6 Header +``` + +## Text formatting + +``` +**bold text** +*italic text* +***bold and italic*** +~~strikethrough~~ +`inline code` +``` + +## Links and images + +``` +[Link text](https://example.com) +[Link with title](https://example.com "Hover title") +![Alt text](image.jpg) +![Image with title](image.jpg "Image title") +``` + +## Lists + +``` +Unordered: + +- Item 1 +- Item 2 + - Nested item + +Ordered: + +1. First item +2. Second item +3. Third item +``` + +## Blockquotes + +``` +> This is a blockquote +> Multiple lines +>> Nested quote +``` + +## Code blocks + +```` +```javascript +function hello() { + console.log("Hello, world!"); +} +``` +```` + +## Tables + +``` +| Header 1 | Header 2 | Header 3 | +|----------|----------|----------| +| Row 1 | Data | Data | +| Row 2 | Data | Data | +``` + +## Horizontal rule + +``` +--- +or +*** +or +___ +``` + +## Task lists + +``` +- [x] Completed task +- [ ] Incomplete task +- [ ] Another task +``` + +## Escaping characters + +``` +Use backslash to escape: \* \_ \# \` +``` + +## Line breaks + +``` +End a line with two spaces +to create a line break. + +Or use a blank line for a new paragraph. +``` \ No newline at end of file diff --git a/recipes/averagaging-numbers.md b/docs/recipes/averagaging-numbers.md similarity index 100% rename from recipes/averagaging-numbers.md rename to docs/recipes/averagaging-numbers.md diff --git a/recipes/listing-events.md b/docs/recipes/listing-events.md similarity index 100% rename from recipes/listing-events.md rename to docs/recipes/listing-events.md diff --git a/recipes/recipes.json b/docs/recipes/recipes.json similarity index 100% rename from recipes/recipes.json rename to docs/recipes/recipes.json diff --git a/recipes/views-per-purchase-example.md b/docs/recipes/views-per-purchase-example.md similarity index 100% rename from recipes/views-per-purchase-example.md rename to docs/recipes/views-per-purchase-example.md diff --git a/tql/aggregators.md b/docs/tql/aggregators.md similarity index 100% rename from tql/aggregators.md rename to docs/tql/aggregators.md diff --git a/tql/baseFilters.md b/docs/tql/baseFilters.md similarity index 100% rename from tql/baseFilters.md rename to docs/tql/baseFilters.md diff --git a/tql/descending.md b/docs/tql/descending.md similarity index 100% rename from tql/descending.md rename to docs/tql/descending.md diff --git a/tql/dimensionSpec.md b/docs/tql/dimensionSpec.md similarity index 100% rename from tql/dimensionSpec.md rename to docs/tql/dimensionSpec.md diff --git a/tql/experiment.md b/docs/tql/experiment.md similarity index 100% rename from tql/experiment.md rename to docs/tql/experiment.md diff --git a/tql/extractionFunction.md b/docs/tql/extractionFunction.md similarity index 100% rename from tql/extractionFunction.md rename to docs/tql/extractionFunction.md diff --git a/tql/filters.md b/docs/tql/filters.md similarity index 100% rename from tql/filters.md rename to docs/tql/filters.md diff --git a/tql/firstGuideline.md b/docs/tql/firstGuideline.md similarity index 100% rename from tql/firstGuideline.md rename to docs/tql/firstGuideline.md diff --git a/tql/funnel.md b/docs/tql/funnel.md similarity index 100% rename from tql/funnel.md rename to docs/tql/funnel.md diff --git a/tql/funnels.md b/docs/tql/funnels.md similarity index 100% rename from tql/funnels.md rename to docs/tql/funnels.md diff --git a/tql/granularity.md b/docs/tql/granularity.md similarity index 100% rename from tql/granularity.md rename to docs/tql/granularity.md diff --git a/tql/groupBy.md b/docs/tql/groupBy.md similarity index 100% rename from tql/groupBy.md rename to docs/tql/groupBy.md diff --git a/tql/post-aggregators.md b/docs/tql/post-aggregators.md similarity index 100% rename from tql/post-aggregators.md rename to docs/tql/post-aggregators.md diff --git a/tql/query.md b/docs/tql/query.md similarity index 100% rename from tql/query.md rename to docs/tql/query.md diff --git a/tql/queryContext.md b/docs/tql/queryContext.md similarity index 100% rename from tql/queryContext.md rename to docs/tql/queryContext.md diff --git a/tql/queryType.md b/docs/tql/queryType.md similarity index 100% rename from tql/queryType.md rename to docs/tql/queryType.md diff --git a/tql/retention.md b/docs/tql/retention.md similarity index 100% rename from tql/retention.md rename to docs/tql/retention.md diff --git a/tql/scan.md b/docs/tql/scan.md similarity index 100% rename from tql/scan.md rename to docs/tql/scan.md diff --git a/tql/time-intervals.md b/docs/tql/time-intervals.md similarity index 100% rename from tql/time-intervals.md rename to docs/tql/time-intervals.md diff --git a/tql/timeseries.md b/docs/tql/timeseries.md similarity index 100% rename from tql/timeseries.md rename to docs/tql/timeseries.md diff --git a/tql/topN.md b/docs/tql/topN.md similarity index 100% rename from tql/topN.md rename to docs/tql/topN.md diff --git a/tql/topNMetricSpec.md b/docs/tql/topNMetricSpec.md similarity index 100% rename from tql/topNMetricSpec.md rename to docs/tql/topNMetricSpec.md diff --git a/tql/tql.json b/docs/tql/tql.json similarity index 100% rename from tql/tql.json rename to docs/tql/tql.json diff --git a/tql/valueFormatter.md b/docs/tql/valueFormatter.md similarity index 100% rename from tql/valueFormatter.md rename to docs/tql/valueFormatter.md From 40676077deaaee77efda9a8362cf72d9e3a1dee6 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 15:53:05 +0200 Subject: [PATCH 02/11] Add rudimentary zensible configuration file --- zensical.toml | 349 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 349 insertions(+) create mode 100644 zensical.toml diff --git a/zensical.toml b/zensical.toml new file mode 100644 index 0000000..be1233c --- /dev/null +++ b/zensical.toml @@ -0,0 +1,349 @@ +# ============================================================================ +# +# The configuration produced by default is meant to highlight the features +# that Zensical provides and to serve as a starting point for your own +# projects. +# +# ============================================================================ + +[project] + +# The site_name is shown in the page header and the browser window title +# +# Read more: https://zensical.org/docs/setup/basics/#site_name +site_name = "TelemetryDeck Documentation" + +# The site_description is included in the HTML head and should contain a +# meaningful description of the site content for use by search engines. +# +# Read more: https://zensical.org/docs/setup/basics/#site_description +site_description = "Documentation for the installation and usage of TelemetryDeck, a privacy first usage analytics service." + +# The site_author attribute. This is used in the HTML head element. +# +# Read more: https://zensical.org/docs/setup/basics/#site_author +site_author = "TelemetryDeck Docs Team" + +# The site_url is the canonical URL for your site. When building online +# documentation you should set this. +# Read more: https://zensical.org/docs/setup/basics/#site_url +#site_url = "https://docs.telemetrydeck.com/" + +# The copyright notice appears in the page footer and can contain an HTML +# fragment. +# +# Read more: https://zensical.org/docs/setup/basics/#copyright +copyright = """ +Copyright © 2026 TelemetryDeck GmbH +""" + +# Zensical supports both implicit navigation and explicitly defined navigation. +# If you decide not to define a navigation here then Zensical will simply +# derive the navigation structure from the directory structure of your +# "docs_dir". The definition below demonstrates how a navigation structure +# can be defined using TOML syntax. +# +# Read more: https://zensical.org/docs/setup/navigation/ +# nav = [ +# { "Get started" = "index.md" }, +# { "Markdown in 5min" = "markdown.md" }, +# ] + +# With the "extra_css" option you can add your own CSS styling to customize +# your Zensical project according to your needs. You can add any number of +# CSS files. +# +# The path provided should be relative to the "docs_dir". +# +# Read more: https://zensical.org/docs/customization/#additional-css +# +#extra_css = ["stylesheets/extra.css"] + +# With the `extra_javascript` option you can add your own JavaScript to your +# project to customize the behavior according to your needs. +# +# The path provided should be relative to the "docs_dir". +# +# Read more: https://zensical.org/docs/customization/#additional-javascript +#extra_javascript = ["javascripts/extra.js"] + +# ---------------------------------------------------------------------------- +# Section for configuring theme options +# ---------------------------------------------------------------------------- +[project.theme] + +# change this to "classic" to use the traditional Material for MkDocs look. +#variant = "classic" + +# Zensical allows you to override specific blocks, partials, or whole +# templates as well as to define your own templates. To do this, uncomment +# the custom_dir setting below and set it to a directory in which you +# keep your template overrides. +# +# Read more: +# - https://zensical.org/docs/customization/#extending-the-theme +# +#custom_dir = "overrides" + +# With the "favicon" option you can set your own image to use as the icon +# browsers will use in the browser title bar or tab bar. The path provided +# must be relative to the "docs_dir". +# +# Read more: +# - https://zensical.org/docs/setup/logo-and-icons/#favicon +# - https://developer.mozilla.org/en-US/docs/Glossary/Favicon +# +#favicon = "images/favicon.png" + +# Zensical supports more than 60 different languages. This means that the +# labels and tooltips that Zensical's templates produce are translated. +# The "language" option allows you to set the language used. This language +# is also indicated in the HTML head element to help with accessibility +# and guide search engines and translation tools. +# +# The default language is "en" (English). It is possible to create +# sites with multiple languages and configure a language selector. See +# the documentation for details. +# +# Read more: +# - https://zensical.org/docs/setup/language/ +# +language = "en" + +# Zensical provides a number of feature toggles that change the behavior +# of the documentation site. +features = [ + # Zensical includes an announcement bar. This feature allows users to + # dismiss it when they have read the announcement. + # https://zensical.org/docs/setup/header/#announcement-bar + "announce.dismiss", + + # If you have a repository configured and turn on this feature, Zensical + # will generate an edit button for the page. This works for common + # repository hosting services. + # https://zensical.org/docs/setup/repository/#content-actions + #"content.action.edit", + + # If you have a repository configured and turn on this feature, Zensical + # will generate a button that allows the user to view the Markdown + # code for the current page. + # https://zensical.org/docs/setup/repository/#content-actions + #"content.action.view", + + # Code annotations allow you to add an icon with a tooltip to your + # code blocks to provide explanations at crucial points. + # https://zensical.org/docs/authoring/code-blocks/#code-annotations + "content.code.annotate", + + # This feature turns on a button in code blocks that allow users to + # copy the content to their clipboard without first selecting it. + # https://zensical.org/docs/authoring/code-blocks/#code-copy-button + "content.code.copy", + + # Code blocks can include a button to allow for the selection of line + # ranges by the user. + # https://zensical.org/docs/authoring/code-blocks/#code-selection-button + "content.code.select", + + # Zensical can render footnotes as inline tooltips, so the user can read + # the footnote without leaving the context of the document. + # https://zensical.org/docs/authoring/footnotes/#footnote-tooltips + "content.footnote.tooltips", + + # If you have many content tabs that have the same titles (e.g., "Python", + # "JavaScript", "Cobol"), this feature causes all of them to switch to + # at the same time when the user chooses their language in one. + # https://zensical.org/docs/authoring/content-tabs/#linked-content-tabs + "content.tabs.link", + + # With this feature enabled users can add tooltips to links that will be + # displayed when the mouse pointer hovers the link. + # https://zensical.org/docs/authoring/tooltips/#improved-tooltips + "content.tooltips", + + # With this feature enabled, Zensical will automatically hide parts + # of the header when the user scrolls past a certain point. + # https://zensical.org/docs/setup/header/#automatic-hiding + # "header.autohide", + + # Turn on this feature to expand all collapsible sections in the + # navigation sidebar by default. + # https://zensical.org/docs/setup/navigation/#navigation-expansion + # "navigation.expand", + + # This feature turns on navigation elements in the footer that allow the + # user to navigate to a next or previous page. + # https://zensical.org/docs/setup/footer/#navigation + "navigation.footer", + + # When section index pages are enabled, documents can be directly attached + # to sections, which is particularly useful for providing overview pages. + # https://zensical.org/docs/setup/navigation/#section-index-pages + "navigation.indexes", + + # When instant navigation is enabled, clicks on all internal links will be + # intercepted and dispatched via XHR without fully reloading the page. + # https://zensical.org/docs/setup/navigation/#instant-navigation + "navigation.instant", + + # With instant prefetching, your site will start to fetch a page once the + # user hovers over a link. This will reduce the perceived loading time + # for the user. + # https://zensical.org/docs/setup/navigation/#instant-prefetching + "navigation.instant.prefetch", + + # In order to provide a better user experience on slow connections when + # using instant navigation, a progress indicator can be enabled. + # https://zensical.org/docs/setup/navigation/#progress-indicator + #"navigation.instant.progress", + + # When navigation paths are activated, a breadcrumb navigation is rendered + # above the title of each page + # https://zensical.org/docs/setup/navigation/#navigation-path + "navigation.path", + + # When pruning is enabled, only the visible navigation items are included + # in the rendered HTML, reducing the size of the built site by 33% or more. + # https://zensical.org/docs/setup/navigation/#navigation-pruning + #"navigation.prune", + + # When sections are enabled, top-level sections are rendered as groups in + # the sidebar for viewports above 1220px, but remain as-is on mobile. + # https://zensical.org/docs/setup/navigation/#navigation-sections + "navigation.sections", + + # When tabs are enabled, top-level sections are rendered in a menu layer + # below the header for viewports above 1220px, but remain as-is on mobile. + # https://zensical.org/docs/setup/navigation/#navigation-tabs + #"navigation.tabs", + + # When sticky tabs are enabled, navigation tabs will lock below the header + # and always remain visible when scrolling down. + # https://zensical.org/docs/setup/navigation/#sticky-navigation-tabs + #"navigation.tabs.sticky", + + # A back-to-top button can be shown when the user, after scrolling down, + # starts to scroll up again. + # https://zensical.org/docs/setup/navigation/#back-to-top-button + "navigation.top", + + # When anchor tracking is enabled, the URL in the address bar is + # automatically updated with the active anchor as highlighted in the table + # of contents. + # https://zensical.org/docs/setup/navigation/#anchor-tracking + "navigation.tracking", + + # When search highlighting is enabled and a user clicks on a search result, + # Zensical will highlight all occurrences after following the link. + # https://zensical.org/docs/setup/search/#search-highlighting + "search.highlight", + + # When anchor following for the table of contents is enabled, the sidebar + # is automatically scrolled so that the active anchor is always visible. + # https://zensical.org/docs/setup/navigation/#anchor-following + # "toc.follow", + + # When navigation integration for the table of contents is enabled, it is + # always rendered as part of the navigation sidebar on the left. + # https://zensical.org/docs/setup/navigation/#navigation-integration + #"toc.integrate", +] + +# ---------------------------------------------------------------------------- +# You can configure your own logo to be shown in the header using the "logo" +# option in the "theme" subsection. The logo must be a relative path to a file +# in your "docs_dir", e.g., to use `docs/assets/logo.png` you would set: +# ---------------------------------------------------------------------------- +#logo = "assets/logo.png" + +# ---------------------------------------------------------------------------- +# If you don't have a dedicated project logo, you can use a built-in icon from +# the icon sets shipped in Zensical. Please note that the setting lives in a +# different subsection, and that the above take precedence over the icon. +# +# Read more: +# - https://zensical.org/docs/setup/logo-and-icons +# - https://github.com/zensical/ui/tree/master/dist/.icons +# ---------------------------------------------------------------------------- +#[project.theme.icon] +#logo = "lucide/smile" + +# ---------------------------------------------------------------------------- +# In the "font" subsection you can configure the fonts used. By default, fonts +# are loaded from Google Fonts, giving you a wide range of choices from a set +# of suitably licensed fonts. There are options for a normal text font and for +# a monospaced font used in code blocks. +# ---------------------------------------------------------------------------- +#[project.theme.font] +#text = "Inter" +#code = "Jetbrains Mono" + +# ---------------------------------------------------------------------------- +# In the "palette" subsection you can configure options for the color scheme. +# You can configure different color schemes, e.g., to turn on dark mode, +# that the user can switch between. Each color scheme can be further +# customized. +# +# Read more: +# - https://zensical.org/docs/setup/colors/ +# ---------------------------------------------------------------------------- +[[project.theme.palette]] +scheme = "default" +toggle.icon = "lucide/sun" +toggle.name = "Switch to dark mode" + +[[project.theme.palette]] +scheme = "slate" +toggle.icon = "lucide/moon" +toggle.name = "Switch to light mode" + +# ---------------------------------------------------------------------------- +# The "extra" section contains miscellaneous settings. +# ---------------------------------------------------------------------------- +#[[project.extra.social]] +#icon = "fontawesome/brands/github" +#link = "https://github.com/user/repo" + +# ---------------------------------------------------------------------------- +# In this section you can configure the Markdown extensions that are used when +# rendering your documentation. We enable the most useful extensions by default, +# but you can customize this list to your needs. +# +# Read more: +# - https://zensical.org/docs/setup/extensions/ +# ---------------------------------------------------------------------------- +[project.markdown_extensions.abbr] +[project.markdown_extensions.admonition] +[project.markdown_extensions.attr_list] +[project.markdown_extensions.def_list] +[project.markdown_extensions.footnotes] +[project.markdown_extensions.md_in_html] +[project.markdown_extensions.toc] +permalink = true +[project.markdown_extensions.pymdownx.arithmatex] +generic = true +[project.markdown_extensions.pymdownx.betterem] +[project.markdown_extensions.pymdownx.caret] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.pymdownx.emoji] +emoji_generator = "zensical.extensions.emoji.to_svg" +emoji_index = "zensical.extensions.emoji.twemoji" +[project.markdown_extensions.pymdownx.highlight] +anchor_linenums = true +line_spans = "__span" +pygments_lang_class = true +[project.markdown_extensions.pymdownx.inlinehilite] +[project.markdown_extensions.pymdownx.keys] +[project.markdown_extensions.pymdownx.magiclink] +[project.markdown_extensions.pymdownx.mark] +[project.markdown_extensions.pymdownx.smartsymbols] +[project.markdown_extensions.pymdownx.superfences] +custom_fences = [ + { name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" } +] +[project.markdown_extensions.pymdownx.tabbed] +alternate_style = true +combine_header_slug = true +[project.markdown_extensions.pymdownx.tasklist] +custom_checkbox = true +[project.markdown_extensions.pymdownx.tilde] From 2d5a284156f20732d60c7df8b205d935ae07a1c3 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 15:59:46 +0200 Subject: [PATCH 03/11] ci: add Azure Static Web Apps workflow file on-behalf-of: @Azure opensource@microsoft.com --- ...-static-web-apps-purple-bush-012fe8010.yml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml diff --git a/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml b/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml new file mode 100644 index 0000000..5c2cec7 --- /dev/null +++ b/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml @@ -0,0 +1,46 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - feature/zensible + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - feature/zensible + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v3 + with: + submodules: true + lfs: false + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_BUSH_012FE8010 }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/" # App source code path + api_location: "" # Api source code path - optional + output_location: "" # Built app content directory - optional + ###### End of Repository/Build Configurations ###### + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_BUSH_012FE8010 }} + action: "close" From f063923f469973f347d56acb770de4f305ff0e36 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 16:01:41 +0200 Subject: [PATCH 04/11] Update CI for SWA --- ...-static-web-apps-purple-bush-012fe8010.yml | 99 ++++++++++--------- 1 file changed, 53 insertions(+), 46 deletions(-) diff --git a/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml b/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml index 5c2cec7..78f595d 100644 --- a/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml +++ b/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml @@ -1,46 +1,53 @@ -name: Azure Static Web Apps CI/CD - -on: - push: - branches: - - feature/zensible - pull_request: - types: [opened, synchronize, reopened, closed] - branches: - - feature/zensible - -jobs: - build_and_deploy_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') - runs-on: ubuntu-latest - name: Build and Deploy Job - steps: - - uses: actions/checkout@v3 - with: - submodules: true - lfs: false - - name: Build And Deploy - id: builddeploy - uses: Azure/static-web-apps-deploy@v1 - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_BUSH_012FE8010 }} - repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) - action: "upload" - ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### - # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig - app_location: "/" # App source code path - api_location: "" # Api source code path - optional - output_location: "" # Built app content directory - optional - ###### End of Repository/Build Configurations ###### - - close_pull_request_job: - if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest - name: Close Pull Request Job - steps: - - name: Close Pull Request - id: closepullrequest - uses: Azure/static-web-apps-deploy@v1 - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_BUSH_012FE8010 }} - action: "close" +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - feature/zensible + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - feature/zensible + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v3 + with: + submodules: true + lfs: false + - uses: actions/setup-python@v6 + with: + python-version: 3.x + - run: pip install zensical + - run: zensical build --clean + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_BUSH_012FE8010 }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "site" + api_location: "" + skip_app_build: true + skip_api_build: true + output_location: "" + ###### End of Repository/Build Configurations ###### + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PURPLE_BUSH_012FE8010 }} + action: "close" From 1f6d3a652de8f90401db4ab8ac7989cf9b4c1e10 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 16:13:10 +0200 Subject: [PATCH 05/11] Move content from index.njk to index.md --- docs/index.md | 32 +++++++++++++++++++++++++++++ docs/index.njk | 56 -------------------------------------------------- 2 files changed, 32 insertions(+), 56 deletions(-) delete mode 100644 docs/index.njk diff --git a/docs/index.md b/docs/index.md index b50d7a1..80b4bc4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,6 +8,38 @@ icon: lucide/rocket documentation still lives at https://telemetrydeck.com/docs/ for now. +--- + +## Welcome to TelemetryDeck + +TelemetryDeck helps you understand how users interact with your application through privacy-focused analytics. With just an SDK integration, you'll get valuable insights automatically – no complex configuration required. + +### Getting Started in 2 simple steps + + +- **Choose and install** the SDK for your platform from the guides below +- **Deploy your app** to start collecting data + +Once your updated app is in users' hands, TelemetryDeck will begin collecting data. It may take some time before you see meaningful insights, depending on your app's usage. + +### What's next after setup? + +After setting up the SDK and deploying your app, your most important next step is to learn how to use the dashboard to analyze your data: + +- [Analytics Walkthrough](/basics) - Learn how to navigate TelemetryDeck, interpret insights, and use analytics to make data-driven decisions that improve your app and grow your user base. + + +### Documentation Feedback + +If you find an error or feel like the documentation could be improved somewhat, we'd love +to hear from you! Either directly submit a change request with the buttons on each page, +or open an issue in our Docs GitHub Repository. + +The [documentation guide](/articles/documentation) explains all markdown and +additional features you can use while writing documentation for TelemetryDeck. + + + ---- # Get started diff --git a/docs/index.njk b/docs/index.njk deleted file mode 100644 index 398e42f..0000000 --- a/docs/index.njk +++ /dev/null @@ -1,56 +0,0 @@ ----json -{ -"title": "Quick Start Guide", -"lead": "Set up TelemetryDeck in minutes and start gaining insights into your app's performance", -"tags": "intro", -"categoryOrder": -9000, -"searchEngineDescription":"With this Quick Start Guide, you can set up TelemetryDeck's app analytics in minutes and start gaining insights into your app's performance." -} ---- - -

Welcome to TelemetryDeck

- -

TelemetryDeck helps you understand how users interact with your application through privacy-focused analytics. With just an SDK integration, you'll get valuable insights automatically – no complex configuration required.

- -

Getting Started in 2 simple steps

- -
    -
  1. Choose and install the SDK for your platform from the guides below
  2. -
  3. Deploy your app to start collecting data
  4. -
- -

Once your updated app is in users' hands, TelemetryDeck will begin collecting data. It may take some time before you see meaningful insights, depending on your app's usage.

- -{% include "docs/featured.njk" %} - -

What's next after setup?

- -

After setting up the SDK and deploying your app, your most important next step is to learn how to use the dashboard to analyze your data:

- -
-
-
- -
-

- - πŸ“Š Analytics Walkthrough -

-

Learn how to navigate TelemetryDeck, interpret insights, and use analytics to make data-driven decisions that improve your app and grow your user base.

-

- Start here to get real value from your analytics - β†’ -

-
-
-
-
- -

Documentation Feedback

- -

If you find an error or feel like the documentation could be improved somewhat, we'd love -to hear from you! Either directly submit a change request with the buttons on each page, -or open an issue in our Docs GitHub Repository.

- -

The documentation guide explains all markdown and -additional features you can use while writing documentation for TelemetryDeck.

From f897f27f92da63df84b2da484bd8ec6830c0846e Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 16:15:40 +0200 Subject: [PATCH 06/11] Update Repo URL --- zensical.toml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/zensical.toml b/zensical.toml index be1233c..c0743a8 100644 --- a/zensical.toml +++ b/zensical.toml @@ -8,6 +8,9 @@ [project] + +repo_url = "https://github.com/TelemetryDeck/docs" + # The site_name is shown in the page header and the browser window title # # Read more: https://zensical.org/docs/setup/basics/#site_name @@ -122,13 +125,13 @@ features = [ # will generate an edit button for the page. This works for common # repository hosting services. # https://zensical.org/docs/setup/repository/#content-actions - #"content.action.edit", + "content.action.edit", # If you have a repository configured and turn on this feature, Zensical # will generate a button that allows the user to view the Markdown # code for the current page. # https://zensical.org/docs/setup/repository/#content-actions - #"content.action.view", + "content.action.view", # Code annotations allow you to add an icon with a tooltip to your # code blocks to provide explanations at crucial points. From eb2ae3a07a83ffdc08948fbbb3864ce1645f5918 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 16:21:53 +0200 Subject: [PATCH 07/11] Rudimentary Color scheme --- zensical.toml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/zensical.toml b/zensical.toml index c0743a8..3ffba6d 100644 --- a/zensical.toml +++ b/zensical.toml @@ -291,14 +291,25 @@ features = [ # - https://zensical.org/docs/setup/colors/ # ---------------------------------------------------------------------------- [[project.theme.palette]] +media = "(prefers-color-scheme)" +toggle.icon = "lucide/sun-moon" +toggle.name = "Switch to light mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: light)" scheme = "default" toggle.icon = "lucide/sun" toggle.name = "Switch to dark mode" +primary = "deep orange" +accent = "orange" [[project.theme.palette]] +media = "(prefers-color-scheme: dark)" scheme = "slate" toggle.icon = "lucide/moon" -toggle.name = "Switch to light mode" +toggle.name = "Switch to system preference" +primary = "orange" +accent = "deep orange" # ---------------------------------------------------------------------------- # The "extra" section contains miscellaneous settings. From b9dececeb3c6095b5213c949ca7438058c7552db Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 17:19:35 +0200 Subject: [PATCH 08/11] Add TelemetryDeck App Analytics --- .../azure-static-web-apps-purple-bush-012fe8010.yml | 5 +++++ overrides/partials/integrations/analytics/telemetrydeck.html | 4 ++++ zensical.toml | 5 ++++- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 overrides/partials/integrations/analytics/telemetrydeck.html diff --git a/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml b/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml index 78f595d..593baec 100644 --- a/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml +++ b/.github/workflows/azure-static-web-apps-purple-bush-012fe8010.yml @@ -19,6 +19,11 @@ jobs: with: submodules: true lfs: false + - name: Replace TelemetryDeck App ID + env: + TELEMETRYDECK_APP_ID: ${{ secrets.TELEMETRYDECK_APP_ID }} + run: | + sed -i "s|#TELEMETRYDECK_APP_ID#|${TELEMETRYDECK_APP_ID}|g" overrides/partials/integrations/analytics/telemetrydeck.html - uses: actions/setup-python@v6 with: python-version: 3.x diff --git a/overrides/partials/integrations/analytics/telemetrydeck.html b/overrides/partials/integrations/analytics/telemetrydeck.html new file mode 100644 index 0000000..3ec627d --- /dev/null +++ b/overrides/partials/integrations/analytics/telemetrydeck.html @@ -0,0 +1,4 @@ + diff --git a/zensical.toml b/zensical.toml index 3ffba6d..01736c1 100644 --- a/zensical.toml +++ b/zensical.toml @@ -86,7 +86,7 @@ Copyright © 2026 TelemetryDeck GmbH # Read more: # - https://zensical.org/docs/customization/#extending-the-theme # -#custom_dir = "overrides" +custom_dir = "overrides" # With the "favicon" option you can set your own image to use as the icon # browsers will use in the browser title bar or tab bar. The path provided @@ -318,6 +318,9 @@ accent = "deep orange" #icon = "fontawesome/brands/github" #link = "https://github.com/user/repo" +[project.extra.analytics] +provider = "telemetrydeck" + # ---------------------------------------------------------------------------- # In this section you can configure the Markdown extensions that are used when # rendering your documentation. We enable the most useful extensions by default, From 82c9e077515a1682d661c8934cd19defa15d83cc Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 17:35:32 +0200 Subject: [PATCH 09/11] Convert warnings with regex --- docs/api/api-query-from-insight.md | 6 ++---- docs/api/api-run-query.md | 6 ++---- docs/api/api-token.md | 6 ++---- docs/guides/javascript-setup.md | 11 ++++------- docs/ingest/v1.md | 6 ++---- docs/integrations/revenuecat.md | 6 ++---- docs/tql/aggregators.md | 6 ++---- docs/tql/dimensionSpec.md | 6 ++---- docs/tql/funnels.md | 6 ++---- 9 files changed, 20 insertions(+), 39 deletions(-) diff --git a/docs/api/api-query-from-insight.md b/docs/api/api-query-from-insight.md index 543927d..36b58b0 100644 --- a/docs/api/api-query-from-insight.md +++ b/docs/api/api-query-from-insight.md @@ -6,11 +6,9 @@ description: Using the TelemetryDeck API, you can retrieve the query that is use lead: Using the TelemetryDeck API, you can retrieve the query that is used in an insight --- -{% notewarning "Paid plans only" %} +!!! warning "Paid plans only" -API access β€” including retrieving an insight's query β€” is available on TelemetryDeck's paid plans. If your organization is on the free plan, upgrade your plan first and you'll be able to generate a personal access token and use the API. - -{% endnotewarning %} + API access β€” including retrieving an insight's query β€” is available on TelemetryDeck's paid plans. If your organization is on the free plan, upgrade your plan first and you'll be able to generate a personal access token and use the API. ## Authorization diff --git a/docs/api/api-run-query.md b/docs/api/api-run-query.md index f7e6c04..c4d61de 100644 --- a/docs/api/api-run-query.md +++ b/docs/api/api-run-query.md @@ -7,11 +7,9 @@ lead: Using the TelemetryDeck API, you can run a query and retrieve its results order: 2 --- -{% notewarning "Paid plans only" %} +!!! warning "Paid plans only" -API access β€” including running queries β€” is available on TelemetryDeck's paid plans. If your organization is on the free plan, upgrade your plan first and you'll be able to generate a personal access token and run queries. - -{% endnotewarning %} + API access β€” including running queries β€” is available on TelemetryDeck's paid plans. If your organization is on the free plan, upgrade your plan first and you'll be able to generate a personal access token and run queries. ## Authorization diff --git a/docs/api/api-token.md b/docs/api/api-token.md index a13152c..c062aeb 100644 --- a/docs/api/api-token.md +++ b/docs/api/api-token.md @@ -7,11 +7,9 @@ lead: To interact with the TelemetryDeck API, you need a personal access token ( order: 1 --- -{% notewarning "Paid plans only" %} +!!! warning "Paid plans only" -Personal access tokens are available on TelemetryDeck's paid plans. If your organization is on the free plan, upgrade your plan first and the feature will become available in the dashboard. - -{% endnotewarning %} + Personal access tokens are available on TelemetryDeck's paid plans. If your organization is on the free plan, upgrade your plan first and the feature will become available in the dashboard. ## Generating a Personal Access Token diff --git a/docs/guides/javascript-setup.md b/docs/guides/javascript-setup.md index e896f9b..cfa7060 100644 --- a/docs/guides/javascript-setup.md +++ b/docs/guides/javascript-setup.md @@ -87,14 +87,11 @@ If can't specify a user identifier at initialization, you can set it later by se Please note that `td.signal` is an async function that returns a promise. -{% notewarning "Special treatment for frameworks" %} +!!! warning "Special treatment for frameworks" -Some frameworks, like Svelte, don't need `crypto` and node.js. Here are some tips on how to implement TelemetryDeck when using some of these special frameworks: - -- The initialization should happen once, and the TD object should be passed around in a service or singleton. -- The `td.send` function should be used to send signals, either automatically in a router-like object or on a per-feature basis. - -{% endnotewarning %} + Some frameworks, like Svelte, don't need `crypto` and node.js. Here are some tips on how to implement TelemetryDeck when using some of these special frameworks: + - The initialization should happen once, and the TD object should be passed around in a service or singleton. + - The `td.send` function should be used to send signals, either automatically in a router-like object or on a per-feature basis. ### Advanced initialization options diff --git a/docs/ingest/v1.md b/docs/ingest/v1.md index 8a79b77..913b9c3 100644 --- a/docs/ingest/v1.md +++ b/docs/ingest/v1.md @@ -6,11 +6,9 @@ order: 99999 searchEngineDescription: A reference of all properties of the Signal Ingestion API. Note -- We’re continuing to host ingest v1, but officially deprecating it and recommending using v2. --- -{% notewarning "Deprecated" %} +!!! warning "Deprecated" -While we're continuing to host ingest v1, we're officially deprecating it and recommending our customers to use the [v2 API](/docs/ingest/v2/) instead. The v2 API is more flexible, has better support for custom data, and is more future proof. - -{% endnotewarning %} + While we're continuing to host ingest v1, we're officially deprecating it and recommending our customers to use the [v2 API](/docs/ingest/v2/) instead. The v2 API is more flexible, has better support for custom data, and is more future proof. This article will first show the minimal structure needed for a signal to send, and then talk about some of the optional extensions. diff --git a/docs/integrations/revenuecat.md b/docs/integrations/revenuecat.md index bf80a5a..427f6ed 100644 --- a/docs/integrations/revenuecat.md +++ b/docs/integrations/revenuecat.md @@ -84,11 +84,9 @@ Here's what's going on in the above example 2. We then manually set a default user for TelemetryDeck. This allows us to later retrieve a hashed version of the user identifier. 3. Finally, we configure RevenueCat and set up the necessary user attributes. -{% notewarning "You need to keep user identifiers in sync" %} +!!! warning "You need to keep user identifiers in sync" -Whenever you update your TelemetryDeck user identifier, you'll also need to update the user identifier in RevenueCat's `$telemetryDeckUserId` user attribute. - -{% endnotewarning %} + Whenever you update your TelemetryDeck user identifier, you'll also need to update the user identifier in RevenueCat's `$telemetryDeckUserId` user attribute. ## Setting up RevenueCat's TelemetryDeck Integration diff --git a/docs/tql/aggregators.md b/docs/tql/aggregators.md index fddc53d..818d02d 100644 --- a/docs/tql/aggregators.md +++ b/docs/tql/aggregators.md @@ -117,11 +117,9 @@ Also, you can use post aggregators to do union, intersection or difference on sk `cardinality` computes the cardinality of a dimension. -{% notewarning "Deprecated" %} +!!! warning "Deprecated" -This aggregator is deprecated. Use `thetaSketch` instead. - -{% endnotewarning %} + This aggregator is deprecated. Use `thetaSketch` instead. ```json { diff --git a/docs/tql/dimensionSpec.md b/docs/tql/dimensionSpec.md index 28cd830..1f8b1af 100644 --- a/docs/tql/dimensionSpec.md +++ b/docs/tql/dimensionSpec.md @@ -9,11 +9,9 @@ The default DimensionSpec returns dimension values as is and optionally renames If an extraction function is set, it returns dimension values transformed using the given extraction function. -{% notewarning "What is a dimension?" %} +!!! warning "What is a dimension?" -TelemetryDecks Query Language is based on Apache Druid. In Druid, a dimension is a named field in your data used for filtering, grouping, or joining - typically string or categorical values. - -{% endnotewarning %} + TelemetryDecks Query Language is based on Apache Druid. In Druid, a dimension is a named field in your data used for filtering, grouping, or joining - typically string or categorical values. ## Default DimensionSpec diff --git a/docs/tql/funnels.md b/docs/tql/funnels.md index 5b7d9b5..b92d15c 100644 --- a/docs/tql/funnels.md +++ b/docs/tql/funnels.md @@ -13,11 +13,9 @@ searchEngineDescription: This is a quick overview on how to create funnels, or c order: 1000 --- -{% notewarning "Deprecated" %} +!!! warning "Deprecated" -The content below is deprecated and will be removed in the future. Please refer to the [new documentation](/docs/tql/funnel/) instead. - -{% endnotewarning %} + The content below is deprecated and will be removed in the future. Please refer to the [new documentation](/docs/tql/funnel/) instead. This article explains the thought process on how to create funnel-type queries; scroll to the bottom for a complete example. From 99f7b35d60322cf2829b5bc75d8f7911fd23d78b Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 17:36:51 +0200 Subject: [PATCH 10/11] Convert infos with regex --- docs/articles/apple-app-privacy.md | 10 ++++------ docs/articles/documentation.md | 14 ++++++-------- docs/guides/javascript-setup.md | 16 +++++++--------- docs/guides/web-setup.md | 10 ++++------ docs/integrations/revenuecat.md | 14 +++++--------- docs/tql/aggregators.md | 8 +++----- docs/tql/funnels.md | 6 ++---- docs/tql/query.md | 8 +++----- 8 files changed, 34 insertions(+), 52 deletions(-) diff --git a/docs/articles/apple-app-privacy.md b/docs/articles/apple-app-privacy.md index 88c4cb1..3b4b959 100644 --- a/docs/articles/apple-app-privacy.md +++ b/docs/articles/apple-app-privacy.md @@ -34,14 +34,12 @@ In the second screen, scroll down until you see the **Identifiers** section. In TelemetryDeck's **default mode**, with no user identifier specified, check the **Device ID** checkmark. This is what identifies individual users to TelemetryDeck. -{% noteinfo "Other Types of Identifiers" %} +!!! warning "Other Types of Identifiers" -In case you use TelemetryDeck in a more advanced way where you supply a custom user identifier, you'll need to think about this for a second: + In case you use TelemetryDeck in a more advanced way where you supply a custom user identifier, you'll need to think about this for a second: -- If you instead specify a User Identifier such as email address or username to TelemetryDeck, check instead the **User ID** checkmark. The identifier is only transmitted as a hash, but it still counts as a user identifier. -- If you instead are purposefully disabling user tracking by handing the same string to TelemetryDeck for each user, you don't need to check any of the checkboxes in the **Identifiers** section. - -{% endnoteinfo %} + - If you instead specify a User Identifier such as email address or username to TelemetryDeck, check instead the **User ID** checkmark. The identifier is only transmitted as a hash, but it still counts as a user identifier. + - If you instead are purposefully disabling user tracking by handing the same string to TelemetryDeck for each user, you don't need to check any of the checkboxes in the **Identifiers** section. ### Usage Data diff --git a/docs/articles/documentation.md b/docs/articles/documentation.md index 8428599..ef8a8c0 100644 --- a/docs/articles/documentation.md +++ b/docs/articles/documentation.md @@ -79,16 +79,14 @@ Organizational tags like `docs` and `guides` are automatically applied. Use the - The experience level of the reader (`beginner`, `intermediate`, `advanced`) - The type of query (`filter`, `cohorts`, etc.) -{% noteinfo "You don't need to add 'docs' and 'articles' as tags" %} +!!! warning "You don't need to add 'docs' and 'articles' as tags" -All markdown files in the `docs` repository automatically get the `docs` tag applied to them (by `docs.11tydata.js`). In addition, the respective directories apply their own tags as well: + All markdown files in the `docs` repository automatically get the `docs` tag applied to them (by `docs.11tydata.js`). In addition, the respective directories apply their own tags as well: -- Files in the `intro` directory get the `intro` tag applied. -- Files in the `guides` directory get the `guides` tag applied. -- Files in the `articles` directory get the `articles` tag applied. -- Files in the `api` directory get the `api` tag applied. - -{% endnoteinfo %} + - Files in the `intro` directory get the `intro` tag applied. + - Files in the `guides` directory get the `guides` tag applied. + - Files in the `articles` directory get the `articles` tag applied. + - Files in the `api` directory get the `api` tag applied. ### Order diff --git a/docs/guides/javascript-setup.md b/docs/guides/javascript-setup.md index cfa7060..691a19a 100644 --- a/docs/guides/javascript-setup.md +++ b/docs/guides/javascript-setup.md @@ -14,17 +14,15 @@ order: 300 The TelemetryDeck SDK has no dependencies and supports **modern evergreen browsers** and **modern versions of Node.js** with support for [cryptography](https://caniuse.com/cryptography). -{% noteinfo "There are multiple ways of adding TelemetryDeck to a web site" %} +!!! warning "There are multiple ways of adding TelemetryDeck to a web site" -There are different tutorials you should read depending on your use case. + There are different tutorials you should read depending on your use case. -- The [TelemetryDeck Web SDK](/docs/guides/web-setup) is a quick and easy way to include web analytics into your website. This is fantastic for blogs, landing pages, static websites, and content-driven websites. - -- If you are building a JavaScript application – a Progressive Web App written in React, Vue, Angular, Svelte, Ember, or mobile or desktop apps written with React Native, Electron, Ionic, and so on, you should read this guide. - -[Our blog post](/blog/js-sdk-2-0/) explains the differences between the two SDKs in more detail. - -{% endnoteinfo %} + - The [TelemetryDeck Web SDK](/docs/guides/web-setup) is a quick and easy way to include web analytics into your website. This is fantastic for blogs, landing pages, static websites, and content-driven websites. + + - If you are building a JavaScript application – a Progressive Web App written in React, Vue, Angular, Svelte, Ember, or mobile or desktop apps written with React Native, Electron, Ionic, and so on, you should read this guide. + + [Our blog post](/blog/js-sdk-2-0/) explains the differences between the two SDKs in more detail. ## Set up diff --git a/docs/guides/web-setup.md b/docs/guides/web-setup.md index 0a97303..42ee7e9 100644 --- a/docs/guides/web-setup.md +++ b/docs/guides/web-setup.md @@ -109,14 +109,12 @@ This means that the Web SDK will recognize recurring users on the same day on th ## If you're a developer -{% noteinfo "There are multiple ways of adding TelemetryDeck to a web site" %} +!!! warning "There are multiple ways of adding TelemetryDeck to a web site" -There are different tutorials you should read depending on your use case. + There are different tutorials you should read depending on your use case. -- If you are building a **JavaScript application or PWA using node package manager**, you should read the [Node Package Setup Guide](/docs/guides/javascript-setup). -- If you are building a **website or blog**, and want to include TelemetryDeck with a simple script tag similar to Google Analytics or Plausible Analytics, you should read this guide. - -{% endnoteinfo %} + - If you are building a **JavaScript application or PWA using node package manager**, you should read the [Node Package Setup Guide](/docs/guides/javascript-setup). + - If you are building a **website or blog**, and want to include TelemetryDeck with a simple script tag similar to Google Analytics or Plausible Analytics, you should read this guide. ## What to do next diff --git a/docs/integrations/revenuecat.md b/docs/integrations/revenuecat.md index 427f6ed..8a4e73b 100644 --- a/docs/integrations/revenuecat.md +++ b/docs/integrations/revenuecat.md @@ -15,11 +15,9 @@ RevenueCat pairs excellently with TelemetryDeck – use TelemetryDeck to improv With this integration, you can import your RevenueCat events into TelemetryDeck, and see everything on one dashboard. We'll be using RevenueCat's _Webhooks_ feature to pass on their data to TelemetryDeck. -{% noteinfo "Read the announcement" %} +!!! warning "Read the announcement" -Our [announcement blog post](https://telemetrydeck.com/blog/revenuecat-integration/) shows you what to expect, how to use the new revenue dashboard, and gives examples on what to do with your revenue data. - -{% endnoteinfo %} + Our [announcement blog post](https://telemetrydeck.com/blog/revenuecat-integration/) shows you what to expect, how to use the new revenue dashboard, and gives examples on what to do with your revenue data. ## Installing RevenueCat and TelemetryDeck @@ -35,13 +33,11 @@ RevenueCat has a concept of **user attributes**. Our goal is to set two new user - `$telemetryDeckAppId`: This attribute should be set to your TelemetryDeck App ID, the same one you pass into the TelemetryDeck SDK for initialization. - `$telemetryDeckUserId`: This attribute needs to be the **already-hashed user identifier** that TelemetryDeck is using. -{% noteinfo "RevenueCat gets the hashed version of the TelemetryDeck User Identifier" %} - -While the TelemetryDeck SDK usually takes care of hashing for you, you'll need to extract the identifier after it's been hashed and pass that on to RevenueCat. Only then will the final identifiers in your TelemetryDeck dashboard match up. +!!! warning "RevenueCat gets the hashed version of the TelemetryDeck User Identifier" -If your version of the TelemetryDeck SDK does not expose a function to vend the hashed user identifier, you can hash it yourself using something like `SHA256(user_id + salt)`. + While the TelemetryDeck SDK usually takes care of hashing for you, you'll need to extract the identifier after it's been hashed and pass that on to RevenueCat. Only then will the final identifiers in your TelemetryDeck dashboard match up. -{% endnoteinfo %} + If your version of the TelemetryDeck SDK does not expose a function to vend the hashed user identifier, you can hash it yourself using something like `SHA256(user_id + salt)`. ### iOS diff --git a/docs/tql/aggregators.md b/docs/tql/aggregators.md index 818d02d..5be6e2b 100644 --- a/docs/tql/aggregators.md +++ b/docs/tql/aggregators.md @@ -97,13 +97,11 @@ A theta sketch gives you the number of unique values that a dimension has in you Theta sketches are a probabilistic data structure used for the [count-distinct problem](https://en.wikipedia.org/wiki/Count-distinct_problem). They allow us to quickly count elements in sets, such as the set of users in the aggregation buckets -{% noteinfo "More on ThetaSketches" %} +!!! warning "More on ThetaSketches" -A Theta sketch object can be thought of as a Set data structure. At query time, sketches are read and aggregated (set unioned) together. By default, you receive the estimate of the number of unique entries in the sketch object. + A Theta sketch object can be thought of as a Set data structure. At query time, sketches are read and aggregated (set unioned) together. By default, you receive the estimate of the number of unique entries in the sketch object. -Also, you can use post aggregators to do union, intersection or difference on sketch columns in the same row. This means you can create distinct sets of users and compare them against each other. This is necessary for retention and funnel queries. - -{% endnoteinfo %} + Also, you can use post aggregators to do union, intersection or difference on sketch columns in the same row. This means you can create distinct sets of users and compare them against each other. This is necessary for retention and funnel queries. ```json { diff --git a/docs/tql/funnels.md b/docs/tql/funnels.md index b92d15c..2aca4ad 100644 --- a/docs/tql/funnels.md +++ b/docs/tql/funnels.md @@ -112,11 +112,9 @@ For our filters, we want to grab all signals that might be relevant for the funn We're going to use aggregations to split up (or aggregate) the signals into different buckets, and count them by `clientUser` which is the field for TelemetryDeck's user identifier. We're using Theta Sketches to count the number of different users for the funnel stage. -{% noteinfo "What's a theta sketch?" %} +!!! warning "What's a theta sketch?" -A theta sketch is a probabilistic data structure used for the [count-distinct problem](https://en.wikipedia.org/wiki/Count-distinct_problem). It allows us to quickly count elements in sets, such as the set of users in the aggregation buckets. - -{% endnoteinfo %} + A theta sketch is a probabilistic data structure used for the [count-distinct problem](https://en.wikipedia.org/wiki/Count-distinct_problem). It allows us to quickly count elements in sets, such as the set of users in the aggregation buckets. ```json [ diff --git a/docs/tql/query.md b/docs/tql/query.md index 292ad82..2119a4e 100644 --- a/docs/tql/query.md +++ b/docs/tql/query.md @@ -11,13 +11,11 @@ Most queries for TelemetryDeck can be constructed using the regular Insight Edit You can use the TQL Query Builder to construct your query, or you can write it by hand. The minimum required properties are `granularity`, `dataSource` and `queryType`. The following sections describe the properties of the query object. -{% noteinfo "This looks curiously familiar" %} +!!! warning "This looks curiously familiar" -If you've ever worked with [Apache Druid](https://druid.apache.org), you'll notice a lot of similarities between TQL and Druid's native query language. This is because TQL is a superset of Druid's native query language, and TQL queries are compiled down into Druid queries before they're executed. + If you've ever worked with [Apache Druid](https://druid.apache.org), you'll notice a lot of similarities between TQL and Druid's native query language. This is because TQL is a superset of Druid's native query language, and TQL queries are compiled down into Druid queries before they're executed. -Druid queries can do various things that TQL queries can't do for security and privacy reasons, and Druid queries are also more verbose. To get into the fine details of Druid's query language, please check the [Apache Druid Documentation](https://druid.apache.org/docs/latest/querying/). - -{% endnoteinfo %} + Druid queries can do various things that TQL queries can't do for security and privacy reasons, and Druid queries are also more verbose. To get into the fine details of Druid's query language, please check the [Apache Druid Documentation](https://druid.apache.org/docs/latest/querying/). This example timeseries query returns the number of users per week: From 44173b82c54b6762ac2ae9c425ef701a1b4e2b12 Mon Sep 17 00:00:00 2001 From: Daniel Jilg Date: Mon, 4 May 2026 17:43:37 +0200 Subject: [PATCH 11/11] Update logo and favicon --- {images => docs/assets}/MAU_1.png | Bin {images => docs/assets}/MAU_2.png | Bin {images => docs/assets}/MAU_3.png | Bin {images => docs/assets}/MAU_4.png | Bin {images => docs/assets}/MAU_5.png | Bin .../assets}/Notebooks-Overview.png | Bin .../assets}/Notebooks-TQL-Live-Preview.png | Bin .../assets}/Peerigon_Logo_RGB_no_padding.svg | 0 {images => docs/assets}/Referrers_1.png | Bin {images => docs/assets}/Referrers_2.png | Bin {images => docs/assets}/Referrers_3a.png | Bin {images => docs/assets}/Referrers_3b.png | Bin {images => docs/assets}/Referrers_4.png | Bin {images => docs/assets}/Referrers_5.png | Bin .../assets}/Screenshot_SystemVersion.png | Bin {images => docs/assets}/aarrr-framework.png | Bin .../assets}/acquisition-active-vs-new.png | Bin .../acquisition-by-time-last-weeks.png | Bin .../assets}/acquisition-by-time.png | Bin .../acquisition-device-distribution.png | Bin .../acquisition-geographic-distribution.png | Bin .../assets}/acquisition-new-users.png | Bin .../assets}/activation-activated-users.png | Bin .../assets}/activation-by-time.png | Bin .../activation-device-distribution.png | Bin .../activation-geographic-distribution.png | Bin .../assets}/anonymization-display-image.jpg | Bin {images => docs/assets}/bar-chart.PNG | Bin {images => docs/assets}/compact_wide_mode.PNG | Bin .../assets}/create-new-insight.png | Bin .../assets}/daily-active-users-example.png | Bin .../assets}/dashboard-acquisition.png | Bin {images => docs/assets}/dashboard-custom.png | Bin .../assets}/dashboard-exploring-details.png | Bin .../assets}/dashboard-filtering-data.png | Bin .../assets}/dashboard-main-nav.png | Bin .../assets}/dashboard-notebooks.png | Bin .../assets}/dashboard-overview.png | Bin .../assets}/dashboard-signal-types.png | Bin {images => docs/assets}/display_mode.PNG | Bin {images => docs/assets}/donut-chart.PNG | Bin .../assets}/duration-signal-01.png | Bin .../assets}/duration-signal-02.png | Bin .../assets}/duration-signal-03.png | Bin .../assets}/edit-dashboard-name.png | Bin {images => docs/assets}/faq.jpg | Bin docs/assets/favicon.svg | 1 + {images => docs/assets}/filter_example.png | Bin {images => docs/assets}/filter_location.png | Bin {images => docs/assets}/funnel_type.PNG | Bin {images => docs/assets}/funnels_example.png | Bin .../assets}/funnels_set_filters.jpg | Bin {images => docs/assets}/line-chart.PNG | Bin .../assets}/location-create-dashboard.png | Bin .../assets}/location-edit-group.PNG | Bin .../assets}/location-edit-insight.png | Bin {images => docs/assets}/login-mask.png | Bin docs/assets/logo.svg | 31 ++++++++++++++++++ .../assets}/metrics-accessibility.png | Bin {images => docs/assets}/metrics-devices.png | Bin {images => docs/assets}/metrics-errors.png | Bin .../assets}/metrics-localization.png | Bin {images => docs/assets}/metrics-versions.png | Bin .../assets}/notebooks-video-thumbnail.png | Bin {images => docs/assets}/privacy-overview.png | Bin .../assets}/purchases-privacy-box.png | Bin {images => docs/assets}/rc-td-1.png | Bin {images => docs/assets}/rc-td-2.png | Bin {images => docs/assets}/retention-by-time.png | Bin .../assets}/retention-device-distribution.png | Bin .../retention-geographic-distribution.png | Bin .../assets}/retention-returning-users.png | Bin .../assets}/revenuecat_webhook_config.png | Bin .../assets}/system-versions-example.png | Bin {images => docs/assets}/table-chart.PNG | Bin {images => docs/assets}/test_mode.png | Bin {images => docs/assets}/typedigital.png | Bin .../assets}/update_next_major_version.png | Bin {images => docs/assets}/update_package.png | Bin .../assets}/xcode-swift-package.png | Bin .../assets}/xcode-swift-package1.png | Bin .../assets}/xcode-swift-package2.png | Bin {images => docs/assets}/yt-4-minute-setup.png | Bin {images => docs/assets}/yt-app-analytics.png | Bin .../assets}/yt-app-store-connect.png | Bin .../assets}/yt-built-in-charts.png | Bin {images => docs/assets}/yt-custom-charts.png | Bin zensical.toml | 4 +-- 88 files changed, 34 insertions(+), 2 deletions(-) rename {images => docs/assets}/MAU_1.png (100%) rename {images => docs/assets}/MAU_2.png (100%) rename {images => docs/assets}/MAU_3.png (100%) rename {images => docs/assets}/MAU_4.png (100%) rename {images => docs/assets}/MAU_5.png (100%) rename {images => docs/assets}/Notebooks-Overview.png (100%) rename {images => docs/assets}/Notebooks-TQL-Live-Preview.png (100%) rename {images => docs/assets}/Peerigon_Logo_RGB_no_padding.svg (100%) rename {images => docs/assets}/Referrers_1.png (100%) rename {images => docs/assets}/Referrers_2.png (100%) rename {images => docs/assets}/Referrers_3a.png (100%) rename {images => docs/assets}/Referrers_3b.png (100%) rename {images => docs/assets}/Referrers_4.png (100%) rename {images => docs/assets}/Referrers_5.png (100%) rename {images => docs/assets}/Screenshot_SystemVersion.png (100%) rename {images => docs/assets}/aarrr-framework.png (100%) rename {images => docs/assets}/acquisition-active-vs-new.png (100%) rename {images => docs/assets}/acquisition-by-time-last-weeks.png (100%) rename {images => docs/assets}/acquisition-by-time.png (100%) rename {images => docs/assets}/acquisition-device-distribution.png (100%) rename {images => docs/assets}/acquisition-geographic-distribution.png (100%) rename {images => docs/assets}/acquisition-new-users.png (100%) rename {images => docs/assets}/activation-activated-users.png (100%) rename {images => docs/assets}/activation-by-time.png (100%) rename {images => docs/assets}/activation-device-distribution.png (100%) rename {images => docs/assets}/activation-geographic-distribution.png (100%) rename {images => docs/assets}/anonymization-display-image.jpg (100%) rename {images => docs/assets}/bar-chart.PNG (100%) rename {images => docs/assets}/compact_wide_mode.PNG (100%) rename {images => docs/assets}/create-new-insight.png (100%) rename {images => docs/assets}/daily-active-users-example.png (100%) rename {images => docs/assets}/dashboard-acquisition.png (100%) rename {images => docs/assets}/dashboard-custom.png (100%) rename {images => docs/assets}/dashboard-exploring-details.png (100%) rename {images => docs/assets}/dashboard-filtering-data.png (100%) rename {images => docs/assets}/dashboard-main-nav.png (100%) rename {images => docs/assets}/dashboard-notebooks.png (100%) rename {images => docs/assets}/dashboard-overview.png (100%) rename {images => docs/assets}/dashboard-signal-types.png (100%) rename {images => docs/assets}/display_mode.PNG (100%) rename {images => docs/assets}/donut-chart.PNG (100%) rename {images => docs/assets}/duration-signal-01.png (100%) rename {images => docs/assets}/duration-signal-02.png (100%) rename {images => docs/assets}/duration-signal-03.png (100%) rename {images => docs/assets}/edit-dashboard-name.png (100%) rename {images => docs/assets}/faq.jpg (100%) create mode 100644 docs/assets/favicon.svg rename {images => docs/assets}/filter_example.png (100%) rename {images => docs/assets}/filter_location.png (100%) rename {images => docs/assets}/funnel_type.PNG (100%) rename {images => docs/assets}/funnels_example.png (100%) rename {images => docs/assets}/funnels_set_filters.jpg (100%) rename {images => docs/assets}/line-chart.PNG (100%) rename {images => docs/assets}/location-create-dashboard.png (100%) rename {images => docs/assets}/location-edit-group.PNG (100%) rename {images => docs/assets}/location-edit-insight.png (100%) rename {images => docs/assets}/login-mask.png (100%) create mode 100644 docs/assets/logo.svg rename {images => docs/assets}/metrics-accessibility.png (100%) rename {images => docs/assets}/metrics-devices.png (100%) rename {images => docs/assets}/metrics-errors.png (100%) rename {images => docs/assets}/metrics-localization.png (100%) rename {images => docs/assets}/metrics-versions.png (100%) rename {images => docs/assets}/notebooks-video-thumbnail.png (100%) rename {images => docs/assets}/privacy-overview.png (100%) rename {images => docs/assets}/purchases-privacy-box.png (100%) rename {images => docs/assets}/rc-td-1.png (100%) rename {images => docs/assets}/rc-td-2.png (100%) rename {images => docs/assets}/retention-by-time.png (100%) rename {images => docs/assets}/retention-device-distribution.png (100%) rename {images => docs/assets}/retention-geographic-distribution.png (100%) rename {images => docs/assets}/retention-returning-users.png (100%) rename {images => docs/assets}/revenuecat_webhook_config.png (100%) rename {images => docs/assets}/system-versions-example.png (100%) rename {images => docs/assets}/table-chart.PNG (100%) rename {images => docs/assets}/test_mode.png (100%) rename {images => docs/assets}/typedigital.png (100%) rename {images => docs/assets}/update_next_major_version.png (100%) rename {images => docs/assets}/update_package.png (100%) rename {images => docs/assets}/xcode-swift-package.png (100%) rename {images => docs/assets}/xcode-swift-package1.png (100%) rename {images => docs/assets}/xcode-swift-package2.png (100%) rename {images => docs/assets}/yt-4-minute-setup.png (100%) rename {images => docs/assets}/yt-app-analytics.png (100%) rename {images => docs/assets}/yt-app-store-connect.png (100%) rename {images => docs/assets}/yt-built-in-charts.png (100%) rename {images => docs/assets}/yt-custom-charts.png (100%) diff --git a/images/MAU_1.png b/docs/assets/MAU_1.png similarity index 100% rename from images/MAU_1.png rename to docs/assets/MAU_1.png diff --git a/images/MAU_2.png b/docs/assets/MAU_2.png similarity index 100% rename from images/MAU_2.png rename to docs/assets/MAU_2.png diff --git a/images/MAU_3.png b/docs/assets/MAU_3.png similarity index 100% rename from images/MAU_3.png rename to docs/assets/MAU_3.png diff --git a/images/MAU_4.png b/docs/assets/MAU_4.png similarity index 100% rename from images/MAU_4.png rename to docs/assets/MAU_4.png diff --git a/images/MAU_5.png b/docs/assets/MAU_5.png similarity index 100% rename from images/MAU_5.png rename to docs/assets/MAU_5.png diff --git a/images/Notebooks-Overview.png b/docs/assets/Notebooks-Overview.png similarity index 100% rename from images/Notebooks-Overview.png rename to docs/assets/Notebooks-Overview.png diff --git a/images/Notebooks-TQL-Live-Preview.png b/docs/assets/Notebooks-TQL-Live-Preview.png similarity index 100% rename from images/Notebooks-TQL-Live-Preview.png rename to docs/assets/Notebooks-TQL-Live-Preview.png diff --git a/images/Peerigon_Logo_RGB_no_padding.svg b/docs/assets/Peerigon_Logo_RGB_no_padding.svg similarity index 100% rename from images/Peerigon_Logo_RGB_no_padding.svg rename to docs/assets/Peerigon_Logo_RGB_no_padding.svg diff --git a/images/Referrers_1.png b/docs/assets/Referrers_1.png similarity index 100% rename from images/Referrers_1.png rename to docs/assets/Referrers_1.png diff --git a/images/Referrers_2.png b/docs/assets/Referrers_2.png similarity index 100% rename from images/Referrers_2.png rename to docs/assets/Referrers_2.png diff --git a/images/Referrers_3a.png b/docs/assets/Referrers_3a.png similarity index 100% rename from images/Referrers_3a.png rename to docs/assets/Referrers_3a.png diff --git a/images/Referrers_3b.png b/docs/assets/Referrers_3b.png similarity index 100% rename from images/Referrers_3b.png rename to docs/assets/Referrers_3b.png diff --git a/images/Referrers_4.png b/docs/assets/Referrers_4.png similarity index 100% rename from images/Referrers_4.png rename to docs/assets/Referrers_4.png diff --git a/images/Referrers_5.png b/docs/assets/Referrers_5.png similarity index 100% rename from images/Referrers_5.png rename to docs/assets/Referrers_5.png diff --git a/images/Screenshot_SystemVersion.png b/docs/assets/Screenshot_SystemVersion.png similarity index 100% rename from images/Screenshot_SystemVersion.png rename to docs/assets/Screenshot_SystemVersion.png diff --git a/images/aarrr-framework.png b/docs/assets/aarrr-framework.png similarity index 100% rename from images/aarrr-framework.png rename to docs/assets/aarrr-framework.png diff --git a/images/acquisition-active-vs-new.png b/docs/assets/acquisition-active-vs-new.png similarity index 100% rename from images/acquisition-active-vs-new.png rename to docs/assets/acquisition-active-vs-new.png diff --git a/images/acquisition-by-time-last-weeks.png b/docs/assets/acquisition-by-time-last-weeks.png similarity index 100% rename from images/acquisition-by-time-last-weeks.png rename to docs/assets/acquisition-by-time-last-weeks.png diff --git a/images/acquisition-by-time.png b/docs/assets/acquisition-by-time.png similarity index 100% rename from images/acquisition-by-time.png rename to docs/assets/acquisition-by-time.png diff --git a/images/acquisition-device-distribution.png b/docs/assets/acquisition-device-distribution.png similarity index 100% rename from images/acquisition-device-distribution.png rename to docs/assets/acquisition-device-distribution.png diff --git a/images/acquisition-geographic-distribution.png b/docs/assets/acquisition-geographic-distribution.png similarity index 100% rename from images/acquisition-geographic-distribution.png rename to docs/assets/acquisition-geographic-distribution.png diff --git a/images/acquisition-new-users.png b/docs/assets/acquisition-new-users.png similarity index 100% rename from images/acquisition-new-users.png rename to docs/assets/acquisition-new-users.png diff --git a/images/activation-activated-users.png b/docs/assets/activation-activated-users.png similarity index 100% rename from images/activation-activated-users.png rename to docs/assets/activation-activated-users.png diff --git a/images/activation-by-time.png b/docs/assets/activation-by-time.png similarity index 100% rename from images/activation-by-time.png rename to docs/assets/activation-by-time.png diff --git a/images/activation-device-distribution.png b/docs/assets/activation-device-distribution.png similarity index 100% rename from images/activation-device-distribution.png rename to docs/assets/activation-device-distribution.png diff --git a/images/activation-geographic-distribution.png b/docs/assets/activation-geographic-distribution.png similarity index 100% rename from images/activation-geographic-distribution.png rename to docs/assets/activation-geographic-distribution.png diff --git a/images/anonymization-display-image.jpg b/docs/assets/anonymization-display-image.jpg similarity index 100% rename from images/anonymization-display-image.jpg rename to docs/assets/anonymization-display-image.jpg diff --git a/images/bar-chart.PNG b/docs/assets/bar-chart.PNG similarity index 100% rename from images/bar-chart.PNG rename to docs/assets/bar-chart.PNG diff --git a/images/compact_wide_mode.PNG b/docs/assets/compact_wide_mode.PNG similarity index 100% rename from images/compact_wide_mode.PNG rename to docs/assets/compact_wide_mode.PNG diff --git a/images/create-new-insight.png b/docs/assets/create-new-insight.png similarity index 100% rename from images/create-new-insight.png rename to docs/assets/create-new-insight.png diff --git a/images/daily-active-users-example.png b/docs/assets/daily-active-users-example.png similarity index 100% rename from images/daily-active-users-example.png rename to docs/assets/daily-active-users-example.png diff --git a/images/dashboard-acquisition.png b/docs/assets/dashboard-acquisition.png similarity index 100% rename from images/dashboard-acquisition.png rename to docs/assets/dashboard-acquisition.png diff --git a/images/dashboard-custom.png b/docs/assets/dashboard-custom.png similarity index 100% rename from images/dashboard-custom.png rename to docs/assets/dashboard-custom.png diff --git a/images/dashboard-exploring-details.png b/docs/assets/dashboard-exploring-details.png similarity index 100% rename from images/dashboard-exploring-details.png rename to docs/assets/dashboard-exploring-details.png diff --git a/images/dashboard-filtering-data.png b/docs/assets/dashboard-filtering-data.png similarity index 100% rename from images/dashboard-filtering-data.png rename to docs/assets/dashboard-filtering-data.png diff --git a/images/dashboard-main-nav.png b/docs/assets/dashboard-main-nav.png similarity index 100% rename from images/dashboard-main-nav.png rename to docs/assets/dashboard-main-nav.png diff --git a/images/dashboard-notebooks.png b/docs/assets/dashboard-notebooks.png similarity index 100% rename from images/dashboard-notebooks.png rename to docs/assets/dashboard-notebooks.png diff --git a/images/dashboard-overview.png b/docs/assets/dashboard-overview.png similarity index 100% rename from images/dashboard-overview.png rename to docs/assets/dashboard-overview.png diff --git a/images/dashboard-signal-types.png b/docs/assets/dashboard-signal-types.png similarity index 100% rename from images/dashboard-signal-types.png rename to docs/assets/dashboard-signal-types.png diff --git a/images/display_mode.PNG b/docs/assets/display_mode.PNG similarity index 100% rename from images/display_mode.PNG rename to docs/assets/display_mode.PNG diff --git a/images/donut-chart.PNG b/docs/assets/donut-chart.PNG similarity index 100% rename from images/donut-chart.PNG rename to docs/assets/donut-chart.PNG diff --git a/images/duration-signal-01.png b/docs/assets/duration-signal-01.png similarity index 100% rename from images/duration-signal-01.png rename to docs/assets/duration-signal-01.png diff --git a/images/duration-signal-02.png b/docs/assets/duration-signal-02.png similarity index 100% rename from images/duration-signal-02.png rename to docs/assets/duration-signal-02.png diff --git a/images/duration-signal-03.png b/docs/assets/duration-signal-03.png similarity index 100% rename from images/duration-signal-03.png rename to docs/assets/duration-signal-03.png diff --git a/images/edit-dashboard-name.png b/docs/assets/edit-dashboard-name.png similarity index 100% rename from images/edit-dashboard-name.png rename to docs/assets/edit-dashboard-name.png diff --git a/images/faq.jpg b/docs/assets/faq.jpg similarity index 100% rename from images/faq.jpg rename to docs/assets/faq.jpg diff --git a/docs/assets/favicon.svg b/docs/assets/favicon.svg new file mode 100644 index 0000000..dc4a92c --- /dev/null +++ b/docs/assets/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/filter_example.png b/docs/assets/filter_example.png similarity index 100% rename from images/filter_example.png rename to docs/assets/filter_example.png diff --git a/images/filter_location.png b/docs/assets/filter_location.png similarity index 100% rename from images/filter_location.png rename to docs/assets/filter_location.png diff --git a/images/funnel_type.PNG b/docs/assets/funnel_type.PNG similarity index 100% rename from images/funnel_type.PNG rename to docs/assets/funnel_type.PNG diff --git a/images/funnels_example.png b/docs/assets/funnels_example.png similarity index 100% rename from images/funnels_example.png rename to docs/assets/funnels_example.png diff --git a/images/funnels_set_filters.jpg b/docs/assets/funnels_set_filters.jpg similarity index 100% rename from images/funnels_set_filters.jpg rename to docs/assets/funnels_set_filters.jpg diff --git a/images/line-chart.PNG b/docs/assets/line-chart.PNG similarity index 100% rename from images/line-chart.PNG rename to docs/assets/line-chart.PNG diff --git a/images/location-create-dashboard.png b/docs/assets/location-create-dashboard.png similarity index 100% rename from images/location-create-dashboard.png rename to docs/assets/location-create-dashboard.png diff --git a/images/location-edit-group.PNG b/docs/assets/location-edit-group.PNG similarity index 100% rename from images/location-edit-group.PNG rename to docs/assets/location-edit-group.PNG diff --git a/images/location-edit-insight.png b/docs/assets/location-edit-insight.png similarity index 100% rename from images/location-edit-insight.png rename to docs/assets/location-edit-insight.png diff --git a/images/login-mask.png b/docs/assets/login-mask.png similarity index 100% rename from images/login-mask.png rename to docs/assets/login-mask.png diff --git a/docs/assets/logo.svg b/docs/assets/logo.svg new file mode 100644 index 0000000..ae16198 --- /dev/null +++ b/docs/assets/logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/metrics-accessibility.png b/docs/assets/metrics-accessibility.png similarity index 100% rename from images/metrics-accessibility.png rename to docs/assets/metrics-accessibility.png diff --git a/images/metrics-devices.png b/docs/assets/metrics-devices.png similarity index 100% rename from images/metrics-devices.png rename to docs/assets/metrics-devices.png diff --git a/images/metrics-errors.png b/docs/assets/metrics-errors.png similarity index 100% rename from images/metrics-errors.png rename to docs/assets/metrics-errors.png diff --git a/images/metrics-localization.png b/docs/assets/metrics-localization.png similarity index 100% rename from images/metrics-localization.png rename to docs/assets/metrics-localization.png diff --git a/images/metrics-versions.png b/docs/assets/metrics-versions.png similarity index 100% rename from images/metrics-versions.png rename to docs/assets/metrics-versions.png diff --git a/images/notebooks-video-thumbnail.png b/docs/assets/notebooks-video-thumbnail.png similarity index 100% rename from images/notebooks-video-thumbnail.png rename to docs/assets/notebooks-video-thumbnail.png diff --git a/images/privacy-overview.png b/docs/assets/privacy-overview.png similarity index 100% rename from images/privacy-overview.png rename to docs/assets/privacy-overview.png diff --git a/images/purchases-privacy-box.png b/docs/assets/purchases-privacy-box.png similarity index 100% rename from images/purchases-privacy-box.png rename to docs/assets/purchases-privacy-box.png diff --git a/images/rc-td-1.png b/docs/assets/rc-td-1.png similarity index 100% rename from images/rc-td-1.png rename to docs/assets/rc-td-1.png diff --git a/images/rc-td-2.png b/docs/assets/rc-td-2.png similarity index 100% rename from images/rc-td-2.png rename to docs/assets/rc-td-2.png diff --git a/images/retention-by-time.png b/docs/assets/retention-by-time.png similarity index 100% rename from images/retention-by-time.png rename to docs/assets/retention-by-time.png diff --git a/images/retention-device-distribution.png b/docs/assets/retention-device-distribution.png similarity index 100% rename from images/retention-device-distribution.png rename to docs/assets/retention-device-distribution.png diff --git a/images/retention-geographic-distribution.png b/docs/assets/retention-geographic-distribution.png similarity index 100% rename from images/retention-geographic-distribution.png rename to docs/assets/retention-geographic-distribution.png diff --git a/images/retention-returning-users.png b/docs/assets/retention-returning-users.png similarity index 100% rename from images/retention-returning-users.png rename to docs/assets/retention-returning-users.png diff --git a/images/revenuecat_webhook_config.png b/docs/assets/revenuecat_webhook_config.png similarity index 100% rename from images/revenuecat_webhook_config.png rename to docs/assets/revenuecat_webhook_config.png diff --git a/images/system-versions-example.png b/docs/assets/system-versions-example.png similarity index 100% rename from images/system-versions-example.png rename to docs/assets/system-versions-example.png diff --git a/images/table-chart.PNG b/docs/assets/table-chart.PNG similarity index 100% rename from images/table-chart.PNG rename to docs/assets/table-chart.PNG diff --git a/images/test_mode.png b/docs/assets/test_mode.png similarity index 100% rename from images/test_mode.png rename to docs/assets/test_mode.png diff --git a/images/typedigital.png b/docs/assets/typedigital.png similarity index 100% rename from images/typedigital.png rename to docs/assets/typedigital.png diff --git a/images/update_next_major_version.png b/docs/assets/update_next_major_version.png similarity index 100% rename from images/update_next_major_version.png rename to docs/assets/update_next_major_version.png diff --git a/images/update_package.png b/docs/assets/update_package.png similarity index 100% rename from images/update_package.png rename to docs/assets/update_package.png diff --git a/images/xcode-swift-package.png b/docs/assets/xcode-swift-package.png similarity index 100% rename from images/xcode-swift-package.png rename to docs/assets/xcode-swift-package.png diff --git a/images/xcode-swift-package1.png b/docs/assets/xcode-swift-package1.png similarity index 100% rename from images/xcode-swift-package1.png rename to docs/assets/xcode-swift-package1.png diff --git a/images/xcode-swift-package2.png b/docs/assets/xcode-swift-package2.png similarity index 100% rename from images/xcode-swift-package2.png rename to docs/assets/xcode-swift-package2.png diff --git a/images/yt-4-minute-setup.png b/docs/assets/yt-4-minute-setup.png similarity index 100% rename from images/yt-4-minute-setup.png rename to docs/assets/yt-4-minute-setup.png diff --git a/images/yt-app-analytics.png b/docs/assets/yt-app-analytics.png similarity index 100% rename from images/yt-app-analytics.png rename to docs/assets/yt-app-analytics.png diff --git a/images/yt-app-store-connect.png b/docs/assets/yt-app-store-connect.png similarity index 100% rename from images/yt-app-store-connect.png rename to docs/assets/yt-app-store-connect.png diff --git a/images/yt-built-in-charts.png b/docs/assets/yt-built-in-charts.png similarity index 100% rename from images/yt-built-in-charts.png rename to docs/assets/yt-built-in-charts.png diff --git a/images/yt-custom-charts.png b/docs/assets/yt-custom-charts.png similarity index 100% rename from images/yt-custom-charts.png rename to docs/assets/yt-custom-charts.png diff --git a/zensical.toml b/zensical.toml index 01736c1..22920b5 100644 --- a/zensical.toml +++ b/zensical.toml @@ -96,7 +96,7 @@ custom_dir = "overrides" # - https://zensical.org/docs/setup/logo-and-icons/#favicon # - https://developer.mozilla.org/en-US/docs/Glossary/Favicon # -#favicon = "images/favicon.png" +favicon = "assets/favicon.png" # Zensical supports more than 60 different languages. This means that the # labels and tooltips that Zensical's templates produce are translated. @@ -257,7 +257,7 @@ features = [ # option in the "theme" subsection. The logo must be a relative path to a file # in your "docs_dir", e.g., to use `docs/assets/logo.png` you would set: # ---------------------------------------------------------------------------- -#logo = "assets/logo.png" +logo = "assets/logo.svg" # ---------------------------------------------------------------------------- # If you don't have a dedicated project logo, you can use a built-in icon from