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
πͺ Cutting edge – Discord - GitLab issue listsπ’ Major updates – this page - mailing list - Twitter
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.populatereplaces a non-empty element, its original contents are now retained. Original content is restored on futureDOM.populatecalls with empty values (or viaDOM.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.resetparameter 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.loadScriptnow uses anoptionsobject parameter. Addedintegrityandcrossoriginparams. -
CDOM
DOM.populateimproved handling of checkbox inputs -
CNet HTML form
actionattribute now overrides element ID derived endpoint URLs when present. Ex.<form action="URL">#17 (closed) -
CNet
NET.xhrnow differentiates between remote and local requests using the newNET.isLocalhelper function. -
CNet local
NET.xhrrequests not beginning with/have API path automatically prepended from settings. -
CNet local
NET.xhrrequests have dFramework CSRF request header automatically appended. -
CNet
NET.xhrformDataparam moved intooptionsparam object. -
simpleHashhelper now utilizes CRC24. Previous version had an unknown collision rate. -
closeablehashes now generated from lowercase text content, allowing minor corrections to remain closed. IdeallyCRC24will 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.xhrandDOM.loadScriptwithin '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-descriptionanddata-keywordsattributes that copy to HTML head on activation - dramatically improving SEO. Defaults to SITE description/keywords when not present. #64 (closed) -
CDOM
DOM.markdownmarkdown renderer via Marked. Simply addattributes to an element or call directly. #104 (closed) -
CDOM
DOM.codeSampleRender code samples from the DOM itself. Ensure source has an id attribute, then add a matching<pre></pre>target, wheredata-sourceis the source ID. -
CNet
NET.isLocalhelper function to assess if a string is a local or remote URL, returns boolean. -
CNet
NET.xhrtimeoutoption in milliseconds, customize request timeout (10s default). -
CNet
NET.xhrheadersoption object, to add custom request headers. #119 (closed) -
CNet
NET.xhrnoStoreoption boolean, adds request headers to forcibly acquire a fresh response. #36 (closed) -
CNet
NET.xhrnow acceptstype:'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.remoteReportingsetting. #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
roleandaria-roleattributes automatically applied depending oncloseablestate. -
accessibility Main content element (
mainor#main) hasrole="main"automatically applied. - accessibility Active modals containing tab-able elements now trap focus #129 (closed)
-
truthy(value)helper. Sensible truthy value to boolean converter. -
.scrollSafeCSS class for modals longer than window height added to CORE #148 (closed) - Commented
.htaccessfile for upcoming getting started guide #130 (closed)
Framework (unreleased, internal only)
- m-User π§ design OTP inputs no longer trigger browser password managers, which asked if users wished to save the OTP on submission. #105 (closed)
- m-User π§ design OTP now automatically submits once input reaches required length. Additionally, the submit button is hidden for non-a11y users for cleaner UX. #20 (closed)
- m-User π§ SETTINGS for OTP length and submit button visibility
- CLogging Audit logging #110 (closed)