Skip to content

Commit 77681b5

Browse files
committed
improve text editor
1 parent b92b4fb commit 77681b5

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed

handlers/web/PreviewHandler.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"html/template"
55
"net/http"
66
"path"
7+
"path/filepath"
78
"strings"
89

910
"github.com/DataManager-Go/DataManagerServer/models"
@@ -75,13 +76,32 @@ func PrevievFileHandler(handlerData HandlerData, w http.ResponseWriter, r *http.
7576
Encrypted: (file.Encryption.Valid && libdm.EncryptionIValid(file.Encryption.Int32)),
7677
MimeType: file.FileType,
7778
Scheme: scheme,
79+
Lang: getLang(file.Name),
7880
}
7981

8082
//Serve preview
8183
LogError(servePreviewTemplate(handlerData.Config, w, templateData))
8284
return nil
8385
}
8486

87+
func getLang(ext string) string {
88+
ext = strings.ToLower(filepath.Ext(ext))
89+
if len(ext) < 2 {
90+
return ""
91+
}
92+
93+
if strings.HasPrefix(ext, ".") {
94+
ext = ext[1:]
95+
}
96+
97+
switch ext {
98+
case "go":
99+
return "golang"
100+
default:
101+
return ""
102+
}
103+
}
104+
85105
func servePreviewTemplate(config *models.Config, w http.ResponseWriter, data interface{}) error {
86106
PreviewFile := config.GetTemplateFile(PreviewFile)
87107
ContentFile := config.GetTemplateFile(ContentFile)

html/templates/Content.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
var newHeight =
4646
editor.getSession().getScreenLength()
4747
* editor.renderer.lineHeight
48-
+ editor.renderer.scrollBar.getWidth();
48+
+ editor.renderer.scrollBar.getWidth()+1;
4949

5050
$('#editor').height(newHeight.toString() + "px");
5151
$('#editor-section').height(newHeight.toString() + "px");

html/templates/Preview.html

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
position: absolute;
7878
display: inline;
7979
overflow-y: auto;
80-
overflow-x: hidden;
80+
overflow-x: none;
8181
width: 100%;
8282
}
8383

@@ -92,6 +92,7 @@
9292
bottom: 0;
9393
width: 100%;
9494
top: 100px;
95+
overflow-x: none;
9596
z-index: 0;
9697
}
9798

@@ -113,19 +114,30 @@
113114
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
114115
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
115116
}
117+
118+
body .ace_editor:hover .ace_scrollbar {
119+
display: none;
120+
}
116121
</style>
117122

118123
<!-- Text preview -->
119124
<script src="/static/preview/ace/ace.js" type="text/javascript" charset="utf-8"></script>
120125
<script src="/static/preview/ace/theme-nord_dark.js" type="text/javascript" charset="utf-8"></script>
121-
<script src="/static/preview/ace/mode-golang.js" type="text/javascript" charset="utf-8"></script>
122126
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
123127

128+
{{ if not (eq (len .Lang) 0) }}
129+
<script src="/static/preview/ace/mode-{{.Lang}}.js" type="text/javascript" charset="utf-8"></script>
130+
{{ end }}
131+
124132
<script>
125-
var SyntaxMode = ace.require("ace/mode/golang").Mode;
133+
var lang = "{{.Lang}}";
126134
var editor = ace.edit("editor");
135+
127136
editor.setTheme("ace/theme/nord_dark");
128-
editor.session.setMode(new SyntaxMode());
137+
if (lang.length != 0) {
138+
var SyntaxMode = ace.require("ace/mode/" + lang).Mode;
139+
editor.session.setMode(new SyntaxMode());
140+
}
129141
</script>
130142
{{ end }}
131143

models/Preview.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type PreviewTemplate struct {
3636
Encrypted bool
3737
MimeType string
3838
Scheme string
39+
Lang string
3940
}
4041

4142
// PreviewTypeFromMime get Type to preview from mime

0 commit comments

Comments
 (0)