Files snapshot from main
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
668454 Tucker McKnight
90eb8e Tucker McKnight
7f8822 Tucker McKnight
7f8822 Tucker McKnight
2a54fe Tucker McKnight
7f8822 Tucker McKnight
90eb8e Tucker McKnight
90eb8e Tucker McKnight
90eb8e Tucker McKnight
90eb8e Tucker McKnight
90eb8e Tucker McKnight
90eb8e Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7f8822 Tucker McKnight
7bbc3b Tucker McKnight
99f634 Tucker McKnight
7f8822 Tucker McKnight
7bbc3b Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
7f8822 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
2a54fe Tucker McKnight
ebf7b0 Tucker McKnight
ebf7b0 Tucker McKnight
2a54fe Tucker McKnight
7f8822 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
d5489c Tucker McKnight
7e91e5 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
6e9596 Tucker McKnight
6e9596 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
eeb992 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
eeb992 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
99f634 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
b1c071 Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
d13929 Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
d13929 Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
b1c071 Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
d13929 Tucker McKnight
eafb15 Tucker McKnight
eafb15 Tucker McKnight
99f634 Tucker McKnight
eeb992 Tucker McKnight
668454 Tucker McKnight
eeb992 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7f8822 Tucker McKnight
7f8822 Tucker McKnight
import m from 'mithril'
import { type ReposConfigurationWithDefaultsApplied } from '../../src/configTypes.ts'
import { type Repository } from '../../src/dataTypes.ts'
import { NavHelper } from '../helpers/nav.ts'
import relDropDown from './relDropDown.ts'
export default async (
reposConfig: ReposConfigurationWithDefaultsApplied,
eleventyConfig: any,
data: any,
pageContent: any
) => {
// this still necessary?
if (data.currentRepo === '') {
return
}
const repo: Repository = data.currentRepo
const ref: Repository['branches'][0] = data.currentRef
const slugify = eleventyConfig.getFilter("slugify")
const nav = NavHelper({
reposConfig,
slugify,
currentRepoName: repo.name,
currentRefName: ref.name,
currentRefType: data.currentRefType,
})
const refObject = (ref, refType: 'branch' | 'tag') => {
return {
name: ref.name,
href: nav.refHome({refName: ref.name, refType}) + '/' + data.nav.path,
date: repo.commits.get(ref.sha).date.toISOString(),
}
}
const branchesWithHrefs = {
branches: repo.branches.map(branch => refObject(branch, 'branch')),
tags: repo.tags.map(tag => refObject(tag, 'tag')),
}
return {
rootPath: nav.rootPath(),
pageTitle: repo.name,
additionalHeadContent: [
m('script', m.trust(`
window.branchesWithHrefs = ${JSON.stringify(branchesWithHrefs)};
window.defaultBranch = "${repo.defaultBranch}";
window.currentRef = "${ref.name}";
window.currentRefType = "${data.currentRefType}";
window.cloneUrl = "${repo.cloneUrl}";
`)),
// TODO: don't include prism.css if the user doesn't have the syntaxHighlight plugin
// also allow them to use a custom prism theme
m('link', {
rel: "stylesheet",
id: "prism-theme",
type: "text/css",
href: `${data.reposPath}/vendor/prism.css`
}),
],
navbarContent: m('nav', {class: "navbar navbar-expand flex-wrap"}, [
m('ul', {class: "navbar-nav flex-wrap"}, [
m('li', {class: "nav-item"},
m('a', {
class: "nav-link",
href: nav.rootPath()
}, m.trust('❮ repos'))
),
m('li', {class: "nav-item"},
m('a', {
class: "nav-link",
href: nav.refHome()
}, repo.name)
),
m('li', {class: "nav-item me-4 mb-1"}, [
m('span', {class: "nav-link d-inline-block"}, 'ref:'),
relDropDown(ref.name, data.currentRefType, repo, branchesWithHrefs),
]),
m('ul', {class: "main-nav navbar-nav flex-wrap"}, [
m('li', {class: "nav-item"},
m('a', {class: `nav-link ${data.navTab === 'home' ? 'active' : ''}`, 'aria-current': "page", href: nav.refHome()}, 'Home')
),
m('li', {class: "nav-item"},
m('a', {class: `nav-link ${data.navTab === 'files' ? 'active' : ''}`, href: nav.files()}, 'Files')
),
m('li', {class: "nav-item"},
m('a', {class: `nav-link ${data.navTab === 'commits' ? 'active' : ''}`, href: nav.commits(1)}, 'Commits')
),
m('li', {class: "nav-item"},
m('a', {class: `nav-link ${data.navTab === 'branches' ? 'active' : ''}`, href: nav.branches()}, 'Branches')
),
m('li', {class: "nav-item"},
m('a', {class: `nav-link ${data.navTab === 'tags' ? 'active' : ''}`, href: nav.tags()}, 'Tags')
)
])
]),
]),
pageContent: [
m('div', {class: "row"},
m('div', {class: "col-12"},
await pageContent
)
),
]
}
}