Commit Graph

514 Commits

Author SHA1 Message Date
Jacky Zhao
37d59b994e fix: coerce title to string 2023-09-25 18:15:55 -07:00
Jacky Zhao
2443791d33 fix: treat the 0 time as invalid too 2023-09-24 14:47:30 -07:00
Jacky Zhao
242b37034e fix: mermaid copy source position 2023-09-24 10:31:54 -07:00
Jacky Zhao
5f0a7a5d35 feat: add warning for invalid date format 2023-09-22 10:04:50 -07:00
Jacky Zhao
3c8cff48a3 feat: add warning for missing home page 2023-09-22 10:04:50 -07:00
Ben Schlegel
e3de59f265 fix(explorer): increase consistency, explicitly use font-family (#496)
* fix(explorer): display name for folders without `index` file

* docs(explorer): add section for folder display names

* docs(explorer): fix broken wikilink

* fix(consistency): explicitly set font + label/link fix

Use consistent styling between folders with `folderClickBehavior: "link"` and `"collapse`

* Update quartz/components/styles/explorer.scss

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Update quartz/components/styles/explorer.scss

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-09-21 19:35:11 +02:00
Ben Schlegel
476ae69e9d fix(explorer): display names for folders without frontmatter (#494)
* fix(explorer): display name for folders without `index` file

* docs(explorer): add section for folder display names
2023-09-21 18:54:33 +02:00
Jacky Zhao
42cb4efb33 perf: memoize filetree computation (#490)
* perf: memoize filetree computation

* format

* var -> let
2023-09-20 16:09:18 -07:00
Jacky Zhao
96abbf63d3 feat: display name for folders, expand explorer a little bit (#489)
* feat: display name for folders, expand explorer a little bit

* update docs
2023-09-20 16:08:54 -07:00
Ben Schlegel
31d6601a0d feat(explorer): improve accessibility and consistency (+ bug fix) (#488)
* feat(consistency): use `all: unset` on button

* style: improve accessibility and consistency for explorer

* fix: localStorage bug with folder name changes

* chore: bump quartz version
2023-09-20 13:55:29 -07:00
Jacky Zhao
9738b95e1b Revert "feat: Making Quartz available offline by making it a PWA (#465)"
This reverts commit d6301fae90.
2023-09-20 13:52:45 -07:00
Jacky Zhao
7652bdff7e Revert "docs: wording changes for offline support"
This reverts commit 52a172d1a4.
2023-09-20 13:52:29 -07:00
Jacky Zhao
2a552cd92b docs: wording changes for offline support 2023-09-20 11:40:36 -07:00
Adam Brangenberg
9c322802fa feat: Making Quartz available offline by making it a PWA (#465)
* Adding PWA and chaching for offline aviability

* renamed workbox config to fit Quartz' scheme

* Documenting new configuration

* Added missig umami documentation

* Fixed formatting so the build passes, thank you prettier :)

* specified caching strategies to improve performance

* formatting...

* fixing "404 manifest.json not found" on subdirectories by adding a / to manifestpath

* turning it into a plugin

* Removed Workbox-cli and updated @types/node

* Added Serviceworkercode to offline.ts

* formatting

* Removing workbox from docs

* applied suggestions

* Removed path.join for sw path

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Removed path.join for manifest path

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Removing path module import

* Added absolute path to manifests start_url and manifest "import" using baseUrl

* Adding protocol to baseurl

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Adding protocol to start_url too then

* formatting...

* Adding fallback page

* Documenting offline plugin

* formatting...

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* merge suggestion

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* formatting...

* Fixing manifest path, all these nits hiding the actual issues .-.

* Offline fallback page through plugins, most things taken from 404 Plugin

* adding Offline Plugin to config

* formatting...

* Turned offline off as default and removed offline.md

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-09-20 11:38:13 -07:00
rwutscher
ae57715822 fix: tag regex no longer includes purely numerical 'tags' (#485)
* fix: tag regex no longer includes purely numerical 'tags'

* fix: formatting

* fix: use guard in findAndReplace() instead of expanding the regex
2023-09-19 12:26:30 -07:00
Jacky Zhao
aa4f788123 fix(nit): make defaultOptions on explorer not a function 2023-09-19 10:22:39 -07:00
David Fischer
ee0c958b72 feat: support changes in system theme (#484)
* feat: support changes in system theme

* fix: run prettier

* fix: add content/.gitkeep
2023-09-19 09:25:51 -07:00
Ben Schlegel
f030418822 fix: bad visibility for last explorer item (#478)
* fix: bad visibility for last explorer item

* feat(explorer): add pseudo element for observer
2023-09-17 22:04:44 +02:00
Ben Schlegel
a9cdd5ff27 Merge pull request #479 from benschlegel/explorer-config
feat(explorer): add config for custom sort/map/filter functions
2023-09-17 21:36:04 +02:00
Ben Schlegel
a1f2551c16 docs: fix examples 2023-09-17 21:32:23 +02:00
Christian Gill
e173414d12 fix(slug): Handle question mark (#481) 2023-09-17 11:02:00 -07:00
Ben Schlegel
d889775951 fix: darkmode scroll bars (#480) 2023-09-17 10:29:20 -07:00
Ben Schlegel
c2ac5dcfd0 fix(explorer): filter function in ExplorerNode 2023-09-17 15:51:08 +02:00
Ben Schlegel
b8fbb64cad fix: display name for file nodes 2023-09-17 12:41:06 +02:00
Ben Schlegel
e3306cc475 feat: black magic
add config for `order` array, which determines the order in which all passed config functions for explorer will get executed in.

functions will now dynamically be called on `fileTree` via array accessor (e.g. fileTree["sort"].call(...)) with corresponding function from options being passed to call)
2023-09-16 21:58:38 +02:00
Ben Schlegel
e112fdad2b fix: create deep copy of file passed into tree 2023-09-16 19:45:21 +02:00
Ben Schlegel
0ed17307cf feat(explorer): implement map fn argument
Add a function for mapping over all FileNodes as an option for `Explorer`
2023-09-16 19:35:27 +02:00
Ben Schlegel
4ba45f9577 feat(explorer): integrate filter option 2023-09-16 19:18:59 +02:00
Ben Schlegel
9ad51c46d0 fix: use correct import for QuartzPluginData 2023-09-16 17:47:44 +02:00
Ben Schlegel
3ea0d50293 feat: implement filter function for explorer 2023-09-16 17:28:58 +02:00
Ben Schlegel
5d9d681152 feat(explorer): add config to support custom sort fn 2023-09-16 12:40:19 +02:00
Yuto Nagata
a0a98bcf4f fix: umami analytics date attribute (#477) 2023-09-15 19:17:20 -07:00
Ben Schlegel
515ac8d9a1 feat: implement file explorer component (closes #201) (#452)
* feat: add basic explorer structure„

* feat: integrate new component/plugin

* feat: add basic explorer structure

* feat: add sort to FileNodes

* style: improve style for explorer

* refactor: remove unused explorer plugin

* refactor: clean explorer structure, fix base (toc)

* refactor: clean css, respect displayClass

* style: add styling to chevron

* refactor: clean up debug statements

* refactor: remove unused import

* fix: clicking folder icon sometimes turns invisible

* refactor: clean css

* feat(explorer): add config for title

* feat: add config for folder click behavior

* fix: `no-pointer` not being set for all elements

new approach, have one `no-pointer` class, that removes pointer events and one `clickable` class on the svg and button (everything that can normally be clicked). then, find all children with `clickable` and toggle `no-pointer`

* fix: bug where nested folders got incorrect height

this fixes the bug where nested folders weren't calculating their total height correctly. done by adding class to main container of all children and calculating total

* feat: introduce `folderDefaultState` config

* feat: store depth for explorer nodes

* feat: implement option for collapsed state + bug fixes

folderBehavior: "link" still has bad styling, but major bugs with pointers fixed (not clean yet, but working)

* fix: default folder icon rotation

* fix: hitbox problem with folder links, fix style

* fix: redirect url for nested folders

* fix: inconsistent behavior with 'collapseFolders' opt

* chore: add comments to `ExplorerNode`

* feat: save explorer state to local storage (not clean)

* feat: rework `getFolders()`, fix localstorage read + write

* feat: set folder state from localStorage

needs serious refactoring but functional (except folder icon orientation)

* fix: folder icon orientation after local storage

* feat: add config for `useSavedState`

* refactor: clean `explorer.inline.ts`

remove unused functions, comments, unused code, add types to EventHandler

* refactor: clean explorer

merge `isSvg` paths, remove console logs

* refactor: add documentation, remove unused funcs

* feat: rework folder collapse logic

use grids instead of jank scuffed solution with calculating total heights

* refactor: remove depth arg from insert

* feat: restore collapse functionality to clicks

allow folder icon + folder label to collapse folders again

* refactor: remove `pointer-event` jank

* feat: improve svg viewbox + remove unused props

* feat: use css selector to toggle icon

rework folder icon to work purely with css instead of JS manipulation

* refactor: remove unused cfg

* feat: move TOC to right sidebar

* refactor: clean css

* style: fix overflow + overflow margin

* fix: use `resolveRelative` to resolve file paths

* fix: `defaultFolderState` config option

* refactor: rename import, rename `folderLi` + ul

* fix: use `QuartzPluginData` type

* docs: add explorer documentation
2023-09-15 09:39:16 -07:00
Oskar Manhart
4b177ed03e feat: display tag in graph view (#466)
* feat: tags in graph view

* fix: revert changing graph forces

* fix: run prettier
2023-09-13 20:55:59 -07:00
Jacky Zhao
0a6e9c3f86 feat: note transclusion (#475)
* basic transclude

* feat: note transclusion
2023-09-13 11:28:53 -07:00
Jacky Zhao
bfabedc5f7 fix dont show html in search when rssFullHtml is true (closes #474) 2023-09-13 09:43:30 -07:00
Jacky Zhao
3844a911e5 feat: resolve block references in obsidian markdown 2023-09-12 22:55:50 -07:00
Jacky Zhao
64d6db3b3f feat: rich html rss (closes #460) 2023-09-12 21:44:03 -07:00
Jacky Zhao
4387044cc7 fix: 404 page styling for nested pages (closes #458) 2023-09-12 21:29:57 -07:00
Jacky Zhao
5e02b3fed1 feat: rss limit (closes #459) 2023-09-12 19:18:44 -07:00
hcplantern
1562d2d9ad fix: callout parsing (#469) 2023-09-11 23:00:21 -07:00
Oskar Manhart
4b37976c29 feat: plugin for remark-breaks (#467)
* feat: plugin for remark-breaks

* fix: update package-lock.json

* fix: styling

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Update linebreaks.ts

* Update index.ts

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-09-10 23:11:42 -07:00
Jacky Zhao
fde8608927 fix: more lenient date parsing for templates 2023-09-08 09:29:57 -07:00
Jacky Zhao
425592d09a fix: links to index not showing in graph (closes #450) 2023-09-06 22:24:15 -07:00
Jacky Zhao
32b65cd1f7 fix: escape encoding for titles in rss 2023-09-06 21:47:59 -07:00
Jacky Zhao
86ccdccde1 fix: encodeuri for slugs in rss 2023-09-06 21:31:01 -07:00
Jacky Zhao
c9ddec07aa feat: 404 page emitter 2023-09-06 21:02:21 -07:00
Jacky Zhao
7e1be1d5b2 fix: dont transform external links 2023-09-06 20:25:50 -07:00
Adam Brangenberg
49d5d56bf4 feat(analytics): Support for Umami (#449) 2023-09-03 21:28:57 -07:00
Ben Schlegel
50da33ea4d feat(search): add arrow key navigation (#442)
* feat(search): add arrow navigation

* chore: format

* refactor: simplify arrow navigation

* chore: remove comment

* feat: rework arrow navigation to work without state

* feat: make pressing enter work with arrow navigation

* fix: remove unused css class

* chore: correct comment

* refactor(search): use optional chaining
2023-09-03 09:32:46 -07:00
Ben Schlegel
f257e2a948 fix: clipboard button visible in search (#445) 2023-09-03 09:06:05 -07:00
Jacky Zhao
c7cd941e5f feat: pluralize things in lists 2023-09-02 18:07:26 -07:00
Ben Schlegel
53dd86727b fix(search): matches getting highlighted in title (#440) 2023-09-01 14:12:32 -07:00
Ben Schlegel
fa0629716f feat: Implement search for tags (#436)
* Quartz sync: Aug 29, 2023, 10:17 PM

* style: add basic style to tags in search

* feat: add SearchType + tags to search preview

* feat: support multiple matches

* style(search): add style to matching tags

* feat(search): add content to preview for tag search

* fix: only display tags on tag search

* feat: support basic + tag search

* refactor: extract common `fillDocument`, format

* feat: add hotkey to search for tags

* chore: remove logs

* fix: dont render empty `<ul>` if tags not present

* fix(search-tag): make case insensitive

* refactor: clean `hideSearch` and `showSearch`

* feat: trim content similar to `description.ts`

* fix(search-tag): hotkey for windows

* perf: re-use main index for tag search
2023-09-01 10:09:58 -07:00
Ben Schlegel
f06440806f fix: regex for matching highlights (closes #437) (#438)
* fix:  regex for matching highlights

* fix: regex for empty highlights
2023-08-31 11:55:04 -07:00
Jacky Zhao
67451fa0fd fix: aliasredirects not using full path, add permalink support 2023-08-29 10:37:00 -07:00
Jeffrey Fabian
683c40a0ac feat: support kebab-case and nested tags in Obsidian-flavored Markdown tag-in-content parsing (#425)
* enhancement: support kebab-case and nested tags in ofm transformer

* update regex/capture groups to allow for (arbitrarily) nested values and tags of only -/_

* Update quartz/plugins/transformers/ofm.ts

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-08-29 10:14:54 -07:00
Ben Schlegel
e815256517 fix: correct graph labels for index.md nodes (#431) 2023-08-28 10:00:49 -07:00
Jeremy Press
43eeb8f4e7 Fix typo :) (#430) 2023-08-27 20:57:19 -07:00
Jeremy Press
ef762f28cd feat: support configurable ws port and remote development (#429)
Co-authored-by: Jeremy Press <jeremy@replit.com>
Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-08-27 17:39:42 -07:00
Ben Schlegel
78eb93eb85 cleanup: rework cli to allow invoking create and build outside of cli (#428)
* refactor: move `bootstrap-cli.mjs` tp cli

also update reference in docs

* refactor(cli): move build handler to `cli-functions`

* refactor(cli): move create to handler + helpers

* refactor(cli): extract arg definitions

* refactor: rename handlers and helpers

* refactor(cli): move update, await handlers

* refactor(cli): create constants, migrate to helpers

* refactor(cli): migrate `restore`

* refactor(cli): migrate `sync`

* format

* refactor(cli): remove old imports/functions

* refactor(cli): remove unused imports + format

* chore: remove old log statement

* fix: fix imports, clean duplicate code

* fix: relative import

* fix: simplified cacheFile path

* fix: update cacheFile import path

* refactor: move bootstrap-cli to quartz

* format

* revert: revert path to bootstrap-cli

* ci: re-run

* ci: fix  execution permission
2023-08-27 15:59:51 -07:00
Jacky Zhao
d4187034c2 fix: slugify tag on page before adding (closes #411) 2023-08-27 12:27:55 -07:00
Ben Schlegel
3233d5b08a Fix search bar after navigate (#424) 2023-08-26 17:19:45 -07:00
Ben Schlegel
0688a2415f feat: support CLI arguments for npx quartz create (#421)
* feat(cli): add new args for content + link resolve

* feat(cli): validate cmd args

* feat(cli): add chalk + error code to errors

* feat(cli): support for setup/link via args

* refactor(cli): use yargs choices instead of manual

Scrap manual check if arguments are valid, use yargs "choices" field instead.

* feat(cli): add in-dir argument+ handle errors

add new "in-directory" argument, used if "setup" is "copy" or "symlink" to determine source. add error handling for invalid permutations of arguments or non existent path

* feat(cli): dynamically use cli or provided args

use "in-directory" arg as `originalFolder` if available, otherwise get it from manual cli process

* run format

* fix: use process.exit instead of return

* refactor: split CommonArgv and CreateArgv

* refactor(cli): rename create args, use ${} syntax

* fix(cli): fix link resolution strategy arg

* format

* feat(consistency): allow partial cmd args
2023-08-26 13:21:44 -07:00
Jacky Zhao
29c4087dea style: fix mulitline callout styling 2023-08-26 10:48:34 -07:00
Hrishikesh Barman
1de352dc11 feat(plugins): add OxHugoFlavouredMarkdown (#419)
* feat(plugins): add OxHugoFlavouredMarkdown

ox-hugo is an org exporter backend that exports org files to
hugo-compatible markdown in an opinionated way. This plugin adds some
tweaks to the generated markdown to make it compatible with quartz but
the list of changes applied it is not extensive.

In the future however, we could leapfrog ox-hugo altogether and
create a quartz site directly out of org-roam files. That way we won't
have to do all the ritual dancing that this plugin has to perform.
See https://github.com/k2052/org-to-markdown

* fix: add toml to remarkFrontmatter configuration

* docs: add docs for OxHugoFlavouredMarkdown

* fixup! docs: add docs for OxHugoFlavouredMarkdown
2023-08-25 22:52:23 -07:00
Hrishikesh Barman
da64b9be3a feat(plugins): add toml support for frontmatter (#418)
* feat(plugins): add toml support for frontmatter

Currently frontmatter is expected to be yaml, with delimiter set to
"---". This might not always be the case, for example ox-hugo(a hugo
exporter for org-mode files) exports in toml format with the delimiter
set to "+++" by default.

With this change, the users will be able use frontmatter plugin to
support this toml frontmatter format.

Example usage: `Plugin.FrontMatter({delims: "+++", language: 'toml'})`

- [0] https://ox-hugo.scripter.co/doc/org-meta-data-to-hugo-front-matter/

* fixup! feat(plugins): add toml support for frontmatter
2023-08-25 10:25:46 -07:00
f37b157ff4 Merge remote-tracking branch 'upstream/v4' into v4 2023-08-25 09:07:19 +09:00
Jacky Zhao
477922e5f0 format, ensure ci runs on prs 2023-08-24 12:31:15 -07:00
Jacky Zhao
e4e048bbe6 format, ensure ci runs on prs 2023-08-24 12:31:15 -07:00
Ben Schlegel
818fa95f0f style: integrate tertiary color to text-select (#413) 2023-08-24 12:28:06 -07:00
Ben Schlegel
7596d80c2b style: integrate tertiary color to text-select (#413) 2023-08-24 12:28:06 -07:00
Zero King
d75cf0b354 feat: reproducible build (#412)
for sitemap, RSS and contentIndex.json.
2023-08-24 11:41:20 -07:00
Zero King
ad1a2162ff feat: reproducible build (#412)
for sitemap, RSS and contentIndex.json.
2023-08-24 11:41:20 -07:00
Jacky Zhao
9707aadf11 format 2023-08-24 10:03:14 -07:00
Jacky Zhao
9ea2af92fc format 2023-08-24 10:03:14 -07:00
Jacky Zhao
9973f77c5b fix: ensure recentnotes uses proper date 2023-08-24 09:38:00 -07:00
Jacky Zhao
a066a247e5 fix: ensure recentnotes uses proper date 2023-08-24 09:38:00 -07:00
Jacky Zhao
7e537a83cb fix: add better warning when defaultDateType is not set due to upgrade 2023-08-24 09:17:43 -07:00
Jacky Zhao
d618948f8c fix: add better warning when defaultDateType is not set due to upgrade 2023-08-24 09:17:43 -07:00
Jacky Zhao
ca718fa3d7 feat: add defaultDateType config 2023-08-24 08:56:40 -07:00
Jacky Zhao
10996f341d feat: add defaultDateType config 2023-08-24 08:56:40 -07:00
Jacky Zhao
9ff82b4983 fix: lock to never read when site is building 2023-08-24 08:31:12 -07:00
Jacky Zhao
a170f0eb24 fix: lock to never read when site is building 2023-08-24 08:31:12 -07:00
bfahrenfort
ae729cc28b Revert contentIndex to RSS 2.0 (#407) 2023-08-23 22:57:49 -07:00
bfahrenfort
f7eedaf3c5 Revert contentIndex to RSS 2.0 (#407) 2023-08-23 22:57:49 -07:00
Jacky Zhao
ce8f150883 format 2023-08-23 15:16:04 -07:00
Jacky Zhao
d5c5d1895f format 2023-08-23 15:16:04 -07:00
Zane Helton
2c38375975 docs: update hosting.md with Vercel hosting instructions (#406)
* Update hosting.md with Vercel hosting instructions

* Update docs/hosting.md

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Update docs/hosting.md

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Run npm run format

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-08-23 15:14:23 -07:00
Zane Helton
6b6275c8f7 docs: update hosting.md with Vercel hosting instructions (#406)
* Update hosting.md with Vercel hosting instructions

* Update docs/hosting.md

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Update docs/hosting.md

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

* Run npm run format

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2023-08-23 15:14:23 -07:00
Jacky Zhao
2b4320332e fix: text wrap in popover 2023-08-23 13:10:23 -07:00
Jacky Zhao
c707c0dc73 fix: text wrap in popover 2023-08-23 13:10:23 -07:00
Jacky Zhao
da2e87d655 fix: use proper full base for links.ts 2023-08-23 12:18:50 -07:00
Jacky Zhao
db9f51d2c1 fix: use proper full base for links.ts 2023-08-23 12:18:50 -07:00
kanpov
39a290c48f Fix #403 by moving documentation to separate directory to avoid merge conflicts (#405) 2023-08-23 12:09:04 -07:00
kanpov
332931dc5a Fix #403 by moving documentation to separate directory to avoid merge conflicts (#405) 2023-08-23 12:09:04 -07:00
Jacky Zhao
107c8d413a fix: builds should no accumulate on repeated changes (closes #404) 2023-08-23 11:36:34 -07:00
Jacky Zhao
4a7b66f5ad fix: builds should no accumulate on repeated changes (closes #404) 2023-08-23 11:36:34 -07:00
Jacky Zhao
2ecc650d42 fix: percent-encoding for files with %, contentIndex for non-latin chars (closes #397, closes #399) 2023-08-22 23:34:28 -07:00
Jacky Zhao
664afb2375 fix: percent-encoding for files with %, contentIndex for non-latin chars (closes #397, closes #399) 2023-08-22 23:34:28 -07:00