Download - library v0.1.0

  • This is our initial feedback build - aka version zero. The primary goal is gathering your feedback after experimentation with the build - to do potentially sweeping changes to the API and prioritize future work.
  • Production build unavailable for initial feedback release.

Build limitations

Current

  • DOM populator handling of templates/repeating/tabular elements is experimental. This feature, along with improving documentation is a top priority for our next iteration.
  • Many existing PageDriver features have been temporarily removed (see changelog below), as the initial PageDriver components/modules spec is still in the works (issue #126) - please provide your input!
  • i18n v0 module didn't make it into the preview.

On-going

  • No 1st party web socket functionality, applications requiring constant connectivity aren't currenly recommended.
  • Lorin isn't actively working on backwards compatibility at this time. Provide compatibility feedback via 'PD build / builder v0' issue or Discord chat.
  • No tests either, for that matter. Discuss your favorite test frameworks and methodologies in 'Project testing v0' issue.
  • What's 'TypeScript'? 🀑

Staying informed

Getting involved

My time is currently split between: documentation, coding core functionality, fixing known bugs, researching optimal approaches for a variety of upcoming features, and issue management. I'd like to release a major version within the next six months – sooner with your help. PageDriver is still in its infancy so your input as active developers (no matter what skill level!) is critical at this point to shape the library.

Doing any of the following helps immensely:

  • Voting (πŸ‘) for issues you feel are important in the well-organized GitLab issue list.
  • Commenting on issues open for discussion/feedback in your areas of experience open issues, and possibly contributing a PR or two.
  • Contributing code and/or documentation.
  • GitHub stars to increase exposure, leading to more contributors.
  • Tell me about features/components in other major libraries you enjoy using via our Discord server.
  • Provide support for this project via Patreon, and receive additional perks (such as access to our personal WIP files). Thank you for your support!

PageDriver Library v0, YYYY/MM/DD

Major news

  • legal Prior to this release, PageDriver was a private solution released under a proprietary commercial license. However as of this moment, community editions will be open sourced, publicly available, and distributed under the Apache License 2.0 license! This is a significant change after 2 years of private development and I look forward to community involvement and contributions! Let's go! #68 (closed)
  • Easily extend functionality using the new CHook family. It's kind of a big deal.
  • CDOM When DOM.populate replaces a non-empty element, its original contents are now retained. Original content is restored on future DOM.populate calls with empty values (or via DOM.reset), allowing for 'default' values of non-input elements. This MAY become a non-default boolean option in a future release - given feedback. #121 (closed)

Removed

  • Many non-core features will be reintroduced as modules in future milestones, provide feedback via 'module v0' issue #126 to bring them back sooner!
  • Entire m-User πŸ§‘ system (includes OTP)
  • CGeo category (includes Google Maps)
  • CDOM 'Rotator' / Carousel
  • CDOM Countdown timer
  • CDOM JSON to 'progress' table renderer
  • CDOM Font Awesome icon renderer
  • CDOM Highly experimental edit/view context, now private WIP. #22 (closed)
  • CDOM 3rd-party Email address correction hinting. Requires major refactor.

Fixed

  • CDOM Unused DOM.reset parameter defaults no longer ignored when using a custom option set.
  • accessibility Modals no longer close via background or hotkey interactions if not closeable. Preventing critical modals from being unintentionally closed.
  • Additional closeables in modals (such as tips) no longer cause the modal to close.

Changed

  • legal design Project name is now title-cased, 'PageDriver' instead of 'pageDriver'. Camel case unnecessarily complicated writing and polarized some developers. I suggest using 'pd' in unofficial communication.
  • CDOM Display context CSS now generated directly from settings, no more manual modifications!
  • CDOM DOM.loadScript now uses an options object parameter. Added integrity and crossorigin params.
  • CDOM DOM.populate improved handling of checkbox inputs
  • CNet HTML form action attribute now overrides element ID derived endpoint URLs when present. Ex. <form action="URL"> #17 (closed)
  • CNet NET.xhr now differentiates between remote and local requests using the new NET.isLocal helper function.
  • CNet local NET.xhr requests not beginning with / have API path automatically prepended from settings.
  • CNet local NET.xhr requests have dFramework CSRF request header automatically appended.
  • CNet NET.xhr formData param moved into options param object.
  • simpleHash helper now utilizes CRC24. Previous version had an unknown collision rate.
  • closeable hashes now generated from lowercase text content, allowing minor corrections to remain closed. Ideally CRC24 will be replaced by fuzzy hash #120 in the future.

Added

  • f4: DocumentπŸ“‘ Initial documentation, so much documentation! It's not nearly enough and still unfinished, so why not contribute?
  • CHook function family, allowing easy extension of both core and external modules. Complete core functionality coverage by next release. #13 (closed)
  • CNav Local <a href> links that match page IDs are now routed appropriately. Library now utilizes window location as basis for internal path routing. #65
  • CNav Modals are now activated via URL hashes that match modal IDs, in addition to existing direct activation via JS. #41 (closed)
  • CDebug Visual context class debugger #141 (closed)
  • CDebug Bust local caching for NET.xhr and DOM.loadScript within 'Development' ENV via the 'local cache' toggle or manually adding 'pd-debug-breakLocalCache' cookie.
  • CDOM New function DOM.meta(name, content?) creates/mutates a <meta> tag within document head, returns the HTMLMetaElement. #102
  • CDOM Pages may now have data-description and data-keywords attributes that copy to HTML head on activation - dramatically improving SEO. Defaults to SITE description/keywords when not present. #64 (closed)
  • CDOM DOM.markdown markdown renderer via Marked. Simply add attributes to an element or call directly. #104 (closed)
  • CDOM DOM.codeSample Render code samples from the DOM itself. Ensure source has an id attribute, then add a matching <pre></pre> target, where data-source is the source ID.
  • CNet NET.isLocal helper function to assess if a string is a local or remote URL, returns boolean.
  • CNet NET.xhr timeout option in milliseconds, customize request timeout (10s default).
  • CNet NET.xhr headers option object, to add custom request headers. #119 (closed)
  • CNet NET.xhr noStore option boolean, adds request headers to forcibly acquire a fresh response. #36 (closed)
  • CNet NET.xhr now accepts type:'head' option, returning response headers.
  • CLogging Remote error reporting, enabled in 'Production' environment when client not in 'debug' mode. Add 'forceLogging' cookie to forcibly enable. #26 Suggest additional integrations via issue #53.
  • CLogging 3rd-party Sentry.io integration v0 - enabled by adding your DSN to pd.SITE.remoteReporting setting. #100 (closed)
  • 3rd-party Cloudflare integration v0 - IP Country and basic enablement status #117 (closed)
  • accessibility Keyboard navigation 'skip' links are automatically added for main content and footer if they exist. Additionally, a primary navigation link is added if it's not within the first located header element.
  • accessibility Modals have role and aria-role attributes automatically applied depending on closeable state.
  • accessibility Main content element (main or #main) has role="main" automatically applied.
  • accessibility Active modals containing tab-able elements now trap focus #129 (closed)
  • truthy(value) helper. Sensible truthy value to boolean converter.
  • .scrollSafe CSS class for modals longer than window height added to CORE #148 (closed)
  • Commented .htaccess file for upcoming getting started guide #130 (closed)

Framework (unreleased, internal only)

😯 Uh oh...

A critical error has occurred preventing the site from loading. An error report has been automatically sent for investigation.

If this error is preventing you from completing an important action, please try again later.

404 Not Found

Oops! We can't find the requested page. If this error is preventing you from completing an important task, consider contacting us to resolve it.

We're sorry...

Something unexpected happened. If this error is preventing you from completing an important action, please contact us to resolve it.

500 Internal Server Error

Unauthorized access

You do not have the necessary permission to access this data.

401 Unauthorized

Oops!

We can't seem to find the requested resource. If this error is preventing you from completing an important action, please contact us to resolve it.

404 Not Found

Developer Preview

Welcome to the PageDriver 'Library v0' milestone preview. You've been invited at this critical juncture to provide early input and feedback about conventions and functionality. Intuitiveness is a primary project goal.

Please use the feedback tool zealously, for good or bad! Looking forward to reviewing your thoughts and opinions - Lorin

Please note

Getting help

Only community based support options are available at this time. Once officially launched, additional support options may become available.

Please fully review the official reference and guides before reaching out for assistance.

DEV 2025 Sep 18, 07:55am UTC πŸͺ²