Files snapshot from file-caching-performance-improvements
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
668454 Tucker McKnight
7f8822 Tucker McKnight
7f8822 Tucker McKnight
7f8822 Tucker McKnight
2a54fe Tucker McKnight
7f8822 Tucker McKnight
7bbc3b 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
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
2a54fe Tucker McKnight
9aaaea Tucker McKnight
9aaaea Tucker McKnight
2a54fe Tucker McKnight
9aaaea Tucker McKnight
9aaaea Tucker McKnight
9aaaea 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
99f634 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
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
2a54fe 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
d13929 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 ReposConfiguration } 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: ReposConfiguration, 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 branchesWithHrefs = {
branches: repo.branches.map((branch) => {
return {
name: branch.name,
href: nav.refHome({refName: branch.name, refType: 'branch'}) + '/' + data.nav.path,
date: repo.commits.get(branch.sha).date.toISOString(),
}
}),
tags: (repo.tags.map((tag) => {
return {
name: tag.name,
href: nav.refHome({refName: tag.name, refType: 'tag'}) + '/' + data.nav.path,
date: repo.commits.get(tag.sha).date.toISOString(),
}
}))
}
return {
rootPath: nav.rootPath(),
pageTitle: repo.name,
additionalHeadContent: [
m('script', m.trust(`
window.branchesWithHrefs = ${JSON.stringify(branchesWithHrefs)};
window.defaultBranch = "${repo.defaultBranch}";
window.currentBranch = "${ref.name}";
window.cloneUrl = "${repo.cloneUrl}";
`)),
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, 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()}, '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
)
),
]
}
}