Error: {error}
{/if}
{#if activeTab === 'files'}
{/if}
{#if activeTab === 'history'}
{/if}
{#if activeTab === 'tags'}
{/if}
{#if activeTab === 'issues'}
{/if}
{#if activeTab === 'prs'}
{/if}
{#if activeTab === 'files' && readmeContent && !currentFile}
{#if loadingReadme}
{/if}
{/if}
{#if activeTab === 'files' && currentFile}
{/if}
{#if activeTab === 'history' && showDiff}
{#each diffData as diff}
{/each}
{:else if activeTab === 'history'}
{/if}
{#if activeTab === 'tags'}
{/if}
{#if activeTab === 'issues'}
{#if loadingDiscussions}
{:else}
{#each discussions as discussion}
{@const isExpanded = discussion.type === 'thread' && expandedThreads.has(discussion.id)}
{@const hasComments = discussion.comments && discussion.comments.length > 0}
{#if discussion.content}
{/if}
{#if discussion.type === 'thread' && isExpanded && hasComments}
{@const totalReplies = countAllReplies(discussion.comments)}
{#if comment.replies && comment.replies.length > 0}
{/each}
{/if}
{/each}
{/if}
{/if}
README
Loading README...
{:else if readmeIsMarkdown && readmeHtml}
{@html readmeHtml}
{:else if readmeContent}
{readmeContent}
{currentFile}
{#if loading}
{#if hasChanges}
● Unsaved changes
{/if}
{#if isMaintainer}
{:else if userPubkey}
Only maintainers can edit files. Submit a PR instead.
{/if}
Loading file...
{:else}
{#if isMaintainer}
{:else}
{/if}
{:else if activeTab === 'files'}
{#if highlightedFileContent}
{@html highlightedFileContent}
{:else}
{/if}
{fileContent}
{/if}
Select a file from the sidebar to view and edit it
Diff for commit {selectedCommit?.slice(0, 7)}
{diff.file}
+{diff.additions}
-{diff.deletions}
{diff.diff}
Select a commit to view its diff
Tags are displayed in the sidebar
{#if issues.length === 0}
{:else}
{#each issues as issue}
{/each}
{/if}
{/if}
{#if activeTab === 'prs'}
No issues found. Create one to get started!
{issue.subject}
{@html issue.content.replace(/\n/g, '
')}
')}
{#if prs.length === 0}
{:else if selectedPR}
{#each prs.filter(p => p.id === selectedPR) as pr}
{@const decoded = nip19.decode(npub)}
{#if decoded.type === 'npub'}
{@const repoOwnerPubkey = decoded.data as string}
{/if}
{/each}
{:else}
{#each prs as pr}
{/if}
{#if activeTab === 'docs'}
No pull requests found. Create one to get started!
selectedPR = pr.id}
onkeydown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
selectedPR = pr.id;
}
}}
style="cursor: pointer;">
{/each}
{/if}
{pr.subject}
{@html pr.content.replace(/\n/g, '
')}
')}
{#if loadingDocs}
{:else}
{/if}
{/if}
{#if activeTab === 'discussions'}
Loading documentation...
{:else if documentationHtml}
{@html documentationHtml}
{:else if documentationContent === null}
No documentation found for this repository.
Documentation content is empty.
Discussions
{#if userPubkey}
{/if}
Loading discussions...
{:else if discussions.length === 0}
No discussions found. {#if userPubkey}Create a new discussion thread to get started!{:else}Log in to create a discussion thread.{/if}
{#if discussion.type === 'thread'}
{/if}
{discussion.title}
{discussion.content}
Comments ({totalReplies})
{#each discussion.comments! as comment}{comment.content}
{#each comment.replies as reply}
{#if reply.replies && reply.replies.length > 0}
{/each}
{/if}
{reply.content}
{#each reply.replies as nestedReply}
{/each}
{/if}
{nestedReply.content}
Replies ({totalReplies})
{#each discussion.comments! as comment}{comment.content}
{reply.content}
{nestedReply.content}