Compare commits
No commits in common. "dev/julien/bootstrap" and "main" have entirely different histories.
dev/julien
...
main
7 changed files with 6 additions and 83 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,4 +3,3 @@ releases
|
||||||
collerd.db
|
collerd.db
|
||||||
!docker/collerd.json
|
!docker/collerd.json
|
||||||
collerd.json
|
collerd.json
|
||||||
node_modules
|
|
||||||
|
|
40
package-lock.json
generated
40
package-lock.json
generated
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"name": "coller",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"dependencies": {
|
|
||||||
"bootstrap": "^5.3.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@popperjs/core": {
|
|
||||||
"version": "2.11.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
|
|
||||||
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
|
|
||||||
"peer": true,
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/popperjs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/bootstrap": {
|
|
||||||
"version": "5.3.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz",
|
|
||||||
"integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/twbs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/bootstrap"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"peerDependencies": {
|
|
||||||
"@popperjs/core": "^2.11.8"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"dependencies": {
|
|
||||||
"bootstrap": "^5.3.8"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -34,7 +34,6 @@ The file format is **JSON**:
|
||||||
* **languages** ([]string): List of supported [languages](https://github.com/microsoft/monaco-editor/tree/main/src/basic-languages)
|
* **languages** ([]string): List of supported [languages](https://github.com/microsoft/monaco-editor/tree/main/src/basic-languages)
|
||||||
* **language** (string): Default language (default "text")
|
* **language** (string): Default language (default "text")
|
||||||
* **enable_upload_file_button** (bool): Display the upload file button in the UI (default true)
|
* **enable_upload_file_button** (bool): Display the upload file button in the UI (default true)
|
||||||
* **bootstrap_directory** (string): Serve [Bootstrap](https://getbootstrap.com/) assets from this local directory (ex: "./node_modules/bootstrap/dist"). See **Dependencies** for details.
|
|
||||||
|
|
||||||
The configuration file is not required but the service might not be exposed to the public.
|
The configuration file is not required but the service might not be exposed to the public.
|
||||||
|
|
||||||
|
@ -77,27 +76,4 @@ If the note is encrypted, the encrypted value is returned (application/octet-str
|
||||||
|
|
||||||
Errors return **500 Server Internal Error** with the **JSON** payload:
|
Errors return **500 Server Internal Error** with the **JSON** payload:
|
||||||
* **message** (string): context of the error
|
* **message** (string): context of the error
|
||||||
* **error** (string): error message
|
* **error** (string): error message
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
The web interface depends on:
|
|
||||||
|
|
||||||
- [Bootstrap](https://getbootstrap.com/)
|
|
||||||
- [Monaco Editor](https://github.com/microsoft/monaco-editor/)
|
|
||||||
|
|
||||||
By default, those dependencies are fetched from **remote CDN** services by the client.
|
|
||||||
|
|
||||||
If you would like to download them to serve them locally:
|
|
||||||
|
|
||||||
```
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
Then configure the local directories:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"bootstrap_directory": "./node_modules/bootstrap/dist"
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -26,7 +26,6 @@ type Config struct {
|
||||||
Languages []string `json:"languages"`
|
Languages []string `json:"languages"`
|
||||||
Language string `json:"language"`
|
Language string `json:"language"`
|
||||||
EnableUploadFileButton bool `json:"enable_upload_file_button"`
|
EnableUploadFileButton bool `json:"enable_upload_file_button"`
|
||||||
BootstrapDirectory string `json:"bootstrap_directory"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConfig() *Config {
|
func NewConfig() *Config {
|
||||||
|
|
|
@ -195,7 +195,6 @@ type PageData struct {
|
||||||
URL string
|
URL string
|
||||||
Note *Note
|
Note *Note
|
||||||
EnableUploadFileButton bool
|
EnableUploadFileButton bool
|
||||||
BootstrapDirectory string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type HomeHandler struct {
|
type HomeHandler struct {
|
||||||
|
@ -430,11 +429,10 @@ func (s *Server) Start() error {
|
||||||
"string": func(b []byte) string { return string(b) },
|
"string": func(b []byte) string { return string(b) },
|
||||||
}
|
}
|
||||||
p := PageData{
|
p := PageData{
|
||||||
Title: s.config.Title,
|
Title: s.config.Title,
|
||||||
Expirations: s.config.Expirations,
|
Expirations: s.config.Expirations,
|
||||||
Expiration: s.config.Expiration,
|
Expiration: s.config.Expiration,
|
||||||
Languages: s.config.Languages,
|
Languages: s.config.Languages,
|
||||||
BootstrapDirectory: s.config.BootstrapDirectory,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.config.ShowVersion {
|
if s.config.ShowVersion {
|
||||||
|
@ -471,10 +469,6 @@ func (s *Server) Start() error {
|
||||||
}
|
}
|
||||||
r.Path("/{id:[a-zA-Z0-9]+}.html").Handler(webNoteHandler).Methods("GET")
|
r.Path("/{id:[a-zA-Z0-9]+}.html").Handler(webNoteHandler).Methods("GET")
|
||||||
|
|
||||||
if s.config.BootstrapDirectory != "" {
|
|
||||||
r.PathPrefix("/static/bootstrap/").Handler(http.StripPrefix("/static/bootstrap/", http.FileServer(http.Dir(s.config.BootstrapDirectory))))
|
|
||||||
}
|
|
||||||
|
|
||||||
r.Path("/").Handler(&HomeHandler{Templates: templates, PageData: p}).Methods("GET")
|
r.Path("/").Handler(&HomeHandler{Templates: templates, PageData: p}).Methods("GET")
|
||||||
|
|
||||||
addr := fmt.Sprintf("%s:%d", s.config.ListenAddress, s.config.ListenPort)
|
addr := fmt.Sprintf("%s:%d", s.config.ListenAddress, s.config.ListenPort)
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
<title>{{.Title}}</title>
|
<title>{{.Title}}</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link href="{{if ne .BootstrapDirectory ``}}/static/bootstrap/css/bootstrap.min.css{{else}}https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css{{end}}" rel="stylesheet">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
{{end}}
|
{{end}}
|
Loading…
Add table
Add a link
Reference in a new issue