Files snapshot from main

./js_templates/index.ts

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
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
fab6f5 Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
fab6f5 Tucker McKnight
95482f Tucker McKnight
612263 Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
612263 Tucker McKnight
612263 Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
export default async (eleventyConfig: any) => {
  const slugify = eleventyConfig.getFilter("slugify")

  return (data: any) => {
    return `
      <!doctype html>
      <html lang="en">
        <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Repositories</title>
          <link rel="stylesheet" href="/css/design-board.css">
          <script src="${data.reposPath}/frontend/top.js"></script>
        </head>
        <body>
          <div class="container">
            <div class="row d-flex justify-content-end">
              <div class="col-auto pt-2">
                <div class="dropdown">
                  <button class="dropdown-toggle btn btn-bg" id="dark-mode-switch" type="button" data-bs-toggle="dropdown" aria-expanded="false">
                    <span>&#xFE0F;</span>
                  </button>
                  <ul class="dropdown-menu">
                    <li><button class="btn shadow-none" data-theme-pref="light" onclick="toggleDarkMode(this)"><span class="me-1">&#x1F31E;</span>Light</button></li>
                    <li><button class="btn shadow-none" data-theme-pref="dark" onclick="toggleDarkMode(this)"><span class="me-1">&#x1F319;</span>Dark</button></li>
                    <li><button class="btn shadow-none" data-theme-pref="auto" onclick="toggleDarkMode(this)"><span class="me-1">&#x1F5A5;&#xFE0F;</span>Match OS</button></li>
                  </ul>
                </div>
              </div>
            </div>
            <div class="row my-3">
              <div class="col">
                <h1>${data.reposConfig.defaultTemplateConfiguration?.allRepositoriesPageTitle || "All Repositories"}</h1>
              </div>
            </div>
            <div class="row">
              <div class="col d-flex flex-wrap">
                ${data.repos.map((repo) => {
                  return `
                    <div class="m-2 card bezel-gray flex-grow-1" style="flex-basis: 20rem;">
                      <div class="card-header">
                        <a class="card-title fs-5" href="${data.reposPath}/${slugify(repo.name)}/branches/${repo.defaultBranch}">${repo.name}</a>
                      </div>
                      <div class="card-body">
                        ${repo.description ? `<p class="card-text">${repo.description}</p>` : ''}
                      </div>
                      <div class="card-footer">
                        <a href="${data.reposPath}/${slugify(repo.name)}/branches/${repo.defaultBranch}" class="mx-1 my-2 btn btn-primary text-white">Go to site</a>
                        <button class="mx-1 my-2 btn btn-outline-secondary shadow-none dropdown-toggle clone-popover-btn" data-copy-text="${repo.cloneUrl}">Clone</button>
                        ${(data.reposConfig.repos[repo.name].defaultTemplateConfiguration?.homepageButtons || []).map((button) => {
                          return `<a class="mx-1 my-2 btn btn-outline-secondary shadow-none" href="${button.url}" ${button.newTab ? 'target="_blank"' : ''}>${button.text}${button.newTab ? ' <span>&#x29C9;</span>' : ''}</a>`
                        }).join('')}
                      </div>
                    </div>
                  `
                }).join('')}
              </div>
            </div>
          </div>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
        <script src="${data.reposPath}/frontend/main-frontend.bundle.js"></script>
      </body>
    </html>
  `
  }
}