github.com/SmartMeshFoundation/Spectrum@v0.0.0-20220621030607-452a266fee1e/swarm/api/http/templates.go (about) 1 // Copyright 2017 The Spectrum Authors 2 // This file is part of the Spectrum library. 3 // 4 // The Spectrum library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The Spectrum library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the Spectrum library. If not, see <http://www.gnu.org/licenses/>. 16 17 package http 18 19 import ( 20 "html/template" 21 "path" 22 23 "github.com/SmartMeshFoundation/Spectrum/swarm/api" 24 ) 25 26 type htmlListData struct { 27 URI *api.URI 28 List *api.ManifestList 29 } 30 31 var htmlListTemplate = template.Must(template.New("html-list").Funcs(template.FuncMap{"basename": path.Base}).Parse(` 32 <!DOCTYPE html> 33 <html> 34 <head> 35 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 36 <meta name="viewport" content="width=device-width, initial-scale=1"> 37 <title>Swarm index of {{ .URI }}</title> 38 </head> 39 40 <body> 41 <h1>Swarm index of {{ .URI }}</h1> 42 <hr> 43 <table> 44 <thead> 45 <tr> 46 <th>Path</th> 47 <th>Type</th> 48 <th>Size</th> 49 </tr> 50 </thead> 51 52 <tbody> 53 {{ range .List.CommonPrefixes }} 54 <tr> 55 <td><a href="{{ basename . }}/">{{ basename . }}/</a></td> 56 <td>DIR</td> 57 <td>-</td> 58 </tr> 59 {{ end }} 60 61 {{ range .List.Entries }} 62 <tr> 63 <td><a href="{{ basename .Path }}">{{ basename .Path }}</a></td> 64 <td>{{ .ContentType }}</td> 65 <td>{{ .Size }}</td> 66 </tr> 67 {{ end }} 68 </table> 69 <hr> 70 </body> 71 `[1:]))