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
4a9f3a Tucker McKnight
4a9f3a Tucker McKnight
9e4c7e Tucker McKnight
4a9f3a Tucker McKnight
9e4c7e Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
9e4c7e Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
90eb8e Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
d71658 Tucker McKnight
eeb992 Tucker McKnight
7bbc3b Tucker McKnight
9e4c7e Tucker McKnight
7bbc3b Tucker McKnight
3f354c Tucker McKnight
3f354c Tucker McKnight
7bbc3b Tucker McKnight
9e4c7e Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
90eb8e Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
adb42d Tucker McKnight
3f354c Tucker McKnight
3f354c Tucker McKnight
3f354c Tucker McKnight
adb42d Tucker McKnight
3f354c Tucker McKnight
adb42d Tucker McKnight
adb42d Tucker McKnight
adb42d Tucker McKnight
adb42d Tucker McKnight
adb42d Tucker McKnight
7bbc3b Tucker McKnight
4a9f3a Tucker McKnight
7bbc3b Tucker McKnight
eeb992 Tucker McKnight
eeb992 Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
a2866c Tucker McKnight
7bbc3b Tucker McKnight
9e4c7e Tucker McKnight
7bbc3b Tucker McKnight
7bbc3b Tucker McKnight
95482f Tucker McKnight
95482f Tucker McKnight
import m from 'mithril'
import render from 'mithril-node-render'
import { NavHelper } from './helpers/nav.ts'

export default (reposConfig: any, eleventyConfig: any, data: any) => {
  const slugify = eleventyConfig.getFilter("slugify")

  const nav = NavHelper({
    reposConfig,
    slugify,
    currentRepoName: '',
    currentRefName: '',
    currentRefType: 'commit',
  })

  const pageContent = m('div', {class: "container"}, [
    m('div', {class: "row my-3"},
      m('div', {class: "col"},
        m('h1', data.reposConfig.defaultTemplate.allRepositoriesPageTitle)
      )
    ),
    m('div', {class: "row d-flex flex-wrap"},
      data.repos.map((repo) => {
        return (
          m('div', {class: "col", style: "flex-basis: 30rem;"},
            m('div', {class: "my-2 card bezel-gray flex-grow-1"},
              m('div', {class: "card-header"},
                m('a', {class: "card-title fs-5", href: nav.repoHomePath(repo.name)}, repo.name)
              ),
              m('div', {class: "card-body"}, [
                repo.description ? m('p', {class: "card-text"}, repo.description) : null,
                m('a', {
                  href: nav.repoHomePath(repo.name),
                  class: "ms-0 me-2 my-2 btn btn-primary text-white"
                }, 'Go to site'),
                (data.reposConfig.repos[repo.name].defaultTemplate.homepageButtons).map((button) => {
                  return m('a', {
                    class: "mx-1 my-2 btn btn-outline-secondary shadow-none",
                    href: button.url,
                    target: button.newTab ? '_blank' : '_self'
                  }, [button.text, button.newTab ? [' ', m('span', m.trust('⧉'))] : null])
                }),
              ]),
              m('div', {class: "card-footer"}, [
                m('span', { class: 'd-flex align-items-center mt-2' }, [
                  m('span', {class: 'me-1'}, 'Clone URL:'),
                  m('span', {class: 'clone overflow-scroll font-monospace flex-grow-1 flex-shrink-1'}, repo.cloneUrl),
                  m('button', {
                    class: 'btn btn-info shadow-none copy-button ms-1',
                    ['data-copy-text']: repo.cloneUrl,
                  }, 'Copy' )
                ])
              ])
            )
          )
        )
      })
    )
  ])

  return {
    rootPath: nav.rootPath(),
    pageTitle: 'Repositories',
    pageContent
  }
}