commits
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
- create/updates are unified because db handles upserts
- use new DB APIs that support db.Filter
Signed-off-by: oppiliappan <me@oppi.li>
- all Create ops are upserts by default, this means the ingester simply
has to create a new item during ingestion, the db handler will decide
if it is an edit or a create operation
- all ops have been updated to use db.Filter
Signed-off-by: oppiliappan <me@oppi.li>
edit if present and create if not.
Signed-off-by: oppiliappan <me@oppi.li>
- all Create ops are upserts by default, this means the ingester simply
has to create a new item during ingestion, the db handler will decide
if it is an edit or a create operation
- all ops have been updated to use db.Filter
Signed-off-by: oppiliappan <me@oppi.li>
more constraints and a new "reply_to" column for threading.
Signed-off-by: oppiliappan <me@oppi.li>
adds generated `at_uri` column. a lot easier for comments to refer to an
issue now. ingesting comments also does not require a lookup, we can
directly use the at-uri of the parent-issue in db queries.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
we can always display this for an upgrade situation now.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
sh.tangled.repo.{diff,compare} are ... pretty hard to port over thanks
to the old handlers directly returning really complex jsonified types.
gitdiff.File, gitdiff.PatchHeader etc. aren't super easy to port over
to lexicon schema definitions.
An interim solution is to simply retain those as is and NOT define a
schema, which is allowed by the spec[0].
> schema (object, optional): schema definition, either an object, a ref,
> or a union of refs. Used to describe JSON encoded responses, though
> schema is optional even for JSON responses.
lexgen doesn't adhere to the spec, and crashes out when you try to
specify an application/json output but don't define a schema. To work
around this, we set encoding to '*/*'.
[0]: https://atproto.com/specs/lexicon#query-and-procedure-http-api
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: serenity <98162476+NekoDrone@users.noreply.github.com>
Might be useful if we could somehow build this list at runtime.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
This is now consistent with other pages.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: ansxor <git@ansxor.ca>
TODO: this needs to be deprecated gracefully.
Signed-off-by: oppiliappan <me@oppi.li>
Introducing `KNOT_GIT_USER_NAME` and `KNOT_GIT_USER_EMAIL` environment
variables.
This will prevent silently inheritting global gitconfig's user
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
this method is not used now and should be replaced with
`MergeWithOptions`
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
- we don't need `MergeOptions` for checking a patch
Signed-off-by: Seongmin Lee <boltlessengineer@proton.me>
Fixes https://tangled.sh/@tangled.sh/core/issues/172
Signed-off-by: noClaps <git@zerolimits.dev>
- preload main font that is inside css files
- preconnect to image CDNs
- remove redundant alt text and copy bsky instead
- add description tag for SEO
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
these only worked because of a bug in loadAllTemplates. execute and
executeRepo always had access to the repoBase layout. this is no longer
the case.
Signed-off-by: oppiliappan <me@oppi.li>
instead of loading all templates at once and storing into a map, we now
memoize the results of `parse`. the first call to `parse` will require
calculation but subsequent calls will be cached.
this is simpler to reason about because the new execution model requires
us to parse differently for each "base" template that is being used:
- for timeline, it is necessary to parse with layouts/base
- for repo-index, it is necessary to parse with layouts/base and
layouts/repobase in that order
the previous approach to loading also had a latent bug: all layouts were
loaded atop each other in alphabetical order (order of iteration over
the filesystem), and therefore it was not possible to selectively parse
and execute templates on a subset of layouts.
Signed-off-by: oppiliappan <me@oppi.li>
this is a limitation of how fragments are loaded at the moment. multiple
definitions per file are unsupported.
Signed-off-by: oppiliappan <me@oppi.li>
this allows fragments to reference each other.
Signed-off-by: oppiliappan <me@oppi.li>
sh.tangled.repo.{diff,compare} are ... pretty hard to port over thanks
to the old handlers directly returning really complex jsonified types.
gitdiff.File, gitdiff.PatchHeader etc. aren't super easy to port over
to lexicon schema definitions.
An interim solution is to simply retain those as is and NOT define a
schema, which is allowed by the spec[0].
> schema (object, optional): schema definition, either an object, a ref,
> or a union of refs. Used to describe JSON encoded responses, though
> schema is optional even for JSON responses.
lexgen doesn't adhere to the spec, and crashes out when you try to
specify an application/json output but don't define a schema. To work
around this, we set encoding to '*/*'.
[0]: https://atproto.com/specs/lexicon#query-and-procedure-http-api
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
instead of loading all templates at once and storing into a map, we now
memoize the results of `parse`. the first call to `parse` will require
calculation but subsequent calls will be cached.
this is simpler to reason about because the new execution model requires
us to parse differently for each "base" template that is being used:
- for timeline, it is necessary to parse with layouts/base
- for repo-index, it is necessary to parse with layouts/base and
layouts/repobase in that order
the previous approach to loading also had a latent bug: all layouts were
loaded atop each other in alphabetical order (order of iteration over
the filesystem), and therefore it was not possible to selectively parse
and execute templates on a subset of layouts.
Signed-off-by: oppiliappan <me@oppi.li>