Commit Graph

523 Commits (chore-refactor-javascript-to-modules)

Author SHA1 Message Date
Jason Stirnaman fc21bc6c6d Improve DocSearch loading
1. Refactor JavaScript from search.html into a new DocSearch Component Module. The component needs to include: - Asynchronous loading of Algolia docsearch.min.js - Proper Algolia search facets:

  - Nested arrays for AND conditions: In Algolia, filters in the same array are combined with OR, while arrays in an array are combined with AND
  - Space after colon: Algolia's parser expects this specific format
2. Update Search HTML Template: refactor the search.html to use the new component:

3. Register the Component in main.js: update main.js to import and register our new DocSearch component:

Improve SearchInteractions event handler coordination with DocSearch:

- Improve SearchInteractions to dynamically detect the dropdown added by Algolia DocSearch and ensure that blur and focus event handlers are registered after the dropdown loads.

Benefits of This Approach:

Asynchronous Loading: DocSearch.js is now loaded asynchronously, improving page load performance
Search functionality is encapsulated as a component
Clean Separation: HTML template only contains configuration data, not implementation
Event Communication: Components can react to DocSearch initialization via events
SearchInteractions dynamically detects dropdown: Instead of waiting for an event or using setTimeout, we actively observe DOM changes to detect when the dropdown is created.
Nested Observation: A second observer monitors changes to the dropdown itself, allowing code to respond to style changes.
Better Event Handling: The blur handler checks if the related target is inside the search components, preventing unwanted dropdown closing.
Resource Cleanup: The cleanup function disconnects all observers, preventing memory leaks.
Additional Interaction Control: Adds an event listener to the dropdown to prevent unwanted blur events when interacting with search results.
2025-05-19 15:09:45 -05:00
Jason Stirnaman fae7e21c5d WIP: removed remaining scripts from footer/javascript.html. Migrated to components and utilities. Conditionally imports Mermaid if page has a diagram. 2025-05-19 15:09:45 -05:00
Jason Stirnaman add018834e WIP: Refactored all scripts from footer.js into components. Removed footer.js. Exports jQuery ($) to a window global for use by other scripts. Scripts bundled into footer.js didn't reliably load after jQuery. 2025-05-19 15:09:45 -05:00
Jason Stirnaman f81b2e27bc fix(layout): Missing closing paren 2025-05-19 12:35:17 -05:00
Jason Stirnaman 6ee0fb495f
Update layouts/index.html
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
2025-05-19 11:57:00 -05:00
Jason Stirnaman 02e10068ad - **Improved successor handling in stable-version.html**
- Fixed logic to maintain current product context while using successor for version info
  - Added appropriate successor product display in callout warning
  - Fixed conditions for when callout should appear
  - Fixed potential `isset <nil>` problems with proper nil checks before accessing properties

- **Added comprehensive Cypress tests for successor relationship**
  - Created `stable-version-callout.cy.js` for testing successor behavior
  - Tests that `/influxdb/v1/` and `/influxdb/v2/` pages show successor callout
  - Verifies "InfluxDB 3 Core" appears in callout with correct links
  - Checks product data configuration in `products.yml`
  - Includes JavaScript error detection

- **Configured environment-specific Hugo settings**
  - Added `/config/testing/config.yml` for test environment
  - Configured port 1315 for test environment
  - Added build parameters specific to testing context
  - Separated test environment from development environment

- **Updated Docker configuration**
  - Added new package.json script for building Docker image
  - Improved Docker-based testing commands
2025-05-19 09:55:06 -05:00
Jason Stirnaman 4cfff239f3 End-to-end testing, CI script, and JavaScript QoL improvements:
- **Environment variable formatting** - Updated environment variable configuration from array format to object format to comply with Lefthook schema validation requirements.
- **Unified link testing** - Consolidated multiple product-specific link testing commands into a single `e2e-links` command that processes all staged Markdown and HTML files across content directories.
- **Package script integration** - Modified commands to use centralized yarn scripts instead of direct execution, improving maintainability and consistency.
- **Source information extraction** - Enhanced to correctly extract and report source information from frontmatter.
- **URL and source mapping** - Improved handling of URL to source path mapping for better reporting.
- **Ignored anchor links configuration** - Added proper exclusion of behavior-triggering anchor links (like tab navigation) to prevent false positives.
- **Request options correction** - Fixed Cypress request options to ensure `failOnStatusCode` is properly set when `retryOnStatusCodeFailure` is enabled.
- **Improved error reporting** - Enhanced error reporting with more context about broken links.
- **New test scripts added** - Added centralized testing scripts for link checking and codeblock validation.
- **Product-specific test commands** - Added commands for each product version (InfluxDB v2, v3 Core, Enterprise, Cloud, etc.).
- **API docs testing** - Added specialized commands for testing API documentation links.
- **Comprehensive test runners** - Added commands to run all tests of a specific type (`test:links:all`, `test:codeblocks:all`).
- Fix Docker build command and update CONTRIBUTING.

chore(js): JavaScript QoL improvements:

- Refactor main.js with a componentRegistry object and clear initialization of components and globals
- Add a standard index.js with all necessary exports.
- Update javascript.html to use the index.js
- Remove jQuery script tag from header javascript.html (remains in footer)
- Update package file to improve module discovery.
- Improve Hugo and ESLint config for module discovery and ES6 syntax
2025-05-19 09:50:33 -05:00
Jason Stirnaman 853e628880 chore(ci): Shortcode tests using example.md. Support test-only files (such as example.md) without abusing draft mode.
- Add a frontmatter test-only attribute for files like example.md. Don't use draft: true for these files.
- Add support in index.html for the attribute so that the files are only rendered when running in the testing environment.
- e2e smoke test using example.md, ensure it renders without JavaScript errors.
2025-05-19 09:33:34 -05:00
Scott Anderson 9f57a4be1f hotfix: fix influxdb3 cta links 2025-05-12 14:08:29 -06:00
Jason Stirnaman 84bf123515
Merge branch 'master' into token-link-shortcode 2025-04-23 10:48:33 -05:00
Scott Anderson 4c7c8d13fd
Apply suggestions from code review
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-04-23 09:47:04 -06:00
Jason Stirnaman bf7b395b06 chore(code-placeholders): Support path-like patterns:
- Assigns the match expression to a data attribute (data-id) to use in eleement selection. Previously, it assigned the regex expression to input.id and used the ID to select the element when updating the placeholder value. A regex that starts with a slash causes an error; input#/path/to/match isn't a valid id.
- Supports placeholders like '\/path\/to\/file.parquet'
- Refactors code-placeholders to the component pattern.
2025-04-23 10:27:20 -05:00
Jason Stirnaman 2c6b0c4650 fix(code-placeholders): Store escaped expression in a data attribute 2025-04-23 10:25:25 -05:00
Jason Stirnaman ae054efed7
Revert "chore(code-placeholders): Support path-like patterns:" 2025-04-23 10:21:02 -05:00
Jason Stirnaman 6287e0aa76 chore(code-placeholders): Support path-like patterns:
- Assigns the match expression to a data attribute (data-id) to use in eleement selection. Previously, it assigned the regex expression to input.id and used the ID to select the element when updating the placeholder value. A regex that starts with a slash causes an error; input#/path/to/match isn't a valid id.
- Supports placeholders like '\/path\/to\/file.parquet'
- Refactors code-placeholders to the component pattern.
2025-04-23 10:14:45 -05:00
Scott Anderson 11541e912b updated token-link shortcode to use local scratch 2025-04-22 15:07:50 -06:00
Scott Anderson e6f53d025e add token-link shortcode 2025-04-22 14:47:47 -06:00
Scott Anderson 76c7a3b457 hotfix: switch beta to new in product selector 2025-04-18 08:13:37 -06:00
Scott Anderson 644b24bfab
Update latest-patch shortcode for InfluxDB3 (#5998)
* updated latest_patch shortcode and product data to work with influxdb3

* update influxdb3 docs with latest-patch shortcode
2025-04-17 11:15:40 -06:00
Scott Anderson ab802aa229 hotfix: updated influxdb3 table limits 2025-04-15 08:44:41 -06:00
Scott Anderson e2b72a7362
InfluxDB 3 Core and Enterprise GA visual updates (#5970)
* added ga notification with styles, removed beta block, relocated community links

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-14 09:27:20 -06:00
Scott Anderson 6086d94037 hotfix: remove errant tick from canonical template 2025-04-03 15:57:20 -06:00
Scott Anderson ce04b19f1e
Overhaul canonical pages (#5955)
* overhaul how canonical pages are set

* updated canonical template comment
2025-04-03 12:43:17 -06:00
Jason Stirnaman eb5f3b4067
Merge branch 'master' into jts-5948-fix-influxdb3-install 2025-04-02 17:05:38 -05:00
Scott Anderson 1522e734b9
Update shared content usage in v2 docs and more (#5953)
* replaced all oss- and cloud-only shortcodes

* removed duplicate oss calls and replaced with shared source

* base changes for shared v2 content

* restored shared grafana content

* removed frontmatter from shared v2 content

* WIP fixing lists with show-in shortcode

* fix lists that use show-in shortcode

* updated all v2 files to remove duplicate-oss and use source sharing

* update prepend and append frontmatter to just use string input

* fixed broken menu keys
2025-04-02 15:54:32 -06:00
Jason Stirnaman 2c2fa06c03 fix(shortcode): (Closes #5948) extra line ending in shortcode file breaks code samples 2025-04-02 16:35:04 -05:00
Scott Anderson 46dad240b9
Add 'show-in' and 'hide-in' shortcodes (#5946)
* show-hide-shortcodes

* updated variable names

* added missing else operator

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-01 15:41:32 -06:00
Jason Stirnaman 5a8571915d fix(flux-influxdb-versions): Fixes modal trigger for flux-influxdb-versions and refactors the trigger to a component. 2025-03-27 20:10:13 -05:00
Scott Anderson 25e349b5ea Base updates for beta (#5893)
* base changes for beta

* updated beta notification slug
2025-03-16 22:44:39 -05:00
Jason Stirnaman 9755033970 chore(ci): closes #5887 Improve and automate pre-commit link-checking 2025-03-13 14:24:36 -05:00
Jason Stirnaman 733bd673d6 fix: Remove double slash 2025-02-24 13:36:28 -06:00
Scott Anderson 6b0265b4cb Merge branch 'master' into sql-window-functions 2025-02-21 14:12:18 -07:00
Scott Anderson 0e7d23dbac add sql window functions and new shortcodes 2025-02-21 14:11:32 -07:00
Scott Anderson bdf32c35c1 hotfix: fix robots.txt for staging 2025-02-20 10:08:09 -07:00
Scott Anderson 5fc7e99575 WIP SQL window functions 2025-02-19 10:56:49 -07:00
Jason Stirnaman ff4b8d4f22 chore: Add product-key shortcode - displays the short version name extracted from the current page URL. 2025-02-14 17:07:09 -06:00
Jason Stirnaman c173edce68 Initial Kapa.ai chat integration.
Continue refactoring JavaScript into a component pattern and ESM.
Replaces some jQuery with native DOM API.

chore(ai): reference documentation and instructions for training AI

chore(ai): implement Kapa AI chat widget
- Move script tag to HTML template to make it obvious.
- Cleanup javascript to make it more component-like
- Set Kapa attributes, support setting userid

chore(js): add JS dependencies, previously referenced in script tags, to package.json for JS builds.

fix(api): indents

chore(js): package Mermaid diagram library

chore(js): refactor JS for AIChat and Theme as examples of using the component pattern for HTML/CSS/JS

chore(js): Use the new local-storage API in refactored module code and in code not yet ported. Cleanup syntax in local-storage and make functions available from window.LocalStorageAPI.

fix(js): theme.js name-change

chore(js): fix ai-chat.js file name

fix(js): refactor:
- componentNames are snakecase in HTML
- replace DOM selection method and jQuery eventhandler assignment
- remove old theme.js references

chore(ai): configure chat window overlay, size, and position:
- removes overlay and scroll lock
- positions chat to the right and bottom
- expands sample question width to 12 cols

chore(ai): edit disclaimer

fix(ai): size and position

chore(js): make ai-chat specific to configuration and and setting userid (for testing and future use).

fix(js): copy referrerHost variable to v3-wayfinding instead of relying on influxdb-url to assign it.

chore(ai): add a footer div at page bottom to contain modal triggers for custom-time and ask-ai. Still needs some CSS help. Moves tooltip text from CSS to HTML data attribute.

chore(ai): dynamically load AI script tag after DOMContentLoaded to avoid race conditions. Call initialization from the modal trigger module and pass the show trigger function to the onload handler.

fix(ai): fix modal triggers to viewport

fix(modal-triggers): stack the triggers into a single column.

restyle footer widgets

updated time selector modal to use correct storage term

minor style update

WIP(ai-chat): get product data

chore(js): Factor out pageContext module from influxdb-url.js

chore(js): Refactor helpers.js out of inflluxdb-url.js

WIP: refactor influxdburl - minimal changes for module conversions

feat(ai): Custom AI chat example questions product and version.
Ask AI example questions:
- Adds support for customizing example Ask AI questions per product or version.
- Configure questions in site `data/products.yml`; otherwise, it uses default questions from `ask-ai.js`

Context, page, and product data:
- Adds sample URLs for remaining versions in influxdb_urls
- `page-context.js` consolidates and exports constants for page context (protocol, host, path, referrer) and path-to-data mappings for product and influxdb_url site data

Module refactor:
- Refactors some JavaScript into ES6 modules, and refactors some of those further into a Component pattern--just vanilla JS and no shadow DOM stuff. The Component pattern that uses data attributes to "bind" JavaScript modules with CSS and HTML is a popular approach in modern web development. This pattern enhances modularity, reusability, and maintainability by associating behavior (JavaScript), structure (HTML), and style (CSS) through the use of data attributes.
- `assets/main.js` is the entrypoint
- Passes pageParams from the Hugo page to modules that import `@params`.
- Moves most external dependencies out of `script` tags and into package.json to be managed with `yarn`.
- Adds `eslint`.
- For modules that aren't yet components, wraps execution statements inside an `initialize()` function and calls the function from `main.js` on `DOMContentLoaded`.
- For components, if the page contains the `data-component="<component-name>"`, the matching element is passed to the component function on `DOMContentLoaded`.
- I tried to avoid changing logic where it wasn't necessary.

Update DOC_GPT_PROFILE.md

customize ai chat modal styles

fix(influxdb-url): Rename to cloud_dedicated in influxdb_urls.yml, remove newly added placeholder URL and use the extant default, refactor
- Rename  to  in influxdb_urls.yml
- Fix influxdb-url.js and data provision in local-storage.js to use the new name, mapping it to  to retain the existing local storage key

chore(api-lib): Use local-storage import instead of window global

chore(js): cleanup

fix(js): Ensure feature-callout initializes on page load

fix(theme): Load preferred theme before making the page visible. Execute a predefined function by specifying the function name in data-theme-callback

fix(search-toggle): Restores toggling the search field when sidebar is collapsed. Moves the event handler to a new search-button component

fix(ai): Fix custom attribute assignment. Rename property to ai_example_questions

Include the word `Bearer` or `Token`, a space, and your **token** value (all case-sensitive). Fix TOC links.
Fixes #5781

fix(api-docs): Update API reference directories and generation script for influxdb3 URL paths, update links and names in reference content

fix(api-ref): Update getswagger.sh destination paths to use the new directory structure when fetching spec files. Update the redocly  plugin module path.

hotfix: fix hlevel bug in children shortcode

Remove underline from custom time widget

add color to custom time widget styling
2025-02-12 13:48:29 -06:00
Scott Anderson ebf9b1bfd3
Add admin > database docs to Core and Enterprise (#5813)
* add influxdb3 database admin docs

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-02-03 09:25:41 -07:00
Scott Anderson caa6164eee hotfix: fix hlevel bug in children shortcode 2025-01-29 08:56:17 -07:00
Scott Anderson 86bee7caf6
Add InfluxDB 3 query guides (#5798)
* base content for influxdb3 query guides

* added enterprise versions of query guides

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* update template titles to use .RenderString

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-01-23 10:18:45 -07:00
Peter Barnett 708972e73d chore: remove circular reference 2025-01-13 14:04:49 -05:00
Scott Anderson bc0b76c7f4 hotfix: update discord link in alpha notice 2025-01-13 07:46:53 -07:00
Scott Anderson 72c5295eed
InfluxDB 3 Core & InfluxDB 3 Enterprise alpha release (#5760)
* WIP monolith docs

* WIP monolith

* updated alpha shortcode

* template updates for v3 and pro

* SQL & InfluxQL reference docs for Pro and OSS v3 (#5718)

* point to shared influxql source files

* add sql and influxql references to pro and oss v3 docs

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* ported changes to distributed influxql refs

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* Influxdb3 restructure (#5744)

* WIP monolith naming restructure

* rebuild homepage

* updated broken home links

* stabs in the dark

* fixed duplicate-oss shortcode

* move clustered and cloud-dedicated

* clean-up serverless cruft

* add distributed product redirects

* standarize productPathData

* switch back to findRE for productPathData

* remove debugging code

* move cloud dedicated content

* new product dropdown

* Jstirnaman/influxdb3 restructure (#5743)

* LDAPS and LDAP Client Certificate Docs

Add documentation via LDAP sample configuration for LDAPS and LDAP client certificates. These are new features in the yet-to-be released Enterprise 1.11.7

* Update bucket-schema.md

ndjson.org goes to some sort of sports betting site.

https://jsonlines.org/ is probably a better site.

* fix(partitioning): improve clarity and consistency in partitioning, apply suggestions from @reidkaufmann

* update shared links to use ambiguous version

* WIP monolith docs

* template updates for v3 and pro

* move clustered and cloud-dedicated

* switch back to findRE for productPathData

* move cloud dedicated content

* chore(influxdb3): port cloud-dedicated URLs from recent commit

* chore(influxdb3/clustered): fix and update links

* removed merge cruft

---------

Co-authored-by: Geoffrey Wossum <gwossum@influxdata.com>
Co-authored-by: Daniel Lo <wilburlo@gmail.com>
Co-authored-by: Scott Anderson <scott@influxdata.com>

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: Geoffrey Wossum <gwossum@influxdata.com>
Co-authored-by: Daniel Lo <wilburlo@gmail.com>

* added and styled alpha banner, updated producted selector styles and js

* updated alpha link styles

* updated discord link text

* updated alpha message

* fix page title

* Initial Files

* Initial Files

* InfluxDB 3 Enterprise CLI docs (#5745)

* WIP influxdb3 cli

* fix page title

* influxdb3 enterprise cli

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* fix(js): initialize CodePlaceholder on content loaded, small refactor toward component pattern.

* updated URL modal for core and enterprise

* remove testing code on install page

* InfuxDB 3 Enterprise configuration options (#5749)

* fix page title

* add enterprise 3 configuration options

* revert command updates to avoid conflicts

* updated config option name

* CLI updates, reorg, and photos

* updated host-id option to writer-id

* InfluxDB 3 Core CLI (#5750)

* WIP make influxdb3 docs shared

* finish making influxdb3 enterprise cli shared

* add influxdb3 core cli docs

* update config option name

* updated host-id to writer-id

* updated a few more host-id options to writer-id

* InfluxDB 3 Core configuration options (#5752)

* added missing enterprise config options

* add influxdb3 core config options, update enterprise options

* minor fixes in core config options

* update search integration data (#5753)

* Add shared v3 line protocol doc to Core and Enterprise (#5754)

* add shared v3 line protocol doc to core and enterprise

* Update content/shared/v3-line-protocol.md

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* feat: update getting started guides

* Update content/influxdb3/core/_index.md

* Update content/influxdb3/core/_index.md

* update use of 3.0 and v3 to just 3

* add basic download/install instructions (#5756)

* chore(monolith): port Enterprise and Core get-started guides to shared for reuse as /index and /get-started

* fix(monolith): reapply previous description change

* Jts/update Get started for monolith (#5759)

* fix(monolith): get-started cleanup (spelling, style, APIs)
- Finished Enterprise for now, not ported to Core.

* fix(monolith): python sample columns

* fix(monolith): Ports edits to Core, misc. fixes

* update alpha message

* add state to product dropdown items

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: Geoffrey Wossum <gwossum@influxdata.com>
Co-authored-by: Daniel Lo <wilburlo@gmail.com>
Co-authored-by: Peter Barnett <peterbarnett@Peters-MacBook-Pro.local>
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
Co-authored-by: Paul Dix <paul@pauldix.net>
2025-01-13 07:21:11 -07:00
Scott Anderson 8dbd485854
port cookies to local storage (#5725) 2024-12-31 11:04:23 -07:00
Scott Anderson 4f7e4d5992 hotfix: fix shared page github edit link 2024-12-19 09:03:09 -07:00
Scott Anderson f9ad60d7e2
Consolidate SQL reference docs (#5712)
* add source frontmatter for importing shared content

* update sql refrences docs to use shared source files

* updated note shortcodes to github-style alerts
2024-12-16 13:08:14 -07:00
Gunnar Aasen 202b623d26 Revert download links for Telegraf and InfluxDB v2 CLI 2024-11-28 14:10:07 -08:00
Scott Anderson 1dd5181e84
Update Flux/InfluxDB version modal (#5668)
* fix flux influxdb version modal

* removed commented code

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2024-11-12 08:20:54 -07:00
Scott Anderson ddc921c4fc
Add support for GitHub style alerts (#5667)
* implement github style markdown alerts

* hide example doc

* swapped note and tip color schemes

* fixed broken v2 icons

* marked example as draft

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2024-11-07 14:54:01 -07:00
Scott Anderson 44ce6e9d69
Note removal of Flux MQTT package support OSS 2.7+ (#5634)
* WIP added prepend to mqtt package frontmatter

* WIP excluded mqtt package from oss 2.7+

* WIP add nightly version exclude

* add nightly exclude to flux function support modal, closes influxdata/DAR#437

* updated mqtt warn message and version exclude pattern

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* exclude mqtt package from all oss versions

* exclude mqtt package from everything but cloud

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2024-10-04 14:02:30 -06:00