Compare commits
3 Commits
b0f83f9f61
...
eb331889bb
Author | SHA1 | Date |
---|---|---|
Maxim Lebedev | eb331889bb | |
Maxim Lebedev | f50889d95f | |
Maxim Lebedev | c5ee786b8e |
|
@ -62,8 +62,7 @@ func NewApp(logger *log.Logger, config *domain.Config) (*App, error) {
|
|||
// INFO(toby3d): any static file is public and unprotected by design, so it's safe to search it
|
||||
// first before deep down to any page or it's resource which might be secured by middleware or
|
||||
// something else.
|
||||
static, err := staticer.Do(r.Context(), strings.TrimPrefix(r.URL.Path, "/"))
|
||||
if err == nil {
|
||||
if static, err := staticer.Do(r.Context(), strings.TrimPrefix(r.URL.Path, "/")); err == nil {
|
||||
http.ServeContent(w, r, static.Name(), static.ModTime(), static)
|
||||
|
||||
return
|
||||
|
|
|
@ -11,4 +11,6 @@ const (
|
|||
MIMETextHTMLCharsetUTF8 string = MIMETextHTML + "; " + charsetUTF8
|
||||
)
|
||||
|
||||
const Und string = "und"
|
||||
|
||||
const charsetUTF8 string = "charset=UTF-8"
|
||||
|
|
|
@ -5,6 +5,8 @@ import (
|
|||
|
||||
"golang.org/x/text/language"
|
||||
"golang.org/x/text/language/display"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/common"
|
||||
)
|
||||
|
||||
type Language struct {
|
||||
|
@ -14,7 +16,7 @@ type Language struct {
|
|||
dir string
|
||||
}
|
||||
|
||||
var LanguageUnd Language = Language{}
|
||||
var LanguageUnd Language = Language{} // "und"
|
||||
|
||||
func NewLanguage(raw string) Language {
|
||||
tag, err := language.BCP47.Parse(raw)
|
||||
|
@ -60,7 +62,7 @@ func (l Language) String() string {
|
|||
return l.code
|
||||
}
|
||||
|
||||
return "und"
|
||||
return common.Und
|
||||
}
|
||||
|
||||
func (l Language) GoString() string {
|
||||
|
|
|
@ -3,6 +3,7 @@ package domain_test
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/common"
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
)
|
||||
|
||||
|
@ -13,10 +14,10 @@ func TestLanguage_Lang(t *testing.T) {
|
|||
input string
|
||||
expect string
|
||||
}{
|
||||
"2letter": {"en", "en"},
|
||||
"3letter": {"eng", "en"},
|
||||
"region": {"en-US", "en"},
|
||||
"und": {"", ""},
|
||||
"2letter": {"en", "en"},
|
||||
"3letter": {"eng", "en"},
|
||||
"region": {"en-US", "en"},
|
||||
common.Und: {"", ""},
|
||||
} {
|
||||
name, tc := name, tc
|
||||
|
||||
|
@ -37,10 +38,10 @@ func TestLanguage_Code(t *testing.T) {
|
|||
input string
|
||||
expect string
|
||||
}{
|
||||
"2letter": {"en", "en"},
|
||||
"3letter": {"eng", "en"},
|
||||
"region": {"en-US", "en-US"},
|
||||
"und": {"", ""},
|
||||
"2letter": {"en", "en"},
|
||||
"3letter": {"eng", "en"},
|
||||
"region": {"en-US", "en-US"},
|
||||
common.Und: {"", ""},
|
||||
} {
|
||||
name, tc := name, tc
|
||||
|
||||
|
@ -61,11 +62,11 @@ func TestLanguage_Dir(t *testing.T) {
|
|||
input string
|
||||
expect string
|
||||
}{
|
||||
"2letter": {"en", "ltr"},
|
||||
"rtl": {"ur", "rtl"},
|
||||
"3letter": {"eng", "ltr"},
|
||||
"region": {"en-US", "ltr"},
|
||||
"und": {"", ""},
|
||||
"2letter": {"en", "ltr"},
|
||||
"rtl": {"ur", "rtl"},
|
||||
"3letter": {"eng", "ltr"},
|
||||
"region": {"en-US", "ltr"},
|
||||
common.Und: {"", ""},
|
||||
} {
|
||||
name, tc := name, tc
|
||||
|
||||
|
@ -90,7 +91,7 @@ func TestLanguage_Name(t *testing.T) {
|
|||
"2letter": {"en", "english"},
|
||||
"3letter": {"eng", "english"},
|
||||
"region": {"en-US", "american english"},
|
||||
"und": {"", ""},
|
||||
common.Und: {"", ""},
|
||||
} {
|
||||
name, tc := name, tc
|
||||
|
||||
|
|
|
@ -10,10 +10,7 @@ type Redirect struct {
|
|||
}
|
||||
|
||||
func (r Redirect) IsMatch(p string) bool {
|
||||
matched, err := path.Match(r.From, p)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
matched, _ := path.Match(r.From, p)
|
||||
|
||||
return matched
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@ package domain
|
|||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/common"
|
||||
)
|
||||
|
||||
type ResourceType string
|
||||
|
@ -22,7 +24,7 @@ func (rt ResourceType) String() string {
|
|||
return string(rt)
|
||||
}
|
||||
|
||||
return "und"
|
||||
return common.Und
|
||||
}
|
||||
|
||||
func (rt ResourceType) GoString() string {
|
||||
|
|
|
@ -23,14 +23,14 @@ func TestDo(t *testing.T) {
|
|||
expect := &domain.Server{
|
||||
Headers: []domain.Header{{
|
||||
Path: "/**",
|
||||
Headers: map[string]string{
|
||||
Values: map[string]string{
|
||||
"Link": `<https://auth.example.com/>; rel="indieauth-metadata", ` +
|
||||
`<https://pub.example.com/>; rel="micropub"`,
|
||||
"X-Koroko": "Ya-ha-ha!",
|
||||
},
|
||||
}, {
|
||||
Path: "/foo/bar",
|
||||
Headers: map[string]string{
|
||||
Values: map[string]string{
|
||||
"X-Testing": `sample-text`,
|
||||
},
|
||||
}},
|
||||
|
|
12
main.go
12
main.go
|
@ -9,7 +9,6 @@ import (
|
|||
"errors"
|
||||
"flag"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
|
@ -24,17 +23,6 @@ import (
|
|||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
)
|
||||
|
||||
type (
|
||||
App struct {
|
||||
server *http.Server
|
||||
}
|
||||
|
||||
Context struct {
|
||||
Site *domain.Site
|
||||
Page *domain.Page
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
config = new(domain.Config)
|
||||
logger = log.New(os.Stdout, "home\t", log.Lmsgprefix|log.LstdFlags|log.LUTC)
|
||||
|
|
Loading…
Reference in New Issue