Monorepo for Tangled
tangled.org
1{{ define "repo/fragments/unifiedDiff" }}
2{{ $name := .Id }}
3<div class="overflow-x-auto font-mono leading-normal"><div class="overflow-x-auto"><div class="inline-flex flex-col min-w-full">{{- range .TextFragments -}}<span class="block bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 select-none text-center">···</span>
4 {{- $oldStart := .OldPosition -}}
5 {{- $newStart := .NewPosition -}}
6 {{- $lineNrStyle := "min-w-[3.5rem] flex-shrink-0 select-none text-right bg-white dark:bg-gray-800 target:bg-yellow-200 target:dark:bg-yellow-600" -}}
7 {{- $linkStyle := "text-gray-400 dark:text-gray-500 hover:underline" -}}
8 {{- $lineNrSepStyle1 := "" -}}
9 {{- $lineNrSepStyle2 := "pr-2 border-r border-gray-200 dark:border-gray-700" -}}
10 {{- $containerStyle := "inline-flex w-full items-center target:border target:rounded-sm target:border-yellow-200 target:dark:border-yellow-700 scroll-mt-20" -}}
11 {{- $addStyle := "bg-green-100 dark:bg-green-800/30 text-green-700 dark:text-green-400 " -}}
12 {{- $delStyle := "bg-red-100 dark:bg-red-800/30 text-red-700 dark:text-red-400 " -}}
13 {{- $ctxStyle := "bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400" -}}
14 {{- $opStyle := "w-5 flex-shrink-0 select-none text-center" -}}
15 {{- range .Lines -}}
16 {{- if eq .Op.String "+" -}}
17 <span class="{{ $addStyle }} {{ $containerStyle }}" id="{{$name}}-N{{$newStart}}">
18 <span class="{{$lineNrStyle}} {{$lineNrSepStyle1}}"><span aria-hidden="true" class="invisible">{{$newStart}}</span></span>
19 <span class="{{$lineNrStyle}} {{$lineNrSepStyle2}}"><a class="{{$linkStyle}}" href="#{{$name}}-N{{$newStart}}">{{ $newStart }}</a></span>
20 <span class="{{ $opStyle }}">{{ .Op.String }}</span>
21 <span class="px-2 whitespace-pre">{{ .Line }}</span>
22 </span>
23 {{- $newStart = add64 $newStart 1 -}}
24 {{- end -}}
25 {{- if eq .Op.String "-" -}}
26 <span class="{{ $delStyle }} {{ $containerStyle }}" id="{{$name}}-O{{$oldStart}}">
27 <span class="{{$lineNrStyle}} {{$lineNrSepStyle1}}"><a class="{{$linkStyle}}" href="#{{$name}}-O{{$oldStart}}">{{ $oldStart }}</a></span>
28 <span class="{{$lineNrStyle}} {{$lineNrSepStyle2}}"><span aria-hidden="true" class="invisible">{{$oldStart}}</span></span>
29 <span class="{{ $opStyle }}">{{ .Op.String }}</span>
30 <span class="px-2 whitespace-pre">{{ .Line }}</span>
31 </span>
32 {{- $oldStart = add64 $oldStart 1 -}}
33 {{- end -}}
34 {{- if eq .Op.String " " -}}
35 <span class="{{ $ctxStyle }} {{ $containerStyle }}" id="{{$name}}-O{{$oldStart}}-N{{$newStart}}">
36 <span class="{{$lineNrStyle}} {{$lineNrSepStyle1}}"><a class="{{$linkStyle}}" href="#{{$name}}-O{{$oldStart}}-N{{$newStart}}">{{ $oldStart }}</a></span>
37 <span class="{{$lineNrStyle}} {{$lineNrSepStyle2}}"><a class="{{$linkStyle}}" href="#{{$name}}-O{{$oldStart}}-N{{$newStart}}">{{ $newStart }}</a></span>
38 <span class="{{ $opStyle }}">{{ .Op.String }}</span>
39 <span class="px-2 whitespace-pre">{{ .Line }}</span>
40 </span>
41 {{- $newStart = add64 $newStart 1 -}}
42 {{- $oldStart = add64 $oldStart 1 -}}
43 {{- end -}}
44 {{- end -}}
45 {{- end -}}</div></div></div>
46{{ end }}