forked from tangled.org/core
this repo has no description

appview: pages/templates: add opengraph tags

-21
appview/pages/templates/index.html
···
-
<html>
-
{{ template "layouts/head" . }}
-
-
<header>
-
<h1>{{ .meta.Title }}</h1>
-
<h2>{{ .meta.Description }}</h2>
-
</header>
-
<body>
-
<main>
-
<div class="index">
-
{{ range .info }}
-
<div class="index-name">
-
<a href="/{{ .Name }}">{{ .DisplayName }}</a>
-
</div>
-
<div class="desc">{{ .Desc }}</div>
-
<div>{{ .Idle }}</div>
-
{{ end }}
-
</div>
-
</main>
-
</body>
-
</html>
+7 -8
appview/pages/templates/repo/blob.html
···
{{ define "title" }}{{ .Path }} at {{ .Ref }} &middot; {{ .RepoInfo.FullName }}{{ end }}
-
{{ define "extrameta" }}
-
<meta name="vcs:clone" content="https://tangled.sh/{{ .RepoInfo.FullName }}"/>
-
<meta name="forge:summary" content="https://tangled.sh/{{ .RepoInfo.FullName }}">
-
<meta name="forge:dir" content="https://tangled.sh/{{ .RepoInfo.FullName }}/tree/{ref}/{path}">
-
<meta name="forge:file" content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}">
-
<meta name="forge:line" content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}#L{line}">
-
<meta name="go-import" content="tangled.sh/{{ .RepoInfo.FullNameWithoutAt }} git https://tangled.sh/{{ .RepoInfo.FullName }}">
+
{{ template "repo/fragments/meta" . }}
+
+
{{ $title := printf "%s at %s &middot; %s" .Path .Ref .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/blob/%s/%s" .RepoInfo.FullName .Ref .Path }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
-
{{ define "repoContent" }}
{{ $lines := split .Contents }}
+8 -1
appview/pages/templates/repo/branches.html
···
{{ define "title" }}
-
branches · {{ .RepoInfo.FullName }}
+
branches &middot; {{ .RepoInfo.FullName }}
+
{{ end }}
+
+
{{ define "extrameta" }}
+
{{ $title := printf "branches &middot; %s" .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/branches" .RepoInfo.FullName }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
{{ end }}
{{ define "repoContent" }}
+8
appview/pages/templates/repo/commit.html
···
{{ define "title" }} commit {{ .Diff.Commit.This }} &middot; {{ .RepoInfo.FullName }} {{ end }}
+
{{ define "extrameta" }}
+
{{ $title := printf "commit %s &middot; %s" .Diff.Commit.This .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/commit/%s" .RepoInfo.FullName .Diff.Commit.This }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
+
{{ define "repoContent" }}
{{ $repo := .RepoInfo.FullName }}
+5
appview/pages/templates/repo/empty.html
···
{{ define "title" }}{{ .RepoInfo.FullName }}{{ end }}
+
{{ define "extrameta" }}
+
{{ template "repo/fragments/meta" . }}
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo) }}
+
{{ end }}
+
{{ define "repoContent" }}
<main>
<p class="text-center pt-5 text-gray-400 dark:text-gray-500">
+26
appview/pages/templates/repo/fragments/meta.html
···
+
{{ define "repo/fragments/meta" }}
+
<meta
+
name="vcs:clone"
+
content="https://tangled.sh/{{ .RepoInfo.FullName }}"
+
/>
+
<meta
+
name="forge:summary"
+
content="https://tangled.sh/{{ .RepoInfo.FullName }}"
+
/>
+
<meta
+
name="forge:dir"
+
content="https://tangled.sh/{{ .RepoInfo.FullName }}/tree/{ref}/{path}"
+
/>
+
<meta
+
name="forge:file"
+
content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}"
+
/>
+
<meta
+
name="forge:line"
+
content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}#L{line}"
+
/>
+
<meta
+
name="go-import"
+
content="tangled.sh/{{ .RepoInfo.FullNameWithoutAt }} git https://tangled.sh/{{ .RepoInfo.FullName }}"
+
/>
+
{{ end }}
+11
appview/pages/templates/repo/fragments/og.html
···
+
{{ define "repo/fragments/og" }}
+
{{ $title := or .Title .RepoInfo.FullName }}
+
{{ $description := or .Description .RepoInfo.Description }}
+
{{ $url := or .Url (printf "https://tangled.sh/%s" .RepoInfo.FullName) }}
+
+
+
<meta property="og:title" content="{{ unescapeHtml $title }}" />
+
<meta property="og:type" content="object" />
+
<meta property="og:url" content="{{ $url }}" />
+
<meta property="og:description" content="{{ $description }}" />
+
{{ end }}
+5 -24
appview/pages/templates/repo/index.html
···
{{ define "title" }}{{ .RepoInfo.FullName }} at {{ .Ref }}{{ end }}
+
{{ define "extrameta" }}
-
<meta
-
name="vcs:clone"
-
content="https://tangled.sh/{{ .RepoInfo.FullName }}"
-
/>
-
<meta
-
name="forge:summary"
-
content="https://tangled.sh/{{ .RepoInfo.FullName }}"
-
/>
-
<meta
-
name="forge:dir"
-
content="https://tangled.sh/{{ .RepoInfo.FullName }}/tree/{ref}/{path}"
-
/>
-
<meta
-
name="forge:file"
-
content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}"
-
/>
-
<meta
-
name="forge:line"
-
content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}#L{line}"
-
/>
-
<meta
-
name="go-import"
-
content="tangled.sh/{{ .RepoInfo.FullNameWithoutAt }} git https://tangled.sh/{{ .RepoInfo.FullName }}"
-
/>
+
{{ template "repo/fragments/meta" . }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo) }}
{{ end }}
+
{{ define "repoContent" }}
<main>
+8
appview/pages/templates/repo/issues/issue.html
···
{{ define "title" }}{{ .Issue.Title }} &middot; issue #{{ .Issue.IssueId }} &middot; {{ .RepoInfo.FullName }}{{ end }}
+
+
{{ define "extrameta" }}
+
{{ $title := printf "%s &middot; issue #%d &middot; %s" .Issue.Title .Issue.IssueId .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/issues/%d" .RepoInfo.FullName .Issue.IssueId }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
{{ define "repoContent" }}
<header class="pb-4">
<h1 class="text-2xl">
+7
appview/pages/templates/repo/issues/issues.html
···
{{ define "title" }}issues &middot; {{ .RepoInfo.FullName }}{{ end }}
+
{{ define "extrameta" }}
+
{{ $title := "issues"}}
+
{{ $url := printf "https://tangled.sh/%s/issues" .RepoInfo.FullName }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
{{ define "repoContent" }}
<div class="flex justify-between items-center gap-4">
<div class="flex gap-4">
+7
appview/pages/templates/repo/log.html
···
{{ define "title" }}commits &middot; {{ .RepoInfo.FullName }}{{ end }}
+
{{ define "extrameta" }}
+
{{ $title := printf "commits &middot; %s" .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/commits" .RepoInfo.FullName }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
{{ define "repoContent" }}
<section id="commit-table" class="overflow-x-auto">
<h2 class="font-bold text-sm mb-4 uppercase dark:text-white">
+9 -1
appview/pages/templates/repo/pulls/interdiff.html
···
{{ define "title" }}
-
interdiff of round #{{ .Round }} and #{{ sub .Round 1 }}; pull #{{ .Pull.PullId }} &middot; {{ .RepoInfo.FullName }}
+
interdiff of round #{{ .Round }} and #{{ sub .Round 1 }} &middot; pull #{{ .Pull.PullId }} &middot; {{ .RepoInfo.FullName }}
+
{{ end }}
+
+
+
{{ define "extrameta" }}
+
{{ $title := printf "interdiff of %d and %d &middot; %s &middot; pull #%d &middot; %s" .Round (sub .Round 1) .Pull.Title .Pull.PullId .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/pulls/%d/round/%d" .RepoInfo.FullName .Pull.PullId .Round }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" (unescapeHtml $title) "Url" $url) }}
{{ end }}
{{ define "content" }}
+9
appview/pages/templates/repo/pulls/patch.html
···
patch of {{ .Pull.Title }} &middot; round #{{ .Round }} &middot; pull #{{ .Pull.PullId }} &middot; {{ .RepoInfo.FullName }}
{{ end }}
+
+
{{ define "extrameta" }}
+
{{ $title := printf "patch of %s &middot; pull #%d &middot; %s" .Pull.Title .Pull.PullId .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/pulls/%d/round/%d" .RepoInfo.FullName .Pull.PullId .Round }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
+
{{ define "content" }}
<section>
<section
+8
appview/pages/templates/repo/pulls/pull.html
···
{{ .Pull.Title }} &middot; pull #{{ .Pull.PullId }} &middot; {{ .RepoInfo.FullName }}
{{ end }}
+
{{ define "extrameta" }}
+
{{ $title := printf "%s &middot; pull #%d &middot; %s" .Pull.Title .Pull.PullId .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/pulls/%d" .RepoInfo.FullName .Pull.PullId }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
+
{{ define "repoContent" }}
{{ template "repo/pulls/fragments/pullHeader" . }}
{{ end }}
+7
appview/pages/templates/repo/pulls/pulls.html
···
{{ define "title" }}pulls &middot; {{ .RepoInfo.FullName }}{{ end }}
+
{{ define "extrameta" }}
+
{{ $title := "pulls"}}
+
{{ $url := printf "https://tangled.sh/%s/pulls" .RepoInfo.FullName }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
{{ define "repoContent" }}
<div class="flex justify-between items-center">
<div class="flex gap-4">
+7
appview/pages/templates/repo/tags.html
···
tags · {{ .RepoInfo.FullName }}
{{ end }}
+
{{ define "extrameta" }}
+
{{ $title := printf "tags &middot; %s" .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/tags" .RepoInfo.FullName }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
+
{{ end }}
+
{{ define "repoContent" }}
<section>
<h2 class="mb-4 text-sm text-left text-gray-700 dark:text-gray-300 uppercase font-bold">tags</h2>
+11 -6
appview/pages/templates/repo/tree.html
···
{{ define "extrameta" }}
-
<meta name="vcs:clone" content="https://tangled.sh/{{ .RepoInfo.FullName }}"/>
-
<meta name="forge:summary" content="https://tangled.sh/{{ .RepoInfo.FullName }}">
-
<meta name="forge:dir" content="https://tangled.sh/{{ .RepoInfo.FullName }}/tree/{ref}/{path}">
-
<meta name="forge:file" content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}">
-
<meta name="forge:line" content="https://tangled.sh/{{ .RepoInfo.FullName }}/blob/{ref}/{path}#L{line}">
-
<meta name="go-import" content="tangled.sh/{{ .RepoInfo.FullNameWithoutAt }} git https://tangled.sh/{{ .RepoInfo.FullName }}">
+
+
{{ $path := "" }}
+
{{ range .BreadCrumbs }}
+
{{ $path = printf "%s/%s" $path (index . 0) }}
+
{{ end }}
+
+
{{ template "repo/fragments/meta" . }}
+
{{ $title := printf "%s at %s &middot; %s" $path .Ref .RepoInfo.FullName }}
+
{{ $url := printf "https://tangled.sh/%s/tree/%s%s" .RepoInfo.FullName .Ref $path }}
+
+
{{ template "repo/fragments/og" (dict "RepoInfo" .RepoInfo "Title" $title "Url" $url) }}
{{ end }}
+132 -72
appview/pages/templates/timeline.html
···
{{ define "title" }}timeline{{ end }}
+
{{ define "extrameta" }}
+
<meta property="og:title" content="timeline · tangled" />
+
<meta property="og:type" content="object" />
+
<meta property="og:url" content="https://tangled.sh" />
+
<meta property="og:description" content="see what's tangling" />
+
{{ end }}
+
{{ define "topbar" }}
-
{{ with .LoggedInUser }}
-
{{ template "layouts/topbar" $ }}
-
{{ else }}
-
{{ end }}
+
{{ with .LoggedInUser }}
+
{{ template "layouts/topbar" $ }}
+
{{ else }}
+
{{ end }}
{{ end }}
{{ define "content" }}
-
{{ with .LoggedInUser }}
-
{{ block "timeline" $ }} {{ end }}
-
{{ else }}
-
{{ block "hero" $ }} {{ end }}
-
{{ block "timeline" $ }} {{ end }}
-
{{ end }}
+
{{ with .LoggedInUser }}
+
{{ block "timeline" $ }}{{ end }}
+
{{ else }}
+
{{ block "hero" $ }}{{ end }}
+
{{ block "timeline" $ }}{{ end }}
+
{{ end }}
{{ end }}
{{ define "hero" }}
-
<div class="flex flex-col items-center justify-center text-center rounded drop-shadow bg-white dark:bg-gray-800 text-black dark:text-white py-4 px-10">
-
<div class="font-bold italic text-4xl mb-4">
-
tangled
-
</div>
-
<div class="italic text-lg">
-
tightly-knit social coding, <a href="/login" class="underline inline-flex gap-1 items-center">join now {{ i "arrow-right" "w-4 h-4" }}</a>
-
<p class="pt-5 px-10 text-sm text-gray-500 dark:text-gray-400">Join our <a href="https://chat.tangled.sh">Discord</a> or IRC channel: <a href="https://web.libera.chat/#tangled"><code>#tangled</code> on Libera Chat</a>.
-
Read an introduction to Tangled <a href="https://blog.tangled.sh/intro">here</a>.</p>
-
</div>
-
</div>
+
<div
+
class="flex flex-col items-center justify-center text-center rounded drop-shadow bg-white dark:bg-gray-800 text-black dark:text-white py-4 px-10"
+
>
+
<div class="font-bold italic text-4xl mb-4">tangled</div>
+
<div class="italic text-lg">
+
tightly-knit social coding,
+
<a href="/login" class="underline inline-flex gap-1 items-center"
+
>join now {{ i "arrow-right" "w-4 h-4" }}</a
+
>
+
<p class="pt-5 px-10 text-sm text-gray-500 dark:text-gray-400">
+
Join our <a href="https://chat.tangled.sh">Discord</a> or IRC
+
channel:
+
<a href="https://web.libera.chat/#tangled"
+
><code>#tangled</code> on Libera Chat</a
+
>. Read an introduction to Tangled
+
<a href="https://blog.tangled.sh/intro">here</a>.
+
</p>
+
</div>
+
</div>
{{ end }}
{{ define "timeline" }}
-
<div>
-
<div class="p-6">
-
<p class="text-xl font-bold dark:text-white">Timeline</p>
-
</div>
-
-
<div class="flex flex-col gap-3 relative">
-
<div class="absolute left-8 top-0 bottom-0 w-px bg-gray-300 dark:bg-gray-600"></div>
-
{{ range .Timeline }}
-
<div class="px-6 py-2 bg-white dark:bg-gray-800 rounded drop-shadow-sm w-fit">
-
{{ if .Repo }}
-
{{ $userHandle := index $.DidHandleMap .Repo.Did }}
-
<div class="flex items-center">
-
<p class="text-gray-600 dark:text-gray-300">
-
<a href="/{{ $userHandle }}" class="no-underline hover:underline">{{ $userHandle | truncateAt30 }}</a>
-
{{ if .Source }}
-
forked
-
<a href="/{{ index $.DidHandleMap .Source.Did }}/{{ .Source.Name }}" class="no-underline hover:underline">
-
{{ index $.DidHandleMap .Source.Did }}/{{ .Source.Name }}
-
</a>
-
to
-
<a href="/{{ $userHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline">{{ .Repo.Name }}</a>
-
{{ else }}
-
created
-
<a href="/{{ $userHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline">{{ .Repo.Name }}</a>
-
{{ end }}
-
<time class="text-gray-700 dark:text-gray-400 text-xs">{{ .Repo.Created | timeFmt }}</time>
-
</p>
+
<div>
+
<div class="p-6">
+
<p class="text-xl font-bold dark:text-white">Timeline</p>
</div>
-
{{ else if .Follow }}
-
{{ $userHandle := index $.DidHandleMap .Follow.UserDid }}
-
{{ $subjectHandle := index $.DidHandleMap .Follow.SubjectDid }}
-
<div class="flex items-center">
-
<p class="text-gray-600 dark:text-gray-300">
-
<a href="/{{ $userHandle }}" class="no-underline hover:underline">{{ $userHandle | truncateAt30 }}</a>
-
followed
-
<a href="/{{ $subjectHandle }}" class="no-underline hover:underline">{{ $subjectHandle | truncateAt30 }}</a>
-
<time class="text-gray-700 dark:text-gray-400 text-xs">{{ .Follow.FollowedAt | timeFmt }}</time>
-
</p>
-
</div>
-
{{ else if .Star }}
-
{{ $starrerHandle := index $.DidHandleMap .Star.StarredByDid }}
-
{{ $repoOwnerHandle := index $.DidHandleMap .Star.Repo.Did }}
-
<div class="flex items-center">
-
<p class="text-gray-600 dark:text-gray-300">
-
<a href="/{{ $starrerHandle }}" class="no-underline hover:underline">{{ $starrerHandle | truncateAt30 }}</a>
-
starred
-
<a href="/{{ $repoOwnerHandle }}/{{ .Star.Repo.Name }}" class="no-underline hover:underline">{{ $repoOwnerHandle | truncateAt30 }}/{{ .Star.Repo.Name }}</a>
-
<time class="text-gray-700 dark:text-gray-400 text-xs">{{ .Star.Created | timeFmt }}</time>
-
</p>
+
+
<div class="flex flex-col gap-3 relative">
+
<div
+
class="absolute left-8 top-0 bottom-0 w-px bg-gray-300 dark:bg-gray-600"
+
></div>
+
{{ range .Timeline }}
+
<div
+
class="px-6 py-2 bg-white dark:bg-gray-800 rounded drop-shadow-sm w-fit"
+
>
+
{{ if .Repo }}
+
{{ $userHandle := index $.DidHandleMap .Repo.Did }}
+
<div class="flex items-center">
+
<p class="text-gray-600 dark:text-gray-300">
+
<a
+
href="/{{ $userHandle }}"
+
class="no-underline hover:underline"
+
>{{ $userHandle | truncateAt30 }}</a
+
>
+
{{ if .Source }}
+
forked
+
<a
+
href="/{{ index $.DidHandleMap .Source.Did }}/{{ .Source.Name }}"
+
class="no-underline hover:underline"
+
>
+
{{ index $.DidHandleMap .Source.Did }}/{{ .Source.Name }}
+
</a>
+
to
+
<a
+
href="/{{ $userHandle }}/{{ .Repo.Name }}"
+
class="no-underline hover:underline"
+
>{{ .Repo.Name }}</a
+
>
+
{{ else }}
+
created
+
<a
+
href="/{{ $userHandle }}/{{ .Repo.Name }}"
+
class="no-underline hover:underline"
+
>{{ .Repo.Name }}</a
+
>
+
{{ end }}
+
<time
+
class="text-gray-700 dark:text-gray-400 text-xs"
+
>{{ .Repo.Created | timeFmt }}</time
+
>
+
</p>
+
</div>
+
{{ else if .Follow }}
+
{{ $userHandle := index $.DidHandleMap .Follow.UserDid }}
+
{{ $subjectHandle := index $.DidHandleMap .Follow.SubjectDid }}
+
<div class="flex items-center">
+
<p class="text-gray-600 dark:text-gray-300">
+
<a
+
href="/{{ $userHandle }}"
+
class="no-underline hover:underline"
+
>{{ $userHandle | truncateAt30 }}</a
+
>
+
followed
+
<a
+
href="/{{ $subjectHandle }}"
+
class="no-underline hover:underline"
+
>{{ $subjectHandle | truncateAt30 }}</a
+
>
+
<time
+
class="text-gray-700 dark:text-gray-400 text-xs"
+
>{{ .Follow.FollowedAt | timeFmt }}</time
+
>
+
</p>
+
</div>
+
{{ else if .Star }}
+
{{ $starrerHandle := index $.DidHandleMap .Star.StarredByDid }}
+
{{ $repoOwnerHandle := index $.DidHandleMap .Star.Repo.Did }}
+
<div class="flex items-center">
+
<p class="text-gray-600 dark:text-gray-300">
+
<a
+
href="/{{ $starrerHandle }}"
+
class="no-underline hover:underline"
+
>{{ $starrerHandle | truncateAt30 }}</a
+
>
+
starred
+
<a
+
href="/{{ $repoOwnerHandle }}/{{ .Star.Repo.Name }}"
+
class="no-underline hover:underline"
+
>{{ $repoOwnerHandle | truncateAt30 }}/{{ .Star.Repo.Name }}</a
+
>
+
<time
+
class="text-gray-700 dark:text-gray-400 text-xs"
+
>{{ .Star.Created | timeFmt }}</time
+
>
+
</p>
+
</div>
+
{{ end }}
+
</div>
+
{{ end }}
</div>
-
{{ end }}
</div>
-
{{ end }}
-
</div>
-
</div>
{{ end }}
+13 -1
appview/pages/templates/user/login.html
···
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
+
<meta
+
property="og:title"
+
content="login · tangled"
+
/>
+
<meta
+
property="og:url"
+
content="https://tangled.sh/login"
+
/>
+
<meta
+
property="og:description"
+
content="login to tangled"
+
/>
<script src="/static/htmx.min.js"></script>
<link
rel="stylesheet"
href="/static/tw.css?{{ cssContentHash }}"
type="text/css"
/>
-
<title>login</title>
+
<title>login &middot; tangled</title>
</head>
<body class="flex items-center justify-center min-h-screen">
<main class="max-w-md px-6 -mt-4">
+7
appview/pages/templates/user/profile.html
···
{{ define "title" }}{{ or .Card.UserHandle .Card.UserDid }}{{ end }}
+
{{ define "extrameta" }}
+
<meta property="og:title" content="{{ or .Card.UserHandle .Card.UserDid }}" />
+
<meta property="og:type" content="profile" />
+
<meta property="og:url" content="https://tangled.sh/{{ or .Card.UserHandle .Card.UserDid }}" />
+
<meta property="og:description" content="{{ or .Card.Profile.Description .Card.UserHandle .Card.UserDid }}" />
+
{{ end }}
+
{{ define "content" }}
<div class="grid grid-cols-1 md:grid-cols-8 gap-6">
<div class="md:col-span-2 order-1 md:order-1">
+7
appview/pages/templates/user/repos.html
···
{{ define "title" }}{{ or .Card.UserHandle .Card.UserDid }} · repos {{ end }}
+
{{ define "extrameta" }}
+
<meta property="og:title" content="{{ or .Card.UserHandle .Card.UserDid }}'s repos" />
+
<meta property="og:type" content="object" />
+
<meta property="og:url" content="https://tangled.sh/{{ or .Card.UserHandle .Card.UserDid }}/repos" />
+
<meta property="og:description" content="{{ or .Card.Profile.Description .Card.UserHandle .Card.UserDid }}" />
+
{{ end }}
+
{{ define "content" }}
<div class="grid grid-cols-1 md:grid-cols-8 gap-6">
<div class="md:col-span-2 order-1 md:order-1">
+1 -1
go.mod
···
github.com/sethvargo/go-envconfig v1.1.0
github.com/whyrusleeping/cbor-gen v0.2.1-0.20241030202151-b7a6831be65e
github.com/yuin/goldmark v1.4.13
+
golang.org/x/net v0.39.0
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028
)
···
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.26.0 // indirect
golang.org/x/crypto v0.37.0 // indirect
-
golang.org/x/net v0.39.0 // indirect
golang.org/x/sys v0.32.0 // indirect
golang.org/x/time v0.8.0 // indirect
google.golang.org/protobuf v1.34.2 // indirect