@@ -19,7 +19,6 @@ import (
19
19
20
20
"github.com/dustin/go-humanize"
21
21
"github.com/go-chi/chi/v5"
22
- "github.com/topi314/chroma/v2/lexers"
23
22
"github.com/topi314/tint"
24
23
25
24
"github.com/topi314/gobin/v2/internal/ezhttp"
@@ -103,7 +102,7 @@ func (s *Server) DocumentVersions(w http.ResponseWriter, r *http.Request) {
103
102
for i , file := range dbFiles {
104
103
var formatted string
105
104
if withContent {
106
- formatted , err = s .formatFile (file , s .htmlRenderer , theme )
105
+ formatted , err = s .formatFile (r . Context (), file , s .htmlRenderer , theme )
107
106
if err != nil {
108
107
s .error (w , r , err )
109
108
return
@@ -171,7 +170,7 @@ func (s *Server) GetPrettyDocument(w http.ResponseWriter, r *http.Request) {
171
170
)
172
171
templateFiles := make ([]templates.File , len (document .Files ))
173
172
for i , file := range document .Files {
174
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
173
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
175
174
if err != nil {
176
175
s .prettyError (w , r , err )
177
176
return
@@ -230,10 +229,10 @@ func (s *Server) GetPrettyDocument(w http.ResponseWriter, r *http.Request) {
230
229
TotalLength : totalLength ,
231
230
Versions : templateVersions ,
232
231
233
- Lexers : lexers . Names ( false ),
234
- Styles : s .themes ,
235
- Style : theme .Name ,
236
- Theme : theme .ColorScheme ,
232
+ Languages : getLanguageNames ( ),
233
+ Styles : s .themes ,
234
+ Style : theme .Name ,
235
+ Theme : theme .ColorScheme ,
237
236
238
237
Max : s .cfg .MaxDocumentSize ,
239
238
Host : r .Host ,
@@ -258,13 +257,10 @@ func (s *Server) GetDocument(w http.ResponseWriter, r *http.Request) {
258
257
for _ , file := range document .Files {
259
258
if strings .EqualFold (file .Name , fileName ) {
260
259
if language := r .URL .Query ().Get ("language" ); language != "" {
261
- lexer := lexers .Get (language )
262
- if lexer != nil {
263
- file .Language = lexer .Config ().Name
264
- }
260
+ file .Language = getLanguageFallback (language ).Config .Name
265
261
}
266
262
267
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
263
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
268
264
if err != nil {
269
265
s .error (w , r , err )
270
266
return
@@ -288,7 +284,7 @@ func (s *Server) GetDocument(w http.ResponseWriter, r *http.Request) {
288
284
Files : make ([]ResponseFile , len (document .Files )),
289
285
}
290
286
for i , file := range document .Files {
291
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
287
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
292
288
if err != nil {
293
289
s .error (w , r , err )
294
290
return
@@ -316,7 +312,7 @@ func (s *Server) GetRawDocument(w http.ResponseWriter, r *http.Request) {
316
312
if len (document .Files ) == 1 {
317
313
file := document .Files [0 ]
318
314
319
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
315
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
320
316
if err != nil {
321
317
s .error (w , r , fmt .Errorf ("failed to render raw document: %w" , err ))
322
318
return
@@ -330,11 +326,8 @@ func (s *Server) GetRawDocument(w http.ResponseWriter, r *http.Request) {
330
326
"filename" : fileName ,
331
327
}))
332
328
333
- lexer := lexers .Get (file .Language )
334
- if lexer == nil {
335
- lexer = lexers .Fallback
336
- }
337
- w .Header ().Set (ezhttp .HeaderLanguage , lexer .Config ().Name )
329
+ language := getLanguageFallback (file .Language )
330
+ w .Header ().Set (ezhttp .HeaderLanguage , language .Config .Name )
338
331
339
332
w .Header ().Set (ezhttp .HeaderContentType , contentType )
340
333
if _ , err = w .Write ([]byte (formatted )); err != nil {
@@ -345,7 +338,7 @@ func (s *Server) GetRawDocument(w http.ResponseWriter, r *http.Request) {
345
338
346
339
mpw := multipart .NewWriter (w )
347
340
for i , file := range document .Files {
348
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
341
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
349
342
if err != nil {
350
343
s .error (w , r , fmt .Errorf ("failed to render raw document: %w" , err ))
351
344
return
@@ -357,7 +350,7 @@ func (s *Server) GetRawDocument(w http.ResponseWriter, r *http.Request) {
357
350
"filename" : file .Name ,
358
351
}))
359
352
360
- language := getLanguage (file .Language )
353
+ language := getLanguageFallback (file .Language )
361
354
362
355
headers .Set (ezhttp .HeaderLanguage , language .Highlight .LanguageName )
363
356
headers .Set (ezhttp .HeaderContentType , ezhttp .ContentTypeHTML )
@@ -480,13 +473,10 @@ func (s *Server) GetDocumentFile(w http.ResponseWriter, r *http.Request) {
480
473
theme := getTheme (r )
481
474
482
475
if language := r .URL .Query ().Get ("language" ); language != "" {
483
- lexer := lexers .Get (language )
484
- if lexer != nil {
485
- file .Language = lexer .Config ().Name
486
- }
476
+ file .Language = getLanguageFallback (language ).Config .Name
487
477
}
488
478
489
- formatted , err := s .formatFile (* file , s .htmlRenderer , theme )
479
+ formatted , err := s .formatFile (r . Context (), * file , s .htmlRenderer , theme )
490
480
if err != nil {
491
481
s .error (w , r , err )
492
482
return
@@ -509,13 +499,10 @@ func (s *Server) GetRawDocumentFile(w http.ResponseWriter, r *http.Request) {
509
499
510
500
theme := getTheme (r )
511
501
512
- lexer := lexers .Get (file .Language )
513
- if lexer == nil {
514
- lexer = lexers .Fallback
515
- }
516
- w .Header ().Set (ezhttp .HeaderLanguage , lexer .Config ().Name )
502
+ language := getLanguageFallback (file .Language )
503
+ w .Header ().Set (ezhttp .HeaderLanguage , language .Config .Name )
517
504
518
- formatted , err := s .formatFile (* file , s .htmlRenderer , theme )
505
+ formatted , err := s .formatFile (r . Context (), * file , s .htmlRenderer , theme )
519
506
if err != nil {
520
507
s .error (w , r , fmt .Errorf ("failed to render raw document: %w" , err ))
521
508
return
@@ -607,7 +594,7 @@ func (s *Server) PostDocument(w http.ResponseWriter, r *http.Request) {
607
594
608
595
var rsFiles []ResponseFile
609
596
for _ , file := range dbFiles {
610
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
597
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
611
598
if err != nil {
612
599
s .error (w , r , err )
613
600
return
@@ -675,7 +662,7 @@ func (s *Server) PatchDocument(w http.ResponseWriter, r *http.Request) {
675
662
676
663
var rsFiles []ResponseFile
677
664
for _ , file := range dbFiles {
678
- formatted , err := s .formatFile (file , s .htmlRenderer , theme )
665
+ formatted , err := s .formatFile (r . Context (), file , s .htmlRenderer , theme )
679
666
if err != nil {
680
667
s .error (w , r , err )
681
668
return
0 commit comments