Tucker McKnight
BROKEN HERE, add patches template. Breaks getLocation somehow?
4
4
import paginatedPatches from './src/paginatedPatches.ts'
16
16
eleventyConfig.addGlobalData("repos", reposData)
eleventyConfig.addGlobalData("reposConfig", reposConfiguration)
const branchesData = branches(reposData)
eleventyConfig.addGlobalData("branches", branchesData)
171
171
console.log("getreadme")
console.log(branchName)
console.log(repoName)
205
const branchesData = branches(reposData)
205
295
295
branches: branchesData,
309 310 311
eleventyConfig.addGlobalData("repos", reposData)
eleventyConfig.addGlobalData("reposConfig", reposConfiguration)
eleventyConfig.addGlobalData("branches", branchesData)
309 310 311
// PATCHES.NJK
const patchesTemplate = fsImport.readFileSync(`${__dirname}/templates/patches.njk`).toString()
const paginatedPatchesData = await paginatedPatches(reposData)
eleventyConfig.addTemplate(
`repos/patches.njk`,
topLayoutPartial + repoTemplate + bottomLayoutPartial,
{
pagination: {
data: "paginatedPatches",
size: 1,
alias: "patchPage",
},
paginatedPatches: paginatedPatchesData,
permalink: (data) => {
const repoName = data.patchPage.repoName
const branchName = data.patchPage.branchName
return `${reposPath}/${eleventyConfig.getFilter("slugify")(repoName)}/branches/${eleventyConfig.getFilter("slugify")(branchName)}/patches/page${data.patchPage.pageNumber}`
},
eleventyComputed: {
nav: {
repoName: (data) => data.patchPage.repoName,
branchName: (data) => data.patchPage.branchName,
}
},
navTab: "patches",
}
)
0
0
let cachedFlatPatches = null
export default async (repos) => {
if (cachedFlatPatches !== null) { return cachedFlatPatches }
cachedFlatPatches = Object.keys(repos).flatMap((repoName) => {
return Object.keys(repos[repoName].branches).flatMap((branchName) => {
return repos[repoName].branches[branchName].patches.map((patch) => {
return {
patch,
branchName,
repoName,
}
})
})
})
return cachedFlatPatches
}
137
137
console.log(repoName)
0
0
import flatPatchesFunc from './flatPatches.js'
let paginatedPatches = null
export default async (repos) => {
if (paginatedPatches !== null) { return paginatedPatches }
const flatPatches = await flatPatchesFunc(repos)
paginatedPatches = []
const patchesPerPage = 30
flatPatches.forEach((patch) => {
const index = paginatedPatches.findIndex((page) => {
return (
page.repoName === patch.repoName
&& page.branchName == patch.branchName
&& page.patches.length <= patchesPerPage
)
})
if (index === -1) {
const pageNumber = paginatedPatches.filter(page => (page.repoName === patch.repoName && page.branchName === patch.branchName)).length + 1
paginatedPatches.push({
repoName: patch.repoName,
branchName: patch.branchName,
patches: [patch.patch],
// current page number is one more than "how many items in paginatedPatches already
// have repoName as their repo name.
pageNumber,
})
}
else {
paginatedPatches[index].patches.push(patch.patch)
}
})
return paginatedPatches
}
0
0
<nav>
<ul class="pagination">
{% for pageObj in (paginatedPatches | pagesJustForBranch(patchPage.repoName, patchPage.branchName)) %}
<li class="page-item">
<a class="page-link {% if pageObj.pageNumber == patchPage.pageNumber %}active{% endif %}" href="{{reposPath}}/{{patchPage.repoName | slugify}}/branches/{{patchPage.branchName}}/patches/page{{pageObj.pageNumber}}">{{ pageObj.pageNumber }}</a>
</li>
{% endfor %}
</ul>
</nav>
<ul>
{% for patch in patchPage.patches %}
<li class="patch">
<div>
<span class="patch-name"><a href="/repos/{{patchPage.repoName | slugify}}/branches/{{patchPage.branchName | slugify}}/patches/{{patch.hash}}">{{patch.name}}</a></span>
<br />
<span>{{patch.date | date}}</span>
<br />
<span>{{patch.author}}</span>
<pre class="patch-hash">{{patch.hash}}</pre>
</div>
</li>
{% endfor %}
</ul>
<nav>
<ul class="pagination">
{% for pageObj in (paginatedPatches | pagesJustForBranch(patchPage.repoName, patchPage.branchName)) %}
<li class="page-item">
<a class="page-link {% if pageObj.pageNumber == patchPage.pageNumber %}active{% endif %}" href="/repos/{{patchPage.repoName | slugify}}/branches/{{patchPage.branchName}}/patches/page{{pageObj.pageNumber}}">{{ pageObj.pageNumber }}</a>
</li>
{% endfor %}
</ul>
</nav>