Compare commits
No commits in common. "master" and "query_middle_table" have entirely different histories.
master
...
query_midd
6
.gitignore
vendored
|
@ -1,7 +1,5 @@
|
||||||
.idea
|
.idea
|
||||||
/wp-go.iml
|
wp-go.iml
|
||||||
/config.yaml
|
config.yaml
|
||||||
err.log
|
err.log
|
||||||
/plugins/
|
/plugins/
|
||||||
/config.json
|
|
||||||
go.sum
|
|
|
@ -1,7 +1,8 @@
|
||||||
FROM golang:1.22.2-alpine as gobulidIso
|
FROM golang:latest as gobulidIso
|
||||||
COPY ./ /go/src/wp-go
|
COPY ./ /go/src/wp-go
|
||||||
WORKDIR /go/src/wp-go
|
WORKDIR /go/src/wp-go
|
||||||
RUN go build -ldflags "-w" -tags netgo -o wp-go app/cmd/main.go
|
ENV GOPROXY="https://goproxy.cn"
|
||||||
|
RUN go build -ldflags "-w" -tags netgo -o wp-go internal/cmd/main.go
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
WORKDIR /opt/wp-go
|
WORKDIR /opt/wp-go
|
||||||
|
|
16
README.md
|
@ -20,11 +20,6 @@
|
||||||
- kill -SIGUSR1 PID 更新配置和清空缓存
|
- kill -SIGUSR1 PID 更新配置和清空缓存
|
||||||
- kill -SIGUSR2 PID 清空缓存
|
- kill -SIGUSR2 PID 清空缓存
|
||||||
|
|
||||||
#### 运行
|
|
||||||
```
|
|
||||||
go run app/cmd/main.go [-c configpath] [-p port]
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 数据显示支持程度
|
#### 数据显示支持程度
|
||||||
|
|
||||||
| 页表 | 支持程度 |
|
| 页表 | 支持程度 |
|
||||||
|
@ -53,9 +48,7 @@ go run app/cmd/main.go [-c configpath] [-p port]
|
||||||
- 博客页面至多显示数量
|
- 博客页面至多显示数量
|
||||||
- Feed中显示最近数量
|
- Feed中显示最近数量
|
||||||
- 讨论
|
- 讨论
|
||||||
- 其他评论设置
|
- 其他评论设置-启用评论嵌套,最多嵌套层数
|
||||||
- `启用|禁止`评论嵌套,最多嵌套层数
|
|
||||||
- 分页显示评论,每页显示评论条数,默认显示`最前/后`页
|
|
||||||
- 在每个页面顶部显示 `新旧`评论
|
- 在每个页面顶部显示 `新旧`评论
|
||||||
|
|
||||||
#### 主题支持程度
|
#### 主题支持程度
|
||||||
|
@ -64,7 +57,7 @@ go run app/cmd/main.go [-c configpath] [-p port]
|
||||||
|---------------|-----------------|
|
|---------------|-----------------|
|
||||||
| 站点身份 | 站点身份 |
|
| 站点身份 | 站点身份 |
|
||||||
| 颜色 | 颜色 |
|
| 颜色 | 颜色 |
|
||||||
| 页眉图片 | 页眉媒体 |
|
| 页眉图片 | 页眉媒体 (暂不支持视频) |
|
||||||
| 背景图片 | 额外css |
|
| 背景图片 | 额外css |
|
||||||
| 额外css | |
|
| 额外css | |
|
||||||
|
|
||||||
|
@ -80,8 +73,3 @@ go run app/cmd/main.go [-c configpath] [-p port]
|
||||||
#### 其它
|
#### 其它
|
||||||
|
|
||||||
用的gin框架和sqlx,在外面封装了层查询的方法。
|
用的gin框架和sqlx,在外面封装了层查询的方法。
|
||||||
|
|
||||||
#### 鸣谢
|
|
||||||
|
|
||||||
<a href="https://jb.gg/OpenSourceSupport"><img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" alt="JetBrains Logo (Main) logo." width="30%"></a>
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ import (
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
"github.com/fthvgb1/wp-go/app/wpconfig"
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/go-playground/validator/v10"
|
"github.com/go-playground/validator/v10"
|
||||||
"io"
|
"io"
|
||||||
|
@ -78,7 +77,7 @@ func PostComment(c *gin.Context) {
|
||||||
}
|
}
|
||||||
req.Host = home.Host
|
req.Host = home.Host
|
||||||
res, err := cli.Do(req)
|
res, err := cli.Do(req)
|
||||||
if err != nil && !errors.Is(err, http.ErrUseLastResponse) {
|
if err != nil && err != http.ErrUseLastResponse {
|
||||||
logs.Error(err, "请求评论接口错误")
|
logs.Error(err, "请求评论接口错误")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -111,9 +110,6 @@ func PostComment(c *gin.Context) {
|
||||||
}
|
}
|
||||||
cc := c.Copy()
|
cc := c.Copy()
|
||||||
go func() {
|
go func() {
|
||||||
if gin.Mode() != gin.ReleaseMode {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
id := comment.CommentPostId
|
id := comment.CommentPostId
|
||||||
if id <= 0 {
|
if id <= 0 {
|
||||||
logs.Error(errors.New("获取文档id错误"), "", comment.CommentPostId)
|
logs.Error(errors.New("获取文档id错误"), "", comment.CommentPostId)
|
||||||
|
@ -134,15 +130,8 @@ func PostComment(c *gin.Context) {
|
||||||
err = er
|
err = er
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
uuu := ""
|
|
||||||
uu, _ := url.Parse(res.Header.Get("Location"))
|
|
||||||
if up.RawQuery != "" {
|
|
||||||
cache.NewCommentCache().Set(c, up.RawQuery, string(s))
|
cache.NewCommentCache().Set(c, up.RawQuery, string(s))
|
||||||
uuu = str.Join(uu.Path, "?", uu.RawQuery)
|
c.Redirect(http.StatusFound, res.Header.Get("Location"))
|
||||||
} else {
|
|
||||||
uuu = str.Join(uu.Path)
|
|
||||||
}
|
|
||||||
c.Redirect(http.StatusFound, uuu)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var r io.Reader
|
var r io.Reader
|
||||||
|
|
|
@ -10,30 +10,6 @@ import (
|
||||||
|
|
||||||
var tmp = "Mon, 02 Jan 2006 15:04:05 GMT"
|
var tmp = "Mon, 02 Jan 2006 15:04:05 GMT"
|
||||||
|
|
||||||
func Feed(c *gin.Context) {
|
|
||||||
v, ok := c.GetQuery("feed")
|
|
||||||
if !ok || v == "" {
|
|
||||||
c.Next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
switch v {
|
|
||||||
case "rss2":
|
|
||||||
p, ok := c.GetQuery("p")
|
|
||||||
if ok && p != "" {
|
|
||||||
c.AddParam("id", p)
|
|
||||||
PostFeed(c)
|
|
||||||
} else {
|
|
||||||
SiteFeed(c)
|
|
||||||
}
|
|
||||||
c.Abort()
|
|
||||||
return
|
|
||||||
case "comments-rss2":
|
|
||||||
CommentsFeed(c)
|
|
||||||
c.Abort()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func isCacheExpired(c *gin.Context, lastTime time.Time) bool {
|
func isCacheExpired(c *gin.Context, lastTime time.Time) bool {
|
||||||
eTag := str.Md5(lastTime.Format(tmp))
|
eTag := str.Md5(lastTime.Format(tmp))
|
||||||
since := c.Request.Header.Get("If-Modified-Since")
|
since := c.Request.Header.Get("If-Modified-Since")
|
||||||
|
@ -48,21 +24,20 @@ func isCacheExpired(c *gin.Context, lastTime time.Time) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func SiteFeed(c *gin.Context) {
|
func Feed(c *gin.Context) {
|
||||||
feed := cache.FeedCache()
|
if !isCacheExpired(c, cache.FeedCache().GetLastSetTime()) {
|
||||||
if !isCacheExpired(c, feed.GetLastSetTime(c)) {
|
|
||||||
c.Status(http.StatusNotModified)
|
c.Status(http.StatusNotModified)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
r, err := feed.GetCache(c, time.Second, c)
|
r, err := cache.FeedCache().GetCache(c, time.Second, c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Status(http.StatusInternalServerError)
|
c.Status(http.StatusInternalServerError)
|
||||||
c.Abort()
|
c.Abort()
|
||||||
c.Error(err)
|
c.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setFeed(r[0], c, feed.GetLastSetTime(c))
|
setFeed(r[0], c, cache.FeedCache().GetLastSetTime())
|
||||||
}
|
}
|
||||||
|
|
||||||
func setFeed(s string, c *gin.Context, t time.Time) {
|
func setFeed(s string, c *gin.Context, t time.Time) {
|
||||||
|
@ -76,33 +51,31 @@ func setFeed(s string, c *gin.Context, t time.Time) {
|
||||||
|
|
||||||
func PostFeed(c *gin.Context) {
|
func PostFeed(c *gin.Context) {
|
||||||
id := c.Param("id")
|
id := c.Param("id")
|
||||||
postFeed := cache.PostFeedCache()
|
if !isCacheExpired(c, cache.PostFeedCache().GetLastSetTime(c, id)) {
|
||||||
if !isCacheExpired(c, postFeed.GetLastSetTime(c, id)) {
|
|
||||||
c.Status(http.StatusNotModified)
|
c.Status(http.StatusNotModified)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
s, err := postFeed.GetCache(c, id, time.Second)
|
s, err := cache.PostFeedCache().GetCache(c, id, time.Second, c, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Status(http.StatusInternalServerError)
|
c.Status(http.StatusInternalServerError)
|
||||||
c.Abort()
|
c.Abort()
|
||||||
c.Error(err)
|
c.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setFeed(s, c, postFeed.GetLastSetTime(c, id))
|
setFeed(s, c, cache.PostFeedCache().GetLastSetTime(c, id))
|
||||||
}
|
}
|
||||||
|
|
||||||
func CommentsFeed(c *gin.Context) {
|
func CommentsFeed(c *gin.Context) {
|
||||||
feed := cache.CommentsFeedCache()
|
if !isCacheExpired(c, cache.CommentsFeedCache().GetLastSetTime()) {
|
||||||
if !isCacheExpired(c, feed.GetLastSetTime(c)) {
|
|
||||||
c.Status(http.StatusNotModified)
|
c.Status(http.StatusNotModified)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
r, err := feed.GetCache(c, time.Second, c)
|
r, err := cache.CommentsFeedCache().GetCache(c, time.Second, c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Status(http.StatusInternalServerError)
|
c.Status(http.StatusInternalServerError)
|
||||||
c.Abort()
|
c.Abort()
|
||||||
c.Error(err)
|
c.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setFeed(r[0], c, feed.GetLastSetTime(c))
|
setFeed(r[0], c, cache.CommentsFeedCache().GetLastSetTime())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package actions
|
package actions
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/fthvgb1/wp-go/app/pkg/constraints"
|
||||||
"github.com/fthvgb1/wp-go/app/theme"
|
"github.com/fthvgb1/wp-go/app/theme"
|
||||||
"github.com/fthvgb1/wp-go/app/theme/wp"
|
"github.com/fthvgb1/wp-go/app/theme/wp"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
@ -8,8 +9,18 @@ import (
|
||||||
|
|
||||||
func ThemeHook(scene string) func(*gin.Context) {
|
func ThemeHook(scene string) func(*gin.Context) {
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
t := theme.GetCurrentTheme()
|
s := scene
|
||||||
h := wp.NewHandle(c, scene, t)
|
if scene == constraints.Home {
|
||||||
|
if _, ok := c.GetQuery("s"); ok {
|
||||||
|
s = constraints.Search
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t := theme.GetCurrentTemplateName()
|
||||||
|
h := wp.NewHandle(c, s, t)
|
||||||
|
h.Index = wp.NewIndexHandle(h)
|
||||||
|
h.Detail = wp.NewDetailHandle(h)
|
||||||
|
templ, _ := theme.GetTemplate(t)
|
||||||
|
h.SetTemplate(templ)
|
||||||
theme.Hook(t, h)
|
theme.Hook(t, h)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
53
app/cmd/cachemanager/flush.go
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
package cachemanager
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"github.com/fthvgb1/wp-go/cache"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ctx = context.Background()
|
||||||
|
|
||||||
|
type flush interface {
|
||||||
|
Flush(ctx context.Context)
|
||||||
|
}
|
||||||
|
|
||||||
|
type clear interface {
|
||||||
|
ClearExpired(ctx context.Context)
|
||||||
|
}
|
||||||
|
|
||||||
|
var clears []clear
|
||||||
|
|
||||||
|
var flushes []flush
|
||||||
|
|
||||||
|
func Flush() {
|
||||||
|
for _, f := range flushes {
|
||||||
|
f.Flush(ctx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func MapCacheBy[K comparable, V any](fn func(...any) (V, error), expireTime time.Duration) *cache.MapCache[K, V] {
|
||||||
|
m := cache.NewMemoryMapCacheByFn[K, V](fn, expireTime)
|
||||||
|
FlushPush(m)
|
||||||
|
ClearPush(m)
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
func MapBatchCacheBy[K comparable, V any](fn func(...any) (map[K]V, error), expireTime time.Duration) *cache.MapCache[K, V] {
|
||||||
|
m := cache.NewMemoryMapCacheByBatchFn[K, V](fn, expireTime)
|
||||||
|
FlushPush(m)
|
||||||
|
ClearPush(m)
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func FlushPush(f ...flush) {
|
||||||
|
flushes = append(flushes, f...)
|
||||||
|
}
|
||||||
|
func ClearPush(c ...clear) {
|
||||||
|
clears = append(clears, c...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClearExpired() {
|
||||||
|
for _, c := range clears {
|
||||||
|
c.ClearExpired(ctx)
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,21 +3,25 @@ package main
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/ossigns"
|
"github.com/fthvgb1/wp-go/app/cmd/cachemanager"
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/reload"
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/route"
|
||||||
|
"github.com/fthvgb1/wp-go/app/mail"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/cache"
|
"github.com/fthvgb1/wp-go/app/pkg/cache"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/db"
|
"github.com/fthvgb1/wp-go/app/pkg/db"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/plugins"
|
"github.com/fthvgb1/wp-go/app/plugins"
|
||||||
"github.com/fthvgb1/wp-go/app/plugins/wphandle"
|
"github.com/fthvgb1/wp-go/app/plugins/wphandle"
|
||||||
"github.com/fthvgb1/wp-go/app/route"
|
|
||||||
"github.com/fthvgb1/wp-go/app/theme"
|
"github.com/fthvgb1/wp-go/app/theme"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
"github.com/fthvgb1/wp-go/app/wpconfig"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/model"
|
"github.com/fthvgb1/wp-go/model"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"os/signal"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,8 +29,8 @@ var confPath string
|
||||||
var address string
|
var address string
|
||||||
var intReg = regexp.MustCompile(`^\d`)
|
var intReg = regexp.MustCompile(`^\d`)
|
||||||
|
|
||||||
func inits() {
|
func init() {
|
||||||
flag.StringVar(&confPath, "c", "config.yaml", "config file support json,yaml or url")
|
flag.StringVar(&confPath, "c", "config.yaml", "config file")
|
||||||
flag.StringVar(&address, "p", "", "listen address and port")
|
flag.StringVar(&address, "p", "", "listen address and port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
if address == "" && os.Getenv("PORT") == "" {
|
if address == "" && os.Getenv("PORT") == "" {
|
||||||
|
@ -85,16 +89,54 @@ func cronClearCache() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func flushCache() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
fmt.Println(r)
|
err := mail.SendMail([]string{config.GetConfig().Mail.User}, "清空缓存失败", fmt.Sprintf("err:[%s]", r))
|
||||||
os.Exit(1)
|
logs.IfError(err, "发邮件失败")
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
inits()
|
cachemanager.Flush()
|
||||||
ossigns.SetConfPath(confPath)
|
log.Println("all cache flushed")
|
||||||
go ossigns.SignalNotify()
|
}
|
||||||
|
|
||||||
|
func reloads() {
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
log.Println(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
err := config.InitConfig(confPath)
|
||||||
|
logs.IfError(err, "获取配置文件失败", confPath)
|
||||||
|
err = logs.InitLogger()
|
||||||
|
logs.IfError(err, "日志配置错误")
|
||||||
|
_, err = db.InitDb()
|
||||||
|
logs.IfError(err, "重新读取db失败", config.GetConfig().Mysql)
|
||||||
|
err = wpconfig.InitOptions()
|
||||||
|
logs.IfError(err, "获取网站设置WpOption失败")
|
||||||
|
err = wpconfig.InitTerms()
|
||||||
|
logs.IfError(err, "获取WpTerms表失败")
|
||||||
|
wphandle.LoadPlugins()
|
||||||
|
reload.Reload()
|
||||||
|
flushCache()
|
||||||
|
log.Println("reload complete")
|
||||||
|
}
|
||||||
|
|
||||||
|
func signalNotify() {
|
||||||
|
c := make(chan os.Signal)
|
||||||
|
signal.Notify(c, syscall.SIGUSR1, syscall.SIGUSR2)
|
||||||
|
for {
|
||||||
|
switch <-c {
|
||||||
|
case syscall.SIGUSR1:
|
||||||
|
go reloads()
|
||||||
|
case syscall.SIGUSR2:
|
||||||
|
go flushCache()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
go signalNotify()
|
||||||
Gin := route.SetupRouter()
|
Gin := route.SetupRouter()
|
||||||
c := config.GetConfig()
|
c := config.GetConfig()
|
||||||
if c.Ssl.Key != "" && c.Ssl.Cert != "" {
|
if c.Ssl.Key != "" && c.Ssl.Cert != "" {
|
||||||
|
|
183
app/cmd/reload/reload.go
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
package reload
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fthvgb1/wp-go/helper/number"
|
||||||
|
"github.com/fthvgb1/wp-go/safety"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
var calls []func()
|
||||||
|
|
||||||
|
var anyMap = safety.NewMap[string, any]()
|
||||||
|
|
||||||
|
type safetyVar[T, A any] struct {
|
||||||
|
Val *safety.Var[val[T]]
|
||||||
|
mutex sync.Mutex
|
||||||
|
}
|
||||||
|
type val[T any] struct {
|
||||||
|
v T
|
||||||
|
ok bool
|
||||||
|
counter number.Counter[int]
|
||||||
|
}
|
||||||
|
type safetyMap[K comparable, V, A any] struct {
|
||||||
|
val *safety.Map[K, V]
|
||||||
|
mutex sync.Mutex
|
||||||
|
}
|
||||||
|
|
||||||
|
var safetyMaps = safety.NewMap[string, any]()
|
||||||
|
var safetyMapLock = sync.Mutex{}
|
||||||
|
|
||||||
|
func GetAnyMapFnBys[K comparable, V, A any](namespace string, fn func(A) V) func(key K, args A) V {
|
||||||
|
m := safetyMapFn[K, V, A](namespace)
|
||||||
|
return func(key K, a A) V {
|
||||||
|
v, ok := m.val.Load(key)
|
||||||
|
if ok {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
m.mutex.Lock()
|
||||||
|
v, ok = m.val.Load(key)
|
||||||
|
if ok {
|
||||||
|
m.mutex.Unlock()
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
v = fn(a)
|
||||||
|
m.val.Store(key, v)
|
||||||
|
m.mutex.Unlock()
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func safetyMapFn[K comparable, V, A any](namespace string) *safetyMap[K, V, A] {
|
||||||
|
vv, ok := safetyMaps.Load(namespace)
|
||||||
|
var m *safetyMap[K, V, A]
|
||||||
|
if ok {
|
||||||
|
m = vv.(*safetyMap[K, V, A])
|
||||||
|
} else {
|
||||||
|
safetyMapLock.Lock()
|
||||||
|
vv, ok = safetyMaps.Load(namespace)
|
||||||
|
if ok {
|
||||||
|
m = vv.(*safetyMap[K, V, A])
|
||||||
|
} else {
|
||||||
|
m = &safetyMap[K, V, A]{safety.NewMap[K, V](), sync.Mutex{}}
|
||||||
|
Push(func() {
|
||||||
|
m.val.Flush()
|
||||||
|
})
|
||||||
|
safetyMaps.Store(namespace, m)
|
||||||
|
}
|
||||||
|
safetyMapLock.Unlock()
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAnyValMapBy[K comparable, V, A any](namespace string, key K, a A, fn func(A) V) V {
|
||||||
|
m := safetyMapFn[K, V, A](namespace)
|
||||||
|
v, ok := m.val.Load(key)
|
||||||
|
if ok {
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
m.mutex.Lock()
|
||||||
|
v, ok = m.val.Load(key)
|
||||||
|
if ok {
|
||||||
|
m.mutex.Unlock()
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
v = fn(a)
|
||||||
|
m.val.Store(key, v)
|
||||||
|
m.mutex.Unlock()
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
func anyVal[T, A any](namespace string, counter bool) *safetyVar[T, A] {
|
||||||
|
var vv *safetyVar[T, A]
|
||||||
|
vvv, ok := safetyMaps.Load(namespace)
|
||||||
|
if ok {
|
||||||
|
vv = vvv.(*safetyVar[T, A])
|
||||||
|
} else {
|
||||||
|
safetyMapLock.Lock()
|
||||||
|
vvv, ok = safetyMaps.Load(namespace)
|
||||||
|
if ok {
|
||||||
|
vv = vvv.(*safetyVar[T, A])
|
||||||
|
} else {
|
||||||
|
v := val[T]{}
|
||||||
|
if counter {
|
||||||
|
v.counter = number.Counters[int]()
|
||||||
|
}
|
||||||
|
vv = &safetyVar[T, A]{safety.NewVar(v), sync.Mutex{}}
|
||||||
|
Push(func() {
|
||||||
|
vv.Val.Flush()
|
||||||
|
})
|
||||||
|
safetyMaps.Store(namespace, vv)
|
||||||
|
}
|
||||||
|
safetyMapLock.Unlock()
|
||||||
|
}
|
||||||
|
return vv
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAnyValBy[T, A any](namespace string, tryTimes int, a A, fn func(A) (T, bool)) T {
|
||||||
|
var vv = anyVal[T, A](namespace, true)
|
||||||
|
var ok bool
|
||||||
|
v := vv.Val.Load()
|
||||||
|
if v.ok {
|
||||||
|
return v.v
|
||||||
|
}
|
||||||
|
vv.mutex.Lock()
|
||||||
|
v = vv.Val.Load()
|
||||||
|
if v.ok {
|
||||||
|
vv.mutex.Unlock()
|
||||||
|
return v.v
|
||||||
|
}
|
||||||
|
v.v, ok = fn(a)
|
||||||
|
times := v.counter()
|
||||||
|
if ok || times >= tryTimes {
|
||||||
|
v.ok = true
|
||||||
|
vv.Val.Store(v)
|
||||||
|
}
|
||||||
|
vv.mutex.Unlock()
|
||||||
|
return v.v
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAnyValBys[T, A any](namespace string, a A, fn func(A) T) T {
|
||||||
|
var vv = anyVal[T, A](namespace, false)
|
||||||
|
v := vv.Val.Load()
|
||||||
|
if v.ok {
|
||||||
|
return v.v
|
||||||
|
}
|
||||||
|
vv.mutex.Lock()
|
||||||
|
v = vv.Val.Load()
|
||||||
|
if v.ok {
|
||||||
|
vv.mutex.Unlock()
|
||||||
|
return v.v
|
||||||
|
}
|
||||||
|
v.v = fn(a)
|
||||||
|
v.ok = true
|
||||||
|
vv.Val.Store(v)
|
||||||
|
vv.mutex.Unlock()
|
||||||
|
return v.v
|
||||||
|
}
|
||||||
|
|
||||||
|
func Vars[T any](defaults T) *safety.Var[T] {
|
||||||
|
ss := safety.NewVar(defaults)
|
||||||
|
calls = append(calls, func() {
|
||||||
|
ss.Store(defaults)
|
||||||
|
})
|
||||||
|
return ss
|
||||||
|
}
|
||||||
|
func VarsBy[T any](fn func() T) *safety.Var[T] {
|
||||||
|
ss := safety.NewVar(fn())
|
||||||
|
calls = append(calls, func() {
|
||||||
|
ss.Store(fn())
|
||||||
|
})
|
||||||
|
return ss
|
||||||
|
}
|
||||||
|
|
||||||
|
func Push(fn ...func()) {
|
||||||
|
calls = append(calls, fn...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Reload() {
|
||||||
|
for _, call := range calls {
|
||||||
|
call()
|
||||||
|
}
|
||||||
|
anyMap.Flush()
|
||||||
|
safetyMaps.Flush()
|
||||||
|
}
|
102
app/cmd/route/route.go
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
package route
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fthvgb1/wp-go/app/actions"
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/reload"
|
||||||
|
"github.com/fthvgb1/wp-go/app/middleware"
|
||||||
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
|
"github.com/fthvgb1/wp-go/app/pkg/constraints"
|
||||||
|
"github.com/fthvgb1/wp-go/app/static"
|
||||||
|
"github.com/fthvgb1/wp-go/app/theme"
|
||||||
|
"github.com/fthvgb1/wp-go/app/wpconfig"
|
||||||
|
"github.com/gin-contrib/gzip"
|
||||||
|
"github.com/gin-contrib/pprof"
|
||||||
|
"github.com/gin-contrib/sessions"
|
||||||
|
"github.com/gin-contrib/sessions/cookie"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
var hooker []func(r *gin.Engine)
|
||||||
|
|
||||||
|
// Hook 方便插件在init时使用
|
||||||
|
func Hook(fn ...func(r *gin.Engine)) {
|
||||||
|
hooker = append(hooker, fn...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetupRouter() *gin.Engine {
|
||||||
|
// Disable Console Color
|
||||||
|
// gin.DisableConsoleColor()
|
||||||
|
r := gin.New()
|
||||||
|
c := config.GetConfig()
|
||||||
|
if len(c.TrustIps) > 0 {
|
||||||
|
err := r.SetTrustedProxies(c.TrustIps)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
r.HTMLRender = theme.Template()
|
||||||
|
wpconfig.SetTemplateFs(theme.TemplateFs)
|
||||||
|
siteFlowLimitMiddleware, siteFlow := middleware.FlowLimit(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)
|
||||||
|
r.Use(
|
||||||
|
gin.Logger(),
|
||||||
|
middleware.ValidateServerNames(),
|
||||||
|
middleware.RecoverAndSendMail(gin.DefaultErrorWriter),
|
||||||
|
siteFlowLimitMiddleware,
|
||||||
|
middleware.SetStaticFileCache,
|
||||||
|
)
|
||||||
|
//gzip 因为一般会用nginx做反代时自动使用gzip,所以go这边本身可以不用
|
||||||
|
if c.Gzip {
|
||||||
|
r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedPaths([]string{
|
||||||
|
"/wp-includes/", "/wp-content/",
|
||||||
|
})))
|
||||||
|
}
|
||||||
|
|
||||||
|
f := static.Fs{FS: static.FsDir, Path: "wp-includes"}
|
||||||
|
r.StaticFileFS("/favicon.ico", "favicon.ico", http.FS(static.FsDir))
|
||||||
|
r.StaticFS("/wp-includes", http.FS(f))
|
||||||
|
r.StaticFS("/wp-content/plugins", http.FS(static.Fs{
|
||||||
|
FS: static.FsDir,
|
||||||
|
Path: "wp-content/plugins",
|
||||||
|
}))
|
||||||
|
r.StaticFS("/wp-content/themes", http.FS(static.Fs{
|
||||||
|
FS: static.FsDir,
|
||||||
|
Path: "wp-content/themes",
|
||||||
|
}))
|
||||||
|
if c.UploadDir != "" {
|
||||||
|
r.Static("/wp-content/uploads", c.UploadDir)
|
||||||
|
}
|
||||||
|
store := cookie.NewStore([]byte("secret"))
|
||||||
|
r.Use(sessions.Sessions("go-wp", store))
|
||||||
|
r.GET("/", middleware.SearchLimit(c.SingleIpSearchNum), actions.ThemeHook(constraints.Home))
|
||||||
|
r.GET("/page/:page", actions.ThemeHook(constraints.Home))
|
||||||
|
r.GET("/p/category/:category", actions.ThemeHook(constraints.Category))
|
||||||
|
r.GET("/p/category/:category/page/:page", actions.ThemeHook(constraints.Category))
|
||||||
|
r.GET("/p/tag/:tag", actions.ThemeHook(constraints.Tag))
|
||||||
|
r.GET("/p/tag/:tag/page/:page", actions.ThemeHook(constraints.Tag))
|
||||||
|
r.GET("/p/date/:year/:month", actions.ThemeHook(constraints.Archive))
|
||||||
|
r.GET("/p/date/:year/:month/page/:page", actions.ThemeHook(constraints.Archive))
|
||||||
|
r.GET("/p/author/:author", actions.ThemeHook(constraints.Author))
|
||||||
|
r.GET("/p/author/:author/page/:page", actions.ThemeHook(constraints.Author))
|
||||||
|
r.POST("/login", actions.Login)
|
||||||
|
r.GET("/p/:id", actions.ThemeHook(constraints.Detail))
|
||||||
|
r.GET("/p/:id/feed", actions.PostFeed)
|
||||||
|
r.GET("/feed", actions.Feed)
|
||||||
|
r.GET("/comments/feed", actions.CommentsFeed)
|
||||||
|
r.NoRoute(actions.ThemeHook(constraints.NoRoute))
|
||||||
|
commentMiddleWare, _ := middleware.FlowLimit(c.MaxRequestSleepNum, 5, c.CacheTime.SleepTime)
|
||||||
|
r.POST("/comment", commentMiddleWare, actions.PostComment)
|
||||||
|
if c.Pprof != "" {
|
||||||
|
pprof.Register(r, c.Pprof)
|
||||||
|
}
|
||||||
|
for _, fn := range hooker {
|
||||||
|
fn(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
reload.Push(func() {
|
||||||
|
c := config.GetConfig()
|
||||||
|
siteFlow(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)
|
||||||
|
})
|
||||||
|
return r
|
||||||
|
}
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"gopkg.in/gomail.v2"
|
"github.com/soxfmr/gomail"
|
||||||
"mime"
|
"mime"
|
||||||
"path"
|
"path"
|
||||||
)
|
)
|
||||||
|
@ -45,7 +45,7 @@ func SendMail(mailTo []string, subject string, body string, files ...string) err
|
||||||
c.Mail.User,
|
c.Mail.User,
|
||||||
c.Mail.Pass,
|
c.Mail.Pass,
|
||||||
)
|
)
|
||||||
if c.Mail.InsecureSkipVerify {
|
if !c.Mail.Ssl {
|
||||||
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
|
||||||
}
|
}
|
||||||
err := d.DialAndSend(m)
|
err := d.DialAndSend(m)
|
||||||
|
|
|
@ -19,9 +19,9 @@ func FlowLimit(maxRequestSleepNum, maxRequestNum int64, sleepTime []time.Duratio
|
||||||
}
|
}
|
||||||
s := safety.Var[[]time.Duration]{}
|
s := safety.Var[[]time.Duration]{}
|
||||||
s.Store(sleepTime)
|
s.Store(sleepTime)
|
||||||
fn := func(sleepNum, maxNum int64, st []time.Duration) {
|
fn := func(msn, mn int64, st []time.Duration) {
|
||||||
atomic.StoreInt64(&maxRequestSleepNum, sleepNum)
|
atomic.StoreInt64(&maxRequestSleepNum, msn)
|
||||||
atomic.StoreInt64(&maxRequestNum, maxNum)
|
atomic.StoreInt64(&maxRequestNum, mn)
|
||||||
s.Store(st)
|
s.Store(st)
|
||||||
}
|
}
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
|
|
|
@ -25,25 +25,14 @@ func IpLimit(num int64) (func(ctx *gin.Context), func(int64)) {
|
||||||
fn(num)
|
fn(num)
|
||||||
|
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
if atomic.LoadInt64(m.limitNum) <= 0 {
|
|
||||||
c.Next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ip := c.ClientIP()
|
ip := c.ClientIP()
|
||||||
|
s := false
|
||||||
m.mux.RLock()
|
m.mux.RLock()
|
||||||
i, ok := m.m[ip]
|
i, ok := m.m[ip]
|
||||||
m.mux.RUnlock()
|
m.mux.RUnlock()
|
||||||
|
|
||||||
if !ok {
|
|
||||||
m.mux.Lock()
|
|
||||||
i = new(int64)
|
|
||||||
m.m[ip] = i
|
|
||||||
m.mux.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
ii := atomic.LoadInt64(i)
|
ii := atomic.LoadInt64(i)
|
||||||
if ii > 0 {
|
if s && ii > 0 {
|
||||||
atomic.AddInt64(i, -1)
|
atomic.AddInt64(i, -1)
|
||||||
if atomic.LoadInt64(i) == 0 {
|
if atomic.LoadInt64(i) == 0 {
|
||||||
m.mux.Lock()
|
m.mux.Lock()
|
||||||
|
@ -53,12 +42,20 @@ func IpLimit(num int64) (func(ctx *gin.Context), func(int64)) {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
if atomic.LoadInt64(i) >= atomic.LoadInt64(m.limitNum) {
|
if !ok {
|
||||||
|
m.mux.Lock()
|
||||||
|
i = new(int64)
|
||||||
|
m.m[ip] = i
|
||||||
|
m.mux.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
if atomic.LoadInt64(m.limitNum) > 0 && atomic.LoadInt64(i) >= atomic.LoadInt64(m.limitNum) {
|
||||||
c.Status(http.StatusForbidden)
|
c.Status(http.StatusForbidden)
|
||||||
c.Abort()
|
c.Abort()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
atomic.AddInt64(i, 1)
|
atomic.AddInt64(i, 1)
|
||||||
|
s = true
|
||||||
c.Next()
|
c.Next()
|
||||||
}, fn
|
}, fn
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/reload"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SearchLimit(num int64) func(ctx *gin.Context) {
|
func SearchLimit(num int64) func(ctx *gin.Context) {
|
||||||
fn, reFn := IpLimit(num)
|
fn, reFn := IpLimit(num)
|
||||||
reload.Append(func() {
|
reload.Push(func() {
|
||||||
reFn(config.GetConfig().SingleIpSearchNum)
|
reFn(config.GetConfig().SingleIpSearchNum)
|
||||||
}, "search-ip-limit-number")
|
})
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
if c.Query("s") != "" {
|
if c.Query("s") != "" {
|
||||||
fn(c)
|
fn(c)
|
||||||
|
|
|
@ -4,8 +4,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"net/http"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -18,11 +16,6 @@ var path = map[string]struct{}{
|
||||||
func SetStaticFileCache(c *gin.Context) {
|
func SetStaticFileCache(c *gin.Context) {
|
||||||
f := strings.Split(strings.TrimLeft(c.FullPath(), "/"), "/")
|
f := strings.Split(strings.TrimLeft(c.FullPath(), "/"), "/")
|
||||||
if _, ok := path[f[0]]; ok {
|
if _, ok := path[f[0]]; ok {
|
||||||
if ".php" == filepath.Ext(c.Request.URL.Path) {
|
|
||||||
c.Abort()
|
|
||||||
c.Status(http.StatusForbidden)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
t := config.GetConfig().CacheTime.CacheControl
|
t := config.GetConfig().CacheTime.CacheControl
|
||||||
if t > 0 {
|
if t > 0 {
|
||||||
c.Header("Cache-Control", fmt.Sprintf("private, max-age=%d", int(t.Seconds())))
|
c.Header("Cache-Control", fmt.Sprintf("private, max-age=%d", int(t.Seconds())))
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/reload"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/maps"
|
"github.com/fthvgb1/wp-go/helper/maps"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -19,7 +19,7 @@ func ValidateServerNames() func(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
}, "site-names")
|
})
|
||||||
|
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
m := sites.Load()
|
m := sites.Load()
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
package ossigns
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"github.com/fthvgb1/wp-go/app/mail"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/db"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
|
||||||
"github.com/fthvgb1/wp-go/app/plugins/wphandle"
|
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/fthvgb1/wp-go/signs"
|
|
||||||
"log"
|
|
||||||
"syscall"
|
|
||||||
)
|
|
||||||
|
|
||||||
var confPath string
|
|
||||||
|
|
||||||
func SetConfPath(path string) {
|
|
||||||
confPath = path
|
|
||||||
}
|
|
||||||
|
|
||||||
func FlushCache() {
|
|
||||||
defer func() {
|
|
||||||
if r := recover(); r != nil {
|
|
||||||
err := mail.SendMail([]string{config.GetConfig().Mail.User}, "清空缓存失败", fmt.Sprintf("err:[%s]", r))
|
|
||||||
logs.IfError(err, "发邮件失败")
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
cachemanager.Flush()
|
|
||||||
log.Println("all cache flushed")
|
|
||||||
}
|
|
||||||
|
|
||||||
func Reloads() {
|
|
||||||
defer func() {
|
|
||||||
if r := recover(); r != nil {
|
|
||||||
log.Println(r)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
err := config.InitConfig(confPath)
|
|
||||||
logs.IfError(err, "获取配置文件失败", confPath)
|
|
||||||
err = logs.InitLogger()
|
|
||||||
logs.IfError(err, "日志配置错误")
|
|
||||||
_, err = db.InitDb()
|
|
||||||
logs.IfError(err, "重新读取db失败", config.GetConfig().Mysql)
|
|
||||||
err = wpconfig.InitOptions()
|
|
||||||
logs.IfError(err, "获取网站设置WpOption失败")
|
|
||||||
err = wpconfig.InitTerms()
|
|
||||||
logs.IfError(err, "获取WpTerms表失败")
|
|
||||||
wphandle.LoadPlugins()
|
|
||||||
reload.Reloads("themeArgAndConfig")
|
|
||||||
FlushCache()
|
|
||||||
log.Println("reload complete")
|
|
||||||
}
|
|
||||||
|
|
||||||
func SignalNotify() {
|
|
||||||
rel := func() bool {
|
|
||||||
go Reloads()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
flu := func() bool {
|
|
||||||
go FlushCache()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
signs.Install(syscall.SIGUSR1, rel, "reload")
|
|
||||||
signs.Install(syscall.SIGUSR2, flu, "flush")
|
|
||||||
signs.Wait()
|
|
||||||
}
|
|
148
app/pkg/cache/cache.go
vendored
|
@ -2,96 +2,85 @@ package cache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/cachemanager"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/dao"
|
"github.com/fthvgb1/wp-go/app/pkg/dao"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
"github.com/fthvgb1/wp-go/cache"
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
|
"github.com/fthvgb1/wp-go/safety"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var postContextCache *cache.MapCache[uint64, dao.PostContext]
|
||||||
|
var categoryAndTagsCaches *cache.MapCache[string, []models.TermsMy]
|
||||||
|
var recentPostsCaches *cache.VarCache[[]models.Posts]
|
||||||
|
var recentCommentsCaches *cache.VarCache[[]models.Comments]
|
||||||
|
var postCommentCaches *cache.MapCache[uint64, []uint64]
|
||||||
|
var postsCache *cache.MapCache[uint64, models.Posts]
|
||||||
|
|
||||||
|
var postMetaCache *cache.MapCache[uint64, map[string]any]
|
||||||
|
|
||||||
|
var monthPostsCache *cache.MapCache[string, []uint64]
|
||||||
|
var postListIdsCache *cache.MapCache[string, dao.PostIds]
|
||||||
|
var searchPostIdsCache *cache.MapCache[string, dao.PostIds]
|
||||||
|
var maxPostIdCache *cache.VarCache[uint64]
|
||||||
|
|
||||||
|
var usersCache *cache.MapCache[uint64, models.Users]
|
||||||
|
var usersNameCache *cache.MapCache[string, models.Users]
|
||||||
|
var commentsCache *cache.MapCache[uint64, models.Comments]
|
||||||
|
|
||||||
|
var feedCache *cache.VarCache[[]string]
|
||||||
|
|
||||||
|
var postFeedCache *cache.MapCache[string, string]
|
||||||
|
|
||||||
|
var commentsFeedCache *cache.VarCache[[]string]
|
||||||
|
|
||||||
|
var newCommentCache *cache.MapCache[string, string]
|
||||||
|
|
||||||
|
var allUsernameCache *cache.VarCache[map[string]struct{}]
|
||||||
|
|
||||||
func InitActionsCommonCache() {
|
func InitActionsCommonCache() {
|
||||||
c := config.GetConfig()
|
c := config.GetConfig()
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.SearchPostIds, c.CacheTime.SearchPostCacheTime, "searchPostIds", func() time.Duration {
|
searchPostIdsCache = cachemanager.MapCacheBy[string](dao.SearchPostIds, c.CacheTime.SearchPostCacheTime)
|
||||||
return config.GetConfig().CacheTime.SearchPostCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.SearchPostIds, c.CacheTime.PostListCacheTime, "listPostIds", func() time.Duration {
|
postListIdsCache = cachemanager.MapCacheBy[string](dao.SearchPostIds, c.CacheTime.PostListCacheTime)
|
||||||
return config.GetConfig().CacheTime.PostListCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.MonthPost, c.CacheTime.MonthPostCacheTime, "monthPostIds", func() time.Duration {
|
monthPostsCache = cachemanager.MapCacheBy[string](dao.MonthPost, c.CacheTime.MonthPostCacheTime)
|
||||||
return config.GetConfig().CacheTime.MonthPostCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.GetPostContext, c.CacheTime.ContextPostCacheTime, "postContext", func() time.Duration {
|
postContextCache = cachemanager.MapCacheBy[uint64](dao.GetPostContext, c.CacheTime.ContextPostCacheTime)
|
||||||
return config.GetConfig().CacheTime.ContextPostCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(dao.GetPostsByIds, nil, c.CacheTime.PostDataCacheTime, "postData", func() time.Duration {
|
postsCache = cachemanager.MapBatchCacheBy(dao.GetPostsByIds, c.CacheTime.PostDataCacheTime)
|
||||||
return config.GetConfig().CacheTime.PostDataCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(dao.GetPostMetaByPostIds, nil, c.CacheTime.PostDataCacheTime, "postMetaData", func() time.Duration {
|
postMetaCache = cachemanager.MapBatchCacheBy(dao.GetPostMetaByPostIds, c.CacheTime.PostDataCacheTime)
|
||||||
return config.GetConfig().CacheTime.PostDataCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.CategoriesAndTags, c.CacheTime.CategoryCacheTime, "categoryAndTagsData", func() time.Duration {
|
categoryAndTagsCaches = cachemanager.MapCacheBy[string](dao.CategoriesAndTags, c.CacheTime.CategoryCacheTime)
|
||||||
return config.GetConfig().CacheTime.CategoryCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewVarMemoryCache(dao.RecentPosts, c.CacheTime.RecentPostCacheTime, "recentPosts", func() time.Duration {
|
recentPostsCaches = cache.NewVarCache(dao.RecentPosts, c.CacheTime.RecentPostCacheTime)
|
||||||
return config.GetConfig().CacheTime.RecentPostCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewVarMemoryCache(RecentComment, c.CacheTime.RecentCommentsCacheTime, "recentComments", func() time.Duration {
|
recentCommentsCaches = cache.NewVarCache(dao.RecentComments, c.CacheTime.RecentCommentsCacheTime)
|
||||||
return config.GetConfig().CacheTime.RecentCommentsCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.CommentNum, 30*time.Second, "commentNumber", func() time.Duration {
|
postCommentCaches = cachemanager.MapCacheBy[uint64](dao.PostComments, c.CacheTime.PostCommentsCacheTime)
|
||||||
return config.GetConfig().CacheTime.CommentsIncreaseUpdateTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, PostTopComments, 30*time.Second, "PostCommentsIds", func() time.Duration {
|
maxPostIdCache = cache.NewVarCache(dao.GetMaxPostId, c.CacheTime.MaxPostIdCacheTime)
|
||||||
return config.GetConfig().CacheTime.CommentsIncreaseUpdateTime
|
|
||||||
})
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.PostTopCommentNum, 30*time.Second, "postTopCommentsNum", func() time.Duration {
|
|
||||||
return config.GetConfig().CacheTime.CommentsIncreaseUpdateTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(dao.GetCommentByIds, nil, time.Hour, "postCommentData", func() time.Duration {
|
usersCache = cachemanager.MapCacheBy[uint64](dao.GetUserById, c.CacheTime.UserInfoCacheTime)
|
||||||
return config.GetConfig().CacheTime.CommentsCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(dao.CommentChildren, nil, time.Minute, "commentChildren", func() time.Duration {
|
usersNameCache = cachemanager.MapCacheBy[string](dao.GetUserByName, c.CacheTime.UserInfoCacheTime)
|
||||||
return config.GetConfig().CacheTime.CommentsIncreaseUpdateTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewVarMemoryCache(dao.GetMaxPostId, c.CacheTime.MaxPostIdCacheTime, "maxPostId", func() time.Duration {
|
commentsCache = cachemanager.MapBatchCacheBy(dao.GetCommentByIds, c.CacheTime.CommentsCacheTime)
|
||||||
return config.GetConfig().CacheTime.MaxPostIdCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.GetUserById, c.CacheTime.UserInfoCacheTime, "userData", func() time.Duration {
|
allUsernameCache = cache.NewVarCache(dao.AllUsername, c.CacheTime.UserInfoCacheTime)
|
||||||
return config.GetConfig().CacheTime.UserInfoCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, dao.GetUserByName, c.CacheTime.UserInfoCacheTime, "usernameToUserData", func() time.Duration {
|
feedCache = cache.NewVarCache(feed, time.Hour)
|
||||||
return config.GetConfig().CacheTime.UserInfoCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewVarMemoryCache(dao.AllUsername, c.CacheTime.UserInfoCacheTime, "allUsername", func() time.Duration {
|
postFeedCache = cachemanager.MapCacheBy[string](postFeed, time.Hour)
|
||||||
return config.GetConfig().CacheTime.UserInfoCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
cachemanager.NewVarMemoryCache(SiteFeed, time.Hour, "siteFeed")
|
commentsFeedCache = cache.NewVarCache(commentsFeed, time.Hour)
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache(nil, PostFeed, time.Hour, "postFeed")
|
newCommentCache = cachemanager.MapCacheBy[string, string](nil, 15*time.Minute)
|
||||||
|
|
||||||
cachemanager.NewVarMemoryCache(CommentsFeed, time.Hour, "commentsFeed")
|
|
||||||
|
|
||||||
cachemanager.NewMemoryMapCache[string, string](nil, nil, 15*time.Minute, "NewComment")
|
|
||||||
|
|
||||||
InitFeed()
|
InitFeed()
|
||||||
}
|
}
|
||||||
|
@ -102,19 +91,19 @@ type Arch struct {
|
||||||
month time.Month
|
month time.Month
|
||||||
}
|
}
|
||||||
|
|
||||||
var arch = reload.Vars(Arch{
|
var arch = safety.NewVar(Arch{
|
||||||
fn: dao.Archives,
|
fn: dao.Archives,
|
||||||
}, "archives-year-month-data")
|
})
|
||||||
|
|
||||||
func Archives(ctx context.Context) []models.PostArchive {
|
func Archives(ctx context.Context) []models.PostArchive {
|
||||||
a := arch.Load()
|
a := arch.Load()
|
||||||
data := a.data
|
data := a.data
|
||||||
l := len(data)
|
l := len(data)
|
||||||
m := time.Now().Month()
|
m := time.Now().Month()
|
||||||
if l < 1 || a.month != m {
|
if l > 0 && a.month != m || l < 1 {
|
||||||
r, err := a.fn(ctx)
|
r, err := a.fn(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logs.Error(err, "set cache Archives fail")
|
logs.Error(err, "set cache fail")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
a.month = m
|
a.month = m
|
||||||
|
@ -124,3 +113,30 @@ func Archives(ctx context.Context) []models.PostArchive {
|
||||||
}
|
}
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CategoriesTags categories or tags
|
||||||
|
//
|
||||||
|
// t is constraints.Tag or constraints.Category
|
||||||
|
func CategoriesTags(ctx context.Context, t ...string) []models.TermsMy {
|
||||||
|
tt := ""
|
||||||
|
if len(t) > 0 {
|
||||||
|
tt = t[0]
|
||||||
|
}
|
||||||
|
r, err := categoryAndTagsCaches.GetCache(ctx, tt, time.Second, ctx, tt)
|
||||||
|
logs.IfError(err, "get category fail")
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
func AllCategoryTagsNames(ctx context.Context, t ...string) map[string]struct{} {
|
||||||
|
tt := ""
|
||||||
|
if len(t) > 0 {
|
||||||
|
tt = t[0]
|
||||||
|
}
|
||||||
|
r, err := categoryAndTagsCaches.GetCache(ctx, tt, time.Second, ctx, tt)
|
||||||
|
if err != nil {
|
||||||
|
logs.Error(err, "get category fail")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return slice.ToMap(r, func(t models.TermsMy) (string, struct{}) {
|
||||||
|
return t.Name, struct{}{}
|
||||||
|
}, true)
|
||||||
|
}
|
||||||
|
|
39
app/pkg/cache/categoryandtag.go
vendored
|
@ -1,39 +0,0 @@
|
||||||
package cache
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CategoriesTags get all categories or tags
|
|
||||||
//
|
|
||||||
// query func see dao.CategoriesAndTags
|
|
||||||
//
|
|
||||||
// t is constraints.Tag or constraints.Category
|
|
||||||
func CategoriesTags(ctx context.Context, t ...string) []models.TermsMy {
|
|
||||||
tt := ""
|
|
||||||
if len(t) > 0 {
|
|
||||||
tt = t[0]
|
|
||||||
}
|
|
||||||
r, err := cachemanager.GetBy[[]models.TermsMy]("categoryAndTagsData", ctx, tt, time.Second)
|
|
||||||
logs.IfError(err, "get category fail")
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
func AllCategoryTagsNames(ctx context.Context, t ...string) map[string]struct{} {
|
|
||||||
tt := ""
|
|
||||||
if len(t) > 0 {
|
|
||||||
tt = t[0]
|
|
||||||
}
|
|
||||||
r, err := cachemanager.GetBy[[]models.TermsMy]("categoryAndTagsData", ctx, tt, time.Second)
|
|
||||||
if err != nil {
|
|
||||||
logs.Error(err, "get category fail")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return slice.ToMap(r, func(t models.TermsMy) (string, struct{}) {
|
|
||||||
return t.Name, struct{}{}
|
|
||||||
}, true)
|
|
||||||
}
|
|
104
app/pkg/cache/comments.go
vendored
|
@ -2,23 +2,16 @@ package cache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/dao"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
|
||||||
"github.com/fthvgb1/wp-go/cache"
|
"github.com/fthvgb1/wp-go/cache"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/helper"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/number"
|
"github.com/fthvgb1/wp-go/helper/number"
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RecentComments query func see RecentComment
|
|
||||||
func RecentComments(ctx context.Context, n int) (r []models.Comments) {
|
func RecentComments(ctx context.Context, n int) (r []models.Comments) {
|
||||||
nn := number.Max(n, 10)
|
nn := number.Max(n, 10)
|
||||||
r, err := cachemanager.GetVarVal[[]models.Comments]("recentComments", ctx, time.Second, ctx, nn)
|
r, err := recentCommentsCaches.GetCache(ctx, time.Second, ctx, nn)
|
||||||
if len(r) > n {
|
if len(r) > n {
|
||||||
r = r[0:n]
|
r = r[0:n]
|
||||||
}
|
}
|
||||||
|
@ -26,99 +19,22 @@ func RecentComments(ctx context.Context, n int) (r []models.Comments) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// PostTopLevelCommentIds query func see PostTopComments
|
func PostComments(ctx context.Context, Id uint64) ([]models.Comments, error) {
|
||||||
func PostTopLevelCommentIds(ctx context.Context, postId uint64, page, limit, total int, order string, a ...any) ([]uint64, error) {
|
ids, err := postCommentCaches.GetCache(ctx, Id, time.Second, ctx, Id)
|
||||||
var key string
|
if err != nil {
|
||||||
if len(a) > 0 {
|
return nil, err
|
||||||
key = helper.ParseArgs("", a...)
|
|
||||||
}
|
}
|
||||||
if key == "" {
|
return GetCommentByIds(ctx, ids)
|
||||||
key = fmt.Sprintf("%d-%d-%d-%d-%s", postId, page, limit, total, order)
|
|
||||||
}
|
|
||||||
return cachemanager.GetBy[[]uint64]("PostCommentsIds", ctx,
|
|
||||||
key, time.Second, postId, page, limit, 0, order)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCommentById query func see dao.GetCommentByIds
|
|
||||||
func GetCommentById(ctx context.Context, id uint64) (models.Comments, error) {
|
func GetCommentById(ctx context.Context, id uint64) (models.Comments, error) {
|
||||||
return cachemanager.GetBy[models.Comments]("postCommentData", ctx, id, time.Second)
|
return commentsCache.GetCache(ctx, id, time.Second, ctx, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCommentDataByIds query func see dao.GetCommentByIds
|
func GetCommentByIds(ctx context.Context, ids []uint64) ([]models.Comments, error) {
|
||||||
func GetCommentDataByIds(ctx context.Context, ids []uint64) ([]models.Comments, error) {
|
return commentsCache.GetCacheBatch(ctx, ids, time.Second, ctx, ids)
|
||||||
return cachemanager.GetBatchBy[models.Comments]("postCommentData", ctx, ids, time.Second)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCommentCache() *cache.MapCache[string, string] {
|
func NewCommentCache() *cache.MapCache[string, string] {
|
||||||
r, _ := cachemanager.GetMapCache[string, string]("NewComment")
|
return newCommentCache
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
func PostTopComments(ctx context.Context, _ string, a ...any) ([]uint64, error) {
|
|
||||||
postId := a[0].(uint64)
|
|
||||||
page := a[1].(int)
|
|
||||||
limit := a[2].(int)
|
|
||||||
total := a[3].(int)
|
|
||||||
order := helper.ParseArgs("", a...)
|
|
||||||
if order == "" {
|
|
||||||
order = wpconfig.GetOption("comment_order")
|
|
||||||
}
|
|
||||||
v, _, err := dao.PostCommentsIds(ctx, postId, page, limit, total, order)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return v, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func RecentComment(ctx context.Context, a ...any) (r []models.Comments, err error) {
|
|
||||||
r, err = dao.RecentComments(ctx, a...)
|
|
||||||
if err != nil {
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
for i, comment := range r {
|
|
||||||
r[i].CommentAuthorUrl, err = GetCommentUrl(ctx, comment.CommentId, comment.CommentPostId)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetCommentUrl(ctx context.Context, commentId, postId uint64) (string, error) {
|
|
||||||
if wpconfig.GetOption("page_comments") != "1" {
|
|
||||||
return fmt.Sprintf("/p/%d#comment-%d", postId, commentId), nil
|
|
||||||
}
|
|
||||||
commentsPerPage := str.ToInteger(wpconfig.GetOption("comments_per_page"), 5)
|
|
||||||
topCommentId, err := AncestorCommentId(ctx, commentId)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
totalNum, err := cachemanager.GetBy[int]("postTopCommentsNum", ctx, postId, time.Second)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if totalNum <= commentsPerPage {
|
|
||||||
return fmt.Sprintf("/p/%d#comment-%d", postId, commentId), nil
|
|
||||||
}
|
|
||||||
num, err := dao.PreviousCommentNum(ctx, topCommentId, postId)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
order := wpconfig.GetOption("comment_order")
|
|
||||||
page := number.DivideCeil(num+1, commentsPerPage)
|
|
||||||
if order == "desc" {
|
|
||||||
page = number.DivideCeil(totalNum-num, commentsPerPage)
|
|
||||||
}
|
|
||||||
return fmt.Sprintf("/p/%d/comment-page-%d/#comment-%d", postId, page, commentId), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func AncestorCommentId(ctx context.Context, commentId uint64) (uint64, error) {
|
|
||||||
comment, err := GetCommentById(ctx, commentId)
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if comment.CommentParent == 0 {
|
|
||||||
return comment.CommentId, nil
|
|
||||||
}
|
|
||||||
return AncestorCommentId(ctx, comment.CommentParent)
|
|
||||||
}
|
}
|
||||||
|
|
55
app/pkg/cache/feed.go
vendored
|
@ -1,8 +1,6 @@
|
||||||
package cache
|
package cache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
|
@ -10,11 +8,11 @@ import (
|
||||||
"github.com/fthvgb1/wp-go/app/plugins/wpposts"
|
"github.com/fthvgb1/wp-go/app/plugins/wpposts"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
"github.com/fthvgb1/wp-go/app/wpconfig"
|
||||||
"github.com/fthvgb1/wp-go/cache"
|
"github.com/fthvgb1/wp-go/cache"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
str "github.com/fthvgb1/wp-go/helper/strings"
|
||||||
"github.com/fthvgb1/wp-go/plugin/digest"
|
"github.com/fthvgb1/wp-go/plugin/digest"
|
||||||
"github.com/fthvgb1/wp-go/rss2"
|
"github.com/fthvgb1/wp-go/rss2"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -35,25 +33,20 @@ func InitFeed() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CommentsFeedCache query func see CommentsFeed
|
|
||||||
func CommentsFeedCache() *cache.VarCache[[]string] {
|
func CommentsFeedCache() *cache.VarCache[[]string] {
|
||||||
r, _ := cachemanager.GetVarCache[[]string]("commentsFeed")
|
return commentsFeedCache
|
||||||
return r
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FeedCache query func see SiteFeed
|
|
||||||
func FeedCache() *cache.VarCache[[]string] {
|
func FeedCache() *cache.VarCache[[]string] {
|
||||||
r, _ := cachemanager.GetVarCache[[]string]("siteFeed")
|
return feedCache
|
||||||
return r
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PostFeedCache query func see PostFeed
|
|
||||||
func PostFeedCache() *cache.MapCache[string, string] {
|
func PostFeedCache() *cache.MapCache[string, string] {
|
||||||
r, _ := cachemanager.GetMapCache[string, string]("postFeed")
|
return postFeedCache
|
||||||
return r
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func SiteFeed(c context.Context, _ ...any) (xml []string, err error) {
|
func feed(arg ...any) (xml []string, err error) {
|
||||||
|
c := arg[0].(*gin.Context)
|
||||||
r := RecentPosts(c, 10)
|
r := RecentPosts(c, 10)
|
||||||
ids := slice.Map(r, func(t models.Posts) uint64 {
|
ids := slice.Map(r, func(t models.Posts) uint64 {
|
||||||
return t.Id
|
return t.Id
|
||||||
|
@ -99,7 +92,9 @@ func SiteFeed(c context.Context, _ ...any) (xml []string, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func PostFeed(c context.Context, id string, _ ...any) (x string, err error) {
|
func postFeed(arg ...any) (x string, err error) {
|
||||||
|
c := arg[0].(*gin.Context)
|
||||||
|
id := arg[1].(string)
|
||||||
ID := str.ToInteger[uint64](id, 0)
|
ID := str.ToInteger[uint64](id, 0)
|
||||||
maxId, err := GetMaxPostId(c)
|
maxId, err := GetMaxPostId(c)
|
||||||
logs.IfError(err, "get max post id")
|
logs.IfError(err, "get max post id")
|
||||||
|
@ -110,12 +105,7 @@ func PostFeed(c context.Context, id string, _ ...any) (x string, err error) {
|
||||||
if post.Id == 0 || err != nil {
|
if post.Id == 0 || err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
limit := str.ToInteger(wpconfig.GetOption("comments_per_page"), 10)
|
comments, err := PostComments(c, post.Id)
|
||||||
ids, err := PostTopLevelCommentIds(c, ID, 1, limit, 0, "desc", "latest-comment")
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
comments, err := GetCommentDataByIds(c, ids)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -131,14 +121,10 @@ func PostFeed(c context.Context, id string, _ ...any) (x string, err error) {
|
||||||
wpposts.PasswdProjectContent(&post)
|
wpposts.PasswdProjectContent(&post)
|
||||||
if len(comments) > 0 {
|
if len(comments) > 0 {
|
||||||
t := comments[len(comments)-1]
|
t := comments[len(comments)-1]
|
||||||
u, err := GetCommentUrl(c, t.CommentId, t.CommentPostId)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
rs.Items = []rss2.Item{
|
rs.Items = []rss2.Item{
|
||||||
{
|
{
|
||||||
Title: fmt.Sprintf("评价者:%s", t.CommentAuthor),
|
Title: fmt.Sprintf("评价者:%s", t.CommentAuthor),
|
||||||
Link: fmt.Sprintf("%s%s", site, u),
|
Link: fmt.Sprintf("%s/p/%d#comment-%d", site, post.Id, t.CommentId),
|
||||||
Creator: t.CommentAuthor,
|
Creator: t.CommentAuthor,
|
||||||
PubDate: t.CommentDateGmt.Format(timeFormat),
|
PubDate: t.CommentDateGmt.Format(timeFormat),
|
||||||
Guid: fmt.Sprintf("%s#comment-%d", post.Guid, t.CommentId),
|
Guid: fmt.Sprintf("%s#comment-%d", post.Guid, t.CommentId),
|
||||||
|
@ -149,14 +135,9 @@ func PostFeed(c context.Context, id string, _ ...any) (x string, err error) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rs.Items = slice.Map(comments, func(t models.Comments) rss2.Item {
|
rs.Items = slice.Map(comments, func(t models.Comments) rss2.Item {
|
||||||
u, er := GetCommentUrl(c, t.CommentId, t.CommentPostId)
|
|
||||||
if er != nil {
|
|
||||||
err = errors.Join(err, er)
|
|
||||||
return rss2.Item{}
|
|
||||||
}
|
|
||||||
return rss2.Item{
|
return rss2.Item{
|
||||||
Title: fmt.Sprintf("评价者:%s", t.CommentAuthor),
|
Title: fmt.Sprintf("评价者:%s", t.CommentAuthor),
|
||||||
Link: fmt.Sprintf("%s%s", site, u),
|
Link: fmt.Sprintf("%s/p/%d#comment-%d", site, post.Id, t.CommentId),
|
||||||
Creator: t.CommentAuthor,
|
Creator: t.CommentAuthor,
|
||||||
PubDate: t.CommentDateGmt.Format(timeFormat),
|
PubDate: t.CommentDateGmt.Format(timeFormat),
|
||||||
Guid: fmt.Sprintf("%s#comment-%d", post.Guid, t.CommentId),
|
Guid: fmt.Sprintf("%s#comment-%d", post.Guid, t.CommentId),
|
||||||
|
@ -169,14 +150,15 @@ func PostFeed(c context.Context, id string, _ ...any) (x string, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func CommentsFeed(c context.Context, _ ...any) (r []string, err error) {
|
func commentsFeed(args ...any) (r []string, err error) {
|
||||||
|
c := args[0].(*gin.Context)
|
||||||
commens := RecentComments(c, 10)
|
commens := RecentComments(c, 10)
|
||||||
rs := templateRss
|
rs := templateRss
|
||||||
rs.Title = fmt.Sprintf("\"%s\"的评论", wpconfig.GetOption("blogname"))
|
rs.Title = fmt.Sprintf("\"%s\"的评论", wpconfig.GetOption("blogname"))
|
||||||
rs.LastBuildDate = time.Now().Format(timeFormat)
|
rs.LastBuildDate = time.Now().Format(timeFormat)
|
||||||
site := wpconfig.GetOption("siteurl")
|
site := wpconfig.GetOption("siteurl")
|
||||||
rs.AtomLink = fmt.Sprintf("%s/comments/feed", site)
|
rs.AtomLink = fmt.Sprintf("%s/comments/feed", site)
|
||||||
com, err := GetCommentDataByIds(c, slice.Map(commens, func(t models.Comments) uint64 {
|
com, err := GetCommentByIds(c, slice.Map(commens, func(t models.Comments) uint64 {
|
||||||
return t.CommentId
|
return t.CommentId
|
||||||
}))
|
}))
|
||||||
if nil != err {
|
if nil != err {
|
||||||
|
@ -193,14 +175,9 @@ func CommentsFeed(c context.Context, _ ...any) (r []string, err error) {
|
||||||
} else {
|
} else {
|
||||||
content = digest.StripTags(t.CommentContent, "")
|
content = digest.StripTags(t.CommentContent, "")
|
||||||
}
|
}
|
||||||
u, er := GetCommentUrl(c, t.CommentId, t.CommentPostId)
|
|
||||||
if er != nil {
|
|
||||||
errors.Join(err, er)
|
|
||||||
}
|
|
||||||
u = str.Join(site, u)
|
|
||||||
return rss2.Item{
|
return rss2.Item{
|
||||||
Title: fmt.Sprintf("%s对《%s》的评论", t.CommentAuthor, post.PostTitle),
|
Title: fmt.Sprintf("%s对《%s》的评论", t.CommentAuthor, post.PostTitle),
|
||||||
Link: u,
|
Link: fmt.Sprintf("%s/p/%d#comment-%d", site, post.Id, t.CommentId),
|
||||||
Creator: t.CommentAuthor,
|
Creator: t.CommentAuthor,
|
||||||
Description: desc,
|
Description: desc,
|
||||||
PubDate: t.CommentDateGmt.Format(timeFormat),
|
PubDate: t.CommentDateGmt.Format(timeFormat),
|
||||||
|
|
14
app/pkg/cache/postmeta.go
vendored
|
@ -2,16 +2,14 @@ package cache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetPostMetaByPostIds query func see dao.GetPostMetaByPostIds
|
func GetPostMetaByPostIds(ctx context.Context, ids []uint64) (r []map[string]any, err error) {
|
||||||
func GetPostMetaByPostIds(ctx context.Context, ids []uint64) ([]map[string]any, error) {
|
r, err = postMetaCache.GetCacheBatch(ctx, ids, time.Second, ctx, ids)
|
||||||
return cachemanager.GetBatchBy[map[string]any]("postMetaData", ctx, ids, time.Second)
|
return
|
||||||
}
|
}
|
||||||
|
func GetPostMetaByPostId(ctx context.Context, id uint64) (r map[string]any, err error) {
|
||||||
// GetPostMetaByPostId query func see dao.GetPostMetaByPostIds
|
r, err = postMetaCache.GetCache(ctx, id, time.Second, ctx, id)
|
||||||
func GetPostMetaByPostId(ctx context.Context, id uint64) (map[string]any, error) {
|
return
|
||||||
return cachemanager.GetBy[map[string]any]("postMetaData", ctx, id, time.Second)
|
|
||||||
}
|
}
|
||||||
|
|
29
app/pkg/cache/posts.go
vendored
|
@ -3,30 +3,26 @@ package cache
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/dao"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
"github.com/fthvgb1/wp-go/app/wpconfig"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/number"
|
"github.com/fthvgb1/wp-go/helper/number"
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
str "github.com/fthvgb1/wp-go/helper/strings"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetPostById query func see dao.GetPostsByIds
|
|
||||||
func GetPostById(ctx context.Context, id uint64) (models.Posts, error) {
|
func GetPostById(ctx context.Context, id uint64) (models.Posts, error) {
|
||||||
return cachemanager.GetBy[models.Posts]("postData", ctx, id, time.Second)
|
return postsCache.GetCache(ctx, id, time.Second, ctx, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPostsByIds query func see dao.GetPostsByIds
|
|
||||||
func GetPostsByIds(ctx context.Context, ids []uint64) ([]models.Posts, error) {
|
func GetPostsByIds(ctx context.Context, ids []uint64) ([]models.Posts, error) {
|
||||||
return cachemanager.GetBatchBy[models.Posts]("postData", ctx, ids, time.Second)
|
return postsCache.GetCacheBatch(ctx, ids, time.Second, ctx, ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SearchPost query func see dao.SearchPostIds
|
|
||||||
func SearchPost(ctx context.Context, key string, args ...any) (r []models.Posts, total int, err error) {
|
func SearchPost(ctx context.Context, key string, args ...any) (r []models.Posts, total int, err error) {
|
||||||
ids, err := cachemanager.GetBy[dao.PostIds]("searchPostIds", ctx, key, time.Second, args...)
|
ids, err := searchPostIdsCache.GetCache(ctx, key, time.Second, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -35,9 +31,8 @@ func SearchPost(ctx context.Context, key string, args ...any) (r []models.Posts,
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// PostLists query func see dao.SearchPostIds
|
|
||||||
func PostLists(ctx context.Context, key string, args ...any) (r []models.Posts, total int, err error) {
|
func PostLists(ctx context.Context, key string, args ...any) (r []models.Posts, total int, err error) {
|
||||||
ids, err := cachemanager.GetBy[dao.PostIds]("listPostIds", ctx, key, time.Second, args...)
|
ids, err := postListIdsCache.GetCache(ctx, key, time.Second, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -46,17 +41,15 @@ func PostLists(ctx context.Context, key string, args ...any) (r []models.Posts,
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMaxPostId query func see dao.GetMaxPostId
|
func GetMaxPostId(ctx *gin.Context) (uint64, error) {
|
||||||
func GetMaxPostId(ctx context.Context) (uint64, error) {
|
return maxPostIdCache.GetCache(ctx, time.Second, ctx)
|
||||||
return cachemanager.GetVarVal[uint64]("maxPostId", ctx, time.Second)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// RecentPosts query func see dao.RecentPosts
|
|
||||||
func RecentPosts(ctx context.Context, n int) (r []models.Posts) {
|
func RecentPosts(ctx context.Context, n int) (r []models.Posts) {
|
||||||
nn := n
|
nn := n
|
||||||
feedNum := str.ToInteger(wpconfig.GetOption("posts_per_rss"), 10)
|
feedNum := str.ToInteger(wpconfig.GetOption("posts_per_rss"), 10)
|
||||||
nn = number.Max(n, feedNum)
|
nn = number.Max(n, feedNum)
|
||||||
r, err := cachemanager.GetVarVal[[]models.Posts]("recentPosts", ctx, time.Second, nn)
|
r, err := recentPostsCaches.GetCache(ctx, time.Second, ctx, nn)
|
||||||
if n < len(r) {
|
if n < len(r) {
|
||||||
r = r[:n]
|
r = r[:n]
|
||||||
}
|
}
|
||||||
|
@ -64,9 +57,8 @@ func RecentPosts(ctx context.Context, n int) (r []models.Posts) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContextPost query func see dao.GetPostContext
|
|
||||||
func GetContextPost(ctx context.Context, id uint64, date time.Time) (prev, next models.Posts, err error) {
|
func GetContextPost(ctx context.Context, id uint64, date time.Time) (prev, next models.Posts, err error) {
|
||||||
postCtx, err := cachemanager.GetBy[dao.PostContext]("postContext", ctx, id, time.Second, date)
|
postCtx, err := postContextCache.GetCache(ctx, id, time.Second, ctx, date)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Posts{}, models.Posts{}, err
|
return models.Posts{}, models.Posts{}, err
|
||||||
}
|
}
|
||||||
|
@ -75,9 +67,8 @@ func GetContextPost(ctx context.Context, id uint64, date time.Time) (prev, next
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMonthPostIds query func see dao.MonthPost
|
|
||||||
func GetMonthPostIds(ctx context.Context, year, month string, page, limit int, order string) (r []models.Posts, total int, err error) {
|
func GetMonthPostIds(ctx context.Context, year, month string, page, limit int, order string) (r []models.Posts, total int, err error) {
|
||||||
res, err := cachemanager.GetBy[[]uint64]("monthPostIds", ctx, fmt.Sprintf("%s%s", year, month), time.Second, year, month)
|
res, err := monthPostsCache.GetCache(ctx, fmt.Sprintf("%s%s", year, month), time.Second, ctx, year, month)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
20
app/pkg/cache/users.go
vendored
|
@ -4,23 +4,27 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
"github.com/fthvgb1/wp-go/model"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetUserByName query func see dao.GetUserByName
|
func getUserById(a ...any) (r models.Users, err error) {
|
||||||
|
ctx := a[0].(context.Context)
|
||||||
|
uid := a[1].(uint64)
|
||||||
|
r, err = model.FindOneById[models.Users](ctx, uid)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func GetUserByName(ctx context.Context, username string) (models.Users, error) {
|
func GetUserByName(ctx context.Context, username string) (models.Users, error) {
|
||||||
return cachemanager.GetBy[models.Users]("usernameToUserData", ctx, username, time.Second)
|
return usersNameCache.GetCache(ctx, username, time.Second, ctx, username)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAllUsername query func see dao.AllUsername
|
func GetAllUsername(ctx context.Context) (map[string]struct{}, error) {
|
||||||
func GetAllUsername(ctx context.Context) (map[string]uint64, error) {
|
return allUsernameCache.GetCache(ctx, time.Second, ctx)
|
||||||
return cachemanager.GetVarVal[map[string]uint64]("allUsername", ctx, time.Second)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUserById query func see dao.GetUserById
|
|
||||||
func GetUserById(ctx context.Context, uid uint64) models.Users {
|
func GetUserById(ctx context.Context, uid uint64) models.Users {
|
||||||
r, err := cachemanager.GetBy[models.Users]("userData", ctx, uid, time.Second)
|
r, err := usersCache.GetCache(ctx, uid, time.Second, ctx, uid)
|
||||||
logs.IfError(err, "get user", uid)
|
logs.IfError(err, "get user", uid)
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/safety"
|
"github.com/fthvgb1/wp-go/safety"
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
"io"
|
|
||||||
"net/http"
|
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -42,7 +39,6 @@ type Config struct {
|
||||||
ShowQuerySql bool `yaml:"showQuerySql" json:"showQuerySql,omitempty"`
|
ShowQuerySql bool `yaml:"showQuerySql" json:"showQuerySql,omitempty"`
|
||||||
Plugins []string `yaml:"plugins" json:"plugins,omitempty"`
|
Plugins []string `yaml:"plugins" json:"plugins,omitempty"`
|
||||||
LogOutput string `yaml:"logOutput" json:"logOutput,omitempty"`
|
LogOutput string `yaml:"logOutput" json:"logOutput,omitempty"`
|
||||||
WpDir string `yaml:"wpDir" json:"wpDir"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type CacheTime struct {
|
type CacheTime struct {
|
||||||
|
@ -63,7 +59,6 @@ type CacheTime struct {
|
||||||
UserInfoCacheTime time.Duration `yaml:"userInfoCacheTime" json:"userInfoCacheTime,omitempty"`
|
UserInfoCacheTime time.Duration `yaml:"userInfoCacheTime" json:"userInfoCacheTime,omitempty"`
|
||||||
CommentsCacheTime time.Duration `yaml:"commentsCacheTime" json:"commentsCacheTime,omitempty"`
|
CommentsCacheTime time.Duration `yaml:"commentsCacheTime" json:"commentsCacheTime,omitempty"`
|
||||||
SleepTime []time.Duration `yaml:"sleepTime" json:"sleepTime,omitempty"`
|
SleepTime []time.Duration `yaml:"sleepTime" json:"sleepTime,omitempty"`
|
||||||
CommentsIncreaseUpdateTime time.Duration `yaml:"commentsIncreaseUpdateTime" json:"commentsIncreaseUpdateTime"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Ssl struct {
|
type Ssl struct {
|
||||||
|
@ -77,7 +72,7 @@ type Mail struct {
|
||||||
Pass string `yaml:"pass" json:"pass,omitempty"`
|
Pass string `yaml:"pass" json:"pass,omitempty"`
|
||||||
Host string `yaml:"host" json:"host,omitempty"`
|
Host string `yaml:"host" json:"host,omitempty"`
|
||||||
Port int `yaml:"port" json:"port,omitempty"`
|
Port int `yaml:"port" json:"port,omitempty"`
|
||||||
InsecureSkipVerify bool `yaml:"insecureSkipVerify" json:"insecureSkipVerify,omitempty"`
|
Ssl bool `yaml:"ssl" json:"ssl,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Mysql struct {
|
type Mysql struct {
|
||||||
|
@ -85,34 +80,14 @@ type Mysql struct {
|
||||||
Pool Pool `yaml:"pool" json:"pool"`
|
Pool Pool `yaml:"pool" json:"pool"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetCustomizedConfig[T any]() (T, error) {
|
|
||||||
var r T
|
|
||||||
err := yaml.Unmarshal(fileData.Load(), &r)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var fileData = safety.NewVar([]byte{})
|
|
||||||
|
|
||||||
func InitConfig(conf string) error {
|
func InitConfig(conf string) error {
|
||||||
if conf == "" {
|
if conf == "" {
|
||||||
conf = "config.yaml"
|
conf = "config.yaml"
|
||||||
}
|
}
|
||||||
var file []byte
|
file, err := os.ReadFile(conf)
|
||||||
var err error
|
|
||||||
if strings.Contains(conf, "http") {
|
|
||||||
get, err := http.Get(conf)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer get.Body.Close()
|
|
||||||
file, err = io.ReadAll(get.Body)
|
|
||||||
} else {
|
|
||||||
file, err = os.ReadFile(conf)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
fileData.Store(file)
|
|
||||||
var c Config
|
var c Config
|
||||||
err = yaml.Unmarshal(file, &c)
|
err = yaml.Unmarshal(file, &c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -2,21 +2,17 @@ package dao
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
|
||||||
"errors"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
|
||||||
"github.com/fthvgb1/wp-go/helper"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/number"
|
"github.com/fthvgb1/wp-go/helper/number"
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
|
||||||
"github.com/fthvgb1/wp-go/model"
|
"github.com/fthvgb1/wp-go/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RecentComments
|
// RecentComments
|
||||||
// param context.Context
|
// param context.Context
|
||||||
func RecentComments(ctx context.Context, a ...any) (r []models.Comments, err error) {
|
func RecentComments(a ...any) (r []models.Comments, err error) {
|
||||||
n := helper.ParseArgs(10, a...)
|
ctx := a[0].(context.Context)
|
||||||
|
n := a[1].(int)
|
||||||
return model.Finds[models.Comments](ctx, model.Conditions(
|
return model.Finds[models.Comments](ctx, model.Conditions(
|
||||||
model.Where(model.SqlBuilder{
|
model.Where(model.SqlBuilder{
|
||||||
{"comment_approved", "1"},
|
{"comment_approved", "1"},
|
||||||
|
@ -32,8 +28,10 @@ func RecentComments(ctx context.Context, a ...any) (r []models.Comments, err err
|
||||||
// PostComments
|
// PostComments
|
||||||
// param1 context.Context
|
// param1 context.Context
|
||||||
// param2 postId
|
// param2 postId
|
||||||
func PostComments(ctx context.Context, postId uint64, _ ...any) ([]uint64, error) {
|
func PostComments(args ...any) ([]uint64, error) {
|
||||||
r, err := model.ChunkFind[models.Comments](ctx, 300, model.Conditions(
|
ctx := args[0].(context.Context)
|
||||||
|
postId := args[1].(uint64)
|
||||||
|
r, err := model.Finds[models.Comments](ctx, model.Conditions(
|
||||||
model.Where(model.SqlBuilder{
|
model.Where(model.SqlBuilder{
|
||||||
{"comment_approved", "1"},
|
{"comment_approved", "1"},
|
||||||
{"comment_post_ID", "=", number.IntToString(postId), "int"},
|
{"comment_post_ID", "=", number.IntToString(postId), "int"},
|
||||||
|
@ -52,132 +50,17 @@ func PostComments(ctx context.Context, postId uint64, _ ...any) ([]uint64, error
|
||||||
}), err
|
}), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetCommentByIds(ctx context.Context, ids []uint64, _ ...any) (map[uint64]models.Comments, error) {
|
func GetCommentByIds(args ...any) (map[uint64]models.Comments, error) {
|
||||||
if len(ids) < 1 {
|
ctx := args[0].(context.Context)
|
||||||
return nil, nil
|
ids := args[1].([]uint64)
|
||||||
}
|
|
||||||
m := make(map[uint64]models.Comments)
|
m := make(map[uint64]models.Comments)
|
||||||
off := 0
|
r, err := model.SimpleFind[models.Comments](ctx, model.SqlBuilder{
|
||||||
for {
|
|
||||||
id := slice.Slice(ids, off, 500)
|
|
||||||
if len(id) < 1 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
r, err := model.Finds[models.Comments](ctx, model.Conditions(
|
|
||||||
model.Where(model.SqlBuilder{
|
|
||||||
{"comment_ID", "in", ""}, {"comment_approved", "1"},
|
{"comment_ID", "in", ""}, {"comment_approved", "1"},
|
||||||
}),
|
}, "*", slice.ToAnySlice(ids))
|
||||||
model.Fields("*"),
|
|
||||||
model.In(slice.ToAnySlice(id)),
|
|
||||||
))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return m, err
|
return m, err
|
||||||
}
|
}
|
||||||
for _, comments := range r {
|
return slice.SimpleToMap(r, func(t models.Comments) uint64 {
|
||||||
m[comments.CommentId] = comments
|
|
||||||
}
|
|
||||||
off += 500
|
|
||||||
}
|
|
||||||
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func CommentNum(ctx context.Context, postId uint64, _ ...any) (int, error) {
|
|
||||||
n, err := model.GetField[models.Posts](ctx, "comment_count", model.Conditions(
|
|
||||||
model.Where(model.SqlBuilder{{"ID", "=", number.IntToString(postId), "int"}})))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return str.ToInteger(n, 0), err
|
|
||||||
}
|
|
||||||
|
|
||||||
func PostTopCommentNum(ctx context.Context, postId uint64, _ ...any) (int, error) {
|
|
||||||
v, err := model.GetField[models.Comments](ctx, "count(*) num", model.Conditions(
|
|
||||||
model.Where(postTopCommentNumWhere(postId)),
|
|
||||||
))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return str.ToInteger(v, 0), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func postTopCommentNumWhere(postId uint64) model.SqlBuilder {
|
|
||||||
threadComments := wpconfig.GetOption("thread_comments")
|
|
||||||
pageComments := wpconfig.GetOption("page_comments")
|
|
||||||
where := model.SqlBuilder{
|
|
||||||
{"comment_approved", "1"},
|
|
||||||
{"comment_post_ID", "=", number.IntToString(postId), "int"},
|
|
||||||
}
|
|
||||||
if pageComments != "1" || threadComments == "1" || "1" == wpconfig.GetOption("thread_comments_depth") {
|
|
||||||
where = append(where, []string{"comment_parent", "0"})
|
|
||||||
}
|
|
||||||
return where
|
|
||||||
}
|
|
||||||
|
|
||||||
func PostCommentsIds(ctx context.Context, postId uint64, page, limit, totalRaw int, order string) ([]uint64, int, error) {
|
|
||||||
condition := model.Conditions(
|
|
||||||
model.Where(postTopCommentNumWhere(postId)),
|
|
||||||
model.TotalRaw(totalRaw),
|
|
||||||
model.Fields("comment_ID"),
|
|
||||||
model.Order(model.SqlBuilder{
|
|
||||||
{"comment_date_gmt", order},
|
|
||||||
{"comment_ID", "asc"},
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
var r []models.Comments
|
|
||||||
var total int
|
|
||||||
var err error
|
|
||||||
if limit < 1 {
|
|
||||||
r, err = model.ChunkFind[models.Comments](ctx, 300, condition)
|
|
||||||
total = len(r)
|
|
||||||
} else {
|
|
||||||
r, total, err = model.Pagination[models.Comments](ctx, condition, page, limit)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil && errors.Is(err, sql.ErrNoRows) {
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
return slice.Map(r, func(t models.Comments) uint64 {
|
|
||||||
return t.CommentId
|
return t.CommentId
|
||||||
}), total, err
|
}), err
|
||||||
}
|
|
||||||
|
|
||||||
func CommentChildren(ctx context.Context, commentIds []uint64, _ ...any) (r map[uint64][]uint64, err error) {
|
|
||||||
rr, err := model.Finds[models.Comments](ctx, model.Conditions(
|
|
||||||
model.Where(model.SqlBuilder{
|
|
||||||
{"comment_parent", "in", ""},
|
|
||||||
{"comment_approved", "1"},
|
|
||||||
}),
|
|
||||||
model.In(slice.ToAnySlice(commentIds)),
|
|
||||||
model.Fields("comment_ID,comment_parent"),
|
|
||||||
))
|
|
||||||
if err != nil {
|
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
rrr := slice.GroupBy(rr, func(v models.Comments) (uint64, uint64) {
|
|
||||||
return v.CommentParent, v.CommentId
|
|
||||||
})
|
|
||||||
r = make(map[uint64][]uint64)
|
|
||||||
for _, id := range commentIds {
|
|
||||||
r[id] = rrr[id]
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func PreviousCommentNum(ctx context.Context, commentId, postId uint64) (int, error) {
|
|
||||||
v, err := model.GetField[models.Comments](ctx, "count(*)", model.Conditions(
|
|
||||||
model.Where(model.SqlBuilder{
|
|
||||||
{"comment_approved", "1"},
|
|
||||||
{"comment_post_ID", "=", number.IntToString(postId), "int"},
|
|
||||||
{"comment_ID", "<", number.IntToString(commentId), "int"},
|
|
||||||
{"comment_parent", "=", "0", "int"},
|
|
||||||
}),
|
|
||||||
))
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
return str.ToInteger(v, 0), nil
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,14 +21,18 @@ type PostContext struct {
|
||||||
Next models.Posts
|
Next models.Posts
|
||||||
}
|
}
|
||||||
|
|
||||||
func CategoriesAndTags(ctx context.Context, t string, _ ...any) (terms []models.TermsMy, err error) {
|
func CategoriesAndTags(a ...any) (terms []models.TermsMy, err error) {
|
||||||
|
ctx := a[0].(context.Context)
|
||||||
|
t, ok := a[1].(string)
|
||||||
var in = []any{"category", "post_tag"}
|
var in = []any{"category", "post_tag"}
|
||||||
|
if ok {
|
||||||
switch t {
|
switch t {
|
||||||
case constraints.Category:
|
case constraints.Category:
|
||||||
in = []any{"category"}
|
in = []any{"category"}
|
||||||
case constraints.Tag:
|
case constraints.Tag:
|
||||||
in = []any{"post_tag"}
|
in = []any{"post_tag"}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
w := model.SqlBuilder{
|
w := model.SqlBuilder{
|
||||||
{"tt.taxonomy", "in", ""},
|
{"tt.taxonomy", "in", ""},
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,10 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetPostMetaByPostIds(ctx context.Context, ids []uint64, _ ...any) (r map[uint64]map[string]any, err error) {
|
func GetPostMetaByPostIds(args ...any) (r map[uint64]map[string]any, err error) {
|
||||||
r = make(map[uint64]map[string]any)
|
r = make(map[uint64]map[string]any)
|
||||||
|
ctx := args[0].(context.Context)
|
||||||
|
ids := args[1].([]uint64)
|
||||||
rr, err := model.Finds[models.PostMeta](ctx, model.Conditions(
|
rr, err := model.Finds[models.PostMeta](ctx, model.Conditions(
|
||||||
model.Where(model.SqlBuilder{{"post_id", "in", ""}}),
|
model.Where(model.SqlBuilder{{"post_id", "in", ""}}),
|
||||||
model.In(slice.ToAnySlice(ids)),
|
model.In(slice.ToAnySlice(ids)),
|
||||||
|
|
|
@ -3,7 +3,6 @@ package dao
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models/relation"
|
"github.com/fthvgb1/wp-go/app/pkg/models/relation"
|
||||||
|
@ -16,8 +15,10 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetPostsByIds(ctx context.Context, ids []uint64, _ ...any) (m map[uint64]models.Posts, err error) {
|
func GetPostsByIds(a ...any) (m map[uint64]models.Posts, err error) {
|
||||||
|
ctx := a[0].(context.Context)
|
||||||
m = make(map[uint64]models.Posts)
|
m = make(map[uint64]models.Posts)
|
||||||
|
ids := a[1].([]uint64)
|
||||||
q := model.Conditions(
|
q := model.Conditions(
|
||||||
model.Where(model.SqlBuilder{{"Id", "in", ""}}),
|
model.Where(model.SqlBuilder{{"Id", "in", ""}}),
|
||||||
model.Join(model.SqlBuilder{
|
model.Join(model.SqlBuilder{
|
||||||
|
@ -65,7 +66,6 @@ func GetPostsByIds(ctx context.Context, ids []uint64, _ ...any) (m map[uint64]mo
|
||||||
}
|
}
|
||||||
mm, ok := meta[pp.Id]
|
mm, ok := meta[pp.Id]
|
||||||
if ok {
|
if ok {
|
||||||
pp.Metas = mm
|
|
||||||
attMeta, ok := mm["_wp_attachment_metadata"]
|
attMeta, ok := mm["_wp_attachment_metadata"]
|
||||||
if ok {
|
if ok {
|
||||||
att, ok := attMeta.(models.WpAttachmentMetadata)
|
att, ok := attMeta.(models.WpAttachmentMetadata)
|
||||||
|
@ -98,10 +98,11 @@ func GetPostsByIds(ctx context.Context, ids []uint64, _ ...any) (m map[uint64]mo
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func SearchPostIds(ctx context.Context, _ string, args ...any) (ids PostIds, err error) {
|
func SearchPostIds(args ...any) (ids PostIds, err error) {
|
||||||
q := args[0].(*model.QueryCondition)
|
ctx := args[0].(context.Context)
|
||||||
page := args[1].(int)
|
q := args[1].(*model.QueryCondition)
|
||||||
pageSize := args[2].(int)
|
page := args[2].(int)
|
||||||
|
pageSize := args[3].(int)
|
||||||
q.Fields = "ID"
|
q.Fields = "ID"
|
||||||
res, total, err := model.Pagination[models.Posts](ctx, q, page, pageSize)
|
res, total, err := model.Pagination[models.Posts](ctx, q, page, pageSize)
|
||||||
for _, posts := range res {
|
for _, posts := range res {
|
||||||
|
@ -116,19 +117,11 @@ func SearchPostIds(ctx context.Context, _ string, args ...any) (ids PostIds, err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMaxPostId(ctx context.Context, _ ...any) (uint64, error) {
|
func GetMaxPostId(a ...any) (uint64, error) {
|
||||||
r, err := model.Finds[models.Posts](ctx,
|
ctx := a[0].(context.Context)
|
||||||
model.Conditions(
|
r, err := model.SimpleFind[models.Posts](ctx,
|
||||||
model.Where(model.SqlBuilder{
|
model.SqlBuilder{{"post_type", "post"}, {"post_status", "publish"}},
|
||||||
{"post_type", "post"},
|
"max(ID) ID",
|
||||||
{"post_status", "publish"}},
|
|
||||||
),
|
|
||||||
model.Fields("ID"),
|
|
||||||
model.Order(model.SqlBuilder{
|
|
||||||
{"ID", "desc"},
|
|
||||||
}),
|
|
||||||
model.Limit(1),
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
var id uint64
|
var id uint64
|
||||||
if len(r) > 0 {
|
if len(r) > 0 {
|
||||||
|
@ -137,8 +130,9 @@ func GetMaxPostId(ctx context.Context, _ ...any) (uint64, error) {
|
||||||
return id, err
|
return id, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func RecentPosts(ctx context.Context, a ...any) (r []models.Posts, err error) {
|
func RecentPosts(a ...any) (r []models.Posts, err error) {
|
||||||
num := helper.ParseArgs(10, a...)
|
ctx := a[0].(context.Context)
|
||||||
|
num := a[1].(int)
|
||||||
r, err = model.Finds[models.Posts](ctx, model.Conditions(
|
r, err = model.Finds[models.Posts](ctx, model.Conditions(
|
||||||
model.Where(model.SqlBuilder{
|
model.Where(model.SqlBuilder{
|
||||||
{"post_type", "post"},
|
{"post_type", "post"},
|
||||||
|
@ -151,14 +145,15 @@ func RecentPosts(ctx context.Context, a ...any) (r []models.Posts, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPostContext(ctx context.Context, _ uint64, arg ...any) (r PostContext, err error) {
|
func GetPostContext(arg ...any) (r PostContext, err error) {
|
||||||
t := arg[0].(time.Time)
|
ctx := arg[0].(context.Context)
|
||||||
|
t := arg[1].(time.Time)
|
||||||
next, err := model.FirstOne[models.Posts](ctx, model.SqlBuilder{
|
next, err := model.FirstOne[models.Posts](ctx, model.SqlBuilder{
|
||||||
{"post_date", ">", t.Format("2006-01-02 15:04:05")},
|
{"post_date", ">", t.Format("2006-01-02 15:04:05")},
|
||||||
{"post_status", "in", ""},
|
{"post_status", "in", ""},
|
||||||
{"post_type", "post"},
|
{"post_type", "post"},
|
||||||
}, "ID,post_title,post_password", nil, []any{"publish"})
|
}, "ID,post_title,post_password", nil, []any{"publish"})
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if err == sql.ErrNoRows {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -169,7 +164,7 @@ func GetPostContext(ctx context.Context, _ uint64, arg ...any) (r PostContext, e
|
||||||
{"post_status", "in", ""},
|
{"post_status", "in", ""},
|
||||||
{"post_type", "post"},
|
{"post_type", "post"},
|
||||||
}, "ID,post_title", model.SqlBuilder{{"post_date", "desc"}}, []any{"publish"})
|
}, "ID,post_title", model.SqlBuilder{{"post_date", "desc"}}, []any{"publish"})
|
||||||
if errors.Is(err, sql.ErrNoRows) {
|
if err == sql.ErrNoRows {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -182,8 +177,9 @@ func GetPostContext(ctx context.Context, _ uint64, arg ...any) (r PostContext, e
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func MonthPost(ctx context.Context, _ string, args ...any) (r []uint64, err error) {
|
func MonthPost(args ...any) (r []uint64, err error) {
|
||||||
year, month := args[0].(string), args[1].(string)
|
ctx := args[0].(context.Context)
|
||||||
|
year, month := args[1].(string), args[2].(string)
|
||||||
where := model.SqlBuilder{
|
where := model.SqlBuilder{
|
||||||
{"post_type", "post"},
|
{"post_type", "post"},
|
||||||
{"post_status", "publish"},
|
{"post_status", "publish"},
|
||||||
|
|
|
@ -7,26 +7,31 @@ import (
|
||||||
"github.com/fthvgb1/wp-go/model"
|
"github.com/fthvgb1/wp-go/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetUserById(ctx context.Context, uid uint64, _ ...any) (r models.Users, err error) {
|
func GetUserById(a ...any) (r models.Users, err error) {
|
||||||
|
ctx := a[0].(context.Context)
|
||||||
|
uid := a[1].(uint64)
|
||||||
r, err = model.FindOneById[models.Users](ctx, uid)
|
r, err = model.FindOneById[models.Users](ctx, uid)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func AllUsername(ctx context.Context, _ ...any) (map[string]uint64, error) {
|
func AllUsername(a ...any) (map[string]struct{}, error) {
|
||||||
|
ctx := a[0].(context.Context)
|
||||||
r, err := model.SimpleFind[models.Users](ctx, model.SqlBuilder{
|
r, err := model.SimpleFind[models.Users](ctx, model.SqlBuilder{
|
||||||
{"user_status", "=", "0", "int"},
|
{"user_status", "=", "0", "int"},
|
||||||
}, "display_name,ID")
|
}, "user_login")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return slice.ToMap(r, func(t models.Users) (string, uint64) {
|
return slice.ToMap(r, func(t models.Users) (string, struct{}) {
|
||||||
return t.DisplayName, t.Id
|
return t.UserLogin, struct{}{}
|
||||||
}, true), nil
|
}, true), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserByName(ctx context.Context, u string, _ ...any) (r models.Users, err error) {
|
func GetUserByName(a ...any) (r models.Users, err error) {
|
||||||
|
u := a[1].(string)
|
||||||
|
ctx := a[0].(context.Context)
|
||||||
r, err = model.FirstOne[models.Users](ctx, model.SqlBuilder{{
|
r, err = model.FirstOne[models.Users](ctx, model.SqlBuilder{{
|
||||||
"display_name", u,
|
"user_login", u,
|
||||||
}}, "*", nil)
|
}}, "*", nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,21 +3,14 @@ package db
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/fthvgb1/wp-go/model"
|
"github.com/fthvgb1/wp-go/model"
|
||||||
"github.com/fthvgb1/wp-go/safety"
|
"github.com/fthvgb1/wp-go/safety"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
"log"
|
"log"
|
||||||
"runtime"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var safeDb = safety.NewVar[*sqlx.DB](nil)
|
var safeDb = safety.NewVar[*sqlx.DB](nil)
|
||||||
var showQuerySql func() bool
|
|
||||||
|
|
||||||
func GetSqlxDB() *sqlx.DB {
|
|
||||||
return safeDb.Load()
|
|
||||||
}
|
|
||||||
|
|
||||||
func InitDb() (*safety.Var[*sqlx.DB], error) {
|
func InitDb() (*safety.Var[*sqlx.DB], error) {
|
||||||
c := config.GetConfig()
|
c := config.GetConfig()
|
||||||
|
@ -43,11 +36,6 @@ func InitDb() (*safety.Var[*sqlx.DB], error) {
|
||||||
if preDb != nil {
|
if preDb != nil {
|
||||||
_ = preDb.Close()
|
_ = preDb.Close()
|
||||||
}
|
}
|
||||||
if showQuerySql == nil {
|
|
||||||
showQuerySql = reload.BuildFnVal("showQuerySql", false, func() bool {
|
|
||||||
return config.GetConfig().ShowQuerySql
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return safeDb, err
|
return safeDb, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,20 +44,14 @@ func QueryDb(db *safety.Var[*sqlx.DB]) *model.SqlxQuery {
|
||||||
nil,
|
nil,
|
||||||
nil))
|
nil))
|
||||||
model.SetSelect(query, func(ctx context.Context, a any, s string, args ...any) error {
|
model.SetSelect(query, func(ctx context.Context, a any, s string, args ...any) error {
|
||||||
if showQuerySql() {
|
if config.GetConfig().ShowQuerySql {
|
||||||
_, f, l, _ := runtime.Caller(5)
|
go log.Println(model.FormatSql(s, args...))
|
||||||
go func() {
|
|
||||||
log.Printf("%v:%v %v\n", f, l, model.FormatSql(s, args...))
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
return query.Selects(ctx, a, s, args...)
|
return query.Selects(ctx, a, s, args...)
|
||||||
})
|
})
|
||||||
model.SetGet(query, func(ctx context.Context, a any, s string, args ...any) error {
|
model.SetGet(query, func(ctx context.Context, a any, s string, args ...any) error {
|
||||||
if showQuerySql() {
|
if config.GetConfig().ShowQuerySql {
|
||||||
_, f, l, _ := runtime.Caller(5)
|
go log.Println(model.FormatSql(s, args...))
|
||||||
go func() {
|
|
||||||
log.Printf("%v:%v %v\n", f, l, model.FormatSql(s, args...))
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
return query.Gets(ctx, a, s, args...)
|
return query.Gets(ctx, a, s, args...)
|
||||||
})
|
})
|
||||||
|
|
|
@ -15,24 +15,20 @@ var logs = safety.NewVar[*log.Logger](nil)
|
||||||
var logFile = safety.NewVar[*os.File](nil)
|
var logFile = safety.NewVar[*os.File](nil)
|
||||||
|
|
||||||
func InitLogger() error {
|
func InitLogger() error {
|
||||||
c := config.GetConfig()
|
|
||||||
return SetLogger(c.LogOutput)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetLogger(loggerFile string) error {
|
|
||||||
if loggerFile == "" {
|
|
||||||
loggerFile = "stderr"
|
|
||||||
}
|
|
||||||
preFD := logFile.Load()
|
preFD := logFile.Load()
|
||||||
l := &log.Logger{}
|
l := &log.Logger{}
|
||||||
|
c := config.GetConfig()
|
||||||
|
if c.LogOutput == "" {
|
||||||
|
c.LogOutput = "stderr"
|
||||||
|
}
|
||||||
var out io.Writer
|
var out io.Writer
|
||||||
switch loggerFile {
|
switch c.LogOutput {
|
||||||
case "stdout":
|
case "stdout":
|
||||||
out = os.Stdout
|
out = os.Stdout
|
||||||
case "stderr":
|
case "stderr":
|
||||||
out = os.Stderr
|
out = os.Stderr
|
||||||
default:
|
default:
|
||||||
file, err := os.OpenFile(loggerFile, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0777)
|
file, err := os.OpenFile(c.LogOutput, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0777)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,6 @@ type Comments struct {
|
||||||
UserId uint64 `gorm:"column:user_id" db:"user_id" json:"user_id" form:"user_id"`
|
UserId uint64 `gorm:"column:user_id" db:"user_id" json:"user_id" form:"user_id"`
|
||||||
//扩展字段
|
//扩展字段
|
||||||
PostTitle string `db:"post_title"`
|
PostTitle string `db:"post_title"`
|
||||||
UpdateTime time.Time `gorm:"update_time" form:"update_time" json:"update_time" db:"update_time"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w Comments) PrimaryKey() string {
|
func (w Comments) PrimaryKey() string {
|
||||||
|
@ -30,8 +29,3 @@ func (w Comments) PrimaryKey() string {
|
||||||
func (w Comments) Table() string {
|
func (w Comments) Table() string {
|
||||||
return "wp_comments"
|
return "wp_comments"
|
||||||
}
|
}
|
||||||
|
|
||||||
type PostComments struct {
|
|
||||||
Comments
|
|
||||||
Children []uint64
|
|
||||||
}
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ type WpAttachmentMetadata struct {
|
||||||
FileSize int `json:"filesize,omitempty"`
|
FileSize int `json:"filesize,omitempty"`
|
||||||
Sizes map[string]MetaDataFileSize `json:"sizes,omitempty"`
|
Sizes map[string]MetaDataFileSize `json:"sizes,omitempty"`
|
||||||
ImageMeta ImageMeta `json:"image_meta"`
|
ImageMeta ImageMeta `json:"image_meta"`
|
||||||
VideoMeta
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ImageMeta struct {
|
type ImageMeta struct {
|
||||||
|
@ -40,16 +39,6 @@ type ImageMeta struct {
|
||||||
Keywords []string `json:"keywords,omitempty"`
|
Keywords []string `json:"keywords,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type VideoMeta struct {
|
|
||||||
Bitrate int `json:"bitrate,omitempty"`
|
|
||||||
MimeType string `json:"mime_type,omitempty"`
|
|
||||||
Length int `json:"length,omitempty"`
|
|
||||||
LengthFormatted string `json:"length_formatted,omitempty"`
|
|
||||||
FileFormat string `json:"fileformat,omitempty"`
|
|
||||||
DataFormat string `json:"dataformat,omitempty"`
|
|
||||||
CreatedTimestamp int64 `json:"created_timestamp"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type MetaDataFileSize struct {
|
type MetaDataFileSize struct {
|
||||||
File string `json:"file,omitempty"`
|
File string `json:"file,omitempty"`
|
||||||
Width int `json:"width,omitempty"`
|
Width int `json:"width,omitempty"`
|
||||||
|
|
|
@ -40,7 +40,6 @@ type Posts struct {
|
||||||
IsSticky bool
|
IsSticky bool
|
||||||
Thumbnail PostThumbnail
|
Thumbnail PostThumbnail
|
||||||
AttachmentMetadata WpAttachmentMetadata
|
AttachmentMetadata WpAttachmentMetadata
|
||||||
Metas map[string]any
|
|
||||||
Author *Users
|
Author *Users
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
package plugins
|
package plugins
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
"github.com/fthvgb1/wp-go/app/wpconfig"
|
||||||
"github.com/fthvgb1/wp-go/helper/number"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
"github.com/fthvgb1/wp-go/helper/slice"
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
str "github.com/fthvgb1/wp-go/helper/strings"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -19,7 +18,6 @@ type CommentHandler struct {
|
||||||
depth int
|
depth int
|
||||||
isTls bool
|
isTls bool
|
||||||
i CommentHtml
|
i CommentHtml
|
||||||
isThreadComments bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Comments struct {
|
type Comments struct {
|
||||||
|
@ -28,18 +26,19 @@ type Comments struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type CommentHtml interface {
|
type CommentHtml interface {
|
||||||
FormatLi(c context.Context, m models.Comments, depth, maxDepth, page int, isTls, isThreadComments bool, eo, parent string) string
|
Sort(i, j *Comments) bool
|
||||||
FloorOrder(i, j models.Comments) bool
|
FormatLi(c *gin.Context, m models.Comments, depth int, isTls bool, eo, parent string) string
|
||||||
}
|
}
|
||||||
|
|
||||||
func FormatComments(c *gin.Context, i CommentHtml, comments []models.Comments, maxDepth int) string {
|
func FormatComments(c *gin.Context, i CommentHtml, comments []models.Comments, maxDepth int) string {
|
||||||
tree := treeComments(comments)
|
tree := treeComments(comments)
|
||||||
|
u := c.Request.Header.Get("Referer")
|
||||||
var isTls bool
|
var isTls bool
|
||||||
if c.Request.TLS != nil {
|
if u != "" {
|
||||||
|
uu, _ := url.Parse(u)
|
||||||
|
if uu.Scheme == "https" {
|
||||||
isTls = true
|
isTls = true
|
||||||
} else {
|
}
|
||||||
isTls = "https" == strings.ToLower(c.Request.Header.Get("X-Forwarded-Proto"))
|
|
||||||
}
|
}
|
||||||
h := CommentHandler{
|
h := CommentHandler{
|
||||||
Context: c,
|
Context: c,
|
||||||
|
@ -49,21 +48,15 @@ func FormatComments(c *gin.Context, i CommentHtml, comments []models.Comments, m
|
||||||
isTls: isTls,
|
isTls: isTls,
|
||||||
i: i,
|
i: i,
|
||||||
}
|
}
|
||||||
return h.formatComment(h.comments)
|
return h.formatComment(h.comments, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d CommentHandler) formatComment(comments []*Comments) (html string) {
|
func (d CommentHandler) formatComment(comments []*Comments, isTop bool) (html string) {
|
||||||
s := str.NewBuilder()
|
s := str.NewBuilder()
|
||||||
if d.depth >= d.maxDepth {
|
if d.depth > d.maxDepth {
|
||||||
comments = d.findComments(comments)
|
comments = d.findComments(comments)
|
||||||
}
|
}
|
||||||
order := wpconfig.GetOption("comment_order")
|
slice.Sort(comments, d.i.Sort)
|
||||||
slice.Sort(comments, func(i, j *Comments) bool {
|
|
||||||
if order == "asc" {
|
|
||||||
return i.CommentDate.Sub(j.CommentDate) < 0
|
|
||||||
}
|
|
||||||
return i.CommentDate.Sub(j.CommentDate) > 0
|
|
||||||
})
|
|
||||||
for i, comment := range comments {
|
for i, comment := range comments {
|
||||||
eo := "even"
|
eo := "even"
|
||||||
if (i+1)%2 == 0 {
|
if (i+1)%2 == 0 {
|
||||||
|
@ -75,11 +68,13 @@ func (d CommentHandler) formatComment(comments []*Comments) (html string) {
|
||||||
parent = "parent"
|
parent = "parent"
|
||||||
fl = true
|
fl = true
|
||||||
}
|
}
|
||||||
s.WriteString(d.i.FormatLi(d.Context, comment.Comments, d.depth, d.maxDepth, 1, d.isTls, d.isThreadComments, eo, parent))
|
s.WriteString(d.i.FormatLi(d.Context, comment.Comments, d.depth, d.isTls, eo, parent))
|
||||||
if fl {
|
if fl {
|
||||||
d.depth++
|
d.depth++
|
||||||
s.WriteString(`<ol class="children">`, d.formatComment(comment.Children), `</ol>`)
|
s.WriteString(`<ol class="children">`, d.formatComment(comment.Children, false), `</ol>`)
|
||||||
d.depth--
|
if isTop {
|
||||||
|
d.depth = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
s.WriteString("</li><!-- #comment-## -->")
|
s.WriteString("</li><!-- #comment-## -->")
|
||||||
}
|
}
|
||||||
|
@ -92,7 +87,7 @@ func (d CommentHandler) findComments(comments []*Comments) []*Comments {
|
||||||
var r []*Comments
|
var r []*Comments
|
||||||
for _, comment := range comments {
|
for _, comment := range comments {
|
||||||
tmp := *comment
|
tmp := *comment
|
||||||
tmp.Children = nil
|
comment.Children = nil
|
||||||
r = append(r, &tmp)
|
r = append(r, &tmp)
|
||||||
if len(comment.Children) > 0 {
|
if len(comment.Children) > 0 {
|
||||||
t := d.findComments(comment.Children)
|
t := d.findComments(comment.Children)
|
||||||
|
@ -142,35 +137,16 @@ func CommentRender() CommonCommentFormat {
|
||||||
type CommonCommentFormat struct {
|
type CommonCommentFormat struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c CommonCommentFormat) FormatLi(_ context.Context, m models.Comments, currentDepth, maxDepth, page int, isTls, isThreadComments bool, eo, parent string) string {
|
func (c CommonCommentFormat) Sort(i, j *Comments) bool {
|
||||||
return FormatLi(li, m, respondsFn, currentDepth, maxDepth, page, isTls, isThreadComments, eo, parent)
|
order := wpconfig.GetOption("comment_order")
|
||||||
|
if order == "asc" {
|
||||||
|
return i.CommentDate.UnixNano() < j.CommentDate.UnixNano()
|
||||||
|
}
|
||||||
|
return i.CommentDate.UnixNano() > j.CommentDate.UnixNano()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c CommonCommentFormat) FloorOrder(i, j models.Comments) bool {
|
func (c CommonCommentFormat) FormatLi(ctx *gin.Context, m models.Comments, depth int, isTls bool, eo, parent string) string {
|
||||||
return i.CommentId > j.CommentId
|
return FormatLi(CommonLi(), ctx, m, depth, isTls, eo, parent)
|
||||||
}
|
|
||||||
|
|
||||||
type RespondFn func(m models.Comments, depth, maxDepth int, isThreadComments bool) string
|
|
||||||
|
|
||||||
var respondsFn = Responds(respondTml)
|
|
||||||
|
|
||||||
func RespondsFn() RespondFn {
|
|
||||||
return respondsFn
|
|
||||||
}
|
|
||||||
|
|
||||||
func Responds(respondTml string) RespondFn {
|
|
||||||
return func(m models.Comments, depth, maxDepth int, isThreadComments bool) string {
|
|
||||||
if !isThreadComments || depth >= maxDepth {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
pId := number.IntToString(m.CommentPostId)
|
|
||||||
cId := number.IntToString(m.CommentId)
|
|
||||||
return str.Replace(respondTml, map[string]string{
|
|
||||||
"{{PostId}}": pId,
|
|
||||||
"{{CommentId}}": cId,
|
|
||||||
"{{CommentAuthor}}": m.CommentAuthor,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var li = `
|
var li = `
|
||||||
|
@ -182,11 +158,14 @@ var li = `
|
||||||
src="{{Gravatar}}"
|
src="{{Gravatar}}"
|
||||||
srcset="{{Gravatar}} 2x"
|
srcset="{{Gravatar}} 2x"
|
||||||
class="avatar avatar-56 photo" height="56" width="56" loading="lazy">
|
class="avatar avatar-56 photo" height="56" width="56" loading="lazy">
|
||||||
<b class="fn">{{CommentAuthor}}</b>
|
<b class="fn">
|
||||||
|
<a href="{{CommentAuthorUrl}}" rel="external nofollow ugc"
|
||||||
|
class="url">{{CommentAuthor}}</a>
|
||||||
|
</b>
|
||||||
<span class="says">说道:</span></div><!-- .comment-author -->
|
<span class="says">说道:</span></div><!-- .comment-author -->
|
||||||
|
|
||||||
<div class="comment-metadata">
|
<div class="comment-metadata">
|
||||||
<a href="/p/{{PostId}}/comment-page-{{page}}#comment-{{CommentId}}">
|
<a href="/p/{{PostId}}#comment-{{CommentId}}">
|
||||||
<time datetime="{{CommentDateGmt}}">{{CommentDate}}</time>
|
<time datetime="{{CommentDateGmt}}">{{CommentDate}}</time>
|
||||||
</a></div><!-- .comment-metadata -->
|
</a></div><!-- .comment-metadata -->
|
||||||
|
|
||||||
|
@ -196,34 +175,30 @@ var li = `
|
||||||
<p>{{CommentContent}}</p>
|
<p>{{CommentContent}}</p>
|
||||||
</div><!-- .comment-content -->
|
</div><!-- .comment-content -->
|
||||||
|
|
||||||
{{respond}}
|
<div class="reply">
|
||||||
</article><!-- .comment-body -->
|
|
||||||
|
|
||||||
`
|
|
||||||
|
|
||||||
var respondTml = `<div class="reply">
|
|
||||||
<a rel="nofollow" class="comment-reply-link"
|
<a rel="nofollow" class="comment-reply-link"
|
||||||
href="/p/{{PostId}}?replytocom={{CommentId}}#respond" data-commentid="{{CommentId}}" data-postid="{{PostId}}"
|
href="/p/{{PostId}}?replytocom={{CommentId}}#respond" data-commentid="{{CommentId}}" data-postid="{{PostId}}"
|
||||||
data-belowelement="div-comment-{{CommentId}}" data-respondelement="respond"
|
data-belowelement="div-comment-{{CommentId}}" data-respondelement="respond"
|
||||||
data-replyto="回复给{{CommentAuthor}}"
|
data-replyto="回复给{{CommentAuthor}}"
|
||||||
aria-label="回复给{{CommentAuthor}}">回复</a>
|
aria-label="回复给{{CommentAuthor}}">回复</a>
|
||||||
</div>`
|
</div>
|
||||||
|
</article><!-- .comment-body -->
|
||||||
|
|
||||||
func FormatLi(li string, comments models.Comments, respond RespondFn, currentDepth, maxDepth, page int, isTls, isThreadComments bool, eo, parent string) string {
|
`
|
||||||
|
|
||||||
|
func FormatLi(li string, c *gin.Context, comments models.Comments, depth int, isTls bool, eo, parent string) string {
|
||||||
for k, v := range map[string]string{
|
for k, v := range map[string]string{
|
||||||
"{{CommentId}}": strconv.FormatUint(comments.CommentId, 10),
|
"{{CommentId}}": strconv.FormatUint(comments.CommentId, 10),
|
||||||
"{{Depth}}": strconv.Itoa(currentDepth),
|
"{{Depth}}": strconv.Itoa(depth),
|
||||||
"{{Gravatar}}": Gravatar(comments.CommentAuthorEmail, isTls),
|
"{{Gravatar}}": Gravatar(comments.CommentAuthorEmail, isTls),
|
||||||
"{{CommentAuthorUrl}}": comments.CommentAuthorUrl,
|
"{{CommentAuthorUrl}}": comments.CommentAuthorUrl,
|
||||||
"{{CommentAuthor}}": comments.CommentAuthor,
|
"{{CommentAuthor}}": comments.CommentAuthor,
|
||||||
"{{PostId}}": strconv.FormatUint(comments.CommentPostId, 10),
|
"{{PostId}}": strconv.FormatUint(comments.CommentPostId, 10),
|
||||||
"{{page}}": strconv.Itoa(page),
|
|
||||||
"{{CommentDateGmt}}": comments.CommentDateGmt.String(),
|
"{{CommentDateGmt}}": comments.CommentDateGmt.String(),
|
||||||
"{{CommentDate}}": comments.CommentDate.Format("2006-01-02 15:04"),
|
"{{CommentDate}}": comments.CommentDate.Format("2006-01-02 15:04"),
|
||||||
"{{CommentContent}}": comments.CommentContent,
|
"{{CommentContent}}": comments.CommentContent,
|
||||||
"{{eo}}": eo,
|
"{{eo}}": eo,
|
||||||
"{{parent}}": parent,
|
"{{parent}}": parent,
|
||||||
"{{respond}}": respond(comments, currentDepth, maxDepth, isThreadComments),
|
|
||||||
} {
|
} {
|
||||||
li = strings.Replace(li, k, v, -1)
|
li = strings.Replace(li, k, v, -1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,141 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/dao"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
|
||||||
"github.com/fthvgb1/wp-go/app/theme/wp"
|
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/number"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/strings"
|
|
||||||
"github.com/redis/go-redis/v9"
|
|
||||||
"strconv"
|
|
||||||
str "strings"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
type RdmCache[K comparable, V any] struct {
|
|
||||||
expired func() time.Duration
|
|
||||||
rdb *redis.Client
|
|
||||||
keyFn func(K) string
|
|
||||||
name string
|
|
||||||
resFn func(map[string]string) V
|
|
||||||
saveData func(V) map[string]string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) SetExpiredTime(f func() time.Duration) {
|
|
||||||
r.expired = f
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) Get(ctx context.Context, key K) (V, bool) {
|
|
||||||
var re V
|
|
||||||
result, err := r.rdb.Exists(ctx, r.keyFn(key)).Result()
|
|
||||||
if result <= 0 || err != nil {
|
|
||||||
return re, false
|
|
||||||
}
|
|
||||||
|
|
||||||
rr, err := r.rdb.HGetAll(ctx, r.keyFn(key)).Result()
|
|
||||||
|
|
||||||
if errors.Is(err, redis.Nil) {
|
|
||||||
return re, false
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
return re, false
|
|
||||||
}
|
|
||||||
return r.resFn(rr), true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) Set(ctx context.Context, key K, val V) {
|
|
||||||
k := r.keyFn(key)
|
|
||||||
result, err := r.rdb.HSet(ctx, k, r.saveData(val)).Result()
|
|
||||||
b, err := r.rdb.Expire(ctx, k, r.expired()).Result()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(result, b, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Println(result, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) GetExpireTime(ctx context.Context) time.Duration {
|
|
||||||
return r.expired()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) Ttl(ctx context.Context, key K) time.Duration {
|
|
||||||
result, err := r.rdb.TTL(ctx, r.keyFn(key)).Result()
|
|
||||||
if err != nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) Flush(ctx context.Context) {
|
|
||||||
fmt.Println("flush redis cache")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) Del(ctx context.Context, key ...K) {
|
|
||||||
r.rdb.Del(ctx, slice.Map(key, r.keyFn)...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RdmCache[K, V]) ClearExpired(ctx context.Context) {
|
|
||||||
fmt.Println("clear expired redis cache")
|
|
||||||
}
|
|
||||||
|
|
||||||
// RedisCache use step:
|
|
||||||
// 1 go build -gcflags all="-N -l" --race -buildmode=plugin -o redisCache.so main.go && cp ./redisCache.so ../wp-go/plugins/
|
|
||||||
// 2 wp-go config add redisCache plugin
|
|
||||||
func RedisCache(h *wp.Handle) {
|
|
||||||
vv, ok := cachemanager.GetMapCache[string, dao.PostIds]("listPostIds")
|
|
||||||
if ok {
|
|
||||||
_, ok := any(vv.Cache).(*RdmCache[string, dao.PostIds])
|
|
||||||
if ok {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
reload.AppendOnceFn(func() {
|
|
||||||
err := cachemanager.SetMapCache("listPostIds", vv)
|
|
||||||
if err != nil {
|
|
||||||
logs.Error(err, "set recovery listPostIds cache err")
|
|
||||||
} else {
|
|
||||||
cachemanager.PushOrSetFlush(cachemanager.Queue{Name: "listPostIds", Fn: vv.Flush})
|
|
||||||
cachemanager.PushOrSetClearExpired(cachemanager.Queue{Name: "listPostIds", Fn: vv.Flush})
|
|
||||||
fmt.Println("recovery listPostIds cache ok")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
rdm := redis.NewClient(&redis.Options{
|
|
||||||
Addr: "localhost:6379",
|
|
||||||
Password: "", // no password set
|
|
||||||
DB: 0, // use default DB
|
|
||||||
})
|
|
||||||
r := RdmCache[string, dao.PostIds]{
|
|
||||||
expired: func() time.Duration {
|
|
||||||
return time.Minute
|
|
||||||
},
|
|
||||||
keyFn: func(u string) string {
|
|
||||||
return strings.Join("postIds:", u)
|
|
||||||
},
|
|
||||||
rdb: rdm,
|
|
||||||
name: "",
|
|
||||||
resFn: func(m map[string]string) dao.PostIds {
|
|
||||||
return dao.PostIds{
|
|
||||||
Ids: slice.Map(str.Split(m["ids"], ","), strings.ToInt[uint64]),
|
|
||||||
Length: strings.ToInt[int](m["length"]),
|
|
||||||
}
|
|
||||||
},
|
|
||||||
saveData: func(ids dao.PostIds) map[string]string {
|
|
||||||
t := slice.Map(ids.Ids, number.IntToString[uint64])
|
|
||||||
return map[string]string{
|
|
||||||
"ids": str.Join(t, ","),
|
|
||||||
"length": strconv.Itoa(ids.Length),
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
cachemanager.NewMapCache[string, dao.PostIds](&r, nil, dao.SearchPostIds, config.GetConfig().CacheTime.PostListCacheTime, "listPostIds", func() time.Duration {
|
|
||||||
return config.GetConfig().CacheTime.PostListCacheTime
|
|
||||||
})
|
|
||||||
fmt.Println("redis cache inited ok")
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
module redisCache
|
|
||||||
|
|
||||||
go 1.21
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/fthvgb1/wp-go v0.0.0-20231210111549-d72bed0c8c4e
|
|
||||||
github.com/redis/go-redis/v9 v9.3.0
|
|
||||||
)
|
|
||||||
|
|
||||||
replace github.com/fthvgb1/wp-go v0.0.0-20231210111549-d72bed0c8c4e => ../wp-go
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/bytedance/sonic v1.10.2 // indirect
|
|
||||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
|
||||||
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect
|
|
||||||
github.com/chenzhuoyu/iasm v0.9.1 // indirect
|
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
|
||||||
github.com/dlclark/regexp2 v1.10.0 // indirect
|
|
||||||
github.com/elliotchance/phpserialize v1.3.3 // indirect
|
|
||||||
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
|
|
||||||
github.com/gin-contrib/sessions v0.0.5 // indirect
|
|
||||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
|
||||||
github.com/gin-gonic/gin v1.9.1 // indirect
|
|
||||||
github.com/go-playground/locales v0.14.1 // indirect
|
|
||||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
|
||||||
github.com/go-playground/validator/v10 v10.16.0 // indirect
|
|
||||||
github.com/goccy/go-json v0.10.2 // indirect
|
|
||||||
github.com/gorilla/context v1.1.2 // indirect
|
|
||||||
github.com/gorilla/securecookie v1.1.2 // indirect
|
|
||||||
github.com/gorilla/sessions v1.2.2 // indirect
|
|
||||||
github.com/jmoiron/sqlx v1.3.5 // indirect
|
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
|
||||||
github.com/klauspost/cpuid/v2 v2.2.6 // indirect
|
|
||||||
github.com/leodido/go-urn v1.2.4 // indirect
|
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
||||||
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
|
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
|
||||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
|
||||||
golang.org/x/arch v0.6.0 // indirect
|
|
||||||
golang.org/x/crypto v0.15.0 // indirect
|
|
||||||
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
|
|
||||||
golang.org/x/net v0.18.0 // indirect
|
|
||||||
golang.org/x/sys v0.14.0 // indirect
|
|
||||||
golang.org/x/text v0.14.0 // indirect
|
|
||||||
google.golang.org/protobuf v1.31.0 // indirect
|
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
||||||
)
|
|
|
@ -3,134 +3,35 @@ package plugins
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/fthvgb1/wp-go/app/cmd/cachemanager"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
"github.com/fthvgb1/wp-go/app/pkg/config"
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/logs"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/models"
|
"github.com/fthvgb1/wp-go/app/pkg/models"
|
||||||
"github.com/fthvgb1/wp-go/cache/cachemanager"
|
"github.com/fthvgb1/wp-go/cache"
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/fthvgb1/wp-go/helper"
|
"github.com/fthvgb1/wp-go/helper"
|
||||||
"github.com/fthvgb1/wp-go/helper/maps"
|
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
|
||||||
"github.com/fthvgb1/wp-go/plugin/digest"
|
"github.com/fthvgb1/wp-go/plugin/digest"
|
||||||
"github.com/fthvgb1/wp-go/safety"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"unicode/utf8"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var digestCache *cache.MapCache[uint64, string]
|
||||||
|
|
||||||
var more = regexp.MustCompile("<!--more(.*?)?-->")
|
var more = regexp.MustCompile("<!--more(.*?)?-->")
|
||||||
|
|
||||||
var removeWpBlock = regexp.MustCompile("<!-- /?wp:.*-->")
|
var removeWpBlock = regexp.MustCompile("<!-- /?wp:.*-->")
|
||||||
|
|
||||||
type DigestConfig struct {
|
|
||||||
DigestWordCount int `yaml:"digestWordCount"`
|
|
||||||
DigestAllowTag string `yaml:"digestAllowTag"`
|
|
||||||
DigestRegex string `yaml:"digestRegex"`
|
|
||||||
DigestTagOccupyNum []struct {
|
|
||||||
Tag string `yaml:"tag"`
|
|
||||||
Num int `yaml:"num"`
|
|
||||||
ChuckOvered bool `yaml:"chuckOvered"`
|
|
||||||
EscapeCharacter []struct {
|
|
||||||
Tags string `yaml:"tags"`
|
|
||||||
Character []string `yaml:"character"`
|
|
||||||
Num int `yaml:"num"`
|
|
||||||
ChuckOvered bool `yaml:"chuckOvered"`
|
|
||||||
} `yaml:"escapeCharacter"`
|
|
||||||
} `yaml:"digestTagOccupyNum"`
|
|
||||||
specialSolve map[string]digest.SpecialSolveConf
|
|
||||||
}
|
|
||||||
|
|
||||||
var digestConfig *safety.Var[DigestConfig]
|
|
||||||
|
|
||||||
func InitDigestCache() {
|
func InitDigestCache() {
|
||||||
cachemanager.NewMemoryMapCache(nil, digestRaw, config.GetConfig().CacheTime.DigestCacheTime, "digestPlugin", func() time.Duration {
|
digestCache = cachemanager.MapCacheBy[uint64](digestRaw, config.GetConfig().CacheTime.DigestCacheTime)
|
||||||
return config.GetConfig().CacheTime.DigestCacheTime
|
|
||||||
})
|
|
||||||
|
|
||||||
digestConfig = reload.VarsBy(func() DigestConfig {
|
|
||||||
c, err := config.GetCustomizedConfig[DigestConfig]()
|
|
||||||
if err != nil {
|
|
||||||
logs.Error(err, "get digest config fail")
|
|
||||||
c.DigestWordCount = config.GetConfig().DigestWordCount
|
|
||||||
c.DigestAllowTag = config.GetConfig().DigestAllowTag
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
if c.DigestRegex != "" {
|
|
||||||
digest.SetQutos(c.DigestRegex)
|
|
||||||
}
|
|
||||||
if len(c.DigestTagOccupyNum) <= 1 {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
c.specialSolve = ParseDigestConf(c)
|
|
||||||
return c
|
|
||||||
}, "digestConfig")
|
|
||||||
}
|
|
||||||
|
|
||||||
func ParseDigestConf(c DigestConfig) map[string]digest.SpecialSolveConf {
|
|
||||||
specialSolve := map[string]digest.SpecialSolveConf{}
|
|
||||||
for _, item := range c.DigestTagOccupyNum {
|
|
||||||
tags := strings.Split(strings.ReplaceAll(item.Tag, " ", ""), "<")
|
|
||||||
for _, tag := range tags {
|
|
||||||
if tag == "" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
ec := make(map[rune]digest.SpecialSolve)
|
|
||||||
specialTags := make(map[string]digest.SpecialSolve)
|
|
||||||
tag = str.Join("<", tag)
|
|
||||||
if len(item.EscapeCharacter) > 0 {
|
|
||||||
for _, esc := range item.EscapeCharacter {
|
|
||||||
for _, i := range esc.Character {
|
|
||||||
s := []rune(i)
|
|
||||||
if len(s) == 1 {
|
|
||||||
ec[s[0]] = digest.SpecialSolve{
|
|
||||||
Num: esc.Num,
|
|
||||||
ChuckOvered: esc.ChuckOvered,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if esc.Tags == "" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
tagss := strings.Split(strings.ReplaceAll(esc.Tags, " ", ""), "<")
|
|
||||||
for _, t := range tagss {
|
|
||||||
if t == "" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
t = str.Join("<", t)
|
|
||||||
specialTags[t] = digest.SpecialSolve{
|
|
||||||
Num: esc.Num,
|
|
||||||
ChuckOvered: esc.ChuckOvered,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
v, ok := specialSolve[tag]
|
|
||||||
if !ok {
|
|
||||||
specialSolve[tag] = digest.SpecialSolveConf{
|
|
||||||
Num: item.Num,
|
|
||||||
ChuckOvered: item.ChuckOvered,
|
|
||||||
EscapeCharacter: ec,
|
|
||||||
Tags: specialTags,
|
|
||||||
}
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
v.Num = item.Num
|
|
||||||
v.ChuckOvered = item.ChuckOvered
|
|
||||||
v.EscapeCharacter = maps.Merge(v.EscapeCharacter, ec)
|
|
||||||
v.Tags = maps.Merge(v.Tags, specialTags)
|
|
||||||
specialSolve[tag] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return specialSolve
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveWpBlock(s string) string {
|
func RemoveWpBlock(s string) string {
|
||||||
return removeWpBlock.ReplaceAllString(s, "")
|
return removeWpBlock.ReplaceAllString(s, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func digestRaw(ctx context.Context, id uint64, arg ...any) (string, error) {
|
func digestRaw(arg ...any) (string, error) {
|
||||||
|
ctx := arg[0].(context.Context)
|
||||||
s := arg[1].(string)
|
s := arg[1].(string)
|
||||||
|
id := arg[2].(uint64)
|
||||||
limit := arg[3].(int)
|
limit := arg[3].(int)
|
||||||
if limit < 0 {
|
if limit < 0 {
|
||||||
return s, nil
|
return s, nil
|
||||||
|
@ -146,22 +47,12 @@ func digestRaw(ctx context.Context, id uint64, arg ...any) (string, error) {
|
||||||
func Digests(content string, id uint64, limit int, fn func(id uint64, content, closeTag string) string) string {
|
func Digests(content string, id uint64, limit int, fn func(id uint64, content, closeTag string) string) string {
|
||||||
closeTag := ""
|
closeTag := ""
|
||||||
content = RemoveWpBlock(content)
|
content = RemoveWpBlock(content)
|
||||||
c := digestConfig.Load()
|
tag := config.GetConfig().DigestAllowTag
|
||||||
tag := c.DigestAllowTag
|
|
||||||
if tag == "" {
|
if tag == "" {
|
||||||
tag = "<a><b><blockquote><br><cite><code><dd><del><div><dl><dt><em><h1><h2><h3><h4><h5><h6><i><img><li><ol><p><pre><span><strong><ul>"
|
tag = "<a><b><blockquote><br><cite><code><dd><del><div><dl><dt><em><h1><h2><h3><h4><h5><h6><i><img><li><ol><p><pre><span><strong><ul>"
|
||||||
}
|
}
|
||||||
content = digest.StripTags(content, tag)
|
content = digest.StripTags(content, tag)
|
||||||
length := utf8.RuneCountInString(content) + 1
|
|
||||||
if length <= limit {
|
|
||||||
return content
|
|
||||||
}
|
|
||||||
if len(c.specialSolve) > 0 {
|
|
||||||
content, closeTag = digest.CustomizeHtml(content, limit, c.specialSolve)
|
|
||||||
} else {
|
|
||||||
content, closeTag = digest.Html(content, limit)
|
content, closeTag = digest.Html(content, limit)
|
||||||
}
|
|
||||||
|
|
||||||
if fn == nil {
|
if fn == nil {
|
||||||
return PostsMore(id, content, closeTag)
|
return PostsMore(id, content, closeTag)
|
||||||
}
|
}
|
||||||
|
@ -178,7 +69,7 @@ func PostsMore(id uint64, content, closeTag string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func Digest(ctx context.Context, post *models.Posts, limit int) {
|
func Digest(ctx context.Context, post *models.Posts, limit int) {
|
||||||
content, _ := cachemanager.GetBy[string]("digestPlugin", ctx, post.Id, time.Second, ctx, post.PostContent, post.Id, limit)
|
content, _ := digestCache.GetCache(ctx, post.Id, time.Second, ctx, post.PostContent, post.Id, limit)
|
||||||
post.PostContent = content
|
post.PostContent = content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,8 @@ package plugins
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
|
||||||
"github.com/fthvgb1/wp-go/helper"
|
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
str "github.com/fthvgb1/wp-go/helper/strings"
|
||||||
"net/url"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,13 +18,6 @@ type PageEle struct {
|
||||||
func TwentyFifteenPagination() PageEle {
|
func TwentyFifteenPagination() PageEle {
|
||||||
return twentyFifteen
|
return twentyFifteen
|
||||||
}
|
}
|
||||||
func TwentyFifteenCommentPagination() CommentPageEle {
|
|
||||||
return twentyFifteenComment
|
|
||||||
}
|
|
||||||
|
|
||||||
type CommentPageEle struct {
|
|
||||||
PageEle
|
|
||||||
}
|
|
||||||
|
|
||||||
var twentyFifteen = PageEle{
|
var twentyFifteen = PageEle{
|
||||||
PrevEle: `<a class="prev page-numbers" href="%s">上一页</a>`,
|
PrevEle: `<a class="prev page-numbers" href="%s">上一页</a>`,
|
||||||
|
@ -39,12 +28,6 @@ var twentyFifteen = PageEle{
|
||||||
CurrentEle: `<span aria-current="page" class="page-numbers current">
|
CurrentEle: `<span aria-current="page" class="page-numbers current">
|
||||||
<span class="meta-nav screen-reader-text">页 </span>%d</span>`,
|
<span class="meta-nav screen-reader-text">页 </span>%d</span>`,
|
||||||
}
|
}
|
||||||
var twentyFifteenComment = CommentPageEle{
|
|
||||||
PageEle{
|
|
||||||
PrevEle: `<div class="nav-previous"><a href="%s">%s</a></div>`,
|
|
||||||
NextEle: `<div class="nav-next"><a href="%s">%s</a></div>`,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PageEle) Current(page, totalPage, totalRow int) string {
|
func (p PageEle) Current(page, totalPage, totalRow int) string {
|
||||||
return fmt.Sprintf(p.CurrentEle, page)
|
return fmt.Sprintf(p.CurrentEle, page)
|
||||||
|
@ -67,22 +50,8 @@ func (p PageEle) Middle(page int, url string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
var reg = regexp.MustCompile(`(/page)/(\d+)`)
|
var reg = regexp.MustCompile(`(/page)/(\d+)`)
|
||||||
var commentReg = regexp.MustCompile(`/comment-page-(\d+)`)
|
|
||||||
|
|
||||||
var queryParam = []string{"paged", "cat", "m", "author", "tag"}
|
|
||||||
|
|
||||||
func (p PageEle) Urls(u url.URL, page int, isTLS bool) string {
|
|
||||||
var path, query = u.Path, u.RawQuery
|
|
||||||
if path == "/" {
|
|
||||||
v := u.Query()
|
|
||||||
for _, q := range queryParam {
|
|
||||||
if v.Get(q) != "" {
|
|
||||||
v.Set("paged", strconv.Itoa(page))
|
|
||||||
return str.Join(path, "?", v.Encode())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
func (p PageEle) Url(path, query string, page int) string {
|
||||||
if !strings.Contains(path, "/page/") {
|
if !strings.Contains(path, "/page/") {
|
||||||
path = fmt.Sprintf("%s%s", path, "/page/1")
|
path = fmt.Sprintf("%s%s", path, "/page/1")
|
||||||
}
|
}
|
||||||
|
@ -96,81 +65,5 @@ func (p PageEle) Urls(u url.URL, page int, isTLS bool) string {
|
||||||
if path == "" {
|
if path == "" {
|
||||||
path = "/"
|
path = "/"
|
||||||
}
|
}
|
||||||
if query != "" {
|
return str.Join(path, query)
|
||||||
return str.Join(path, "?", query)
|
|
||||||
}
|
|
||||||
return path
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p CommentPageEle) Urls(u url.URL, page int, isTLS bool) string {
|
|
||||||
var path, query = u.Path, u.RawQuery
|
|
||||||
if path == "/" {
|
|
||||||
v := u.Query()
|
|
||||||
if v.Get("p") != "" {
|
|
||||||
v.Set("cpage", strconv.Itoa(page))
|
|
||||||
return str.Join(path, "?", v.Encode(), "#comments")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !strings.Contains(path, "/comment-page-") {
|
|
||||||
path = fmt.Sprintf("%s%s", path, "/comment-page-1")
|
|
||||||
}
|
|
||||||
path = commentReg.ReplaceAllString(path, fmt.Sprintf("/comment-page-%d", page))
|
|
||||||
path = strings.Replace(path, "//", "/", -1)
|
|
||||||
ur := path
|
|
||||||
if query != "" {
|
|
||||||
ur = str.Join(path, "?", query)
|
|
||||||
}
|
|
||||||
ur = str.Join(ur, "#comments")
|
|
||||||
return ur
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p CommentPageEle) Middle(page int, url string) string {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
func (p CommentPageEle) Dots() string {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
func (p CommentPageEle) Current(page, totalPage, totalRow int) string {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
func (p CommentPageEle) Prev(url string) string {
|
|
||||||
return fmt.Sprintf(p.PrevEle, url, helper.Or(wpconfig.GetOption("comment_order") == "asc", "较早评论", "较新评论"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p CommentPageEle) Next(url string) string {
|
|
||||||
return fmt.Sprintf(p.NextEle, url, helper.Or(wpconfig.GetOption("comment_order") == "asc", "较新评论", "较早评论"))
|
|
||||||
}
|
|
||||||
|
|
||||||
type PaginationNav struct {
|
|
||||||
Currents func(page, totalPage, totalRows int) string
|
|
||||||
Prevs func(url string) string
|
|
||||||
Nexts func(url string) string
|
|
||||||
Dotss func() string
|
|
||||||
Middles func(page int, url string) string
|
|
||||||
Urlss func(u url.URL, page int, isTLS bool) string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PaginationNav) Current(page, totalPage, totalRows int) string {
|
|
||||||
return p.Currents(page, totalPage, totalRows)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PaginationNav) Prev(url string) string {
|
|
||||||
return p.Prevs(url)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PaginationNav) Next(url string) string {
|
|
||||||
return p.Nexts(url)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PaginationNav) Dots() string {
|
|
||||||
return p.Dotss()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PaginationNav) Middle(page int, url string) string {
|
|
||||||
return p.Middles(page, url)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p PaginationNav) Urls(u url.URL, page int, isTLS bool) string {
|
|
||||||
return p.Urlss(u, page, isTLS)
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,29 +2,12 @@ package apply
|
||||||
|
|
||||||
import "github.com/fthvgb1/wp-go/safety"
|
import "github.com/fthvgb1/wp-go/safety"
|
||||||
|
|
||||||
var contains = safety.NewMap[string, any]()
|
var fn safety.Var[any]
|
||||||
|
|
||||||
func SetVal(key string, val any) {
|
func SetFn(f any) {
|
||||||
contains.Store(key, val)
|
fn.Store(f)
|
||||||
}
|
}
|
||||||
|
|
||||||
func DelVal(key string) {
|
func UsePlugins() any {
|
||||||
contains.Delete(key)
|
return fn.Load()
|
||||||
}
|
|
||||||
|
|
||||||
func GetVal[V any](key string) (V, bool) {
|
|
||||||
v, ok := contains.Load(key)
|
|
||||||
if !ok {
|
|
||||||
var vv V
|
|
||||||
return vv, ok
|
|
||||||
}
|
|
||||||
return v.(V), ok
|
|
||||||
}
|
|
||||||
func GetRawVal(key string) (any, bool) {
|
|
||||||
return contains.Load(key)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetPlugins() any {
|
|
||||||
v, _ := contains.Load("wp-plugins")
|
|
||||||
return v
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ type Options struct {
|
||||||
Linehover bool `json:"linehover,omitempty"`
|
Linehover bool `json:"linehover,omitempty"`
|
||||||
RawcodeDbclick bool `json:"rawcodeDbclick,omitempty"`
|
RawcodeDbclick bool `json:"rawcodeDbclick,omitempty"`
|
||||||
TextOverflow string `json:"textOverflow,omitempty"`
|
TextOverflow string `json:"textOverflow,omitempty"`
|
||||||
Linenumbers bool `json:"linenumbers,omitempty"`
|
Linenumbers int64 `json:"linenumbers,omitempty"`
|
||||||
Theme string `json:"theme,omitempty"`
|
Theme string `json:"theme,omitempty"`
|
||||||
Language string `json:"language,omitempty"`
|
Language string `json:"language,omitempty"`
|
||||||
RetainCssClasses bool `json:"retainCssClasses,omitempty"`
|
RetainCssClasses bool `json:"retainCssClasses,omitempty"`
|
||||||
|
@ -58,7 +58,7 @@ func EnlighterJS(h *wp.Handle) {
|
||||||
Linehover: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-linehover", true),
|
Linehover: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-linehover", true),
|
||||||
RawcodeDbclick: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-rawcodedbclick", true),
|
RawcodeDbclick: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-rawcodedbclick", true),
|
||||||
TextOverflow: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-textoverflow", "break"),
|
TextOverflow: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-textoverflow", "break"),
|
||||||
Linenumbers: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-linenumbers", true),
|
Linenumbers: maps.GetStrAnyValWithDefaults[int64](opp, "enlighterjs-linenumbers", 1),
|
||||||
Theme: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-theme", "enlighter"),
|
Theme: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-theme", "enlighter"),
|
||||||
Language: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-language", "generic"),
|
Language: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-language", "generic"),
|
||||||
RetainCssClasses: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-retaincss", false),
|
RetainCssClasses: maps.GetStrAnyValWithDefaults(opp, "enlighterjs-retaincss", false),
|
||||||
|
|
|
@ -66,7 +66,7 @@ func LoadPlugins() {
|
||||||
}
|
}
|
||||||
RegisterPlugin(name, plu)
|
RegisterPlugin(name, plu)
|
||||||
}
|
}
|
||||||
apply.SetVal("wp-plugins", func(h *wp.Handle) {
|
apply.SetFn(func(h *wp.Handle) {
|
||||||
UsePlugins(h)
|
UsePlugins(h)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func HiddenLogin(h *wp.Handle) {
|
func HiddenLogin(h *wp.Handle) {
|
||||||
h.AddActionFilter(widgets.Meta, func(h *wp.Handle, s string, args ...any) string {
|
h.PushComponentFilterFn(widgets.Meta, func(h *wp.Handle, s string, args ...any) string {
|
||||||
return str.Replace(s, map[string]string{
|
return str.Replace(s, map[string]string{
|
||||||
`<li><a href="/wp-login.php">登录</a></li>`: "",
|
`<li><a href="/wp-login.php">登录</a></li>`: "",
|
||||||
`<li><a href="/feed">登录</a></li>`: "",
|
`<li><a href="/feed">登录</a></li>`: "",
|
||||||
|
|
|
@ -7,7 +7,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func Tt(h *wp.Handle) {
|
func Tt(h *wp.Handle) {
|
||||||
h.HookHandle(constraints.PipeMiddleware, constraints.AllScene, func(call wp.HandleCall) (wp.HandleCall, bool) {
|
h.HookHandle(constraints.PipeMiddleware, func(call wp.HandleCall) (wp.HandleCall, bool) {
|
||||||
return call, false
|
return call, false
|
||||||
})
|
})
|
||||||
/*h.PushPipeHook(constraints.Home, func(pipe wp.Pipe) (wp.Pipe, bool) {
|
/*h.PushPipeHook(constraints.Home, func(pipe wp.Pipe) (wp.Pipe, bool) {
|
||||||
|
|
|
@ -1,147 +0,0 @@
|
||||||
package route
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/fthvgb1/wp-go/app/actions"
|
|
||||||
"github.com/fthvgb1/wp-go/app/middleware"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/config"
|
|
||||||
"github.com/fthvgb1/wp-go/app/pkg/constraints"
|
|
||||||
"github.com/fthvgb1/wp-go/app/theme"
|
|
||||||
"github.com/fthvgb1/wp-go/app/wpconfig"
|
|
||||||
"github.com/fthvgb1/wp-go/cache/reload"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/slice"
|
|
||||||
"github.com/fthvgb1/wp-go/helper/slice/mockmap"
|
|
||||||
str "github.com/fthvgb1/wp-go/helper/strings"
|
|
||||||
"github.com/gin-contrib/gzip"
|
|
||||||
"github.com/gin-contrib/pprof"
|
|
||||||
"github.com/gin-contrib/sessions"
|
|
||||||
"github.com/gin-contrib/sessions/cookie"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
)
|
|
||||||
|
|
||||||
type GinSetter func(*gin.Engine)
|
|
||||||
|
|
||||||
var setters mockmap.Map[string, GinSetter]
|
|
||||||
|
|
||||||
var setterHooks []func(item mockmap.Item[string, GinSetter]) (mockmap.Item[string, GinSetter], bool)
|
|
||||||
|
|
||||||
// SetGinAction 方便插件在init时使用
|
|
||||||
func SetGinAction(name string, hook GinSetter, orders ...float64) {
|
|
||||||
setters.Set(name, hook, orders...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func HookGinSetter(fn func(item mockmap.Item[string, GinSetter]) (mockmap.Item[string, GinSetter], bool)) {
|
|
||||||
setterHooks = append(setterHooks, fn)
|
|
||||||
}
|
|
||||||
|
|
||||||
// DelGinSetter 方便插件在init时使用
|
|
||||||
func DelGinSetter(name string) {
|
|
||||||
setterHooks = append(setterHooks, func(item mockmap.Item[string, GinSetter]) (mockmap.Item[string, GinSetter], bool) {
|
|
||||||
return item, item.Name != name
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetupRouter() *gin.Engine {
|
|
||||||
// Disable Console Color
|
|
||||||
// gin.DisableConsoleColor()
|
|
||||||
r := gin.New()
|
|
||||||
c := config.GetConfig()
|
|
||||||
SetGinAction("initTrustIp", func(r *gin.Engine) {
|
|
||||||
if len(c.TrustIps) > 0 {
|
|
||||||
err := r.SetTrustedProxies(c.TrustIps)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 99.5)
|
|
||||||
|
|
||||||
SetGinAction("setTemplate", func(r *gin.Engine) {
|
|
||||||
r.HTMLRender = theme.BuildTemplate()
|
|
||||||
wpconfig.SetTemplateFs(theme.TemplateFs)
|
|
||||||
}, 90.5)
|
|
||||||
|
|
||||||
siteFlowLimitMiddleware, siteFlow := middleware.FlowLimit(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)
|
|
||||||
reload.Append(func() {
|
|
||||||
c = config.GetConfig()
|
|
||||||
siteFlow(c.MaxRequestSleepNum, c.MaxRequestNum, c.CacheTime.SleepTime)
|
|
||||||
}, "site-flowLimit-config")
|
|
||||||
|
|
||||||
SetGinAction("setGlobalMiddleware", func(r *gin.Engine) {
|
|
||||||
r.Use(
|
|
||||||
gin.Logger(),
|
|
||||||
middleware.ValidateServerNames(),
|
|
||||||
middleware.RecoverAndSendMail(gin.DefaultErrorWriter),
|
|
||||||
siteFlowLimitMiddleware,
|
|
||||||
middleware.SetStaticFileCache,
|
|
||||||
)
|
|
||||||
}, 88.5)
|
|
||||||
|
|
||||||
SetGinAction("setGzip", func(r *gin.Engine) {
|
|
||||||
//gzip 因为一般会用nginx做反代时自动使用gzip,所以go这边本身可以不用
|
|
||||||
if c.Gzip {
|
|
||||||
r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedPaths([]string{
|
|
||||||
"/wp-includes/", "/wp-content/",
|
|
||||||
})))
|
|
||||||
}
|
|
||||||
}, 87.6)
|
|
||||||
|
|
||||||
SetGinAction("setWpDir", func(r *gin.Engine) {
|
|
||||||
if c.WpDir == "" {
|
|
||||||
panic("wordpress path can't be empty")
|
|
||||||
}
|
|
||||||
r.Static("/wp-content/uploads", str.Join(c.WpDir, "/wp-content/uploads"))
|
|
||||||
r.Static("/wp-content/themes", str.Join(c.WpDir, "/wp-content/themes"))
|
|
||||||
r.Static("/wp-content/plugins", str.Join(c.WpDir, "/wp-content/plugins"))
|
|
||||||
r.Static("/wp-includes/css", str.Join(c.WpDir, "/wp-includes/css"))
|
|
||||||
r.Static("/wp-includes/fonts", str.Join(c.WpDir, "/wp-includes/fonts"))
|
|
||||||
r.Static("/wp-includes/js", str.Join(c.WpDir, "/wp-includes/js"))
|
|
||||||
}, 86.1)
|
|
||||||
|
|
||||||
SetGinAction("setSession", func(r *gin.Engine) {
|
|
||||||
store := cookie.NewStore([]byte("secret"))
|
|
||||||
r.Use(sessions.Sessions("go-wp", store))
|
|
||||||
}, 85.1)
|
|
||||||
|
|
||||||
SetGinAction("setRoute", func(r *gin.Engine) {
|
|
||||||
r.GET("/", actions.Feed, middleware.SearchLimit(c.SingleIpSearchNum),
|
|
||||||
actions.ThemeHook(constraints.Home))
|
|
||||||
r.GET("/page/:page", actions.ThemeHook(constraints.Home))
|
|
||||||
r.GET("/p/category/:category", actions.ThemeHook(constraints.Category))
|
|
||||||
r.GET("/p/category/:category/page/:page", actions.ThemeHook(constraints.Category))
|
|
||||||
r.GET("/p/tag/:tag", actions.ThemeHook(constraints.Tag))
|
|
||||||
r.GET("/p/tag/:tag/page/:page", actions.ThemeHook(constraints.Tag))
|
|
||||||
r.GET("/p/date/:year/:month", actions.ThemeHook(constraints.Archive))
|
|
||||||
r.GET("/p/date/:year/:month/page/:page", actions.ThemeHook(constraints.Archive))
|
|
||||||
r.GET("/p/author/:author", actions.ThemeHook(constraints.Author))
|
|
||||||
r.GET("/p/author/:author/page/:page", actions.ThemeHook(constraints.Author))
|
|
||||||
r.POST("/login", actions.Login)
|
|
||||||
r.GET("/p/:id", actions.ThemeHook(constraints.Detail))
|
|
||||||
r.GET("/p/:id/comment-page-:page", actions.ThemeHook(constraints.Detail))
|
|
||||||
r.GET("/p/:id/feed", actions.PostFeed)
|
|
||||||
r.GET("/feed", actions.SiteFeed)
|
|
||||||
r.GET("/comments/feed", actions.CommentsFeed)
|
|
||||||
commentMiddleWare, _ := middleware.FlowLimit(c.MaxRequestSleepNum, 5, c.CacheTime.SleepTime)
|
|
||||||
r.POST("/comment", commentMiddleWare, actions.PostComment)
|
|
||||||
|
|
||||||
r.NoRoute(actions.ThemeHook(constraints.NoRoute))
|
|
||||||
}, 84.6)
|
|
||||||
|
|
||||||
SetGinAction("setpprof", func(r *gin.Engine) {
|
|
||||||
if c.Pprof != "" {
|
|
||||||
pprof.Register(r, c.Pprof)
|
|
||||||
}
|
|
||||||
}, 80.8)
|
|
||||||
|
|
||||||
for _, hook := range setterHooks {
|
|
||||||
setters = slice.FilterAndMap(setters, hook)
|
|
||||||
}
|
|
||||||
|
|
||||||
slice.SimpleSort(setters, slice.DESC, func(t mockmap.Item[string, GinSetter]) float64 {
|
|
||||||
return t.Order
|
|
||||||
})
|
|
||||||
|
|
||||||
for _, fn := range setters {
|
|
||||||
fn.Value(r)
|
|
||||||
}
|
|
||||||
|
|
||||||
return r
|
|
||||||
}
|
|
BIN
app/static/favicon.ico
Executable file
After Width: | Height: | Size: 7.0 KiB |
28
app/static/static.go
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
package static
|
||||||
|
|
||||||
|
import (
|
||||||
|
"embed"
|
||||||
|
"errors"
|
||||||
|
"io/fs"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:embed wp-content wp-includes favicon.ico
|
||||||
|
var FsDir embed.FS
|
||||||
|
|
||||||
|
type Fs struct {
|
||||||
|
embed.FS
|
||||||
|
Path string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f Fs) Open(path string) (fs.File, error) {
|
||||||
|
if filepath.Separator != '/' && strings.ContainsRune(path, filepath.Separator) {
|
||||||
|
return nil, errors.New("http: invalid character in file path")
|
||||||
|
}
|
||||||
|
fullName := strings.TrimLeft(path, "/")
|
||||||
|
|
||||||
|
fullName = f.Path + "/" + fullName
|
||||||
|
file, err := f.FS.Open(fullName)
|
||||||
|
return file, err
|
||||||
|
}
|
0
app/static/wp-content/plugins/enlighter/cache/.empty
vendored
Executable file
19
app/static/wp-content/plugins/enlighter/cache/enlighterjs.min.css
vendored
Normal file
4
app/static/wp-content/plugins/enlighter/cache/enlighterjs.min.js
vendored
Normal file
65
app/static/wp-content/plugins/enlighter/cache/tinymce.css
vendored
Normal file
BIN
app/static/wp-content/themes/twentyfifteen/assets/pier-seagull.jpg
Executable file
After Width: | Height: | Size: 322 KiB |
BIN
app/static/wp-content/themes/twentyfifteen/assets/pier-seagulls.jpg
Executable file
After Width: | Height: | Size: 256 KiB |
BIN
app/static/wp-content/themes/twentyfifteen/assets/pier-sunset.jpg
Executable file
After Width: | Height: | Size: 134 KiB |
710
app/static/wp-content/themes/twentyfifteen/css/blocks.css
Executable file
|
@ -0,0 +1,710 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Fifteen
|
||||||
|
Description: Used to style blocks.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
>>> TABLE OF CONTENTS:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1.0 General Block Styles
|
||||||
|
2.0 Blocks - Common Blocks
|
||||||
|
3.0 Blocks - Formatting
|
||||||
|
4.0 Blocks - Layout Elements
|
||||||
|
5.0 Blocks - Widgets
|
||||||
|
6.0 Blocks - Colors
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
1.0 General Block Styles
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Captions */
|
||||||
|
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
color: #707070;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Alignments */
|
||||||
|
|
||||||
|
[class^="wp-block-"].alignleft,
|
||||||
|
[class^="wp-block-"] .alignleft {
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class^="wp-block-"].alignright,
|
||||||
|
[class^="wp-block-"] .alignright {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
2.0 Blocks - Common Blocks
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Paragraph */
|
||||||
|
|
||||||
|
p.has-drop-cap:not(:focus)::first-letter {
|
||||||
|
font-size: 5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Gallery */
|
||||||
|
|
||||||
|
.wp-block-gallery {
|
||||||
|
margin-bottom: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Audio */
|
||||||
|
|
||||||
|
.wp-block-audio audio {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Cover */
|
||||||
|
|
||||||
|
.wp-block-cover-image .wp-block-cover-image-text,
|
||||||
|
.wp-block-cover .wp-block-cover-text,
|
||||||
|
.wp-block-cover-image h2,
|
||||||
|
.wp-block-cover h2 {
|
||||||
|
font-size: 29px;
|
||||||
|
line-height: 1.2069;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quote */
|
||||||
|
|
||||||
|
.wp-block-quote,
|
||||||
|
.wp-block-quote:not(.is-large):not(.is-style-large),
|
||||||
|
[class^="wp-block-"] blockquote {
|
||||||
|
border-color: #707070;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite,
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: 1.6;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote em,
|
||||||
|
.wp-block-quote i {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote strong,
|
||||||
|
.wp-block-quote b {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite,
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.8182;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite,
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.6667;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite,
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite,
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.8182;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite,
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Cover Image */
|
||||||
|
|
||||||
|
.wp-block-cover-image.aligncenter,
|
||||||
|
.wp-block-cover.aligncenter,
|
||||||
|
.wp-block-cover-image.alignleft,
|
||||||
|
.wp-block-cover.alignleft,
|
||||||
|
.wp-block-cover-image.alignright,
|
||||||
|
.wp-block-cover.alignright {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* File */
|
||||||
|
|
||||||
|
.wp-block-file a.wp-block-file__button {
|
||||||
|
background-color: #333;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.7917em 1.5em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-file a.wp-block-file__button:hover,
|
||||||
|
.wp-block-file a.wp-block-file__button:focus {
|
||||||
|
background-color: #707070;
|
||||||
|
background-color: rgba(51, 51, 51, 0.7);
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .wp-block-file * + .wp-block-file__button {
|
||||||
|
margin-left: 0.75em;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-file a.wp-block-file__button {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
padding: 0.8214em 1.6429em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-file a.wp-block-file__button {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-file a.wp-block-file__button {
|
||||||
|
font-size: 12px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
padding: 0.7917em 1.5833em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-file a.wp-block-file__button {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
padding: 0.8214em 1.5714em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-file a.wp-block-file__button {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
3.0 Blocks - Formatting
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Code */
|
||||||
|
|
||||||
|
.wp-block-code {
|
||||||
|
background-color: transparent;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-code code {
|
||||||
|
font-family: Inconsolata, monospace;
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Preformatted */
|
||||||
|
|
||||||
|
.wp-block-preformatted {
|
||||||
|
background-color: rgba(0, 0, 0, 0.01);
|
||||||
|
border: 1px solid #eaeaea;
|
||||||
|
line-height: 1.2;
|
||||||
|
margin-bottom: 1.6em;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 0.8em;
|
||||||
|
white-space: pre;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pullquote */
|
||||||
|
|
||||||
|
.wp-block-pullquote {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-pullquote blockquote {
|
||||||
|
border: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: 1.6;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Table */
|
||||||
|
|
||||||
|
.wp-block-table th,
|
||||||
|
.wp-block-table td {
|
||||||
|
border-color: #eaeaea;
|
||||||
|
border-width: 0 1px 1px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
4.0 Blocks - Layout Elements
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Button */
|
||||||
|
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.7917em 1.5em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .wp-block-button:not(.is-style-outline) .wp-block-button__link {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
|
||||||
|
border-bottom: 2px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-button__link {
|
||||||
|
background-color: #333;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-style-outline .wp-block-button__link:not(.has-text-color) {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-button__link:hover,
|
||||||
|
.wp-block-button__link:focus,
|
||||||
|
.is-style-outline .wp-block-button__link:hover,
|
||||||
|
.is-style-outline .wp-block-button__link:focus {
|
||||||
|
background-color: #707070;
|
||||||
|
background-color: rgba(51, 51, 51, 0.7);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
padding: 0.8214em 1.6429em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 12px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
padding: 0.7917em 1.5833em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
padding: 0.8214em 1.5714em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Seperators */
|
||||||
|
|
||||||
|
.wp-block-separator {
|
||||||
|
border: 0;
|
||||||
|
max-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-separator.is-style-wide {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media & Text */
|
||||||
|
|
||||||
|
.wp-block-media-text {
|
||||||
|
margin-bottom: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-media-text *:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
5.0 Blocks - Widgets
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Archives, Categories & Latest Posts */
|
||||||
|
|
||||||
|
.wp-block-archives.aligncenter,
|
||||||
|
.wp-block-categories.aligncenter,
|
||||||
|
.wp-block-latest-posts.aligncenter {
|
||||||
|
list-style-position: inside;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Latest Comments */
|
||||||
|
|
||||||
|
.wp-block-latest-comments {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment,
|
||||||
|
.wp-block-latest-comments__comment-excerpt,
|
||||||
|
.wp-block-latest-comments__comment-excerpt p {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-meta a {
|
||||||
|
border-bottom-color: transparent;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-excerpt p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
color: #707070;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin-bottom: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments .wp-block-latest-comments__comment {
|
||||||
|
border-top: 1px solid #eaeaea;
|
||||||
|
border-top: 1px solid rgba(51, 51, 51, 0.1);
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 1.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
6.0 Blocks - Colors
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
.has-dark-gray-color {
|
||||||
|
color: #111;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-gray-background-color {
|
||||||
|
background-color: #111;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-gray-color {
|
||||||
|
color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-gray-background-color {
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-white-color {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-white-background-color {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-yellow-color {
|
||||||
|
color: #f4ca16;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-yellow-background-color {
|
||||||
|
background-color: #f4ca16;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-brown-color {
|
||||||
|
color: #352712;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-brown-background-color {
|
||||||
|
background-color: #352712;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-medium-pink-color {
|
||||||
|
color: #e53b51;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-medium-pink-background-color {
|
||||||
|
background-color: #e53b51;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-pink-color {
|
||||||
|
color: #ffe5d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-pink-background-color {
|
||||||
|
background-color: #ffe5d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-purple-color {
|
||||||
|
color: #2e2256;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-purple-background-color {
|
||||||
|
background-color: #2e2256;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-purple-color {
|
||||||
|
color: #674970;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-purple-background-color {
|
||||||
|
background-color: #674970;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-blue-gray-color {
|
||||||
|
color: #22313f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-blue-gray-background-color {
|
||||||
|
background-color: #22313f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-bright-blue-color {
|
||||||
|
color: #55c3dc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-bright-blue-background-color {
|
||||||
|
background-color: #55c3dc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-blue-color {
|
||||||
|
color: #e9f2f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-blue-background-color {
|
||||||
|
background-color: #e9f2f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-gray-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(17,17,17,1) 0%, rgba(42,42,42,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-gray-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(241,241,241,1) 0%, rgba(215,215,215,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-white-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(230,230,230,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-yellow-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(244,202,22,1) 0%, rgba(205,168,10,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-brown-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(53,39,18,1) 0%, rgba(91,67,31,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-medium-pink-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(229,59,81,1) 0%, rgba(209,28,51,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-pink-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(255,229,209,1) 0%, rgba(255,200,158,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-dark-purple-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(46,34,86,1) 0%, rgba(66,48,123,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-purple-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(103,73,112,1) 0%, rgba(131,93,143,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-blue-gray-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(34,49,63,1) 0%, rgba(52,75,96,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-bright-blue-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(85,195,220,1) 0%, rgba(43,180,211,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-light-blue-gradient-background {
|
||||||
|
background-image: linear-gradient(90deg, rgba(233,242,249,1) 0%, rgba(193,218,238,1) 100%);
|
||||||
|
}
|
982
app/static/wp-content/themes/twentyfifteen/css/editor-blocks.css
Executable file
|
@ -0,0 +1,982 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Fifteen
|
||||||
|
Description: Used to style blocks in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
>>> TABLE OF CONTENTS:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1.0 General Typography
|
||||||
|
2.0 General Block Styles
|
||||||
|
3.0 Blocks - Common Blocks
|
||||||
|
4.0 Blocks - Formatting
|
||||||
|
5.0 Blocks - Layout Elements
|
||||||
|
6.0 Blocks - Widgets
|
||||||
|
7.0 Blocks - Colors
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
1.0 General Typography
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block p,
|
||||||
|
.editor-default-block-appender textarea.editor-default-block-appender__content {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
color: #333;
|
||||||
|
font-size: 26px;
|
||||||
|
line-height: 1.1538;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor h1,
|
||||||
|
.edit-post-visual-editor h2,
|
||||||
|
.edit-post-visual-editor h3,
|
||||||
|
.edit-post-visual-editor h4,
|
||||||
|
.edit-post-visual-editor h5,
|
||||||
|
.edit-post-visual-editor h6 {
|
||||||
|
clear: both;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h1 {
|
||||||
|
font-size: 26px;
|
||||||
|
line-height: 1.1538;
|
||||||
|
padding: 0.9em 0 0.45em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h2 {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.3636;
|
||||||
|
padding: 1em 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.3333;
|
||||||
|
padding: 1.3em 0 0.65em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.2;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor > h1:first-child,
|
||||||
|
.edit-post-visual-editor > h2:first-child,
|
||||||
|
.edit-post-visual-editor > h3:first-child,
|
||||||
|
.edit-post-visual-editor > h4:first-child,
|
||||||
|
.edit-post-visual-editor > h5:first-child,
|
||||||
|
.edit-post-visual-editor > h6:first-child {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block p,
|
||||||
|
.editor-default-block-appender input[type="text"].editor-default-block-appender__content {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
font-size: 35px;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h1 {
|
||||||
|
font-size: 35px;
|
||||||
|
line-height: 1.2;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h2 {
|
||||||
|
font-size: 29px;
|
||||||
|
line-height: 1.2069;
|
||||||
|
padding: 1.0em 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.1667;
|
||||||
|
padding: 1.15em 0 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.4;
|
||||||
|
padding: .7em 0 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.2353;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block p,
|
||||||
|
.editor-default-block-appender input[type="text"].editor-default-block-appender__content {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
font-size: 39px;
|
||||||
|
line-height: 1.2308;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h1 {
|
||||||
|
font-size: 39px;
|
||||||
|
line-height: 1.2308;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h2 {
|
||||||
|
font-size: 32px;
|
||||||
|
line-height: 1.25;
|
||||||
|
padding: 1em 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 27px;
|
||||||
|
line-height: 1.1852;
|
||||||
|
padding: 1.2em 0 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4 {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.4545;
|
||||||
|
padding: 0.75em 0 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.2632;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block p,
|
||||||
|
.editor-default-block-appender input[type="text"].editor-default-block-appender__content {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
font-size: 31px;
|
||||||
|
line-height: 1.1613;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h1 {
|
||||||
|
font-size: 31px;
|
||||||
|
line-height: 1.1613;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h2 {
|
||||||
|
font-size: 26px;
|
||||||
|
line-height: 1.3846;
|
||||||
|
padding: 0.9em 0 0.45em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.3636;
|
||||||
|
padding: 1.1em 0 0.55em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4 {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.3333;
|
||||||
|
padding: 0.65em 0 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.2;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block p,
|
||||||
|
.editor-default-block-appender input[type="text"].editor-default-block-appender__content {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
font-size: 35px;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h1 {
|
||||||
|
font-size: 35px;
|
||||||
|
line-height: 1.2;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h2 {
|
||||||
|
font-size: 29px;
|
||||||
|
line-height: 1.2069;
|
||||||
|
padding: 1.0em 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.1667;
|
||||||
|
padding: 1.2em 0 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.4;
|
||||||
|
padding: 0.7em 0 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.2353;
|
||||||
|
padding: 0.8em 0 0.4em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block p,
|
||||||
|
.editor-default-block-appender input[type="text"].editor-default-block-appender__content {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
font-size: 39px;
|
||||||
|
line-height: 1.2308;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 27px;
|
||||||
|
line-height: 1.1852;
|
||||||
|
padding: 1.2em 0 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4 {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.4545;
|
||||||
|
padding: 0.75em 0 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.2632;
|
||||||
|
padding: 0.85em 0 0.45em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
2.0 General Block Styles
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Main column width */
|
||||||
|
|
||||||
|
.editor-styles-wrapper {
|
||||||
|
max-width: 100% !important; /* Override where editor-style.css is affecting this. */
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block {
|
||||||
|
max-width: 690px; /* 660px + 30px to account for padding. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Link styles */
|
||||||
|
|
||||||
|
.edit-post-visual-editor a,
|
||||||
|
.editor-block-list__block a,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce a {
|
||||||
|
border-bottom: 1px solid #333;
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* List styles */
|
||||||
|
|
||||||
|
.edit-post-visual-editor ul:not(.wp-block-gallery),
|
||||||
|
.editor-block-list__block ul:not(.wp-block-gallery),
|
||||||
|
.block-library-list ul,
|
||||||
|
.edit-post-visual-editor ol,
|
||||||
|
.editor-block-list__block ol,
|
||||||
|
.block-library-list ol,
|
||||||
|
.block-library-list .editor-rich-text__tinymce {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor ul:not(.wp-block-gallery),
|
||||||
|
.editor-block-list__block ul:not(.wp-block-gallery),
|
||||||
|
.block-library-list ul {
|
||||||
|
list-style: disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor ol,
|
||||||
|
.editor-block-list__block ol,
|
||||||
|
.block-library-list ol {
|
||||||
|
list-style: decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor ul:not(.wp-block-gallery) li > ul,
|
||||||
|
.editor-block-list__block ul:not(.wp-block-gallery) li > ul,
|
||||||
|
.block-library-list li > ul,
|
||||||
|
.edit-post-visual-editor li > ol,
|
||||||
|
.editor-block-list__block li > ol,
|
||||||
|
.block-library-list li > ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce li,
|
||||||
|
.editor-block-list__block li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .editor-styles-wrapper ul ul,
|
||||||
|
.rtl .editor-styles-wrapper ol ol,
|
||||||
|
.rtl .editor-styles-wrapper ul ol,
|
||||||
|
.rtl .editor-styles-wrapper ol ul {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 23px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce ul,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce ol {
|
||||||
|
padding-left: 23px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .wp-block-freeform.block-library-rich-text__tinymce ul,
|
||||||
|
.rtl .wp-block-freeform.block-library-rich-text__tinymce ol {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quote */
|
||||||
|
|
||||||
|
.rtl .editor-block-list__block blockquote {
|
||||||
|
border-left: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Captions */
|
||||||
|
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
color: #707070;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-block-list__block [class^="wp-block-"] figcaption {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
[class^="wp-block-"] figcaption {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pre */
|
||||||
|
|
||||||
|
[class^="wp-block-"] pre {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Alignments */
|
||||||
|
|
||||||
|
.wp-block-quote.alignright,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce .alignright {
|
||||||
|
margin: 0.4211em 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignleft,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce .alignleft {
|
||||||
|
margin: 0.4211em 1.6842em 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
3.0 Blocks - Common Blocks
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Paragraph */
|
||||||
|
|
||||||
|
p.has-drop-cap:not(:focus)::first-letter {
|
||||||
|
font-size: 5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quotes */
|
||||||
|
|
||||||
|
.wp-block-quote,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce blockquote {
|
||||||
|
color: #707070;
|
||||||
|
margin-bottom: 1.6667em;
|
||||||
|
padding-left: 0.7778em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote:not(.is-large):not(.is-style-large),
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce blockquote {
|
||||||
|
border-color: #707070;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 18px;
|
||||||
|
font-style: italic;
|
||||||
|
line-height: 1.6667;
|
||||||
|
margin-bottom: 1.6667em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .wp-block-quote > p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: 1.6;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote em,
|
||||||
|
.wp-block-quote i {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote strong,
|
||||||
|
.wp-block-quote b {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.8182;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.6667;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.edit-post-visual-editor .wp-block-quote p {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.8182;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote__citation {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Cover */
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block .wp-block-cover-image p,
|
||||||
|
.edit-post-visual-editor .editor-block-list__block .wp-block-cover p,
|
||||||
|
.wp-block-cover-image h2,
|
||||||
|
.wp-block-cover h2 {
|
||||||
|
font-size: 29px;
|
||||||
|
line-height: 1.2069;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* File */
|
||||||
|
|
||||||
|
.wp-block-file .editor-rich-text__tinymce {
|
||||||
|
border-bottom: 1px solid #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
background-color: #333;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.7917em 1.5em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 0.8214em 1.6429em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 0.7917em 1.5833em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 0.8214em 1.5714em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
4.0 Blocks - Formatting
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Code */
|
||||||
|
|
||||||
|
.editor-styles-wrapper .wp-block-code,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce code {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pullquote */
|
||||||
|
|
||||||
|
.wp-block-pullquote,
|
||||||
|
.editor-block-list__block .wp-block-pullquote blockquote {
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: 1.6;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tables */
|
||||||
|
|
||||||
|
.editor-block-list__block .wp-block-table th,
|
||||||
|
.editor-block-list__block .wp-block-table td {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .editor-block-list__block .wp-block-table th {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Verse */
|
||||||
|
|
||||||
|
.editor-styles-wrapper .wp-block-verse {
|
||||||
|
font-family: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
5.0 Blocks - Layout Elements
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Button */
|
||||||
|
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.7917em 1.5em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-button__link {
|
||||||
|
background-color: #333;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-style-outline .wp-block-button__link {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 0.8214em 1.6429em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 0.7917em 1.5833em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 0.8214em 1.5714em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Seperator */
|
||||||
|
|
||||||
|
.wp-block-separator {
|
||||||
|
max-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-separator.is-style-wide {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media & Text */
|
||||||
|
|
||||||
|
.wp-block-media-text *:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
6.0 Blocks - Widgets
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Archives, Categories & Latest Posts */
|
||||||
|
|
||||||
|
[data-align="center"] .wp-block-archives ul,
|
||||||
|
[data-align="center"] .wp-block-categories ul,
|
||||||
|
[data-align="center"] .wp-block-latest-posts ul {
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Latest Comments */
|
||||||
|
|
||||||
|
.wp-block-latest-comments {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment,
|
||||||
|
.wp-block-latest-comments__comment-excerpt,
|
||||||
|
.wp-block-latest-comments__comment-excerpt p {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-meta a {
|
||||||
|
border-bottom-color: transparent;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-excerpt p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
color: #707070;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin-bottom: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments .wp-block-latest-comments__comment {
|
||||||
|
border-top: 1px solid #eaeaea;
|
||||||
|
border-top: 1px solid rgba(51, 51, 51, 0.1);
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 1.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Latest Posts */
|
||||||
|
|
||||||
|
.edit-post-visual-editor .wp-block-latest-posts.is-grid {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .wp-block-latest-posts.is-grid li {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
7.0 Blocks - Colors
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-dark-gray-color {
|
||||||
|
color: #111;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-dark-gray-background-color {
|
||||||
|
background-color: #111;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-light-gray-color {
|
||||||
|
color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-light-gray-background-color {
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-white-color {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-white-background-color {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-yellow-color {
|
||||||
|
color: #f4ca16;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-yellow-background-color {
|
||||||
|
background-color: #f4ca16;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-dark-brown-color {
|
||||||
|
color: #352712;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-dark-brown-background-color {
|
||||||
|
background-color: #352712;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-medium-pink-color {
|
||||||
|
color: #e53b51;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-medium-pink-background-color {
|
||||||
|
background-color: #e53b51;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-light-pink-color {
|
||||||
|
color: #ffe5d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-light-pink-background-color {
|
||||||
|
background-color: #ffe5d1;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-dark-purple-color {
|
||||||
|
color: #2e2256;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-dark-purple-background-color {
|
||||||
|
background-color: #2e2256;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-purple-color {
|
||||||
|
color: #674970;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-purple-background-color {
|
||||||
|
background-color: #674970;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-blue-gray-color {
|
||||||
|
color: #22313f;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-blue-gray-background-color {
|
||||||
|
background-color: #22313f;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-bright-blue-color {
|
||||||
|
color: #55c3dc;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-bright-blue-background-color {
|
||||||
|
background-color: #55c3dc;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-light-blue-color {
|
||||||
|
color: #e9f2f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .editor-styles-wrapper .has-light-blue-background-color {
|
||||||
|
background-color: #e9f2f9;
|
||||||
|
}
|
481
app/static/wp-content/themes/twentyfifteen/css/editor-style.css
Executable file
|
@ -0,0 +1,481 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Fifteen
|
||||||
|
Description: Used to style the TinyMCE editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Table of Contents:
|
||||||
|
*
|
||||||
|
* 1.0 - Body
|
||||||
|
* 2.0 - Typography
|
||||||
|
* 3.0 - Elements
|
||||||
|
* 4.0 - Alignment
|
||||||
|
* 5.0 - Caption
|
||||||
|
* 6.0 - Galleries
|
||||||
|
* 7.0 - Audio / Video
|
||||||
|
* 8.0 - RTL
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1.0 Body
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Noto Serif", serif;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
margin: auto 20px;
|
||||||
|
max-width: 660px;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2.0 Typography
|
||||||
|
*/
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
clear: both;
|
||||||
|
font-weight: 700;
|
||||||
|
margin: 56px 0 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 35px;
|
||||||
|
line-height: 1.2308;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 29px;
|
||||||
|
line-height: 1.2069;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.1667;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
font-size: 17px;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
line-height: 1.2353;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:first-child,
|
||||||
|
h2:first-child,
|
||||||
|
h3:first-child,
|
||||||
|
h4:first-child,
|
||||||
|
h5:first-child,
|
||||||
|
h6:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 0 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dfn,
|
||||||
|
cite,
|
||||||
|
em,
|
||||||
|
i {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
border-left: 4px solid #707070;
|
||||||
|
color: #707070;
|
||||||
|
font-size: 20px;
|
||||||
|
font-style: italic;
|
||||||
|
line-height: 1.8182;
|
||||||
|
margin: 0 0 35px -21px;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote > blockquote {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote p {
|
||||||
|
margin-bottom: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote > p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote cite,
|
||||||
|
blockquote small {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.6471;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote em,
|
||||||
|
blockquote i,
|
||||||
|
blockquote cite {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote strong,
|
||||||
|
blockquote b {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
font-style: italic;
|
||||||
|
margin: 0 0 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
tt,
|
||||||
|
var,
|
||||||
|
samp,
|
||||||
|
pre {
|
||||||
|
font-family: Inconsolata, monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
border: 1px solid #eaeaea;
|
||||||
|
font-size: 17px;
|
||||||
|
line-height: 1.2353;
|
||||||
|
margin-bottom: 28px;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 14px;
|
||||||
|
white-space: pre;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: 1px dotted #eaeaea;
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark,
|
||||||
|
ins {
|
||||||
|
background-color: #fff9c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup,
|
||||||
|
sub {
|
||||||
|
font-size: 75%;
|
||||||
|
height: 0;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
bottom: 1ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
top: .5ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
big {
|
||||||
|
font-size: 125%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.0 Elements
|
||||||
|
*/
|
||||||
|
|
||||||
|
hr {
|
||||||
|
background-color: #eaeaea;
|
||||||
|
border: 0;
|
||||||
|
height: 1px;
|
||||||
|
margin-bottom: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin: 0 0 28px 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol {
|
||||||
|
list-style: decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > ul,
|
||||||
|
li > ol {
|
||||||
|
margin: 0 0 0 23px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote > ul,
|
||||||
|
blockquote > ol {
|
||||||
|
margin-left: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl {
|
||||||
|
margin: 0 0 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin: 0 0 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table,
|
||||||
|
th,
|
||||||
|
td,
|
||||||
|
.mce-item-table,
|
||||||
|
.mce-item-table th,
|
||||||
|
.mce-item-table td {
|
||||||
|
border: 1px solid #eaeaea;
|
||||||
|
}
|
||||||
|
|
||||||
|
table a {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
table,
|
||||||
|
.mce-item-table {
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 0;
|
||||||
|
border-width: 1px 0 0 1px;
|
||||||
|
margin: 0 0 28px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th,
|
||||||
|
.mce-item-table th,
|
||||||
|
table caption {
|
||||||
|
border-width: 0 1px 1px 0;
|
||||||
|
font-family: "Noto Serif", serif;
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 700;
|
||||||
|
padding: 7px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td,
|
||||||
|
.mce-item-table td {
|
||||||
|
border-width: 0 1px 1px 0;
|
||||||
|
font-family: "Noto Serif", serif;
|
||||||
|
font-size: 17px;
|
||||||
|
padding: 7px;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 0;
|
||||||
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
del {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-bottom: 1px solid #333;
|
||||||
|
color: #333;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 4.0 Alignment
|
||||||
|
*/
|
||||||
|
|
||||||
|
.alignleft {
|
||||||
|
float: left;
|
||||||
|
margin: 7px 28px 28px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alignright {
|
||||||
|
float: right;
|
||||||
|
margin: 7px 0 28px 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aligncenter {
|
||||||
|
clear: both;
|
||||||
|
display: block;
|
||||||
|
margin: 7px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 5.0 Caption
|
||||||
|
*/
|
||||||
|
|
||||||
|
.wp-caption {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
color: #707070;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
margin: 0 0 28px 0;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
text-align: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption.alignleft {
|
||||||
|
margin: 7px 28px 21px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption.alignright {
|
||||||
|
margin: 7px 0 21px 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption.aligncenter {
|
||||||
|
margin: 7px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption .wp-caption-text,
|
||||||
|
.wp-caption-dd {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 7px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 6.0 Galleries
|
||||||
|
*/
|
||||||
|
|
||||||
|
.gallery-item {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 1.79104477%;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-2 .gallery-item {
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-3 .gallery-item {
|
||||||
|
max-width: 33.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-4 .gallery-item {
|
||||||
|
max-width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-5 .gallery-item {
|
||||||
|
max-width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-6 .gallery-item {
|
||||||
|
max-width: 16.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-7 .gallery-item {
|
||||||
|
max-width: 14.28%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-8 .gallery-item {
|
||||||
|
max-width: 12.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-9 .gallery-item {
|
||||||
|
max-width: 11.11%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery .gallery-caption {
|
||||||
|
color: #707070;
|
||||||
|
display: block;
|
||||||
|
font-family: "Noto Sans", sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 7px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-6 .gallery-caption,
|
||||||
|
.gallery-columns-7 .gallery-caption,
|
||||||
|
.gallery-columns-8 .gallery-caption,
|
||||||
|
.gallery-columns-9 .gallery-caption {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 7.0 Audio / Video
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mce-content-body .wpview-wrap {
|
||||||
|
margin-bottom: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mce-content-body .wp-audio-playlist {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 8.0 RTL
|
||||||
|
*/
|
||||||
|
|
||||||
|
body.rtl {
|
||||||
|
font-family: Arial, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl blockquote {
|
||||||
|
border-left: none;
|
||||||
|
border-right: 4px solid #707070;
|
||||||
|
margin: 0 -21px 35px 0;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl blockquote > blockquote {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl li > ul,
|
||||||
|
.rtl li > ol {
|
||||||
|
margin: 0 23px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl table th,
|
||||||
|
.rtl table caption {
|
||||||
|
text-align: right;
|
||||||
|
}
|
948
app/static/wp-content/themes/twentyfifteen/css/ie.css
Executable file
|
@ -0,0 +1,948 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Fifteen
|
||||||
|
Description: Global Styles for older IE versions (previous to IE9).
|
||||||
|
*/
|
||||||
|
|
||||||
|
body,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
address,
|
||||||
|
pre,
|
||||||
|
hr,
|
||||||
|
ul,
|
||||||
|
ol,
|
||||||
|
dl,
|
||||||
|
dd,
|
||||||
|
table {
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > ul,
|
||||||
|
li > ol,
|
||||||
|
blockquote > ul,
|
||||||
|
blockquote > ol {
|
||||||
|
margin-left: 1.3333em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
border-color: inherit;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0 0 0 4px;
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.8182;
|
||||||
|
margin-bottom: 1.8182em;
|
||||||
|
margin-left: -1.0909em;
|
||||||
|
padding-left: 0.9091em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote > blockquote {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote p {
|
||||||
|
margin-bottom: 1.8182em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote cite,
|
||||||
|
blockquote small {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
line-height: 1.2632;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content img,
|
||||||
|
.entry-summary img,
|
||||||
|
.page-content img,
|
||||||
|
.comment-content img,
|
||||||
|
.widget img {
|
||||||
|
max-width: 660px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.size-full,
|
||||||
|
img.size-large,
|
||||||
|
img.header-image,
|
||||||
|
img.wp-post-image,
|
||||||
|
img[class*="align"],
|
||||||
|
img[class*="wp-image-"],
|
||||||
|
img[class*="attachment-"] {
|
||||||
|
height: auto;
|
||||||
|
width: auto; /* Prevent stretching of full-size and large-size images with height and width attributes in IE8 */
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input[type="button"],
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"],
|
||||||
|
.post-password-form input[type="submit"],
|
||||||
|
.widecolumn #submit,
|
||||||
|
.widecolumn .mu_register input[type="submit"] {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"],
|
||||||
|
input[type="email"],
|
||||||
|
input[type="url"],
|
||||||
|
input[type="password"],
|
||||||
|
input[type="search"],
|
||||||
|
textarea {
|
||||||
|
padding: 0.5278em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul {
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 0;
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation a {
|
||||||
|
padding: 0.75em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-has-children > a {
|
||||||
|
padding-right: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-description {
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.8462;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation {
|
||||||
|
margin: 9.0909%;
|
||||||
|
max-width: 660px;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation ul {
|
||||||
|
margin-bottom: -1.2632em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation a {
|
||||||
|
width: 2.5263em;
|
||||||
|
height: 2.5263em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.secondary-toggle {
|
||||||
|
margin-top: -32px;
|
||||||
|
right: 7.6897%;
|
||||||
|
width: 64px;
|
||||||
|
height: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.secondary-toggle:before {
|
||||||
|
line-height: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-password-form label,
|
||||||
|
.post-navigation .meta-nav,
|
||||||
|
.comment-navigation,
|
||||||
|
.image-navigation,
|
||||||
|
.author-heading,
|
||||||
|
.author-bio,
|
||||||
|
.entry-footer,
|
||||||
|
.page-links a,
|
||||||
|
.page-links span,
|
||||||
|
.comment-metadata,
|
||||||
|
.pingback .edit-link,
|
||||||
|
.comment-list .reply,
|
||||||
|
.comment-notes,
|
||||||
|
.comment-awaiting-moderation,
|
||||||
|
.logged-in-as,
|
||||||
|
.comment-form label,
|
||||||
|
.form-allowed-tags,
|
||||||
|
.site-info,
|
||||||
|
.wp-caption-text,
|
||||||
|
.gallery-caption,
|
||||||
|
.entry-caption,
|
||||||
|
.widecolumn label,
|
||||||
|
.widecolumn .mu_register label {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation .post-title {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.1667;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .nav-links {
|
||||||
|
min-height: 3.3684em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-numbers {
|
||||||
|
line-height: 3.3684em;
|
||||||
|
padding: 0 0.8421em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .prev,
|
||||||
|
.pagination .next {
|
||||||
|
padding: 0;
|
||||||
|
width: 64px;
|
||||||
|
height: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .prev:before,
|
||||||
|
.pagination .next:before {
|
||||||
|
line-height: 64px;
|
||||||
|
width: 64px;
|
||||||
|
height: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation a {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation .nav-previous,
|
||||||
|
.comment-navigation .nav-previous {
|
||||||
|
float: left;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.image-navigation .nav-next,
|
||||||
|
.comment-navigation .nav-next {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation .nav-previous a:before,
|
||||||
|
.image-navigation .nav-next a:after,
|
||||||
|
.comment-navigation .nav-previous a:before,
|
||||||
|
.comment-navigation .nav-next a:after {
|
||||||
|
font-size: 24px;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4211em 1.6842em 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4211em 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.aligncenter,
|
||||||
|
.wp-caption.aligncenter,
|
||||||
|
img.aligncenter {
|
||||||
|
margin-top: 0.4211em;
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-header {
|
||||||
|
border-top: 1px solid transparent;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.secondary {
|
||||||
|
background-color: #fff;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 807px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-main {
|
||||||
|
padding: 7.6923% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-content {
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 954px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-branding {
|
||||||
|
background-color: inherit;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 954px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-size: 32px;
|
||||||
|
line-height: 1.25;
|
||||||
|
margin: 7.6897% 7.6897% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-description {
|
||||||
|
background-color: inherit;
|
||||||
|
display: block;
|
||||||
|
filter: alpha(opacity=70);
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 0.5em 7.6897% 7.6897%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
position: static !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-area {
|
||||||
|
clear: both;
|
||||||
|
margin: 9.0909% 9.0909% 0;
|
||||||
|
max-width: 660px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget {
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 0 0 11.1111%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget p,
|
||||||
|
.widget address,
|
||||||
|
.widget hr,
|
||||||
|
.widget ul,
|
||||||
|
.widget ol,
|
||||||
|
.widget dl,
|
||||||
|
.widget dd,
|
||||||
|
.widget table,
|
||||||
|
.widget pre {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget li > ul,
|
||||||
|
.widget li > ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.6842;
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
margin-left: -1.2632em;
|
||||||
|
padding-left: 1.0526em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote > blockquote {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote p {
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote cite,
|
||||||
|
.widget blockquote small {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget pre {
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget button,
|
||||||
|
.widget input,
|
||||||
|
.widget select,
|
||||||
|
.widget textarea {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget button,
|
||||||
|
.widget input {
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget button,
|
||||||
|
.widget input[type="button"],
|
||||||
|
.widget input[type="reset"],
|
||||||
|
.widget input[type="submit"] {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0.8125em 1.625em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget input[type="text"],
|
||||||
|
.widget input[type="email"],
|
||||||
|
.widget input[type="url"],
|
||||||
|
.widget input[type="password"],
|
||||||
|
.widget input[type="search"],
|
||||||
|
.widget textarea {
|
||||||
|
padding: 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-title {
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_calendar td,
|
||||||
|
.widget_calendar th {
|
||||||
|
line-height: 2.9375;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_calendar caption {
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_archive li,
|
||||||
|
.widget_categories li,
|
||||||
|
.widget_links li,
|
||||||
|
.widget_meta li,
|
||||||
|
.widget_nav_menu li,
|
||||||
|
.widget_pages li,
|
||||||
|
.widget_recent_comments li,
|
||||||
|
.widget_recent_entries li {
|
||||||
|
padding: 0.7188em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.7188em 0 0 1em;
|
||||||
|
padding-top: 0.7188em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_rss li {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_rss .rss-date,
|
||||||
|
.widget_rss cite {
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.8462;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget .wp-caption-text,
|
||||||
|
.widget .gallery-caption {
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hentry,
|
||||||
|
.page-header,
|
||||||
|
.page-content {
|
||||||
|
margin: 0 7.6923%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hentry + .hentry,
|
||||||
|
.page-header + .hentry,
|
||||||
|
.page-header + .page-content {
|
||||||
|
margin-top: 7.6923%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-thumbnail {
|
||||||
|
margin-bottom: 2.9474em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-header {
|
||||||
|
padding: 0 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title,
|
||||||
|
.widecolumn h2 {
|
||||||
|
font-size: 39px;
|
||||||
|
line-height: 1.2308;
|
||||||
|
margin-bottom: 1.2308em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content,
|
||||||
|
.entry-summary {
|
||||||
|
padding: 0 9.0909% 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content h1,
|
||||||
|
.entry-summary h1,
|
||||||
|
.page-content h1,
|
||||||
|
.comment-content h1 {
|
||||||
|
font-size: 39px;
|
||||||
|
line-height: 1.2308;
|
||||||
|
margin-top: 1.641em;
|
||||||
|
margin-bottom: 0.8205em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content h2,
|
||||||
|
.entry-summary h2,
|
||||||
|
.page-content h2,
|
||||||
|
.comment-content h2 {
|
||||||
|
font-size: 32px;
|
||||||
|
line-height: 1.25;
|
||||||
|
margin-top: 2em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content h3,
|
||||||
|
.entry-summary h3,
|
||||||
|
.page-content h3,
|
||||||
|
.comment-content h3 {
|
||||||
|
font-size: 27px;
|
||||||
|
line-height: 1.1852;
|
||||||
|
margin-top: 2.3704em;
|
||||||
|
margin-bottom: 1.1852em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content h4,
|
||||||
|
.entry-summary h4,
|
||||||
|
.page-content h4,
|
||||||
|
.comment-content h4 {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.4545;
|
||||||
|
margin-top: 2.9091em;
|
||||||
|
margin-bottom: 1.4545em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content h5,
|
||||||
|
.entry-content h6,
|
||||||
|
.entry-summary h5,
|
||||||
|
.entry-summary h6,
|
||||||
|
.page-content h5,
|
||||||
|
.page-content h6,
|
||||||
|
.comment-content h5,
|
||||||
|
.comment-content h6 {
|
||||||
|
font-size: 19px;
|
||||||
|
line-height: 1.2632;
|
||||||
|
margin-top: 3.3684em;
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .more-link:after {
|
||||||
|
font-size: 24px;
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info {
|
||||||
|
margin: 0 9.0909%;
|
||||||
|
padding: 9.0909% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
margin: 0 1.6842em 1.6842em 0;
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-link:after {
|
||||||
|
font-size: 24px;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-footer {
|
||||||
|
padding: 4.5454% 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.posted-on:before,
|
||||||
|
.byline:before,
|
||||||
|
.cat-links:before,
|
||||||
|
.tags-links:before,
|
||||||
|
.comments-link:before,
|
||||||
|
.entry-format:before,
|
||||||
|
.edit-link:before,
|
||||||
|
.full-size-link:before {
|
||||||
|
top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.updated {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.updated.published {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
border-color: inherit;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0 0 0 7px;
|
||||||
|
padding: 3.8461% 7.6923%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-title,
|
||||||
|
.taxonomy-description {
|
||||||
|
margin-left: -7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.taxonomy-description {
|
||||||
|
padding-top: 0.4211em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-title,
|
||||||
|
.comments-title,
|
||||||
|
.comment-reply-title,
|
||||||
|
.post-navigation .post-title {
|
||||||
|
font-size: 27px;
|
||||||
|
line-height: 1.1852;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-content {
|
||||||
|
padding: 7.6923%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links {
|
||||||
|
margin-bottom: 1.4736em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0.25em 0.25em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.format-aside .entry-title,
|
||||||
|
.format-image .entry-title,
|
||||||
|
.format-video .entry-title,
|
||||||
|
.format-quote .entry-title,
|
||||||
|
.format-gallery .entry-title,
|
||||||
|
.format-status .entry-title,
|
||||||
|
.format-link .entry-title,
|
||||||
|
.format-audio .entry-title,
|
||||||
|
.format-chat .entry-title {
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.4545;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.format-link .entry-title a:after {
|
||||||
|
top: 0.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comments-title {
|
||||||
|
margin-bottom: 1.4545em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list article,
|
||||||
|
.comment-list .pingback,
|
||||||
|
.comment-list .trackback {
|
||||||
|
padding: 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list + .comment-respond,
|
||||||
|
.comment-navigation + .comment-respond {
|
||||||
|
padding-top: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-left: 1.4737em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-meta {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author {
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 4.6315em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 3px;
|
||||||
|
left: 0;
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-metadata {
|
||||||
|
line-height: 2;
|
||||||
|
padding-left: 5.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-metadata .edit-link:before,
|
||||||
|
.pingback .edit-link:before {
|
||||||
|
top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bypostauthor > article .fn:after {
|
||||||
|
top: 8px;
|
||||||
|
left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-content ul,
|
||||||
|
.comment-content ol {
|
||||||
|
margin: 0 0 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-content li > ul,
|
||||||
|
.comment-content li > ol,
|
||||||
|
.comment-content blockquote > ul,
|
||||||
|
.comment-content blockquote > ol {
|
||||||
|
margin-left: 1.3333em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .reply a {
|
||||||
|
padding: 0.4375em 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-form,
|
||||||
|
.no-comments {
|
||||||
|
padding-top: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-reply-title small a:before {
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .reply {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-footer {
|
||||||
|
border-top: 1px solid transparent;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 806px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-info {
|
||||||
|
margin: 4.5454% 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation {
|
||||||
|
border-top: 0;
|
||||||
|
margin: 7.6923% 7.6923% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation a {
|
||||||
|
padding: 4.5454% 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination {
|
||||||
|
border-top: 0;
|
||||||
|
margin: 7.6923% 7.6923% 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-numbers {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .meta-nav {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation {
|
||||||
|
padding: 0 9.0909%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comments-area {
|
||||||
|
border-top: 0;
|
||||||
|
margin: 7.6923% 7.6923% 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
embed,
|
||||||
|
iframe,
|
||||||
|
object,
|
||||||
|
video {
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-audio-shortcode,
|
||||||
|
.wp-video,
|
||||||
|
.wp-playlist.wp-audio-playlist {
|
||||||
|
font-size: 19px;
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption,
|
||||||
|
.gallery {
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption-text,
|
||||||
|
.gallery-caption {
|
||||||
|
padding: 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widecolumn {
|
||||||
|
margin: 7.6923%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widecolumn .mu_alert {
|
||||||
|
margin-bottom: 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widecolumn p {
|
||||||
|
margin: 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widecolumn p + h2 {
|
||||||
|
margin-top: 1.641em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widecolumn #key,
|
||||||
|
.widecolumn .mu_register #blog_title,
|
||||||
|
.widecolumn .mu_register #user_email,
|
||||||
|
.widecolumn .mu_register #blogname,
|
||||||
|
.widecolumn .mu_register #user_name {
|
||||||
|
font-size: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widecolumn .mu_register #blog_title,
|
||||||
|
.widecolumn .mu_register #user_email,
|
||||||
|
.widecolumn .mu_register #user_name {
|
||||||
|
margin: 0 0 0.421em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RTL
|
||||||
|
*/
|
||||||
|
|
||||||
|
.rtl ul,
|
||||||
|
.rtl ol {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl li > ul,
|
||||||
|
.rtl li > ol,
|
||||||
|
.rtl blockquote > ul,
|
||||||
|
.rtl blockquote > ol {
|
||||||
|
margin-right: 1.3333em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl blockquote {
|
||||||
|
border-width: 0 4px 0 0;
|
||||||
|
margin-right: -1.0909em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 0.9091em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl blockquote > blockquote {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .main-navigation ul ul {
|
||||||
|
margin-right: 1em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .main-navigation .menu-item-has-children > a {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .secondary-toggle {
|
||||||
|
right: auto;
|
||||||
|
left: 7.6897%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .image-navigation .nav-previous,
|
||||||
|
.rtl .comment-navigation .nav-previous {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .image-navigation .nav-next,
|
||||||
|
.rtl .comment-navigation .nav-next {
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl blockquote.alignright,
|
||||||
|
.rtl .wp-caption.alignright,
|
||||||
|
.rtl img.alignright {
|
||||||
|
margin: 0.4211em 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl blockquote.alignleft,
|
||||||
|
.rtl .wp-caption.alignleft,
|
||||||
|
.rtl img.alignleft {
|
||||||
|
margin: 0.4211em 1.6842em 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .widget blockquote {
|
||||||
|
margin-right: -1.2632em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 1.0526em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .widget blockquote > blockquote {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .widget_categories .children,
|
||||||
|
.rtl .widget_nav_menu .sub-menu,
|
||||||
|
.rtl .widget_pages .children {
|
||||||
|
margin: 0.7188em 1em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .page-links a,
|
||||||
|
.rtl .page-links > span {
|
||||||
|
margin: 0 0 0.25em 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .author-info .avatar {
|
||||||
|
margin: 0 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .page-header {
|
||||||
|
border-width: 0 7px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .page-title,
|
||||||
|
.rtl .taxonomy-description {
|
||||||
|
margin-right: -7px;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .comment-list .children > li {
|
||||||
|
padding-right: 1.4737em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .comment-author {
|
||||||
|
padding-right: 4.6315em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .comment-author .avatar {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .comment-content ul,
|
||||||
|
.rtl .comment-content ol {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .comment-content li > ul,
|
||||||
|
.rtl .comment-content li > ol,
|
||||||
|
.rtl .comment-content blockquote > ul,
|
||||||
|
.rtl .comment-content blockquote > ol {
|
||||||
|
margin-right: 1.3333em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .comment-metadata {
|
||||||
|
padding-right: 5.5em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .bypostauthor > article .fn:after {
|
||||||
|
right: 6px;
|
||||||
|
left: auto;
|
||||||
|
}
|
89
app/static/wp-content/themes/twentyfifteen/css/ie7.css
Executable file
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Fifteen
|
||||||
|
Description: IE7 specific style.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.screen-reader-text {
|
||||||
|
clip: rect(1px 1px 1px 1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.secondary-toggle {
|
||||||
|
color: #333;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 60px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .prev,
|
||||||
|
.pagination .next {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 64px;
|
||||||
|
padding: 0 19px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation,
|
||||||
|
.comment-navigation {
|
||||||
|
width: 662px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-main {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hentry {
|
||||||
|
margin-bottom: 7.6923%;
|
||||||
|
text-align: left;
|
||||||
|
width: 808px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
margin-bottom: 7.6923%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comments-area {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list,
|
||||||
|
.comment-navigation {
|
||||||
|
margin-bottom: 1.6471em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-2 .gallery-item {
|
||||||
|
max-width: 48%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-3 .gallery-item {
|
||||||
|
max-width: 31%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-4 .gallery-item {
|
||||||
|
max-width: 22%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-5 .gallery-item {
|
||||||
|
max-width: 17%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-6 .gallery-item {
|
||||||
|
max-width: 13.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-7 .gallery-item {
|
||||||
|
max-width: 11%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-8 .gallery-item {
|
||||||
|
max-width: 9.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-9 .gallery-item {
|
||||||
|
max-width: 8%;
|
||||||
|
}
|
9
app/static/wp-content/themes/twentyfifteen/genericons/COPYING.txt
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
Genericons is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The fonts are distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
|
||||||
|
|
||||||
|
This license does not convey any intellectual property rights to third party trademarks that may be included in the icon font; such marks remain subject to all rights and guidelines of use of their owner.
|
BIN
app/static/wp-content/themes/twentyfifteen/genericons/Genericons.eot
Executable file
543
app/static/wp-content/themes/twentyfifteen/genericons/Genericons.svg
Executable file
|
@ -0,0 +1,543 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<!--
|
||||||
|
2014-10-3: Created.
|
||||||
|
-->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
Created by FontForge 20120731 at Fri Oct 3 09:39:07 2014
|
||||||
|
By Joen
|
||||||
|
Created by Joen with FontForge 2.0 (http://fontforge.sf.net)
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="Genericons" horiz-adv-x="2048" >
|
||||||
|
<font-face
|
||||||
|
font-family="Genericons"
|
||||||
|
font-weight="500"
|
||||||
|
font-stretch="normal"
|
||||||
|
units-per-em="2048"
|
||||||
|
panose-1="2 0 6 9 0 0 0 0 0 0"
|
||||||
|
ascent="2048"
|
||||||
|
descent="0"
|
||||||
|
bbox="-0.0140489 0 2048.01 2048"
|
||||||
|
underline-thickness="102.4"
|
||||||
|
underline-position="-204.8"
|
||||||
|
unicode-range="U+F100-F517"
|
||||||
|
/>
|
||||||
|
<missing-glyph />
|
||||||
|
<glyph glyph-name="uniF413" unicode=""
|
||||||
|
d="M256 1280c565.504 0 1024 -458.496 1024 -1024h-256c0 423.552 -344.448 768 -768 768v256zM256 1792c848.256 0 1536 -687.744 1536 -1536h-256c0 705.792 -574.208 1280 -1280 1280v256zM448 640c106.112 0 192 -86.0156 192 -192s-85.8877 -192 -192 -192
|
||||||
|
s-192 86.0156 -192 192s85.8877 192 192 192z" />
|
||||||
|
<glyph glyph-name="uniF462" unicode=""
|
||||||
|
d="M618.502 1337l-213.004 142.004l-303.335 -455.002l303.335 -455.002l213.004 142.004l-208.665 312.998zM1642.5 1479l-213.004 -142.004l208.665 -312.998l-208.665 -312.998l213.004 -142.004l303.335 455.002zM771.821 543.045l248.357 -62.0898l256 1024
|
||||||
|
l-248.357 62.0898z" />
|
||||||
|
<glyph glyph-name="uniF457" unicode=""
|
||||||
|
d="M1024 1792c424.064 0 768 -343.936 768 -768s-343.936 -768 -768 -768c-424.192 0 -768 343.936 -768 768s343.808 768 768 768zM1024 512c70.6562 0 128 57.4717 128 128s-57.3438 128 -128 128c-70.7842 0 -128 -57.4717 -128 -128s57.2158 -128 128 -128z
|
||||||
|
M1342.72 1155.84c24.832 38.9121 37.248 85.1201 37.1201 138.752c0 74.4961 -27.6475 133.504 -83.7119 176.641c-55.9355 43.2637 -133.632 64.7676 -231.936 64.7676c-119.809 0 -234.496 -31.2324 -344.32 -93.9521l91.9043 -180.096
|
||||||
|
c89.2158 47.2314 167.168 70.9121 233.983 70.9121c26.752 0 48.5127 -5.37598 65.2803 -16.2559c17.2803 -10.752 25.4717 -25.4727 25.4717 -44.0322c0 -23.2959 -8.06348 -44.0322 -23.5518 -62.208c-16 -18.0479 -41.4717 -38.4004 -77.1836 -60.9277
|
||||||
|
c-45.1846 -28.1602 -76.416 -57.0889 -94.3359 -87.04c-17.5361 -29.6963 -26.3682 -66.4326 -26.3682 -109.44v-56.96h203.647v34.0479c0 18.6885 5.50391 35.2002 17.2803 48.8965c12.0322 14.0801 40.96 36.0957 86.9121 66.0479
|
||||||
|
c55.04 34.8154 94.5918 71.6797 119.808 110.848z" />
|
||||||
|
<glyph glyph-name="uniF403" unicode=""
|
||||||
|
d="M1541.38 1530.62l506.624 -506.624l-506.624 -506.624c-131.456 -134.272 -314.752 -217.728 -517.376 -217.728c-202.752 0 -386.048 83.4551 -517.504 217.983l-506.496 506.368v0l506.496 506.496c131.456 134.4 314.624 217.984 517.504 217.984
|
||||||
|
c202.752 0 385.92 -83.584 517.376 -217.856zM1404.42 651.776l372.096 372.224l-370.943 370.944c-102.528 104.704 -237.568 161.536 -381.568 161.536c-144.128 0 -279.168 -56.9609 -380.288 -160.385l-372.096 -372.096l370.688 -370.56
|
||||||
|
c102.528 -104.96 237.696 -161.792 381.824 -161.792c144 0 279.168 56.832 380.288 160.128zM1408 1024zM640 1024c0 212.096 172.032 384 384 384s384 -171.904 384 -384c0 -211.968 -172.032 -384 -384 -384s-384 172.032 -384 384zM768 1152
|
||||||
|
c0 -70.6562 57.2158 -128 128 -128c70.6562 0 128 57.3438 128 128s-57.3438 128 -128 128c-70.7842 0 -128 -57.3438 -128 -128z" />
|
||||||
|
<glyph glyph-name="uniF505" unicode=""
|
||||||
|
d="M256 1408v256h256v-256h-256zM768 1664h1024v-256h-1024v256zM256 896v256h256v-256h-256zM1408 1152v-256h-640v256h640zM256 384v256h256v-256h-256zM768 384v256h896v-256h-896z" />
|
||||||
|
<glyph glyph-name="uniF50F" unicode=""
|
||||||
|
d="M1920 1024l-384 -384v256h-384v-384h256l-384 -384l-384 384h256v384h-384v-256l-384 384l384 384v-256h384v384h-256l384 384l384 -384h-256v-384h384v256z" />
|
||||||
|
<glyph glyph-name="uniF307" unicode=""
|
||||||
|
d="M768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM512 640v128h128v-128h-128zM512 896v128h128v-128h-128zM1280 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1280 1152v128h128v-128h-128zM1408 1664h256v-1280h-1408
|
||||||
|
v1280h256v128h128v-128h640v128h128v-128zM1536 640v640c0 70.7842 -57.2158 128 -128 128h-896c-70.6562 0 -128 -57.2158 -128 -128v-640c0 -70.7842 57.3438 -128 128 -128h896c70.7842 0 128 57.2158 128 128zM1024 896v128h128v-128h-128zM1024 640v128h128v-128h-128z
|
||||||
|
" />
|
||||||
|
<glyph glyph-name="uniF460" unicode=""
|
||||||
|
d="M1664 1280h128l-256 -768h-768l256 768h128l86.2725 256h339.455zM1300.86 1280h214.271l-43.1357 128h-128zM809.728 1536l86.2725 -256l-256 -768h-128l-256 768h128l86.2725 256h339.455zM532.864 1280h214.271l-43.1357 128h-128z" />
|
||||||
|
<glyph glyph-name="uniF430" unicode=""
|
||||||
|
d="M1024 1453.31l86.6562 -86.6553l-342.656 -342.656h896v-128h-896l342.656 -342.656l-86.6562 -86.6553l-493.312 493.312z" />
|
||||||
|
<glyph glyph-name="uniF515" unicode=""
|
||||||
|
d="M1024 1920c494.848 0 896 -401.152 896 -896s-401.152 -896 -896 -896s-896 401.152 -896 896s401.152 896 896 896zM1387.52 601.216c29.4404 0 55.6807 23.6807 55.8086 56.0645c0 33.1514 -13.0557 46.4639 -35.4561 59.5195
|
||||||
|
c-150.4 90.1123 -325.12 135.168 -521.216 135.168c-114.433 0 -224.769 -14.4639 -335.36 -39.6797c-27.1357 -5.12012 -48.7676 -23.8076 -48.7676 -61.4404c0 -29.1836 22.6553 -56.3193 56.7041 -56.3193c11.0078 0 29.4395 5.75977 44.1592 8.83203
|
||||||
|
c90.2402 18.6875 186.752 30.9756 282.624 30.9756c171.776 0 333.696 -41.3438 463.616 -119.808c13.5684 -8.32031 23.4238 -13.3125 37.8877 -13.3125zM1485.18 838.4c38.9121 0 69.7607 31.3594 69.8887 70.0156c0 31.8721 -11.0078 53.6318 -40.832 70.7842
|
||||||
|
c-178.433 106.752 -405.376 165.12 -639.872 165.12c-149.76 0 -252.544 -21.248 -353.28 -48.8965c-37.248 -10.624 -55.6797 -36.7354 -55.6797 -74.8799c0 -38.7842 31.3594 -70.1436 69.8877 -70.1436c16.3838 0 26.1123 5.11914 43.5205 10.1113
|
||||||
|
c81.1514 21.5039 179.071 37.376 292.479 37.376c221.185 0 423.168 -57.4717 568.96 -144c13.3125 -7.55176 25.6006 -15.4873 44.9277 -15.4873zM1596.29 1114.24c45.3115 0 84.6084 35.0713 84.3516 83.8398c0 42.752 -18.9434 66.0479 -46.208 81.4082
|
||||||
|
c-202.111 118.912 -478.976 172.928 -742.016 172.928c-155.008 0 -297.472 -17.5361 -425.216 -55.168c-32.5117 -9.59961 -62.7197 -36.9922 -62.7197 -85.6318c0 -47.8721 36.7354 -85.6318 84.4795 -85.6318c16.5117 0 33.0244 6.39941 46.0801 9.72754
|
||||||
|
c113.024 30.5918 236.416 43.0078 357.888 43.0078c243.328 0 495.104 -53.5039 657.28 -150.784c17.0244 -9.34375 27.7764 -13.6953 46.0801 -13.6953z" />
|
||||||
|
<glyph glyph-name="uniF448" unicode=""
|
||||||
|
d="M512 384v1280h384v-1280h-384zM1152 1664h384v-1280h-384v1280z" />
|
||||||
|
<glyph glyph-name="uniF453" unicode=""
|
||||||
|
d="M1536 2048c141.312 0 256 -114.688 256 -256v-1536c0 -141.312 -114.688 -256 -256 -256h-1024c-141.312 0 -256 114.688 -256 256v1536c0 141.312 114.688 256 256 256h1024zM1024 128c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128
|
||||||
|
c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128zM1536 512v1280h-1024v-1280h1024z" />
|
||||||
|
<glyph glyph-name="uniF419" unicode=""
|
||||||
|
d="M0 256v256h2048v-256h-2048zM0 1792h2048v-256h-2048v256zM0 896v256h2048v-256h-2048z" />
|
||||||
|
<glyph glyph-name="uniF423" unicode=""
|
||||||
|
d="M567.936 1440.9l-267.136 -480.896h403.2v-384h-128v256h-492.8l372.864 671.104zM1644.8 960h403.2v-384h-128v256h-492.8l372.864 671.104l112 -62.207zM1088 1344c176.768 0 320 -143.232 320 -320s-143.232 -320 -320 -320s-320 143.232 -320 320
|
||||||
|
s143.232 320 320 320zM1088 832c105.856 0 192 86.1436 192 192s-86.1436 192 -192 192s-192 -86.1436 -192 -192s86.1436 -192 192 -192z" />
|
||||||
|
<glyph glyph-name="uniF512" unicode=""
|
||||||
|
d="M1920 1280l-555.136 -387.968l212.863 -636.032l-553.728 394.496l-553.728 -394.496l212.991 636.032l-555.264 387.968h685.312l210.688 640l210.688 -640h685.312z" />
|
||||||
|
<glyph glyph-name="uniF417" unicode=""
|
||||||
|
d="M960 1792c318.08 0 576 -257.92 576 -576c0 -159.232 -64.6396 -303.36 -169.088 -407.68l-406.912 -407.04l-406.912 407.04c-104.448 104.319 -169.088 248.447 -169.088 407.68c0 318.08 257.92 576 576 576zM960 896c176.64 0 320 143.36 320 320
|
||||||
|
s-143.36 320 -320 320c-176.768 0 -320 -143.36 -320 -320s143.232 -320 320 -320z" />
|
||||||
|
<glyph glyph-name="uniF410" unicode=""
|
||||||
|
d="M256 1536h1536v-128l-768 -384l-768 384v128zM256 1216l768 -384l768 384v-704h-1536v704z" />
|
||||||
|
<glyph glyph-name="uniF449" unicode=""
|
||||||
|
d="M512 512v1024h1024v-1024h-1024z" />
|
||||||
|
<glyph glyph-name="uniF467" unicode=""
|
||||||
|
d="M1280 1280c282.752 0 512 -229.248 512 -512v-299.904l-150.016 149.889c-99.9688 99.9678 -231.04 150.016 -361.984 150.016h-256v-384l-640 640l640 640v-384h256z" />
|
||||||
|
<glyph glyph-name="uniF224" unicode=""
|
||||||
|
d="M1536 1792c141.312 0 256 -114.688 256 -256v-384c0 -424.064 -343.936 -768 -768 -768s-768 343.936 -768 768v384c0 141.312 114.688 256 256 256h1024zM1498.5 1189.5c50.0479 50.0479 50.0479 131.072 0 180.992c-50.0479 50.0479 -130.944 50.0479 -180.992 0
|
||||||
|
l-293.504 -293.504l-293.504 293.504c-50.0479 50.0479 -131.072 50.0479 -180.992 0c-50.0479 -49.9199 -50.0479 -130.944 0 -180.992l361.984 -361.984l4.22363 4.22461c22.4004 -37.376 61.5684 -63.7441 108.288 -63.7441s85.8877 26.3682 108.288 63.7441
|
||||||
|
l4.22363 -4.22461z" />
|
||||||
|
<glyph glyph-name="uniF203" unicode=""
|
||||||
|
d="M1664 1920c141.312 0 256 -114.688 256 -256v-1280c0 -141.312 -114.688 -256 -256 -256h-281.856v711.168h269.44l12.416 259.456h-281.984v192.384v0.255859v12.0322c0 71.2959 15.2324 114.432 108.544 114.432c86.6562 0 166.017 -0.639648 166.017 -0.639648
|
||||||
|
l5.8877 242.304s-77.6963 9.98438 -182.528 9.98438c-259.584 0 -372.096 -159.872 -372.096 -333.952v-236.8h-254.336v-259.328h254.336v-711.296h-723.84c-141.312 0 -256 114.688 -256 256v1280c0 141.312 114.688 256 256 256h1280z" />
|
||||||
|
<glyph glyph-name="uniF502" unicode=""
|
||||||
|
d="M128 2048h1920l-960 -960z" />
|
||||||
|
<glyph glyph-name="uniF412" unicode=""
|
||||||
|
d="M1920 832l-640 -640v448h-1024v704l384 384v-704h640v448z" />
|
||||||
|
<glyph glyph-name="uniF440" unicode=""
|
||||||
|
d="M1152 640v-256h256l-384 -384l-384 384h256v256h256zM1664 1024c141.312 0 256 -114.688 256 -256s-114.688 -256 -256 -256h-384v256h-512v-256h-384c-141.312 0 -256 114.688 -256 256s114.688 256 256 256h6.40039c-4.09668 20.7363 -6.40039 42.1123 -6.40039 64
|
||||||
|
c0 176.768 143.232 320 320 320c89.3438 0 169.984 -36.7363 227.968 -95.8721c60.7998 131.84 193.408 223.872 348.032 223.872c211.968 0 384 -171.904 384 -384c0 -45.1836 -9.21582 -87.8076 -23.5518 -128h23.5518z" />
|
||||||
|
<glyph glyph-name="uniF305" unicode=""
|
||||||
|
d="M1408 1664h256v-1280h-1408v1280h256v128h128v-128h640v128h128v-128zM1536 640v640c0 70.7842 -57.2158 128 -128 128h-896c-70.6562 0 -128 -57.2158 -128 -128v-640c0 -70.7842 57.3438 -128 128 -128h896c70.7842 0 128 57.2158 128 128zM960 1280
|
||||||
|
c35.3281 0 64 -28.6719 64 -64v-512c0 -35.3281 -28.6719 -64 -64 -64s-64 28.6719 -64 64v448h-64c-35.3281 0 -64 28.6719 -64 64s28.6719 64 64 64h128z" />
|
||||||
|
<glyph glyph-name="uniF443" unicode=""
|
||||||
|
d="M1152 1664l384 -384v-121.472v-6.52832v-768h-1024v1280h512h128zM1408 512v640h-256h-128v128v256h-384v-1024h768z" />
|
||||||
|
<glyph glyph-name="uniF411" unicode=""
|
||||||
|
d="M1280 1728l448 -448l-896 -896h-448v448zM1280 1536l-594.688 -594.688l96 -96l594.688 594.688zM768 512l128 128l-96 96v0l-64 64v0l-96 96l-128 -128zM845.312 781.312l96 -96l594.688 594.688l-96 96z" />
|
||||||
|
<glyph glyph-name="uniF402" unicode=""
|
||||||
|
d="M896 1536v-256h256v-128h-256v-256h-128v256h-256v128h256v256h128zM1297.15 878.848l494.848 -494.848l-128 -128l-494.848 494.848c-94.8486 -68.9912 -210.816 -110.848 -337.152 -110.848c-318.08 0 -576 257.92 -576 576s257.92 576 576 576s576 -257.92 576 -576
|
||||||
|
c0 -126.336 -41.8564 -242.304 -110.848 -337.152zM832 768c247.552 0 448 200.576 448 448s-200.448 448 -448 448c-247.424 0 -448 -200.576 -448 -448s200.576 -448 448 -448z" />
|
||||||
|
<glyph glyph-name="uniF420" unicode=""
|
||||||
|
d="M483.2 1564.8l-227.2 227.2h640v-640l-232.32 232.32c-93.0557 -92.1602 -151.68 -218.88 -151.68 -360.32c0 -238.208 163.584 -436.736 384 -493.824v-262.656c-363.008 61.0566 -640 376.064 -640 756.48c0 212.096 88.0645 402.048 227.2 540.8zM1792 1024
|
||||||
|
c0 -212.096 -88.0645 -401.92 -227.2 -540.8l227.2 -227.2h-640v640l18.5596 -18.5596l213.761 -213.761c93.0557 92.1602 151.68 218.88 151.68 360.32c0 238.208 -163.584 436.736 -384 493.824v262.656c363.008 -61.0566 640 -376.064 640 -756.48z" />
|
||||||
|
<glyph glyph-name="uniF425" unicode=""
|
||||||
|
d="M704 1024c35.3281 0 64 -28.6719 64 -64s-28.6719 -64 -64 -64s-64 28.6719 -64 64s28.6719 64 64 64zM704 1280c35.3281 0 64 -28.6719 64 -64s-28.6719 -64 -64 -64s-64 28.6719 -64 64s28.6719 64 64 64zM704 768c35.3281 0 64 -28.6719 64 -64s-28.6719 -64 -64 -64
|
||||||
|
s-64 28.6719 -64 64s28.6719 64 64 64zM896 896v128h384v-128h-384zM896 640v128h384v-128h-384zM1280 1664h256v-1280h-1152v1280h256c0 70.7842 57.3438 128 128 128h384c70.7842 0 128 -57.2158 128 -128zM832 1664c-35.3281 0 -64 -28.6719 -64 -64s28.6719 -64 64 -64
|
||||||
|
h256c35.3281 0 64 28.6719 64 64s-28.6719 64 -64 64h-256zM1408 512v1024h-128v-128h-640v128h-128v-1024h896zM896 1152v128h384v-128h-384z" />
|
||||||
|
<glyph glyph-name="uniF508" unicode=""
|
||||||
|
d="M1450.5 1395.2c45.6963 -69.376 124.288 -115.2 213.504 -115.2c5.50391 0 10.4961 1.28027 15.8721 1.66406l-399.872 -799.872l-256 512l-256 -512l-128 256l-256 -512l-299.776 599.424l228.992 114.561l70.7842 -141.568l256 512l128 -256l256 512l256 -512z
|
||||||
|
M1664 1728c106.112 0 192 -86.0156 192 -192s-85.8877 -192 -192 -192s-192 86.0156 -192 192s85.8877 192 192 192z" />
|
||||||
|
<glyph glyph-name="uniF507" unicode=""
|
||||||
|
d="M1792 604.544c76.2881 -44.416 128 -126.08 128 -220.544c0 -141.312 -114.688 -256 -256 -256s-256 114.688 -256 256c0 94.5918 51.7119 176.128 128 220.544v163.456c0 70.7842 -57.2158 128 -128 128h-256v-291.456c76.2881 -44.416 128 -126.08 128 -220.544
|
||||||
|
c0 -141.312 -114.688 -256 -256 -256s-256 114.688 -256 256c0 94.4639 51.8398 176.128 128 220.544v291.456h-256c-70.6562 0 -128 -57.2158 -128 -128v-163.456c76.1602 -44.416 128 -126.08 128 -220.544c0 -141.312 -114.688 -256 -256 -256s-256 114.688 -256 256
|
||||||
|
c0 94.4639 51.8398 176.128 128 220.544v163.456c0 212.096 171.904 384 384 384h256v291.456c-76.1602 44.416 -128 126.08 -128 220.544c0 141.312 114.688 256 256 256s256 -114.688 256 -256c0 -94.4639 -51.7119 -176.128 -128 -220.544v-291.456h256
|
||||||
|
c211.968 0 384 -171.904 384 -384v-163.456zM1024 1792c-70.6562 0 -128 -57.3438 -128 -128s57.3438 -128 128 -128s128 57.3438 128 128s-57.3438 128 -128 128zM384 256c70.6562 0 128 57.2158 128 128s-57.3438 128 -128 128s-128 -57.2158 -128 -128
|
||||||
|
s57.3438 -128 128 -128zM1024 256c70.6562 0 128 57.2158 128 128s-57.3438 128 -128 128s-128 -57.2158 -128 -128s57.3438 -128 128 -128zM1664 256c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128s-128 -57.2158 -128 -128s57.2158 -128 128 -128z" />
|
||||||
|
<glyph glyph-name="uniF306" unicode=""
|
||||||
|
d="M1151.87 1219.46c0.12793 -0.511719 0.12793 -0.896484 0.12793 -1.4082v-1.79199v-0.255859c0 -5.12012 -0.639648 -10.3682 -1.91992 -15.4883l-128 -512c-8.57617 -34.1758 -43.2637 -55.04 -77.5684 -46.5918c-34.3037 8.57617 -55.168 43.2637 -46.5918 77.5684
|
||||||
|
l108.16 432.512h-174.08c-35.3281 0 -64 28.6719 -64 64s28.6719 64 64 64h256h1.53613h1.28027c1.02344 -0.12793 1.91992 -0.12793 2.81543 -0.255859h0.255859c30.3359 -2.68848 54.5283 -26.624 57.8564 -56.96v0c0 -0.768555 0.12793 -1.4082 0.12793 -2.04785
|
||||||
|
v-1.28027zM1408 1664h256v-1280h-1408v1280h256v128h128v-128h640v128h128v-128zM1536 640v640c0 70.7842 -57.2158 128 -128 128h-896c-70.6562 0 -128 -57.2158 -128 -128v-640c0 -70.7842 57.3438 -128 128 -128h896c70.7842 0 128 57.2158 128 128z" />
|
||||||
|
<glyph glyph-name="uniF406" unicode=""
|
||||||
|
d="M2048 1920l-832 -832l832 -832l-128 -128l-832 832l-832 -832l-128 128l832 832l-832 832l128 128l832 -832l832 832z" />
|
||||||
|
<glyph glyph-name="uniF215" unicode=""
|
||||||
|
d="M1664 1920c141.312 0 256 -114.688 256 -256v-1280c0 -141.312 -114.688 -256 -256 -256h-1280c-141.312 0 -256 114.688 -256 256v1280c0 141.312 114.688 256 256 256h1280zM1024 1408c-212.096 0 -384 -171.904 -384 -384c0 -211.968 171.904 -384 384 -384
|
||||||
|
c211.968 0 384 172.032 384 384c0 212.096 -172.032 384 -384 384zM1792 384v768h-274.176c10.624 -41.0879 18.1758 -83.4561 18.1758 -128c0 -282.752 -229.248 -512 -512 -512s-512 229.248 -512 512c0 44.5439 7.42383 86.9121 18.1758 128h-274.176v-768
|
||||||
|
c0 -70.7842 57.3438 -128 128 -128h1280c70.7842 0 128 57.2158 128 128zM1792 1536v128c0 70.6562 -57.2158 128 -128 128h-128c-70.7842 0 -128 -57.3438 -128 -128v-128c0 -70.6562 57.2158 -128 128 -128h128c70.7842 0 128 57.3438 128 128z" />
|
||||||
|
<glyph glyph-name="uniF202" unicode=""
|
||||||
|
d="M1920 1583.74c-49.2803 -73.7285 -111.744 -138.368 -183.552 -190.208c0.767578 -15.7441 1.2793 -31.6162 1.2793 -47.4883c0 -485.76 -369.92 -1046.02 -1046.27 -1046.02c-207.616 0 -400.768 60.7998 -563.456 165.248
|
||||||
|
c28.7998 -3.45605 58.1123 -5.24805 87.8076 -5.24805c172.032 0 330.752 58.752 456.448 157.439c-160.768 2.81641 -296.576 108.929 -343.424 255.104c22.5283 -3.96777 45.4404 -6.52832 69.248 -6.52832c33.5361 0 65.9199 4.48047 96.7676 12.7998
|
||||||
|
c-168.319 33.792 -294.912 182.272 -294.912 360.448v4.73633c49.6641 -27.5205 106.368 -44.0322 166.528 -45.9521c-98.6875 65.9199 -163.456 178.432 -163.456 305.92c0 67.3281 18.1758 130.688 49.792 184.96c181.376 -222.464 452.353 -368.768 757.889 -384.128
|
||||||
|
c-6.27246 26.8799 -9.60059 54.9121 -9.60059 83.7119c0 203.008 164.608 367.616 367.616 367.616c105.855 0 201.472 -44.6719 268.544 -116.096c83.584 16.5117 162.304 47.1035 233.216 89.2158c-27.3916 -85.8887 -85.7598 -157.952 -161.536 -203.393
|
||||||
|
c74.3682 8.83203 145.152 28.5439 211.072 57.8564z" />
|
||||||
|
<glyph glyph-name="uniF222" unicode=""
|
||||||
|
d="M1223.94 775.936c20.0967 20.0967 52.0967 19.9688 72.0645 0c19.9678 -19.9678 19.9678 -52.9912 0 -72.96c-56.96 -56.96 -145.92 -86.0156 -270.976 -86.0156c-126.977 0 -216.064 29.0557 -273.024 86.0156c-19.9678 19.9688 -19.9678 52.9922 0 72.96
|
||||||
|
c19.9678 19.9688 51.9678 19.9688 71.9355 0c38.0166 -38.0156 103.04 -56.0635 199.04 -56.0635c97.9209 0 162.944 18.0479 200.96 56.0635zM894.976 982.016c0 -61.0557 -49.9199 -112 -112 -112c-60.9277 0 -110.976 50.9443 -110.976 112
|
||||||
|
c0 61.9521 49.9199 112 110.976 112c61.9521 0 112 -50.0479 112 -112zM1265.02 1094.02c61.9512 0 112 -50.0479 112 -112c0 -61.0557 -50.0488 -112 -112 -112c-61.9521 0 -112 50.9443 -112 112c0 61.9521 50.0479 112 112 112zM1698.05 1089.02
|
||||||
|
c24.96 17.9199 43.0078 45.9512 43.1357 78.9756c0 54.0156 -44.0312 98.0479 -98.0479 98.0479c-32 0 -57.9834 -16 -76.0322 -39.04c53.8887 -39.9355 98.9443 -87.04 130.944 -137.983zM1021.06 500.992c347.904 0 631.937 177.023 632.064 393.983
|
||||||
|
c0 219.009 -284.032 396.032 -632.064 396.032c-349.056 0 -632.96 -177.023 -632.96 -395.008s283.904 -395.008 632.96 -395.008zM306.944 1168c0 -30.9756 16 -57.9844 39.9355 -74.8799c32 50.9443 76.9277 97.0234 131.968 136.96
|
||||||
|
c-17.9199 22.0156 -43.0078 35.9678 -72.96 35.9678c-54.9121 0 -98.9434 -44.0322 -98.9434 -98.0479zM1600 1805.06c-41.9844 0 -77.0557 -35.0713 -77.0557 -77.0557s35.0713 -77.0557 77.0557 -77.0557s77.0557 34.9434 77.0557 77.0557
|
||||||
|
s-35.0713 77.0557 -77.0557 77.0557zM1842.94 1168c0 -75.0078 -41.9844 -137.984 -101.889 -173.056c8.95996 -32 13.9521 -64.8965 13.9521 -98.9443c0 -274.944 -329.088 -498.048 -734.08 -498.048s-734.976 222.976 -734.976 497.023
|
||||||
|
c0 35.9688 6.01562 70.0166 16.1279 104.064c-57.9844 34.9443 -97.0244 97.0244 -97.0244 168.96c0 110.976 89.9844 200.96 200.96 200.96c66.0488 0 124.032 -32.8955 160 -82.9443c114.944 60.9287 257.024 99.9688 411.904 105.984l92.0322 456.96
|
||||||
|
c3.07227 14.0801 11.0078 25.9844 23.04 33.0244c12.0322 8.06348 25.9834 9.9834 39.04 7.04004l312.96 -72.0645c30.9756 52.9922 88.96 89.9844 155.008 89.9844c98.9443 0 179.072 -80 179.072 -178.944s-80 -178.944 -178.944 -178.944
|
||||||
|
c-95.1035 0 -172.032 73.9844 -178.048 167.937l-262.016 60.0322l-77.0566 -386.049c148.992 -7.93555 285.952 -46.9756 397.057 -108.031c35.9678 51.9678 94.9756 86.0156 162.943 86.0156c109.952 0 199.937 -89.9844 199.937 -200.96z" />
|
||||||
|
<glyph glyph-name="uniF214" unicode=""
|
||||||
|
d="M1091.2 1920v-452.992h425.216v-281.216h-425.216v-459.52c0 -103.937 5.50391 -170.624 16.6396 -200.192c10.8799 -29.3125 31.4883 -52.8643 61.3125 -70.5283c39.6797 -23.8076 84.8633 -35.7119 135.936 -35.7119c90.624 0 180.864 29.4404 270.72 88.4482v-282.624
|
||||||
|
c-76.6719 -35.9678 -146.048 -61.3125 -208 -75.9043c-61.9512 -14.4639 -129.023 -21.7598 -201.216 -21.7598c-81.9199 0 -154.368 10.3682 -217.344 30.9756c-62.9756 20.6084 -116.608 50.3047 -161.024 88.4482c-44.5439 38.2725 -75.2637 78.9766 -92.416 122.112
|
||||||
|
c-17.1514 43.1357 -25.7275 105.6 -25.7275 187.52v628.736h-198.016v253.568c70.3994 22.9121 130.688 55.6797 180.863 98.4316c50.3047 42.624 90.4961 93.8242 120.832 153.856c30.3359 59.7754 51.2002 135.808 62.7207 228.352h254.72z" />
|
||||||
|
<glyph glyph-name="uniF104" unicode=""
|
||||||
|
d="M512 1664l1152 -640l-1152 -640v1280z" />
|
||||||
|
<glyph glyph-name="uniF50B" unicode=""
|
||||||
|
d="M1408 1152l-384 -384l-384 384h256v512h256v-512h256zM384 640h1280v-256h-1280v256z" />
|
||||||
|
<glyph glyph-name="uniF409" unicode=""
|
||||||
|
d="M1024 1664l640 -512l-128 -128v-512h-1024v512l-128 128zM1152 576v448h-256v-448h256z" />
|
||||||
|
<glyph glyph-name="uniF458" unicode=""
|
||||||
|
d="M1920 1024l-1024 -640v480l-768 -480v1280l768 -480v480z" />
|
||||||
|
<glyph glyph-name="uniF218" unicode=""
|
||||||
|
d="M1792 1152h256v-128h-256v-256h-128v256h-256v128h256v256h128v-256zM1301.5 1920l-150.528 -84.7363h-145.792c54.0166 -44.6719 167.04 -138.624 167.04 -317.439c0 -173.952 -98.8154 -256.256 -197.504 -333.952
|
||||||
|
c-30.5918 -30.4639 -65.9199 -63.4883 -65.9199 -115.2s35.3281 -79.8721 61.1846 -101.12l84.7354 -65.792c103.424 -86.9121 197.376 -166.912 197.376 -329.216c0 -221.184 -213.888 -444.544 -618.368 -444.544c-341.119 0 -505.728 162.304 -505.728 336.384
|
||||||
|
c0 84.6084 42.3682 204.544 181.12 286.849c145.792 89.4717 343.424 101.119 449.152 108.159c-32.8965 42.3682 -70.5283 87.04 -70.5283 159.744c0 40.1924 11.7754 63.7441 23.5518 91.7764c-25.9844 -2.04785 -51.7119 -4.6084 -75.2637 -4.6084
|
||||||
|
c-249.216 0 -390.4 185.856 -390.4 369.28c0 108.032 49.4082 227.968 150.528 315.008c134.144 110.592 294.016 129.408 420.864 129.408h484.479zM1094.53 480.768c0 119.809 -77.5684 183.425 -256.385 310.528c-18.8154 2.30371 -30.5918 2.30371 -54.0156 2.30371
|
||||||
|
c-21.1201 0 -148.224 -4.60742 -246.912 -37.6318c-51.8398 -18.8154 -202.368 -75.1357 -202.368 -242.304c0 -166.784 162.305 -286.848 413.952 -286.848c225.792 0 345.729 108.159 345.729 253.951zM906.496 1238.02c54.0156 54.1445 58.752 129.408 58.624 171.648
|
||||||
|
c0 169.344 -101.12 432.768 -296.192 432.768c-61.3115 0 -127.104 -30.5918 -164.735 -77.5674c-39.9365 -49.4082 -51.7119 -112.896 -51.7119 -174.08c0 -157.568 91.6475 -418.561 294.016 -418.561c58.752 0 122.368 28.2881 160 65.792z" />
|
||||||
|
<glyph glyph-name="uniF513" unicode=""
|
||||||
|
d="M1920 1280l-555.136 -387.968l212.863 -636.032l-553.728 394.496l-553.728 -394.496l212.991 636.032l-555.264 387.968h685.312l210.688 640l210.688 -640h685.312zM1024 807.68l307.584 -219.136l-118.4 353.536l300.288 209.92h-371.456l-118.016 358.528v-702.849z
|
||||||
|
" />
|
||||||
|
<glyph glyph-name="uniF301" unicode=""
|
||||||
|
d="M704 1152h960l-256 -640h-1024v1024h384l64 -128h448v-128h-640l-128 -256h128z" />
|
||||||
|
<glyph glyph-name="uniF474" unicode=""
|
||||||
|
d="M128 1408v384h384zM640 768v512h768v-512h-768zM1536 1792h384v-384zM128 640l384 -384h-384v384zM1536 256l384 384v-384h-384zM1536 1408l256 384l128 -128zM1536 640l384 -256l-128 -128zM128 384l384 256l-256 -384zM128 1664l128 128l256 -384z" />
|
||||||
|
<glyph glyph-name="uniF438" unicode=""
|
||||||
|
d="M1280 1792c141.312 0 256 -114.688 256 -256v-1024c0 -141.312 -114.688 -256 -256 -256h-512c-141.312 0 -256 114.688 -256 256v384h128v-128h768v768h-768v-128h-128v128c0 141.312 114.688 256 256 256h512zM1024 384c70.7842 0 128 57.2158 128 128
|
||||||
|
s-57.2158 128 -128 128c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128zM768 896v128h-512v256h512v128l384 -256z" />
|
||||||
|
<glyph glyph-name="uniF451" unicode=""
|
||||||
|
d="M256 384v1280l1024 -640zM1408 1664h384v-1280h-384v1280z" />
|
||||||
|
<glyph glyph-name="uniF404" unicode=""
|
||||||
|
d="M1024 640c-19.8398 0 -39.04 2.43164 -57.8564 5.63184l436.225 436.225c3.2002 -18.8164 5.63184 -38.0166 5.63184 -57.8564c0 -211.968 -172.032 -384 -384 -384zM1696.26 1375.74l351.744 -351.744l-506.624 -506.624
|
||||||
|
c-131.456 -134.272 -314.752 -217.728 -517.376 -217.728c-117.248 0 -226.944 29.3115 -324.864 79.1035l147.072 146.944c56.7041 -20.6084 115.968 -34.0479 177.92 -34.0479c144 0 279.168 56.832 380.288 160.128l372.096 372.224l-216.063 215.936zM1606.02 1722.11
|
||||||
|
l128.641 -129.024l-1279.87 -1279.87l-128.896 128.769l128 128.128l-453.888 453.888v0l506.496 506.496c131.456 134.4 314.624 217.984 517.504 217.984c170.368 0 324.48 -61.8242 448 -160.385zM896 1024c70.6562 0 128 57.3438 128 128s-57.3438 128 -128 128
|
||||||
|
c-70.7842 0 -128 -57.3438 -128 -128s57.2158 -128 128 -128zM1229.18 1345.28l105.729 105.728c-90.752 66.8164 -197.12 105.473 -310.912 105.473c-144.128 0 -279.168 -56.9609 -380.288 -160.385l-372.096 -372.096l318.208 -318.336l113.023 113.024
|
||||||
|
c-38.6553 59.5195 -62.8477 129.023 -62.8477 205.312c0 212.096 172.032 384 384 384c76.2881 0 145.792 -24.1924 205.184 -62.7197z" />
|
||||||
|
<glyph glyph-name="uniF209" unicode=""
|
||||||
|
d="M1073.15 2048c481.664 0 798.976 -348.672 798.976 -722.944c0 -495.104 -275.328 -865.151 -680.96 -865.151c-136.32 0 -264.448 73.7275 -308.352 157.439c0 0 -73.2168 -290.943 -88.832 -347.136c-26.8809 -97.2803 -79.2324 -194.56 -127.104 -270.208
|
||||||
|
l-148.992 54.0156c-3.58398 88.3203 -0.639648 194.049 22.0166 289.92c24.1914 102.4 162.304 687.744 162.304 687.744s-40.3203 80.6406 -40.3203 199.809c0 187.008 108.544 326.784 243.456 326.784c114.816 0 170.24 -86.1445 170.24 -189.44
|
||||||
|
c0 -115.328 -73.7275 -288 -111.488 -448c-31.6152 -133.632 67.2002 -242.816 199.168 -242.816c239.232 0 400.128 307.072 400.128 670.977c0 276.607 -186.367 483.712 -525.184 483.712c-382.72 0 -621.312 -285.568 -621.312 -604.544
|
||||||
|
c0 -110.08 32.5117 -187.521 83.1992 -247.424c23.5527 -27.7764 26.624 -38.9121 18.3047 -70.6562c-6.0166 -23.04 -19.9688 -78.9766 -25.7285 -101.248c-8.44824 -32 -34.3037 -43.2637 -63.2314 -31.3604c-176.257 71.6807 -258.433 264.96 -258.433 482.048
|
||||||
|
c0 358.656 302.336 788.48 902.145 788.48z" />
|
||||||
|
<glyph glyph-name="uniF217" unicode=""
|
||||||
|
d="M1024 1920c494.08 0 896 -402.048 896 -896c0 -494.08 -401.92 -896 -896 -896c-493.952 0 -896 401.92 -896 896c0 493.952 402.048 896 896 896zM1112.83 1769.47c-211.2 10.4961 -420.864 -73.4717 -564.608 -220.16
|
||||||
|
c-146.432 -144.256 -216.063 -354.176 -189.695 -551.68c23.4238 -197.248 142.592 -378.496 307.584 -476.032c160.768 -96 365.312 -104.191 530.943 -29.0557c-47.1035 -13.0557 -96.6396 -20.3516 -147.712 -20.3516c-303.487 0 -550.399 246.911 -550.399 550.399
|
||||||
|
c0 143.872 55.6797 274.944 146.304 373.12c1.02441 1.02441 1.91992 1.91992 2.81641 2.94434c4.60742 4.73535 9.08789 9.47168 13.6953 14.208c0.512695 0.383789 0.896484 1.02344 1.4082 1.2793c128 148.353 317.056 242.177 528.256 242.177
|
||||||
|
c221.057 0 418.176 -102.912 546.048 -263.424c-20.8633 33.5352 -44.0312 65.6631 -69.376 95.6152c-137.983 168.832 -343.68 273.408 -555.264 280.96zM1415.04 1006.21c4.35156 -90.3682 -25.3438 -182.912 -80.7676 -257.152
|
||||||
|
c-55.5527 -73.8555 -135.169 -129.664 -225.28 -156.928c-74.8799 -22.7842 -156.544 -25.5996 -234.112 -7.04004c54.0166 -21.6318 112.896 -33.6641 174.464 -33.6641c259.968 0 471.296 211.456 471.296 471.296c0 0.768555 -0.12793 1.66406 -0.12793 2.68848
|
||||||
|
c-13.6953 142.336 -88.1914 276.352 -200.319 359.168c-137.345 104.576 -332.288 116.864 -479.232 38.0156c-73.2158 -38.5273 -136.832 -97.1514 -176.896 -166.912c-40.5762 -69.8877 -58.4961 -151.68 -52.2246 -230.912
|
||||||
|
c10.624 -158.976 124.8 -305.023 271.616 -345.216c146.432 -44.0322 313.344 19.584 391.936 142.849c82.5605 120.447 62.7207 293.119 -36.3516 391.68c-94.0801 104.192 -260.992 115.968 -367.872 36.8643c-54.0156 -38.6562 -92.5439 -94.3359 -105.344 -157.057
|
||||||
|
c-13.3125 -62.0801 -1.66406 -128.64 30.4639 -181.76c32.1279 -53.7598 83.7119 -93.5684 141.952 -108.032c58.2402 -15.1035 121.6 -4.86328 171.52 25.6006c50.5605 30.4639 87.5518 80.1279 97.9199 135.68c11.3926 55.2959 -1.66406 114.432 -34.3037 158.848
|
||||||
|
c-32.1279 45.5684 -82.8164 73.3447 -135.936 76.9287c-52.9922 4.0957 -105.856 -17.2803 -141.568 -54.2725c-36.6084 -35.9678 -52.0957 -89.0879 -44.6719 -137.855c7.55176 -48.6406 38.2715 -93.6963 80 -115.584c26.4961 -14.7207 57.4717 -19.8408 86.9121 -16.3848
|
||||||
|
c-62.0801 1.53613 -114.177 43.2646 -131.456 100.097c-0.512695 0.767578 -1.02441 1.66406 -1.4082 2.6875c-17.9199 41.4717 -13.0557 94.3359 16.1279 133.376c28.416 38.7842 77.5684 63.3604 128.768 60.7998c51.0723 -1.66406 101.376 -33.0234 128 -78.9756
|
||||||
|
c27.3926 -45.8242 32 -106.752 7.80859 -158.336c-24.0645 -51.7119 -73.7285 -90.2402 -131.584 -101.632c-57.4717 -12.416 -122.752 4.73535 -167.68 47.3594c-44.8008 40.96 -72.0645 104.192 -67.4561 168.32c3.83984 133.12 150.911 237.44 287.104 200.96
|
||||||
|
c138.368 -31.6162 226.944 -196.736 173.824 -338.304c-48.6406 -142.72 -224.769 -225.536 -373.888 -166.912c-74.1123 27.5195 -134.784 85.8877 -169.729 157.568c-34.9443 72.1914 -42.2402 158.592 -17.9199 237.695c47.8721 161.664 226.176 269.185 398.848 238.464
|
||||||
|
c175.36 -25.5996 313.217 -192.64 317.568 -374.016zM1024 207.488c319.232 0 595.968 184.319 730.112 451.712c37.248 84.7354 58.8799 175.744 58.8799 265.728c0 318.977 -247.04 554.368 -553.216 607.616c154.496 -64 279.296 -200.32 331.52 -362.496
|
||||||
|
c70.1445 -203.136 20.8643 -447.872 -133.12 -608.896c-148.224 -162.944 -384.384 -245.633 -608.128 -206.208c-226.048 35.584 -422.912 198.271 -517.504 407.936c-97.792 209.408 -90.3682 468.224 26.8799 674.432c116.736 206.337 329.344 354.433 566.272 395.009
|
||||||
|
c11.7754 2.17578 23.6797 3.96777 35.584 5.37598c-420.992 -32.1279 -753.664 -384.641 -753.664 -813.696c0 -450.304 366.208 -816.512 816.384 -816.512z" />
|
||||||
|
<glyph glyph-name="uniF469" unicode=""
|
||||||
|
d="M256 1280h1536v-768h-256v384h-1024v-384h-256v768zM1408 1664v-256h-768v256h768zM1408 640c0 -98.3037 37.5039 -196.48 112.512 -271.488l112.513 -112.512h-768l-112.513 112.512c-75.0078 75.0078 -112.512 173.185 -112.512 271.488v128h768v-128z" />
|
||||||
|
<glyph glyph-name="uniF476" unicode=""
|
||||||
|
d="M384 1248c123.776 0 224 -100.224 224 -224c0 -123.648 -100.224 -224 -224 -224s-224 100.352 -224 224c0 123.776 100.224 224 224 224zM1024 1248c123.648 0 224 -100.224 224 -224c0 -123.648 -100.352 -224 -224 -224c-123.776 0 -224 100.352 -224 224
|
||||||
|
c0 123.776 100.224 224 224 224zM1664 1248c123.648 0 224 -100.224 224 -224c0 -123.648 -100.352 -224 -224 -224s-224 100.352 -224 224c0 123.776 100.352 224 224 224z" />
|
||||||
|
<glyph glyph-name="uniF211" unicode=""
|
||||||
|
d="M1472 1440c229.888 0 416 -186.24 416 -416s-186.112 -416 -416 -416s-416 186.24 -416 416s186.112 416 416 416zM576 1440c229.76 0 416 -186.24 416 -416s-186.24 -416 -416 -416s-416 186.24 -416 416s186.24 416 416 416z" />
|
||||||
|
<glyph glyph-name="uniF456" unicode=""
|
||||||
|
d="M1024 1792c424.064 0 768 -343.936 768 -768s-343.936 -768 -768 -768c-424.192 0 -768 343.936 -768 768s343.808 768 768 768zM1024 512c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128zM1113.22 896
|
||||||
|
l51.584 640h-281.6l51.2002 -640h178.815z" />
|
||||||
|
<glyph glyph-name="uniF471" unicode=""
|
||||||
|
d="M512 1664h358.656c163.328 0 281.855 -23.2959 355.712 -69.7598c73.7275 -46.4639 110.592 -120.448 110.592 -221.824c0 -68.8643 -16.1279 -125.312 -48.3838 -169.344c-32.3838 -44.1602 -75.2646 -70.6562 -128.769 -79.6162v-7.93652
|
||||||
|
c72.96 -16.2559 125.568 -46.7197 157.952 -91.3916c32.2559 -44.6719 48.5127 -104.063 48.5127 -178.048c0 -105.088 -38.0166 -187.008 -113.921 -245.888c-76.0312 -58.8809 -178.943 -88.1924 -309.248 -88.1924h-431.104v1152zM768 1207.81h130.176
|
||||||
|
c66.3047 0 114.176 10.2402 143.872 30.7207c29.5684 20.4795 44.5439 54.3994 44.5439 101.632c0 44.1602 -16.1279 75.7754 -48.5117 94.9756c-32.3838 19.0723 -83.4561 28.7998 -153.344 28.7998h-116.736v-256.128zM768 1013.89v-300.16h147.456
|
||||||
|
c67.2002 0 116.864 12.9287 148.864 38.6562c32.1279 25.7285 48.1279 65.1523 48.1279 118.145c0 95.6152 -68.3525 143.487 -204.929 143.487h-139.52v-0.12793z" />
|
||||||
|
<glyph glyph-name="uniF433" unicode=""
|
||||||
|
d="M0 896l896 -896h-896v896z" />
|
||||||
|
<glyph glyph-name="uniF447" unicode=""
|
||||||
|
d="M1408 512c70.7842 0 128 -57.2158 128 -128s-57.2158 -128 -128 -128s-128 57.2158 -128 128s57.2158 128 128 128zM640 512c70.6562 0 128 -57.2158 128 -128s-57.3438 -128 -128 -128s-128 57.2158 -128 128s57.3438 128 128 128zM1536 896h-896v-128h896v-128h-1024
|
||||||
|
v1024h-256v128h384v-256h1152z" />
|
||||||
|
<glyph glyph-name="uniF511" unicode=""
|
||||||
|
d="M1024 1510.53l-118.016 -358.528h-371.328l300.288 -209.92l-118.272 -353.28l307.328 218.88l307.584 -219.136l-118.4 353.536l300.288 209.92h-371.456zM1024 1920v0l210.688 -640h685.312l-555.136 -387.968l212.863 -636.032l-553.728 394.496l-553.728 -394.496
|
||||||
|
l212.991 636.032l-555.264 387.968h685.312z" />
|
||||||
|
<glyph glyph-name="uniF427" unicode=""
|
||||||
|
d="M1717.72 1436.21c99.7246 -99.7246 99.7246 -261.281 0 -361.006l-232.861 -232.989c-98.5723 -98.5723 -257.44 -99.3398 -357.421 -2.81543l-455.353 -455.354h-288.036v287.908l455.097 454.969l-0.767578 0.768555c-99.5967 99.5957 -99.5967 261.408 0 361.005
|
||||||
|
l232.989 232.989c99.5957 99.7246 261.408 99.7246 361.005 0zM1344.04 1104.01l160.02 160.021l-256.031 256.031l-160.021 -160.02z" />
|
||||||
|
<glyph glyph-name="uniF219" unicode=""
|
||||||
|
d="M1438.08 1832.7c0 0 563.456 -229.376 370.176 -838.4c-267.264 -554.496 -784.64 -349.056 -784.64 -349.056v-277.504s-19.7119 -153.344 -202.88 -220.288c-183.296 -66.6885 -351.616 59.5195 -351.616 59.5195v279.809
|
||||||
|
c83.584 -85.5039 195.712 -134.272 240.128 -9.98438v945.92h311.68v-537.472s460.416 -138.496 522.368 289.792c9.85645 475.392 -546.944 472.832 -546.944 472.832s-349.184 22.2715 -522.495 -257.536c-131.2 -222.848 37.1191 -423.424 37.1191 -423.424
|
||||||
|
l-225.279 -200.448s-339.2 418.433 -7.42383 871.552c430.848 487.681 1159.81 194.688 1159.81 194.688z" />
|
||||||
|
<glyph glyph-name="uniF100" unicode=""
|
||||||
|
d="M512 1408h1024v-128h-1024v128zM1152 1152v-128h-640v128h640zM1280 1024v128h256v-128h-256zM896 768v128h640v-128h-640zM768 896v-128h-256v128h256zM512 512v128h768v-128h-768z" />
|
||||||
|
<glyph glyph-name="uniF400" unicode=""
|
||||||
|
d="M1792 384l-128 -128l-494.848 494.848c-94.8486 -68.9912 -210.816 -110.848 -337.152 -110.848c-318.08 0 -576 257.92 -576 576s257.92 576 576 576s576 -257.92 576 -576c0 -126.336 -41.8564 -242.304 -110.848 -337.152zM384 1216c0 -247.424 200.576 -448 448 -448
|
||||||
|
c247.552 0 448 200.576 448 448s-200.448 448 -448 448c-247.424 0 -448 -200.576 -448 -448z" />
|
||||||
|
<glyph glyph-name="uniF439" unicode=""
|
||||||
|
d="M896 1664v-384h-256v384c0 70.7842 57.3438 128 128 128s128 -57.2158 128 -128zM1408 1664v-384h-256v384c0 70.7842 57.2158 128 128 128s128 -57.2158 128 -128zM384 1152h1280c0 -309.632 -219.904 -567.68 -512 -627.072v-268.928h-256v268.928
|
||||||
|
c-292.096 59.2646 -512 317.44 -512 627.072z" />
|
||||||
|
<glyph glyph-name="uniF509" unicode=""
|
||||||
|
d="M1534.21 717.824l147.712 -88.5762c-134.4 -223.36 -378.24 -373.248 -657.92 -373.248c-279.552 0 -523.52 149.888 -657.92 373.248l147.712 88.7041c92.1602 -98.1758 226.816 -168.96 382.208 -194.688v500.736h-128v128h128v163.456
|
||||||
|
c-76.1602 44.416 -128 126.08 -128 220.544c0 141.312 114.688 256 256 256s256 -114.688 256 -256c0 -94.4639 -51.7119 -176.128 -128 -220.544v-163.456h128v-128h-128v-500.864c155.52 25.7285 289.92 96.3838 382.208 194.688zM1024 1664
|
||||||
|
c-70.6562 0 -128 -57.3438 -128 -128s57.3438 -128 128 -128c70.7842 0 128 57.3438 128 128s-57.2158 128 -128 128z" />
|
||||||
|
<glyph glyph-name="uniF510" unicode=""
|
||||||
|
d="M1664 1152v-256h-512v-512h-256v512h-512v256h512v512h256v-512h512z" />
|
||||||
|
<glyph glyph-name="uniF445" unicode=""
|
||||||
|
d="M1888 748.032l-57.5996 -139.648l-305.408 21.8887c-31.3604 -39.9365 -66.9443 -75.6484 -106.88 -107.009l21.7598 -305.536l-139.264 -57.5996l-200.704 231.552c-25.2158 -3.07129 -49.9199 -7.67969 -75.9043 -7.67969c-25.7275 0 -50.1758 4.6084 -75.1357 7.67969
|
||||||
|
l-200.96 -231.808l-139.393 57.7275l21.7607 305.408c-39.9365 31.3604 -75.5205 66.9443 -107.009 106.88l-305.536 -21.7598l-57.7275 139.264l231.68 200.832c-3.07129 25.0879 -7.67969 49.792 -7.67969 75.7764c0 25.7275 4.6084 50.1758 7.55176 75.1357
|
||||||
|
l-231.552 200.96l57.7275 139.393l305.28 -21.7607c31.4883 39.9365 67.2002 75.7764 107.265 107.265l-21.7607 305.408l139.137 57.5996l200.96 -231.68c24.96 2.94336 49.5352 7.67969 75.3916 7.67969s50.4316 -4.73633 75.3916 -7.67969l200.96 231.68
|
||||||
|
l139.265 -57.5996l-21.8887 -305.408c39.9365 -31.3604 75.6484 -67.0723 107.137 -107.008l305.408 21.6318l57.5996 -139.136l-231.552 -200.832c3.07129 -25.0889 7.67969 -49.6641 7.67969 -75.6484c0 -25.7275 -4.6084 -50.3037 -7.67969 -75.2637zM1280 1024
|
||||||
|
c0 141.312 -114.688 256 -256 256s-256 -114.688 -256 -256s114.688 -256 256 -256s256 114.688 256 256z" />
|
||||||
|
<glyph glyph-name="uniF516" unicode=""
|
||||||
|
d="M1024 1452.42v-467.328h-155.776v467.328h155.776zM1408 1452.42v-467.328h-155.776v467.328h155.776zM323.2 1920h1596.8v-1090.82l-467.456 -445.184h-350.464l-233.6 -256h-228.48v256h-512v1224.32zM1764.22 907.136v857.088h-1285.5v-1129.73h350.977v-211.328
|
||||||
|
l233.472 211.328h428.16z" />
|
||||||
|
<glyph glyph-name="uniF435" unicode=""
|
||||||
|
d="M384 512l640 640l640 -640h-1280zM384 1408h1280v-128h-1280v128z" />
|
||||||
|
<glyph glyph-name="uniF300" unicode=""
|
||||||
|
d="M1536 1536c141.312 0 256 -114.688 256 -256v-384c0 -141.312 -114.688 -256 -256 -256h-448l-448 -448v448h-128c-141.312 0 -256 114.688 -256 256v384c0 141.312 114.688 256 256 256h1024z" />
|
||||||
|
<glyph glyph-name="uniF514" unicode=""
|
||||||
|
d="M1664 768v128l256 -256l-256 -256v128h-256c-282.752 0 -512 229.248 -512 512c0 141.312 -114.688 256 -256 256h-384v256h384c282.752 0 512 -229.248 512 -512c0 -141.312 114.688 -256 256 -256h256zM1408 1280c-61.8242 0 -117.888 -22.9121 -162.176 -59.3916
|
||||||
|
c-27.3926 83.9678 -70.7842 160 -128 224.768c82.5596 56.96 182.271 90.624 290.176 90.624h256v128l256 -256l-256 -256v128h-256zM640 768c61.8242 0 117.888 22.9121 162.176 59.3916c27.3926 -83.9678 70.7842 -160 128 -224.768
|
||||||
|
c-82.5596 -56.832 -182.271 -90.624 -290.176 -90.624h-384v256h384z" />
|
||||||
|
<glyph glyph-name="uniF102" unicode=""
|
||||||
|
d="M1408 1408l512 -128v-896h-1792v896l512 128l128 256h512zM1024 512.256c247.552 0 448 200.448 448 448c0 247.424 -200.448 448 -448 448c-247.424 0 -448 -200.576 -448 -448c0 -247.552 200.576 -448 448 -448zM512 1600v-96.1279l-256 -64v160.128h256z
|
||||||
|
M1024 1280.13c176.768 0 320 -143.231 320 -320c0 -176.768 -143.232 -320 -320 -320s-320 143.232 -320 320c0 176.769 143.232 320 320 320z" />
|
||||||
|
<glyph glyph-name="uniF466" unicode=""
|
||||||
|
d="M640 1344l-320 -320l320 -320v-320l-640 640l640 640v-320zM1408 1280c282.752 0 512 -229.248 512 -512v-299.904l-150.016 149.889c-99.9688 99.9678 -231.04 150.016 -361.984 150.016h-256v-384l-640 640l640 640v-384h256z" />
|
||||||
|
<glyph glyph-name="uniF463" unicode=""
|
||||||
|
d="M1536 1408l-768 -384l-768 384v128h1536v-128zM0 1216l768 -384l256 128v-448h-1024v704zM1920 1152c70.7842 0 128 -57.3438 128 -128v-640c0 -70.7842 -57.2158 -128 -128 -128h-640c-70.7842 0 -128 57.2158 -128 128v640c0 70.6562 57.2158 128 128 128h640z
|
||||||
|
M1920 640v128h-256v256h-128v-256h-256v-128h256v-256h128v256h256z" />
|
||||||
|
<glyph glyph-name="uniF422" unicode=""
|
||||||
|
d="M384 1536h1152v-1024h-1152v1024zM1408 640v640h-896v-640h896z" />
|
||||||
|
<glyph glyph-name="uniF201" unicode=""
|
||||||
|
d="M1024 128c128 0 256 32 368 80c-16 144 -64 368 -208 688c-288 -96 -560 -304 -704 -576c144 -128 336 -192 544 -192zM1536 288c208 144 352 384 384 640c-192 32 -368 32 -576 0c16 -32 128 -304 192 -640zM128 1088v-64c0 -224 80 -432 224 -592
|
||||||
|
c176 288 496 496 784 592c-16 48 -48 112 -80 176c-368 -112 -592 -144 -928 -112zM1760 1536c-160 -128 -368 -192 -560 -288c48 -64 64 -112 96 -176c208 48 480 32 624 0c-16 176 -64 336 -160 464zM672 1856c-256 -112 -448 -336 -512 -624c288 -32 688 48 832 96
|
||||||
|
c-96 192 -192 352 -320 528zM1024 1920c-64 0 -128 -16 -192 -16c128 -208 192 -320 304 -512c128 48 384 128 528 256c-160 160 -384 272 -640 272zM1024 2048c560 0 1024 -464 1024 -1024s-464 -1024 -1024 -1024s-1024 464 -1024 1024s464 1024 1024 1024z" />
|
||||||
|
<glyph glyph-name="uniF426" unicode=""
|
||||||
|
d="M1664 1024c141.312 0 256 -114.688 256 -256s-114.688 -256 -256 -256h-1280c-141.312 0 -256 114.688 -256 256s114.688 256 256 256h6.52832c-4.35254 20.8643 -6.52832 41.9844 -6.52832 64c0 176.768 143.232 320 320 320
|
||||||
|
c89.3438 0 169.984 -36.8643 227.968 -95.8721c60.7998 131.84 193.408 223.872 348.032 223.872c211.968 0 384 -171.904 384 -384c0 -45.1836 -9.21582 -87.8076 -23.5518 -128h23.5518z" />
|
||||||
|
<glyph glyph-name="uniF446" unicode=""
|
||||||
|
d="M1024 1792c424.064 0 768 -343.936 768 -768s-343.936 -768 -768 -768s-768 343.936 -768 768s343.936 768 768 768zM1536 1024c0 282.752 -229.248 512 -512 512c-94.8477 0 -182.528 -27.5195 -258.688 -72.4482l698.368 -698.24
|
||||||
|
c44.8008 76.1602 72.3203 163.969 72.3203 258.688zM512 1024c0 -282.752 229.248 -512 512 -512c94.7197 0 182.4 27.5195 258.56 72.3203l-698.239 698.239c-44.8008 -76.1592 -72.3203 -163.84 -72.3203 -258.56z" />
|
||||||
|
<glyph glyph-name="uniF504" unicode=""
|
||||||
|
d="M1664 1536c0 -94.4639 -51.7119 -176.128 -128 -220.544v-163.456c0 -282.752 -229.248 -512 -512 -512c-141.312 0 -256 -114.688 -256 -256v-128h-256v1059.46c-76.1602 44.416 -128 126.08 -128 220.544c0 141.312 114.688 256 256 256s256 -114.688 256 -256
|
||||||
|
c0 -94.4639 -51.8398 -176.128 -128 -220.544v-490.496c75.5195 44.0322 162.304 71.04 256 71.04c141.312 0 256 114.688 256 256v163.456c-76.2881 44.416 -128 126.08 -128 220.544c0 141.312 114.688 256 256 256s256 -114.688 256 -256zM640 1664
|
||||||
|
c-70.6562 0 -128 -57.3438 -128 -128s57.3438 -128 128 -128s128 57.3438 128 128s-57.3438 128 -128 128zM1408 1408c70.7842 0 128 57.3438 128 128s-57.2158 128 -128 128s-128 -57.3438 -128 -128s57.2158 -128 128 -128z" />
|
||||||
|
<glyph glyph-name="uniF465" unicode=""
|
||||||
|
d="M1536 1408l-768 -384l-768 384v128h1536v-128zM0 1216l768 -384l256 128v-448h-1024v704zM1920 1152c70.7842 0 128 -57.3438 128 -128v-640c0 -70.7842 -57.2158 -128 -128 -128h-640c-70.7842 0 -128 57.2158 -128 128v640c0 70.6562 57.2158 128 128 128h640z
|
||||||
|
M1531.52 384l452.48 452.48l-90.4961 90.4951l-361.984 -361.983l-180.991 180.992l-90.4961 -90.4961z" />
|
||||||
|
<glyph glyph-name="uniF424" unicode=""
|
||||||
|
d="M1408 1792l384 -384v-768l-384 -384h-768l-384 384v768l384 384h768zM1024 512c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128zM1113.22 896l51.584 640h-281.6l51.2002 -640h178.815z" />
|
||||||
|
<glyph glyph-name="uniF418" unicode=""
|
||||||
|
d="M1408 1504l128 -96l-512 -768h-128l-288 416l128 128l224 -192z" />
|
||||||
|
<glyph glyph-name="uniF429" unicode=""
|
||||||
|
d="M1024 1453.31l493.312 -493.312l-493.312 -493.312l-86.6562 86.6553l342.656 342.656h-896v128h896l-342.656 342.656z" />
|
||||||
|
<glyph glyph-name="uniF308" unicode=""
|
||||||
|
d="M477.696 568.192l543.104 543.104l90.3682 -90.624l-542.976 -542.976c-100.225 -100.353 -152.32 -115.84 -226.305 -135.809c20.0967 74.1123 35.584 126.08 135.809 226.305zM1189.5 1732.61l180.992 180.991l542.976 -543.104l-180.991 -180.992
|
||||||
|
c-50.0488 50.0479 -130.944 50.0479 -180.992 0l-180.992 -180.992c-50.0479 -50.0479 -50.0479 -130.943 0 -180.992l-180.992 -180.991l-543.104 542.976l180.991 180.992c50.0488 -50.0479 131.072 -50.0479 181.12 0l180.992 181.12
|
||||||
|
c50.0479 50.0479 50.0479 130.943 0 180.992z" />
|
||||||
|
<glyph glyph-name="uniF226" unicode=""
|
||||||
|
d="M1477.76 1792c120.32 0 152.576 -68.6084 126.464 -195.584l-51.8398 -258.688c-40.96 -206.848 -88.0635 -445.695 -94.0801 -470.144c-11.0078 -44.1602 -27.9033 -119.168 -132.992 -119.168h-250.367c-9.98438 0 -9.98438 0 -20.0967 -10.1123
|
||||||
|
c-6.65527 -6.65527 -393.344 -455.424 -393.344 -455.424c-30.208 -34.6875 -80.3838 -28.5439 -98.6875 -21.1201c-18.3047 7.2959 -50.6885 29.6963 -50.6885 89.9844v1301.63s33.2803 138.624 146.304 138.624h819.328zM1394.94 1391.1l34.3037 179.2
|
||||||
|
c6.27148 29.6963 -16.3838 52.4805 -40.5762 52.4805h-657.536c-29.8242 0 -49.792 -26.8799 -49.792 -49.792v-1015.68c0 -3.19922 2.43262 -3.83984 4.86426 -1.15137c0 0 242.304 290.815 269.184 324.352c26.8809 33.4082 39.168 38.6562 79.3604 38.6562h221.184
|
||||||
|
c30.208 0 47.2324 25.3438 50.3047 40.1924c3.2002 14.8477 28.9277 149.12 34.4316 176.256s-19.3281 54.9121 -44.7998 54.9121h-270.976c-35.9688 0 -61.8242 25.4717 -61.8242 61.3115v39.04c0 35.9678 25.7275 60.416 61.5674 60.416h319.232
|
||||||
|
s46.9756 20.4805 51.0723 39.8076z" />
|
||||||
|
<glyph glyph-name="uniF205" unicode=""
|
||||||
|
d="M1024 1920c493.952 0 896 -401.92 896 -896c0 -493.952 -402.048 -896 -896 -896c-494.08 0 -896 402.048 -896 896c0 494.08 401.92 896 896 896zM218.496 1024c0 -318.848 185.216 -594.432 454.016 -724.992l-384.256 1052.93
|
||||||
|
c-44.6719 -100.224 -69.7598 -211.071 -69.7598 -327.936zM1024 218.496c93.8242 0 183.808 16.1279 267.648 45.5684c-2.17676 3.45508 -4.09668 7.16797 -5.76074 11.2637l-247.552 678.271l-241.92 -702.336c72.1924 -21.248 148.48 -32.7676 227.584 -32.7676z
|
||||||
|
M1134.98 1401.73l291.072 -866.176l80.3838 268.544c34.9443 111.488 61.3125 191.488 61.3125 260.48c0 99.584 -35.8398 168.576 -66.4326 222.08c-40.7031 66.4316 -78.9756 122.624 -78.9756 189.056c0 74.1123 56.1924 142.977 135.168 142.977
|
||||||
|
c3.58398 0 7.04004 -0.384766 10.4961 -0.640625c-143.36 131.328 -334.208 211.456 -544 211.456c-281.472 0 -529.024 -144.256 -673.024 -363.008c18.9443 -0.639648 36.7363 -0.896484 51.8408 -0.896484c84.2236 0 214.655 10.2402 214.655 10.2402
|
||||||
|
c43.3926 2.56055 48.5127 -61.3115 5.24805 -66.4316c0 0 -43.7754 -5.12012 -92.1602 -7.68066l293.12 -872.575l176.256 528.64l-125.439 343.936c-43.3926 2.56055 -84.4805 7.68066 -84.4805 7.68066c-43.2637 2.55957 -38.2715 68.9922 5.12012 66.4316
|
||||||
|
c0 0 132.992 -10.2402 212.225 -10.2402c84.2236 0 214.783 10.2402 214.783 10.2402c43.3926 2.56055 48.5127 -61.3115 5.12012 -66.4316c0 0 -43.6475 -5.12012 -92.2881 -7.68066zM1730.82 1410.56c3.58398 -25.7275 5.50391 -53.248 5.63184 -82.8154
|
||||||
|
c0 -81.792 -15.4883 -173.696 -61.3125 -288.512l-246.144 -711.425c239.488 139.521 400.512 399.104 400.512 696.192c0 140.16 -35.8398 271.872 -98.6875 386.56z" />
|
||||||
|
<glyph glyph-name="uniF472" unicode=""
|
||||||
|
d="M1368.06 1408h-128l-240.129 -768h128l-39.9355 -128h-448l39.9355 128h128l240.129 768h-128l39.9355 128h448z" />
|
||||||
|
<glyph glyph-name="uniF216" unicode=""
|
||||||
|
d="M1791.62 1265.92c0.383789 -2.94434 0.639648 -5.75977 0.639648 -8.7041v-466.943c0 -2.94434 -0.255859 -5.76074 -0.511719 -8.96094c-0.12793 -0.767578 -0.383789 -1.79199 -0.511719 -2.81543c-0.384766 -1.79199 -0.640625 -3.58398 -1.15234 -5.50391
|
||||||
|
c-0.255859 -1.02441 -0.768555 -2.04785 -1.02441 -3.07227c-0.639648 -1.66406 -1.15137 -3.2002 -1.79199 -4.86426c-0.511719 -1.02344 -1.02344 -2.04785 -1.53613 -3.07129c-0.639648 -1.53613 -1.40723 -2.94434 -2.30371 -4.48047
|
||||||
|
c-0.511719 -0.895508 -1.28027 -1.91992 -1.91992 -2.94434c-0.767578 -1.2793 -1.66406 -2.55957 -2.6875 -3.96777c-0.768555 -0.895508 -1.53613 -1.79199 -2.30469 -2.81543c-1.02344 -1.02441 -2.04785 -2.30469 -3.32812 -3.45605
|
||||||
|
c-0.767578 -0.896484 -1.66406 -1.79199 -2.6875 -2.68848c-1.02441 -0.895508 -2.30371 -2.04785 -3.71191 -3.07227c-0.768555 -0.767578 -1.79199 -1.53516 -2.81641 -2.30371l-1.15137 -0.767578l-702.208 -467.072
|
||||||
|
c-11.1367 -7.42383 -23.8086 -11.0078 -36.6084 -11.0078s-25.4717 3.58398 -36.7363 11.2637l-702.208 467.072c-0.255859 0.255859 -0.639648 0.511719 -1.02344 0.767578l-2.94434 2.30469c-1.28027 0.895508 -2.55957 2.04785 -3.71191 3.07129
|
||||||
|
c-0.895508 0.896484 -1.79199 1.79199 -2.6875 2.68848c-1.02441 1.02344 -2.17676 2.30371 -3.2002 3.45605c-0.768555 0.895508 -1.53613 1.79199 -2.30469 2.81543c-0.895508 1.28027 -1.79199 2.56055 -2.6875 3.96875
|
||||||
|
c-0.768555 0.895508 -1.4082 1.91992 -1.91992 2.94336c-0.896484 1.53613 -1.66406 2.94434 -2.30371 4.48047c-0.512695 0.895508 -1.02441 1.91992 -1.53613 3.07129c-0.640625 1.66406 -1.15234 3.2002 -1.66406 4.86426
|
||||||
|
c-0.383789 0.896484 -0.768555 1.91992 -1.02441 3.07227c-0.511719 1.91992 -0.767578 3.71191 -1.15137 5.50391c-0.128906 1.02441 -0.384766 2.04785 -0.512695 2.94434c-0.383789 2.81543 -0.639648 5.75977 -0.639648 8.57617v466.943
|
||||||
|
c0 2.94434 0.255859 5.75977 0.639648 8.7041c0.12793 0.896484 0.383789 1.79199 0.512695 2.81641c0.383789 1.91992 0.639648 3.71191 1.15137 5.50391c0.255859 1.15137 0.640625 2.17578 1.02441 3.2002c0.511719 1.53516 1.02344 3.19922 1.66406 4.86328
|
||||||
|
c0.511719 1.02441 1.02344 2.04785 1.53613 3.2002c0.639648 1.53613 1.40723 2.81641 2.30371 4.48047c0.639648 0.895508 1.28027 1.91992 1.91992 2.94336c0.767578 1.28027 1.79199 2.68848 2.6875 3.96875c0.640625 1.02344 1.4082 1.79199 2.30469 2.81543
|
||||||
|
c1.02344 1.28027 2.04785 2.43164 3.2002 3.58398c0.895508 0.768555 1.79199 1.66406 2.6875 2.68848c1.15234 1.02344 2.43164 2.04785 3.71191 3.07129l2.94434 2.17676c0.383789 0.255859 0.767578 0.639648 1.15137 0.895508l702.208 466.944
|
||||||
|
c22.1445 14.7197 51.0723 14.7197 73.2168 0l702.08 -467.2c0.383789 -0.255859 0.767578 -0.639648 1.15137 -0.896484c0.896484 -0.767578 1.91992 -1.53516 2.81641 -2.30371c1.2793 -0.895508 2.55957 -1.91992 3.71191 -3.07227
|
||||||
|
c1.02344 -0.895508 1.91992 -1.79199 2.6875 -2.6875c1.15234 -1.02441 2.17676 -2.17578 3.32812 -3.45605c0.768555 -0.896484 1.53613 -1.79199 2.30469 -2.81641c0.895508 -1.2793 1.79199 -2.55957 2.6875 -3.96777
|
||||||
|
c0.639648 -0.895508 1.4082 -1.91992 1.91992 -2.94434c0.896484 -1.53516 1.66406 -2.81543 2.30371 -4.35156c0.512695 -1.02441 1.02441 -2.04785 1.53613 -3.2002c0.640625 -1.66406 1.15234 -3.2002 1.79199 -4.73535
|
||||||
|
c0.255859 -1.02441 0.768555 -2.04883 1.02441 -3.2002c0.511719 -1.79199 0.767578 -3.58398 1.15137 -5.50391c0.128906 -0.896484 0.384766 -1.79199 0.512695 -2.81641zM1090.05 1601.28v-307.328l286.208 -190.977l231.168 154.24zM957.952 1601.28l-517.248 -344.064
|
||||||
|
l231.04 -154.24l286.208 191.104v307.2zM387.84 1133.95v-220.416l165.12 110.208zM957.952 446.208v307.328l-286.208 190.976l-231.04 -154.111zM1024 867.84l233.472 155.904l-233.472 155.904l-233.472 -155.904zM1090.05 446.208l517.376 344.064l-231.168 154.111
|
||||||
|
l-286.208 -190.976v-307.2zM1660.29 913.536v220.416l-165.248 -110.208z" />
|
||||||
|
<glyph glyph-name="uniF475" unicode=""
|
||||||
|
d="M1024 1792c424.064 0 768 -343.936 768 -768s-343.936 -768 -768 -768s-768 343.936 -768 768s343.936 768 768 768zM476.16 1340.54l-2.81641 3.96777c-4.60742 -7.93555 -8.83203 -16.1279 -13.1836 -24.3193l4.47949 1.02344l17.5361 6.27246l30.208 2.6875zM1024 384
|
||||||
|
c265.088 0 493.056 162.176 590.208 392.576l-6.52832 10.4961l14.9766 50.8154l-34.6885 25.2158l-25.3438 7.55273l-23.5518 19.8398l-55.8086 -21.1201l-52.7354 -3.07227l-39.9365 29.0566l-39.04 53.5039l-0.767578 32.5117l0.895508 54.2725l5.63184 7.55176
|
||||||
|
l4.86426 18.1758l22.7842 35.0723l13.3125 13.0557l18.6875 20.7363l13.0557 25.5996l36.8643 34.9443l37.7598 -0.383789l27.6484 9.59961l66.4316 7.16797l25.9844 -36.8643l24.1924 -10.4961c-8.44824 39.4248 -20.2246 77.6963 -35.585 114.049l-5.50391 5.11914
|
||||||
|
l-13.4395 -6.65527l-28.9277 -2.68848l-23.8086 -21.248l-25.9834 -35.0723l-50.6885 -11.6475l-23.5518 9.21582l2.6875 40.5762l13.3125 25.2158l46.4639 -2.6875l8.57617 21.8877l-24.0645 26.624l20.6084 8.32031l40.4482 22.0156l14.4639 11.6484
|
||||||
|
c-49.1523 77.6953 -113.664 144.256 -190.721 194.688l-4.35156 -1.79199l20.3516 -17.792l-32.8955 5.24805l-4.6084 -9.34375l21.248 -2.56055l-7.93555 -8.95996l-59.9043 -10.3682l-77.3115 -34.3037l-59.9043 -28.9277l-6.27246 59.6475l16.8965 32.6406
|
||||||
|
l-12.416 21.7598l-45.9521 19.4561l-22.1436 17.1523l32.1279 7.67969l69.1201 16.8955l29.8232 1.66406c-64.7676 22.1445 -132.991 36.7363 -205.056 36.7363c-146.56 0 -280.064 -51.4561 -388.096 -134.656l38.2715 1.15234l47.7441 -12.2881l32 -8.19238
|
||||||
|
l34.8164 7.80859l47.6152 -6.0166l29.9521 7.2959l5.63184 18.0488l28.1602 -2.94434l11.0078 -22.7842l47.6162 4.35254l-74.752 -24.7041l-36.0957 -20.8643l-55.168 -42.2402l13.6963 -14.9756l38.3994 -18.0479l27.3926 -28.0322l33.6641 34.4316l19.4551 37.8887
|
||||||
|
l33.0244 22.6553l33.0244 -16.7676l9.08789 -18.4316l28.9277 10.2393l10.2402 -55.168l20.4795 -20.0957l-74.752 -19.0723l-54.7842 -21.5039l42.752 11.7764l-5.24707 -17.1523l13.5674 -15.3604l11.2646 -7.16797l-45.9521 -18.6875l16.1279 18.8154l-25.9844 -5.63184
|
||||||
|
l-31.2314 -14.8477l-14.208 -16.5117l-34.9443 -19.3281l-25.6006 -20.2246l-9.72754 -23.4238l-32.7676 -26.752l-25.8564 -59.3916l-8.06348 -25.7285l-23.6807 47.4883l-46.208 -0.12793l-38.3994 0.255859l-49.2803 -39.6797l-6.52832 -43.5205l29.6963 -32.3838
|
||||||
|
l57.2158 30.7197l-14.8477 -43.5195l-40.4482 -26.1123l-39.2959 9.47266l-43.5205 18.1758l-49.9199 79.1035l-22.1436 47.2324l-5.24805 16.2559l7.42383 -66.0479l-0.639648 -17.1523l-8.19238 10.2402l-4.99219 16.6396l-9.9834 12.416l-5.12012 22.9121
|
||||||
|
l-0.255859 35.9678l-26.752 46.3359c-17.4082 -58.1113 -29.5684 -118.399 -29.5684 -182.144c0 -295.936 202.88 -543.232 476.16 -616.192l-4.0957 12.6729l-9.60059 137.6l-11.1357 62.8477l-67.3281 65.792l-31.7441 56.3203l-10.624 27.9043l7.67969 16.5117
|
||||||
|
l14.0801 52.9922l7.55273 61.6953l-8.32031 4.73633l-14.9756 -10.8799l-19.9688 9.34375l13.4404 6.27246l59.9043 13.8242l39.4238 17.6631l-2.43262 -26.752l14.5928 24.1924l19.7119 -6.91211l67.7119 -21.6318l48.5117 -33.6641l34.9443 -19.3281l8.31934 -5.50391
|
||||||
|
l-8.19141 -48.7676l33.4082 9.47168l-8.32031 -16.6396l47.3604 -10.1123l48 -3.96777l31.3594 -19.7119l1.28027 -57.3447l-22.7842 -65.4072l-27.6475 -68.0967l-50.1768 -30.8477l-39.9355 -90.8799l-36.0957 5.12012l17.1514 -23.4238l-1.91992 -16.5127
|
||||||
|
l-33.2803 -26.4961c19.4561 -1.79199 38.1445 -5.8877 57.9844 -5.8877z" />
|
||||||
|
<glyph glyph-name="uniF432" unicode=""
|
||||||
|
d="M1408 640l-448 448l-448 -448l-128 128l576 576l576 -576z" />
|
||||||
|
<glyph glyph-name="uniF210" unicode=""
|
||||||
|
d="M1024 2048c565.632 0 1024 -458.496 1024 -1024c0 -565.632 -458.368 -1024 -1024 -1024c-100.864 0 -198.016 14.7197 -290.176 42.1123c38.7842 61.4395 81.2793 140.288 103.04 219.264c12.6719 45.5684 72.0635 281.6 72.0635 281.6
|
||||||
|
c35.7119 -67.9678 139.648 -127.743 250.24 -127.743c329.088 0 552.448 300.159 552.448 701.823c0 303.744 -257.28 586.624 -648.192 586.624c-486.527 0 -731.904 -348.8 -731.904 -639.744c0 -176.128 66.5605 -332.928 209.664 -391.168
|
||||||
|
c23.4248 -9.59961 44.416 -0.511719 51.2002 25.4727c4.73633 18.0479 16 63.4873 20.9922 82.1758c6.78418 25.7275 4.0957 34.6875 -14.8477 57.2158c-41.0879 48.6406 -67.4561 111.488 -67.4561 200.704c0 258.816 193.536 490.496 504.063 490.496
|
||||||
|
c274.944 0 426.112 -168.064 426.112 -392.448c0 -295.296 -130.432 -544.384 -324.608 -544.384c-107.136 0 -187.264 88.5762 -161.664 197.12c30.7207 129.664 90.4961 269.824 90.4961 363.392c0 83.8398 -44.9277 153.729 -138.111 153.729
|
||||||
|
c-109.44 0 -197.504 -113.28 -197.504 -265.088c0 -96.6406 32.7676 -162.049 32.7676 -162.049s-112.128 -474.88 -131.712 -557.951c-18.4316 -77.8242 -20.7363 -163.456 -17.9199 -235.137c-360.832 158.336 -612.992 518.784 -612.992 937.984
|
||||||
|
c0 565.504 458.496 1024 1024 1024z" />
|
||||||
|
<glyph glyph-name="uniF437" unicode=""
|
||||||
|
d="M1280 1792c141.312 0 256 -114.688 256 -256v-1024c0 -141.312 -114.688 -256 -256 -256h-512c-141.312 0 -256 114.688 -256 256v1024c0 141.312 114.688 256 256 256h512zM1024 384c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128
|
||||||
|
c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128zM1408 768v768h-768v-768h768z" />
|
||||||
|
<glyph glyph-name="uniF468" unicode=""
|
||||||
|
d="M256 256v1536h256v-1536h-256zM1536 1664h256v-768h-256c-256 0 -256 128 -512 128s-256 -128 -384 -128v768c128 0 128 128 384 128s256 -128 512 -128z" />
|
||||||
|
<glyph glyph-name="uniF107" unicode=""
|
||||||
|
d="M1088 1792c176.768 0 320 -143.232 320 -320v-384c0 -131.2 -78.9756 -243.584 -192 -292.992v150.912c39.04 35.2002 64 85.6318 64 142.08v384c0 105.856 -86.1436 192 -192 192s-192 -86.1436 -192 -192v-384c0 -56.4482 24.96 -106.88 64 -142.08v-150.912
|
||||||
|
c-112.896 49.4082 -192 161.792 -192 292.992v384c0 176.768 143.232 320 320 320zM960 1380.99c112.896 -49.4082 192 -161.792 192 -292.992v-384c0 -176.768 -143.232 -320 -320 -320s-320 143.232 -320 320v384c0 131.2 79.1035 243.584 192 292.992v-150.912
|
||||||
|
c-39.04 -35.2002 -64 -85.6318 -64 -142.08v-384c0 -105.856 86.1436 -192 192 -192s192 86.1436 192 192v384c0 56.4482 -24.96 106.88 -64 142.08v150.912z" />
|
||||||
|
<glyph glyph-name="uniF442" unicode=""
|
||||||
|
d="M1280 640v256l128 128v-512h-896v896h512l-128 -128h-256v-640h640zM1024 1664h640v-640h-128v421.504l-549.504 -549.504l-90.4961 90.4961l549.504 549.504h-421.504v128z" />
|
||||||
|
<glyph glyph-name="uniF221" unicode=""
|
||||||
|
d="M1664 1024c0 -55.9355 -35.9678 -102.912 -85.8877 -120.32c13.8232 -20.6074 21.8877 -45.0557 21.8877 -71.6797c0 -55.8076 -35.9678 -102.784 -85.8877 -120.32c13.8232 -20.6074 21.8877 -45.0557 21.8877 -71.6797c0 -70.6562 -57.3438 -128 -128 -128h-64
|
||||||
|
c70.6562 0 128 -57.3438 128 -128s-57.3438 -128 -128 -128h-448c-192 0 -256 128 -384 128h-128v640h192c128 0 320 256 320 640c0 0 0 128 64 128s192 -144 192 -320c0 -192 -32 -320 -32 -320h416c70.6562 0 128 -57.3438 128 -128z" />
|
||||||
|
<glyph glyph-name="uniF50A" unicode=""
|
||||||
|
d="M1856 1024c35.3281 0 64 -28.6719 64 -64s-28.6719 -64 -64 -64h-204.928c-9.85645 -48.7676 -26.624 -94.5918 -46.8486 -138.624c116.608 -134.528 187.776 -309.376 187.776 -501.376v-64c0 -35.2002 -28.6719 -64 -64 -64s-64 28.7998 -64 64v64
|
||||||
|
c0 144.896 -48.7676 277.888 -130.048 385.152c-116.736 -155.265 -300.672 -257.152 -509.952 -257.152c-208.768 0 -392.448 101.504 -509.312 256.128c-81.2803 -106.88 -130.688 -239.231 -130.688 -384.128v-64c0 -35.2002 -28.6719 -64 -64 -64s-64 28.7998 -64 64v64
|
||||||
|
c0 192 71.2959 366.72 187.904 501.376c-20.3525 44.0322 -36.9922 89.8564 -46.9766 138.624h-204.928c-35.3281 0 -64 28.6719 -64 64s28.6719 64 64 64h192c0 61.6963 12.1602 119.936 29.0557 176c-98.1758 129.024 -157.056 289.408 -157.056 464v64
|
||||||
|
c0 35.3281 28.6719 64 64 64s64 -28.6719 64 -64v-64c0 -353.408 286.592 -640 640 -640c353.536 0 640 286.592 640 640v64c0 35.3281 28.6719 64 64 64s64 -28.6719 64 -64v-64c0 -173.952 -58.4961 -333.824 -156.032 -462.592
|
||||||
|
c17.2803 -56.3203 28.0322 -115.328 28.0322 -177.408h192zM1024 1152c-208.896 0 -388.352 126.08 -467.84 305.92c116.864 126.08 282.496 206.08 467.84 206.08c185.472 0 350.976 -80 467.84 -206.08c-79.4883 -179.84 -258.815 -305.92 -467.84 -305.92z" />
|
||||||
|
<glyph glyph-name="uniF455" unicode=""
|
||||||
|
d="M1024 1792c424.064 0 768 -343.936 768 -768s-343.936 -768 -768 -768c-424.192 0 -768 343.936 -768 768s343.808 768 768 768zM1024 1536c-70.7842 0 -128 -57.3438 -128 -128s57.2158 -128 128 -128c70.6562 0 128 57.3438 128 128s-57.3438 128 -128 128zM1280 512
|
||||||
|
v128h-160v512h-320.128v-128h128.128v-384h-160v-128h512z" />
|
||||||
|
<glyph glyph-name="uniF223" unicode=""
|
||||||
|
d="M1105.28 1232.51v92.9287c0 44.1592 -36.4805 79.8711 -81.2803 79.8711s-81.2803 -35.7119 -81.2803 -79.8711l-0.383789 -481.024c-2.55957 -184.192 -155.008 -332.416 -342.912 -332.416c-189.696 0 -343.424 150.912 -343.424 337.28v209.151h262.784v-206.592
|
||||||
|
c0 -43.9043 36.3516 -79.7441 81.2803 -79.7441c44.9277 0 81.2793 35.7119 81.2793 79.7441v487.168c6.65625 180.48 157.185 324.992 342.656 324.992c186.112 0 337.152 -145.536 342.656 -327.04v-106.624l-156.416 -45.8242zM1529.22 1058.43h262.784v-209.151
|
||||||
|
c0 -186.368 -153.728 -337.28 -343.424 -337.28c-188.544 0 -341.632 149.376 -343.296 334.08v210.304l104.96 -48l156.288 45.8242v-211.84c0 -44.2881 36.3516 -80 81.4072 -80c44.9287 0 81.2803 35.7119 81.2803 80v216.063z" />
|
||||||
|
<glyph glyph-name="uniF212" unicode=""
|
||||||
|
d="M1658.75 1791.87c184.192 -5.37598 270.976 -123.776 260.352 -355.072c-7.93555 -172.928 -129.792 -409.472 -365.439 -710.016c-243.584 -313.729 -449.792 -470.784 -618.368 -470.784c-104.448 0 -192.896 95.6162 -264.96 286.72
|
||||||
|
c-48.2559 175.232 -96.5117 350.336 -144.64 525.568c-53.6318 190.976 -111.232 286.592 -172.672 286.592c-13.4404 0 -60.416 -27.7764 -140.673 -83.584l-84.3516 107.648c88.4482 77.0557 175.616 154.111 261.504 231.168
|
||||||
|
c117.888 100.991 206.464 154.111 265.472 159.487c139.521 13.3125 225.28 -81.2793 257.536 -283.392c34.8164 -218.24 58.8799 -353.92 72.4482 -407.04c40.1924 -180.992 84.4805 -271.36 132.736 -271.36c37.5039 0 93.8232 58.752 169.088 176.128
|
||||||
|
c75.0078 117.376 115.2 206.849 120.576 268.16c10.624 101.376 -29.4404 152.192 -120.576 152.192c-43.0078 0 -87.2959 -9.98438 -132.736 -29.1846c88.0645 285.952 256.512 424.704 504.704 416.769z" />
|
||||||
|
<glyph glyph-name="uniF206" unicode=""
|
||||||
|
d="M571.904 570.112c-36.4805 0 -71.6807 -1.02441 -110.208 -1.02441c-127.36 0 -240.513 -32 -333.696 -83.3281v484.864c78.0801 -78.208 189.696 -126.208 329.984 -126.336c20.2236 0 39.6797 1.02344 58.8799 2.43164
|
||||||
|
c-18.8164 -35.9678 -32.2559 -76.1602 -32.2559 -118.271c0 -70.9121 39.04 -111.36 87.2959 -158.336zM575.232 937.088c-163.584 4.86426 -319.104 155.008 -347.265 369.792c-28.2881 214.912 81.4082 379.264 244.992 374.4
|
||||||
|
c163.584 -4.86426 303.488 -181.12 331.648 -396.032c28.2881 -214.784 -65.9199 -353.024 -229.376 -348.16zM965.504 217.856c4.99219 -21.248 7.80762 -43.1367 7.80762 -65.5361c0 -8.19238 -0.639648 -16.2559 -1.02344 -24.3203h-588.288
|
||||||
|
c-115.328 0 -211.712 76.7998 -243.712 181.504c74.8799 110.72 228.224 189.824 401.408 187.904c56.832 -0.640625 109.823 -9.72852 157.952 -25.3438c132.352 -91.9043 238.976 -149.376 265.855 -254.208zM1920 1536h-256v256h-128v-256h-256v-128h256v-256h128v256
|
||||||
|
h256v-1024.13c0 -141.312 -114.688 -256 -256 -256h-506.624c2.55957 16.7676 4.22363 33.5361 4.22363 50.3037c0 183.937 -39.6797 276.48 -235.647 423.424c-56.1924 42.2402 -178.688 128.769 -178.688 186.881c0 67.9678 19.4561 101.632 121.856 181.504
|
||||||
|
c104.96 82.0479 179.328 190.208 179.328 324.352c0 146.176 -59.7764 278.912 -172.16 343.296h159.36l135.68 142.464h-606.977c-174.336 0 -332.159 -72.832 -436.352 -181.376v65.2803c0 141.312 114.688 256 256 256h1280c141.312 0 256 -114.688 256 -256v-128z" />
|
||||||
|
<glyph glyph-name="uniF407" unicode=""
|
||||||
|
d="M1280 1536l256 -128v-128h-128h-128h-128h-128h-128h-128h-128h-128h-128v128l256 128c0 70.7842 57.3438 128 128 128h384c70.7842 0 128 -57.2158 128 -128zM1088 1408c35.3281 0 64 28.6719 64 64s-28.6719 64 -64 64h-256c-35.3281 0 -64 -28.6719 -64 -64
|
||||||
|
s28.6719 -64 64 -64h256zM1280 1216h128v-704c0 -70.7842 -57.2158 -128 -128 -128h-640c-70.6562 0 -128 57.2158 -128 128v704h128v-704h128v704h128v-704h128v704h128v-704h128v704z" />
|
||||||
|
<glyph glyph-name="uniF414" unicode=""
|
||||||
|
d="M1996.03 601.984c116.992 -190.208 29.6953 -345.984 -193.536 -345.984h-1556.99c-223.231 0 -310.528 155.776 -193.536 345.984l759.552 1236.99c116.864 190.336 308.097 190.336 424.961 0zM1024 512c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128
|
||||||
|
c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128zM1113.22 896l51.584 640h-281.6l51.2002 -640h178.815z" />
|
||||||
|
<glyph glyph-name="uniF50E" unicode=""
|
||||||
|
d="M384 896v256h1280v-256h-1280z" />
|
||||||
|
<glyph glyph-name="uniF461" unicode=""
|
||||||
|
d="M1024 384l-647.552 612.992c-149.376 141.312 -161.408 383.231 -27.1367 540.288c134.4 157.184 364.416 169.855 513.792 28.5439l160.896 -152.32l160.768 152.32c149.248 141.184 379.393 128.64 513.792 -28.5439
|
||||||
|
c134.656 -157.057 122.368 -398.977 -27.0078 -540.416z" />
|
||||||
|
<glyph glyph-name="uniF470" unicode=""
|
||||||
|
d="M1536 1152c70.7842 0 128 -57.3438 128 -128v-640c0 -70.7842 -57.2158 -128 -128 -128h-1024c-70.6562 0 -128 57.2158 -128 128v640c0 70.6562 57.3438 128 128 128v128c0 282.752 229.248 512 512 512s512 -229.248 512 -512v-128zM768 1152h512v128
|
||||||
|
c0 141.312 -114.688 256 -256 256s-256 -114.688 -256 -256v-128z" />
|
||||||
|
<glyph glyph-name="uniF50C" unicode=""
|
||||||
|
d="M1479.55 819.2c98.5605 -32 203.137 -51.2002 312.448 -51.2002v-512c-848.256 0 -1536 687.744 -1536 1536h512c0 -162.048 38.5283 -314.752 105.856 -450.816l-189.185 -189.184c136.192 -235.008 344.96 -422.4 595.328 -532.224z" />
|
||||||
|
<glyph glyph-name="uniF220" unicode=""
|
||||||
|
d="M1856.77 834.048c32.3848 -65.6641 50.6885 -138.88 50.3047 -217.344c0 -269.696 -218.88 -488.704 -488.576 -488.704c-83.584 0 -161.92 21.376 -230.656 58.1123c-50.4316 -8.83203 -102.016 -13.8242 -154.496 -13.8242
|
||||||
|
c-465.279 0 -842.624 377.216 -842.624 842.496c0 58.2402 6.14453 114.688 17.2803 169.6c-42.4961 72.1924 -67.0723 156.8 -67.0723 246.912c0 269.824 218.88 488.704 488.704 488.704c95.7441 0 184.704 -27.3916 260.225 -75.0078
|
||||||
|
c46.4639 7.80762 94.5918 12.416 143.871 12.416c465.408 0 842.624 -377.344 842.624 -842.624c0 -62.0801 -6.65527 -122.752 -19.584 -180.736zM1466.11 612.096c38.9121 55.5527 58.624 118.656 58.752 188.16c0 58.2402 -11.2646 107.904 -34.1758 148.353
|
||||||
|
c-22.9121 40.3193 -54.7842 73.8555 -95.2324 100.224c-39.168 25.7275 -87.8076 48.1279 -143.744 66.0479c-55.4238 17.9199 -118.271 34.1758 -186.496 48.6396c-53.7598 12.416 -93.0557 21.8887 -116.479 28.6729c-23.04 6.14355 -45.4404 15.2314 -67.8398 26.3672
|
||||||
|
c-21.8887 10.624 -38.5283 23.5527 -50.4326 38.0166c-11.1357 13.9521 -16.7676 30.3359 -16.7676 49.2803c0 31.2314 16.8955 57.4717 52.2236 80.5117c36.3525 23.5518 85.6318 35.9678 146.048 35.9678c64.8965 0 112.384 -11.2637 140.544 -32.6396
|
||||||
|
c29.1846 -21.6318 54.2725 -53.6318 75.5205 -93.3125c18.5596 -31.3594 34.9434 -53.248 50.6875 -67.2002c16.3838 -14.5918 40.5762 -22.3994 71.9365 -22.3994c34.9434 0 63.8721 12.416 86.9121 36.4795c23.04 23.4248 34.6875 50.8164 34.6875 81.1523
|
||||||
|
c0 31.3604 -9.08789 63.3604 -25.2158 95.7441c-17.2803 32.3838 -44.7998 63.1035 -81.9199 92.2881c-36.8643 28.5439 -83.8398 52.0957 -139.008 69.5039c-55.8086 16.7676 -121.729 25.5996 -196.736 25.5996c-94.7197 0 -177.536 -13.1836 -247.424 -39.04
|
||||||
|
c-70.5283 -26.3682 -125.952 -64.3838 -163.584 -113.664c-38.0166 -49.2793 -56.96 -106.496 -56.96 -170.239c0 -67.2002 17.792 -123.776 54.2715 -169.217c35.0723 -44.1592 83.9688 -79.8721 144.385 -105.728c58.752 -25.2158 133.247 -47.3604 220.672 -66.0479
|
||||||
|
c64.2559 -13.3125 115.712 -26.2402 154.239 -38.0166c36.8643 -11.2637 67.3281 -27.9033 89.9844 -49.2793c22.1436 -20.7363 32.6396 -46.9766 32.6396 -80.1279c0 -42.3682 -20.2236 -76.8008 -62.0801 -105.345c-43.1357 -29.0557 -100.352 -43.9033 -169.728 -43.9033
|
||||||
|
c-50.9443 0 -92.416 7.16797 -122.624 21.6318c-30.3359 13.9521 -54.2715 32.5117 -70.5283 54.2715c-17.2793 22.6562 -33.4072 51.4561 -48.6396 85.7607c-13.4404 31.3594 -29.5684 55.8076 -49.2803 72.0635c-20.7354 17.2803 -45.3115 25.7285 -74.4961 25.7285
|
||||||
|
c-35.0713 0 -64.7676 -10.3682 -87.8076 -32.3848c-23.5518 -21.8877 -35.3281 -48.6396 -35.3281 -79.6152c0 -48.8965 17.9199 -100.608 53.8877 -152.192c35.0723 -50.9443 82.3047 -92.416 138.752 -123.136c79.3604 -41.8564 180.864 -63.1045 301.696 -63.1045
|
||||||
|
c100.736 0 189.44 15.4883 263.04 46.208c75.3926 30.9766 132.225 74.4961 171.648 129.92z" />
|
||||||
|
<glyph glyph-name="uniF415" unicode=""
|
||||||
|
d="M1408 1024h512v-256h-310.016c-98.8164 -225.92 -323.584 -384 -585.984 -384c-176.768 0 -335.488 72.832 -451.072 188.928l0.640625 0.640625c-50.0488 50.0479 -50.0488 130.943 0 180.991c50.0479 50.0488 130.943 50.1768 180.991 0
|
||||||
|
c69.376 -69.6318 163.456 -114.56 269.44 -114.56c212.096 0 384 171.904 384 384zM1024 1408c-212.096 0 -384 -171.904 -384 -384h-512v256h310.016c98.8164 225.92 323.712 384 585.984 384c176.896 0 335.488 -72.96 451.072 -188.928
|
||||||
|
c50.0479 -50.0479 50.0479 -130.944 0 -180.992s-130.944 -50.0479 -180.992 0l-0.639648 -0.639648c-69.376 69.6318 -163.328 114.56 -269.44 114.56zM832 1024c0 106.112 86.0156 192 192 192c106.112 0 192 -85.8877 192 -192s-85.8877 -192 -192 -192
|
||||||
|
c-105.984 0 -192 85.8877 -192 192z" />
|
||||||
|
<glyph glyph-name="uniF207" unicode=""
|
||||||
|
d="M604.672 256h-329.216v990.72h329.216v-990.72zM440.064 1381.89h-2.04883c-110.464 0 -182.016 76.1602 -182.016 171.137c0 97.1514 73.5996 171.136 186.368 171.136c112.512 0 181.888 -74.1123 184.063 -171.136c0 -94.9766 -71.5518 -171.137 -186.367 -171.137z
|
||||||
|
M1792 256h-329.216v530.048c0 133.12 -47.3604 224 -166.656 224c-91.1357 0 -145.28 -61.1836 -169.088 -120.32c-8.57617 -21.2471 -10.752 -50.9434 -10.752 -80.5117v-553.216h-329.344s4.35156 897.792 0 990.72h329.344v-140.416
|
||||||
|
c43.7764 67.4561 121.984 163.584 296.448 163.584c216.704 0 379.264 -141.567 379.264 -445.823v-568.064z" />
|
||||||
|
<glyph glyph-name="uniF500" unicode=""
|
||||||
|
d="M2048 0h-1920l960 959.872z" />
|
||||||
|
<glyph glyph-name="uniF302" unicode=""
|
||||||
|
d="M1024 1536h512v-512l-768 -768l-512 512zM1280 1152c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128s-128 -57.2158 -128 -128s57.2158 -128 128 -128z" />
|
||||||
|
<glyph glyph-name="uniF108" unicode=""
|
||||||
|
d="M1664 1536c141.312 0 256 -114.688 256 -256v-384c0 -141.312 -114.688 -256 -256 -256h-128v-448l-448 448h-331.008l128 128h395.008c211.712 0 384 172.288 384 384v384zM1280 1792c141.312 0 256 -114.688 256 -256v-384c0 -141.312 -114.688 -256 -256 -256h-448
|
||||||
|
l-448 -448v448h-128c-141.312 0 -256 114.688 -256 256v384c0 141.312 114.688 256 256 256h1024z" />
|
||||||
|
<glyph glyph-name="uniF405" unicode=""
|
||||||
|
d="M1536 1408l-320 -320l320 -320l-128 -128l-320 320l-320 -320l-128 128l320 320l-320 320l128 128l320 -320l320 320z" />
|
||||||
|
<glyph glyph-name="uniF501" unicode=""
|
||||||
|
d="M0 128v1920l960 -960z" />
|
||||||
|
<glyph glyph-name="uniF50D" unicode=""
|
||||||
|
d="M1024.13 896c-105.984 0 -192.128 86.0156 -192.128 192v512c0 105.856 86.1436 192 192.128 192c106.112 0 191.872 -86.1436 191.872 -192v-512c0 -105.984 -85.7598 -192 -191.872 -192zM1401.47 1024h192c-27.3916 -244.48 -206.464 -441.984 -441.472 -496v-272
|
||||||
|
h-256v272c-234.88 54.0156 -414.08 251.52 -441.472 496h192c30.5918 -181.504 187.52 -320 377.472 -320c190.208 0 347.008 138.496 377.472 320z" />
|
||||||
|
<glyph glyph-name="uniF503" unicode=""
|
||||||
|
d="M2048 2048v-1920l-960 960z" />
|
||||||
|
<glyph glyph-name="uniF101" unicode=""
|
||||||
|
d="M1024 1792c424.064 0 768 -343.936 768 -768s-343.936 -768 -768 -768s-768 343.936 -768 768s343.936 768 768 768zM1024 768c141.312 0 256 114.688 256 256s-114.688 256 -256 256s-256 -114.688 -256 -256s114.688 -256 256 -256z" />
|
||||||
|
<glyph glyph-name="uniF204" unicode=""
|
||||||
|
d="M1182.21 1271.81h328.704l-14.4639 -302.72h-314.24v-841.088h-320.128v841.088h-222.08v302.72h222.08v258.561c0 203.008 131.456 389.632 434.176 389.632c122.496 0 212.992 -11.6484 212.992 -11.6484l-7.04004 -282.624s-92.5439 0.640625 -193.536 0.640625
|
||||||
|
c-108.928 0 -126.464 -50.3037 -126.464 -133.504c0 -12.416 0 -15.3604 0 -13.9521v-207.104z" />
|
||||||
|
<glyph glyph-name="uniF444" unicode=""
|
||||||
|
d="M1600 640c-70.7842 0 -128 -57.2158 -128 -128s57.2158 -128 128 -128h64v-128h-1024c-141.312 0 -256 114.688 -256 256v1024c0 141.312 114.688 256 256 256h1024v-1152h-64zM640 384h817.92c-30.7197 34.0479 -49.9199 78.5918 -49.9199 128
|
||||||
|
s19.2002 93.9521 49.9199 128h-817.92c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128z" />
|
||||||
|
<glyph glyph-name="uniF416" unicode=""
|
||||||
|
d="M1088 1792c176.768 0 320 -143.232 320 -320v-640c0 -247.424 -200.576 -448 -448 -448s-448 200.576 -448 448v320h128v-320c0 -176.768 143.232 -320 320 -320c176.64 0 320 143.232 320 320v640c0 105.984 -86.0156 192 -192 192c-106.112 0 -192 -86.0156 -192 -192
|
||||||
|
v-512c0 -35.3281 28.6719 -64 64 -64s64 28.6719 64 64v451.968h128v-451.968c0 -105.984 -86.0156 -192 -192 -192c-106.112 0 -192 86.0156 -192 192v512c0 176.768 143.232 320 320 320z" />
|
||||||
|
<glyph glyph-name="uniF459" unicode=""
|
||||||
|
d="M1920 1664v-1280l-768 480v-480l-1024 640l1024 640v-480z" />
|
||||||
|
<glyph glyph-name="uniF441" unicode=""
|
||||||
|
d="M1664 1024c141.312 0 256 -114.688 256 -256s-114.688 -256 -256 -256h-512v256h256l-384 384l-384 -384h256v-256h-512c-141.312 0 -256 114.688 -256 256s114.688 256 256 256h6.40039c-4.09668 20.7363 -6.40039 42.1123 -6.40039 64c0 176.768 143.232 320 320 320
|
||||||
|
c89.3438 0 169.984 -36.7363 227.968 -95.8721c60.7998 131.84 193.408 223.872 348.032 223.872c211.968 0 384 -171.904 384 -384c0 -45.1836 -9.21582 -87.8076 -23.5518 -128h23.5518z" />
|
||||||
|
<glyph glyph-name="uniF506" unicode=""
|
||||||
|
d="M768 1920l489.344 -489.472l-640 -640l-268.928 269.056c-49.792 49.792 -49.792 131.2 0 180.992l292.864 292.735l-1.28027 2.68848s128 128 128 384zM1738.24 565.76c33.1514 -32.7676 53.7598 -78.208 53.7598 -128.64c0 -99.9678 -81.1523 -181.12 -181.12 -181.12
|
||||||
|
c-50.4316 0 -95.7441 20.6084 -128.64 53.7598l-330.24 330.24v128l-64 64c-35.2002 35.2002 -104.704 23.2959 -154.496 -26.4961l-75.0078 -75.0078c-49.792 -49.792 -131.2 -49.792 -180.992 0l-14.8477 14.8477l640 640l14.8477 -14.8477
|
||||||
|
c49.792 -49.792 49.792 -131.2 0 -180.992l-75.0078 -75.0078c-49.792 -49.792 -61.6963 -119.296 -26.4961 -154.496l64 -64h128zM1610.88 373.12c35.3281 0 64 28.6719 64 64s-28.6719 64 -64 64s-64 -28.6719 -64 -64s28.6719 -64 64 -64z" />
|
||||||
|
<glyph glyph-name="uniF105" unicode=""
|
||||||
|
d="M1408 1408c0 -167.04 -107.264 -307.584 -256 -360.448v-535.552l-256 -128v663.552c-148.864 52.8643 -256 193.408 -256 360.448c0 212.096 171.904 384 384 384c211.968 0 384 -171.904 384 -384z" />
|
||||||
|
<glyph glyph-name="uniF473" unicode=""
|
||||||
|
d="M384 1664h1280v-1280h-1280v1280zM768 1408c-70.6562 0 -128 -57.3438 -128 -128s57.3438 -128 128 -128s128 57.3438 128 128s-57.3438 128 -128 128zM1536 512v576l-128 192l-448 -672l-192 288l-256 -384h1024z" />
|
||||||
|
<glyph glyph-name="uniF452" unicode=""
|
||||||
|
d="M512 1664l1024 -640l-1024 -640v1280z" />
|
||||||
|
<glyph glyph-name="uniF408" unicode=""
|
||||||
|
d="M1792 1150.72l-475.904 -329.983l182.528 -535.04l-474.624 331.903l-474.624 -331.903l182.528 535.04l-475.904 329.983l587.52 -1.02344l180.48 535.68l180.48 -535.68z" />
|
||||||
|
<glyph glyph-name="uniF450" unicode=""
|
||||||
|
d="M768 1024l1024 640v-1280zM256 384v1280h384v-1280h-384z" />
|
||||||
|
<glyph glyph-name="uniF517" unicode=""
|
||||||
|
d="M1408 1152l384 384v-1024l-384 384v-256c0 -70.7842 -57.2158 -128 -128 -128h-896c-70.6562 0 -128 57.2158 -128 128v768c0 70.6562 57.3438 128 128 128h896c70.7842 0 128 -57.3438 128 -128v-256z" />
|
||||||
|
<glyph glyph-name="uniF106" unicode=""
|
||||||
|
d="M256 896v640h640v-640c0 -282.752 -229.248 -512 -512 -512v256c141.312 0 256 114.688 256 256h-384zM1152 1536h640v-640c0 -282.752 -229.248 -512 -512 -512v256c141.312 0 256 114.688 256 256h-384v640z" />
|
||||||
|
<glyph glyph-name="uniF208" unicode=""
|
||||||
|
d="M1664 1920c141.312 0 256 -114.688 256 -256v-1280c0 -141.312 -114.688 -256 -256 -256h-1280c-141.312 0 -256 114.688 -256 256v1280c0 141.312 114.688 256 256 256h1280zM663.168 384v792.96h-263.552v-792.96h263.552zM531.328 1285.25
|
||||||
|
c91.9043 0 149.12 60.9277 149.12 136.96c-1.66406 77.6963 -57.2158 136.96 -147.328 136.96c-90.2402 0 -149.12 -59.2637 -149.12 -136.96c0 -76.0322 57.2158 -136.96 145.664 -136.96h1.66406zM1613.44 384v454.656c0 243.456 -130.049 356.863 -303.488 356.863
|
||||||
|
c-139.776 0 -202.496 -76.9277 -237.44 -130.943v112.384h-263.552c3.45605 -74.3682 0 -792.96 0 -792.96h263.552v442.88c0 23.6797 1.79199 47.3604 8.57617 64.1279c19.0723 47.3604 62.4639 96.3838 135.296 96.3838c95.4883 0 133.504 -72.7031 133.504 -179.199
|
||||||
|
v-424.192h263.553z" />
|
||||||
|
<glyph glyph-name="uniF304" unicode=""
|
||||||
|
d="M1024 1152c-141.312 0 -256 114.688 -256 256s114.688 256 256 256s256 -114.688 256 -256s-114.688 -256 -256 -256zM1152 1024c211.968 0 384 -171.904 384 -384v-256h-1024v256c0 212.096 172.032 384 384 384h256z" />
|
||||||
|
<glyph glyph-name="uniF225" unicode=""
|
||||||
|
d="M655.104 1857.54l368.896 -307.968l-531.456 -328.192l-364.544 291.84zM128 929.536l364.544 291.84l531.456 -328.064l-368.896 -308.096zM1024 893.312l531.456 328.064l364.544 -291.84l-527.232 -344.32zM1920 1513.22l-364.544 -291.84l-531.456 328.192
|
||||||
|
l368.768 307.968zM1025.02 826.88l369.92 -306.944l158.464 103.297v-115.713l-528.384 -317.056l-528.257 317.056v115.713l158.336 -103.297z" />
|
||||||
|
<glyph glyph-name="uniF103" unicode=""
|
||||||
|
d="M1152 1408h896v-896h-896v896zM128 1024v384h896v-384h-896zM640 512v384h384v-384h-384zM128 512v384h384v-384h-384z" />
|
||||||
|
<glyph glyph-name="uniF431" unicode=""
|
||||||
|
d="M1408 1280l128 -128l-576 -576l-576 576l128 128l448 -448z" />
|
||||||
|
<glyph glyph-name="uniF200" unicode=""
|
||||||
|
d="M1024 2048c565.504 0 1024 -458.496 1024 -1024c0 -452.224 -293.12 -835.712 -699.776 -971.392c-51.9678 -9.98438 -70.3994 21.7598 -70.3994 49.2793c0 33.4082 1.2793 144 1.2793 280.704c0 95.7441 -32.7676 158.208 -69.5039 189.696
|
||||||
|
c228.097 25.3438 467.456 112 467.456 505.344c0 111.744 -39.5518 203.136 -105.088 274.688c10.4961 25.8555 45.6963 130.048 -10.2402 270.976c0 0 -85.8877 27.5205 -281.344 -104.96c-81.792 22.7842 -169.344 34.0479 -256.384 34.4316
|
||||||
|
c-87.04 -0.383789 -174.592 -11.6475 -256.384 -34.4316c-195.584 132.48 -281.601 104.96 -281.601 104.96c-55.6797 -140.928 -20.4795 -244.992 -9.85547 -270.976c-65.5361 -71.5527 -105.472 -162.944 -105.472 -274.688c0 -392.32 239.104 -480.384 466.432 -506.112
|
||||||
|
c-29.3125 -25.7275 -55.6797 -70.6553 -65.0244 -136.96c-58.2393 -26.2393 -206.72 -71.2959 -297.983 85.248c0 0 -54.1445 98.1768 -156.929 105.473c0 0 -100.096 1.2793 -7.04004 -62.208c0 0 67.0723 -31.4883 113.664 -150.017c0 0 60.0322 -198.912 344.96 -137.216
|
||||||
|
c0.512695 -85.248 1.4082 -149.76 1.4082 -173.952c0 -27.2637 -18.6875 -58.752 -69.8877 -49.5361c-406.912 135.425 -700.288 519.168 -700.288 971.648c0 565.504 458.496 1024 1024 1024z" />
|
||||||
|
<glyph glyph-name="uniF421" unicode=""
|
||||||
|
d="M384 896v256h1152v-256h-1152z" />
|
||||||
|
<glyph glyph-name="uniF454" unicode=""
|
||||||
|
d="M640 896v128h-512v256h512v128l384 -256zM1536 2048c141.312 0 256 -114.688 256 -256v-1536c0 -141.312 -114.688 -256 -256 -256h-1024c-141.312 0 -256 114.688 -256 256v640h256v-384h1024v1280h-1024v-384h-256v384c0 141.312 114.688 256 256 256h1024zM1024 128
|
||||||
|
c70.7842 0 128 57.2158 128 128s-57.2158 128 -128 128c-70.6562 0 -128 -57.2158 -128 -128s57.3438 -128 128 -128z" />
|
||||||
|
<glyph glyph-name="uniF213" unicode=""
|
||||||
|
d="M1536 1664c211.968 0 384 -171.904 384 -384v-512c0 -212.096 -172.032 -384 -384 -384h-1024c-212.096 0 -384 171.904 -384 384v512c0 212.096 171.904 384 384 384h1024zM768 640l640 384l-640 384v-768z" />
|
||||||
|
<glyph glyph-name="uniF401" unicode=""
|
||||||
|
d="M1297.15 878.848l494.848 -494.848l-128 -128l-494.848 494.848c-94.8486 -68.9912 -210.816 -110.848 -337.152 -110.848c-318.08 0 -576 257.92 -576 576s257.92 576 576 576s576 -257.92 576 -576c0 -126.336 -41.8564 -242.304 -110.848 -337.152zM832 768
|
||||||
|
c247.552 0 448 200.576 448 448s-200.448 448 -448 448c-247.424 0 -448 -200.576 -448 -448s200.576 -448 448 -448zM512 1152v128h640v-128h-640z" />
|
||||||
|
<glyph glyph-name="uniF436" unicode=""
|
||||||
|
d="M512 1408v128h128v-128h-128zM768 1408v128h128v-128h-128zM1024 1408v128h128v-128h-128zM1280 1536h128v-128h-128v128zM512 1152v128h128v-128h-128zM768 1152v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1280 1152v128h128v-128h-128zM512 896v128h128v-128
|
||||||
|
h-128zM768 896v128h128v-128h-128zM1024 896v128h128v-128h-128zM1280 896v128h128v-128h-128zM512 640v128h128v-128h-128zM768 640v128h128v-128h-128zM1024 640v128h128v-128h-128zM1280 640v128h128v-128h-128z" />
|
||||||
|
<glyph glyph-name="uniF434" unicode=""
|
||||||
|
d="M1152 0l896 896v-896h-896z" />
|
||||||
|
<glyph glyph-name="uniF303" unicode=""
|
||||||
|
d="M960 1792c388.736 0 704 -315.136 704 -704c0 -388.736 -315.264 -704 -704 -704c-388.864 0 -704 315.264 -704 704c0 388.864 315.136 704 704 704zM960 512c317.952 0 576 257.92 576 576s-258.048 576 -576 576c-318.08 0 -576 -257.92 -576 -576
|
||||||
|
s257.92 -576 576 -576zM1024 1536v-421.504l297.984 -297.984l-90.4961 -90.4961l-335.488 335.488v474.496h128z" />
|
||||||
|
<glyph glyph-name="uniF464" unicode=""
|
||||||
|
d="M1536 1408l-768 -384l-768 384v128h1536v-128zM0 1216l768 -384l256 128v-448h-1024v704zM1920 1152c70.7842 0 128 -57.3438 128 -128v-640c0 -70.7842 -57.2158 -128 -128 -128h-640c-70.7842 0 -128 57.2158 -128 128v640c0 70.6562 57.2158 128 128 128h640z
|
||||||
|
M1920 640v128h-640v-128h640z" />
|
||||||
|
<glyph glyph-name="uniF109" unicode=""
|
||||||
|
d="M256 1280h384l384 384v-1280l-384 384h-384v512zM1295.49 1295.62c69.5039 -69.5039 112.512 -165.504 112.512 -271.616s-43.0078 -202.112 -112.512 -271.488l-90.4961 90.4961c46.3359 46.208 75.0078 110.208 75.0078 180.992
|
||||||
|
c0 70.6562 -28.6719 134.656 -75.0078 181.12zM1476.61 1476.61c115.712 -115.841 187.392 -275.841 187.392 -452.608c0 -176.896 -71.6797 -336.896 -187.392 -452.608l-90.4961 90.4961c92.6719 92.6719 149.888 220.672 149.888 362.112
|
||||||
|
c0 141.312 -57.2158 269.44 -149.888 361.984z" />
|
||||||
|
<glyph glyph-name="uniF428" unicode=""
|
||||||
|
d="M1024 1280c141.312 0 256 -114.688 256 -256s-114.688 -256 -256 -256s-256 114.688 -256 256s114.688 256 256 256z" />
|
||||||
|
</font>
|
||||||
|
</defs></svg>
|
After Width: | Height: | Size: 77 KiB |
BIN
app/static/wp-content/themes/twentyfifteen/genericons/Genericons.ttf
Executable file
BIN
app/static/wp-content/themes/twentyfifteen/genericons/Genericons.woff
Executable file
339
app/static/wp-content/themes/twentyfifteen/genericons/LICENSE.txt
Executable file
|
@ -0,0 +1,339 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
152
app/static/wp-content/themes/twentyfifteen/genericons/README.md
Executable file
|
@ -0,0 +1,152 @@
|
||||||
|
## Genericons
|
||||||
|
|
||||||
|
Genericons are vector icons embedded in a webfont designed to be clean and simple keeping with a generic aesthetic.
|
||||||
|
|
||||||
|
Use genericons for instant HiDPI, to change icon colors on the fly, or even with CSS effects such as drop-shadows or gradients!
|
||||||
|
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
To use it, place the `font` folder in your stylesheet directory and enqueue the genericons.css file. Now you can create an icon like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
.my-icon:before {
|
||||||
|
content: '\f101';
|
||||||
|
font: normal 16px/1 'Genericons';
|
||||||
|
display: inline-block;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This will output a comment icon before every element with the class "my-icon". The `content: '\f101';` part of this CSS is easily copied from the helper tool at http://genericons.com/, or `example.html` in the `font` directory.
|
||||||
|
|
||||||
|
You can also use the bundled example.css if you'd rather insert the icons using HTML tags.
|
||||||
|
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
**Photoshop mockups**
|
||||||
|
|
||||||
|
The `Genericons.ttf` file found in the `font` directory can be placed in your system fonts folder and used Photoshop or other graphics apps if you like.
|
||||||
|
|
||||||
|
If you're using Genericons in your Photoshop mockups, please remember to delete the old version of the font from Font Book, and grab the new one from the zip file. This also affects using it in your webdesigns: if you have an old version of the font installed locally, that's the font that'll be used in your website as well, so if you're missing icons, check for old versions of the font on your system.
|
||||||
|
|
||||||
|
**Pixel grid**
|
||||||
|
|
||||||
|
Genericons has been designed for a 16x16px grid. That means it'll look sharp at font-size: 16px exactly. It'll also be crisp at multiples thereof, such as 32px or 64px. It'll look reasonably crisp at in-between font sizes such as 24px or 48px, but not quite as crisp as 16 or 32. Please don't set the font-size to 17px, though, that'll just look terrible blurry.
|
||||||
|
|
||||||
|
**Antialiasing**
|
||||||
|
|
||||||
|
If you keep intact the `-webkit-font-smoothing: antialiased;` and `-moz-osx-font-smoothing: grayscale;` CSS properties. That'll make the icons look their best possible, in Firefox and WebKit based browsers.
|
||||||
|
|
||||||
|
**optimizeLegibility**
|
||||||
|
|
||||||
|
Note: On Android browsers with version 4.2, 4.3, and probably later, Genericons will simply not show up if you're using the CSS property "text-rendering" set to "optimizeLegibility.
|
||||||
|
|
||||||
|
**Updates**
|
||||||
|
|
||||||
|
We don't often update icons, but do very carefully when we get good feedback suggesting improvements. Please be mindful if you upgrade, and check that the updated icons behave as you intended.
|
||||||
|
|
||||||
|
|
||||||
|
### Changelog
|
||||||
|
|
||||||
|
**3.2**
|
||||||
|
|
||||||
|
A number of new icons and a couple of quick updates.
|
||||||
|
|
||||||
|
* New: Activity
|
||||||
|
* New: HTML anchor
|
||||||
|
* New: Bug
|
||||||
|
* New: Download
|
||||||
|
* New: Handset
|
||||||
|
* New: Microphone
|
||||||
|
* New: Minus
|
||||||
|
* New: Plus
|
||||||
|
* New: Move
|
||||||
|
* New: Rating stars, empty, half, full
|
||||||
|
* New: Shuffle
|
||||||
|
* New: video camera
|
||||||
|
* New: Spotify
|
||||||
|
* New: Twitch
|
||||||
|
* Update: Fixed geometry in Edit icon
|
||||||
|
* Update: Updated Foursquare icon
|
||||||
|
|
||||||
|
Twitch and Spotify mark the last social icons that will be added to Genericons.
|
||||||
|
Future social icons will have to happen in a separate font.
|
||||||
|
|
||||||
|
**3.1**
|
||||||
|
|
||||||
|
Genericons is now generated using a commandline tool called FontCustom. This makes it far easier to add new icons to the font, but the switch means the download zip now has a different layout, fonts have different filenames, there's now no .otf font included (but the .ttf should suffice), and the font now has slightly different metrics. I've taken great care to ensure this new version should work as a drop-in replacement, but please be mindful and test carefully if you choose to upgrade.
|
||||||
|
|
||||||
|
* Per feedback, the baked-in 16px width and height has been removed from the helper CSS. It wasn't really necessary (the glyph itself has these dimensions naturally), and it caused some headaches.
|
||||||
|
* Base64 encoding is now included by default in the helper CSS. This makes it drop-in easy to get Genericons working in Firefox even when using a CDN.
|
||||||
|
* Title attribute on website tool.
|
||||||
|
* New: Website.
|
||||||
|
* New: Ellipsis.
|
||||||
|
* New: Foursquare.
|
||||||
|
* New: X-post.
|
||||||
|
* New: Sitemap.
|
||||||
|
* New: Hierarchy.
|
||||||
|
* New: Paintbrush.
|
||||||
|
* Updated: Show and Hide icons were updated for clarity.
|
||||||
|
|
||||||
|
**3.0.3**
|
||||||
|
|
||||||
|
Bunch of updates mostly.
|
||||||
|
|
||||||
|
* Two new icons, Dropbox and Fullscreen.
|
||||||
|
* Updates to all icons containing an exclamation mark.
|
||||||
|
* Updates to Image and Quote.
|
||||||
|
* Nicer "Share" icon.
|
||||||
|
* Bigger default Linkedin icon.
|
||||||
|
|
||||||
|
**3.0.2**
|
||||||
|
|
||||||
|
A slew of new stuff and updates.
|
||||||
|
|
||||||
|
* Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket.
|
||||||
|
* New generic icons: heart, lock and print.
|
||||||
|
* New editing icons: code, bold, italic, image
|
||||||
|
* New interaction icons: subscribe, unsubscribe, subscribed, reply all, reply, flag.
|
||||||
|
* The hyperlink icon has been updated to be clearer, chunkier.
|
||||||
|
* The "home" icon has been updated for style, size and clarity.
|
||||||
|
* The email icon has been updated for style and clarity, and to fit with the new subscribe icons.
|
||||||
|
* The document icon has been updated for style.
|
||||||
|
* The "pin" icon has been updated for style and clarity.
|
||||||
|
* The Twitter icon has been scaled down to fit with the other social icons.
|
||||||
|
|
||||||
|
**3.0.1**
|
||||||
|
|
||||||
|
Mostly maintenance.
|
||||||
|
|
||||||
|
* Fixed an issue with the example page that showed an old "top" icon instead of the actual NEW "refresh" icon.
|
||||||
|
* Added inverse Google+ and Path.
|
||||||
|
* Replaced tabs with spaces in the helper CSS.
|
||||||
|
* Changed the Genericons.com copy/paste tool to serve span's instead of div's for casual icon insertion. It's being converted to "inline-block" anyway.
|
||||||
|
|
||||||
|
**3.0**
|
||||||
|
|
||||||
|
Mainly maintenance and a few new icons.
|
||||||
|
|
||||||
|
* Fast forward, rewind, PollDaddy, Notice, Info, Help, Portfolio
|
||||||
|
* Updated the feed icon. It's a bit smaller now for consistency, the previous one was rather big.
|
||||||
|
* So, the previous version numbering, 2.09, wasn't very PHP version compare friendly. So from now on it'll be 3.0, 3.1 etc. Props Ipstenu.
|
||||||
|
* Genericons.com now has a mini release blog.
|
||||||
|
* The CSS has prettier formatting, props Konstantin Obenland.
|
||||||
|
|
||||||
|
**2.09**
|
||||||
|
|
||||||
|
Updated Facebook icon to new version. Updated Instagram logo to use new one-color version. Updated Google+ icon to use same radius as Instagram and Facebook. Added a bunch of new icons, cog, unapprove, cart, media player buttons, tablet, send to tablet.
|
||||||
|
|
||||||
|
**2.06**
|
||||||
|
|
||||||
|
Included Base64 encoded version. This is necessary for Genericons to work with CDNs in Firefox. Firefox blocks fonts linked from a different domain. A CDN (typically s.example.com) usually puts the font on a subdomain, and is hence blocked in Firefox.
|
||||||
|
|
||||||
|
**2.05**
|
||||||
|
|
||||||
|
Added a bunch of new icons, including upload to cloud, download to cloud, many more.
|
||||||
|
|
||||||
|
**2.0**
|
||||||
|
|
||||||
|
Initial public release
|
209
app/static/wp-content/themes/twentyfifteen/genericons/genericons.css
Executable file
78
app/static/wp-content/themes/twentyfifteen/js/color-scheme-control.js
Executable file
|
@ -0,0 +1,78 @@
|
||||||
|
/* global colorScheme, Color */
|
||||||
|
/**
|
||||||
|
* Add a listener to the Color Scheme control to update other color controls to new values/defaults.
|
||||||
|
* Also trigger an update of the Color Scheme CSS when a color is changed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function( api ) {
|
||||||
|
var cssTemplate = wp.template( 'twentyfifteen-color-scheme' ),
|
||||||
|
colorSchemeKeys = [
|
||||||
|
'background_color',
|
||||||
|
'header_background_color',
|
||||||
|
'box_background_color',
|
||||||
|
'textcolor',
|
||||||
|
'sidebar_textcolor',
|
||||||
|
'meta_box_background_color'
|
||||||
|
],
|
||||||
|
colorSettings = [
|
||||||
|
'background_color',
|
||||||
|
'header_background_color',
|
||||||
|
'sidebar_textcolor'
|
||||||
|
];
|
||||||
|
|
||||||
|
api.controlConstructor.select = api.Control.extend( {
|
||||||
|
ready: function() {
|
||||||
|
if ( 'color_scheme' === this.id ) {
|
||||||
|
this.setting.bind( 'change', function( value ) {
|
||||||
|
// Update Background Color.
|
||||||
|
api( 'background_color' ).set( colorScheme[value].colors[0] );
|
||||||
|
api.control( 'background_color' ).container.find( '.color-picker-hex' )
|
||||||
|
.data( 'data-default-color', colorScheme[value].colors[0] )
|
||||||
|
.wpColorPicker( 'defaultColor', colorScheme[value].colors[0] );
|
||||||
|
|
||||||
|
// Update Header/Sidebar Background Color.
|
||||||
|
api( 'header_background_color' ).set( colorScheme[value].colors[1] );
|
||||||
|
api.control( 'header_background_color' ).container.find( '.color-picker-hex' )
|
||||||
|
.data( 'data-default-color', colorScheme[value].colors[1] )
|
||||||
|
.wpColorPicker( 'defaultColor', colorScheme[value].colors[1] );
|
||||||
|
|
||||||
|
// Update Header/Sidebar Text Color.
|
||||||
|
api( 'sidebar_textcolor' ).set( colorScheme[value].colors[4] );
|
||||||
|
api.control( 'sidebar_textcolor' ).container.find( '.color-picker-hex' )
|
||||||
|
.data( 'data-default-color', colorScheme[value].colors[4] )
|
||||||
|
.wpColorPicker( 'defaultColor', colorScheme[value].colors[4] );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Generate the CSS for the current Color Scheme.
|
||||||
|
function updateCSS() {
|
||||||
|
var scheme = api( 'color_scheme' )(), css,
|
||||||
|
colors = _.object( colorSchemeKeys, colorScheme[ scheme ].colors );
|
||||||
|
|
||||||
|
// Merge in color scheme overrides.
|
||||||
|
_.each( colorSettings, function( setting ) {
|
||||||
|
colors[ setting ] = api( setting )();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add additional colors.
|
||||||
|
colors.secondary_textcolor = Color( colors.textcolor ).toCSS( 'rgba', 0.7 );
|
||||||
|
colors.border_color = Color( colors.textcolor ).toCSS( 'rgba', 0.1 );
|
||||||
|
colors.border_focus_color = Color( colors.textcolor ).toCSS( 'rgba', 0.3 );
|
||||||
|
colors.secondary_sidebar_textcolor = Color( colors.sidebar_textcolor ).toCSS( 'rgba', 0.7 );
|
||||||
|
colors.sidebar_border_color = Color( colors.sidebar_textcolor ).toCSS( 'rgba', 0.1 );
|
||||||
|
colors.sidebar_border_focus_color = Color( colors.sidebar_textcolor ).toCSS( 'rgba', 0.3 );
|
||||||
|
|
||||||
|
css = cssTemplate( colors );
|
||||||
|
|
||||||
|
api.previewer.send( 'update-color-scheme-css', css );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the CSS whenever a color setting is changed.
|
||||||
|
_.each( colorSettings, function( setting ) {
|
||||||
|
api( setting, function( setting ) {
|
||||||
|
setting.bind( updateCSS );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
} )( wp.customize );
|
35
app/static/wp-content/themes/twentyfifteen/js/customize-preview.js
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
/**
|
||||||
|
* Live-update changed settings in real time in the Customizer preview.
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function( $ ) {
|
||||||
|
var $style = $( '#twentyfifteen-color-scheme-css' ),
|
||||||
|
api = wp.customize;
|
||||||
|
|
||||||
|
if ( ! $style.length ) {
|
||||||
|
$style = $( 'head' ).append( '<style type="text/css" id="twentyfifteen-color-scheme-css" />' )
|
||||||
|
.find( '#twentyfifteen-color-scheme-css' );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Site title.
|
||||||
|
api( 'blogname', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
$( '.site-title a' ).text( to );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Site tagline.
|
||||||
|
api( 'blogdescription', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
$( '.site-description' ).text( to );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Color Scheme CSS.
|
||||||
|
api.bind( 'preview-ready', function() {
|
||||||
|
api.preview.bind( 'update-color-scheme-css', function( css ) {
|
||||||
|
$style.html( css );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
} )( jQuery );
|
134
app/static/wp-content/themes/twentyfifteen/js/functions.js
Executable file
|
@ -0,0 +1,134 @@
|
||||||
|
/* global screenReaderText */
|
||||||
|
/**
|
||||||
|
* Theme functions file.
|
||||||
|
*
|
||||||
|
* Contains handlers for navigation and widget area.
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function( $ ) {
|
||||||
|
var $body, $window, $sidebar, resizeTimer,
|
||||||
|
secondary, button;
|
||||||
|
|
||||||
|
function initMainNavigation( container ) {
|
||||||
|
// Add dropdown toggle that display child menu items.
|
||||||
|
container.find( '.menu-item-has-children > a' ).after( '<button class="dropdown-toggle" aria-expanded="false">' + screenReaderText.expand + '</button>' );
|
||||||
|
|
||||||
|
// Toggle buttons and submenu items with active children menu items.
|
||||||
|
container.find( '.current-menu-ancestor > button' ).addClass( 'toggle-on' );
|
||||||
|
container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' );
|
||||||
|
|
||||||
|
container.find( '.dropdown-toggle' ).on( 'click', function( e ) {
|
||||||
|
var _this = $( this );
|
||||||
|
e.preventDefault();
|
||||||
|
_this.toggleClass( 'toggle-on' );
|
||||||
|
_this.next( '.children, .sub-menu' ).toggleClass( 'toggled-on' );
|
||||||
|
_this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' );
|
||||||
|
_this.html( _this.html() === screenReaderText.expand ? screenReaderText.collapse : screenReaderText.expand );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
initMainNavigation( $( '.main-navigation' ) );
|
||||||
|
|
||||||
|
// Re-initialize the main navigation when it is updated, persisting any existing submenu expanded states.
|
||||||
|
$( document ).on( 'customize-preview-menu-refreshed', function( e, params ) {
|
||||||
|
if ( 'primary' === params.wpNavMenuArgs.theme_location ) {
|
||||||
|
initMainNavigation( params.newContainer );
|
||||||
|
|
||||||
|
// Re-sync expanded states from oldContainer.
|
||||||
|
params.oldContainer.find( '.dropdown-toggle.toggle-on' ).each(function() {
|
||||||
|
var containerId = $( this ).parent().prop( 'id' );
|
||||||
|
$( params.newContainer ).find( '#' + containerId + ' > .dropdown-toggle' ).triggerHandler( 'click' );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
secondary = $( '#secondary' );
|
||||||
|
button = $( '.site-branding' ).find( '.secondary-toggle' );
|
||||||
|
|
||||||
|
// Enable menu toggle for small screens.
|
||||||
|
( function() {
|
||||||
|
var menu, widgets, social;
|
||||||
|
if ( ! secondary.length || ! button.length ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hide button if there are no widgets and the menus are missing or empty.
|
||||||
|
menu = secondary.find( '.nav-menu' );
|
||||||
|
widgets = secondary.find( '#widget-area' );
|
||||||
|
social = secondary.find( '#social-navigation' );
|
||||||
|
if ( ! widgets.length && ! social.length && ( ! menu.length || ! menu.children().length ) ) {
|
||||||
|
button.hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.on( 'click.twentyfifteen', function() {
|
||||||
|
secondary.toggleClass( 'toggled-on' );
|
||||||
|
secondary.trigger( 'resize' );
|
||||||
|
$( this ).toggleClass( 'toggled-on' );
|
||||||
|
if ( $( this, secondary ).hasClass( 'toggled-on' ) ) {
|
||||||
|
$( this ).attr( 'aria-expanded', 'true' );
|
||||||
|
secondary.attr( 'aria-expanded', 'true' );
|
||||||
|
} else {
|
||||||
|
$( this ).attr( 'aria-expanded', 'false' );
|
||||||
|
secondary.attr( 'aria-expanded', 'false' );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
} )();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add or remove ARIA attributes.
|
||||||
|
*
|
||||||
|
* Uses jQuery's width() function to determine the size of the window and add
|
||||||
|
* the default ARIA attributes for the menu toggle if it's visible.
|
||||||
|
*
|
||||||
|
* @since Twenty Fifteen 1.1
|
||||||
|
*/
|
||||||
|
function onResizeARIA() {
|
||||||
|
if ( 955 > $window.width() ) {
|
||||||
|
button.attr( 'aria-expanded', 'false' );
|
||||||
|
secondary.attr( 'aria-expanded', 'false' );
|
||||||
|
button.attr( 'aria-controls', 'secondary' );
|
||||||
|
} else {
|
||||||
|
button.removeAttr( 'aria-expanded' );
|
||||||
|
secondary.removeAttr( 'aria-expanded' );
|
||||||
|
button.removeAttr( 'aria-controls' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar scrolling.
|
||||||
|
function resizeAndScroll() {
|
||||||
|
var windowPos = $window.scrollTop(),
|
||||||
|
windowHeight = $window.height(),
|
||||||
|
sidebarHeight = $sidebar.height(),
|
||||||
|
pageHeight = $( '#page' ).height();
|
||||||
|
|
||||||
|
if ( 955 < $window.width() && pageHeight > sidebarHeight && ( windowPos + windowHeight ) >= sidebarHeight ) {
|
||||||
|
$sidebar.css({
|
||||||
|
position: 'fixed',
|
||||||
|
bottom: sidebarHeight > windowHeight ? 0 : 'auto'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$sidebar.css('position', 'relative');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$( function() {
|
||||||
|
$body = $( document.body );
|
||||||
|
$window = $( window );
|
||||||
|
$sidebar = $( '#sidebar' ).first();
|
||||||
|
|
||||||
|
$window
|
||||||
|
.on( 'scroll.twentyfifteen', resizeAndScroll )
|
||||||
|
.on( 'load.twentyfifteen', onResizeARIA )
|
||||||
|
.on( 'resize.twentyfifteen', function() {
|
||||||
|
clearTimeout( resizeTimer );
|
||||||
|
resizeTimer = setTimeout( resizeAndScroll, 500 );
|
||||||
|
onResizeARIA();
|
||||||
|
} );
|
||||||
|
$sidebar.on( 'click.twentyfifteen keydown.twentyfifteen', 'button', resizeAndScroll );
|
||||||
|
|
||||||
|
for ( var i = 0; i < 6; i++ ) {
|
||||||
|
setTimeout( resizeAndScroll, 100 * i );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
} )( jQuery );
|
9
app/static/wp-content/themes/twentyfifteen/js/html5.js
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
/*
|
||||||
|
* HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
|
||||||
|
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}</style>";
|
||||||
|
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
|
||||||
|
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
|
||||||
|
if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
|
22
app/static/wp-content/themes/twentyfifteen/js/keyboard-image-navigation.js
Executable file
|
@ -0,0 +1,22 @@
|
||||||
|
/**
|
||||||
|
* Twenty Fifteen keyboard support for image navigation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function( $ ) {
|
||||||
|
$( document ).on( 'keydown.twentyfifteen', function( e ) {
|
||||||
|
var url = false;
|
||||||
|
|
||||||
|
// Left arrow key code.
|
||||||
|
if ( e.which === 37 ) {
|
||||||
|
url = $( '.nav-previous a' ).attr( 'href' );
|
||||||
|
|
||||||
|
// Right arrow key code.
|
||||||
|
} else if ( e.which === 39 ) {
|
||||||
|
url = $( '.nav-next a' ).attr( 'href' );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( url && ( ! $( 'textarea, input' ).is( ':focus' ) ) ) {
|
||||||
|
window.location = url;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
} )( jQuery );
|
26
app/static/wp-content/themes/twentyfifteen/js/skip-link-focus-fix.js
Executable file
|
@ -0,0 +1,26 @@
|
||||||
|
/**
|
||||||
|
* Makes "skip to content" link work correctly in IE9, Chrome, and Opera
|
||||||
|
* for better accessibility.
|
||||||
|
*
|
||||||
|
* @link http://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function() {
|
||||||
|
var ua = navigator.userAgent.toLowerCase();
|
||||||
|
|
||||||
|
if ( ( ua.indexOf( 'webkit' ) > -1 || ua.indexOf( 'opera' ) > -1 || ua.indexOf( 'msie' ) > -1 ) &&
|
||||||
|
document.getElementById && window.addEventListener ) {
|
||||||
|
|
||||||
|
window.addEventListener( 'hashchange', function() {
|
||||||
|
var element = document.getElementById( location.hash.substring( 1 ) );
|
||||||
|
|
||||||
|
if ( element ) {
|
||||||
|
if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.nodeName ) ) {
|
||||||
|
element.tabIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
}, false );
|
||||||
|
}
|
||||||
|
} )();
|
848
app/static/wp-content/themes/twentyfifteen/rtl.css
Executable file
|
@ -0,0 +1,848 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Fifteen
|
||||||
|
Description: Adds support for languages written in a Right To Left (RTL) direction.
|
||||||
|
It's easy, just a matter of overwriting all the horizontal positioning attributes
|
||||||
|
of your CSS stylesheet in a separate stylesheet file named rtl.css.
|
||||||
|
|
||||||
|
See: https://codex.wordpress.org/Right_to_Left_Language_Support
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Table of Contents:
|
||||||
|
*
|
||||||
|
* 1.0 - Reset
|
||||||
|
* 2.0 - Typography
|
||||||
|
* 3.0 - Elements
|
||||||
|
* 4.0 - Forms
|
||||||
|
* 5.0 - Navigations
|
||||||
|
* 6.0 - Accessibility
|
||||||
|
* 7.0 - Alignments
|
||||||
|
* 8.0 - Header
|
||||||
|
* 9.0 - Widgets
|
||||||
|
* 10.0 - Content
|
||||||
|
* 10.1 - Posts and pages
|
||||||
|
* 10.2 - Comments
|
||||||
|
* 11.0 - Media Queries
|
||||||
|
* 11.1 - Mobile Large
|
||||||
|
* 11.2 - Tablet Small
|
||||||
|
* 11.3 - Tablet Large
|
||||||
|
* 11.4 - Desktop Small
|
||||||
|
* 11.5 - Desktop Medium
|
||||||
|
* 11.6 - Desktop Large
|
||||||
|
* 11.7 - Desktop X-Large
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1.0 Reset
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
direction: rtl;
|
||||||
|
unicode-bidi: embed;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption,
|
||||||
|
th,
|
||||||
|
td {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2.0 Typography
|
||||||
|
*/
|
||||||
|
|
||||||
|
body,
|
||||||
|
button,
|
||||||
|
input[type="button"],
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"],
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea,
|
||||||
|
blockquote cite,
|
||||||
|
blockquote small,
|
||||||
|
.post-password-form label,
|
||||||
|
.main-navigation .menu-item-description,
|
||||||
|
.post-navigation .meta-nav,
|
||||||
|
.post-navigation .post-title,
|
||||||
|
.pagination,
|
||||||
|
.image-navigation,
|
||||||
|
.comment-navigation,
|
||||||
|
.site-title,
|
||||||
|
.site-description,
|
||||||
|
.widget-title,
|
||||||
|
.widget_calendar caption,
|
||||||
|
.widget_rss .rss-date,
|
||||||
|
.widget_rss cite,
|
||||||
|
.author-heading,
|
||||||
|
.entry-footer,
|
||||||
|
.page-title,
|
||||||
|
.page-links,
|
||||||
|
.entry-caption,
|
||||||
|
.comments-title,
|
||||||
|
.comment-reply-title,
|
||||||
|
.comment-metadata,
|
||||||
|
.pingback .edit-link,
|
||||||
|
.comment-list .reply a,
|
||||||
|
.comment-form label,
|
||||||
|
.comment-notes,
|
||||||
|
.comment-awaiting-moderation,
|
||||||
|
.logged-in-as,
|
||||||
|
.form-allowed-tags,
|
||||||
|
.no-comments,
|
||||||
|
.wp-caption-text,
|
||||||
|
.gallery-caption {
|
||||||
|
font-family: Arial, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-input-placeholder {
|
||||||
|
font-family: Arial, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
:-moz-placeholder {
|
||||||
|
font-family: Arial, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-placeholder {
|
||||||
|
font-family: Arial, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
:-ms-input-placeholder {
|
||||||
|
font-family: Arial, Tahoma, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
border-right: 4px solid rgba(51, 51, 51, 0.7);
|
||||||
|
border-left: 0;
|
||||||
|
padding-right: 0.7778em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.0 Elements
|
||||||
|
*/
|
||||||
|
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin: 0 1.3333em 1.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption,
|
||||||
|
th,
|
||||||
|
td {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 4.0 Forms
|
||||||
|
*/
|
||||||
|
|
||||||
|
.post-password-form input[type="submit"] {
|
||||||
|
right: auto;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 5.0 Navigations
|
||||||
|
*/
|
||||||
|
|
||||||
|
.main-navigation ul ul {
|
||||||
|
margin-right: 0.8em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-has-children > a {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-toggle {
|
||||||
|
right: auto;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-toggle:after {
|
||||||
|
right: -1px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation li {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation a:before {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.secondary-toggle {
|
||||||
|
right: auto;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation .has-post-thumbnail a:before {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .prev {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .prev:before {
|
||||||
|
content: "\f429";
|
||||||
|
right: -1px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .next {
|
||||||
|
right: auto;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .next:before {
|
||||||
|
content: "\f430";
|
||||||
|
right: auto;
|
||||||
|
left: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation .nav-previous a:before,
|
||||||
|
.comment-navigation .nav-previous a:before {
|
||||||
|
content: "\f429";
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-navigation .nav-next a:after,
|
||||||
|
.comment-navigation .nav-next a:after {
|
||||||
|
content: "\f430";
|
||||||
|
margin-right: 0.2em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 6.0 Accessibility
|
||||||
|
*/
|
||||||
|
|
||||||
|
.screen-reader-text:hover,
|
||||||
|
.screen-reader-text:focus {
|
||||||
|
right: 5px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 7.0 Alignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
.alignright {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alignleft {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aligncenter {
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4em 0 1.6em 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4em 1.6em 1.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 8.0 Header
|
||||||
|
*/
|
||||||
|
|
||||||
|
.site-branding {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 9.0 Widgets
|
||||||
|
*/
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.7667em 0.8em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textwidget ul,
|
||||||
|
.textwidget ol {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 10.0 Content
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 10.1 Posts and pages
|
||||||
|
*/
|
||||||
|
|
||||||
|
.entry-content .more-link:after {
|
||||||
|
content: "\f430";
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-link:after {
|
||||||
|
content: "\f430";
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
float: right;
|
||||||
|
margin: 0 0 1.6em 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.posted-on:before,
|
||||||
|
.byline:before,
|
||||||
|
.cat-links:before,
|
||||||
|
.tags-links:before,
|
||||||
|
.comments-link:before,
|
||||||
|
.entry-format:before,
|
||||||
|
.edit-link:before,
|
||||||
|
.full-size-link:before {
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.posted-on,
|
||||||
|
.byline,
|
||||||
|
.cat-links,
|
||||||
|
.tags-links,
|
||||||
|
.comments-link,
|
||||||
|
.entry-format,
|
||||||
|
.full-size-link {
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0 0.3333em 0.3333em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links > .page-links-title {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.type-attachment .entry-header {
|
||||||
|
clear: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.format-link .entry-title a:after {
|
||||||
|
-webkit-transform: scaleX(-1);
|
||||||
|
-moz-transform: scaleX(-1);
|
||||||
|
-ms-transform: scaleX(-1);
|
||||||
|
-o-transform: scaleX(-1);
|
||||||
|
transform: scaleX(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 10.2 Comments
|
||||||
|
*/
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-right: 0.8em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
float: right;
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bypostauthor > article .fn:after {
|
||||||
|
right: 3px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-metadata .edit-link {
|
||||||
|
margin-right: 1em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pingback .edit-link {
|
||||||
|
margin-right: 1em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-content ul,
|
||||||
|
.comment-content ol {
|
||||||
|
margin: 0 1.3333em 1.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-reply-title small a {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-form #wp-comment-cookies-consent {
|
||||||
|
margin: 0 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.0 Media Queries
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.1 Mobile Large 620px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 38.75em) {
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > ul,
|
||||||
|
li > ol,
|
||||||
|
blockquote > ul,
|
||||||
|
blockquote > ol {
|
||||||
|
margin-right: 1.3333em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin-right: -1em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote > blockquote {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
border-color: inherit;
|
||||||
|
border-left: none;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0 7px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-title,
|
||||||
|
.taxonomy-description {
|
||||||
|
margin-right: -7px;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-content ul,
|
||||||
|
.comment-content ol {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-content li > ul,
|
||||||
|
.comment-content li > ol,
|
||||||
|
.comment-content blockquote > ul,
|
||||||
|
.comment-content blockquote > ol {
|
||||||
|
margin-right: 1.3333em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.2 Tablet Small 740px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 46.25em) {
|
||||||
|
blockquote {
|
||||||
|
margin-right: -1.05em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 0.85em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul {
|
||||||
|
margin-right: 1em;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4118em 0 1.6471em 1.6471em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4118em 1.6471em 1.6471em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-branding {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 66px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote {
|
||||||
|
margin-right: -1.2353em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 1em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote > blockquote {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote.alignright,
|
||||||
|
.widget .wp-caption.alignright,
|
||||||
|
.widget img.alignright {
|
||||||
|
margin: 0.5em 0 1.5em 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote.alignleft,
|
||||||
|
.widget .wp-caption.alignleft,
|
||||||
|
.widget img.alignleft {
|
||||||
|
margin: 0.5em 1.5em 1.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.9643em 1em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0 0.2857em 0.2857em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
margin: 0 0 1.6471em 1.6471em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-right: 1.2353em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
margin-left: 1.64705em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bypostauthor > article .fn:after {
|
||||||
|
right: 6px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.3 Tablet Large 880px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 55em) {
|
||||||
|
blockquote {
|
||||||
|
margin-right: -1.0909em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 0.9091em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4211em 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4211em 1.6842em 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-branding {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote {
|
||||||
|
margin-right: -1.2632em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 1.0526em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.7188em 1em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0 0.25em 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
margin: 0 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-right: 1.4737em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
margin-left: 1.6842em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.4 Desktop Small 955px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 59.6875em) {
|
||||||
|
body:before {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
float: right;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: -100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-content {
|
||||||
|
float: right;
|
||||||
|
margin-right: 29.4118%;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin-right: -1.3333em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 1.1111em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-has-children > a {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4em 0 1.6em 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4em 1.6em 1.6em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote {
|
||||||
|
margin-right: -1.5em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 1.1667em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.4583em 1em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0 0.3333em 0.3333em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
margin: 0 0 1.5em 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-right: 0.8em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
margin-left: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bypostauthor > article .fn:after {
|
||||||
|
right: 3px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-branding {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-footer {
|
||||||
|
float: right;
|
||||||
|
margin: 0 35.2941% 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.5 Desktop Medium 1100px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 68.75em) {
|
||||||
|
blockquote {
|
||||||
|
margin-right: -1.05em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 0.85em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-has-children > a {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4118em 0 1.6471em 1.6471em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4118em 1.6471em 1.6471em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote {
|
||||||
|
padding-right: 1.2143em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.4643em 1em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0 0.2857em 0.2857em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
margin: 0 0 1.6471em 1.6471em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-right: 1.1667em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
margin-left: 1.64705em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bypostauthor > article .fn:after {
|
||||||
|
right: 6px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.6 Desktop Large 1240px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 77.5em) {
|
||||||
|
blockquote {
|
||||||
|
margin-right: -1.0909em;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 0.9091em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-has-children > a {
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignright,
|
||||||
|
.wp-caption.alignright,
|
||||||
|
img.alignright {
|
||||||
|
margin: 0.4211em 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
.wp-caption.alignleft,
|
||||||
|
img.alignleft {
|
||||||
|
margin: 0.4211em 1.6842em 1.6842em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget blockquote {
|
||||||
|
padding-right: 1.25em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_categories .children,
|
||||||
|
.widget_nav_menu .sub-menu,
|
||||||
|
.widget_pages .children {
|
||||||
|
margin: 0.4688em 1em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-links a,
|
||||||
|
.page-links > span {
|
||||||
|
margin: 0 0 0.25em 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info .avatar {
|
||||||
|
margin: 0 0 1.6842em 1.6842em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-list .children > li {
|
||||||
|
padding-right: 1.4737em;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
margin-left: 1.64705em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 11.7 Desktop X-Large 1403px
|
||||||
|
*/
|
||||||
|
|
||||||
|
@media screen and (min-width: 87.6875em) {
|
||||||
|
body:before {
|
||||||
|
width: -webkit-calc(50% - 289px);
|
||||||
|
width: calc(50% - 289px);
|
||||||
|
}
|
||||||
|
}
|
6118
app/static/wp-content/themes/twentyfifteen/style.css
Executable file
479
app/static/wp-content/themes/twentyseventeen/assets/css/blocks.css
Executable file
|
@ -0,0 +1,479 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Seventeen
|
||||||
|
Description: Used to style blocks.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
>>> TABLE OF CONTENTS:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1.0 General Block Styles
|
||||||
|
2.0 Blocks - Common Blocks
|
||||||
|
3.0 Blocks - Formatting
|
||||||
|
4.0 Blocks - Layout Elements
|
||||||
|
5.0 Blocks - Widgets
|
||||||
|
6.0 Blocks - Colors
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
1.0 General Block Styles
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Captions */
|
||||||
|
|
||||||
|
[class^="wp-block-"]:not(.wp-block-gallery) figcaption {
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl [class^="wp-block-"]:not(.wp-block-gallery) figcaption {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
2.0 Blocks - Common Blocks
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Paragraph */
|
||||||
|
|
||||||
|
p.has-drop-cap:not(:focus)::first-letter {
|
||||||
|
font-size: 5em;
|
||||||
|
margin-top: 0.075em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Image */
|
||||||
|
|
||||||
|
.wp-block-image {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-image figure {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-image figure.alignleft {
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-image figure.alignright {
|
||||||
|
margin-left: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-image a,
|
||||||
|
.wp-block-image a:hover,
|
||||||
|
.wp-block-image a:focus,
|
||||||
|
.widget-area .wp-block-image a,
|
||||||
|
.widget-area .wp-block-image a:hover,
|
||||||
|
.widget-area .wp-block-image a:focus {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Gallery */
|
||||||
|
|
||||||
|
.wp-block-gallery {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-gallery figcaption {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-gallery.aligncenter {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 -8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quote */
|
||||||
|
|
||||||
|
.wp-block-quote:not(.is-large):not(.is-style-large) {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignleft p:last-of-type,
|
||||||
|
.wp-block-quote.alignright p:last-of-type {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote cite {
|
||||||
|
color: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Audio */
|
||||||
|
|
||||||
|
.wp-block-audio audio {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Cover */
|
||||||
|
|
||||||
|
.wp-block-cover-image.alignright,
|
||||||
|
.wp-block-cover.alignright,
|
||||||
|
.wp-block-cover-image.alignleft,
|
||||||
|
.wp-block-cover.alignleft,
|
||||||
|
.wp-block-cover-image.aligncenter,
|
||||||
|
.wp-block-cover.aligncenter {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* File */
|
||||||
|
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
background-color: #222;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
border-radius: 2px;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
font-weight: 800;
|
||||||
|
margin-top: 2em;
|
||||||
|
padding: 0.7em 2em;
|
||||||
|
-webkit-transition: background-color 0.2s ease-in-out;
|
||||||
|
transition: background-color 0.2s ease-in-out;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-file .wp-block-file__button:hover,
|
||||||
|
.wp-block-file .wp-block-file__button:focus {
|
||||||
|
background-color: #767676;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
3.0 Blocks - Formatting
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Code */
|
||||||
|
|
||||||
|
.wp-block-code {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-code code {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pullquote */
|
||||||
|
|
||||||
|
.wp-block-pullquote {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-pullquote__citation,
|
||||||
|
.wp-block-pullquote cite {
|
||||||
|
font-size: inherit;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Table */
|
||||||
|
|
||||||
|
.wp-block-table thead th {
|
||||||
|
border-bottom: 2px solid #bbb;
|
||||||
|
padding-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-table tr {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-table th,
|
||||||
|
.wp-block-table td {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .wp-block-table th,
|
||||||
|
.rtl .wp-block-table td {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
4.0 Blocks - Layout Elements
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Buttons */
|
||||||
|
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1.66;
|
||||||
|
margin-top: 2em;
|
||||||
|
padding: 0.7em 2em;
|
||||||
|
-webkit-transition: background-color 0.2s ease-in-out;
|
||||||
|
transition: background-color 0.2s ease-in-out;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .wp-block-button__link {
|
||||||
|
background-color: #222;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .is-style-outline .wp-block-button__link:not(.has-background) {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .is-style-outline .wp-block-button__link:not(.has-text-color) {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .wp-block-button__link {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .wp-block-button__link:hover,
|
||||||
|
.entry-content .wp-block-button__link:focus,
|
||||||
|
.entry-content .is-style-outline .wp-block-button__link:not(.has-background):hover,
|
||||||
|
.entry-content .is-style-outline .wp-block-button__link:not(.has-background):focus {
|
||||||
|
background-color: #767676;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-content .wp-block-button__link:hover,
|
||||||
|
.colors-dark .entry-content .wp-block-button__link:focus,
|
||||||
|
.colors-dark .entry-content .is-style-outline .wp-block-button__link:not(.has-background):hover,
|
||||||
|
.colors-dark .entry-content .is-style-outline .wp-block-button__link:not(.has-background):focus {
|
||||||
|
background-color: #bbb;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-content .is-style-outline .wp-block-button__link:not(.has-text-color) {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-content .is-style-outline .wp-block-button__link:not(.has-text-color):hover,
|
||||||
|
.colors-dark .entry-content .is-style-outline .wp-block-button__link:not(.has-text-color):focus {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-custom .entry-content .wp-block-button__link,
|
||||||
|
.colors-custom .entry-content .wp-block-button__link:hover,
|
||||||
|
.colors-custom .entry-content .wp-block-button__link:focus,
|
||||||
|
.colors-dark .entry-content .wp-block-button__link,
|
||||||
|
.colors-dark .entry-content .wp-block-button__link:hover,
|
||||||
|
.colors-dark .entry-content .wp-block-button__link:focus {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-custom .entry-content .wp-block-button__link:hover,
|
||||||
|
.colors-custom .entry-content .wp-block-button__link:focus {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Separator */
|
||||||
|
|
||||||
|
.wp-block-separator {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
|
||||||
|
max-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media & Text */
|
||||||
|
|
||||||
|
.wp-block-media-text {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-media-text *:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
5.0 Blocks - Widgets
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Archives, Categories & Latest Posts */
|
||||||
|
|
||||||
|
.wp-block-archives.aligncenter,
|
||||||
|
.wp-block-categories.aligncenter,
|
||||||
|
.wp-block-latest-posts.aligncenter {
|
||||||
|
list-style-position: inside;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Comments */
|
||||||
|
|
||||||
|
.wp-block-latest-comments article {
|
||||||
|
margin-bottom: 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-area .wp-block-latest-comments article {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blog:not(.has-sidebar) #primary .wp-block-latest-comments article,
|
||||||
|
.archive:not(.page-one-column):not(.has-sidebar) #primary .wp-block-latest-comments article,
|
||||||
|
.search:not(.has-sidebar) #primary .wp-block-latest-comments article {
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments .avatar,
|
||||||
|
.wp-block-latest-comments__comment-avatar {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments a {
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 1);
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments .wp-block-latest-comments__comment {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-meta {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
margin-bottom: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-author,
|
||||||
|
.wp-block-latest-comments__comment-link {
|
||||||
|
font-weight: 700;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
color: #767676;
|
||||||
|
font-size: 10px;
|
||||||
|
font-size: 0.625rem;
|
||||||
|
font-weight: 800;
|
||||||
|
letter-spacing: 0.1818em;
|
||||||
|
margin-top: 0.4em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-block-list__block .wp-block-latest-comments__comment-excerpt p {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Query Loop & Post Template */
|
||||||
|
|
||||||
|
.wp-block-query .wp-block-post-template > li {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
6.0 Blocks - Colors
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
.entry-content .has-pale-pink-color {
|
||||||
|
color: #f78da7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-pale-pink-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-pale-pink-background-color:link {
|
||||||
|
background-color: #f78da7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-vivid-red-color {
|
||||||
|
color: #cf2e2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-vivid-red-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-vivid-red-background-color:link {
|
||||||
|
background-color: #cf2e2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-luminous-vivid-orange-color {
|
||||||
|
color: #ff6900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-luminous-vivid-orange-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-luminous-vivid-orange-background-color:link {
|
||||||
|
background-color: #ff6900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-luminous-vivid-amber-color {
|
||||||
|
color: #fcb900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-luminous-vivid-amber-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-luminous-vivid-amber-background-color:link {
|
||||||
|
background-color: #fcb900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-light-green-cyan-color {
|
||||||
|
color: #7bdcb5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-light-green-cyan-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-light-green-cyan-background-color:link {
|
||||||
|
background-color: #7bdcb5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-vivid-green-cyan-color {
|
||||||
|
color: #00d084;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-vivid-green-cyan-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-vivid-green-cyan-background-color:link {
|
||||||
|
background-color: #00d084;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-pale-cyan-blue-color {
|
||||||
|
color: #8ed1fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-pale-cyan-blue-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-pale-cyan-blue-background-color:link {
|
||||||
|
background-color: #8ed1fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-vivid-cyan-blue-color {
|
||||||
|
color: #0693e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-vivid-cyan-blue-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-vivid-cyan-blue-background-color:link {
|
||||||
|
background-color: #0693e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-very-light-gray-color {
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-very-light-gray-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-very-light-gray-background-color:link {
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-cyan-bluish-gray-color {
|
||||||
|
color: #abb8c3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-cyan-bluish-gray-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-cyan-bluish-gray-background-color:link {
|
||||||
|
background-color: #abb8c3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-very-dark-gray-color {
|
||||||
|
color: #313131;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content .has-very-dark-gray-background-color,
|
||||||
|
.wp-block-button.is-style-outline .has-very-dark-gray-background-color:link {
|
||||||
|
background-color: #313131;
|
||||||
|
}
|
566
app/static/wp-content/themes/twentyseventeen/assets/css/colors-dark.css
Executable file
|
@ -0,0 +1,566 @@
|
||||||
|
/**
|
||||||
|
* Twenty Seventeen: Dark Color Scheme
|
||||||
|
*
|
||||||
|
* See inc/color-patterns.php for dynamic color overrides for the theme.
|
||||||
|
*
|
||||||
|
* Colors are ordered from light to dark.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.colors-dark button,
|
||||||
|
.colors-dark input[type="button"],
|
||||||
|
.colors-dark input[type="submit"],
|
||||||
|
.colors-dark .entry-footer .edit-link a.post-edit-link {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark a:hover,
|
||||||
|
.colors-dark a:active,
|
||||||
|
.colors-dark .entry-content a:focus,
|
||||||
|
.colors-dark .entry-content a:hover,
|
||||||
|
.colors-dark .entry-summary a:focus,
|
||||||
|
.colors-dark .entry-summary a:hover,
|
||||||
|
.colors-dark .comment-content a:focus,
|
||||||
|
.colors-dark .comment-content a:hover,
|
||||||
|
.colors-dark .widget a:focus,
|
||||||
|
.colors-dark .widget a:hover,
|
||||||
|
.colors-dark .site-footer .widget-area a:focus,
|
||||||
|
.colors-dark .site-footer .widget-area a:hover,
|
||||||
|
.colors-dark .posts-navigation a:focus,
|
||||||
|
.colors-dark .posts-navigation a:hover,
|
||||||
|
.colors-dark .comment-metadata a:focus,
|
||||||
|
.colors-dark .comment-metadata a:hover,
|
||||||
|
.colors-dark .comment-metadata a.comment-edit-link:focus,
|
||||||
|
.colors-dark .comment-metadata a.comment-edit-link:hover,
|
||||||
|
.colors-dark .comment-reply-link:focus,
|
||||||
|
.colors-dark .comment-reply-link:hover,
|
||||||
|
.colors-dark .widget_authors a:focus strong,
|
||||||
|
.colors-dark .widget_authors a:hover strong,
|
||||||
|
.colors-dark .entry-title a:focus,
|
||||||
|
.colors-dark .entry-title a:hover,
|
||||||
|
.colors-dark .entry-meta a:focus,
|
||||||
|
.colors-dark .entry-meta a:hover,
|
||||||
|
.colors-dark.blog .entry-meta a.post-edit-link:focus,
|
||||||
|
.colors-dark.blog .entry-meta a.post-edit-link:hover,
|
||||||
|
.colors-dark.archive .entry-meta a.post-edit-link:focus,
|
||||||
|
.colors-dark.archive .entry-meta a.post-edit-link:hover,
|
||||||
|
.colors-dark.search .entry-meta a.post-edit-link:focus,
|
||||||
|
.colors-dark.search .entry-meta a.post-edit-link:hover,
|
||||||
|
.colors-dark .page-links a:focus .page-number,
|
||||||
|
.colors-dark .page-links a:hover .page-number,
|
||||||
|
.colors-dark .entry-footer .cat-links a:focus,
|
||||||
|
.colors-dark .entry-footer .cat-links a:hover,
|
||||||
|
.colors-dark .entry-footer .tags-links a:focus,
|
||||||
|
.colors-dark .entry-footer .tags-links a:hover,
|
||||||
|
.colors-dark .post-navigation a:focus,
|
||||||
|
.colors-dark .post-navigation a:hover,
|
||||||
|
.colors-dark .pagination a:not(.prev):not(.next):focus,
|
||||||
|
.colors-dark .pagination a:not(.prev):not(.next):hover,
|
||||||
|
.colors-dark .comments-pagination a:not(.prev):not(.next):focus,
|
||||||
|
.colors-dark .comments-pagination a:not(.prev):not(.next):hover,
|
||||||
|
.colors-dark .logged-in-as a:focus,
|
||||||
|
.colors-dark .logged-in-as a:hover,
|
||||||
|
.colors-dark a:focus .nav-title,
|
||||||
|
.colors-dark a:hover .nav-title,
|
||||||
|
.colors-dark .edit-link a:focus,
|
||||||
|
.colors-dark .edit-link a:hover,
|
||||||
|
.colors-dark .site-info a:focus,
|
||||||
|
.colors-dark .site-info a:hover,
|
||||||
|
.colors-dark .widget .widget-title a:focus,
|
||||||
|
.colors-dark .widget .widget-title a:hover,
|
||||||
|
.colors-dark .widget ul li a:focus,
|
||||||
|
.colors-dark .widget ul li a:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-content a:focus,
|
||||||
|
.colors-dark .entry-content a:hover,
|
||||||
|
.colors-dark .entry-summary a:focus,
|
||||||
|
.colors-dark .entry-summary a:hover,
|
||||||
|
.colors-dark .comment-content a:focus,
|
||||||
|
.colors-dark .comment-content a:hover,
|
||||||
|
.colors-dark .widget a:focus,
|
||||||
|
.colors-dark .widget a:hover,
|
||||||
|
.colors-dark .site-footer .widget-area a:focus,
|
||||||
|
.colors-dark .site-footer .widget-area a:hover,
|
||||||
|
.colors-dark .posts-navigation a:focus,
|
||||||
|
.colors-dark .posts-navigation a:hover,
|
||||||
|
.colors-dark .comment-metadata a:focus,
|
||||||
|
.colors-dark .comment-metadata a:hover,
|
||||||
|
.colors-dark .comment-metadata a.comment-edit-link:focus,
|
||||||
|
.colors-dark .comment-metadata a.comment-edit-link:hover,
|
||||||
|
.colors-dark .comment-reply-link:focus,
|
||||||
|
.colors-dark .comment-reply-link:hover,
|
||||||
|
.colors-dark .widget_authors a:focus strong,
|
||||||
|
.colors-dark .widget_authors a:hover strong,
|
||||||
|
.colors-dark .entry-title a:focus,
|
||||||
|
.colors-dark .entry-title a:hover,
|
||||||
|
.colors-dark .entry-meta a:focus,
|
||||||
|
.colors-dark .entry-meta a:hover,
|
||||||
|
.colors-dark.blog .entry-meta a.post-edit-link:focus,
|
||||||
|
.colors-dark.blog .entry-meta a.post-edit-link:hover,
|
||||||
|
.colors-dark.archive .entry-meta a.post-edit-link:focus,
|
||||||
|
.colors-dark.archive .entry-meta a.post-edit-link:hover,
|
||||||
|
.colors-dark.search .entry-meta a.post-edit-link:focus,
|
||||||
|
.colors-dark.search .entry-meta a.post-edit-link:hover,
|
||||||
|
.colors-dark .page-links a:focus .page-number,
|
||||||
|
.colors-dark .page-links a:hover .page-number,
|
||||||
|
.colors-dark .entry-footer .cat-links a:focus,
|
||||||
|
.colors-dark .entry-footer .cat-links a:hover,
|
||||||
|
.colors-dark .entry-footer .tags-links a:focus,
|
||||||
|
.colors-dark .entry-footer .tags-links a:hover,
|
||||||
|
.colors-dark .post-navigation a:focus,
|
||||||
|
.colors-dark .post-navigation a:hover,
|
||||||
|
.colors-dark .pagination a:not(.prev):not(.next):focus,
|
||||||
|
.colors-dark .pagination a:not(.prev):not(.next):hover,
|
||||||
|
.colors-dark .comments-pagination a:not(.prev):not(.next):focus,
|
||||||
|
.colors-dark .comments-pagination a:not(.prev):not(.next):hover,
|
||||||
|
.colors-dark .logged-in-as a:focus,
|
||||||
|
.colors-dark .logged-in-as a:hover,
|
||||||
|
.colors-dark a:focus .nav-title,
|
||||||
|
.colors-dark a:hover .nav-title,
|
||||||
|
.colors-dark .edit-link a:focus,
|
||||||
|
.colors-dark .edit-link a:hover,
|
||||||
|
.colors-dark .site-info a:focus,
|
||||||
|
.colors-dark .site-info a:hover,
|
||||||
|
.colors-dark .widget .widget-title a:focus,
|
||||||
|
.colors-dark .widget .widget-title a:hover,
|
||||||
|
.colors-dark .widget ul li a:focus,
|
||||||
|
.colors-dark .widget ul li a:hover {
|
||||||
|
-webkit-box-shadow: inset 0 0 0 rgba(255, 255, 255, 0), 0 3px 0 rgba(255, 255, 255, 1); /* Equivalant to #fff */
|
||||||
|
box-shadow: inset 0 0 0 rgba(255, 255, 255, 0), 0 3px 0 rgba(255, 255, 255, 1); /* Equivalant to #fff */
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-content a,
|
||||||
|
.colors-dark .entry-summary a,
|
||||||
|
.colors-dark .comment-content a,
|
||||||
|
.colors-dark .widget a,
|
||||||
|
.colors-dark .site-footer .widget-area a,
|
||||||
|
.colors-dark .posts-navigation a,
|
||||||
|
.colors-dark .widget_authors a strong {
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(240, 240, 240, 1); /* Equivalant to #f0f0f0 */
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(240, 240, 240, 1); /* Equivalant to #f0f0f0 */
|
||||||
|
}
|
||||||
|
|
||||||
|
body.colors-dark,
|
||||||
|
.colors-dark button,
|
||||||
|
.colors-dark input,
|
||||||
|
.colors-dark select,
|
||||||
|
.colors-dark textarea,
|
||||||
|
.colors-dark h3,
|
||||||
|
.colors-dark h4,
|
||||||
|
.colors-dark h6,
|
||||||
|
.colors-dark label,
|
||||||
|
.colors-dark .entry-title a,
|
||||||
|
.colors-dark.twentyseventeen-front-page .panel-content .recent-posts article,
|
||||||
|
.colors-dark .entry-footer .cat-links a,
|
||||||
|
.colors-dark .entry-footer .tags-links a,
|
||||||
|
.colors-dark .format-quote blockquote,
|
||||||
|
.colors-dark .nav-title,
|
||||||
|
.colors-dark .comment-body {
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Placeholder text color -- selectors need to be separate to work. */
|
||||||
|
.colors-dark ::-webkit-input-placeholder {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark :-moz-placeholder {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark ::-moz-placeholder {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark :-ms-input-placeholder {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark input[type="text"]:focus,
|
||||||
|
.colors-dark input[type="email"]:focus,
|
||||||
|
.colors-dark input[type="url"]:focus,
|
||||||
|
.colors-dark input[type="password"]:focus,
|
||||||
|
.colors-dark input[type="search"]:focus,
|
||||||
|
.colors-dark input[type="number"]:focus,
|
||||||
|
.colors-dark input[type="tel"]:focus,
|
||||||
|
.colors-dark input[type="range"]:focus,
|
||||||
|
.colors-dark input[type="date"]:focus,
|
||||||
|
.colors-dark input[type="month"]:focus,
|
||||||
|
.colors-dark input[type="week"]:focus,
|
||||||
|
.colors-dark input[type="time"]:focus,
|
||||||
|
.colors-dark input[type="datetime"]:focus,
|
||||||
|
.colors-dark input[type="datetime-local"]:focus,
|
||||||
|
.colors-dark input[type="color"]:focus,
|
||||||
|
.colors-dark textarea:focus,
|
||||||
|
.bypostauthor > .comment-body > .comment-meta > .comment-author .avatar {
|
||||||
|
border-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark input[type="text"]:focus,
|
||||||
|
.colors-dark input[type="email"]:focus,
|
||||||
|
.colors-dark input[type="url"]:focus,
|
||||||
|
.colors-dark input[type="password"]:focus,
|
||||||
|
.colors-dark input[type="search"]:focus,
|
||||||
|
.colors-dark input[type="number"]:focus,
|
||||||
|
.colors-dark input[type="tel"]:focus,
|
||||||
|
.colors-dark input[type="range"]:focus,
|
||||||
|
.colors-dark input[type="date"]:focus,
|
||||||
|
.colors-dark input[type="month"]:focus,
|
||||||
|
.colors-dark input[type="week"]:focus,
|
||||||
|
.colors-dark input[type="time"]:focus,
|
||||||
|
.colors-dark input[type="datetime"]:focus,
|
||||||
|
.colors-dark input[type="datetime-local"]:focus,
|
||||||
|
.colors-dark input[type="color"]:focus,
|
||||||
|
.colors-dark textarea:focus,
|
||||||
|
.colors-dark button.secondary,
|
||||||
|
.colors-dark input[type="reset"],
|
||||||
|
.colors-dark input[type="button"].secondary,
|
||||||
|
.colors-dark input[type="reset"].secondary,
|
||||||
|
.colors-dark input[type="submit"].secondary,
|
||||||
|
.colors-dark a,
|
||||||
|
.colors-dark .site-title,
|
||||||
|
.colors-dark .site-title a,
|
||||||
|
.colors-dark .navigation-top a,
|
||||||
|
.colors-dark .dropdown-toggle,
|
||||||
|
.colors-dark .menu-toggle,
|
||||||
|
.colors-dark .page .panel-content .entry-title,
|
||||||
|
.colors-dark .page-title,
|
||||||
|
.colors-dark.page:not(.twentyseventeen-front-page) .entry-title,
|
||||||
|
.colors-dark .page-links a .page-number,
|
||||||
|
.colors-dark .comment-metadata a.comment-edit-link,
|
||||||
|
.colors-dark .comment-reply-link .icon,
|
||||||
|
.colors-dark h2.widget-title,
|
||||||
|
.colors-dark mark,
|
||||||
|
.colors-dark .post-navigation a:focus .icon,
|
||||||
|
.colors-dark .post-navigation a:hover .icon,
|
||||||
|
.colors-dark.blog .entry-meta a.post-edit-link,
|
||||||
|
.colors-dark.archive .entry-meta a.post-edit-link,
|
||||||
|
.colors-dark.search .entry-meta a.post-edit-link,
|
||||||
|
.colors-custom .twentyseventeen-panel .recent-posts .entry-header .edit-link {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark h2,
|
||||||
|
.colors-dark blockquote,
|
||||||
|
.colors-dark input[type="text"],
|
||||||
|
.colors-dark input[type="email"],
|
||||||
|
.colors-dark input[type="url"],
|
||||||
|
.colors-dark input[type="password"],
|
||||||
|
.colors-dark input[type="search"],
|
||||||
|
.colors-dark input[type="number"],
|
||||||
|
.colors-dark input[type="tel"],
|
||||||
|
.colors-dark input[type="range"],
|
||||||
|
.colors-dark input[type="date"],
|
||||||
|
.colors-dark input[type="month"],
|
||||||
|
.colors-dark input[type="week"],
|
||||||
|
.colors-dark input[type="time"],
|
||||||
|
.colors-dark input[type="datetime"],
|
||||||
|
.colors-dark input[type="datetime-local"],
|
||||||
|
.colors-dark input[type="color"],
|
||||||
|
.colors-dark textarea,
|
||||||
|
.colors-dark .navigation-top .current-menu-item > a,
|
||||||
|
.colors-dark .navigation-top .current_page_item > a,
|
||||||
|
.colors-dark .entry-content blockquote.alignleft,
|
||||||
|
.colors-dark .entry-content blockquote.alignright,
|
||||||
|
.colors-dark .taxonomy-description,
|
||||||
|
.colors-dark .site-info a,
|
||||||
|
.colors-dark .wp-caption {
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark abbr,
|
||||||
|
.colors-dark acronym {
|
||||||
|
border-bottom-color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark h5,
|
||||||
|
.main-navigation a:hover,
|
||||||
|
.colors-dark .entry-meta,
|
||||||
|
.colors-dark .entry-meta a,
|
||||||
|
.colors-dark .nav-subtitle,
|
||||||
|
.colors-dark .comment-metadata,
|
||||||
|
.colors-dark .comment-metadata a,
|
||||||
|
.colors-dark .no-comments,
|
||||||
|
.colors-dark .comment-awaiting-moderation,
|
||||||
|
.colors-dark .page-numbers.current,
|
||||||
|
.colors-dark .page-links .page-number,
|
||||||
|
.colors-dark .site-description {
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark :not( .mejs-button ) > button:hover,
|
||||||
|
.colors-dark :not( .mejs-button ) > button:focus,
|
||||||
|
.colors-dark input[type="button"]:hover,
|
||||||
|
.colors-dark input[type="button"]:focus,
|
||||||
|
.colors-dark input[type="submit"]:hover,
|
||||||
|
.colors-dark input[type="submit"]:focus,
|
||||||
|
.colors-dark .prev.page-numbers:focus,
|
||||||
|
.colors-dark .prev.page-numbers:hover,
|
||||||
|
.colors-dark .next.page-numbers:focus,
|
||||||
|
.colors-dark .next.page-numbers:hover,
|
||||||
|
.colors-dark .entry-footer .edit-link a.post-edit-link:focus,
|
||||||
|
.colors-dark .entry-footer .edit-link a.post-edit-link:hover {
|
||||||
|
background: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .social-navigation a:hover,
|
||||||
|
.colors-dark .social-navigation a:focus {
|
||||||
|
background: #999;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-footer .cat-links .icon,
|
||||||
|
.colors-dark .entry-footer .tags-links .icon {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark button.secondary:hover,
|
||||||
|
.colors-dark button.secondary:focus,
|
||||||
|
.colors-dark input[type="reset"]:hover,
|
||||||
|
.colors-dark input[type="reset"]:focus,
|
||||||
|
.colors-dark input[type="button"].secondary:hover,
|
||||||
|
.colors-dark input[type="button"].secondary:focus,
|
||||||
|
.colors-dark input[type="reset"].secondary:hover,
|
||||||
|
.colors-dark input[type="reset"].secondary:focus,
|
||||||
|
.colors-dark input[type="submit"].secondary:hover,
|
||||||
|
.colors-dark input[type="submit"].secondary:focus,
|
||||||
|
.colors-dark .social-navigation a,
|
||||||
|
.colors-dark hr {
|
||||||
|
background: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark input[type="text"],
|
||||||
|
.colors-dark input[type="email"],
|
||||||
|
.colors-dark input[type="url"],
|
||||||
|
.colors-dark input[type="password"],
|
||||||
|
.colors-dark input[type="search"],
|
||||||
|
.colors-dark input[type="number"],
|
||||||
|
.colors-dark input[type="tel"],
|
||||||
|
.colors-dark input[type="range"],
|
||||||
|
.colors-dark input[type="date"],
|
||||||
|
.colors-dark input[type="month"],
|
||||||
|
.colors-dark input[type="week"],
|
||||||
|
.colors-dark input[type="time"],
|
||||||
|
.colors-dark input[type="datetime"],
|
||||||
|
.colors-dark input[type="datetime-local"],
|
||||||
|
.colors-dark input[type="color"],
|
||||||
|
.colors-dark textarea,
|
||||||
|
.colors-dark select,
|
||||||
|
.colors-dark fieldset,
|
||||||
|
.colors-dark .widget .tagcloud a:hover,
|
||||||
|
.colors-dark .widget .tagcloud a:focus,
|
||||||
|
.colors-dark .widget.widget_tag_cloud a:hover,
|
||||||
|
.colors-dark .widget.widget_tag_cloud a:focus,
|
||||||
|
.colors-dark .wp_widget_tag_cloud a:hover,
|
||||||
|
.colors-dark .wp_widget_tag_cloud a:focus {
|
||||||
|
border-color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark button.secondary,
|
||||||
|
.colors-dark input[type="reset"],
|
||||||
|
.colors-dark input[type="button"].secondary,
|
||||||
|
.colors-dark input[type="reset"].secondary,
|
||||||
|
.colors-dark input[type="submit"].secondary,
|
||||||
|
.colors-dark .prev.page-numbers,
|
||||||
|
.colors-dark .next.page-numbers {
|
||||||
|
background-color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .widget .tagcloud a,
|
||||||
|
.colors-dark .widget.widget_tag_cloud a,
|
||||||
|
.colors-dark .wp_widget_tag_cloud a {
|
||||||
|
border-color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark.twentyseventeen-front-page article:not(.has-post-thumbnail):not(:first-child),
|
||||||
|
.colors-dark .widget ul li {
|
||||||
|
border-top-color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .widget ul li {
|
||||||
|
border-bottom-color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark pre,
|
||||||
|
.colors-dark mark,
|
||||||
|
.colors-dark ins,
|
||||||
|
.colors-dark input[type="text"],
|
||||||
|
.colors-dark input[type="email"],
|
||||||
|
.colors-dark input[type="url"],
|
||||||
|
.colors-dark input[type="password"],
|
||||||
|
.colors-dark input[type="search"],
|
||||||
|
.colors-dark input[type="number"],
|
||||||
|
.colors-dark input[type="tel"],
|
||||||
|
.colors-dark input[type="range"],
|
||||||
|
.colors-dark input[type="date"],
|
||||||
|
.colors-dark input[type="month"],
|
||||||
|
.colors-dark input[type="week"],
|
||||||
|
.colors-dark input[type="time"],
|
||||||
|
.colors-dark input[type="datetime"],
|
||||||
|
.colors-dark input[type="datetime-local"],
|
||||||
|
.colors-dark input[type="color"],
|
||||||
|
.colors-dark textarea,
|
||||||
|
.colors-dark select,
|
||||||
|
.colors-dark fieldset {
|
||||||
|
background: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark tr,
|
||||||
|
.colors-dark thead th {
|
||||||
|
border-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .navigation-top,
|
||||||
|
.colors-dark .main-navigation > div > ul,
|
||||||
|
.colors-dark .pagination,
|
||||||
|
.colors-dark .comment-navigation,
|
||||||
|
.colors-dark .entry-footer,
|
||||||
|
.colors-dark .site-footer {
|
||||||
|
border-top-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .single-featured-image-header,
|
||||||
|
.colors-dark .navigation-top,
|
||||||
|
.colors-dark .main-navigation li,
|
||||||
|
.colors-dark .entry-footer,
|
||||||
|
.colors-dark #comments {
|
||||||
|
border-bottom-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .site-header,
|
||||||
|
.colors-dark .single-featured-image-header {
|
||||||
|
background-color: #262626;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark button,
|
||||||
|
.colors-dark input[type="button"],
|
||||||
|
.colors-dark input[type="submit"],
|
||||||
|
.colors-dark .prev.page-numbers:focus,
|
||||||
|
.colors-dark .prev.page-numbers:hover,
|
||||||
|
.colors-dark .next.page-numbers:focus,
|
||||||
|
.colors-dark .next.page-numbers:hover {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.colors-dark,
|
||||||
|
.colors-dark .site-content-contain,
|
||||||
|
.colors-dark .navigation-top,
|
||||||
|
.colors-dark .main-navigation ul {
|
||||||
|
background: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-title a,
|
||||||
|
.colors-dark .entry-meta a,
|
||||||
|
.colors-dark.blog .entry-meta a.post-edit-link,
|
||||||
|
.colors-dark.archive .entry-meta a.post-edit-link,
|
||||||
|
.colors-dark.search .entry-meta a.post-edit-link,
|
||||||
|
.colors-dark .page-links a,
|
||||||
|
.colors-dark .page-links a .page-number,
|
||||||
|
.colors-dark .entry-footer a,
|
||||||
|
.colors-dark .entry-footer .cat-links a,
|
||||||
|
.colors-dark .entry-footer .tags-links a,
|
||||||
|
.colors-dark .edit-link a,
|
||||||
|
.colors-dark .post-navigation a,
|
||||||
|
.colors-dark .logged-in-as a,
|
||||||
|
.colors-dark .comment-navigation a,
|
||||||
|
.colors-dark .comment-metadata a,
|
||||||
|
.colors-dark .comment-metadata a.comment-edit-link,
|
||||||
|
.colors-dark .comment-reply-link,
|
||||||
|
.colors-dark a .nav-title,
|
||||||
|
.colors-dark .pagination a,
|
||||||
|
.colors-dark .comments-pagination a,
|
||||||
|
.colors-dark .widget .widget-title a,
|
||||||
|
.colors-dark .widget ul li a,
|
||||||
|
.colors-dark .site-footer .widget-area ul li a,
|
||||||
|
.colors-dark .site-info a {
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(34, 34, 34, 1); /* Equivalant to #222 */
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(34, 34, 34, 1); /* Equivalant to #222 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fixes linked images */
|
||||||
|
.colors-dark .entry-content a img,
|
||||||
|
.colors-dark .comment-content a img,
|
||||||
|
.colors-dark .widget a img {
|
||||||
|
-webkit-box-shadow: 0 0 0 8px #222;
|
||||||
|
box-shadow: 0 0 0 8px #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .entry-footer .edit-link a.post-edit-link {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .menu-toggle,
|
||||||
|
.colors-dark .menu-toggle:hover,
|
||||||
|
.colors-dark .menu-toggle:focus,
|
||||||
|
.colors-dark .dropdown-toggle,
|
||||||
|
.colors-dark .dropdown-toggle:hover,
|
||||||
|
.colors-dark .dropdown-toggle:focus,
|
||||||
|
.colors-dark .menu-scroll-down,
|
||||||
|
.colors-dark .menu-scroll-down:hover,
|
||||||
|
.colors-dark .menu-scroll-down:focus {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .gallery-item a,
|
||||||
|
.colors-dark .gallery-item a:hover,
|
||||||
|
.colors-dark .gallery-item a:focus,
|
||||||
|
.colors-dark .widget .tagcloud a,
|
||||||
|
.colors-dark .widget .tagcloud a:focus,
|
||||||
|
.colors-dark .widget .tagcloud a:hover,
|
||||||
|
.colors-dark .widget.widget_tag_cloud a,
|
||||||
|
.colors-dark .widget.widget_tag_cloud a:focus,
|
||||||
|
.colors-dark .widget.widget_tag_cloud a:hover,
|
||||||
|
.colors-dark .wp_widget_tag_cloud a,
|
||||||
|
.colors-dark .wp_widget_tag_cloud a:focus,
|
||||||
|
.colors-dark .wp_widget_tag_cloud a:hover,
|
||||||
|
.colors-dark .entry-footer .edit-link a.post-edit-link:focus,
|
||||||
|
.colors-dark .entry-footer .edit-link a.post-edit-link:hover {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 48em) {
|
||||||
|
|
||||||
|
.colors-dark .nav-links .nav-previous .nav-title .icon,
|
||||||
|
.colors-dark .nav-links .nav-next .nav-title .icon {
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .main-navigation li li:hover,
|
||||||
|
.colors-dark .main-navigation li li.focus {
|
||||||
|
background: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .menu-scroll-down {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .main-navigation ul ul {
|
||||||
|
border-color: #333;
|
||||||
|
background: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .main-navigation ul li.menu-item-has-children:before,
|
||||||
|
.colors-dark .main-navigation ul li.page_item_has_children:before {
|
||||||
|
border-bottom-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul li.menu-item-has-children:after,
|
||||||
|
.main-navigation ul li.page_item_has_children:after {
|
||||||
|
border-bottom-color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.colors-dark .main-navigation li li.focus > a,
|
||||||
|
.colors-dark .main-navigation li li:focus > a,
|
||||||
|
.colors-dark .main-navigation li li:hover > a,
|
||||||
|
.colors-dark .main-navigation li li a:hover,
|
||||||
|
.colors-dark .main-navigation li li a:focus,
|
||||||
|
.colors-dark .main-navigation li li.current_page_item a:hover,
|
||||||
|
.colors-dark .main-navigation li li.current-menu-item a:hover,
|
||||||
|
.colors-dark .main-navigation li li.current_page_item a:focus,
|
||||||
|
.colors-dark .main-navigation li li.current-menu-item a:focus {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
820
app/static/wp-content/themes/twentyseventeen/assets/css/editor-blocks.css
Executable file
|
@ -0,0 +1,820 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Seventeen
|
||||||
|
Description: Used to style blocks in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
>>> TABLE OF CONTENTS:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1.0 General Typography
|
||||||
|
2.0 General Block Settings
|
||||||
|
3.0 Blocks - Common Blocks
|
||||||
|
4.0 Blocks - Formatting
|
||||||
|
5.0 Blocks - Layout Elements
|
||||||
|
6.0 Blocks - Widgets
|
||||||
|
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
1.0 General Typography
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block,
|
||||||
|
.editor-default-block-appender textarea.editor-default-block-appender__content {
|
||||||
|
font-size: 15px;
|
||||||
|
font-size: 0.9375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-default-block-appender textarea.editor-default-block-appender__content {
|
||||||
|
font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
color: #333;
|
||||||
|
font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 30em) {
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-post-title__block .editor-post-title__input {
|
||||||
|
font-size: 26px;
|
||||||
|
font-size: 1.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h1 {
|
||||||
|
font-size: 30px;
|
||||||
|
font-size: 1.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h2 {
|
||||||
|
font-size: 26px;
|
||||||
|
font-size: 1.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h3 {
|
||||||
|
font-size: 22px;
|
||||||
|
font-size: 1.375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h4 {
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h5 {
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block h6 {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 48em) {
|
||||||
|
|
||||||
|
.edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-rich-text__tinymce.mce-content-body {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Arabic Font */
|
||||||
|
|
||||||
|
html[lang="ar"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: Tahoma, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="ar"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ar"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ar"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ar"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ar"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ar"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="fa-IR"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ur"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Chinese Font */
|
||||||
|
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "PingFang TC", "Helvetica Neue", Helvetica, STHeitiTC-Light, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="zh-CN"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "PingFang SC", "Helvetica Neue", Helvetica, STHeitiSC-Light, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor h1,
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor h2,
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor h3,
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor h4,
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor h5,
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Cyrillic Font */
|
||||||
|
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Devanagari Font */
|
||||||
|
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor .editor-block-list__block,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor h6,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Greek Font */
|
||||||
|
|
||||||
|
html[lang="el"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="el"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="el"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="el"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="el"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="el"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="el"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Gujarati Font */
|
||||||
|
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Hebrew Font */
|
||||||
|
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "Arial Hebrew", Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Japanese Font */
|
||||||
|
|
||||||
|
html[lang="ja"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="ja"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ja"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ja"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ja"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ja"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ja"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Korean font */
|
||||||
|
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
font-family: "Apple SD Gothic Neo", "Malgun Gothic", "Nanum Gothic", Dotum, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor h6 {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Thai Font */
|
||||||
|
|
||||||
|
html[lang="th"] .edit-post-visual-editor .editor-block-list__block {
|
||||||
|
line-height: 1.8;
|
||||||
|
font-family: "Sukhumvit Set", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="th"] .edit-post-visual-editor h1,
|
||||||
|
html[lang="th"] .edit-post-visual-editor h2,
|
||||||
|
html[lang="th"] .edit-post-visual-editor h3,
|
||||||
|
html[lang="th"] .edit-post-visual-editor h4,
|
||||||
|
html[lang="th"] .edit-post-visual-editor h5,
|
||||||
|
html[lang="th"] .edit-post-visual-editor h6 {
|
||||||
|
line-height: 1.65;
|
||||||
|
font-family: "Sukhumvit Set", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove letter-spacing for all non-latin alphabets */
|
||||||
|
|
||||||
|
html[lang="ar"] .edit-post-visual-editor *,
|
||||||
|
html[lang="ary"] .edit-post-visual-editor *,
|
||||||
|
html[lang="azb"] .edit-post-visual-editor *,
|
||||||
|
html[lang="haz"] .edit-post-visual-editor *,
|
||||||
|
html[lang="ps"] .edit-post-visual-editor *,
|
||||||
|
html[lang^="zh-"] .edit-post-visual-editor *,
|
||||||
|
html[lang="bg-BG"] .edit-post-visual-editor *,
|
||||||
|
html[lang="ru-RU"] .edit-post-visual-editor *,
|
||||||
|
html[lang="uk"] .edit-post-visual-editor *,
|
||||||
|
html[lang="bn-BD"] .edit-post-visual-editor *,
|
||||||
|
html[lang="hi-IN"] .edit-post-visual-editor *,
|
||||||
|
html[lang="mr-IN"] .edit-post-visual-editor *,
|
||||||
|
html[lang="el"] .edit-post-visual-editor *,
|
||||||
|
html[lang="gu-IN"] .edit-post-visual-editor *,
|
||||||
|
html[lang="he-IL"] .edit-post-visual-editor *,
|
||||||
|
html[lang="ja"] .edit-post-visual-editor *,
|
||||||
|
html[lang="ko-KR"] .edit-post-visual-editor *,
|
||||||
|
html[lang="th"] .edit-post-visual-editor * {
|
||||||
|
letter-spacing: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
2.0 General Block Settings
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Main column width */
|
||||||
|
|
||||||
|
.editor-styles-wrapper {
|
||||||
|
max-width: 100% !important; /* Override where editor-style.css is affecting this. */
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block {
|
||||||
|
max-width: 674px; /* Based on one-column post width; 644px + 30px to account for padding. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Alignments */
|
||||||
|
|
||||||
|
.edit-post-visual-editor .alignleft {
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor .alignright {
|
||||||
|
margin-left: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Link styles */
|
||||||
|
|
||||||
|
.edit-post-visual-editor a,
|
||||||
|
.editor-block-list__block a,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce a {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* List styles */
|
||||||
|
|
||||||
|
.edit-post-visual-editor ul:not(.wp-block-gallery),
|
||||||
|
.editor-block-list__block ul:not(.wp-block-gallery),
|
||||||
|
.block-library-list ul,
|
||||||
|
.edit-post-visual-editor ol,
|
||||||
|
.editor-block-list__block ol,
|
||||||
|
.block-library-list ol,
|
||||||
|
.block-library-list .editor-rich-text__tinymce {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor ul:not(.wp-block-gallery),
|
||||||
|
.editor-block-list__block ul:not(.wp-block-gallery),
|
||||||
|
.block-library-list ul {
|
||||||
|
list-style: disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor ol,
|
||||||
|
.editor-block-list__block ol,
|
||||||
|
.block-library-list ol {
|
||||||
|
list-style: decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor li > ul:not(.wp-block-gallery),
|
||||||
|
.editor-block-list__block li > ul:not(.wp-block-gallery),
|
||||||
|
.block-library-list li > ul:not(.wp-block-gallery),
|
||||||
|
.edit-post-visual-editor li > ol,
|
||||||
|
.editor-block-list__block li > ol,
|
||||||
|
.block-library-list li > ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-post-visual-editor li,
|
||||||
|
.editor-block-list__block li,
|
||||||
|
.block-library-list li {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .editor-styles-wrapper ul ul,
|
||||||
|
.rtl .editor-styles-wrapper ol ol,
|
||||||
|
.rtl .editor-styles-wrapper ul ol,
|
||||||
|
.rtl .editor-styles-wrapper ol ul {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce ul:not(.wp-block-gallery),
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce ol {
|
||||||
|
margin-left: 0;
|
||||||
|
padding-left: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .wp-block-freeform.block-library-rich-text__tinymce ul:not(.wp-block-gallery),
|
||||||
|
.rtl .wp-block-freeform.block-library-rich-text__tinymce ol {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quote styles */
|
||||||
|
|
||||||
|
.editor-block-list__block blockquote p {
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-block-list__block blockquote.alignright p,
|
||||||
|
.editor-block-list__block blockquote.alignleft p {
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-block-list__block blockquote cite {
|
||||||
|
display: block;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Caption styles*/
|
||||||
|
|
||||||
|
[class^="wp-block-"]:not(.wp-block-gallery) figcaption {
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl [class^="wp-block-"]:not(.wp-block-gallery) figcaption {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code styles */
|
||||||
|
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce code {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Table styles */
|
||||||
|
|
||||||
|
.rtl .editor-block-list__block th {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
3.0 Blocks - Common Blocks
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Paragraph */
|
||||||
|
|
||||||
|
.wp-block-paragraph.has-drop-cap:not(:focus)::first-letter {
|
||||||
|
font-size: 5em;
|
||||||
|
margin-top: 0.075em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-paragraph.has-background {
|
||||||
|
padding: 20px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Gallery */
|
||||||
|
|
||||||
|
.wp-block-gallery figcaption {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quote */
|
||||||
|
|
||||||
|
.wp-block-quote {
|
||||||
|
color: #666;
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
font-style: italic;
|
||||||
|
line-height: 1.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote:not(.is-large):not(.is-style-large) {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote .wp-block-quote__citation {
|
||||||
|
color: inherit;
|
||||||
|
display: block;
|
||||||
|
font-size: inherit;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignleft,
|
||||||
|
.wp-block-quote.alignright {
|
||||||
|
color: #666;
|
||||||
|
width: 48%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignleft p,
|
||||||
|
.wp-block-quote.alignright p,
|
||||||
|
.wp-block-quote.alignleft .wp-block-quote__citation,
|
||||||
|
.wp-block-quote.alignright .wp-block-quote__citation {
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignleft p:last-of-type,
|
||||||
|
.wp-block-quote.alignright p:last-of-type {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.is-large .wp-block-quote__citation,
|
||||||
|
.wp-block-quote.is-style-large .wp-block-quote__citation {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .wp-block-quote.is-large .wp-block-quote__citation,
|
||||||
|
.rtl .wp-block-quote.is-style-large .wp-block-quote__citation {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 30em) {
|
||||||
|
.wp-block-quote.alignleft p,
|
||||||
|
.wp-block-quote.alignright p,
|
||||||
|
.wp-block-quote.alignleft .wp-block-quote__citation,
|
||||||
|
.wp-block-quote.alignright .wp-block-quote__citation,
|
||||||
|
.wp-block-quote footer {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 48em) {
|
||||||
|
.wp-block-quote.alignleft p,
|
||||||
|
.wp-block-quote.alignright p,
|
||||||
|
.wp-block-quote.alignleft .wp-block-quote__citation,
|
||||||
|
.wp-block-quote.alignright .wp-block-quote__citation {
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignleft {
|
||||||
|
margin-left: -17.5%;
|
||||||
|
width: 48%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-quote.alignright {
|
||||||
|
margin-right: -17.5%;
|
||||||
|
width: 48%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* File */
|
||||||
|
|
||||||
|
.wp-block-file .wp-block-file__textlink {
|
||||||
|
-webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 1px 0 rgba(0, 0, 0, 1);
|
||||||
|
box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 1px 0 rgba(0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-file .wp-block-file__button {
|
||||||
|
background-color: #222;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
border-radius: 2px;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
font-weight: 800;
|
||||||
|
padding: 0.7em 2em;
|
||||||
|
-webkit-transition: background-color 0.2s ease-in-out;
|
||||||
|
transition: background-color 0.2s ease-in-out;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
4.0 Blocks - Formatting
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Code */
|
||||||
|
|
||||||
|
.editor-styles-wrapper .wp-block-code {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-styles-wrapper .wp-block-code code {
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Classic */
|
||||||
|
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce li,
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce p {
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-freeform.block-library-rich-text__tinymce blockquote {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pullquote */
|
||||||
|
|
||||||
|
.wp-block-pullquote {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-pullquote.alignleft blockquote > .editor-rich-text p,
|
||||||
|
.wp-block-pullquote.alignright blockquote > .editor-rich-text p {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.wp-block-pullquote .wp-block-pullquote__citation {
|
||||||
|
font-size: inherit;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Table */
|
||||||
|
|
||||||
|
table.wp-block-table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.wp-block-table thead th {
|
||||||
|
border: 0;
|
||||||
|
border-bottom: 2px solid #bbb;
|
||||||
|
padding-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.wp-block-table th {
|
||||||
|
padding: 0.4em;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.wp-block-table tr {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.wp-block-table th,
|
||||||
|
table.wp-block-table td {
|
||||||
|
border: 0;
|
||||||
|
padding: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.wp-block-table th:first-child,
|
||||||
|
table.wp-block-table td:first-child {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.wp-block-table th:last-child,
|
||||||
|
table.wp-block-table td:last-child {
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-table__cell-content {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl table.wp-block-table th,
|
||||||
|
.rtl table.wp-block-table td {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Verse */
|
||||||
|
|
||||||
|
.editor-styles-wrapper .wp-block-verse {
|
||||||
|
font-family: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
5.0 Blocks - Layout Elements
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Separator */
|
||||||
|
|
||||||
|
.edit-post-visual-editor .wp-block-separator {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons */
|
||||||
|
|
||||||
|
.wp-block-button .wp-block-button__link {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1.66;
|
||||||
|
margin-top: 2em;
|
||||||
|
padding: 0.7em 2em;
|
||||||
|
-webkit-transition: background-color 0.2s ease-in-out;
|
||||||
|
transition: background-color 0.2s ease-in-out;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-button .wp-block-button__link[data-is-placeholder-visible="true"] {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-button__link {
|
||||||
|
background-color: #222;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-style-outline .wp-block-button__link {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media & Text */
|
||||||
|
|
||||||
|
.wp-block-media-text *:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------
|
||||||
|
6.0 Blocks - Widgets
|
||||||
|
--------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Archives, Categories & Latest Posts */
|
||||||
|
|
||||||
|
[data-align="center"] .wp-block-archives ul,
|
||||||
|
[data-align="center"] .wp-block-categories ul,
|
||||||
|
[data-align="center"] .wp-block-latest-posts ul {
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Latest Comments */
|
||||||
|
|
||||||
|
.editor-block-list__block ol.wp-block-latest-comments > li:before {
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments article {
|
||||||
|
margin-bottom: 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments .avatar,
|
||||||
|
.wp-block-latest-comments__comment-avatar {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-meta {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
margin-bottom: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-block-list__block .wp-block-latest-comments__comment-meta a {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-latest-comments__comment-date {
|
||||||
|
color: #767676;
|
||||||
|
font-size: 10px;
|
||||||
|
font-size: 0.625rem;
|
||||||
|
font-weight: 800;
|
||||||
|
letter-spacing: 0.1818em;
|
||||||
|
margin-top: 0.4em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-block-list__block .wp-block-latest-comments__comment-excerpt p {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Latest Posts */
|
||||||
|
|
||||||
|
.edit-post-visual-editor .wp-block-latest-posts.is-grid {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
581
app/static/wp-content/themes/twentyseventeen/assets/css/editor-style.css
Executable file
|
@ -0,0 +1,581 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Seventeen
|
||||||
|
Description: Used to style the TinyMCE editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Table of Contents:
|
||||||
|
*
|
||||||
|
* 1.0 - Body
|
||||||
|
* 2.0 - Typography
|
||||||
|
* 3.0 - Elements
|
||||||
|
* 4.0 - Alignment
|
||||||
|
* 5.0 - Caption
|
||||||
|
* 6.0 - Galleries
|
||||||
|
* 7.0 - Media Elements
|
||||||
|
* 8.0 - RTL
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1.0 - Body
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #333;
|
||||||
|
margin: auto 20px;
|
||||||
|
max-width: 580px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2.0 - Typography
|
||||||
|
*/
|
||||||
|
|
||||||
|
body,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.66;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
clear: both;
|
||||||
|
line-height: 1.4;
|
||||||
|
margin: 0 0 0.75em;
|
||||||
|
padding: 1.5em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:first-child,
|
||||||
|
h2:first-child,
|
||||||
|
h3:first-child,
|
||||||
|
h4:first-child,
|
||||||
|
h5:first-child,
|
||||||
|
h6:first-child {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 24px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: #666;
|
||||||
|
font-size: 20px;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
color: #333;
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
color: #333;
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
color: #767676;
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
font-weight: 800;
|
||||||
|
letter-spacing: 0.15em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
color: #333;
|
||||||
|
font-size: 15px;
|
||||||
|
font-size: 0.9375rem;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dfn,
|
||||||
|
cite,
|
||||||
|
em,
|
||||||
|
i {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
color: #666;
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
font-style: italic;
|
||||||
|
line-height: 1.7;
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.alignleft,
|
||||||
|
blockquote.alignright {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
width: 34%;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background: #eee;
|
||||||
|
font-family: "Courier 10 Pitch", Courier, monospace;
|
||||||
|
font-size: 15px;
|
||||||
|
font-size: 0.9375rem;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin-bottom: 1.6em;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
tt,
|
||||||
|
var {
|
||||||
|
font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
|
||||||
|
font-size: 15px;
|
||||||
|
font-size: 0.9375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr,
|
||||||
|
acronym {
|
||||||
|
border-bottom: 1px dotted #666;
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark,
|
||||||
|
ins {
|
||||||
|
background: #eee;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
big {
|
||||||
|
font-size: 125%;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote,
|
||||||
|
q {
|
||||||
|
quotes: "" "";
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote:before,
|
||||||
|
blockquote:after,
|
||||||
|
q:before,
|
||||||
|
q:after {
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography for Thai Font */
|
||||||
|
|
||||||
|
html[lang="th"] h1,
|
||||||
|
html[lang="th"] h2,
|
||||||
|
html[lang="th"] h3,
|
||||||
|
html[lang="th"] h4,
|
||||||
|
html[lang="th"] h5,
|
||||||
|
html[lang="th"] h6 {
|
||||||
|
letter-spacing: 0;
|
||||||
|
line-height: 1.65;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[lang="th"] body,
|
||||||
|
html[lang="th"] button,
|
||||||
|
html[lang="th"] input,
|
||||||
|
html[lang="th"] select,
|
||||||
|
html[lang="th"] textarea {
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 3.0 - Elements
|
||||||
|
*/
|
||||||
|
|
||||||
|
hr {
|
||||||
|
background-color: #bbb;
|
||||||
|
border: 0;
|
||||||
|
height: 1px;
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol > li {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > ul,
|
||||||
|
li > ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin: 0 1.5em 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin: 0 0 1.5em;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead th {
|
||||||
|
border-bottom: 2px solid #bbb;
|
||||||
|
padding-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
padding: 0.4em;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr {
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
padding: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
th:first-child,
|
||||||
|
td:first-child {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
th:last-child,
|
||||||
|
td:last-child {
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 1);
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 1);
|
||||||
|
color: #222;
|
||||||
|
text-decoration: none;
|
||||||
|
-webkit-transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
|
||||||
|
transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
|
||||||
|
transition: color 80ms ease-in, box-shadow 130ms ease-in-out;
|
||||||
|
transition: color 80ms ease-in, box-shadow 130ms ease-in-out, -webkit-box-shadow 130ms ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:focus {
|
||||||
|
outline: thin dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover,
|
||||||
|
a:focus {
|
||||||
|
color: #000;
|
||||||
|
-webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
|
||||||
|
box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fixes linked images */
|
||||||
|
|
||||||
|
a img {
|
||||||
|
background: #fff;
|
||||||
|
-webkit-box-shadow: 0 0 0 6px #fff;
|
||||||
|
box-shadow: 0 0 0 6px #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 4.0 - Alignment
|
||||||
|
*/
|
||||||
|
|
||||||
|
img {
|
||||||
|
height: auto; /* Make sure images are scaled correctly. */
|
||||||
|
max-width: 100%; /* Adhere to container width. */
|
||||||
|
}
|
||||||
|
|
||||||
|
embed,
|
||||||
|
iframe,
|
||||||
|
object {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 5.0 - Caption
|
||||||
|
*/
|
||||||
|
|
||||||
|
.wp-caption {
|
||||||
|
color: #666;
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption img[class*="wp-image-"] {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-caption .wp-caption-text {
|
||||||
|
margin: 0.8075em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 6.0 - Galleries
|
||||||
|
*/
|
||||||
|
|
||||||
|
.gallery {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-item {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-item a,
|
||||||
|
.gallery-item a:hover,
|
||||||
|
.gallery-item a:focus {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
background: none;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-2 .gallery-item {
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-3 .gallery-item {
|
||||||
|
max-width: 33.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-4 .gallery-item {
|
||||||
|
max-width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-5 .gallery-item {
|
||||||
|
max-width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-6 .gallery-item {
|
||||||
|
max-width: 16.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-7 .gallery-item {
|
||||||
|
max-width: 14.28%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-8 .gallery-item {
|
||||||
|
max-width: 12.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-columns-9 .gallery-item {
|
||||||
|
max-width: 11.11%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-caption {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 7.0 - Media Elements
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mejs-container {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Audio Player */
|
||||||
|
|
||||||
|
.mejs-controls a.mejs-horizontal-volume-slider,
|
||||||
|
.mejs-controls a.mejs-horizontal-volume-slider:focus,
|
||||||
|
.mejs-controls a.mejs-horizontal-volume-slider:hover {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Playlist Color Overrides: Light */
|
||||||
|
|
||||||
|
.wp-playlist-light {
|
||||||
|
border-color: #eee;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-light .wp-playlist-current-item .wp-playlist-item-album {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-light .wp-playlist-current-item .wp-playlist-item-artist {
|
||||||
|
color: #767676;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-light .wp-playlist-item {
|
||||||
|
border-bottom: 1px dotted #eee;
|
||||||
|
-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
|
||||||
|
transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-light .wp-playlist-item:hover,
|
||||||
|
.wp-playlist-light .wp-playlist-item:focus {
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0);
|
||||||
|
background-color: #767676;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-light a.wp-playlist-caption:hover,
|
||||||
|
.wp-playlist-light .wp-playlist-item:hover a,
|
||||||
|
.wp-playlist-light .wp-playlist-item:focus a {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Playlist Color Overrides: Dark */
|
||||||
|
|
||||||
|
.wp-playlist-dark {
|
||||||
|
background: #222;
|
||||||
|
border-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .mejs-container .mejs-controls {
|
||||||
|
background-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .wp-playlist-caption {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .wp-playlist-current-item .wp-playlist-item-album {
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .wp-playlist-current-item .wp-playlist-item-artist {
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .wp-playlist-playing {
|
||||||
|
background-color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .wp-playlist-item {
|
||||||
|
border-bottom: 1px dotted #555;
|
||||||
|
-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
|
||||||
|
transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark .wp-playlist-item:hover,
|
||||||
|
.wp-playlist-dark .wp-playlist-item:focus {
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0);
|
||||||
|
background-color: #aaa;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-dark a.wp-playlist-caption:hover,
|
||||||
|
.wp-playlist-dark .wp-playlist-item:hover a,
|
||||||
|
.wp-playlist-dark .wp-playlist-item:focus a {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Playlist Style Overrides */
|
||||||
|
|
||||||
|
.wp-playlist {
|
||||||
|
padding: 0.625em 0.625em 0.3125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-current-item .wp-playlist-item-title {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-current-item .wp-playlist-item-album {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-current-item .wp-playlist-item-artist {
|
||||||
|
font-size: 10px;
|
||||||
|
font-size: 0.625rem;
|
||||||
|
font-weight: 800;
|
||||||
|
letter-spacing: 0.1818em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-item {
|
||||||
|
padding: 0 0.3125em;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-item:last-of-type {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-item a {
|
||||||
|
padding: 0.3125em 0;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-item a,
|
||||||
|
.wp-playlist-item a:focus,
|
||||||
|
.wp-playlist-item a:hover {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-playlist-item-length {
|
||||||
|
top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 8.0 - RTL
|
||||||
|
*/
|
||||||
|
|
||||||
|
.rtl th {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl ol > li:before {
|
||||||
|
left: auto;
|
||||||
|
right: -1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl li > ul,
|
||||||
|
.rtl li > ol {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .mejs-offscreen {
|
||||||
|
right: -10000px;
|
||||||
|
}
|
225
app/static/wp-content/themes/twentyseventeen/assets/css/ie8.css
Executable file
|
@ -0,0 +1,225 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Seventeen
|
||||||
|
Description: IE8 specific style.
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 30px;
|
||||||
|
font-size: 1.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2,
|
||||||
|
.page .panel-content .recent-posts .entry-title {
|
||||||
|
font-size: 26px;
|
||||||
|
font-size: 1.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 22px;
|
||||||
|
font-size: 1.375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 13px;
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 16px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: inherit; /* Make images fill their parent's space. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fixes linked images */
|
||||||
|
.entry-content a img,
|
||||||
|
.widget a img {
|
||||||
|
filter: progid:DXImageTransform.Microsoft.DropShadow(OffX=0, OffY=5, Color=#ffffff);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Layout */
|
||||||
|
|
||||||
|
.site-content {
|
||||||
|
padding: 6.5em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Site Branding */
|
||||||
|
|
||||||
|
.custom-header {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-header-image.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-image.home.blog .custom-header {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-header-media {
|
||||||
|
background-position: bottom center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-branding {
|
||||||
|
padding: 45px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-header-image.twentyseventeen-front-page .site-branding,
|
||||||
|
.has-header-image.home.blog .site-branding {
|
||||||
|
bottom: 0;
|
||||||
|
display: block;
|
||||||
|
left: 0;
|
||||||
|
height: auto;
|
||||||
|
padding-top: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-header-image .custom-header-media img {
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-size: 36px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-description {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Main Navigation */
|
||||||
|
|
||||||
|
.navigation-top {
|
||||||
|
background: #fff;
|
||||||
|
position: relative;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-toggle {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul#top-menu {
|
||||||
|
margin-bottom: -1px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-svg .dropdown-toggle {
|
||||||
|
padding: 0.25em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-svg .dropdown-toggle.toggled-on {
|
||||||
|
padding: 0.75em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-toggle .svg-fallback.icon-angle-down {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=1.2246467991473532e-16, M21=-1.2246467991473532e-16, M22=-1, SizingMethod='auto expand')";
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-toggle.toggled-on .svg-fallback.icon-angle-down {
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod='auto expand')";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Front Page */
|
||||||
|
|
||||||
|
.twentyseventeen-front-page.has-header-image .custom-header,
|
||||||
|
.blog.home.has-header-image .custom-header,
|
||||||
|
.panel-image {
|
||||||
|
height: 800px;
|
||||||
|
max-height: 800px;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twentyseventeen-front-page .custom-header-media,
|
||||||
|
.blog.home .custom-header-media {
|
||||||
|
background-position: center center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twentyseventeen-front-page.has-header-image .site-branding,
|
||||||
|
.home.blog.has-header-image .site-branding {
|
||||||
|
bottom: 20px;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page .panel-content .entry-title,
|
||||||
|
.page-title,
|
||||||
|
.page .entry-title {
|
||||||
|
font-size: 14px;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
font-weight: 700;
|
||||||
|
letter-spacing: 0.14em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Posts */
|
||||||
|
|
||||||
|
.blog .site-main > article,
|
||||||
|
.archive .site-main > article,
|
||||||
|
.search .site-main > article {
|
||||||
|
padding-bottom: 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
time.updated {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
time.published {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blog .entry-title {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-post .entry-title,
|
||||||
|
.page .entry-title,
|
||||||
|
.entry-meta + .entry-title {
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 400;
|
||||||
|
letter-spacing: normal;
|
||||||
|
padding-top: 0;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-footer .cat-links,
|
||||||
|
.entry-footer .tags-links {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol.children .children {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* RTL Styles */
|
||||||
|
|
||||||
|
.rtl .has-header-image.twentyseventeen-front-page .site-branding,
|
||||||
|
.rtl .has-header-image.home.blog .site-branding {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .entry-footer .cat-links,
|
||||||
|
.rtl .entry-footer .tags-links {
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl ol.children .children {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 2em;
|
||||||
|
}
|
43
app/static/wp-content/themes/twentyseventeen/assets/css/ie9.css
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Seventeen
|
||||||
|
Description: IE9 specific styles.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.has-header-image.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-video.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-image.home.blog .custom-header,
|
||||||
|
.has-header-video.home.blog .custom-header {
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-header-image .custom-header-media img,
|
||||||
|
.has-header-video .custom-header-media video,
|
||||||
|
.has-header-video .custom-header-media iframe {
|
||||||
|
min-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 30em) {
|
||||||
|
|
||||||
|
.has-header-image.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-video.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-image.home.blog .custom-header,
|
||||||
|
.has-header-video.home.blog .custom-header,
|
||||||
|
.twentyseventeen-front-page.has-header-image .custom-header-media,
|
||||||
|
.home.blog.has-header-image .custom-header-media,
|
||||||
|
.panel-image {
|
||||||
|
height: 700px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 48em) {
|
||||||
|
|
||||||
|
.has-header-image.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-video.twentyseventeen-front-page .custom-header,
|
||||||
|
.has-header-image.home.blog .custom-header,
|
||||||
|
.has-header-video.home.blog .custom-header,
|
||||||
|
.twentyseventeen-front-page.has-header-image .custom-header-media,
|
||||||
|
.home.blog.has-header-image .custom-header-media,
|
||||||
|
.panel-image {
|
||||||
|
height: 1000px;
|
||||||
|
}
|
||||||
|
}
|
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/coffee.jpg
Executable file
After Width: | Height: | Size: 115 KiB |
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/direct-light.jpg
Executable file
After Width: | Height: | Size: 213 KiB |
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/espresso.jpg
Executable file
After Width: | Height: | Size: 91 KiB |
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/header.jpg
Executable file
After Width: | Height: | Size: 112 KiB |
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg
Executable file
After Width: | Height: | Size: 168 KiB |
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/stripes.jpg
Executable file
After Width: | Height: | Size: 341 KiB |
162
app/static/wp-content/themes/twentyseventeen/assets/images/svg-icons.svg
Executable file
|
@ -0,0 +1,162 @@
|
||||||
|
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<symbol id="icon-behance" viewBox="0 0 37 32">
|
||||||
|
<path class="path1" d="M33 6.054h-9.125v2.214h9.125v-2.214zM28.5 13.661q-1.607 0-2.607 0.938t-1.107 2.545h7.286q-0.321-3.482-3.571-3.482zM28.786 24.107q1.125 0 2.179-0.571t1.357-1.554h3.946q-1.786 5.482-7.625 5.482-3.821 0-6.080-2.357t-2.259-6.196q0-3.714 2.33-6.17t6.009-2.455q2.464 0 4.295 1.214t2.732 3.196 0.902 4.429q0 0.304-0.036 0.839h-11.75q0 1.982 1.027 3.063t2.973 1.080zM4.946 23.214h5.286q3.661 0 3.661-2.982 0-3.214-3.554-3.214h-5.393v6.196zM4.946 13.625h5.018q1.393 0 2.205-0.652t0.813-2.027q0-2.571-3.393-2.571h-4.643v5.25zM0 4.536h10.607q1.554 0 2.768 0.25t2.259 0.848 1.607 1.723 0.563 2.75q0 3.232-3.071 4.696 2.036 0.571 3.071 2.054t1.036 3.643q0 1.339-0.438 2.438t-1.179 1.848-1.759 1.268-2.161 0.75-2.393 0.232h-10.911v-22.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-deviantart" viewBox="0 0 18 32">
|
||||||
|
<path class="path1" d="M18.286 5.411l-5.411 10.393 0.429 0.554h4.982v7.411h-9.054l-0.786 0.536-2.536 4.875-0.536 0.536h-5.375v-5.411l5.411-10.411-0.429-0.536h-4.982v-7.411h9.054l0.786-0.536 2.536-4.875 0.536-0.536h5.375v5.411z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-medium" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M10.661 7.518v20.946q0 0.446-0.223 0.759t-0.652 0.313q-0.304 0-0.589-0.143l-8.304-4.161q-0.375-0.179-0.634-0.598t-0.259-0.83v-20.357q0-0.357 0.179-0.607t0.518-0.25q0.25 0 0.786 0.268l9.125 4.571q0.054 0.054 0.054 0.089zM11.804 9.321l9.536 15.464-9.536-4.75v-10.714zM32 9.643v18.821q0 0.446-0.25 0.723t-0.679 0.277-0.839-0.232l-7.875-3.929zM31.946 7.5q0 0.054-4.58 7.491t-5.366 8.705l-6.964-11.321 5.786-9.411q0.304-0.5 0.929-0.5 0.25 0 0.464 0.107l9.661 4.821q0.071 0.036 0.071 0.107z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-slideshare" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M15.589 13.214q0 1.482-1.134 2.545t-2.723 1.063-2.723-1.063-1.134-2.545q0-1.5 1.134-2.554t2.723-1.054 2.723 1.054 1.134 2.554zM24.554 13.214q0 1.482-1.125 2.545t-2.732 1.063q-1.589 0-2.723-1.063t-1.134-2.545q0-1.5 1.134-2.554t2.723-1.054q1.607 0 2.732 1.054t1.125 2.554zM28.571 16.429v-11.911q0-1.554-0.571-2.205t-1.982-0.652h-19.857q-1.482 0-2.009 0.607t-0.527 2.25v12.018q0.768 0.411 1.58 0.714t1.446 0.5 1.446 0.33 1.268 0.196 1.25 0.071 1.045 0.009 1.009-0.036 0.795-0.036q1.214-0.018 1.696 0.482 0.107 0.107 0.179 0.161 0.464 0.446 1.089 0.911 0.125-1.625 2.107-1.554 0.089 0 0.652 0.027t0.768 0.036 0.813 0.018 0.946-0.018 0.973-0.080 1.089-0.152 1.107-0.241 1.196-0.348 1.205-0.482 1.286-0.616zM31.482 16.339q-2.161 2.661-6.643 4.5 1.5 5.089-0.411 8.304-1.179 2.018-3.268 2.643-1.857 0.571-3.25-0.268-1.536-0.911-1.464-2.929l-0.018-5.821v-0.018q-0.143-0.036-0.438-0.107t-0.42-0.089l-0.018 6.036q0.071 2.036-1.482 2.929-1.411 0.839-3.268 0.268-2.089-0.643-3.25-2.679-1.875-3.214-0.393-8.268-4.482-1.839-6.643-4.5-0.446-0.661-0.071-1.125t1.071 0.018q0.054 0.036 0.196 0.125t0.196 0.143v-12.393q0-1.286 0.839-2.196t2.036-0.911h22.446q1.196 0 2.036 0.911t0.839 2.196v12.393l0.375-0.268q0.696-0.482 1.071-0.018t-0.071 1.125z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-snapchat-ghost" viewBox="0 0 30 32">
|
||||||
|
<path class="path1" d="M15.143 2.286q2.393-0.018 4.295 1.223t2.92 3.438q0.482 1.036 0.482 3.196 0 0.839-0.161 3.411 0.25 0.125 0.5 0.125 0.321 0 0.911-0.241t0.911-0.241q0.518 0 1 0.321t0.482 0.821q0 0.571-0.563 0.964t-1.232 0.563-1.232 0.518-0.563 0.848q0 0.268 0.214 0.768 0.661 1.464 1.83 2.679t2.58 1.804q0.5 0.214 1.429 0.411 0.5 0.107 0.5 0.625 0 1.25-3.911 1.839-0.125 0.196-0.196 0.696t-0.25 0.83-0.589 0.33q-0.357 0-1.107-0.116t-1.143-0.116q-0.661 0-1.107 0.089-0.571 0.089-1.125 0.402t-1.036 0.679-1.036 0.723-1.357 0.598-1.768 0.241q-0.929 0-1.723-0.241t-1.339-0.598-1.027-0.723-1.036-0.679-1.107-0.402q-0.464-0.089-1.125-0.089-0.429 0-1.17 0.134t-1.045 0.134q-0.446 0-0.625-0.33t-0.25-0.848-0.196-0.714q-3.911-0.589-3.911-1.839 0-0.518 0.5-0.625 0.929-0.196 1.429-0.411 1.393-0.571 2.58-1.804t1.83-2.679q0.214-0.5 0.214-0.768 0-0.5-0.563-0.848t-1.241-0.527-1.241-0.563-0.563-0.938q0-0.482 0.464-0.813t0.982-0.33q0.268 0 0.857 0.232t0.946 0.232q0.321 0 0.571-0.125-0.161-2.536-0.161-3.393 0-2.179 0.482-3.214 1.143-2.446 3.071-3.536t4.714-1.125z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-yelp" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M13.804 23.554v2.268q-0.018 5.214-0.107 5.446-0.214 0.571-0.911 0.714-0.964 0.161-3.241-0.679t-2.902-1.589q-0.232-0.268-0.304-0.643-0.018-0.214 0.071-0.464 0.071-0.179 0.607-0.839t3.232-3.857q0.018 0 1.071-1.25 0.268-0.339 0.705-0.438t0.884 0.063q0.429 0.179 0.67 0.518t0.223 0.75zM11.143 19.071q-0.054 0.982-0.929 1.25l-2.143 0.696q-4.911 1.571-5.214 1.571-0.625-0.036-0.964-0.643-0.214-0.446-0.304-1.339-0.143-1.357 0.018-2.973t0.536-2.223 1-0.571q0.232 0 3.607 1.375 1.25 0.518 2.054 0.839l1.5 0.607q0.411 0.161 0.634 0.545t0.205 0.866zM25.893 24.375q-0.125 0.964-1.634 2.875t-2.42 2.268q-0.661 0.25-1.125-0.125-0.25-0.179-3.286-5.125l-0.839-1.375q-0.25-0.375-0.205-0.821t0.348-0.821q0.625-0.768 1.482-0.464 0.018 0.018 2.125 0.714 3.625 1.179 4.321 1.42t0.839 0.366q0.5 0.393 0.393 1.089zM13.893 13.089q0.089 1.821-0.964 2.179-1.036 0.304-2.036-1.268l-6.75-10.679q-0.143-0.625 0.339-1.107 0.732-0.768 3.705-1.598t4.009-0.563q0.714 0.179 0.875 0.804 0.054 0.321 0.393 5.455t0.429 6.777zM25.714 15.018q0.054 0.696-0.464 1.054-0.268 0.179-5.875 1.536-1.196 0.268-1.625 0.411l0.018-0.036q-0.411 0.107-0.821-0.071t-0.661-0.571q-0.536-0.839 0-1.554 0.018-0.018 1.339-1.821 2.232-3.054 2.679-3.643t0.607-0.696q0.5-0.339 1.161-0.036 0.857 0.411 2.196 2.384t1.446 2.991v0.054z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-vine" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M26.732 14.768v3.536q-1.804 0.411-3.536 0.411-1.161 2.429-2.955 4.839t-3.241 3.848-2.286 1.902q-1.429 0.804-2.893-0.054-0.5-0.304-1.080-0.777t-1.518-1.491-1.83-2.295-1.92-3.286-1.884-4.357-1.634-5.616-1.259-6.964h5.054q0.464 3.893 1.25 7.116t1.866 5.661 2.17 4.205 2.5 3.482q3.018-3.018 5.125-7.25-2.536-1.286-3.982-3.929t-1.446-5.946q0-3.429 1.857-5.616t5.071-2.188q3.179 0 4.875 1.884t1.696 5.313q0 2.839-1.036 5.107-0.125 0.018-0.348 0.054t-0.821 0.036-1.125-0.107-1.107-0.455-0.902-0.92q0.554-1.839 0.554-3.286 0-1.554-0.518-2.357t-1.411-0.804q-0.946 0-1.518 0.884t-0.571 2.509q0 3.321 1.875 5.241t4.768 1.92q1.107 0 2.161-0.25z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-vk" viewBox="0 0 35 32">
|
||||||
|
<path class="path1" d="M34.232 9.286q0.411 1.143-2.679 5.25-0.429 0.571-1.161 1.518-1.393 1.786-1.607 2.339-0.304 0.732 0.25 1.446 0.304 0.375 1.446 1.464h0.018l0.071 0.071q2.518 2.339 3.411 3.946 0.054 0.089 0.116 0.223t0.125 0.473-0.009 0.607-0.446 0.491-1.054 0.223l-4.571 0.071q-0.429 0.089-1-0.089t-0.929-0.393l-0.357-0.214q-0.536-0.375-1.25-1.143t-1.223-1.384-1.089-1.036-1.009-0.277q-0.054 0.018-0.143 0.063t-0.304 0.259-0.384 0.527-0.304 0.929-0.116 1.384q0 0.268-0.063 0.491t-0.134 0.33l-0.071 0.089q-0.321 0.339-0.946 0.393h-2.054q-1.268 0.071-2.607-0.295t-2.348-0.946-1.839-1.179-1.259-1.027l-0.446-0.429q-0.179-0.179-0.491-0.536t-1.277-1.625-1.893-2.696-2.188-3.768-2.33-4.857q-0.107-0.286-0.107-0.482t0.054-0.286l0.071-0.107q0.268-0.339 1.018-0.339l4.893-0.036q0.214 0.036 0.411 0.116t0.286 0.152l0.089 0.054q0.286 0.196 0.429 0.571 0.357 0.893 0.821 1.848t0.732 1.455l0.286 0.518q0.518 1.071 1 1.857t0.866 1.223 0.741 0.688 0.607 0.25 0.482-0.089q0.036-0.018 0.089-0.089t0.214-0.393 0.241-0.839 0.17-1.446 0-2.232q-0.036-0.714-0.161-1.304t-0.25-0.821l-0.107-0.214q-0.446-0.607-1.518-0.768-0.232-0.036 0.089-0.429 0.304-0.339 0.679-0.536 0.946-0.464 4.268-0.429 1.464 0.018 2.411 0.232 0.357 0.089 0.598 0.241t0.366 0.429 0.188 0.571 0.063 0.813-0.018 0.982-0.045 1.259-0.027 1.473q0 0.196-0.018 0.75t-0.009 0.857 0.063 0.723 0.205 0.696 0.402 0.438q0.143 0.036 0.304 0.071t0.464-0.196 0.679-0.616 0.929-1.196 1.214-1.92q1.071-1.857 1.911-4.018 0.071-0.179 0.179-0.313t0.196-0.188l0.071-0.054 0.089-0.045t0.232-0.054 0.357-0.009l5.143-0.036q0.696-0.089 1.143 0.045t0.554 0.295z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-search" viewBox="0 0 30 32">
|
||||||
|
<path class="path1" d="M20.571 14.857q0-3.304-2.348-5.652t-5.652-2.348-5.652 2.348-2.348 5.652 2.348 5.652 5.652 2.348 5.652-2.348 2.348-5.652zM29.714 29.714q0 0.929-0.679 1.607t-1.607 0.679q-0.964 0-1.607-0.679l-6.125-6.107q-3.196 2.214-7.125 2.214-2.554 0-4.884-0.991t-4.018-2.679-2.679-4.018-0.991-4.884 0.991-4.884 2.679-4.018 4.018-2.679 4.884-0.991 4.884 0.991 4.018 2.679 2.679 4.018 0.991 4.884q0 3.929-2.214 7.125l6.125 6.125q0.661 0.661 0.661 1.607z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-envelope-o" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M29.714 26.857v-13.714q-0.571 0.643-1.232 1.179-4.786 3.679-7.607 6.036-0.911 0.768-1.482 1.196t-1.545 0.866-1.83 0.438h-0.036q-0.857 0-1.83-0.438t-1.545-0.866-1.482-1.196q-2.821-2.357-7.607-6.036-0.661-0.536-1.232-1.179v13.714q0 0.232 0.17 0.402t0.402 0.17h26.286q0.232 0 0.402-0.17t0.17-0.402zM29.714 8.089v-0.438t-0.009-0.232-0.054-0.223-0.098-0.161-0.161-0.134-0.25-0.045h-26.286q-0.232 0-0.402 0.17t-0.17 0.402q0 3 2.625 5.071 3.446 2.714 7.161 5.661 0.107 0.089 0.625 0.527t0.821 0.67 0.795 0.563 0.902 0.491 0.768 0.161h0.036q0.357 0 0.768-0.161t0.902-0.491 0.795-0.563 0.821-0.67 0.625-0.527q3.714-2.946 7.161-5.661 0.964-0.768 1.795-2.063t0.83-2.348zM32 7.429v19.429q0 1.179-0.839 2.018t-2.018 0.839h-26.286q-1.179 0-2.018-0.839t-0.839-2.018v-19.429q0-1.179 0.839-2.018t2.018-0.839h26.286q1.179 0 2.018 0.839t0.839 2.018z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-close" viewBox="0 0 25 32">
|
||||||
|
<path class="path1" d="M23.179 23.607q0 0.714-0.5 1.214l-2.429 2.429q-0.5 0.5-1.214 0.5t-1.214-0.5l-5.25-5.25-5.25 5.25q-0.5 0.5-1.214 0.5t-1.214-0.5l-2.429-2.429q-0.5-0.5-0.5-1.214t0.5-1.214l5.25-5.25-5.25-5.25q-0.5-0.5-0.5-1.214t0.5-1.214l2.429-2.429q0.5-0.5 1.214-0.5t1.214 0.5l5.25 5.25 5.25-5.25q0.5-0.5 1.214-0.5t1.214 0.5l2.429 2.429q0.5 0.5 0.5 1.214t-0.5 1.214l-5.25 5.25 5.25 5.25q0.5 0.5 0.5 1.214z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-angle-down" viewBox="0 0 21 32">
|
||||||
|
<path class="path1" d="M19.196 13.143q0 0.232-0.179 0.411l-8.321 8.321q-0.179 0.179-0.411 0.179t-0.411-0.179l-8.321-8.321q-0.179-0.179-0.179-0.411t0.179-0.411l0.893-0.893q0.179-0.179 0.411-0.179t0.411 0.179l7.018 7.018 7.018-7.018q0.179-0.179 0.411-0.179t0.411 0.179l0.893 0.893q0.179 0.179 0.179 0.411z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-folder-open" viewBox="0 0 34 32">
|
||||||
|
<path class="path1" d="M33.554 17q0 0.554-0.554 1.179l-6 7.071q-0.768 0.911-2.152 1.545t-2.563 0.634h-19.429q-0.607 0-1.080-0.232t-0.473-0.768q0-0.554 0.554-1.179l6-7.071q0.768-0.911 2.152-1.545t2.563-0.634h19.429q0.607 0 1.080 0.232t0.473 0.768zM27.429 10.857v2.857h-14.857q-1.679 0-3.518 0.848t-2.929 2.134l-6.107 7.179q0-0.071-0.009-0.223t-0.009-0.223v-17.143q0-1.643 1.179-2.821t2.821-1.179h5.714q1.643 0 2.821 1.179t1.179 2.821v0.571h9.714q1.643 0 2.821 1.179t1.179 2.821z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-twitter" viewBox="0 0 30 32">
|
||||||
|
<path class="path1" d="M28.929 7.286q-1.196 1.75-2.893 2.982 0.018 0.25 0.018 0.75 0 2.321-0.679 4.634t-2.063 4.437-3.295 3.759-4.607 2.607-5.768 0.973q-4.839 0-8.857-2.589 0.625 0.071 1.393 0.071 4.018 0 7.161-2.464-1.875-0.036-3.357-1.152t-2.036-2.848q0.589 0.089 1.089 0.089 0.768 0 1.518-0.196-2-0.411-3.313-1.991t-1.313-3.67v-0.071q1.214 0.679 2.607 0.732-1.179-0.786-1.875-2.054t-0.696-2.75q0-1.571 0.786-2.911 2.161 2.661 5.259 4.259t6.634 1.777q-0.143-0.679-0.143-1.321 0-2.393 1.688-4.080t4.080-1.688q2.5 0 4.214 1.821 1.946-0.375 3.661-1.393-0.661 2.054-2.536 3.179 1.661-0.179 3.321-0.893z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-facebook" viewBox="0 0 19 32">
|
||||||
|
<path class="path1" d="M17.125 0.214v4.714h-2.804q-1.536 0-2.071 0.643t-0.536 1.929v3.375h5.232l-0.696 5.286h-4.536v13.554h-5.464v-13.554h-4.554v-5.286h4.554v-3.893q0-3.321 1.857-5.152t4.946-1.83q2.625 0 4.071 0.214z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-github" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M13.714 2.286q3.732 0 6.884 1.839t4.991 4.991 1.839 6.884q0 4.482-2.616 8.063t-6.759 4.955q-0.482 0.089-0.714-0.125t-0.232-0.536q0-0.054 0.009-1.366t0.009-2.402q0-1.732-0.929-2.536 1.018-0.107 1.83-0.321t1.679-0.696 1.446-1.188 0.946-1.875 0.366-2.688q0-2.125-1.411-3.679 0.661-1.625-0.143-3.643-0.5-0.161-1.446 0.196t-1.643 0.786l-0.679 0.429q-1.661-0.464-3.429-0.464t-3.429 0.464q-0.286-0.196-0.759-0.482t-1.491-0.688-1.518-0.241q-0.804 2.018-0.143 3.643-1.411 1.554-1.411 3.679 0 1.518 0.366 2.679t0.938 1.875 1.438 1.196 1.679 0.696 1.83 0.321q-0.696 0.643-0.875 1.839-0.375 0.179-0.804 0.268t-1.018 0.089-1.17-0.384-0.991-1.116q-0.339-0.571-0.866-0.929t-0.884-0.429l-0.357-0.054q-0.375 0-0.518 0.080t-0.089 0.205 0.161 0.25 0.232 0.214l0.125 0.089q0.393 0.179 0.777 0.679t0.563 0.911l0.179 0.411q0.232 0.679 0.786 1.098t1.196 0.536 1.241 0.125 0.991-0.063l0.411-0.071q0 0.679 0.009 1.58t0.009 0.973q0 0.321-0.232 0.536t-0.714 0.125q-4.143-1.375-6.759-4.955t-2.616-8.063q0-3.732 1.839-6.884t4.991-4.991 6.884-1.839zM5.196 21.982q0.054-0.125-0.125-0.214-0.179-0.054-0.232 0.036-0.054 0.125 0.125 0.214 0.161 0.107 0.232-0.036zM5.75 22.589q0.125-0.089-0.036-0.286-0.179-0.161-0.286-0.054-0.125 0.089 0.036 0.286 0.179 0.179 0.286 0.054zM6.286 23.393q0.161-0.125 0-0.339-0.143-0.232-0.304-0.107-0.161 0.089 0 0.321t0.304 0.125zM7.036 24.143q0.143-0.143-0.071-0.339-0.214-0.214-0.357-0.054-0.161 0.143 0.071 0.339 0.214 0.214 0.357 0.054zM8.054 24.589q0.054-0.196-0.232-0.286-0.268-0.071-0.339 0.125t0.232 0.268q0.268 0.107 0.339-0.107zM9.179 24.679q0-0.232-0.304-0.196-0.286 0-0.286 0.196 0 0.232 0.304 0.196 0.286 0 0.286-0.196zM10.214 24.5q-0.036-0.196-0.321-0.161-0.286 0.054-0.25 0.268t0.321 0.143 0.25-0.25z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-bars" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M27.429 24v2.286q0 0.464-0.339 0.804t-0.804 0.339h-25.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h25.143q0.464 0 0.804 0.339t0.339 0.804zM27.429 14.857v2.286q0 0.464-0.339 0.804t-0.804 0.339h-25.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h25.143q0.464 0 0.804 0.339t0.339 0.804zM27.429 5.714v2.286q0 0.464-0.339 0.804t-0.804 0.339h-25.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h25.143q0.464 0 0.804 0.339t0.339 0.804z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-google-plus" viewBox="0 0 41 32">
|
||||||
|
<path class="path1" d="M25.661 16.304q0 3.714-1.554 6.616t-4.429 4.536-6.589 1.634q-2.661 0-5.089-1.036t-4.179-2.786-2.786-4.179-1.036-5.089 1.036-5.089 2.786-4.179 4.179-2.786 5.089-1.036q5.107 0 8.768 3.429l-3.554 3.411q-2.089-2.018-5.214-2.018-2.196 0-4.063 1.107t-2.955 3.009-1.089 4.152 1.089 4.152 2.955 3.009 4.063 1.107q1.482 0 2.723-0.411t2.045-1.027 1.402-1.402 0.875-1.482 0.384-1.321h-7.429v-4.5h12.357q0.214 1.125 0.214 2.179zM41.143 14.125v3.75h-3.732v3.732h-3.75v-3.732h-3.732v-3.75h3.732v-3.732h3.75v3.732h3.732z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-linkedin" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M6.232 11.161v17.696h-5.893v-17.696h5.893zM6.607 5.696q0.018 1.304-0.902 2.179t-2.42 0.875h-0.036q-1.464 0-2.357-0.875t-0.893-2.179q0-1.321 0.92-2.188t2.402-0.866 2.375 0.866 0.911 2.188zM27.429 18.714v10.143h-5.875v-9.464q0-1.875-0.723-2.938t-2.259-1.063q-1.125 0-1.884 0.616t-1.134 1.527q-0.196 0.536-0.196 1.446v9.875h-5.875q0.036-7.125 0.036-11.554t-0.018-5.286l-0.018-0.857h5.875v2.571h-0.036q0.357-0.571 0.732-1t1.009-0.929 1.554-0.777 2.045-0.277q3.054 0 4.911 2.027t1.857 5.938z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-quote-right" viewBox="0 0 30 32">
|
||||||
|
<path class="path1" d="M13.714 5.714v12.571q0 1.857-0.723 3.545t-1.955 2.92-2.92 1.955-3.545 0.723h-1.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h1.143q1.893 0 3.232-1.339t1.339-3.232v-0.571q0-0.714-0.5-1.214t-1.214-0.5h-4q-1.429 0-2.429-1t-1-2.429v-6.857q0-1.429 1-2.429t2.429-1h6.857q1.429 0 2.429 1t1 2.429zM29.714 5.714v12.571q0 1.857-0.723 3.545t-1.955 2.92-2.92 1.955-3.545 0.723h-1.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h1.143q1.893 0 3.232-1.339t1.339-3.232v-0.571q0-0.714-0.5-1.214t-1.214-0.5h-4q-1.429 0-2.429-1t-1-2.429v-6.857q0-1.429 1-2.429t2.429-1h6.857q1.429 0 2.429 1t1 2.429z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-mail-reply" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M32 20q0 2.964-2.268 8.054-0.054 0.125-0.188 0.429t-0.241 0.536-0.232 0.393q-0.214 0.304-0.5 0.304-0.268 0-0.42-0.179t-0.152-0.446q0-0.161 0.045-0.473t0.045-0.42q0.089-1.214 0.089-2.196 0-1.804-0.313-3.232t-0.866-2.473-1.429-1.804-1.884-1.241-2.375-0.759-2.75-0.384-3.134-0.107h-4v4.571q0 0.464-0.339 0.804t-0.804 0.339-0.804-0.339l-9.143-9.143q-0.339-0.339-0.339-0.804t0.339-0.804l9.143-9.143q0.339-0.339 0.804-0.339t0.804 0.339 0.339 0.804v4.571h4q12.732 0 15.625 7.196 0.946 2.393 0.946 5.946z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-youtube" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M17.339 22.214v3.768q0 1.196-0.696 1.196-0.411 0-0.804-0.393v-5.375q0.393-0.393 0.804-0.393 0.696 0 0.696 1.196zM23.375 22.232v0.821h-1.607v-0.821q0-1.214 0.804-1.214t0.804 1.214zM6.125 18.339h1.911v-1.679h-5.571v1.679h1.875v10.161h1.786v-10.161zM11.268 28.5h1.589v-8.821h-1.589v6.75q-0.536 0.75-1.018 0.75-0.321 0-0.375-0.375-0.018-0.054-0.018-0.625v-6.5h-1.589v6.982q0 0.875 0.143 1.304 0.214 0.661 1.036 0.661 0.857 0 1.821-1.089v0.964zM18.929 25.857v-3.518q0-1.304-0.161-1.768-0.304-1-1.268-1-0.893 0-1.661 0.964v-3.875h-1.589v11.839h1.589v-0.857q0.804 0.982 1.661 0.982 0.964 0 1.268-0.982 0.161-0.482 0.161-1.786zM24.964 25.679v-0.232h-1.625q0 0.911-0.036 1.089-0.125 0.643-0.714 0.643-0.821 0-0.821-1.232v-1.554h3.196v-1.839q0-1.411-0.482-2.071-0.696-0.911-1.893-0.911-1.214 0-1.911 0.911-0.5 0.661-0.5 2.071v3.089q0 1.411 0.518 2.071 0.696 0.911 1.929 0.911 1.286 0 1.929-0.946 0.321-0.482 0.375-0.964 0.036-0.161 0.036-1.036zM14.107 9.375v-3.75q0-1.232-0.768-1.232t-0.768 1.232v3.75q0 1.25 0.768 1.25t0.768-1.25zM26.946 22.786q0 4.179-0.464 6.25-0.25 1.054-1.036 1.768t-1.821 0.821q-3.286 0.375-9.911 0.375t-9.911-0.375q-1.036-0.107-1.83-0.821t-1.027-1.768q-0.464-2-0.464-6.25 0-4.179 0.464-6.25 0.25-1.054 1.036-1.768t1.839-0.839q3.268-0.357 9.893-0.357t9.911 0.357q1.036 0.125 1.83 0.839t1.027 1.768q0.464 2 0.464 6.25zM9.125 0h1.821l-2.161 7.125v4.839h-1.786v-4.839q-0.25-1.321-1.089-3.786-0.661-1.839-1.161-3.339h1.893l1.268 4.696zM15.732 5.946v3.125q0 1.446-0.5 2.107-0.661 0.911-1.893 0.911-1.196 0-1.875-0.911-0.5-0.679-0.5-2.107v-3.125q0-1.429 0.5-2.089 0.679-0.911 1.875-0.911 1.232 0 1.893 0.911 0.5 0.661 0.5 2.089zM21.714 3.054v8.911h-1.625v-0.982q-0.946 1.107-1.839 1.107-0.821 0-1.054-0.661-0.143-0.429-0.143-1.339v-7.036h1.625v6.554q0 0.589 0.018 0.625 0.054 0.393 0.375 0.393 0.482 0 1.018-0.768v-6.804h1.625z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-dropbox" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M7.179 12.625l8.821 5.446-6.107 5.089-8.75-5.696zM24.786 22.536v1.929l-8.75 5.232v0.018l-0.018-0.018-0.018 0.018v-0.018l-8.732-5.232v-1.929l2.625 1.714 6.107-5.071v-0.036l0.018 0.018 0.018-0.018v0.036l6.125 5.071zM9.893 2.107l6.107 5.089-8.821 5.429-6.036-4.821zM24.821 12.625l6.036 4.839-8.732 5.696-6.125-5.089zM22.125 2.107l8.732 5.696-6.036 4.821-8.821-5.429z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-instagram" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M18.286 16q0-1.893-1.339-3.232t-3.232-1.339-3.232 1.339-1.339 3.232 1.339 3.232 3.232 1.339 3.232-1.339 1.339-3.232zM20.75 16q0 2.929-2.054 4.982t-4.982 2.054-4.982-2.054-2.054-4.982 2.054-4.982 4.982-2.054 4.982 2.054 2.054 4.982zM22.679 8.679q0 0.679-0.482 1.161t-1.161 0.482-1.161-0.482-0.482-1.161 0.482-1.161 1.161-0.482 1.161 0.482 0.482 1.161zM13.714 4.75q-0.125 0-1.366-0.009t-1.884 0-1.723 0.054-1.839 0.179-1.277 0.33q-0.893 0.357-1.571 1.036t-1.036 1.571q-0.196 0.518-0.33 1.277t-0.179 1.839-0.054 1.723 0 1.884 0.009 1.366-0.009 1.366 0 1.884 0.054 1.723 0.179 1.839 0.33 1.277q0.357 0.893 1.036 1.571t1.571 1.036q0.518 0.196 1.277 0.33t1.839 0.179 1.723 0.054 1.884 0 1.366-0.009 1.366 0.009 1.884 0 1.723-0.054 1.839-0.179 1.277-0.33q0.893-0.357 1.571-1.036t1.036-1.571q0.196-0.518 0.33-1.277t0.179-1.839 0.054-1.723 0-1.884-0.009-1.366 0.009-1.366 0-1.884-0.054-1.723-0.179-1.839-0.33-1.277q-0.357-0.893-1.036-1.571t-1.571-1.036q-0.518-0.196-1.277-0.33t-1.839-0.179-1.723-0.054-1.884 0-1.366 0.009zM27.429 16q0 4.089-0.089 5.661-0.179 3.714-2.214 5.75t-5.75 2.214q-1.571 0.089-5.661 0.089t-5.661-0.089q-3.714-0.179-5.75-2.214t-2.214-5.75q-0.089-1.571-0.089-5.661t0.089-5.661q0.179-3.714 2.214-5.75t5.75-2.214q1.571-0.089 5.661-0.089t5.661 0.089q3.714 0.179 5.75 2.214t2.214 5.75q0.089 1.571 0.089 5.661z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-flickr" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M22.286 2.286q2.125 0 3.634 1.509t1.509 3.634v17.143q0 2.125-1.509 3.634t-3.634 1.509h-17.143q-2.125 0-3.634-1.509t-1.509-3.634v-17.143q0-2.125 1.509-3.634t3.634-1.509h17.143zM12.464 16q0-1.571-1.107-2.679t-2.679-1.107-2.679 1.107-1.107 2.679 1.107 2.679 2.679 1.107 2.679-1.107 1.107-2.679zM22.536 16q0-1.571-1.107-2.679t-2.679-1.107-2.679 1.107-1.107 2.679 1.107 2.679 2.679 1.107 2.679-1.107 1.107-2.679z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-tumblr" viewBox="0 0 19 32">
|
||||||
|
<path class="path1" d="M16.857 23.732l1.429 4.232q-0.411 0.625-1.982 1.179t-3.161 0.571q-1.857 0.036-3.402-0.464t-2.545-1.321-1.696-1.893-0.991-2.143-0.295-2.107v-9.714h-3v-3.839q1.286-0.464 2.304-1.241t1.625-1.607 1.036-1.821 0.607-1.768 0.268-1.58q0.018-0.089 0.080-0.152t0.134-0.063h4.357v7.571h5.946v4.5h-5.964v9.25q0 0.536 0.116 1t0.402 0.938 0.884 0.741 1.455 0.25q1.393-0.036 2.393-0.518z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-dockerhub" viewBox="0 0 24 28">
|
||||||
|
<path class="path1" d="M1.597 10.257h2.911v2.83H1.597v-2.83zm3.573 0h2.91v2.83H5.17v-2.83zm0-3.627h2.91v2.829H5.17V6.63zm3.57 3.627h2.912v2.83H8.74v-2.83zm0-3.627h2.912v2.829H8.74V6.63zm3.573 3.627h2.911v2.83h-2.911v-2.83zm0-3.627h2.911v2.829h-2.911V6.63zm3.572 3.627h2.911v2.83h-2.911v-2.83zM12.313 3h2.911v2.83h-2.911V3zm-6.65 14.173c-.449 0-.812.354-.812.788 0 .435.364.788.812.788.447 0 .811-.353.811-.788 0-.434-.363-.788-.811-.788"></path>
|
||||||
|
<path class="path2" d="M28.172 11.721c-.978-.549-2.278-.624-3.388-.306-.136-1.146-.91-2.149-1.83-2.869l-.366-.286-.307.345c-.618.692-.8 1.845-.718 2.73.063.651.273 1.312.685 1.834-.313.183-.668.328-.985.434-.646.212-1.347.33-2.028.33H.083l-.042.429c-.137 1.432.065 2.866.674 4.173l.262.519.03.048c1.8 2.973 4.963 4.225 8.41 4.225 6.672 0 12.174-2.896 14.702-9.015 1.689.085 3.417-.4 4.243-1.968l.211-.4-.401-.223zM5.664 19.458c-.85 0-1.542-.671-1.542-1.497 0-.825.691-1.498 1.541-1.498.849 0 1.54.672 1.54 1.497s-.69 1.498-1.539 1.498z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-dribbble" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M18.286 26.786q-0.75-4.304-2.5-8.893h-0.036l-0.036 0.018q-0.286 0.107-0.768 0.295t-1.804 0.875-2.446 1.464-2.339 2.045-1.839 2.643l-0.268-0.196q3.286 2.679 7.464 2.679 2.357 0 4.571-0.929zM14.982 15.946q-0.375-0.875-0.946-1.982-5.554 1.661-12.018 1.661-0.018 0.125-0.018 0.375 0 2.214 0.786 4.223t2.214 3.598q0.893-1.589 2.205-2.973t2.545-2.223 2.33-1.446 1.777-0.857l0.661-0.232q0.071-0.018 0.232-0.063t0.232-0.080zM13.071 12.161q-2.143-3.804-4.357-6.75-2.464 1.161-4.179 3.321t-2.286 4.857q5.393 0 10.821-1.429zM25.286 17.857q-3.75-1.071-7.304-0.518 1.554 4.268 2.286 8.375 1.982-1.339 3.304-3.384t1.714-4.473zM10.911 4.625q-0.018 0-0.036 0.018 0.018-0.018 0.036-0.018zM21.446 7.214q-3.304-2.929-7.732-2.929-1.357 0-2.768 0.339 2.339 3.036 4.393 6.821 1.232-0.464 2.321-1.080t1.723-1.098 1.17-1.018 0.67-0.723zM25.429 15.875q-0.054-4.143-2.661-7.321l-0.018 0.018q-0.161 0.214-0.339 0.438t-0.777 0.795-1.268 1.080-1.786 1.161-2.348 1.152q0.446 0.946 0.786 1.696 0.036 0.107 0.116 0.313t0.134 0.295q0.643-0.089 1.33-0.125t1.313-0.036 1.232 0.027 1.143 0.071 1.009 0.098 0.857 0.116 0.652 0.107 0.446 0.080zM27.429 16q0 3.732-1.839 6.884t-4.991 4.991-6.884 1.839-6.884-1.839-4.991-4.991-1.839-6.884 1.839-6.884 4.991-4.991 6.884-1.839 6.884 1.839 4.991 4.991 1.839 6.884z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-skype" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M20.946 18.982q0-0.893-0.348-1.634t-0.866-1.223-1.304-0.875-1.473-0.607-1.563-0.411l-1.857-0.429q-0.536-0.125-0.786-0.188t-0.625-0.205-0.536-0.286-0.295-0.375-0.134-0.536q0-1.375 2.571-1.375 0.768 0 1.375 0.214t0.964 0.509 0.679 0.598 0.714 0.518 0.857 0.214q0.839 0 1.348-0.571t0.509-1.375q0-0.982-1-1.777t-2.536-1.205-3.25-0.411q-1.214 0-2.357 0.277t-2.134 0.839-1.589 1.554-0.598 2.295q0 1.089 0.339 1.902t1 1.348 1.429 0.866 1.839 0.58l2.607 0.643q1.607 0.393 2 0.643 0.571 0.357 0.571 1.071 0 0.696-0.714 1.152t-1.875 0.455q-0.911 0-1.634-0.286t-1.161-0.688-0.813-0.804-0.821-0.688-0.964-0.286q-0.893 0-1.348 0.536t-0.455 1.339q0 1.643 2.179 2.813t5.196 1.17q1.304 0 2.5-0.33t2.188-0.955 1.58-1.67 0.589-2.348zM27.429 22.857q0 2.839-2.009 4.848t-4.848 2.009q-2.321 0-4.179-1.429-1.375 0.286-2.679 0.286-2.554 0-4.884-0.991t-4.018-2.679-2.679-4.018-0.991-4.884q0-1.304 0.286-2.679-1.429-1.857-1.429-4.179 0-2.839 2.009-4.848t4.848-2.009q2.321 0 4.179 1.429 1.375-0.286 2.679-0.286 2.554 0 4.884 0.991t4.018 2.679 2.679 4.018 0.991 4.884q0 1.304-0.286 2.679 1.429 1.857 1.429 4.179z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-foursquare" viewBox="0 0 23 32">
|
||||||
|
<path class="path1" d="M17.857 7.75l0.661-3.464q0.089-0.411-0.161-0.714t-0.625-0.304h-12.714q-0.411 0-0.688 0.304t-0.277 0.661v19.661q0 0.125 0.107 0.018l5.196-6.286q0.411-0.464 0.679-0.598t0.857-0.134h4.268q0.393 0 0.661-0.259t0.321-0.527q0.429-2.321 0.661-3.411 0.071-0.375-0.205-0.714t-0.652-0.339h-5.25q-0.518 0-0.857-0.339t-0.339-0.857v-0.75q0-0.518 0.339-0.848t0.857-0.33h6.179q0.321 0 0.625-0.241t0.357-0.527zM21.911 3.786q-0.268 1.304-0.955 4.759t-1.241 6.25-0.625 3.098q-0.107 0.393-0.161 0.58t-0.25 0.58-0.438 0.589-0.688 0.375-1.036 0.179h-4.839q-0.232 0-0.393 0.179-0.143 0.161-7.607 8.821-0.393 0.446-1.045 0.509t-0.866-0.098q-0.982-0.393-0.982-1.75v-25.179q0-0.982 0.679-1.83t2.143-0.848h15.857q1.696 0 2.268 0.946t0.179 2.839zM21.911 3.786l-2.821 14.107q0.071-0.304 0.625-3.098t1.241-6.25 0.955-4.759z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-wordpress" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M2.268 16q0-2.911 1.196-5.589l6.554 17.946q-3.5-1.696-5.625-5.018t-2.125-7.339zM25.268 15.304q0 0.339-0.045 0.688t-0.179 0.884-0.205 0.786-0.313 1.054-0.313 1.036l-1.357 4.571-4.964-14.75q0.821-0.054 1.571-0.143 0.339-0.036 0.464-0.33t-0.045-0.554-0.509-0.241l-3.661 0.179q-1.339-0.018-3.607-0.179-0.214-0.018-0.366 0.089t-0.205 0.268-0.027 0.33 0.161 0.295 0.348 0.143l1.429 0.143 2.143 5.857-3 9-5-14.857q0.821-0.054 1.571-0.143 0.339-0.036 0.464-0.33t-0.045-0.554-0.509-0.241l-3.661 0.179q-0.125 0-0.411-0.009t-0.464-0.009q1.875-2.857 4.902-4.527t6.563-1.67q2.625 0 5.009 0.946t4.259 2.661h-0.179q-0.982 0-1.643 0.723t-0.661 1.705q0 0.214 0.036 0.429t0.071 0.384 0.143 0.411 0.161 0.375 0.214 0.402 0.223 0.375 0.259 0.429 0.25 0.411q1.125 1.911 1.125 3.786zM16.232 17.196l4.232 11.554q0.018 0.107 0.089 0.196-2.25 0.786-4.554 0.786-2 0-3.875-0.571zM28.036 9.411q1.696 3.107 1.696 6.589 0 3.732-1.857 6.884t-4.982 4.973l4.196-12.107q1.054-3.018 1.054-4.929 0-0.75-0.107-1.411zM16 0q3.25 0 6.214 1.268t5.107 3.411 3.411 5.107 1.268 6.214-1.268 6.214-3.411 5.107-5.107 3.411-6.214 1.268-6.214-1.268-5.107-3.411-3.411-5.107-1.268-6.214 1.268-6.214 3.411-5.107 5.107-3.411 6.214-1.268zM16 31.268q3.089 0 5.92-1.214t4.875-3.259 3.259-4.875 1.214-5.92-1.214-5.92-3.259-4.875-4.875-3.259-5.92-1.214-5.92 1.214-4.875 3.259-3.259 4.875-1.214 5.92 1.214 5.92 3.259 4.875 4.875 3.259 5.92 1.214z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-stumbleupon" viewBox="0 0 34 32">
|
||||||
|
<path class="path1" d="M18.964 12.714v-2.107q0-0.75-0.536-1.286t-1.286-0.536-1.286 0.536-0.536 1.286v10.929q0 3.125-2.25 5.339t-5.411 2.214q-3.179 0-5.42-2.241t-2.241-5.42v-4.75h5.857v4.679q0 0.768 0.536 1.295t1.286 0.527 1.286-0.527 0.536-1.295v-11.071q0-3.054 2.259-5.214t5.384-2.161q3.143 0 5.393 2.179t2.25 5.25v2.429l-3.482 1.036zM28.429 16.679h5.857v4.75q0 3.179-2.241 5.42t-5.42 2.241q-3.161 0-5.411-2.223t-2.25-5.366v-4.786l2.339 1.089 3.482-1.036v4.821q0 0.75 0.536 1.277t1.286 0.527 1.286-0.527 0.536-1.277v-4.911z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-digg" viewBox="0 0 37 32">
|
||||||
|
<path class="path1" d="M5.857 5.036h3.643v17.554h-9.5v-12.446h5.857v-5.107zM5.857 19.661v-6.589h-2.196v6.589h2.196zM10.964 10.143v12.446h3.661v-12.446h-3.661zM10.964 5.036v3.643h3.661v-3.643h-3.661zM16.089 10.143h9.518v16.821h-9.518v-2.911h5.857v-1.464h-5.857v-12.446zM21.946 19.661v-6.589h-2.196v6.589h2.196zM27.071 10.143h9.5v16.821h-9.5v-2.911h5.839v-1.464h-5.839v-12.446zM32.911 19.661v-6.589h-2.196v6.589h2.196z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-spotify" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M20.125 21.607q0-0.571-0.536-0.911-3.446-2.054-7.982-2.054-2.375 0-5.125 0.607-0.75 0.161-0.75 0.929 0 0.357 0.241 0.616t0.634 0.259q0.089 0 0.661-0.143 2.357-0.482 4.339-0.482 4.036 0 7.089 1.839 0.339 0.196 0.589 0.196 0.339 0 0.589-0.241t0.25-0.616zM21.839 17.768q0-0.714-0.625-1.089-4.232-2.518-9.786-2.518-2.732 0-5.411 0.75-0.857 0.232-0.857 1.143 0 0.446 0.313 0.759t0.759 0.313q0.125 0 0.661-0.143 2.179-0.589 4.482-0.589 4.982 0 8.714 2.214 0.429 0.232 0.679 0.232 0.446 0 0.759-0.313t0.313-0.759zM23.768 13.339q0-0.839-0.714-1.25-2.25-1.304-5.232-1.973t-6.125-0.67q-3.643 0-6.5 0.839-0.411 0.125-0.688 0.455t-0.277 0.866q0 0.554 0.366 0.929t0.92 0.375q0.196 0 0.714-0.143 2.375-0.661 5.482-0.661 2.839 0 5.527 0.607t4.527 1.696q0.375 0.214 0.714 0.214 0.518 0 0.902-0.366t0.384-0.92zM27.429 16q0 3.732-1.839 6.884t-4.991 4.991-6.884 1.839-6.884-1.839-4.991-4.991-1.839-6.884 1.839-6.884 4.991-4.991 6.884-1.839 6.884 1.839 4.991 4.991 1.839 6.884z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-soundcloud" viewBox="0 0 41 32">
|
||||||
|
<path class="path1" d="M14 24.5l0.286-4.304-0.286-9.339q-0.018-0.179-0.134-0.304t-0.295-0.125q-0.161 0-0.286 0.125t-0.125 0.304l-0.25 9.339 0.25 4.304q0.018 0.179 0.134 0.295t0.277 0.116q0.393 0 0.429-0.411zM19.286 23.982l0.196-3.768-0.214-10.464q0-0.286-0.232-0.429-0.143-0.089-0.286-0.089t-0.286 0.089q-0.232 0.143-0.232 0.429l-0.018 0.107-0.179 10.339q0 0.018 0.196 4.214v0.018q0 0.179 0.107 0.304 0.161 0.196 0.411 0.196 0.196 0 0.357-0.161 0.161-0.125 0.161-0.357zM0.625 17.911l0.357 2.286-0.357 2.25q-0.036 0.161-0.161 0.161t-0.161-0.161l-0.304-2.25 0.304-2.286q0.036-0.161 0.161-0.161t0.161 0.161zM2.161 16.5l0.464 3.696-0.464 3.625q-0.036 0.161-0.179 0.161-0.161 0-0.161-0.179l-0.411-3.607 0.411-3.696q0-0.161 0.161-0.161 0.143 0 0.179 0.161zM3.804 15.821l0.446 4.375-0.446 4.232q0 0.196-0.196 0.196-0.179 0-0.214-0.196l-0.375-4.232 0.375-4.375q0.036-0.214 0.214-0.214 0.196 0 0.196 0.214zM5.482 15.696l0.411 4.5-0.411 4.357q-0.036 0.232-0.25 0.232-0.232 0-0.232-0.232l-0.375-4.357 0.375-4.5q0-0.232 0.232-0.232 0.214 0 0.25 0.232zM7.161 16.018l0.375 4.179-0.375 4.393q-0.036 0.286-0.286 0.286-0.107 0-0.188-0.080t-0.080-0.205l-0.357-4.393 0.357-4.179q0-0.107 0.080-0.188t0.188-0.080q0.25 0 0.286 0.268zM8.839 13.411l0.375 6.786-0.375 4.393q0 0.125-0.089 0.223t-0.214 0.098q-0.286 0-0.321-0.321l-0.321-4.393 0.321-6.786q0.036-0.321 0.321-0.321 0.125 0 0.214 0.098t0.089 0.223zM10.518 11.875l0.339 8.357-0.339 4.357q0 0.143-0.098 0.241t-0.241 0.098q-0.321 0-0.357-0.339l-0.286-4.357 0.286-8.357q0.036-0.339 0.357-0.339 0.143 0 0.241 0.098t0.098 0.241zM12.268 11.161l0.321 9.036-0.321 4.321q-0.036 0.375-0.393 0.375-0.339 0-0.375-0.375l-0.286-4.321 0.286-9.036q0-0.161 0.116-0.277t0.259-0.116q0.161 0 0.268 0.116t0.125 0.277zM19.268 24.411v0 0zM15.732 11.089l0.268 9.107-0.268 4.268q0 0.179-0.134 0.313t-0.313 0.134-0.304-0.125-0.143-0.321l-0.25-4.268 0.25-9.107q0-0.196 0.134-0.321t0.313-0.125 0.313 0.125 0.134 0.321zM17.5 11.429l0.25 8.786-0.25 4.214q0 0.196-0.143 0.339t-0.339 0.143-0.339-0.143-0.161-0.339l-0.214-4.214 0.214-8.786q0.018-0.214 0.161-0.357t0.339-0.143 0.33 0.143 0.152 0.357zM21.286 20.214l-0.25 4.125q0 0.232-0.161 0.393t-0.393 0.161-0.393-0.161-0.179-0.393l-0.107-2.036-0.107-2.089 0.214-11.357v-0.054q0.036-0.268 0.214-0.429 0.161-0.125 0.357-0.125 0.143 0 0.268 0.089 0.25 0.143 0.286 0.464zM41.143 19.875q0 2.089-1.482 3.563t-3.571 1.473h-14.036q-0.232-0.036-0.393-0.196t-0.161-0.393v-16.054q0-0.411 0.5-0.589 1.518-0.607 3.232-0.607 3.482 0 6.036 2.348t2.857 5.777q0.946-0.393 1.964-0.393 2.089 0 3.571 1.482t1.482 3.589z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-codepen" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M3.857 20.875l10.768 7.179v-6.411l-5.964-3.982zM2.75 18.304l3.446-2.304-3.446-2.304v4.607zM17.375 28.054l10.768-7.179-4.804-3.214-5.964 3.982v6.411zM16 19.25l4.857-3.25-4.857-3.25-4.857 3.25zM8.661 14.339l5.964-3.982v-6.411l-10.768 7.179zM25.804 16l3.446 2.304v-4.607zM23.339 14.339l4.804-3.214-10.768-7.179v6.411zM32 11.125v9.75q0 0.732-0.607 1.143l-14.625 9.75q-0.375 0.232-0.768 0.232t-0.768-0.232l-14.625-9.75q-0.607-0.411-0.607-1.143v-9.75q0-0.732 0.607-1.143l14.625-9.75q0.375-0.232 0.768-0.232t0.768 0.232l14.625 9.75q0.607 0.411 0.607 1.143z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-twitch" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M16 7.75v7.75h-2.589v-7.75h2.589zM23.107 7.75v7.75h-2.589v-7.75h2.589zM23.107 21.321l4.518-4.536v-14.196h-21.321v18.732h5.821v3.875l3.875-3.875h7.107zM30.214 0v18.089l-7.75 7.75h-5.821l-3.875 3.875h-3.875v-3.875h-7.107v-20.679l1.946-5.161h26.482z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-meanpath" viewBox="0 0 27 32">
|
||||||
|
<path class="path1" d="M23.411 15.036v2.036q0 0.429-0.241 0.679t-0.67 0.25h-3.607q-0.429 0-0.679-0.25t-0.25-0.679v-2.036q0-0.429 0.25-0.679t0.679-0.25h3.607q0.429 0 0.67 0.25t0.241 0.679zM14.661 19.143v-4.464q0-0.946-0.58-1.527t-1.527-0.58h-2.375q-1.214 0-1.714 0.929-0.5-0.929-1.714-0.929h-2.321q-0.946 0-1.527 0.58t-0.58 1.527v4.464q0 0.393 0.375 0.393h0.982q0.393 0 0.393-0.393v-4.107q0-0.429 0.241-0.679t0.688-0.25h1.679q0.429 0 0.679 0.25t0.25 0.679v4.107q0 0.393 0.375 0.393h0.964q0.393 0 0.393-0.393v-4.107q0-0.429 0.25-0.679t0.679-0.25h1.732q0.429 0 0.67 0.25t0.241 0.679v4.107q0 0.393 0.393 0.393h0.982q0.375 0 0.375-0.393zM25.179 17.429v-2.75q0-0.946-0.589-1.527t-1.536-0.58h-4.714q-0.946 0-1.536 0.58t-0.589 1.527v7.321q0 0.375 0.393 0.375h0.982q0.375 0 0.375-0.375v-3.214q0.554 0.75 1.679 0.75h3.411q0.946 0 1.536-0.58t0.589-1.527zM27.429 6.429v19.143q0 1.714-1.214 2.929t-2.929 1.214h-19.143q-1.714 0-2.929-1.214t-1.214-2.929v-19.143q0-1.714 1.214-2.929t2.929-1.214h19.143q1.714 0 2.929 1.214t1.214 2.929z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-pinterest-p" viewBox="0 0 23 32">
|
||||||
|
<path class="path1" d="M0 10.661q0-1.929 0.67-3.634t1.848-2.973 2.714-2.196 3.304-1.393 3.607-0.464q2.821 0 5.25 1.188t3.946 3.455 1.518 5.125q0 1.714-0.339 3.357t-1.071 3.161-1.786 2.67-2.589 1.839-3.375 0.688q-1.214 0-2.411-0.571t-1.714-1.571q-0.179 0.696-0.5 2.009t-0.42 1.696-0.366 1.268-0.464 1.268-0.571 1.116-0.821 1.384-1.107 1.545l-0.25 0.089-0.161-0.179q-0.268-2.804-0.268-3.357 0-1.643 0.384-3.688t1.188-5.134 0.929-3.625q-0.571-1.161-0.571-3.018 0-1.482 0.929-2.786t2.357-1.304q1.089 0 1.696 0.723t0.607 1.83q0 1.179-0.786 3.411t-0.786 3.339q0 1.125 0.804 1.866t1.946 0.741q0.982 0 1.821-0.446t1.402-1.214 1-1.696 0.679-1.973 0.357-1.982 0.116-1.777q0-3.089-1.955-4.813t-5.098-1.723q-3.571 0-5.964 2.313t-2.393 5.866q0 0.786 0.223 1.518t0.482 1.161 0.482 0.813 0.223 0.545q0 0.5-0.268 1.304t-0.661 0.804q-0.036 0-0.304-0.054-0.911-0.268-1.616-1t-1.089-1.688-0.58-1.929-0.196-1.902z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-periscope" viewBox="0 0 24 28">
|
||||||
|
<path class="path1" d="M12.285,1C6.696,1,2.277,5.643,2.277,11.243c0,5.851,7.77,14.578,10.007,14.578c1.959,0,9.729-8.728,9.729-14.578 C22.015,5.643,17.596,1,12.285,1z M12.317,16.551c-3.473,0-6.152-2.611-6.152-5.664c0-1.292,0.39-2.472,1.065-3.438 c0.206,1.084,1.18,1.906,2.352,1.906c1.322,0,2.393-1.043,2.393-2.333c0-0.832-0.447-1.561-1.119-1.975 c0.467-0.105,0.955-0.161,1.46-0.161c3.133,0,5.81,2.611,5.81,5.998C18.126,13.94,15.449,16.551,12.317,16.551z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-get-pocket" viewBox="0 0 31 32">
|
||||||
|
<path class="path1" d="M27.946 2.286q1.161 0 1.964 0.813t0.804 1.973v9.268q0 3.143-1.214 6t-3.259 4.911-4.893 3.259-5.973 1.205q-3.143 0-5.991-1.205t-4.902-3.259-3.268-4.911-1.214-6v-9.268q0-1.143 0.821-1.964t1.964-0.821h25.161zM15.375 21.286q0.839 0 1.464-0.589l7.214-6.929q0.661-0.625 0.661-1.518 0-0.875-0.616-1.491t-1.491-0.616q-0.839 0-1.464 0.589l-5.768 5.536-5.768-5.536q-0.625-0.589-1.446-0.589-0.875 0-1.491 0.616t-0.616 1.491q0 0.911 0.643 1.518l7.232 6.929q0.589 0.589 1.446 0.589z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-vimeo" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M30.518 9.25q-0.179 4.214-5.929 11.625-5.946 7.696-10.036 7.696-2.536 0-4.286-4.696-0.786-2.857-2.357-8.607-1.286-4.679-2.804-4.679-0.321 0-2.268 1.357l-1.375-1.75q0.429-0.375 1.929-1.723t2.321-2.063q2.786-2.464 4.304-2.607 1.696-0.161 2.732 0.991t1.446 3.634q0.786 5.125 1.179 6.661 0.982 4.446 2.143 4.446 0.911 0 2.75-2.875 1.804-2.875 1.946-4.393 0.232-2.482-1.946-2.482-1.018 0-2.161 0.464 2.143-7.018 8.196-6.821 4.482 0.143 4.214 5.821z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-reddit-alien" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M32 15.107q0 1.036-0.527 1.884t-1.42 1.295q0.214 0.821 0.214 1.714 0 2.768-1.902 5.125t-5.188 3.723-7.143 1.366-7.134-1.366-5.179-3.723-1.902-5.125q0-0.839 0.196-1.679-0.911-0.446-1.464-1.313t-0.554-1.902q0-1.464 1.036-2.509t2.518-1.045q1.518 0 2.589 1.125 3.893-2.714 9.196-2.893l2.071-9.304q0.054-0.232 0.268-0.375t0.464-0.089l6.589 1.446q0.321-0.661 0.964-1.063t1.411-0.402q1.107 0 1.893 0.777t0.786 1.884-0.786 1.893-1.893 0.786-1.884-0.777-0.777-1.884l-5.964-1.321-1.857 8.429q5.357 0.161 9.268 2.857 1.036-1.089 2.554-1.089 1.482 0 2.518 1.045t1.036 2.509zM7.464 18.661q0 1.107 0.777 1.893t1.884 0.786 1.893-0.786 0.786-1.893-0.786-1.884-1.893-0.777q-1.089 0-1.875 0.786t-0.786 1.875zM21.929 25q0.196-0.196 0.196-0.464t-0.196-0.464q-0.179-0.179-0.446-0.179t-0.464 0.179q-0.732 0.75-2.161 1.107t-2.857 0.357-2.857-0.357-2.161-1.107q-0.196-0.179-0.464-0.179t-0.446 0.179q-0.196 0.179-0.196 0.455t0.196 0.473q0.768 0.768 2.116 1.214t2.188 0.527 1.625 0.080 1.625-0.080 2.188-0.527 2.116-1.214zM21.875 21.339q1.107 0 1.884-0.786t0.777-1.893q0-1.089-0.786-1.875t-1.875-0.786q-1.107 0-1.893 0.777t-0.786 1.884 0.786 1.893 1.893 0.786z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-whatsapp" viewBox="0 0 32 32">
|
||||||
|
<path d="M15.968 2.003a14.03 13.978 0 0 0-14.03 13.978 14.03 13.978 0 0 0 2.132 7.391L1.938 29.96l6.745-2.052a14.03 13.978 0 0 0 7.285 2.052 14.03 13.978 0 0 0 14.03-13.978 14.03 13.978 0 0 0-14.03-13.978z" stroke-width=".2000562"/>
|
||||||
|
<path d="M10.454 8.236a2.57 3.401 51.533 0 0-1.475 3.184v.015c.01 2.04 4.045 10.076 10.017 12.688l.017-.013a2.57 3.401 51.533 0 0 3.454-.706 2.57 3.401 51.533 0 0 1.064-4.129 2.57 3.401 51.533 0 0-4.262.103 2.57 3.401 51.533 0 0-.505.473c-1.346-.639-2.952-1.463-4.168-2.98-.771-.962-1.257-2.732-1.549-4.206a2.57 3.401 51.533 0 0 .605-.403 2.57 3.401 51.533 0 0 1.064-4.129 2.57 3.401 51.533 0 0-4.262.103z" stroke-width=".372"/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-telegram" viewBox="0 0 32 32">
|
||||||
|
<path d="M30.8,2.2L0.6,13.9c-0.8,0.3-0.7,1.3,0,1.6l7.4,2.8l2.9,9.2c0.2,0.6,0.9,0.8,1.4,0.4l4.1-3.4 c0.4-0.4,1-0.4,1.5,0l7.4,5.4c0.5,0.4,1.2,0.1,1.4-0.5L32,3.2C32.1,2.5,31.4,1.9,30.8,2.2z M25,8.3l-11.9,11 c-0.4,0.4-0.7,0.9-0.8,1.5l-0.4,3c-0.1,0.4-0.6,0.4-0.7,0.1l-1.6-5.5c-0.2-0.6,0.1-1.3,0.6-1.6l14.4-8.9C25,7.7,25.3,8.1,25,8.3z"/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-hashtag" viewBox="0 0 32 32">
|
||||||
|
<path class="path1" d="M17.696 18.286l1.143-4.571h-4.536l-1.143 4.571h4.536zM31.411 9.286l-1 4q-0.125 0.429-0.554 0.429h-5.839l-1.143 4.571h5.554q0.268 0 0.446 0.214 0.179 0.25 0.107 0.5l-1 4q-0.089 0.429-0.554 0.429h-5.839l-1.446 5.857q-0.125 0.429-0.554 0.429h-4q-0.286 0-0.464-0.214-0.161-0.214-0.107-0.5l1.393-5.571h-4.536l-1.446 5.857q-0.125 0.429-0.554 0.429h-4.018q-0.268 0-0.446-0.214-0.161-0.214-0.107-0.5l1.393-5.571h-5.554q-0.268 0-0.446-0.214-0.161-0.214-0.107-0.5l1-4q0.125-0.429 0.554-0.429h5.839l1.143-4.571h-5.554q-0.268 0-0.446-0.214-0.179-0.25-0.107-0.5l1-4q0.089-0.429 0.554-0.429h5.839l1.446-5.857q0.125-0.429 0.571-0.429h4q0.268 0 0.446 0.214 0.161 0.214 0.107 0.5l-1.393 5.571h4.536l1.446-5.857q0.125-0.429 0.571-0.429h4q0.268 0 0.446 0.214 0.161 0.214 0.107 0.5l-1.393 5.571h5.554q0.268 0 0.446 0.214 0.161 0.214 0.107 0.5z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-chain" viewBox="0 0 30 32">
|
||||||
|
<path class="path1" d="M26 21.714q0-0.714-0.5-1.214l-3.714-3.714q-0.5-0.5-1.214-0.5-0.75 0-1.286 0.571 0.054 0.054 0.339 0.33t0.384 0.384 0.268 0.339 0.232 0.455 0.063 0.491q0 0.714-0.5 1.214t-1.214 0.5q-0.268 0-0.491-0.063t-0.455-0.232-0.339-0.268-0.384-0.384-0.33-0.339q-0.589 0.554-0.589 1.304 0 0.714 0.5 1.214l3.679 3.696q0.482 0.482 1.214 0.482 0.714 0 1.214-0.464l2.625-2.607q0.5-0.5 0.5-1.196zM13.446 9.125q0-0.714-0.5-1.214l-3.679-3.696q-0.5-0.5-1.214-0.5-0.696 0-1.214 0.482l-2.625 2.607q-0.5 0.5-0.5 1.196 0 0.714 0.5 1.214l3.714 3.714q0.482 0.482 1.214 0.482 0.75 0 1.286-0.554-0.054-0.054-0.339-0.33t-0.384-0.384-0.268-0.339-0.232-0.455-0.063-0.491q0-0.714 0.5-1.214t1.214-0.5q0.268 0 0.491 0.063t0.455 0.232 0.339 0.268 0.384 0.384 0.33 0.339q0.589-0.554 0.589-1.304zM29.429 21.714q0 2.143-1.518 3.625l-2.625 2.607q-1.482 1.482-3.625 1.482-2.161 0-3.643-1.518l-3.679-3.696q-1.482-1.482-1.482-3.625 0-2.196 1.571-3.732l-1.571-1.571q-1.536 1.571-3.714 1.571-2.143 0-3.643-1.5l-3.714-3.714q-1.5-1.5-1.5-3.643t1.518-3.625l2.625-2.607q1.482-1.482 3.625-1.482 2.161 0 3.643 1.518l3.679 3.696q1.482 1.482 1.482 3.625 0 2.196-1.571 3.732l1.571 1.571q1.536-1.571 3.714-1.571 2.143 0 3.643 1.5l3.714 3.714q1.5 1.5 1.5 3.643z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-thumb-tack" viewBox="0 0 21 32">
|
||||||
|
<path class="path1" d="M8.571 15.429v-8q0-0.25-0.161-0.411t-0.411-0.161-0.411 0.161-0.161 0.411v8q0 0.25 0.161 0.411t0.411 0.161 0.411-0.161 0.161-0.411zM20.571 21.714q0 0.464-0.339 0.804t-0.804 0.339h-7.661l-0.911 8.625q-0.036 0.214-0.188 0.366t-0.366 0.152h-0.018q-0.482 0-0.571-0.482l-1.357-8.661h-7.214q-0.464 0-0.804-0.339t-0.339-0.804q0-2.196 1.402-3.955t3.17-1.759v-9.143q-0.929 0-1.607-0.679t-0.679-1.607 0.679-1.607 1.607-0.679h11.429q0.929 0 1.607 0.679t0.679 1.607-0.679 1.607-1.607 0.679v9.143q1.768 0 3.17 1.759t1.402 3.955z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-arrow-left" viewBox="0 0 43 32">
|
||||||
|
<path class="path1" d="M42.311 14.044c-0.178-0.178-0.533-0.356-0.711-0.356h-33.778l10.311-10.489c0.178-0.178 0.356-0.533 0.356-0.711 0-0.356-0.178-0.533-0.356-0.711l-1.6-1.422c-0.356-0.178-0.533-0.356-0.889-0.356s-0.533 0.178-0.711 0.356l-14.578 14.933c-0.178 0.178-0.356 0.533-0.356 0.711s0.178 0.533 0.356 0.711l14.756 14.933c0 0.178 0.356 0.356 0.533 0.356s0.533-0.178 0.711-0.356l1.6-1.6c0.178-0.178 0.356-0.533 0.356-0.711s-0.178-0.533-0.356-0.711l-10.311-10.489h33.778c0.178 0 0.533-0.178 0.711-0.356 0.356-0.178 0.533-0.356 0.533-0.711v-2.133c0-0.356-0.178-0.711-0.356-0.889z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-arrow-right" viewBox="0 0 43 32">
|
||||||
|
<path class="path1" d="M0.356 17.956c0.178 0.178 0.533 0.356 0.711 0.356h33.778l-10.311 10.489c-0.178 0.178-0.356 0.533-0.356 0.711 0 0.356 0.178 0.533 0.356 0.711l1.6 1.6c0.178 0.178 0.533 0.356 0.711 0.356s0.533-0.178 0.711-0.356l14.756-14.933c0.178-0.356 0.356-0.711 0.356-0.889s-0.178-0.533-0.356-0.711l-14.756-14.933c0-0.178-0.356-0.356-0.533-0.356s-0.533 0.178-0.711 0.356l-1.6 1.6c-0.178 0.178-0.356 0.533-0.356 0.711s0.178 0.533 0.356 0.711l10.311 10.489h-33.778c-0.178 0-0.533 0.178-0.711 0.356-0.356 0.178-0.533 0.356-0.533 0.711v2.311c0 0.178 0.178 0.533 0.356 0.711z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-play" viewBox="0 0 22 28">
|
||||||
|
<path d="M21.625 14.484l-20.75 11.531c-0.484 0.266-0.875 0.031-0.875-0.516v-23c0-0.547 0.391-0.781 0.875-0.516l20.75 11.531c0.484 0.266 0.484 0.703 0 0.969z"></path>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-pause" viewBox="0 0 24 28">
|
||||||
|
<path d="M24 3v22c0 0.547-0.453 1-1 1h-8c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h8c0.547 0 1 0.453 1 1zM10 3v22c0 0.547-0.453 1-1 1h-8c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h8c0.547 0 1 0.453 1 1z"></path>
|
||||||
|
</symbol>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 43 KiB |
BIN
app/static/wp-content/themes/twentyseventeen/assets/images/white-border.jpg
Executable file
After Width: | Height: | Size: 152 KiB |
36
app/static/wp-content/themes/twentyseventeen/assets/js/customize-controls.js
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
/**
|
||||||
|
* Scripts within the customizer controls window.
|
||||||
|
*
|
||||||
|
* Contextually shows the color hue control and informs the preview
|
||||||
|
* when users open or close the front page sections section.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
wp.customize.bind( 'ready', function() {
|
||||||
|
|
||||||
|
// Only show the color hue control when there's a custom color scheme.
|
||||||
|
wp.customize( 'colorscheme', function( setting ) {
|
||||||
|
wp.customize.control( 'colorscheme_hue', function( control ) {
|
||||||
|
var visibility = function() {
|
||||||
|
if ( 'custom' === setting.get() ) {
|
||||||
|
control.container.slideDown( 180 );
|
||||||
|
} else {
|
||||||
|
control.container.slideUp( 180 );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
visibility();
|
||||||
|
setting.bind( visibility );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Detect when the front page sections section is expanded (or closed) so we can adjust the preview accordingly.
|
||||||
|
wp.customize.section( 'theme_options', function( section ) {
|
||||||
|
section.expanded.bind( function( isExpanding ) {
|
||||||
|
|
||||||
|
// Value of isExpanding will = true if you're entering the section, false if you're leaving it.
|
||||||
|
wp.customize.previewer.send( 'section-highlight', { expanded: isExpanding });
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
});
|
||||||
|
})();
|
150
app/static/wp-content/themes/twentyseventeen/assets/js/customize-preview.js
Executable file
|
@ -0,0 +1,150 @@
|
||||||
|
/**
|
||||||
|
* File customize-preview.js.
|
||||||
|
*
|
||||||
|
* Instantly live-update customizer settings in the preview for improved user experience.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( $ ) {
|
||||||
|
|
||||||
|
// Collect information from customize-controls.js about which panels are opening.
|
||||||
|
wp.customize.bind( 'preview-ready', function() {
|
||||||
|
|
||||||
|
// Initially hide the theme option placeholders on load.
|
||||||
|
$( '.panel-placeholder' ).hide();
|
||||||
|
|
||||||
|
wp.customize.preview.bind( 'section-highlight', function( data ) {
|
||||||
|
|
||||||
|
// Only on the front page.
|
||||||
|
if ( ! $( 'body' ).hasClass( 'twentyseventeen-front-page' ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When the section is expanded, show and scroll to the content placeholders, exposing the edit links.
|
||||||
|
if ( true === data.expanded ) {
|
||||||
|
$( 'body' ).addClass( 'highlight-front-sections' );
|
||||||
|
$( '.panel-placeholder' ).slideDown( 200, function() {
|
||||||
|
$.scrollTo( $( '#panel1' ), {
|
||||||
|
duration: 600,
|
||||||
|
offset: { 'top': -70 } // Account for sticky menu.
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// If we've left the panel, hide the placeholders and scroll back to the top.
|
||||||
|
} else {
|
||||||
|
$( 'body' ).removeClass( 'highlight-front-sections' );
|
||||||
|
// Don't change scroll when leaving - it's likely to have unintended consequences.
|
||||||
|
$( '.panel-placeholder' ).slideUp( 200 );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Site title and description.
|
||||||
|
wp.customize( 'blogname', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
$( '.site-title a' ).text( to );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
wp.customize( 'blogdescription', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
$( '.site-description' ).text( to );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Header text color.
|
||||||
|
wp.customize( 'header_textcolor', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
if ( 'blank' === to ) {
|
||||||
|
$( '.site-title, .site-description' ).css({
|
||||||
|
clip: 'rect(1px, 1px, 1px, 1px)',
|
||||||
|
position: 'absolute'
|
||||||
|
});
|
||||||
|
// Add class for different logo styles if title and description are hidden.
|
||||||
|
$( 'body' ).addClass( 'title-tagline-hidden' );
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Check if the text color has been removed and use default colors in theme stylesheet.
|
||||||
|
if ( ! to.length ) {
|
||||||
|
$( '#twentyseventeen-custom-header-styles' ).remove();
|
||||||
|
}
|
||||||
|
$( '.site-title, .site-description' ).css({
|
||||||
|
clip: 'auto',
|
||||||
|
position: 'relative'
|
||||||
|
});
|
||||||
|
$( '.site-branding, .site-branding a, .site-description, .site-description a' ).css({
|
||||||
|
color: to
|
||||||
|
});
|
||||||
|
// Add class for different logo styles if title and description are visible.
|
||||||
|
$( 'body' ).removeClass( 'title-tagline-hidden' );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Color scheme.
|
||||||
|
wp.customize( 'colorscheme', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
|
||||||
|
// Update color body class.
|
||||||
|
$( 'body' )
|
||||||
|
.removeClass( 'colors-light colors-dark colors-custom' )
|
||||||
|
.addClass( 'colors-' + to );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Custom color hue.
|
||||||
|
wp.customize( 'colorscheme_hue', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
|
||||||
|
// Update custom color CSS.
|
||||||
|
var style = $( '#custom-theme-colors' ),
|
||||||
|
hue = style.data( 'hue' ),
|
||||||
|
css = style.html();
|
||||||
|
|
||||||
|
// Equivalent to css.replaceAll, with hue followed by comma to prevent values with units from being changed.
|
||||||
|
css = css.split( hue + ',' ).join( to + ',' );
|
||||||
|
style.html( css ).data( 'hue', to );
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Page layouts.
|
||||||
|
wp.customize( 'page_layout', function( value ) {
|
||||||
|
value.bind( function( to ) {
|
||||||
|
if ( 'one-column' === to ) {
|
||||||
|
$( 'body' ).addClass( 'page-one-column' ).removeClass( 'page-two-column' );
|
||||||
|
} else {
|
||||||
|
$( 'body' ).removeClass( 'page-one-column' ).addClass( 'page-two-column' );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
// Whether a header image is available.
|
||||||
|
function hasHeaderImage() {
|
||||||
|
var image = wp.customize( 'header_image' )();
|
||||||
|
return '' !== image && 'remove-header' !== image;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Whether a header video is available.
|
||||||
|
function hasHeaderVideo() {
|
||||||
|
var externalVideo = wp.customize( 'external_header_video' )(),
|
||||||
|
video = wp.customize( 'header_video' )();
|
||||||
|
|
||||||
|
return '' !== externalVideo || ( 0 !== video && '' !== video );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle a body class if a custom header exists.
|
||||||
|
$.each( [ 'external_header_video', 'header_image', 'header_video' ], function( index, settingId ) {
|
||||||
|
wp.customize( settingId, function( setting ) {
|
||||||
|
setting.bind(function() {
|
||||||
|
if ( hasHeaderImage() ) {
|
||||||
|
$( document.body ).addClass( 'has-header-image' );
|
||||||
|
} else {
|
||||||
|
$( document.body ).removeClass( 'has-header-image' );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! hasHeaderVideo() ) {
|
||||||
|
$( document.body ).removeClass( 'has-header-video' );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
} )( jQuery );
|
252
app/static/wp-content/themes/twentyseventeen/assets/js/global.js
Executable file
|
@ -0,0 +1,252 @@
|
||||||
|
/* global twentyseventeenScreenReaderText */
|
||||||
|
(function( $ ) {
|
||||||
|
|
||||||
|
// Variables and DOM Caching.
|
||||||
|
var $body = $( 'body' ),
|
||||||
|
$customHeader = $body.find( '.custom-header' ),
|
||||||
|
$branding = $customHeader.find( '.site-branding' ),
|
||||||
|
$navigation = $body.find( '.navigation-top' ),
|
||||||
|
$navWrap = $navigation.find( '.wrap' ),
|
||||||
|
$navMenuItem = $navigation.find( '.menu-item' ),
|
||||||
|
$menuToggle = $navigation.find( '.menu-toggle' ),
|
||||||
|
$menuScrollDown = $body.find( '.menu-scroll-down' ),
|
||||||
|
$sidebar = $body.find( '#secondary' ),
|
||||||
|
$entryContent = $body.find( '.entry-content' ),
|
||||||
|
$formatQuote = $body.find( '.format-quote blockquote' ),
|
||||||
|
isFrontPage = $body.hasClass( 'twentyseventeen-front-page' ) || $body.hasClass( 'home blog' ),
|
||||||
|
navigationFixedClass = 'site-navigation-fixed',
|
||||||
|
navigationHeight,
|
||||||
|
navigationOuterHeight,
|
||||||
|
navPadding,
|
||||||
|
navMenuItemHeight,
|
||||||
|
idealNavHeight,
|
||||||
|
navIsNotTooTall,
|
||||||
|
headerOffset,
|
||||||
|
menuTop = 0,
|
||||||
|
resizeTimer;
|
||||||
|
|
||||||
|
// Ensure the sticky navigation doesn't cover current focused links.
|
||||||
|
$( 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex], [contenteditable]', '.site-content-contain' ).filter( ':visible' ).on( 'focus', function() {
|
||||||
|
if ( $navigation.hasClass( 'site-navigation-fixed' ) ) {
|
||||||
|
var windowScrollTop = $( window ).scrollTop(),
|
||||||
|
fixedNavHeight = $navigation.height(),
|
||||||
|
itemScrollTop = $( this ).offset().top,
|
||||||
|
offsetDiff = itemScrollTop - windowScrollTop;
|
||||||
|
|
||||||
|
// Account for Admin bar.
|
||||||
|
if ( $( '#wpadminbar' ).length ) {
|
||||||
|
offsetDiff -= $( '#wpadminbar' ).height();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( offsetDiff < fixedNavHeight ) {
|
||||||
|
$( window ).scrollTo( itemScrollTop - ( fixedNavHeight + 50 ), 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set properties of navigation.
|
||||||
|
function setNavProps() {
|
||||||
|
navigationHeight = $navigation.height();
|
||||||
|
navigationOuterHeight = $navigation.outerHeight();
|
||||||
|
navPadding = parseFloat( $navWrap.css( 'padding-top' ) ) * 2;
|
||||||
|
navMenuItemHeight = $navMenuItem.outerHeight() * 2;
|
||||||
|
idealNavHeight = navPadding + navMenuItemHeight;
|
||||||
|
navIsNotTooTall = navigationHeight <= idealNavHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make navigation 'stick'.
|
||||||
|
function adjustScrollClass() {
|
||||||
|
|
||||||
|
// Make sure we're not on a mobile screen.
|
||||||
|
if ( 'none' === $menuToggle.css( 'display' ) ) {
|
||||||
|
|
||||||
|
// Make sure the nav isn't taller than two rows.
|
||||||
|
if ( navIsNotTooTall ) {
|
||||||
|
|
||||||
|
// When there's a custom header image or video, the header offset includes the height of the navigation.
|
||||||
|
if ( isFrontPage && ( $body.hasClass( 'has-header-image' ) || $body.hasClass( 'has-header-video' ) ) ) {
|
||||||
|
headerOffset = $customHeader.innerHeight() - navigationOuterHeight;
|
||||||
|
} else {
|
||||||
|
headerOffset = $customHeader.innerHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the scroll is more than the custom header, set the fixed class.
|
||||||
|
if ( $( window ).scrollTop() >= headerOffset ) {
|
||||||
|
$navigation.addClass( navigationFixedClass );
|
||||||
|
} else {
|
||||||
|
$navigation.removeClass( navigationFixedClass );
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Remove 'fixed' class if nav is taller than two rows.
|
||||||
|
$navigation.removeClass( navigationFixedClass );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set margins of branding in header.
|
||||||
|
function adjustHeaderHeight() {
|
||||||
|
if ( 'none' === $menuToggle.css( 'display' ) ) {
|
||||||
|
|
||||||
|
// The margin should be applied to different elements on front-page or home vs interior pages.
|
||||||
|
if ( isFrontPage ) {
|
||||||
|
$branding.css( 'margin-bottom', navigationOuterHeight );
|
||||||
|
} else {
|
||||||
|
$customHeader.css( 'margin-bottom', navigationOuterHeight );
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$customHeader.css( 'margin-bottom', '0' );
|
||||||
|
$branding.css( 'margin-bottom', '0' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set icon for quotes.
|
||||||
|
function setQuotesIcon() {
|
||||||
|
$( twentyseventeenScreenReaderText.quote ).prependTo( $formatQuote );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add 'below-entry-meta' class to elements.
|
||||||
|
function belowEntryMetaClass( param ) {
|
||||||
|
var sidebarPos, sidebarPosBottom;
|
||||||
|
|
||||||
|
if ( ! $body.hasClass( 'has-sidebar' ) ||
|
||||||
|
typeof $sidebar === 'undefined' ||
|
||||||
|
$sidebar.length < 1 || (
|
||||||
|
$body.hasClass( 'search' ) ||
|
||||||
|
$body.hasClass( 'single-attachment' ) ||
|
||||||
|
$body.hasClass( 'error404' ) ||
|
||||||
|
$body.hasClass( 'twentyseventeen-front-page' )
|
||||||
|
) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sidebarPos = $sidebar.offset();
|
||||||
|
sidebarPosBottom = sidebarPos.top + ( $sidebar.height() + 28 );
|
||||||
|
|
||||||
|
$entryContent.find( param ).each( function() {
|
||||||
|
var $element = $( this ),
|
||||||
|
elementPos = $element.offset(),
|
||||||
|
elementPosTop = elementPos.top;
|
||||||
|
|
||||||
|
// Add 'below-entry-meta' to elements below the entry meta.
|
||||||
|
if ( elementPosTop > sidebarPosBottom ) {
|
||||||
|
$element.addClass( 'below-entry-meta' );
|
||||||
|
} else {
|
||||||
|
$element.removeClass( 'below-entry-meta' );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test if inline SVGs are supported.
|
||||||
|
* @link https://github.com/Modernizr/Modernizr/
|
||||||
|
*/
|
||||||
|
function supportsInlineSVG() {
|
||||||
|
var div = document.createElement( 'div' );
|
||||||
|
div.innerHTML = '<svg/>';
|
||||||
|
return 'http://www.w3.org/2000/svg' === ( 'undefined' !== typeof SVGRect && div.firstChild && div.firstChild.namespaceURI );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test if an iOS device.
|
||||||
|
*/
|
||||||
|
function checkiOS() {
|
||||||
|
return /iPad|iPhone|iPod/.test(navigator.userAgent) && ! window.MSStream;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test if background-attachment: fixed is supported.
|
||||||
|
* @link http://stackoverflow.com/questions/14115080/detect-support-for-background-attachment-fixed
|
||||||
|
*/
|
||||||
|
function supportsFixedBackground() {
|
||||||
|
var el = document.createElement('div'),
|
||||||
|
isSupported;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if ( ! ( 'backgroundAttachment' in el.style ) || checkiOS() ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
el.style.backgroundAttachment = 'fixed';
|
||||||
|
isSupported = ( 'fixed' === el.style.backgroundAttachment );
|
||||||
|
return isSupported;
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fire on document ready.
|
||||||
|
$( function() {
|
||||||
|
|
||||||
|
// If navigation menu is present on page, setNavProps and adjustScrollClass.
|
||||||
|
if ( $navigation.length ) {
|
||||||
|
setNavProps();
|
||||||
|
adjustScrollClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If 'Scroll Down' arrow in present on page, calculate scroll offset and bind an event handler to the click event.
|
||||||
|
if ( $menuScrollDown.length ) {
|
||||||
|
|
||||||
|
if ( $( 'body' ).hasClass( 'admin-bar' ) ) {
|
||||||
|
menuTop -= 32;
|
||||||
|
}
|
||||||
|
if ( $( 'body' ).hasClass( 'blog' ) ) {
|
||||||
|
menuTop -= 30; // The div for latest posts has no space above content, add some to account for this.
|
||||||
|
}
|
||||||
|
if ( ! $navigation.length ) {
|
||||||
|
navigationOuterHeight = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$menuScrollDown.on( 'click', function( e ) {
|
||||||
|
e.preventDefault();
|
||||||
|
$( window ).scrollTo( '#primary', {
|
||||||
|
duration: 600,
|
||||||
|
offset: { top: menuTop - navigationOuterHeight }
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
adjustHeaderHeight();
|
||||||
|
setQuotesIcon();
|
||||||
|
belowEntryMetaClass( 'blockquote.alignleft, blockquote.alignright' );
|
||||||
|
if ( true === supportsInlineSVG() ) {
|
||||||
|
document.documentElement.className = document.documentElement.className.replace( /(\s*)no-svg(\s*)/, '$1svg$2' );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( true === supportsFixedBackground() ) {
|
||||||
|
document.documentElement.className += ' background-fixed';
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
// If navigation menu is present on page, adjust it on scroll and screen resize.
|
||||||
|
if ( $navigation.length ) {
|
||||||
|
|
||||||
|
// On scroll, we want to stick/unstick the navigation.
|
||||||
|
$( window ).on( 'scroll', function() {
|
||||||
|
adjustScrollClass();
|
||||||
|
adjustHeaderHeight();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Also want to make sure the navigation is where it should be on resize.
|
||||||
|
$( window ).on( 'resize', function() {
|
||||||
|
setNavProps();
|
||||||
|
setTimeout( adjustScrollClass, 500 );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$( window ).on( 'resize', function() {
|
||||||
|
clearTimeout( resizeTimer );
|
||||||
|
resizeTimer = setTimeout( function() {
|
||||||
|
belowEntryMetaClass( 'blockquote.alignleft, blockquote.alignright' );
|
||||||
|
}, 300 );
|
||||||
|
setTimeout( adjustHeaderHeight, 1000 );
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add header video class after the video is loaded.
|
||||||
|
$( document ).on( 'wp-custom-header-video-loaded', function() {
|
||||||
|
$body.addClass( 'has-header-video' );
|
||||||
|
});
|
||||||
|
|
||||||
|
})( jQuery );
|
326
app/static/wp-content/themes/twentyseventeen/assets/js/html5.js
Executable file
|
@ -0,0 +1,326 @@
|
||||||
|
/**
|
||||||
|
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||||
|
*/
|
||||||
|
;(function(window, document) {
|
||||||
|
/*jshint evil:true */
|
||||||
|
/** version */
|
||||||
|
var version = '3.7.3';
|
||||||
|
|
||||||
|
/** Preset options */
|
||||||
|
var options = window.html5 || {};
|
||||||
|
|
||||||
|
/** Used to skip problem elements */
|
||||||
|
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
||||||
|
|
||||||
|
/** Not all elements can be cloned in IE **/
|
||||||
|
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
||||||
|
|
||||||
|
/** Detect whether the browser supports default html5 styles */
|
||||||
|
var supportsHtml5Styles;
|
||||||
|
|
||||||
|
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
||||||
|
var expando = '_html5shiv';
|
||||||
|
|
||||||
|
/** The id for the the documents expando */
|
||||||
|
var expanID = 0;
|
||||||
|
|
||||||
|
/** Cached data for each document */
|
||||||
|
var expandoData = {};
|
||||||
|
|
||||||
|
/** Detect whether the browser supports unknown elements */
|
||||||
|
var supportsUnknownElements;
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
try {
|
||||||
|
var a = document.createElement('a');
|
||||||
|
a.innerHTML = '<xyz></xyz>';
|
||||||
|
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
||||||
|
supportsHtml5Styles = ('hidden' in a);
|
||||||
|
|
||||||
|
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
||||||
|
// assign a false positive if unable to shiv
|
||||||
|
(document.createElement)('a');
|
||||||
|
var frag = document.createDocumentFragment();
|
||||||
|
return (
|
||||||
|
typeof frag.cloneNode == 'undefined' ||
|
||||||
|
typeof frag.createDocumentFragment == 'undefined' ||
|
||||||
|
typeof frag.createElement == 'undefined'
|
||||||
|
);
|
||||||
|
}());
|
||||||
|
} catch(e) {
|
||||||
|
// assign a false positive if detection fails => unable to shiv
|
||||||
|
supportsHtml5Styles = true;
|
||||||
|
supportsUnknownElements = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a style sheet with the given CSS text and adds it to the document.
|
||||||
|
* @private
|
||||||
|
* @param {Document} ownerDocument The document.
|
||||||
|
* @param {String} cssText The CSS text.
|
||||||
|
* @returns {StyleSheet} The style element.
|
||||||
|
*/
|
||||||
|
function addStyleSheet(ownerDocument, cssText) {
|
||||||
|
var p = ownerDocument.createElement('p'),
|
||||||
|
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
||||||
|
|
||||||
|
p.innerHTML = 'x<style>' + cssText + '</style>';
|
||||||
|
return parent.insertBefore(p.lastChild, parent.firstChild);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of `html5.elements` as an array.
|
||||||
|
* @private
|
||||||
|
* @returns {Array} An array of shived element node names.
|
||||||
|
*/
|
||||||
|
function getElements() {
|
||||||
|
var elements = html5.elements;
|
||||||
|
return typeof elements == 'string' ? elements.split(' ') : elements;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extends the built-in list of html5 elements
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {String|Array} newElements whitespace separated list or array of new element names to shiv
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
*/
|
||||||
|
function addElements(newElements, ownerDocument) {
|
||||||
|
var elements = html5.elements;
|
||||||
|
if(typeof elements != 'string'){
|
||||||
|
elements = elements.join(' ');
|
||||||
|
}
|
||||||
|
if(typeof newElements != 'string'){
|
||||||
|
newElements = newElements.join(' ');
|
||||||
|
}
|
||||||
|
html5.elements = elements +' '+ newElements;
|
||||||
|
shivDocument(ownerDocument);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the data associated to the given document
|
||||||
|
* @private
|
||||||
|
* @param {Document} ownerDocument The document.
|
||||||
|
* @returns {Object} An object of data.
|
||||||
|
*/
|
||||||
|
function getExpandoData(ownerDocument) {
|
||||||
|
var data = expandoData[ownerDocument[expando]];
|
||||||
|
if (!data) {
|
||||||
|
data = {};
|
||||||
|
expanID++;
|
||||||
|
ownerDocument[expando] = expanID;
|
||||||
|
expandoData[expanID] = data;
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a shived element for the given nodeName and document
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {String} nodeName name of the element
|
||||||
|
* @param {Document|DocumentFragment} ownerDocument The context document.
|
||||||
|
* @returns {Object} The shived element.
|
||||||
|
*/
|
||||||
|
function createElement(nodeName, ownerDocument, data){
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
if(supportsUnknownElements){
|
||||||
|
return ownerDocument.createElement(nodeName);
|
||||||
|
}
|
||||||
|
if (!data) {
|
||||||
|
data = getExpandoData(ownerDocument);
|
||||||
|
}
|
||||||
|
var node;
|
||||||
|
|
||||||
|
if (data.cache[nodeName]) {
|
||||||
|
node = data.cache[nodeName].cloneNode();
|
||||||
|
} else if (saveClones.test(nodeName)) {
|
||||||
|
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
||||||
|
} else {
|
||||||
|
node = data.createElem(nodeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Avoid adding some elements to fragments in IE < 9 because
|
||||||
|
// * Attributes like `name` or `type` cannot be set/changed once an element
|
||||||
|
// is inserted into a document/fragment
|
||||||
|
// * Link elements with `src` attributes that are inaccessible, as with
|
||||||
|
// a 403 response, will cause the tab/window to crash
|
||||||
|
// * Script elements appended to fragments will execute when their `src`
|
||||||
|
// or `text` property is set
|
||||||
|
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a shived DocumentFragment for the given document
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
* @returns {Object} The shived DocumentFragment.
|
||||||
|
*/
|
||||||
|
function createDocumentFragment(ownerDocument, data){
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
if(supportsUnknownElements){
|
||||||
|
return ownerDocument.createDocumentFragment();
|
||||||
|
}
|
||||||
|
data = data || getExpandoData(ownerDocument);
|
||||||
|
var clone = data.frag.cloneNode(),
|
||||||
|
i = 0,
|
||||||
|
elems = getElements(),
|
||||||
|
l = elems.length;
|
||||||
|
for(;i<l;i++){
|
||||||
|
clone.createElement(elems[i]);
|
||||||
|
}
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
||||||
|
* @private
|
||||||
|
* @param {Document|DocumentFragment} ownerDocument The document.
|
||||||
|
* @param {Object} data of the document.
|
||||||
|
*/
|
||||||
|
function shivMethods(ownerDocument, data) {
|
||||||
|
if (!data.cache) {
|
||||||
|
data.cache = {};
|
||||||
|
data.createElem = ownerDocument.createElement;
|
||||||
|
data.createFrag = ownerDocument.createDocumentFragment;
|
||||||
|
data.frag = data.createFrag();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ownerDocument.createElement = function(nodeName) {
|
||||||
|
//abort shiv
|
||||||
|
if (!html5.shivMethods) {
|
||||||
|
return data.createElem(nodeName);
|
||||||
|
}
|
||||||
|
return createElement(nodeName, ownerDocument, data);
|
||||||
|
};
|
||||||
|
|
||||||
|
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
||||||
|
'var n=f.cloneNode(),c=n.createElement;' +
|
||||||
|
'h.shivMethods&&(' +
|
||||||
|
// unroll the `createElement` calls
|
||||||
|
getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
|
||||||
|
data.createElem(nodeName);
|
||||||
|
data.frag.createElement(nodeName);
|
||||||
|
return 'c("' + nodeName + '")';
|
||||||
|
}) +
|
||||||
|
');return n}'
|
||||||
|
)(html5, data.frag);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shivs the given document.
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {Document} ownerDocument The document to shiv.
|
||||||
|
* @returns {Document} The shived document.
|
||||||
|
*/
|
||||||
|
function shivDocument(ownerDocument) {
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
var data = getExpandoData(ownerDocument);
|
||||||
|
|
||||||
|
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
||||||
|
data.hasCSS = !!addStyleSheet(ownerDocument,
|
||||||
|
// corrects block display not defined in IE6/7/8/9
|
||||||
|
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
||||||
|
// adds styling not present in IE6/7/8/9
|
||||||
|
'mark{background:#FF0;color:#000}' +
|
||||||
|
// hides non-rendered elements
|
||||||
|
'template{display:none}'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!supportsUnknownElements) {
|
||||||
|
shivMethods(ownerDocument, data);
|
||||||
|
}
|
||||||
|
return ownerDocument;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `html5` object is exposed so that more elements can be shived and
|
||||||
|
* existing shiving can be detected on iframes.
|
||||||
|
* @type Object
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* // options can be changed before the script is included
|
||||||
|
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
||||||
|
*/
|
||||||
|
var html5 = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array or space separated string of node names of the elements to shiv.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Array|String
|
||||||
|
*/
|
||||||
|
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* current version of html5shiv
|
||||||
|
*/
|
||||||
|
'version': version,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag to indicate that the HTML5 style sheet should be inserted.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Boolean
|
||||||
|
*/
|
||||||
|
'shivCSS': (options.shivCSS !== false),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
||||||
|
* @memberOf html5
|
||||||
|
* @type boolean
|
||||||
|
*/
|
||||||
|
'supportsUnknownElements': supportsUnknownElements,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
||||||
|
* methods should be overwritten.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Boolean
|
||||||
|
*/
|
||||||
|
'shivMethods': (options.shivMethods !== false),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A string to describe the type of `html5` object ("default" or "default print").
|
||||||
|
* @memberOf html5
|
||||||
|
* @type String
|
||||||
|
*/
|
||||||
|
'type': 'default',
|
||||||
|
|
||||||
|
// shivs the document according to the specified `html5` object options
|
||||||
|
'shivDocument': shivDocument,
|
||||||
|
|
||||||
|
//creates a shived element
|
||||||
|
createElement: createElement,
|
||||||
|
|
||||||
|
//creates a shived documentFragment
|
||||||
|
createDocumentFragment: createDocumentFragment,
|
||||||
|
|
||||||
|
//extends list of elements
|
||||||
|
addElements: addElements
|
||||||
|
};
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// expose html5
|
||||||
|
window.html5 = html5;
|
||||||
|
|
||||||
|
// shiv the document
|
||||||
|
shivDocument(document);
|
||||||
|
|
||||||
|
if(typeof module == 'object' && module.exports){
|
||||||
|
module.exports = html5;
|
||||||
|
}
|
||||||
|
|
||||||
|
}(typeof window !== "undefined" ? window : this, document));
|
215
app/static/wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js
Executable file
|
@ -0,0 +1,215 @@
|
||||||
|
/*!
|
||||||
|
* jQuery.scrollTo
|
||||||
|
* Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
|
||||||
|
* Licensed under MIT
|
||||||
|
* https://github.com/flesler/jquery.scrollTo
|
||||||
|
* @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery
|
||||||
|
* @author Ariel Flesler
|
||||||
|
* @version 2.1.3
|
||||||
|
*/
|
||||||
|
;(function(factory) {
|
||||||
|
'use strict';
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD
|
||||||
|
define(['jquery'], factory);
|
||||||
|
} else if (typeof module !== 'undefined' && module.exports) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = factory(require('jquery'));
|
||||||
|
} else {
|
||||||
|
// Global
|
||||||
|
factory(jQuery);
|
||||||
|
}
|
||||||
|
})(function($) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var $scrollTo = $.scrollTo = function(target, duration, settings) {
|
||||||
|
return $(window).scrollTo(target, duration, settings);
|
||||||
|
};
|
||||||
|
|
||||||
|
$scrollTo.defaults = {
|
||||||
|
axis:'xy',
|
||||||
|
duration: 0,
|
||||||
|
limit:true
|
||||||
|
};
|
||||||
|
|
||||||
|
function isWin(elem) {
|
||||||
|
return !elem.nodeName ||
|
||||||
|
$.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isFunction(obj) {
|
||||||
|
// Brought from jQuery since it's deprecated
|
||||||
|
return typeof obj === 'function'
|
||||||
|
}
|
||||||
|
|
||||||
|
$.fn.scrollTo = function(target, duration, settings) {
|
||||||
|
if (typeof duration === 'object') {
|
||||||
|
settings = duration;
|
||||||
|
duration = 0;
|
||||||
|
}
|
||||||
|
if (typeof settings === 'function') {
|
||||||
|
settings = { onAfter:settings };
|
||||||
|
}
|
||||||
|
if (target === 'max') {
|
||||||
|
target = 9e9;
|
||||||
|
}
|
||||||
|
|
||||||
|
settings = $.extend({}, $scrollTo.defaults, settings);
|
||||||
|
// Speed is still recognized for backwards compatibility
|
||||||
|
duration = duration || settings.duration;
|
||||||
|
// Make sure the settings are given right
|
||||||
|
var queue = settings.queue && settings.axis.length > 1;
|
||||||
|
if (queue) {
|
||||||
|
// Let's keep the overall duration
|
||||||
|
duration /= 2;
|
||||||
|
}
|
||||||
|
settings.offset = both(settings.offset);
|
||||||
|
settings.over = both(settings.over);
|
||||||
|
|
||||||
|
return this.each(function() {
|
||||||
|
// Null target yields nothing, just like jQuery does
|
||||||
|
if (target === null) return;
|
||||||
|
|
||||||
|
var win = isWin(this),
|
||||||
|
elem = win ? this.contentWindow || window : this,
|
||||||
|
$elem = $(elem),
|
||||||
|
targ = target,
|
||||||
|
attr = {},
|
||||||
|
toff;
|
||||||
|
|
||||||
|
switch (typeof targ) {
|
||||||
|
// A number will pass the regex
|
||||||
|
case 'number':
|
||||||
|
case 'string':
|
||||||
|
if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) {
|
||||||
|
targ = both(targ);
|
||||||
|
// We are done
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// Relative/Absolute selector
|
||||||
|
targ = win ? $(targ) : $(targ, elem);
|
||||||
|
/* falls through */
|
||||||
|
case 'object':
|
||||||
|
if (targ.length === 0) return;
|
||||||
|
// DOMElement / jQuery
|
||||||
|
if (targ.is || targ.style) {
|
||||||
|
// Get the real position of the target
|
||||||
|
toff = (targ = $(targ)).offset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var offset = isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;
|
||||||
|
|
||||||
|
$.each(settings.axis.split(''), function(i, axis) {
|
||||||
|
var Pos = axis === 'x' ? 'Left' : 'Top',
|
||||||
|
pos = Pos.toLowerCase(),
|
||||||
|
key = 'scroll' + Pos,
|
||||||
|
prev = $elem[key](),
|
||||||
|
max = $scrollTo.max(elem, axis);
|
||||||
|
|
||||||
|
if (toff) {// jQuery / DOMElement
|
||||||
|
attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]);
|
||||||
|
|
||||||
|
// If it's a dom element, reduce the margin
|
||||||
|
if (settings.margin) {
|
||||||
|
attr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0;
|
||||||
|
attr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
attr[key] += offset[pos] || 0;
|
||||||
|
|
||||||
|
if (settings.over[pos]) {
|
||||||
|
// Scroll to a fraction of its width/height
|
||||||
|
attr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var val = targ[pos];
|
||||||
|
// Handle percentage values
|
||||||
|
attr[key] = val.slice && val.slice(-1) === '%' ?
|
||||||
|
parseFloat(val) / 100 * max
|
||||||
|
: val;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number or 'number'
|
||||||
|
if (settings.limit && /^\d+$/.test(attr[key])) {
|
||||||
|
// Check the limits
|
||||||
|
attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Don't waste time animating, if there's no need.
|
||||||
|
if (!i && settings.axis.length > 1) {
|
||||||
|
if (prev === attr[key]) {
|
||||||
|
// No animation needed
|
||||||
|
attr = {};
|
||||||
|
} else if (queue) {
|
||||||
|
// Intermediate animation
|
||||||
|
animate(settings.onAfterFirst);
|
||||||
|
// Don't animate this axis again in the next iteration.
|
||||||
|
attr = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
animate(settings.onAfter);
|
||||||
|
|
||||||
|
function animate(callback) {
|
||||||
|
var opts = $.extend({}, settings, {
|
||||||
|
// The queue setting conflicts with animate()
|
||||||
|
// Force it to always be true
|
||||||
|
queue: true,
|
||||||
|
duration: duration,
|
||||||
|
complete: callback && function() {
|
||||||
|
callback.call(elem, targ, settings);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$elem.animate(attr, opts);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// Max scrolling position, works on quirks mode
|
||||||
|
// It only fails (not too badly) on IE, quirks mode.
|
||||||
|
$scrollTo.max = function(elem, axis) {
|
||||||
|
var Dim = axis === 'x' ? 'Width' : 'Height',
|
||||||
|
scroll = 'scroll'+Dim;
|
||||||
|
|
||||||
|
if (!isWin(elem))
|
||||||
|
return elem[scroll] - $(elem)[Dim.toLowerCase()]();
|
||||||
|
|
||||||
|
var size = 'client' + Dim,
|
||||||
|
doc = elem.ownerDocument || elem.document,
|
||||||
|
html = doc.documentElement,
|
||||||
|
body = doc.body;
|
||||||
|
|
||||||
|
return Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]);
|
||||||
|
};
|
||||||
|
|
||||||
|
function both(val) {
|
||||||
|
return isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val };
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add special hooks so that window scroll properties can be animated
|
||||||
|
$.Tween.propHooks.scrollLeft =
|
||||||
|
$.Tween.propHooks.scrollTop = {
|
||||||
|
get: function(t) {
|
||||||
|
return $(t.elem)[t.prop]();
|
||||||
|
},
|
||||||
|
set: function(t) {
|
||||||
|
var curr = this.get(t);
|
||||||
|
// If interrupt is true and user scrolled, stop animating
|
||||||
|
if (t.options.interrupt && t._last && t._last !== curr) {
|
||||||
|
return $(t.elem).stop();
|
||||||
|
}
|
||||||
|
var next = Math.round(t.now);
|
||||||
|
// Don't waste CPU
|
||||||
|
// Browsers don't render floating point scroll
|
||||||
|
if (curr !== next) {
|
||||||
|
$(t.elem)[t.prop](next);
|
||||||
|
t._last = this.get(t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// AMD requirement
|
||||||
|
return $scrollTo;
|
||||||
|
});
|
109
app/static/wp-content/themes/twentyseventeen/assets/js/navigation.js
Executable file
|
@ -0,0 +1,109 @@
|
||||||
|
/* global twentyseventeenScreenReaderText */
|
||||||
|
/**
|
||||||
|
* Theme functions file.
|
||||||
|
*
|
||||||
|
* Contains handlers for navigation and widget area.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( $ ) {
|
||||||
|
var masthead, menuToggle, siteNavContain, siteNavigation;
|
||||||
|
|
||||||
|
function initMainNavigation( container ) {
|
||||||
|
|
||||||
|
// Add dropdown toggle that displays child menu items.
|
||||||
|
var dropdownToggle = $( '<button />', { 'class': 'dropdown-toggle', 'aria-expanded': false })
|
||||||
|
.append( twentyseventeenScreenReaderText.icon )
|
||||||
|
.append( $( '<span />', { 'class': 'screen-reader-text', text: twentyseventeenScreenReaderText.expand }) );
|
||||||
|
|
||||||
|
container.find( '.menu-item-has-children > a, .page_item_has_children > a' ).after( dropdownToggle );
|
||||||
|
|
||||||
|
// Set the active submenu dropdown toggle button initial state.
|
||||||
|
container.find( '.current-menu-ancestor > button' )
|
||||||
|
.addClass( 'toggled-on' )
|
||||||
|
.attr( 'aria-expanded', 'true' )
|
||||||
|
.find( '.screen-reader-text' )
|
||||||
|
.text( twentyseventeenScreenReaderText.collapse );
|
||||||
|
// Set the active submenu initial state.
|
||||||
|
container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' );
|
||||||
|
|
||||||
|
container.find( '.dropdown-toggle' ).on( 'click', function( e ) {
|
||||||
|
var _this = $( this ),
|
||||||
|
screenReaderSpan = _this.find( '.screen-reader-text' );
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
_this.toggleClass( 'toggled-on' );
|
||||||
|
_this.next( '.children, .sub-menu' ).toggleClass( 'toggled-on' );
|
||||||
|
|
||||||
|
_this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' );
|
||||||
|
|
||||||
|
screenReaderSpan.text( screenReaderSpan.text() === twentyseventeenScreenReaderText.expand ? twentyseventeenScreenReaderText.collapse : twentyseventeenScreenReaderText.expand );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
initMainNavigation( $( '.main-navigation' ) );
|
||||||
|
|
||||||
|
masthead = $( '#masthead' );
|
||||||
|
menuToggle = masthead.find( '.menu-toggle' );
|
||||||
|
siteNavContain = masthead.find( '.main-navigation' );
|
||||||
|
siteNavigation = masthead.find( '.main-navigation > div > ul' );
|
||||||
|
|
||||||
|
// Enable menuToggle.
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
// Return early if menuToggle is missing.
|
||||||
|
if ( ! menuToggle.length ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add an initial value for the attribute.
|
||||||
|
menuToggle.attr( 'aria-expanded', 'false' );
|
||||||
|
|
||||||
|
menuToggle.on( 'click.twentyseventeen', function() {
|
||||||
|
siteNavContain.toggleClass( 'toggled-on' );
|
||||||
|
|
||||||
|
$( this ).attr( 'aria-expanded', siteNavContain.hasClass( 'toggled-on' ) );
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Fix sub-menus for touch devices and better focus for hidden submenu items for accessibility.
|
||||||
|
(function() {
|
||||||
|
if ( ! siteNavigation.length || ! siteNavigation.children().length ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle `focus` class to allow submenu access on tablets.
|
||||||
|
function toggleFocusClassTouchScreen() {
|
||||||
|
if ( 'none' === $( '.menu-toggle' ).css( 'display' ) ) {
|
||||||
|
|
||||||
|
$( document.body ).on( 'touchstart.twentyseventeen', function( e ) {
|
||||||
|
if ( ! $( e.target ).closest( '.main-navigation li' ).length ) {
|
||||||
|
$( '.main-navigation li' ).removeClass( 'focus' );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
siteNavigation.find( '.menu-item-has-children > a, .page_item_has_children > a' )
|
||||||
|
.on( 'touchstart.twentyseventeen', function( e ) {
|
||||||
|
var el = $( this ).parent( 'li' );
|
||||||
|
|
||||||
|
if ( ! el.hasClass( 'focus' ) ) {
|
||||||
|
e.preventDefault();
|
||||||
|
el.toggleClass( 'focus' );
|
||||||
|
el.siblings( '.focus' ).removeClass( 'focus' );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
siteNavigation.find( '.menu-item-has-children > a, .page_item_has_children > a' ).unbind( 'touchstart.twentyseventeen' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( 'ontouchstart' in window ) {
|
||||||
|
$( window ).on( 'resize.twentyseventeen', toggleFocusClassTouchScreen );
|
||||||
|
toggleFocusClassTouchScreen();
|
||||||
|
}
|
||||||
|
|
||||||
|
siteNavigation.find( 'a' ).on( 'focus.twentyseventeen blur.twentyseventeen', function() {
|
||||||
|
$( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
})( jQuery );
|
|
@ -0,0 +1,31 @@
|
||||||
|
/**
|
||||||
|
* File skip-link-focus-fix.js.
|
||||||
|
*
|
||||||
|
* Helps with accessibility for keyboard only users.
|
||||||
|
*
|
||||||
|
* Learn more: https://git.io/vWdr2
|
||||||
|
*/
|
||||||
|
(function() {
|
||||||
|
var isIe = /(trident|msie)/i.test( navigator.userAgent );
|
||||||
|
|
||||||
|
if ( isIe && document.getElementById && window.addEventListener ) {
|
||||||
|
window.addEventListener( 'hashchange', function() {
|
||||||
|
var id = location.hash.substring( 1 ),
|
||||||
|
element;
|
||||||
|
|
||||||
|
if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
element = document.getElementById( id );
|
||||||
|
|
||||||
|
if ( element ) {
|
||||||
|
if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
|
||||||
|
element.tabIndex = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.focus();
|
||||||
|
}
|
||||||
|
}, false );
|
||||||
|
}
|
||||||
|
})();
|
560
app/static/wp-content/themes/twentyseventeen/rtl.css
Executable file
|
@ -0,0 +1,560 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Twenty Seventeen
|
||||||
|
|
||||||
|
Adding support for languages written in a Right To Left (RTL) direction is easy,
|
||||||
|
it's just a matter of overwriting all the horizontal positioning attributes
|
||||||
|
of your CSS stylesheet in a separate stylesheet file named rtl.css.
|
||||||
|
|
||||||
|
https://codex.wordpress.org/Right-to-Left_Language_Support
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Reset */
|
||||||
|
|
||||||
|
body {
|
||||||
|
direction: rtl;
|
||||||
|
unicode-bidi: embed;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Accessibility */
|
||||||
|
|
||||||
|
.screen-reader-text:focus {
|
||||||
|
left: auto;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Typography */
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
li > ul,
|
||||||
|
li > ol {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
th:first-child,
|
||||||
|
td:first-child {
|
||||||
|
padding-left: 0.4em;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
th:last-child,
|
||||||
|
td:last-child {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Forms */
|
||||||
|
|
||||||
|
input[type="radio"],
|
||||||
|
input[type="checkbox"] {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media */
|
||||||
|
|
||||||
|
.mejs-offscreen {
|
||||||
|
right: -10000px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Site Branding */
|
||||||
|
|
||||||
|
.custom-logo-link {
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Main Navigation */
|
||||||
|
|
||||||
|
.main-navigation ul {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-toggle .icon {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-toggle {
|
||||||
|
left: -0.5em;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Front Page */
|
||||||
|
|
||||||
|
.wp-custom-header-video-button {
|
||||||
|
left: 30px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.twentyseventeen-panel .recent-posts .entry-header .edit-link {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blog, Archive, Search */
|
||||||
|
|
||||||
|
.blog .entry-meta a.post-edit-link,
|
||||||
|
.archive .entry-meta a.post-edit-link,
|
||||||
|
.search .entry-meta a.post-edit-link {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search .page .entry-meta a.post-edit-link {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticky .icon-thumb-tack {
|
||||||
|
left: auto;
|
||||||
|
right: -1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prev.page-numbers .icon,
|
||||||
|
.next.page-numbers .icon {
|
||||||
|
display: inline-block;
|
||||||
|
-ms-transform: rotate(180deg); /* IE 9 */
|
||||||
|
-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.prev.page-numbers {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.next.page-numbers {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links .nav-previous .nav-title .nav-title-icon-wrapper {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blog Entries */
|
||||||
|
|
||||||
|
.entry-footer .cat-links,
|
||||||
|
.entry-footer .tags-links {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 2.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-footer .cat-links .icon,
|
||||||
|
.entry-footer .tags-links .icon {
|
||||||
|
left: auto;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
margin-right: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Comments */
|
||||||
|
|
||||||
|
.comment-body {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 65px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-reply-link .icon {
|
||||||
|
left: auto;
|
||||||
|
right: -2em;
|
||||||
|
-webkit-transform: scale(-1, 1);
|
||||||
|
-ms-transform: scale(-1, 1);
|
||||||
|
transform: scale(-1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-author .avatar {
|
||||||
|
left: auto;
|
||||||
|
right: -65px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-reply-link:before {
|
||||||
|
left: auto;
|
||||||
|
right: -2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.children .comment-author .avatar {
|
||||||
|
left: auto;
|
||||||
|
right: -45px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-submit {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comment-form #wp-comment-cookies-consent {
|
||||||
|
margin: 0 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Post Formats */
|
||||||
|
|
||||||
|
.format-quote blockquote .icon {
|
||||||
|
left: auto;
|
||||||
|
right: -1.25em;
|
||||||
|
-webkit-transform: none;
|
||||||
|
-ms-transform: none;
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Post Navigation */
|
||||||
|
|
||||||
|
.nav-links .nav-previous .nav-title .nav-title-icon-wrapper,
|
||||||
|
.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
|
||||||
|
display: inline-block;
|
||||||
|
-ms-transform: rotate(180deg); /* IE 9 */
|
||||||
|
-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Widgets */
|
||||||
|
|
||||||
|
.widget ul {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_rss .widget-title .rsswidget:first-child:not(.rss-widget-title) {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-form .search-submit {
|
||||||
|
left: 3px;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tagcloud ul li {
|
||||||
|
float: right;
|
||||||
|
margin: 4px 0 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget ul li li {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_text ul {
|
||||||
|
margin: 0 1.5em 1.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget_text ul li ul {
|
||||||
|
margin: 0 1.5em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
|
||||||
|
.social-navigation a {
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Customizer styles */
|
||||||
|
|
||||||
|
.twentyseventeen-customizer.twentyseventeen-front-page .twentyseventeen-panel .twentyseventeen-panel-title {
|
||||||
|
left: 3.2em;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Gallery Styles */
|
||||||
|
|
||||||
|
.gallery-item,
|
||||||
|
.gallery-caption {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* SVG Fallback */
|
||||||
|
|
||||||
|
.no-svg .dropdown-toggle {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media queries */
|
||||||
|
|
||||||
|
@media screen and (min-width: 48em) {
|
||||||
|
|
||||||
|
body.page-template-full-width-page #primary {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-sidebar:not(.error404) #primary {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-sidebar #secondary {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error404 #primary {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Site Branding */
|
||||||
|
|
||||||
|
.custom-logo-link {
|
||||||
|
padding-left: 2em;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Navigation */
|
||||||
|
|
||||||
|
.main-navigation ul ul {
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul:before,
|
||||||
|
.main-navigation ul ul:after {
|
||||||
|
left: 0.5em;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul,
|
||||||
|
.main-navigation ul ul ul {
|
||||||
|
left: auto;
|
||||||
|
right: -999em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul li:hover > ul,
|
||||||
|
.main-navigation ul ul li.focus > ul {
|
||||||
|
left: auto;
|
||||||
|
right: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul li:hover > ul,
|
||||||
|
.main-navigation ul li.focus > ul {
|
||||||
|
left: auto;
|
||||||
|
right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul li.menu-item-has-children:before,
|
||||||
|
.main-navigation ul li.menu-item-has-children:after,
|
||||||
|
.main-navigation ul li.page_item_has_children:before,
|
||||||
|
.main-navigation ul li.page_item_has_children:after {
|
||||||
|
left: 1em;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation .menu-item-has-children > a > .icon,
|
||||||
|
.main-navigation .page_item_has_children > a > .icon {
|
||||||
|
left: auto;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-navigation ul ul .menu-item-has-children > a > .icon,
|
||||||
|
.main-navigation ul ul .page_item_has_children > a > .icon {
|
||||||
|
left: 1em;
|
||||||
|
right: auto;
|
||||||
|
-webkit-transform: rotate(90deg);
|
||||||
|
-ms-transform: rotate(90deg);
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scroll down arrow */
|
||||||
|
|
||||||
|
.navigation-top .menu-scroll-down {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-header .menu-scroll-down {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-title a {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Front Page */
|
||||||
|
|
||||||
|
.page-two-column .panel-content .entry-header {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-two-column .panel-content .entry-content {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Front Page - Recent Posts */
|
||||||
|
|
||||||
|
.page-two-column .panel-content .recent-posts {
|
||||||
|
clear: left;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blog, Archive, Search */
|
||||||
|
|
||||||
|
.sticky .icon-thumb-tack {
|
||||||
|
left: auto;
|
||||||
|
right: -2.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.has-sidebar):not(.page-one-column) .page-header,
|
||||||
|
body.has-sidebar.error404 #primary .page-header,
|
||||||
|
body.page-two-column:not(.archive) #primary .entry-header,
|
||||||
|
body.page-two-column.archive:not(.has-sidebar) #primary .page-header {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blog:not(.has-sidebar) #primary article,
|
||||||
|
.archive:not(.has-sidebar):not(.page-one-column) #primary article,
|
||||||
|
.search:not(.has-sidebar) #primary article,
|
||||||
|
.has-sidebar.error404 #primary .page-content,
|
||||||
|
.error404.has-sidebar #primary .page-content,
|
||||||
|
body.page-two-column:not(.archive) #primary .entry-content,
|
||||||
|
body.page-two-column #comments {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-footer .edit-link a.post-edit-link {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Entry content */
|
||||||
|
|
||||||
|
/* with sidebar */
|
||||||
|
|
||||||
|
.has-sidebar .entry-content blockquote.alignleft {
|
||||||
|
margin-left: 0;
|
||||||
|
width: 34%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-sidebar #primary .entry-content blockquote.alignright,
|
||||||
|
.has-sidebar #primary .entry-content blockquote.alignright.below-entry-meta {
|
||||||
|
margin-right: 0;
|
||||||
|
width: 34%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-sidebar #primary .entry-content blockquote.alignleft.below-entry-meta {
|
||||||
|
margin-left: -72.5%;
|
||||||
|
width: 62%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* blog index and archive */
|
||||||
|
|
||||||
|
.blog:not(.has-sidebar) .entry-content blockquote.alignleft,
|
||||||
|
.twentyseventeen-front-page.page-two-column .entry-content blockquote.alignleft,
|
||||||
|
.archive:not(.has-sidebar) .entry-content blockquote.alignleft,
|
||||||
|
.page-two-column .entry-content blockquote.alignleft {
|
||||||
|
margin-left: 0;
|
||||||
|
width: 34%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blog:not(.has-sidebar) .entry-content blockquote.alignright,
|
||||||
|
.twentyseventeen-front-page.page-two-column #primary .entry-content blockquote.alignright,
|
||||||
|
.archive:not(.has-sidebar) .entry-content blockquote.alignright,
|
||||||
|
.page-two-column #primary .entry-content blockquote.alignright {
|
||||||
|
margin-right: -72.5%;
|
||||||
|
width: 62%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Post formats */
|
||||||
|
|
||||||
|
.format-quote blockquote .icon {
|
||||||
|
left: auto;
|
||||||
|
right: -1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation.pagination {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.has-sidebar .navigation.pagination,
|
||||||
|
.archive.page-one-column:not(.has-sidebar) .navigation.pagination {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation .nav-previous {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-navigation .nav-next {
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Comments */
|
||||||
|
|
||||||
|
ol.children .children {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Post Navigation */
|
||||||
|
|
||||||
|
.nav-links .nav-previous .nav-title .nav-title-icon-wrapper {
|
||||||
|
left: auto;
|
||||||
|
right: -2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
|
||||||
|
left: -2em;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
|
||||||
|
.site-footer .widget-column.footer-widget-1 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-footer .widget-column.footer-widget-2 {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation {
|
||||||
|
clear: right;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-info {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-navigation + .site-info {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 6%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 67em) {
|
||||||
|
|
||||||
|
/* Sticky posts */
|
||||||
|
|
||||||
|
.sticky .icon-thumb-tack {
|
||||||
|
left: auto;
|
||||||
|
right: -1.25em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 79em) {
|
||||||
|
|
||||||
|
.has-sidebar #primary .entry-content blockquote.alignright,
|
||||||
|
.has-sidebar #primary .entry-content blockquote.alignright.below-entry-meta {
|
||||||
|
margin-right: -20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blog:not(.has-sidebar) .entry-content blockquote.alignleft,
|
||||||
|
.archive:not(.has-sidebar) .entry-content blockquote.alignleft,
|
||||||
|
.page-two-column .entry-content blockquote.alignleft,
|
||||||
|
.twentyseventeen-front-page .entry-content blockquote.alignleft {
|
||||||
|
margin-left: -20%;
|
||||||
|
}
|
||||||
|
}
|
4373
app/static/wp-content/themes/twentyseventeen/style.css
Executable file
18
app/static/wp-includes/css/classic-themes.css
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
/**
|
||||||
|
* These rules are needed for backwards compatibility.
|
||||||
|
* They should match the button element rules in the base theme.json file.
|
||||||
|
*/
|
||||||
|
.wp-block-button__link {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #32373c;
|
||||||
|
border-radius: 9999px; /* 100% causes an oval, but any explicit but really high value retains the pill shape. */
|
||||||
|
|
||||||
|
/* This needs a low specificity so it won't override the rules from the button element if defined in theme.json. */
|
||||||
|
box-shadow: none;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
/* The extra 2px are added to size solids the same as the outline versions.*/
|
||||||
|
padding: calc(0.667em + 2px) calc(1.333em + 2px);
|
||||||
|
|
||||||
|
font-size: 1.125em;
|
||||||
|
}
|