* Move site search to use an endpoint
* Update browser.js
* Update search.js
* Update lib/search/versions.js
Co-authored-by: James M. Greene <JamesMGreene@github.com>
* Fix URLs
Co-authored-by: James M. Greene <JamesMGreene@github.com>
* get link liquid tag to accept variables as param
* new liquid tag `link_as_article_card`
* refactor link liquid tag slightly so we can control what props get rendered
* generalize filterCodeExample to use in all guides section
* pass in `js-filter-card-max` instead of hardcode max
* tweaks and add `data` to CSP for images
* add liquid tag tests
* add some browser tests for card filters
* we still need to rely on `getPathWithLanguage` for hrefs that already have the language code embedded
Co-authored-by: Emily Gould <4822039+emilyistoofunky@users.noreply.github.com>
* remove unnecessary `render` methods
* we don't use `link_with_short_title` anymore
* remove `shortTitle` option
* remove ink_with_short_title tag test
* Add read-frontmatter.js
* Use it
* Page static read/init are async now
* Fix some blockers
* I'm confused
* Fix some more bugs
* Use frontmatter schema, ensure end fence exists
* Fix a bug
* Still read full contents for index.md files
* Remove comment
* Only get ToC items for index pages
* Readd frontmatter error and verdadero handling
* Fix some borked tests
* Simplify the code
* Add a comment
* Remove redundant variable
* Re-simplify the Page construction
* End chunk _after_ endline
* Just use Page.init
* Explicitly set the Redis database number used for rate limiting
* Switch to using ioredis as the Redis client for rate limiting
* Install ioredis-mock as a primary dependency
* Create a Redis BasicAccessor class and tests
* Switch rendered page caching to use Redis for storage
* Add support for additional Redis SET options like TTLs
* Remove currently unused methods
* Rename redis-accessors/basic to redis-accessor and remove extra fluff
* Change default behavior for cache setting to throw if an error occurs
Add option allowSetFailures to facilitate graceful failures
* Allow SET failures to fail gracefully for the rendered page cache
* Remove as-yet unneeded serialization options from RedisAccessor
* Move Redis client construction into RedisAccessor constructor, just pass in databaseNumber as option
* Remove rendered-page-cache in favor of direct RedisAccessor use
* Add tests for RedisAccessor constructor param validations
* Eliminate one roundtrip to Redis for the cached HTML existence check
Are we fast yet?
* Set a rendered page cache TTL of 24 hours
* Support [...] in data tag path
* Use forloop.index0 to get data tag path
* Commit whitespace change to not keep getting it
* Recursively render glossary terms as well
* Add tests to verify Liquid data tag can handle bracketed access
* Remove superfluous 'set' for context in tests
* Avoid the mystery guest anti-pattern... move the test data closer to the test
* Escape the `-` character in the data regex
Co-authored-by: Jason Etcovitch <jasonetco@github.com>
Co-authored-by: Chiedo John <2156688+chiedo@users.noreply.github.com>
* Update tests to use fs.promises when not top-level
* Move two to asyncFilter
* Update site-data-references.js
* Update site-data-references.js
* Clear out await fs.exists
* Lint
* A few more fixes
* Can't use async when defining tests
* Revise the 'pages' module to export two methods: 'loadPages' and 'loadPageMap'
Update all existing references to use 'loadPages' for now
* Remove explicit Promise resolutions on loadPage* methods
* Condense reduction method into its now-singular usage spot
* Opt for for-of instead of forEach
* Make require of pages in warm-server more explicit
* Be more explicit about find-page using a pageMap
* Be more explicit about find-page-in-version using a pageMap
* Be more explicit about site-tree using a pageMap
* Extract the map creation from loadPageMap
* Be more explicit about using a pageMap
* Update redirects precompile to take two arguments: pageList, pageMap
* Rename internal loadPages method to loadPageList
* Clarify pageMap is what is stored in context.pages
* Use loadPageMap in tests and stuff