summaryrefslogtreecommitdiff
path: root/themes/blowfish/layouts/shortcodes/github.html
blob: 561469751de5fcfcb2a9ac8c94aafc56a5b0a529 (plain)
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
{{ $id := delimit (slice "github" (partial "functions/uid.html" .)) "-" }}
{{- $githubURL := print "https://api.github.com/repos/" (.Get "repo") -}}
{{- $githubData := resources.GetRemote $githubURL | transform.Unmarshal -}}
{{- $githubColors := .Site.Data.githubColors -}}
{{- with $githubData -}}

<a id="{{ $id }}" target="_blank" href="{{ .html_url }}" class="cursor-pointer">
  <div
    class="w-full md:w-auto pt-3 p-5 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl">

    <div class="flex items-center">
      <span class="text-2xl text-neutral-800 dark:text-neutral" style="margin-right:10px;">
        {{ partial "icon.html" "github" }}
      </span>
      <div
        id="{{ $id }}-full_name"
        class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
        {{ .full_name | markdownify }}
      </div>
    </div>

    <p id="{{ $id }}-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral">
      {{ .description | markdownify }}
    </p>

    <div class="m-0 mt-2 flex items-center">

      <span class="mr-1 inline-block h-3 w-3 rounded-full"
        style="background-color: {{ if .language }} {{- index $githubColors .language -}} {{ else }} #0077b6 {{ end }}"></span>
      <div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
        {{ if .language }} {{ .language }} {{ else }} null {{ end }}
      </div>

      <span class="text-md mr-1 text-neutral-800 dark:text-neutral">
        {{ partial "icon.html" "star" }}
      </span>
      <div id="{{ $id }}-stargazers" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
        {{ .stargazers_count }}
      </div>

      <span class="text-md mr-1 text-neutral-800 dark:text-neutral">
        {{ partial "icon.html" "fork" }}
      </span>
      <div id="{{ $id }}-forks" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
        {{ .forks }}
      </div>

    </div>

  </div>
  <script>
    fetch({{ $githubURL }}, {
      headers: new Headers({
        'User-agent': 'Mozilla/4.0 Custom User Agent'
      })
    })
      .then(response => response.json())
      .then(data => {
        document.getElementById('{{ $id }}-full_name').innerHTML = data.full_name;
        document.getElementById('{{ $id }}-description').innerHTML = data.description;
        document.getElementById('{{ $id }}-stargazers').innerHTML = data.stargazers_count;
        document.getElementById('{{ $id }}-forks').innerHTML = data.forks;
      })
      .catch(error => console.error(error))
  </script>
</a>
{{- end -}}