diff options
author | John Olheiser <42128690+jolheiser@users.noreply.github.com> | 2020-02-11 11:02:41 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-11 12:02:41 -0500 |
commit | 86fdba177ad82f3dcdfc237631fef4588042b9d6 (patch) | |
tree | 9ee1c1f97a158436e36828d1072fa84fac222317 | |
parent | e704f7fae7b212902ddd2859d8f88350630b4086 (diff) | |
download | gitea-86fdba177ad82f3dcdfc237631fef4588042b9d6.tar.gz gitea-86fdba177ad82f3dcdfc237631fef4588042b9d6.zip |
Add Octicon SVG spritemap (#10107)
* Add octicon SVG sprite
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Static prefix
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* SVG for all repo icons
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* make vendor
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Swap out octicons
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Move octicons to top of less imports
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Fix JS
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Definitely not a search/replace
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Missed regex
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Move to more generic calls and webpack
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* make svg -> make webpack
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Remove svg-sprite
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Update tests
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Missed a test
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Remove svg from makefile
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Suggestions
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Attempt to fix test
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Update tests
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Revert timetracking test
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Swap .octicon for .svg in less
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Add aria-hidden
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Replace mega-octicon
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Fix webpack globbing on Windows
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Revert
Co-Authored-By: silverwind <me@silverwind.io>
* Fix octions from upstream
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Fix Vue and missed JS function
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Add JS helper and PWA
Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Preload SVG
Signed-off-by: jolheiser <john.olheiser@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: techknowlogick <matti@mdranta.net>
112 files changed, 1387 insertions, 1122 deletions
diff --git a/.gitignore b/.gitignore index 0a1d2e3b23..f223edabff 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ coverage.all /public/js /public/css /public/fomantic +/public/img/svg # Snapcraft snap/.snapcraft/ @@ -99,7 +99,7 @@ require ( github.com/yuin/goldmark v1.1.19 go.etcd.io/bbolt v1.3.3 // indirect golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 - golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9 + golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 golang.org/x/sys v0.0.0-20191127021746-63cb32ae39b2 golang.org/x/text v0.3.2 @@ -627,8 +627,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9 h1:DPz9iiH3YoKiKhX/ijjoZvT0VFwK2c6CWYWQ7Zyr8TU= -golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= diff --git a/integrations/repo_test.go b/integrations/repo_test.go index d2e02dd37f..485b77c00f 100644 --- a/integrations/repo_test.go +++ b/integrations/repo_test.go @@ -149,16 +149,16 @@ func TestViewRepoWithSymlinks(t *testing.T) { htmlDoc := NewHTMLParser(t, resp.Body) files := htmlDoc.doc.Find("#repo-files-table > TBODY > TR > TD.name > SPAN") items := files.Map(func(i int, s *goquery.Selection) string { - cls, _ := s.Find("SPAN").Attr("class") + cls, _ := s.Find("SVG").Attr("class") file := strings.Trim(s.Find("A").Text(), " \t\n") return fmt.Sprintf("%s: %s", file, cls) }) assert.Equal(t, len(items), 5) - assert.Equal(t, items[0], "a: octicon octicon-file-directory") - assert.Equal(t, items[1], "link_b: octicon octicon-file-symlink-directory") - assert.Equal(t, items[2], "link_d: octicon octicon-file-symlink-file") - assert.Equal(t, items[3], "link_hi: octicon octicon-file-symlink-file") - assert.Equal(t, items[4], "link_link: octicon octicon-file-symlink-file") + assert.Equal(t, items[0], "a: svg octicon-file-directory") + assert.Equal(t, items[1], "link_b: svg octicon-file-symlink-directory") + assert.Equal(t, items[2], "link_d: svg octicon-file-symlink-file") + assert.Equal(t, items[3], "link_hi: svg octicon-file-symlink-file") + assert.Equal(t, items[4], "link_link: svg octicon-file-symlink-file") } // TestViewAsRepoAdmin tests PR #2167 diff --git a/modules/base/tool.go b/modules/base/tool.go index aaa6e3ffb3..cb9b996142 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -389,7 +389,7 @@ func EntryIcon(entry *git.TreeEntry) string { return "file-submodule" } - return "file-text" + return "file" } // SetupGiteaRoot Sets GITEA_ROOT if it is not already set and returns the value diff --git a/modules/templates/helper.go b/modules/templates/helper.go index 741161eb8b..30ca9c1638 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -286,6 +286,9 @@ func NewFuncMap() []template.FuncMap { } return false }, + "svg": func(icon string, size int) template.HTML { + return template.HTML(fmt.Sprintf(`<svg class="svg %s" width="%d" height="%d" aria-hidden="true"><use xlink:href="%s/img/svg/icons.svg#%s" /></svg>`, icon, size, size, setting.StaticURLPrefix, icon)) + }, }} } diff --git a/package-lock.json b/package-lock.json index e00bae199c..3ca1b0629e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1112,6 +1112,14 @@ "@types/node": ">= 8" } }, + "@primer/octicons": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-9.4.0.tgz", + "integrity": "sha512-7tAWOTt3Ay3Vkf9XwietC40TV1pxk5PS2DAODsOPnMfMd9Yzm2tfvHu0Q3dcffxGZxu7n5ZM6MFWbr/+4dqSdA==", + "requires": { + "object-assign": "^4.1.1" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -2440,6 +2448,16 @@ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", @@ -3255,15 +3273,27 @@ } }, "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + }, + "dependencies": { + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } } }, "css-select-base-adapter": { @@ -3297,9 +3327,9 @@ "dev": true }, "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, "css.escape": { @@ -3679,6 +3709,15 @@ "esutils": "^2.0.2" } }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -3723,6 +3762,12 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.8.tgz", "integrity": "sha512-vIOSyOXkMx81ghEalh4MLBtDHMx1bhKlaqHDMqM2yeitJ996SLOk5mGdDpI9ifJAgokred8Rmu219fX4OltqXw==" }, + "domready": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", + "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", + "dev": true + }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -7075,12 +7120,110 @@ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", "dev": true }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + } + } + }, "html-tags": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", "dev": true }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", @@ -7231,8 +7374,7 @@ "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "optional": true + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=" }, "immutable": { "version": "3.8.2", @@ -7959,6 +8101,12 @@ "jquery": ">=1.4.2" } }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true + }, "js-beautify": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.3.tgz", @@ -8576,6 +8724,12 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -8949,6 +9103,15 @@ } } }, + "merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.1" + } + }, "merge-source-map": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", @@ -9211,6 +9374,12 @@ "through2": "^2.0.0" } }, + "mitt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz", + "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", + "dev": true + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -9341,6 +9510,15 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", @@ -9832,6 +10010,15 @@ "readable-stream": "^2.1.5" } }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10973,6 +11160,15 @@ "postcss-values-parser": "^2.0.0" } }, + "postcss-prefix-selector": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.7.2.tgz", + "integrity": "sha512-ddmzjWNmGs7E/nyolJ021/Gk6oBLRQLyyXKGV4Mu+Y0gquo+XlXSDP0/Y2J8C/cad/GLyftf2H0XtuDFQZxN3w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, "postcss-preset-env": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", @@ -11258,6 +11454,64 @@ "uniq": "^1.0.1" } }, + "posthtml": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz", + "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", + "dev": true, + "requires": { + "posthtml-parser": "^0.2.0", + "posthtml-render": "^1.0.5" + } + }, + "posthtml-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz", + "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", + "dev": true, + "requires": { + "htmlparser2": "^3.8.3", + "isobject": "^2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "posthtml-rename-id": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.11.tgz", + "integrity": "sha512-8doF8+w+WJT4AZuLVC0feA8Yy7g00IUmZw3YDKn8CKx0uC8FLbCH7JaGMbDOE1ArjyZsJMt1vmyP+IZ8SnNmXw==", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "posthtml-render": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.1.5.tgz", + "integrity": "sha512-yvt54j0zCBHQVEFAuR+yHld8CZrCa/E1Z/OcFNCV1IEWTLVxT8O7nYnM4IIw1CD4r8kaRd3lc42+0lgCKgm87w==", + "dev": true + }, + "posthtml-svg-mode": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", + "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "dev": true, + "requires": { + "merge-options": "1.0.1", + "posthtml": "^0.9.2", + "posthtml-parser": "^0.2.1", + "posthtml-render": "^1.0.6" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -11276,6 +11530,16 @@ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -11764,6 +12028,12 @@ } } }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, "remark": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", @@ -11853,6 +12123,36 @@ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -13273,6 +13573,253 @@ "es6-symbol": "^3.1.1" } }, + "svg-baker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.5.0.tgz", + "integrity": "sha512-UMU4WQMfsmY1l8eqoxBoGTDht02RVu46cC0QoAVsJM6lUvbGCkPnAHHMG3mM8m/D1zAGg8Q0IZXnHokZ9umX0Q==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "clone": "^2.1.1", + "he": "^1.1.1", + "image-size": "^0.5.1", + "loader-utils": "^1.1.0", + "merge-options": "1.0.1", + "micromatch": "3.1.0", + "postcss": "^5.2.17", + "postcss-prefix-selector": "^1.6.0", + "posthtml-rename-id": "^1.0", + "posthtml-svg-mode": "^1.0.3", + "query-string": "^4.3.2", + "traverse": "^0.6.6" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "micromatch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz", + "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.2.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^5.0.2", + "nanomatch": "^1.2.1", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "svg-baker-runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg-baker-runtime/-/svg-baker-runtime-1.4.3.tgz", + "integrity": "sha512-QY6RlJN3v6xPxVQboSrsGiLWaWay+uFstic6QEzoIUK2l6M/lqL/wiqFcoqroBsGpqpP0knXplltLZGTzncbNw==", + "dev": true, + "requires": { + "deepmerge": "1.3.2", + "mitt": "1.1.2", + "svg-baker": "^1.5.0" + }, + "dependencies": { + "deepmerge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", + "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", + "dev": true + } + } + }, + "svg-sprite-loader": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/svg-sprite-loader/-/svg-sprite-loader-4.2.1.tgz", + "integrity": "sha512-IQCJEHWD+CNP8yFptR2SkscLXBgwYwY+34VMNSLBE4RQmJ0dgpAfkF6q8ktgNsXlMhlX6cAM4Zw0t7SnLyyiQA==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "deepmerge": "1.3.2", + "domready": "1.0.8", + "escape-string-regexp": "1.0.5", + "html-webpack-plugin": "^3.2.0", + "loader-utils": "^1.1.0", + "svg-baker": "^1.5.0", + "svg-baker-runtime": "^1.4.3", + "url-slug": "2.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", + "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", + "dev": true + } + } + }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -13320,6 +13867,24 @@ "supports-color": "^5.3.0" } }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", + "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -13331,6 +13896,16 @@ } } }, + "svgo-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/svgo-loader/-/svgo-loader-2.2.1.tgz", + "integrity": "sha512-9dyz/h6ae04pAVRz7QY8bLXtMbwA19NPpCPfCixgW0qXNDCOlHbDRqvtT5/2gzRxfuibWCUP6ZBQmZWF9rjWhQ==", + "dev": true, + "requires": { + "js-yaml": "^3.13.1", + "loader-utils": "^1.0.3" + } + }, "swagger-client": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.10.0.tgz", @@ -13761,6 +14336,12 @@ "through2": "^2.0.3" } }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -13981,6 +14562,12 @@ "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", "dev": true }, + "unidecode": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/unidecode/-/unidecode-0.1.8.tgz", + "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=", + "dev": true + }, "unified": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", @@ -14324,6 +14911,12 @@ } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -14370,6 +14963,15 @@ "ip-regex": "^1.0.1" } }, + "url-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/url-slug/-/url-slug-2.0.0.tgz", + "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", + "dev": true, + "requires": { + "unidecode": "0.1.8" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -14419,6 +15021,12 @@ "object.getownpropertydescriptors": "^2.1.0" } }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", diff --git a/package.json b/package.json index cfae51b567..7f30cb9c24 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "node": ">=10" }, "dependencies": { + "@primer/octicons": "9.4.0", "clipboard": "2.0.4", "fomantic-ui": "2.8.3", "highlight.js": "9.18.1", @@ -36,6 +37,9 @@ "postcss-safe-parser": "4.0.1", "stylelint": "13.0.0", "stylelint-config-standard": "19.0.0", + "svg-sprite-loader": "4.2.1", + "svgo": "1.3.2", + "svgo-loader": "2.2.1", "terser-webpack-plugin": "2.3.4", "updates": "9.3.3", "vue-loader": "15.8.3", diff --git a/public/vendor/assets/octicons/LICENSE b/public/vendor/assets/octicons/LICENSE deleted file mode 100644 index 4cf2020ce7..0000000000 --- a/public/vendor/assets/octicons/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2012-2016 GitHub, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/public/vendor/assets/octicons/octicons.eot b/public/vendor/assets/octicons/octicons.eot Binary files differdeleted file mode 100644 index b4c7a989ae..0000000000 --- a/public/vendor/assets/octicons/octicons.eot +++ /dev/null diff --git a/public/vendor/assets/octicons/octicons.min.css b/public/vendor/assets/octicons/octicons.min.css deleted file mode 100644 index a000669c94..0000000000 --- a/public/vendor/assets/octicons/octicons.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Octicons;src:url(octicons.eot?ef21c39f0ca9b1b5116e5eb7ac5eabe6);src:url(octicons.eot?#iefix) format("embedded-opentype"),url(octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("woff2"),url(octicons.woff?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("woff"),url(octicons.ttf?ef21c39f0ca9b1b5116e5eb7ac5eabe6) format("truetype"),url(octicons.svg?ef21c39f0ca9b1b5116e5eb7ac5eabe6#octicons) format("svg");font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 Octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-ms-user-select:none;user-select:none;speak:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:"\f02d"}.octicon-arrow-down:before{content:"\f03f"}.octicon-arrow-left:before{content:"\f040"}.octicon-arrow-right:before{content:"\f03e"}.octicon-arrow-small-down:before{content:"\f0a0"}.octicon-arrow-small-left:before{content:"\f0a1"}.octicon-arrow-small-right:before{content:"\f071"}.octicon-arrow-small-up:before{content:"\f09f"}.octicon-arrow-up:before{content:"\f03d"}.octicon-beaker:before{content:"\f0dd"}.octicon-bell:before{content:"\f0de"}.octicon-bold:before{content:"\f0e2"}.octicon-book:before{content:"\f007"}.octicon-bookmark:before{content:"\f07b"}.octicon-briefcase:before{content:"\f0d3"}.octicon-broadcast:before{content:"\f048"}.octicon-browser:before{content:"\f0c5"}.octicon-bug:before{content:"\f091"}.octicon-calendar:before{content:"\f068"}.octicon-check:before{content:"\f03a"}.octicon-checklist:before{content:"\f076"}.octicon-chevron-down:before{content:"\f0a3"}.octicon-chevron-left:before{content:"\f0a4"}.octicon-chevron-right:before{content:"\f078"}.octicon-chevron-up:before{content:"\f0a2"}.octicon-circle-slash:before{content:"\f084"}.octicon-circuit-board:before{content:"\f0d6"}.octicon-clippy:before{content:"\f035"}.octicon-clock:before{content:"\f046"}.octicon-cloud-download:before{content:"\f00b"}.octicon-cloud-upload:before{content:"\f00c"}.octicon-code:before{content:"\f05f"}.octicon-comment-discussion:before{content:"\f04f"}.octicon-comment:before{content:"\f02b"}.octicon-credit-card:before{content:"\f045"}.octicon-dash:before{content:"\f0ca"}.octicon-dashboard:before{content:"\f07d"}.octicon-database:before{content:"\f096"}.octicon-desktop-download:before{content:"\f0dc"}.octicon-device-camera-video:before{content:"\f057"}.octicon-device-camera:before{content:"\f056"}.octicon-device-desktop:before{content:"\f27c"}.octicon-device-mobile:before{content:"\f038"}.octicon-diff-added:before{content:"\f06b"}.octicon-diff-ignored:before{content:"\f099"}.octicon-diff-modified:before{content:"\f06d"}.octicon-diff-removed:before{content:"\f06c"}.octicon-diff-renamed:before{content:"\f06e"}.octicon-diff:before{content:"\f04d"}.octicon-ellipses:before{content:"\f101"}.octicon-ellipsis:before{content:"\f09a"}.octicon-eye:before{content:"\f04e"}.octicon-file-binary:before{content:"\f094"}.octicon-file-code:before{content:"\f010"}.octicon-file-directory:before{content:"\f016"}.octicon-file-media:before{content:"\f012"}.octicon-file-pdf:before{content:"\f014"}.octicon-file-submodule:before{content:"\f017"}.octicon-file-symlink-directory:before{content:"\f0b1"}.octicon-file-symlink-file:before{content:"\f0b0"}.octicon-file-text:before{content:"\f011"}.octicon-file-zip:before{content:"\f013"}.octicon-file:before{content:"\f102"}.octicon-flame:before{content:"\f0d2"}.octicon-fold:before{content:"\f0cc"}.octicon-gear:before{content:"\f02f"}.octicon-gift:before{content:"\f042"}.octicon-gist-secret:before{content:"\f08c"}.octicon-gist:before{content:"\f00e"}.octicon-git-branch:before{content:"\f020"}.octicon-git-commit:before{content:"\f01f"}.octicon-git-compare:before{content:"\f0ac"}.octicon-git-merge:before{content:"\f023"}.octicon-git-pull-request:before{content:"\f009"}.octicon-globe:before{content:"\f0b6"}.octicon-grabber:before{content:"\f103"}.octicon-graph:before{content:"\f043"}.octicon-heart:before{content:"\2665"}.octicon-history:before{content:"\f07e"}.octicon-home:before{content:"\f08d"}.octicon-horizontal-rule:before{content:"\f070"}.octicon-hubot:before{content:"\f09d"}.octicon-inbox:before{content:"\f0cf"}.octicon-info:before{content:"\f059"}.octicon-issue-closed:before{content:"\f028"}.octicon-issue-opened:before{content:"\f026"}.octicon-issue-reopened:before{content:"\f027"}.octicon-italic:before{content:"\f0e4"}.octicon-jersey:before{content:"\f019"}.octicon-key:before{content:"\f049"}.octicon-keyboard:before{content:"\f00d"}.octicon-law:before{content:"\f0d8"}.octicon-light-bulb:before{content:"\f000"}.octicon-link-external:before{content:"\f07f"}.octicon-link:before{content:"\f05c"}.octicon-list-ordered:before{content:"\f062"}.octicon-list-unordered:before{content:"\f061"}.octicon-location:before{content:"\f060"}.octicon-lock:before{content:"\f06a"}.octicon-logo-gist:before{content:"\f0ad"}.octicon-logo-github:before{content:"\f092"}.octicon-mail-read:before{content:"\f03c"}.octicon-mail-reply:before{content:"\f051"}.octicon-mail:before{content:"\f03b"}.octicon-mark-github:before{content:"\f00a"}.octicon-markdown:before{content:"\f0c9"}.octicon-megaphone:before{content:"\f077"}.octicon-mention:before{content:"\f0be"}.octicon-milestone:before{content:"\f075"}.octicon-mirror:before{content:"\f024"}.octicon-mortar-board:before{content:"\f0d7"}.octicon-mute:before{content:"\f080"}.octicon-no-newline:before{content:"\f09c"}.octicon-octoface:before{content:"\f008"}.octicon-organization:before{content:"\f037"}.octicon-package:before{content:"\f0c4"}.octicon-paintcan:before{content:"\f0d1"}.octicon-pencil:before{content:"\f058"}.octicon-person:before{content:"\f018"}.octicon-pin:before{content:"\f041"}.octicon-plug:before{content:"\f0d4"}.octicon-plus-small:before{content:"\f104"}.octicon-plus:before{content:"\f05d"}.octicon-primitive-dot:before{content:"\f052"}.octicon-primitive-square:before{content:"\f053"}.octicon-pulse:before{content:"\f085"}.octicon-question:before{content:"\f02c"}.octicon-quote:before{content:"\f063"}.octicon-radio-tower:before{content:"\f030"}.octicon-reply:before{content:"\f105"}.octicon-repo-clone:before{content:"\f04c"}.octicon-repo-force-push:before{content:"\f04a"}.octicon-repo-forked:before{content:"\f002"}.octicon-repo-pull:before{content:"\f006"}.octicon-repo-push:before{content:"\f005"}.octicon-repo:before{content:"\f001"}.octicon-rocket:before{content:"\f033"}.octicon-rss:before{content:"\f034"}.octicon-ruby:before{content:"\f047"}.octicon-search:before{content:"\f02e"}.octicon-server:before{content:"\f097"}.octicon-settings:before{content:"\f07c"}.octicon-shield:before{content:"\f0e1"}.octicon-sign-in:before{content:"\f036"}.octicon-sign-out:before{content:"\f032"}.octicon-smiley:before{content:"\f0e7"}.octicon-squirrel:before{content:"\f0b2"}.octicon-star:before{content:"\f02a"}.octicon-stop:before{content:"\f08f"}.octicon-sync:before{content:"\f087"}.octicon-tag:before{content:"\f015"}.octicon-tasklist:before{content:"\f0e5"}.octicon-telescope:before{content:"\f088"}.octicon-terminal:before{content:"\f0c8"}.octicon-text-size:before{content:"\f0e3"}.octicon-three-bars:before{content:"\f05e"}.octicon-thumbsdown:before{content:"\f0db"}.octicon-thumbsup:before{content:"\f0da"}.octicon-tools:before{content:"\f031"}.octicon-trashcan:before{content:"\f0d0"}.octicon-triangle-down:before{content:"\f05b"}.octicon-triangle-left:before{content:"\f044"}.octicon-triangle-right:before{content:"\f05a"}.octicon-triangle-up:before{content:"\f0aa"}.octicon-unfold:before{content:"\f039"}.octicon-unmute:before{content:"\f0ba"}.octicon-unverified:before{content:"\f0e8"}.octicon-verified:before{content:"\f0e6"}.octicon-versions:before{content:"\f064"}.octicon-watch:before{content:"\f0e0"}.octicon-x:before{content:"\f081"}.octicon-zap:before{content:"\26a1"}
\ No newline at end of file diff --git a/public/vendor/assets/octicons/octicons.svg b/public/vendor/assets/octicons/octicons.svg deleted file mode 100644 index 41cbd3f1fc..0000000000 --- a/public/vendor/assets/octicons/octicons.svg +++ /dev/null @@ -1,429 +0,0 @@ -<?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" > -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> -<metadata> -Created by FontForge 20150913 at Mon Jul 11 12:02:11 2016 - By Aaron Shekey -</metadata> -<defs> -<font id="octicons" horiz-adv-x="96" > - <font-face - font-family="octicons" - font-weight="400" - font-stretch="normal" - units-per-em="96" - panose-1="2 0 5 9 0 0 0 0 0 0" - ascent="84" - descent="-12" - bbox="-0.5 -12.5 96.5 84.5" - underline-thickness="4" - underline-position="-14" - unicode-range="U+2665-F27C" - /> -<missing-glyph -d="M3 0v64h24v-64h-24zM6 3h18v58h-18v-58z" /> - <glyph glyph-name=".notdef" -d="M3 0v64h24v-64h-24zM6 3h18v58h-18v-58z" /> - <glyph glyph-name=".null" horiz-adv-x="0" - /> - <glyph glyph-name="nonmarkingreturn" - /> - <glyph glyph-name="heart" unicode="♥" -d="M67.5 66.5q4.5 -5.5 4.5 -12.5q0 -8 -4 -16q-5 -10 -32 -32q-27 21 -32 32q-4 8 -4 16q0 7 4.5 12.5t13.5 5.5q8 0 13 -6q5 -5 5 -6q0 1 5 6q5 6 13 6q9 0 13.5 -5.5z" /> - <glyph glyph-name="zap" unicode="⚡" -d="M60 42l-54 -54l18 42h-24l54 54l-18 -42h24z" /> - <glyph glyph-name="light-bulb" unicode="" -d="M39 84q14 0 23.5 -8.5t9.5 -21.5q0 -8 -6 -18q-11 -18 -12 -24v-6h-30v6q-1 6 -12 24q-6 10 -6 18q0 13 9.5 21.5t23.5 8.5zM61 39q5 9 5 15q0 10 -8 17t-19 7t-19 -7t-8 -17q0 -6 5 -15q2 -3 4 -7q8 -12 9 -19v-1h18v1q1 7 9 19q2 4 4 7zM24 0h30q-2 -12 -15 -12t-15 12 -z" /> - <glyph glyph-name="repo" unicode="" -d="M24 30h-6v6h6v-6zM24 48v-6h-6v6h6zM24 60v-6h-6v6h6zM24 72v-6h-6v6h6zM72 78v-72q0 -6 -6 -6h-30v-12l-9 9l-9 -9v12h-12q-6 0 -6 6v72q0 6 6 6h60q6 0 6 -6zM66 18h-60v-12h12v6h18v-6h30v12zM66 78h-54v-54h54v54z" /> - <glyph glyph-name="repo-forked" unicode="" -d="M48 78q12 0 12 -12q0 -7 -6 -10v-11l-18 -18v-11q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v11l-18 18v11q-6 3 -6 10q0 12 12 12t12 -12q0 -7 -6 -10v-8l12 -12l12 12v8q-6 3 -6 10q0 12 12 12zM12 59q7 0 7 7t-7 7t-7 -7t7 -7zM30 -1q7 0 7 7t-7 7t-7 -7t7 -7zM48 59 -q7 0 7 7t-7 7t-7 -7t7 -7z" /> - <glyph glyph-name="repo-push" unicode="" -d="M24 66h-6v6h6v-6zM18 54v6h6v-6h-6zM42 54l18 -24h-12v-42h-12v42h-12zM66 84q6 0 6 -6v-72q0 -6 -6 -6h-12v6h12v12h-12v6h12v54h-54v-54h18v-6h-24v-12h24v-6h-24q-6 0 -6 6v72q0 6 6 6h60z" /> - <glyph glyph-name="repo-pull" unicode="" -d="M78 36v12h-36v12h36v12l18 -18zM24 72v-6h-6v6h6zM66 42h6v-36q0 -6 -6 -6h-30v-12l-9 9l-9 -9v12h-12q-6 0 -6 6v72q0 6 6 6h60q6 0 6 -6v-12h-6v12h-54v-54h54v18zM66 18h-60v-12h12v6h18v-6h30v12zM24 48v-6h-6v6h6zM24 60v-6h-6v6h6zM18 30v6h6v-6h-6z" /> - <glyph glyph-name="book" unicode="" -d="M18 54h24v-6h-24v6zM18 36v6h24v-6h-24zM18 24v6h24v-6h-24zM84 54v-6h-24v6h24zM84 42v-6h-24v6h24zM84 30v-6h-24v6h24zM96 66v-54q0 -6 -6 -6h-33l-6 -6l-6 6h-33q-6 0 -6 6v54q0 6 6 6h33l6 -6l6 6h33q6 0 6 -6zM48 63l-3 3h-33v-54h36v51zM90 66h-33l-3 -3v-51h36 -v54z" /> - <glyph glyph-name="octoface" unicode="" -d="M88 52q8 -8 8 -20q0 -15 -6.5 -23.5t-16.5 -11.5t-25 -3q-23 0 -35.5 8t-12.5 30q0 12 8 20q-4 9 1 20q6 2 20 -8q7 2 19 2t19 -2q4 3 7.5 4.5t6 2.5t4 1h2.5q5 -11 1 -20zM48 0q12 0 18.5 1t12 5.5t5.5 13.5q0 7 -6 12q-3 3 -7 3.5t-12 0t-11 -0.5t-8.5 0.5t-8.5 0.5 -t-7 -1t-6 -3q-6 -5 -6 -12q0 -13 9 -16.5t27 -3.5zM33 30q7 0 7 -10.5t-7 -10.5t-7 10.5t7 10.5zM63 30q7 0 7 -10.5t-7 -10.5t-7 10.5t7 10.5z" /> - <glyph glyph-name="git-pull-request" unicode="" -d="M66 16q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v38q0 2 -2 4t-4 2h-6v-12l-18 18l18 18v-12h6q7 0 12.5 -5.5t5.5 -12.5v-38zM60 -1q7 0 7 7t-7 7t-7 -7t7 -7zM24 66q0 -7 -6 -10v-40q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v40q-6 3 -6 10q0 12 12 12t12 -12zM19 6 -q0 7 -7 7t-7 -7t7 -7t7 7zM12 59q7 0 7 7t-7 7t-7 -7t7 -7z" /> - <glyph glyph-name="mark-github" unicode="" -d="M48 84q20 0 34 -14t14 -34q0 -10 -4 -19.5t-11.5 -16t-17.5 -10.5q-3 0 -3 3v4.5v8.5q0 6 -3 9q22 2 22 24q0 7 -5 12q2 6 -1 13q-4 1 -13 -5q-6 2 -12 2t-12 -2q-4 3 -7.5 4t-4.5 1h-1q-3 -7 -1 -13q-4 -5 -4 -12q0 -22 21 -24q-2 -2 -3 -7q-9 -4 -14 4q-3 5 -7 5 -q-3 0 -2.5 -1t2.5 -2q3 -2 5 -7q3 -8 16 -5v-6v-3q0 -3 -3 -3q-15 5 -24 17.5t-9 28.5q0 20 14 34t34 14z" /> - <glyph glyph-name="cloud-download" unicode="" -d="M54 12h12l-18 -18l-18 18h12v30h12v-30zM72 60q24 0 24 -21t-24 -21h-12v8h12q16 0 16 13t-16 13h-8v7q-3 11 -19 11q-7 0 -13 -5t-6 -11v-8h-8q-10 0 -10 -10t10 -10h18v-8h-18q-18 0 -18 18t18 18q0 9 8 16.5t19 7.5q10 0 16.5 -4t8.5 -8t2 -6z" /> - <glyph glyph-name="cloud-upload" unicode="" -d="M42 30h-12l18 18l18 -18h-12v-30h-12v30zM72 54q24 0 24 -21t-24 -21h-12v8h12q16 0 16 13t-16 13h-8v7q-3 11 -19 11q-7 0 -13 -5t-6 -11v-8h-8q-10 0 -10 -10t10 -10h18v-8h-18q-18 0 -18 18t18 18q0 9 8 16.5t19 7.5q10 0 16.5 -4t8.5 -8t2 -6z" /> - <glyph glyph-name="keyboard" unicode="" -d="M60 54h-6v6h6v-6zM18 48v-6h-6v6h6zM48 60v-6h-6v6h6zM24 60v-6h-12v6h12zM72 18v6h12v-6h-12zM48 42v6h6v-6h-6zM24 24v-6h-12v6h12zM72 60v-6h-6v6h6zM84 60v-6h-6v6h6zM72 30v18h12v-18h-12zM96 66v-54q0 -6 -6 -6h-84q-6 0 -6 6v54q0 6 6 6h84q6 0 6 -6zM90 66h-84 -v-54h84v54zM36 42v6h6v-6h-6zM36 60v-6h-6v6h6zM24 42v6h6v-6h-6zM30 18v6h36v-6h-36zM60 42v6h6v-6h-6zM18 36v-6h-6v6h6zM48 36h6v-6h-6v6zM36 36h6v-6h-6v6zM30 36v-6h-6v6h6zM60 30v6h6v-6h-6z" /> - <glyph glyph-name="gist" unicode="" -d="M45 54l15 -15l-15 -15l-5 4l11 11l-11 11zM27 54l5 -4l-11 -11l11 -11l-5 -4l-15 15zM0 6v66q0 6 6 6h60q6 0 6 -6v-66q0 -6 -6 -6h-60q-6 0 -6 6zM6 6h60v66h-60v-66z" /> - <glyph glyph-name="file-code" unicode="" -d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 0v54l-18 18h-42v-72h60zM30 42l-9 -9l9 -9l-3 -6l-15 15l15 15zM45 48l15 -15l-15 -15l-3 6l9 9l-9 9z" /> - <glyph glyph-name="file-text" unicode="" -d="M36 54h-24v6h24v-6zM12 36v6h42v-6h-42zM12 24v6h42v-6h-42zM12 12v6h42v-6h-42zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-72h60v54z" /> - <glyph glyph-name="file-media" unicode="" -d="M36 54h12v-12h-12v12zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-66l18 30l12 -24l12 12l18 -18v48z" /> - <glyph glyph-name="file-zip" unicode="" -d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 0v54l-18 18h-18v-6h-6v6h-18v-72h60zM30 60v6h6v-6h-6zM24 60h6v-6h-6v6zM30 48v6h6v-6h-6zM24 48h6v-6h-6v6zM30 36v6h6v-6h-6zM24 28v8h6v-6q12 0 12 -12v-6h-24v6q0 7 6 10zM36 24h-12v-6h12v6z" /> - <glyph glyph-name="file-pdf" unicode="" -d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM6 72v-56l6 4q2 1 4 1q0 1 1 2.5t2 4t3 4.5l6 16q-1 6 -2 11q0 5 1 9q0 2 1 3t2 1h-24zM33 43v0l-6 -14t-4 -7q6 2 11.5 3.5t10.5 1.5q-3 2 -5 4q-5 5 -7 12zM66 0v0v18h-2l-8 2t-8 3q-5 -1 -9 -1q-6 -2 -9 -2 -l-2 -1q-3 -1 -5 -2q-4 -8 -11 -14q-2 -2 -4 -3h1h57zM66 29v0v25l-18 18h-15q2 0 4 -1q1 -3 1 -6v-4q0 -6 -1 -12q2 -8 7 -14q3 -3 6 -4q4 0 8 1q2 -1 4 -1z" /> - <glyph glyph-name="tag" unicode="" -d="M46 74l37 -37q4 -4 0 -8l-28 -28q-4 -4 -8 0l-37 37q-4 4 -4 10v15q0 6 4.5 10.5t10.5 4.5h15q6 0 10 -4zM14 41l37 -36l28 28l-36 37q-3 3 -7 3h-15q-10 0 -10 -10v-15q0 -4 3 -7zM18 66h12v-12h-12v12z" /> - <glyph glyph-name="file-directory" unicode="" -d="M78 60q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h30q6 0 6 -6v-6h36zM36 60v6h-30v-6h30z" /> - <glyph glyph-name="file-submodule" unicode="" -d="M60 42v-6h24v-30q0 -6 -6 -6h-54v42h36zM54 30v6h-24v-6h24zM78 60q6 0 6 -6v-12h-18q0 6 -6 6h-36q-6 0 -6 -6v-42h-12q-6 0 -6 6v60q0 6 6 6h30q6 0 6 -6v-6h36zM36 60v6h-30v-6h30z" /> - <glyph glyph-name="person" unicode="" -d="M72 0q0 -6 -6 -6h-60q-6 0 -6 6v6q0 7 6 13t12 9l6 2q1 2 0 6q-6 4 -6 24q1 18 18 18t18 -18q0 -20 -6 -24v-6q24 -8 24 -24v-6z" /> - <glyph glyph-name="jersey" unicode="" -d="M27 48h12l3 -3v-30l-3 -3h-12l-3 3v30zM36 18v24h-6v-24h6zM73.5 61.5q1.5 -12.5 10.5 -13.5v-54q0 -2 -2 -4t-4 -2h-66q-2 0 -4 2t-2 4v54q9 1 10 14q2 12 2 22h18q0 -2 2 -4t7 -2t7 2t2 4h18q0 -10 1.5 -22.5zM78 -6v48q-7 5 -10 16q-2 7 -2 20h-6q0 -7 -3 -12 -q-3 -6 -12 -6t-12 6q-3 5 -3 12h-6q0 -14 -2 -22q-2 -9 -10 -14v-48h66zM51 48h12l3 -3v-30l-3 -3h-12l-3 3v30zM60 18v24h-6v-24h6z" /> - <glyph glyph-name="git-commit" unicode="" -d="M65 42h19v-12h-19q-5 -18 -23 -18t-23 18h-19v12h19q5 18 23 18t23 -18zM42 23q5 0 9 4t4 9t-4 9t-9 4t-9 -4t-4 -9t4 -9t9 -4z" /> - <glyph glyph-name="git-branch" unicode="" -d="M60 54q0 -7 -6 -10q-1 -12 -8 -19t-16 -7q-3 0 -6 -1l-1.5 -1.5l-1.5 -1.5q3 -3 3 -8q0 -12 -12 -12t-12 12q0 7 6 10v40q-6 3 -6 10q0 5 3.5 8.5t8.5 3.5t8.5 -3.5t3.5 -8.5q0 -7 -6 -10v-29q4 3 12 3q5 0 8.5 3.5t3.5 8.5v2q-6 3 -6 10q0 12 12 12t12 -12zM12 73 -q-7 0 -7 -7t7 -7t7 7t-7 7zM12 -1q7 0 7 7t-7 7t-7 -7t7 -7zM48 47q7 0 7 7t-7 7t-7 -7t7 -7z" /> - <glyph glyph-name="git-merge" unicode="" -d="M60 42q12 0 12 -12t-12 -12q-7 0 -10 6q-11 0 -18.5 4t-13.5 10v-22q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v40q-6 3 -6 10q0 3 1.5 6t4.5 4.5t6 1.5q5 0 8.5 -3.5t3.5 -8.5q0 -6 -4 -9q4 -9 11 -15q8 -6 19 -6q3 6 10 6zM19 6q0 7 -7 7t-7 -7t7 -7t7 7zM12 59 -q7 0 7 7t-7 7t-7 -7t7 -7zM60 23q7 0 7 7t-7 7t-7 -7t7 -7z" /> - <glyph glyph-name="mirror" unicode="" -d="M93 56q3 -2 3 -5v-63l-45 24l-45 -24v63q0 3 3 5l42 28zM90 -3v54l-36 24v-27h-6v27l-36 -24v-54l36 19v8h6v-8zM36 42h30v12l18 -18l-18 -18v12h-30v-12l-18 18l18 18v-12z" /> - <glyph glyph-name="issue-opened" unicode="" -d="M42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5zM48 60v-30h-12v30h12zM48 24v-12h-12v12h12z" /> - <glyph glyph-name="issue-reopened" unicode="" -d="M48 30h-12v30h12v-30zM36 12v12h12v-12h-12zM74 24h10v-24l-10 10q-12 -16 -32 -16q-17 0 -29.5 12.5t-12.5 29.5v6h8v-6q0 -14 10 -24t24 -10q17 0 27 13l-9 9h14zM10 48h-10v24l10 -10q12 16 32 16q17 0 29.5 -12.5t12.5 -29.5v-6h-8v6q0 14 -10 24t-24 10 -q-17 0 -27 -13l9 -9h-14z" /> - <glyph glyph-name="issue-closed" unicode="" -d="M42 24h12v-12h-12v12zM54 60v-30h-12v30h12zM63 51l9 -9l18 21l6 -6l-24 -27l-15 15zM48 2q12 0 21 7t12 18l9 9q0 -17 -12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5q20 0 33 -15l-6 -6q-10 13 -27 13q-14 0 -24 -10t-10 -24t10 -24t24 -10z" /> - <glyph glyph-name="star" unicode="" -d="M84 48l-22 -20l6 -28l-26 14l-26 -14l6 28l-22 20l29 4l13 26l13 -26z" /> - <glyph glyph-name="comment" unicode="" -d="M84 78q6 0 6 -6v-48q0 -6 -6 -6h-39l-21 -21v21h-12q-6 0 -6 6v48q0 6 6 6h72zM84 24v48h-72v-48h18v-12l12 12h42z" /> - <glyph glyph-name="question" unicode="" -d="M36 24h12v-12h-12v12zM60 45q0 -6 -3 -9.5t-6 -4.5l-3 -1h-12q0 6 6 6h3q3 0 3 3v6q0 3 -3 3h-6q-3 0 -3 -3v-3h-12q0 7 5.5 12.5t12.5 5.5q18 0 18 -15zM42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5t12.5 -29.5 -t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5z" /> - <glyph glyph-name="alert" unicode="" -d="M53 75l41 -72q2 -3 0.5 -6t-5.5 -3h-82q-4 0 -5.5 3t0.5 6l41 72q1 3 4.5 3t5.5 -3zM54 6v12h-12v-12h12zM54 24v24h-12v-24h12z" /> - <glyph glyph-name="search" unicode="" -d="M94 4q4 -4 0 -8q-1 -2 -3.5 -2t-4.5 2l-23 23q-10 -7 -21 -7q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -11 -7 -21zM42 20q12 0 20 8t8 20t-8 20t-20 8t-20 -8t-8 -20t8 -20t20 -8z" /> - <glyph glyph-name="gear" unicode="" -d="M84 31v1l-12 -5l-2 -6l5 -11l-7 -7l-11 5l-6 -2l-4 -12h-10l-4 12l-6 2l-11 -5l-7 7l5 11l-2 6l-12 4v10l12 4l2 6l-5 11l7 7l11 -5l6 2l4 12h10l4 -12l6 -2l11 5l7 -7l-5 -11l2 -6l12 -4v-10zM42 18q7 0 12.5 5.5t5.5 12.5t-5.5 12.5t-12.5 5.5t-12.5 -5.5t-5.5 -12.5 -t5.5 -12.5t12.5 -5.5z" /> - <glyph glyph-name="radio-tower" unicode="" -d="M29 47.5q-3 -2.5 -6 -0.5q-5 6 -5 13t5 13q1 1 3 1t3 -1q2 -3 -0.5 -6t-2.5 -7t3 -7t0 -5.5zM14 81q3 -3 0 -6q-6 -6 -6 -15t6 -15q3 -3 0 -6t-6 0q-8 9 -8 21t8 21q2 1 3.5 1t2.5 -1zM48 50q-10 0 -10 10t10 10t10 -10t-10 -10zM88 81q8 -9 8 -21t-8 -21q-2 -1 -3.5 -1 -t-2.5 1q-3 3 0 6q6 6 6 15t-6 15q-3 3 0 6t6 0zM48 42q4 0 7 2l19 -50h-9l-5 6h-24l-5 -6h-9l19 50q3 -2 7 -2zM48 40l-6 -22h12zM36 6h24l-6 6h-12zM67 72.5q3 2.5 6 0.5q5 -6 5 -13t-5 -13q-1 -1 -3 -1t-3 1q-2 3 0.5 6t2.5 7t-3 7t0 5.5z" /> - <glyph glyph-name="tools" unicode="" -d="M27 40q-12 -4 -21 6q-8 8 -5 20l11 -12l12 3l3 12l-12 12q12 3 20 -5.5t5 -20.5l3 -3l-10 -11l5 -5l-3 -4zM66 29l22 -24q3 -3 3 -7t-3 -7t-7 -3t-6 3l-23 24zM96 69l-43 -45l-6 6l-26 -27l-3 -6l-13 -9l-2 2l8 14l6 3l26 27l-5 5l43 45z" /> - <glyph glyph-name="sign-out" unicode="" -d="M72 30v12h-24v12h24v12l24 -18zM60 12v24h6v-24q0 -6 -6 -6h-24v-18l-33 16q-3 2 -3 6v68q0 6 6 6h54q6 0 6 -6v-18h-6v18h-48l24 -12v-54h24z" /> - <glyph glyph-name="rocket" unicode="" -d="M73 61q2 -2 5 -3.5t6 -2.5q-3 -6 -6 -10q-4 -5 -9 -10q-2 -2 -15 -11v-18l-18 -18v18l12 12q-2 -1 -6.5 -2.5l-7.5 -2.5l-4 -1l-6 6q-1 1 6 18l-12 -12h-18l18 18h18q10 14 11 15q5 5 10 8.5t10 6.5l2 -6q2 -3 4 -5zM96 84q-1 -2 -2 -6q-2 -7 -6 -16q-7 0 -10.5 4 -t-3.5 10q10 5 16 6l6 2v0z" /> - <glyph glyph-name="rss" unicode="" -d="M12 6h-12v12q12 0 12 -12zM0 66q25 0 42.5 -17.5t17.5 -42.5h-6q0 22 -16 38t-38 16v6zM0 42q15 0 25.5 -10.5t10.5 -25.5h-6q0 12 -9 21t-21 9v6z" /> - <glyph glyph-name="clippy" unicode="" -d="M12 6h24v-6h-24v6zM42 42v-6h-30v6h30zM54 24h30v-12h-30v-12l-18 18l18 18v-12zM27 30v-6h-15v6h15zM12 12v6h15v-6h-15zM66 6h6v-12q0 -3 -2 -4.5t-4 -1.5h-60q-6 0 -6 6v66q0 6 6 6h18q0 12 12 12t12 -12h18q6 0 6 -6v-30h-6v18h-60v-54h60v12zM12 54h48q0 6 -6 6h-6 -q-6 0 -6 6t-6 6t-6 -6t-6 -6h-6q-6 0 -6 -6z" /> - <glyph glyph-name="sign-in" unicode="" -d="M42 44v-32h24v24h6v-24q0 -6 -6 -6h-24v-18l-33 16q-3 2 -3 6v68q0 6 6 6h54q6 0 6 -6v-18h-6v18h-48l24 -12v-14l18 14v-12h24v-12h-24v-12z" /> - <glyph glyph-name="organization" unicode="" -d="M96 6q0 -6 -6 -6h-42q-6 0 -6 6h-36q-6 0 -6 6q0 7 4.5 13t9.5 9l4 2q1 2 0 6q-6 5 -6 18q0 18 15 18t15 -18q0 -13 -6 -18v-6q9 -4 15 -13l9 7q1 2 0 6l-1 1q-5 4 -5 17q0 18 15 18t15 -18q0 -7 -0.5 -10.5t-1.5 -4.5t-4 -3v-6q18 -8 18 -24v0z" /> - <glyph glyph-name="device-mobile" unicode="" -d="M54 84q6 0 6 -6v-84q0 -6 -6 -6h-48q-6 0 -6 6v84q0 6 6 6h48zM30 -8q8 0 8 8t-8 8t-8 -8t8 -8zM54 12v60h-48v-60h48z" /> - <glyph glyph-name="unfold" unicode="" -d="M69 39l15 -15q0 -6 -6 -6h-24v6h21l-12 12h-42l-12 -12h21v-6h-24q-6 0 -6 6l15 15l-15 15q0 6 6 6h24v-6h-21l12 -12h42l12 12h-21v6h24q6 0 6 -6zM36 48v18h-12l18 18l18 -18h-12v-18h-12zM48 30v-18h12l-18 -18l-18 18h12v18h12z" /> - <glyph glyph-name="check" unicode="" -d="M72 54l-48 -48l-24 24l9 9l15 -15l39 39z" /> - <glyph glyph-name="mail" unicode="" -d="M0 60q0 6 6 6h72q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v48zM78 60h-72l36 -30zM6 51v-36l24 18zM12 12h60l-21 18l-9 -9l-9 9zM78 15v36l-24 -18z" /> - <glyph glyph-name="mail-read" unicode="" -d="M36 54h-12v6h12v-6zM54 48v-6h-30v6h30zM84 51v-51q0 -6 -6 -6h-72q-6 0 -6 6v51q0 3 3 5l9 7v3q0 6 6 6h7l17 12l17 -12h7q6 0 6 -6v-3l9 -7q3 -2 3 -5zM18 39l24 -15l24 15v27h-48v-27zM6 3l27 18l-27 18v-36zM72 0l-30 18l-30 -18h60zM78 39l-27 -18l27 -18v36z" /> - <glyph glyph-name="arrow-up" unicode="" -d="M30 66l30 -36h-18v-24h-24v24h-18z" /> - <glyph glyph-name="arrow-right" unicode="" -d="M60 36l-36 -30v18h-24v24h24v18z" /> - <glyph glyph-name="arrow-down" unicode="" -d="M42 42h18l-30 -36l-30 36h18v24h24v-24z" /> - <glyph glyph-name="arrow-left" unicode="" -d="M36 66v-18h24v-24h-24v-18l-36 30z" /> - <glyph glyph-name="pin" unicode="" -d="M60 77q0 2 2 2.5t3 -0.5l26 -26q1 -1 0.5 -3t-2.5 -2h-5l-6 3l-18 -27v-23q0 -2 -2 -2.5t-3 0.5l-19 19l-30 -24l24 30l-19 19q-1 1 -0.5 3t2.5 2h23l27 18l-3 6v5z" /> - <glyph glyph-name="gift" unicode="" -d="M78 60q6 0 6 -6v-18h-6v-30q0 -6 -6 -6h-54q-6 0 -6 6v30h-6v18q0 6 6 6h8q-2 3 -2 5q-1 7 3 10q3 3 9 3q5 0 9 -3t6 -8q2 5 6 8t9 3h1q5 0 8 -3t3 -10q0 -2 -2 -5h8zM49 65l-2 -5h17q3 4 3 6q0 4 -2 6q-1 1 -4 1h-1q-3 0 -6 -2t-5 -6zM25 72q-2 -2 -2 -6q0 -2 3 -6h17 -l-2 5q-2 4 -5 6t-6 2q-4 0 -5 -1zM42 6v30h-24v-30h24zM42 42v12h-30v-12h30zM72 6v30h-24v-30h24zM78 42v12h-30v-12h30z" /> - <glyph glyph-name="graph" unicode="" -d="M96 0v-6h-96v90h6v-84h90zM30 6h-12v30h12v-30zM54 6h-12v60h12v-60zM78 6h-12v42h12v-42z" /> - <glyph glyph-name="triangle-left" unicode="" -d="M36 72v-72l-36 36z" /> - <glyph glyph-name="credit-card" unicode="" -d="M72 30h-60v6h60v-6zM96 66v-54q0 -6 -6 -6h-84q-6 0 -6 6v54q0 6 6 6h84q6 0 6 -6zM90 48h-84v-36h84v36zM90 66h-84v-6h84v6zM36 24v-6h-24v6h24z" /> - <glyph glyph-name="clock" unicode="" -d="M48 36h18v-12h-24q-6 0 -6 6v30h12v-24zM42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5z" /> - <glyph glyph-name="ruby" unicode="" -d="M78 48l-30 -30v42h18zM96 48l-48 -48l-48 48l24 24h48zM48 9l39 39l-18 18h-42l-18 -18z" /> - <glyph glyph-name="broadcast" unicode="" -d="M54 30q6 0 6 -6v-12h-6v-18q0 -6 -6 -6h-6q-6 0 -6 6v18h-6v12q0 6 6 6h6q-6 0 -6 6v6q0 6 6 6h6q6 0 6 -6v-6q0 -6 -6 -6h6zM42 42v-6h6v6h-6zM54 18v6h-18v-6h6v-24h6v24h6zM67 39q0 9 -6.5 15.5t-15.5 6.5t-15.5 -6.5t-6.5 -15.5q0 -3 1 -5v-12q-6 8 -6 17q0 11 8 19 -t19 8q7 0 13.5 -3.5t10 -10t3.5 -13.5q0 -9 -6 -17v12q1 3 1 5zM90 39q0 -27 -24 -40v7q19 11 19 33q0 16 -12 28t-28 12t-28 -12t-12 -28q0 -22 19 -33v-7q-24 13 -24 40q0 19 13 32t32 13t32 -13t13 -32z" /> - <glyph glyph-name="key" unicode="" -d="M77 71q7 -7 7 -17t-7 -17t-17 -7q-3 0 -5 1l-7 -7h-12v-6h-6v-6h-6v-6l-6 -6h-12l-6 6v6l37 37q-1 2 -1 5q0 10 7 17t17 7t17 -7zM66 52q8 0 8 8t-8 8t-8 -8t8 -8z" /> - <glyph glyph-name="repo-force-push" unicode="" -d="M60 30h-12v-42h-12v42h-12l14 18h-14l18 24l18 -24h-14zM66 84q6 0 6 -6v-72q0 -6 -6 -6h-12v6h12v12h-12v6h12v54h-54v-54h18v-6h-24v-12h24v-6h-24q-6 0 -6 6v72q0 6 6 6h60z" /> - <glyph glyph-name="repo-clone" unicode="" -d="M90 84q6 0 6 -6v-36q0 -6 -6 -6h-18v-6h-6v6h-6q-6 0 -6 6v42h36zM66 42v6h-6v-6h6zM90 42v6h-18v-6h18zM90 54v24h-24v-24h24zM24 54h-6v6h6v-6zM24 66h-6v6h6v-6zM12 78v-54h60v-18q0 -6 -6 -6h-30v-12l-9 9l-9 -9v12h-12q-6 0 -6 6v72q0 6 6 6h42v-6h-36zM66 18h-60 -v-12h12v6h18v-6h30v12zM18 36h6v-6h-6v6zM24 42h-6v6h6v-6z" /> - <glyph glyph-name="diff" unicode="" -d="M36 42h12v-6h-12v-12h-6v12h-12v6h12v12h6v-12zM18 6v6h30v-6h-30zM45 72l21 -21v-57q0 -6 -6 -6h-54q-6 0 -6 6v72q0 6 6 6h39zM60 48l-18 18h-36v-72h54v54zM51 84l27 -27v-51h-6v48l-24 24h-30v6h33z" /> - <glyph glyph-name="eye" unicode="" -d="M48 72q9 0 17 -3.5t13 -9t9.5 -11t6.5 -8.5l2 -4q-2 -4 -6 -10t-16 -16t-26 -10q-8 0 -16 3.5t-13.5 9t-10 11t-6.5 8.5l-2 4q2 4 6 10t16.5 16t25.5 10zM48 12q10 0 17 7t7 17t-7 17t-17 7t-17 -7t-7 -17t7 -17t17 -7zM60 36q0 -12 -12 -12t-12 12t12 12t12 -12z" /> - <glyph glyph-name="comment-discussion" unicode="" -d="M90 78q6 0 6 -6v-36q0 -6 -6 -6h-6v-18l-18 18h-6v-12q0 -6 -6 -6h-24l-18 -18v18h-6q-6 0 -6 6v36q0 6 6 6h24v12q0 6 6 6h54zM54 18v12h-18q-6 0 -6 6v18h-24v-36h12v-9l9 9h27zM90 36v36h-54v-36h33l9 -9v9h12z" /> - <glyph glyph-name="mail-reply" unicode="" -d="M36 69v-18q15 -2 25.5 -13.5t10.5 -30.5q-3 13 -14.5 19.5t-21.5 6.5v-18l-36 27z" /> - <glyph glyph-name="primitive-dot" unicode="" -d="M0 36q0 10 7 17t17 7t17 -7t7 -17t-7 -17t-17 -7t-17 7t-7 17z" /> - <glyph glyph-name="primitive-square" unicode="" -d="M48 12h-48v48h48v-48z" /> - <glyph glyph-name="device-camera" unicode="" -d="M90 66q6 0 6 -6v-54q0 -6 -6 -6h-84q-6 0 -6 6v54q0 6 6 6q0 6 6 6h24q6 0 6 -6h48zM36 54v6h-24v-6h24zM63 12q9 0 15 6t6 15t-6 15t-15 6t-15 -6t-6 -15t6 -15t15 -6zM78 33q0 -15 -15 -15q-6 0 -10.5 4.5t-4.5 10.5t4.5 10.5t10.5 4.5t10.5 -4.5t4.5 -10.5z" /> - <glyph glyph-name="device-camera-video" unicode="" -d="M91 71q2 2 3.5 1t1.5 -3v-60q0 -2 -1.5 -3t-3.5 1l-31 21v-16q0 -6 -6 -6h-48q-6 0 -6 6v54q0 6 6 6h48q6 0 6 -6v-16z" /> - <glyph glyph-name="pencil" unicode="" -d="M0 12l48 48l18 -18l-48 -48h-18v18zM18 0v6h-6v6h-6v-12h12zM80 56l-8 -8l-18 18l8 8q4 4 8 0l10 -10q4 -4 0 -8z" /> - <glyph glyph-name="info" unicode="" -d="M38 50q-2 2 -2 4.5t2 4t4.5 1.5t4 -2t1.5 -4.5t-2 -3.5q-2 -2 -4 -2t-4 2zM48 36v-18h6q0 -2 -2 -4t-4 -2h-6q-2 0 -4 2t-2 4v18h-6q0 2 2 4t4 2h6q2 0 4 -2t2 -4zM42 70q-14 0 -24 -10t-10 -24t10 -24t24 -10t24 10t10 24t-10 24t-24 10zM42 78q17 0 29.5 -12.5 -t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 30t12.5 29.5t29.5 12z" /> - <glyph glyph-name="triangle-right" unicode="" -d="M0 0v72l36 -36z" /> - <glyph glyph-name="triangle-down" unicode="" -d="M0 54h72l-36 -36z" /> - <glyph glyph-name="link" unicode="" -d="M24 30h6v-6h-6q-7 0 -12.5 6.5t-5.5 14.5t5.5 14.5t12.5 6.5h24q7 0 12.5 -6.5t5.5 -14.5q0 -14 -12 -19v6q6 5 6 13q0 6 -4 10.5t-8 4.5h-24q-4 0 -8 -4.5t-4 -10.5t3.5 -10.5t8.5 -4.5zM78 48q7 0 12.5 -6.5t5.5 -14.5t-5.5 -14.5t-12.5 -6.5h-24q-7 0 -12.5 6.5 -t-5.5 14.5q0 14 12 19v-6q-6 -5 -6 -13q0 -6 4 -10.5t8 -4.5h24q4 0 8 4.5t4 10.5t-3.5 10.5t-8.5 4.5h-6v6h6z" /> - <glyph glyph-name="plus" unicode="" -d="M72 30h-30v-30h-12v30h-30v12h30v30h12v-30h30v-12z" /> - <glyph glyph-name="three-bars" unicode="" -d="M68 30h-64q-4 0 -4 6t4 6h64q4 0 4 -6t-4 -6zM68 54h-64q-4 0 -4 6t4 6h64q4 0 4 -6t-4 -6zM4 18h64q4 0 4 -6t-4 -6h-64q-4 0 -4 6t4 6z" /> - <glyph glyph-name="code" unicode="" -d="M57 66l27 -30l-27 -30l-9 9l21 21l-21 21zM27 66l9 -9l-21 -21l21 -21l-9 -9l-27 30z" /> - <glyph glyph-name="location" unicode="" -d="M36 84q15 0 25.5 -9.5t10.5 -23.5q0 -12 -9 -28t-18 -25l-9 -10q-36 36 -36 63q0 14 10.5 23.5t25.5 9.5zM36 -3q30 32 30 54q0 11 -8.5 19t-21.5 8q-12 0 -21 -8t-9 -19q0 -22 30 -54zM48 51q0 -12 -12 -12t-12 12t12 12t12 -12z" /> - <glyph glyph-name="list-unordered" unicode="" -d="M12 6q0 -6 -4 -6h-4q-4 0 -4 6t4 6h4q4 0 4 -6zM28 60q-4 0 -4 6t4 6h40q4 0 4 -6t-4 -6h-40zM8 42q4 0 4 -6t-4 -6h-4q-4 0 -4 6t4 6h4zM8 72q4 0 4 -6t-4 -6h-4q-4 0 -4 6t4 6h4zM68 42q4 0 4 -6t-4 -6h-40q-4 0 -4 6t4 6h40zM68 12q4 0 4 -6t-4 -6h-40q-4 0 -4 6t4 6 -h40z" /> - <glyph glyph-name="list-ordered" unicode="" -d="M72 6q0 -6 -4 -6h-40q-4 0 -4 6t4 6h40q4 0 4 -6zM28 60q-4 0 -4 6t4 6h40q4 0 4 -6t-4 -6h-40zM68 42q4 0 4 -6t-4 -6h-40q-4 0 -4 6t4 6h40zM12 78v-19h6v-5h-17v5h5v13h-4v4q4 1 6 2h4zM14 29h-1h4l1 -5h-18v3q10 10 10 13t-3 3q-1 0 -4 -2l-3 3q4 4 8 4q8 0 8 -8 -q0 -4 -6 -11h4zM13 7q5 -2 5 -6q0 -7 -10 -7q-5 0 -8 3l3 4q2 -2 5 -2t3 2q0 3 -6 3v5q5 0 5 2t-2 2t-4 -1l-3 3q3 4 7 4q9 0 9 -7q0 -4 -4 -5z" /> - <glyph glyph-name="quote" unicode="" -d="M37 63q-22 -14 -22 -35h3q6 0 10.5 -4t4.5 -10q0 -16 -15 -16q-18 0 -18 26q0 33 30 50zM79 63q-22 -14 -22 -35h3q4 0 7.5 -1.5t5.5 -5t2 -7.5q0 -16 -15 -16q-18 0 -18 26q0 33 30 50z" /> - <glyph glyph-name="versions" unicode="" -d="M78 66q6 0 6 -6v-48q0 -6 -6 -6h-36q-6 0 -6 6v48q0 6 6 6h36zM72 18v36h-24v-36h24zM24 60h6v-6h-6v-36h6v-6h-6q-6 0 -6 6v36q0 6 6 6zM6 54h6v-6h-6v-24h6v-6h-6q-6 0 -6 6v24q0 6 6 6z" /> - <glyph glyph-name="calendar" unicode="" -d="M78 72q6 0 6 -6v-66q0 -6 -6 -6h-66q-6 0 -6 6v66q0 6 6 6h6v-9q0 -3 3 -3h12q3 0 3 3v9h18v-9q0 -3 3 -3h12q3 0 3 3v9h6zM78 0v54h-66v-54h66zM30 66h-6v12h6v-12zM66 66h-6v12h6v-12zM36 42h-6v6h6v-6zM48 42h-6v6h6v-6zM60 42h-6v6h6v-6zM72 42h-6v6h6v-6zM24 30h-6 -v6h6v-6zM36 30h-6v6h6v-6zM48 30h-6v6h6v-6zM60 30h-6v6h6v-6zM72 30h-6v6h6v-6zM24 18h-6v6h6v-6zM36 18h-6v6h6v-6zM48 18h-6v6h6v-6zM60 18h-6v6h6v-6zM72 18h-6v6h6v-6zM24 6h-6v6h6v-6zM36 6h-6v6h6v-6zM48 6h-6v6h6v-6zM60 6h-6v6h6v-6z" /> - <glyph glyph-name="lock" unicode="" -d="M24 6h-6v6h6v-6zM72 42v-42q0 -6 -6 -6h-60q-6 0 -6 6v42q0 6 6 6h6v12q0 10 7 17t17 7t17 -7t7 -17v-12h6q6 0 6 -6zM23 48h26v12q0 5 -3.5 9t-9 4t-9.5 -4t-4 -9v-12zM66 42h-54v-42h54v42zM24 36v-6h-6v6h6zM24 24v-6h-6v6h6z" /> - <glyph glyph-name="diff-added" unicode="" -d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM36 30h-18v12h18v18h12v-18h18v-12h-18v-18h-12v18z" /> - <glyph glyph-name="diff-removed" unicode="" -d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM66 30h-48v12h48v-12z" /> - <glyph glyph-name="diff-modified" unicode="" -d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM24 36q0 7 5.5 12.5t12.5 5.5t12.5 -5.5t5.5 -12.5t-5.5 -12.5t-12.5 -5.5t-12.5 5.5t-5.5 12.5z" /> - <glyph glyph-name="diff-renamed" unicode="" -d="M36 30h-18v12h18v18l30 -24l-30 -24v18zM84 72v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72q6 0 6 -6zM78 72h-72v-72h72v72z" /> - <glyph glyph-name="horizontal-rule" unicode="" -d="M6 42v-12h-6v36h6v-18h12v18h6v-36h-6v12h-12zM60 30h-6v12h6v-12zM60 48h-6v12h6v-12zM42 48h12v-6h-12v-12h-6v36h18v-6h-12v-12zM0 6v12h60v-12h-60z" /> - <glyph glyph-name="arrow-small-right" unicode="" -d="M36 36l-24 -18v12h-12v12h12v12z" /> - <glyph glyph-name="milestone" unicode="" -d="M48 72h-12v12h12v-12zM72 42h-60q-6 0 -6 6v12q0 6 6 6h60l12 -12zM48 60h-12v-12h12v12zM36 -12v48h12v-48h-12z" /> - <glyph glyph-name="checklist" unicode="" -d="M96 33l-36 -36l-18 18l9 9l9 -9l27 27zM34 11l5 -5h-27q-6 0 -6 6v54q0 6 6 6h42q6 0 6 -6v-39l-5 5q-4 4 -8 0l-13 -13q-4 -4 0 -8zM24 60h30v6h-30v-6zM24 48h30v6h-30v-6zM24 36h18v6h-18v-6zM18 30h-6v-6h6v6zM18 42h-6v-6h6v6zM18 54h-6v-6h6v6zM18 66h-6v-6h6v6z -" /> - <glyph glyph-name="megaphone" unicode="" -d="M60 78q6 0 6 -6v-66q0 -6 -6 -6q-2 0 -3 1q-2 1 -5.5 3.5t-8 5.5l-7.5 5v-21h-12v28q-4 1 -6 2q-18 0 -18 15t18 15q4 1 11.5 5.5t16.5 10.5t11 7q1 1 3 1zM60 6v66l-9 -6q-1 0 -2 -1l-1 -1v-50q1 0 2 -1l1 -1q7 -5 9 -6zM72 42h24v-6h-24v6zM72 30l24 -12v-6l-24 12v6z -M96 66v-6l-24 -12v6z" /> - <glyph glyph-name="chevron-right" unicode="" -d="M45 36l-30 -30l-9 9l22 21l-22 21l9 9z" /> - <glyph glyph-name="bookmark" unicode="" -d="M54 84q6 0 6 -6v-90l-30 19l-30 -19v90q0 6 6 6h48zM49 58q2 2 0 2h-14l-4 13h-2l-4 -13h-14q-2 0 0 -2l11 -8l-4 -13q-1 -2 1 -1l11 8l11 -8h1.5t-0.5 1l-4 13z" /> - <glyph glyph-name="settings" unicode="" -d="M24 42h-6v30h6v-30zM18 0v18h6v-18h-6zM48 0v36h6v-36h-6zM78 0v12h6v-12h-6zM84 72v-36h-6v36h6zM54 72v-12h-6v12h6zM30 36q6 0 6 -6t-6 -6h-18q-6 0 -6 6t6 6h18zM60 54q6 0 6 -6t-6 -6h-18q-6 0 -6 6t6 6h18zM90 30q6 0 6 -6t-6 -6h-18q-6 0 -6 6t6 6h18z" /> - <glyph glyph-name="dashboard" unicode="" -d="M54 54h-6v6h6v-6zM78 36v-6h-6v6h6zM36 54v-6h-6v6h6zM30 36v-6h-6v6h6zM96 69l-36 -33v-6q0 -6 -6 -6h-6q-6 0 -6 6v6q0 6 6 6h6l39 30zM86 44l6 6q4 -8 4 -17q0 -19 -13 -32t-32 -13t-32 13t-13 32t13 32t32 13q14 0 25 -8l-5 -5q-9 5 -20 5q-15 0 -26 -11t-11 -26 -t11 -26t26 -11q10 0 18.5 5t13.5 13.5t5 18.5q0 6 -2 11z" /> - <glyph glyph-name="history" unicode="" -d="M48 6h-12v42h30v-12h-18v-30zM42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5v6h8v-6q0 -14 10 -24t24 -10t24 10t10 24t-10 24t-24 10q-17 0 -27 -13l9 -9h-24v24l10 -10q12 16 32 16z" /> - <glyph glyph-name="link-external" unicode="" -d="M66 24h6v-18q0 -6 -6 -6h-60q-6 0 -6 6v60q0 6 6 6h18v-6h-18v-60h60v18zM36 72h36v-36l-14 14l-19 -20l-9 9l20 19z" /> - <glyph glyph-name="mute" unicode="" -d="M48 67v-62q0 -3 -3 -4t-5 1l-22 22h-12q-6 0 -6 6v12q0 6 6 6h12l22 22q2 2 5 1t3 -4zM93 48l-12 -12l12 -12l-6 -6l-12 12l-12 -12l-6 6l12 12l-12 12l6 6l12 -12l12 12z" /> - <glyph glyph-name="x" unicode="" -d="M45 36l22 -22l-9 -9l-22 22l-22 -22l-9 9l22 22l-22 22l9 9l22 -22l22 22l9 -9z" /> - <glyph glyph-name="circle-slash" unicode="" -d="M42 78q17 0 29.5 -12.5t12.5 -29.5t-12.5 -29.5t-29.5 -12.5t-29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5zM42 70q-14 0 -24 -10t-10 -24q0 -11 7 -21l48 48q-10 7 -21 7zM42 2q14 0 24 10t10 24q0 11 -7 21l-48 -48q10 -7 21 -7z" /> - <glyph glyph-name="pulse" unicode="" -d="M69 36h15v-12h-20l-10 9l-22 -31l-5 33l-5 -11h-22v12h14l19 38l7 -41l13 19z" /> - <glyph glyph-name="sync" unicode="" -d="M61 40l11 -2q1 -16 -10 -27q-10 -10 -23.5 -10.5t-24.5 7.5l-7 -8l-4 25l26 -3l-7 -7q17 -12 32 3q9 9 7 22zM18 54q-9 -9 -7 -22l-11 2q-1 16 10 27q10 10 23.5 10.5t24.5 -7.5l7 8l4 -25l-26 3l7 7q-17 12 -32 -3z" /> - <glyph glyph-name="telescope" unicode="" -d="M48 30l18 -36h-6l-12 24v-30h-6v36l-12 -30h-6l12 30zM42 84v-6h-6v6h6zM30 66v-6h-6v6h6zM12 78v-6h-6v6h6zM4 30l7 5l7 -12l-8 -4q-3 -1 -4 1l-3 6q-1 2 1 4zM51 62l11 -18l-38 -18l-8 13zM76 55q2 -3 -1 -5l-8 -3l-11 19l7 5q3 2 5 -1z" /> - <glyph glyph-name="gist-secret" unicode="" -d="M48 21l6 -21h-24l6 21l-4 9h20zM60 48l12 -6h-60l12 6h36zM54 72l6 -18h-36l6 18l12 -6zM78 26q6 -2 4 -8l-3 -14q-1 -4 -6 -4h-19l12 18l-6 12zM24 30l-6 -12l12 -18h-19q-5 0 -6 4l-3 14q-2 6 4 8z" /> - <glyph glyph-name="home" unicode="" -d="M96 30h-12l-6 -30q0 -6 -6 -6h-48q-6 0 -6 6l-6 30h-12l48 48l18 -18v12h12v-24zM72 0l7 38l-31 31l-31 -31l7 -38h18v24h12v-24h18z" /> - <glyph glyph-name="stop" unicode="" -d="M60 78l24 -24v-36l-24 -24h-36l-24 24v36l24 24h36zM78 21v30l-21 21h-30l-21 -21v-30l21 -21h30zM36 60h12v-30h-12v30zM36 24h12v-12h-12v12z" /> - <glyph glyph-name="bug" unicode="" -d="M66 24v-6l19 -6l-2 -6l-17 6v-6q0 -6 -6 -6h-6l-6 6v42h-6v-42l-6 -6h-6q-6 0 -6 6v6l-17 -6l-2 6l19 6v6h-18v6h18v6l-19 6l2 6l17 -6v6q0 6 6 6v6q0 5 5 6l-6 6h-11v6h13l12 -12h4l12 12h13v-6h-11l-6 -6q5 -1 5 -6v-6q6 0 6 -6v-6l17 6l2 -6l-19 -6v-6h18v-6h-18z -M54 54v6h-18v-6h18z" /> - <glyph glyph-name="logo-github" unicode="" -d="M40 58h-1h1v0zM40 58v0v-3v-1h-3q-6 0 -6 6v7h-3v3l3 1v5h5v-5h3h1v-4h-1h-3v-7q0 -2 2 -2h1h1zM90 63q0 5 -3 4l-2 -1v-7q1 -1 2 -1q3 0 3 5zM95 63q0 -9 -6 -9l-6 2v-1v-1h-3l-1 1v23l1 1h4l1 -1v-8q1 2 4 2q6 0 6 -9zM77 71v0v-16v-1h-3l-1 1v1q-2 -2 -5 -2q-6 0 -6 6 -v11h5v-10q0 -3 2 -3l3 1v12h5zM26 71v0v-16v-1h-4q-1 0 -1 1v16h1h4zM24 78q3 0 3 -3t-3 -3t-3 3t3 3zM59 79v-1v-23v-1h-4l-1 1v10h-7v-10v-1h-5v1v23v1h5v-1v-8h7v8l1 1h4zM19 68v-12q-3 -2 -7 -2q-12 0 -12 13t11 13q5 0 7 -2l-1 -4q-3 1 -5 1q-7 0 -7 -8t6 -8h3v5h-4v4 -v1h8z" /> - <glyph glyph-name="file-binary" unicode="" -d="M24 12h6v-6h-18v6h6v12h-6v6h12v-18zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-72h60v54zM48 60v-18h6v-6h-18v6h6v12h-6v6h12zM12 60h18v-24h-18v24zM18 42h6v12h-6v-12zM36 30h18v-24h-18v24zM42 12h6v12h-6v-12z" /> - <glyph glyph-name="database" unicode="" -d="M36 -6q-36 0 -36 12v12q0 1 1 3q7 -9 35 -9t35 9q1 -2 1 -3v-12q0 -12 -36 -12zM36 18q-36 0 -36 12v12q0 1 1 2v1q7 -9 35 -9t35 9v-1q1 -1 1 -2v-12q0 -12 -36 -12zM36 42q-36 0 -36 12v6v6q0 12 36 12t36 -12v-6v-6q0 -12 -36 -12zM36 72q-24 0 -24 -6t24 -6t24 6 -t-24 6z" /> - <glyph glyph-name="server" unicode="" -d="M66 48q6 0 6 -6v-12q0 -6 -6 -6h-60q-6 0 -6 6v12q0 6 6 6h60zM12 30v12h-6v-12h6zM24 30v12h-6v-12h6zM36 30v12h-6v-12h6zM48 30v12h-6v-12h6zM66 78q6 0 6 -6v-12q0 -6 -6 -6h-60q-6 0 -6 6v12q0 6 6 6h60zM12 60v12h-6v-12h6zM24 60v12h-6v-12h6zM36 60v12h-6v-12h6z -M48 60v12h-6v-12h6zM66 66v6h-6v-6h6zM66 18q6 0 6 -6v-12q0 -6 -6 -6h-60q-6 0 -6 6v12q0 6 6 6h60zM12 0v12h-6v-12h6zM24 0v12h-6v-12h6zM36 0v12h-6v-12h6zM48 0v12h-6v-12h6z" /> - <glyph glyph-name="diff-ignored" unicode="" -d="M78 78q6 0 6 -6v-72q0 -6 -6 -6h-72q-6 0 -6 6v72q0 6 6 6h72zM78 0v72h-72v-72h72zM27 12h-9v9l39 39h9v-9z" /> - <glyph glyph-name="ellipsis" unicode="" -d="M66 54q6 0 6 -6v-24q0 -6 -6 -6h-60q-6 0 -6 6v24q0 6 6 6h60zM24 30v12h-12v-12h12zM42 30v12h-12v-12h12zM60 30v12h-12v-12h12z" /> - <glyph glyph-name="no-newline" unicode="" -d="M96 54v-18q0 -6 -6 -6h-18v-12l-18 18l18 18v-12h12v12h12zM48 36q0 -10 -7 -17t-17 -7t-17 7t-7 17t7 17t17 7t17 -7t7 -17zM9 26l25 25q-5 3 -10 3q-7 0 -12.5 -5.5t-5.5 -12.5q0 -5 3 -10zM42 36q0 5 -3 10l-25 -25q5 -3 10 -3q7 0 12.5 5.5t5.5 12.5z" /> - <glyph glyph-name="hubot" unicode="" -d="M18 48h48q6 0 6 -6v-12q0 -6 -6 -6h-48q-6 0 -6 6v12q0 6 6 6zM66 38v4h-4l-8 -8l-8 8h-8l-8 -8l-8 8h-4v-4l8 -8h8l8 8l8 -8h8zM30 18h24v-6h-24v6zM42 72q17 0 29.5 -11.5t12.5 -27.5v-27q0 -6 -6 -6h-72q-6 0 -6 6v27q0 16 12.5 27.5t29.5 11.5zM78 6v27 -q0 14 -10.5 24t-25.5 10t-25.5 -10t-10.5 -24v-27h72z" /> - <glyph glyph-name="arrow-small-up" unicode="" -d="M18 54l18 -24h-12v-12h-12v12h-12z" /> - <glyph glyph-name="arrow-small-down" unicode="" -d="M24 42h12l-18 -24l-18 24h12v12h12v-12z" /> - <glyph glyph-name="arrow-small-left" unicode="" -d="M24 42h12v-12h-12v-12l-24 18l24 18v-12z" /> - <glyph glyph-name="chevron-up" unicode="" -d="M60 24l-9 -9l-21 23l-21 -23l-9 9l30 30z" /> - <glyph glyph-name="chevron-down" unicode="" -d="M30 18l-30 30l9 9l21 -23l21 23l9 -9z" /> - <glyph glyph-name="chevron-left" unicode="" -d="M33 66l9 -9l-22 -21l22 -21l-9 -9l-30 30z" /> - <glyph glyph-name="triangle-up" unicode="" -d="M72 18h-72l36 36z" /> - <glyph glyph-name="git-compare" unicode="" -d="M30 12v12l18 -18l-18 -18v12h-6q-7 0 -12.5 5.5t-5.5 12.5v38q-6 3 -6 10q0 12 12 12t12 -12q0 -7 -6 -10v-38q0 -2 2 -4t4 -2h6zM12 73q-7 0 -7 -7t7 -7t7 7t-7 7zM78 16q6 -3 6 -10q0 -12 -12 -12t-12 12q0 7 6 10v38q0 2 -2 4t-4 2h-6v-12l-18 18l18 18v-12h6 -q7 0 12.5 -5.5t5.5 -12.5v-38zM72 -1q7 0 7 7t-7 7t-7 -7t7 -7z" /> - <glyph glyph-name="logo-gist" unicode="" -d="M18 50v4h14v-22q-6 -2 -14 -2q-18 0 -18 23t18 23q7 0 12 -2v-4q-6 3 -12 3q-14 0 -14 -19.5t14 -19.5q7 0 9 1v15h-9zM43 36v0q0 -3 2 -3v-3q-6 0 -6 7v24h4v-25zM44 70q0 -3 -3 -3t-3 3t3 3t3 -3zM60 48v0q11 -1 11 -9q0 -9 -12 -9q-5 0 -9 2v3q4 -1 9 -1q8 0 8 5t-7 5 -q-11 1 -11 8q0 9 12 9q5 0 8 -1v-4q-4 1 -8 1q-8 0 -8 -5q0 -4 7 -4zM93 57v0h-9v-18q0 -5 6 -5h2v-4h-3q-9 0 -9 8v19h-6v2l6 2v8l4 1v-9h9v-4z" /> - <glyph glyph-name="file-symlink-file" unicode="" -d="M51 78l21 -21v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 0v54l-18 18h-42v-72h60zM36 57l24 -18l-24 -18v12q-9 0 -15.5 -4t-8.5 -14q0 15 6.5 22.5t17.5 7.5v12z" /> - <glyph glyph-name="file-symlink-directory" unicode="" -d="M78 60q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h30q6 0 6 -6v-6h36zM6 66v-6h30v6h-30zM42 12l24 18l-24 18v-12q-11 0 -17.5 -7.5t-6.5 -22.5q2 10 8.5 14t15.5 4v-12z" /> - <glyph glyph-name="squirrel" unicode="" -d="M72 78q10 0 17 -7t7 -17q0 -12 -7.5 -14.5t-10.5 2.5q-5 4 -8 -3q-2 -4 2 -9q6 -8 6 -15q0 -21 -30 -21h-36q0 6 6 6h6q-19 17 0 24q-7 0 -11.5 3t-6.5 3q-5 0 -4.5 3t4.5 3q2 0 8.5 -3t7.5 1q1 1 0.5 3.5t-3.5 2.5q-12 -2 -15 3q0 7 3 11.5t5 6.5l3 1l1 4q2 0 3 -2l2 2 -l3 -4q7 0 15.5 -10t8.5 -28q1 6 1 11.5v9t-0.5 8t-0.5 7.5q0 8 7 13t17 5zM15 48q3 0 3 3t-3 3t-3 -3t3 -3z" /> - <glyph glyph-name="globe" unicode="" -d="M42 78q17 0 29.5 -12.5t12.5 -29.5q0 -15 -9.5 -26.5t-23.5 -14.5l1.5 2t2.5 3q2 1 8 5q1 1 2 3l3 3q1 1 4.5 6.5t2.5 6.5q-1 2 -4.5 2h-3.5l-0.5 1.5t-1 2t-2.5 1t-5 1.5q-3 2 -6 1l-2 -1.5l-2 -1.5q-6 1 -6 4q0 2 -3 3v1q1 2 0 3l-3 -2t-4 1q-2 5 4 6q2 1 4 0.5 -t2.5 -1.5t1.5 -1v2q-1 1 -1 2t1.5 2l1.5 1q-1 5 3 5q-1 1 0 2t1 0l2 2q-2 2 1 4q-4 3 -5 3q-1 1 -1.5 0.5t-1.5 0.5q-1 0 -1.5 0.5t-1.5 -0.5q1 -2 1 -3.5t-3 -0.5q0 1 -0.5 1t-1.5 1q-2 1 -1 2q1 0 2 0.5t0 1.5l1 1h-1q-2 0 -3.5 1l-1.5 1l-2 -1h-2q-5 2 -7 0l-7 -5l5 1 -q1 0 1 -2.5v-3.5l-1 -1q0 -1 -1 -3t-1 -3t1 -5q2 -3 2 -4v-1q2 -3 2 -2.5t-1 2.5l-1 2h1l1 -2q0 -1 1 -1q1 -2 1 -3q0 -3 3 -4q6 -2 8 -3h1t1 -0.5t0.5 -1l1.5 -1.5q2 -2 3 -2l1 1q2 0 2 -1v-1.5v-0.5q-2 -5 -2 -6q1 -2 1 -3q1 -1 2 -3t3 -3q3 -2 -1 -11q-1 -1 -1 -3.5 -t1 -2.5q-4 -1 -8 -1q-17 0 -29.5 12.5t-12.5 29.5t12.5 29.5t29.5 12.5zM52 39q-3 -1 -5 0l-4 2h-1l1 1q2 0 4.5 -1.5l2.5 -1.5l1 0.5t1 -0.5v0zM38 74l1 1v0h3zM45 68q2 0 1 2q0 1 -2 2h-1q0 1 -2 1h-2l1 -1q5 0 2 -3zM54 69q1 0 0 2q-1 1 -1 2q0 2 -4 3h-6q-1 -1 0 -2h1 -q2 0 5 -2q4 -4 5 -3z" /> - <glyph glyph-name="unmute" unicode="" -d="M72 36q0 -10 -7 -17l-4 4q5 5 5 13t-5 13l4 4q7 -7 7 -17zM46 70q2 2 5 1t3 -4v-62q0 -3 -3 -4t-5 1l-22 22h-12q-6 0 -6 6v12q0 6 6 6h12zM82 70q14 -14 14 -34t-14 -34l-4 4q12 12 12 29.5t-12 30.5zM74 61q10 -10 10 -25t-10 -26l-5 5q9 8 9 20.5t-9 21.5z" /> - <glyph glyph-name="mention" unicode="" -d="M39 -6q-17 0 -28 10.5t-11 29.5q0 22 14 36t33 14q17 0 27 -10.5t10 -27.5q0 -13 -7 -21.5t-16 -8.5q-10 0 -11 9q-7 -7 -14 -7q-14 0 -14 15q0 10 6.5 18.5t15.5 8.5q6 0 9 -5l1 4h6l-4 -23q-3 -13 6 -13q6 0 10.5 6.5t4.5 16.5t-3.5 17t-10.5 11t-17 4q-16 0 -28 -12 -t-12 -31q0 -16 9.5 -25.5t24.5 -9.5q10 0 18 5l3 -5q-9 -6 -22 -6zM38 24q5 0 10 6l3 18q-3 5 -7 5q-6 0 -10.5 -6t-4.5 -13q0 -10 9 -10z" /> - <glyph glyph-name="package" unicode="" -d="M6 58q0 5 4 6l40 11h2l40 -11q4 -1 4 -6v-44q0 -5 -4 -6l-40 -11h-2l-40 11q-4 1 -4 6v44zM48 4v40l-36 10v-41zM12 60l39 -10l15 4l-39 10zM90 13v41l-12 -3v-15l-12 -3v15l-12 -4v-40zM78 57l12 3l-39 10l-12 -3z" /> - <glyph glyph-name="browser" unicode="" -d="M30 66v-6h6v6h-6zM18 66v-6h6v6h-6zM6 66v-6h6v6h-6zM78 6v48h-72v-48h72zM78 60v6h-36v-6h36zM84 66v-60q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h72q6 0 6 -6z" /> - <glyph glyph-name="terminal" unicode="" -d="M42 24h24v-6h-24v6zM24 18l-4 4l13 14l-13 14l4 4l18 -18zM84 66v-60q0 -6 -6 -6h-72q-6 0 -6 6v60q0 6 6 6h72q6 0 6 -6zM78 66h-72v-60h72v60z" /> - <glyph glyph-name="markdown" unicode="" -d="M89 66q7 0 7 -7v-46q0 -7 -7 -7h-82q-7 0 -7 7v46q0 7 7 7h82zM54 18v36h-12l-9 -12l-9 12h-12v-36h12v18l9 -12l9 12v-18h12zM72 15l15 21h-9v18h-12v-18h-9z" /> - <glyph glyph-name="dash" unicode="" -d="M0 42h48v-12h-48v12z" /> - <glyph glyph-name="fold" unicode="" -d="M42 30l18 -18h-12v-18h-12v18h-12zM60 66l-18 -18l-18 18h12v18h12v-18h12zM84 54l-15 -15l15 -15q0 -6 -6 -6h-15l-6 6h18l-12 12h-42l-12 -12h18l-6 -6h-15q-6 0 -6 6l15 15l-15 15q0 6 6 6h15l6 -6h-18l12 -12h42l12 12h-18l6 6h15q6 0 6 -6z" /> - <glyph glyph-name="inbox" unicode="" -d="M84 30v-30q0 -6 -6 -6h-72q-6 0 -6 6v30l7 43q1 5 6 5h58q5 0 6 -5zM64 27q2 3 6 3h8l-6 42h-60l-6 -42h8q4 0 6 -3l2 -6q2 -3 6 -3h28q4 0 6 3z" /> - <glyph glyph-name="trashcan" unicode="" -d="M66 72q6 0 6 -6v-6q0 -6 -6 -6v-54q0 -6 -6 -6h-42q-6 0 -6 6v54q-6 0 -6 6v6q0 6 6 6h12q0 6 6 6h18q6 0 6 -6h12zM60 0v54h-6v-48h-6v48h-6v-48h-6v48h-6v-48h-6v48h-6v-54h42zM66 60v6h-54v-6h54z" /> - <glyph glyph-name="paintcan" unicode="" -d="M36 84q15 0 25.5 -10.5t10.5 -25.5v-6q0 -6 -6 -6v-30q0 -12 -30 -12t-30 12v30q-6 0 -6 6v6q0 15 10.5 25.5t25.5 10.5zM54 24q6 0 6 6v11q-9 -5 -24 -5t-24 5v-11q0 -6 6 -6v-6q0 -6 6 -6t6 6v3q0 3 3 3t3 -3v-12q0 -3 3 -3t3 3v15q0 3 3 3t3 -3v-3q0 -3 3 -3t3 3v3z -M36 42q16 0 22 6q-6 6 -22 6t-22 -6q6 -6 22 -6zM36 60q30 0 30 -12q0 12 -9 21t-21 9t-21 -9t-9 -21q0 12 30 12z" /> - <glyph glyph-name="flame" unicode="" -d="M30 82v0q15 -9 17 -21t-5 -16q-7 -7 0 -11q4 -2 7.5 0.5t3.5 7.5q-1 15 11 17q-2 -5 -1.5 -9.5t2.5 -7t4.5 -7.5t2.5 -10q0 -7 -3 -13.5t-9.5 -12.5t-16.5 -7q7 3 7 10q0 6 -4 9t-10 1t-10 3.5t-1 14.5q-11 -10 -10 -22.5t12 -17.5q-15 3 -21.5 12t-5.5 18t5 16 -q4 5 12 11.5t10 8.5q9 10 3 26z" /> - <glyph glyph-name="briefcase" unicode="" -d="M54 60h24q6 0 6 -6v-48q0 -6 -6 -6h-72q-6 0 -6 6v48q0 6 6 6h24v6q0 6 6 6h12q6 0 6 -6v-6zM36 66v-6h12v6h-12zM78 30v24h-6v-18h-60v18h-6v-24h30v-6h12v6h30z" /> - <glyph glyph-name="plug" unicode="" -d="M84 48h-24v-18h24v-6h-24v-12h-12v6h-12q-9 0 -12 12l-6 6q-12 0 -12 -12v-12h-6v12q0 7 5.5 12.5t12.5 5.5l6 6q2 12 12 12h12v6h12v-12h24v-6z" /> - <glyph glyph-name="circuit-board" unicode="" -d="M18 54q0 6 6 6t6 -6t-6 -6t-6 6zM66 54q0 -6 -6 -6t-6 6t6 6t6 -6zM66 18q0 -6 -6 -6t-6 6t6 6t6 -6zM78 78q6 0 6 -6v-72q0 -6 -6 -6h-54l18 18h7q3 -7 11 -7q6 0 10 5t2 11q-1 7 -9 9q-9 2 -14 -6h-13l-30 -30q-6 0 -6 6v72q0 6 6 6h12v-13q-9 -4 -6 -14q2 -7 9 -9 -q9 -3 14 6h14q3 -7 11 -7q6 0 10 5t2 11q-1 7 -9 9q-9 2 -14 -6h-14q-2 3 -5 5v13h48z" /> - <glyph glyph-name="mortar-board" unicode="" -d="M47 29v0h2l23 7v-15q0 -9 -24 -9t-24 9q0 2 -6 19l-4 14q3 -3 10 -18zM49 67l45 -14q2 -1 2 -2.5t-2 -1.5l-45 -15h-2l-29 10v-9q3 -2 3 -5q0 -2 -1 -3q1 -1 1 -3v-16q0 -2 -6 -2t-6 2v16q0 1 1 3q-1 1 -1 3q0 3 3 5v11l-10 3q-2 0 -2 1.5t2 2.5l45 14h2zM48 48q6 0 6 3 -t-6 3t-6 -3t6 -3z" /> - <glyph glyph-name="law" unicode="" -d="M42 60q-9 0 -9 9t9 9t9 -9t-9 -9zM84 24q0 -12 -12 -12h-6q-12 0 -12 12l12 24h-6q-6 0 -6 6h-6v-48q6 0 6 -6h6q6 0 6 -6h-48q0 6 6 6h6q0 6 6 6v48h-6q0 -6 -6 -6h-6l12 -24q0 -12 -12 -12h-6q-12 0 -12 12l12 24h-6v6h18q0 6 6 6h24q6 0 6 -6h18v-6h-6zM15 42l-9 -18 -h18zM78 24l-9 18l-9 -18h18z" /> - <glyph glyph-name="thumbsup" unicode="" -d="M84 0l6 36q0 6 -6 6h-12q-6 0 -6 6v6q0 6 -4 15t-8 9q-2 0 -4 -2t-2 -4q3 -16 -5 -25q-10 -11 -19 -11v-36l10 -6h38q12 0 12 6zM84 48q12 0 12 -12v-1l-6 -36q-1 -11 -18 -11h-38q-2 0 -3 1l-9 5h-10q-12 0 -12 12v24q0 5 3.5 8.5t8.5 3.5h12q6 0 14 9q6 7 4 20 -q-1 5 3 8q3 5 9 5q7 0 12.5 -11t5.5 -19v-6h12z" /> - <glyph glyph-name="thumbsdown" unicode="" -d="M96 37v-1q0 -12 -12 -12h-12v-6q0 -8 -5.5 -19t-12.5 -11q-6 0 -9 5q-4 3 -3 8q2 13 -4 20q-8 9 -14 9h-12q-12 0 -12 12v24q0 12 12 12h10l9 5q1 1 3 1h38q17 0 18 -11zM84 30q6 0 6 6l-6 36q0 6 -12 6h-38l-10 -6v-36q9 0 19 -11q8 -9 5 -25q0 -2 2 -4t4 -2t5 4.5t5 10 -t2 9.5v6q0 6 6 6h12z" /> - <glyph glyph-name="desktop-download" unicode="" -d="M24 48h18v36h12v-36h18l-24 -24zM90 72q6 0 6 -6v-54q0 -6 -6 -6h-32q3 -7 14 -12h-48q11 5 14 12h-32q-6 0 -6 6v54q0 6 6 6h24v-6h-24v-48h84v48h-24v6h24z" /> - <glyph glyph-name="beaker" unicode="" -d="M86 -4q4 -8 -5 -8h-72q-3 0 -5 2.5t0 5.5l20 46v24h-6v6h54v-6h-6v-24zM22 24h45l-7 18v24h-30v-24zM48 36h6v-6h-6v6zM42 42h-6v6h6v-6zM42 60h6v-6h-6v6zM42 78h-6v6h6v-6z" /> - <glyph glyph-name="bell" unicode="" -d="M84 12v-6h-84v6l4 3q3 3 8 27q2 10 8 17.5t11 10.5l5 2q0 6 6 6t6 -6q20 -7 25 -30q5 -24 7 -27zM42 -12q-12 0 -12 12h24q0 -12 -12 -12z" /> - <glyph glyph-name="watch" unicode="" -d="M36 36h12v-6h-18v24h6v-18zM72 36q0 -21 -18 -31v-11q0 -6 -6 -6h-24q-6 0 -6 6v11q-18 10 -18 31t18 31v11q0 6 6 6h24q6 0 6 -6v-11q18 -10 18 -31zM66 36q0 12 -9 21t-21 9t-21 -9t-9 -21t9 -21t21 -9t21 9t9 21z" /> - <glyph glyph-name="shield" unicode="" -d="M42 84l42 -12v-36q0 -19 -16 -33.5t-26 -14.5t-26 14.5t-16 33.5v36zM30 18h24l-7 17q0 2 2 3q5 4 5 10q0 3 -1.5 6t-4.5 4.5t-6 1.5q-5 0 -8.5 -3.5t-3.5 -8.5q0 -6 5 -10q2 -1 2 -3z" /> - <glyph glyph-name="bold" unicode="" -d="M6 72h23q26 0 26 -18q0 -12 -10 -15v-1q14 -3 14 -17q0 -21 -28 -21h-25v72zM28 42q14 0 14 10t-14 10h-9v-20h9zM30 10q16 0 16 12q0 11 -16 11h-11v-23h11z" /> - <glyph glyph-name="text-size" unicode="" -d="M73 36l-8 28h-1l-8 -28h17zM30 30q-5 19 -6 22l-6 -22h12zM92 9h-12l-5 18h-21l-6 -18h-12l-3 13h-18l-3 -13h-12l18 51h13l12 -33l15 46h13z" /> - <glyph glyph-name="italic" unicode="" -d="M17 54h12l-11 -54h-12zM19 70q0 8 8 8q7 0 7 -6q0 -8 -8 -8q-7 0 -7 6z" /> - <glyph glyph-name="tasklist" unicode="" -d="M92 30h-46q-4 0 -4 6t4 6h46q4 0 4 -6t-4 -6zM58 60q-4 0 -4 6t4 6h34q4 0 4 -6t-4 -6h-34zM0 61l8 7l10 -9l25 25l8 -8l-33 -33zM46 12h46q4 0 4 -6t-4 -6h-46q-4 0 -4 6t4 6z" /> - <glyph glyph-name="verified" unicode="" -d="M94 42q5 -6 0 -12l-6 -8q-2 -2 -2 -4l-2 -11q0 -7 -8 -8l-10 -1q-2 0 -4 -2l-8 -6q-6 -5 -12 0l-8 6q-2 2 -4 2l-11 2q-7 0 -8 8l-1 10q0 2 -2 4l-6 8q-5 6 0 12l6 8q2 2 2 4l2 11q0 7 8 8l10 1q2 0 4 2l8 6q6 5 12 0l8 -6q2 -2 4 -2l11 -2q7 0 8 -8l1 -10q0 -2 2 -4z -M39 12l39 39l-9 9l-30 -30l-12 12l-9 -9z" /> - <glyph glyph-name="smiley" unicode="" -d="M48 84q20 0 34 -14t14 -34t-14 -34t-34 -14t-34 14t-14 34t14 34t34 14zM76.5 7.5q5.5 5.5 9 12.5t3.5 16t-3.5 16t-9 12.5t-12.5 9t-16 3.5t-16 -3.5t-12.5 -9t-9 -12.5t-3.5 -16t3.5 -16t9 -12.5t12.5 -9t16 -3.5t16 3.5t12.5 9zM24 43v4q0 7 7 7h4q7 0 7 -7v-4 -q0 -7 -7 -7h-4q-7 0 -7 7zM54 43v4q0 7 7 7h4q7 0 7 -7v-4q0 -7 -7 -7h-4q-7 0 -7 7zM78 24q-7 -18 -30 -18t-30 18q-2 6 4 6h52q6 0 4 -6z" /> - <glyph glyph-name="unverified" unicode="" -d="M94 42q5 -6 0 -12l-6 -8q-2 -2 -2 -4l-2 -11q0 -7 -8 -8l-10 -1q-2 0 -4 -2l-8 -6q-6 -5 -12 0l-8 6q-2 2 -4 2l-11 2q-7 0 -8 8l-1 10q0 2 -2 4l-6 8q-5 6 0 12l6 8q2 2 2 4l2 11q0 7 8 8l10 1q2 0 4 2l8 6q6 5 12 0l8 -6q2 -2 4 -2l11 -2q7 0 8 -8l1 -10q0 -2 2 -4z -M54 15v6q0 3 -3 3h-6q-3 0 -3 -3v-6q0 -3 3 -3h6q3 0 3 3zM63 44q1 1 1 4t-1 5t-3 4l-6 2t-7 1q-3 0 -6 -1t-5.5 -2.5t-3.5 -3.5q-2 -3 -2 -5h12q0 1 1 2l1 1l1 1h2q3 0 4 -1t1 -4q0 -1 -1 -3t-3 -3t-3 -2.5t-1 -2.5q-1 -2 -1 -3v-3h10v2t1 1q0 1 1 2t1 2l4 2q0 1 1.5 2.5 -t1.5 2.5z" /> - <glyph glyph-name="ellipses" unicode="" -d="M66 54q6 0 6 -6v-24q0 -6 -6 -6h-60q-6 0 -6 6v24q0 6 6 6h60zM24 30v12h-12v-12h12zM42 30v12h-12v-12h12zM60 30v12h-12v-12h12z" /> - <glyph glyph-name="file" unicode="" -d="M36 54h-24v6h24v-6zM12 36v6h42v-6h-42zM12 24v6h42v-6h-42zM12 12v6h42v-6h-42zM72 57v-57q0 -6 -6 -6h-60q-6 0 -6 6v72q0 6 6 6h45zM66 54l-18 18h-42v-72h60v54z" /> - <glyph glyph-name="grabber" unicode="" -d="M48 60v-6h-48v6h48zM0 36v6h48v-6h-48zM0 18v6h48v-6h-48z" /> - <glyph glyph-name="plus-small" unicode="" -d="M24 42h18v-6h-18v-18h-6v18h-18v6h18v18h6v-18z" /> - <glyph glyph-name="reply" unicode="" -d="M36 63q20 -2 34 -16.5t14 -43.5q-16 36 -48 36v-21l-33 33l33 33v-21z" /> - <glyph glyph-name="device-desktop" unicode="" -d="M90 72q6 0 6 -6v-54q0 -6 -6 -6h-32q3 -7 14 -12h-48q11 5 14 12h-32q-6 0 -6 6v54q0 6 6 6h84zM90 18v48h-84v-48h84z" /> - </font> -</defs></svg> diff --git a/public/vendor/assets/octicons/octicons.ttf b/public/vendor/assets/octicons/octicons.ttf Binary files differdeleted file mode 100644 index ff0dda1847..0000000000 --- a/public/vendor/assets/octicons/octicons.ttf +++ /dev/null diff --git a/public/vendor/assets/octicons/octicons.woff b/public/vendor/assets/octicons/octicons.woff Binary files differdeleted file mode 100644 index 01aa43d775..0000000000 --- a/public/vendor/assets/octicons/octicons.woff +++ /dev/null diff --git a/public/vendor/assets/octicons/octicons.woff2 b/public/vendor/assets/octicons/octicons.woff2 Binary files differdeleted file mode 100644 index 69e7b2a404..0000000000 --- a/public/vendor/assets/octicons/octicons.woff2 +++ /dev/null diff --git a/templates/admin/org/list.tmpl b/templates/admin/org/list.tmpl index 26f91faa74..fc512f2ad9 100644 --- a/templates/admin/org/list.tmpl +++ b/templates/admin/org/list.tmpl @@ -32,7 +32,7 @@ <td> <a href="{{.HomeLink}}">{{.Name}}</a> {{if .Visibility.IsPrivate}} - <span class="text gold"><i class="octicon octicon-lock"></i></span> + <span class="text gold">{{svg "octicon-lock" 16}}</span> {{end}} </td> <td>{{.NumTeams}}</td> diff --git a/templates/admin/repo/list.tmpl b/templates/admin/repo/list.tmpl index 793d9c620e..f946b8a461 100644 --- a/templates/admin/repo/list.tmpl +++ b/templates/admin/repo/list.tmpl @@ -33,7 +33,7 @@ <td> <a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a> {{if .Owner.Visibility.IsPrivate}} - <span class="text gold"><i class="octicon octicon-lock"></i></span> + <span class="text gold">{{svg "octicon-lock" 16}}</span> {{end}} </td> <td><a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Name}}</a></td> diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 440dd3e5e2..c9ae07f632 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -37,6 +37,7 @@ <meta name="referrer" content="no-referrer" /> <meta name="_csrf" content="{{.CsrfToken}}" /> <meta name="_suburl" content="{{AppSubUrl}}" /> + <meta name="_staticprefix" content="{{StaticUrlPrefix}}" /> {{if .IsSigned}} <meta name="_uid" content="{{.SignedUser.ID}}" /> {{end}} @@ -98,10 +99,9 @@ <link rel="apple-touch-icon" href="{{StaticUrlPrefix}}/img/apple-touch-icon.png"> <link rel="mask-icon" href="{{StaticUrlPrefix}}/img/gitea-safari.svg" color="#609926"> <link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css"> - <link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.min.css"> <link rel="preload" as="font" href="{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/icons.woff2" type="font/woff2" crossorigin="anonymous"> <link rel="preload" as="font" href="{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/outline-icons.woff2" type="font/woff2" crossorigin="anonymous"> - <link rel="preload" as="font" href="{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6" type="font/woff2" crossorigin="anonymous"> + <link rel="preload" as="image" href="{{StaticUrlPrefix}}/img/svg/icons.svg"> {{if .RequireSimpleMDE}} <link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/simplemde/simplemde.min.css"> {{end}} diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl index 4219e33775..51a021d0e5 100644 --- a/templates/base/head_navbar.tmpl +++ b/templates/base/head_navbar.tmpl @@ -44,7 +44,7 @@ <div class="right stackable menu"> <a href="{{AppSubUrl}}/notifications" class="item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted"> <span class="text"> - <i class="fitted octicon octicon-bell"></i> + <span class="fitted">{{svg "octicon-bell" 16}}</span> <span class="sr-mobile-only">{{.i18n.Tr "notifications"}}</span> {{if .NotificationUnreadCount}} @@ -57,20 +57,20 @@ <div class="ui dropdown jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted"> <span class="text"> - <i class="fitted octicon octicon-plus"></i> + <span class="fitted">{{svg "octicon-plus" 16}}</span> <span class="sr-mobile-only">{{.i18n.Tr "create_new"}}</span> - <i class="fitted octicon octicon-triangle-down not-mobile"></i> + <span class="fitted not-mobile">{{svg "octicon-triangle-down" 16}}</span> </span> <div class="menu"> <a class="item" href="{{AppSubUrl}}/repo/create"> - <i class="octicon octicon-plus"></i> {{.i18n.Tr "new_repo"}} + <span class="fitted">{{svg "octicon-plus" 16}}</span> {{.i18n.Tr "new_repo"}} </a> <a class="item" href="{{AppSubUrl}}/repo/migrate"> - <i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}} + <span class="fitted">{{svg "octicon-repo-clone" 16}}</span> {{.i18n.Tr "new_migrate"}} </a> {{if .SignedUser.CanCreateOrganization}} <a class="item" href="{{AppSubUrl}}/org/create"> - <i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}} + <span class="fitted">{{svg "octicon-organization" 16}}</span> {{.i18n.Tr "new_org"}} </a> {{end}} </div><!-- end content create new menu --> @@ -81,7 +81,7 @@ <img class="ui tiny avatar image" width="24" height="24" src="{{.SignedUser.RelAvatarLink}}"> <span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span> <span class="mobile-only">{{.SignedUser.Name}}</span> - <i class="fitted octicon octicon-triangle-down not-mobile" tabindex="-1"></i> + <span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down" 16}}</span> </span> <div class="menu user-menu" tabindex="-1"> <div class="ui header"> @@ -90,19 +90,19 @@ <div class="divider"></div> <a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}"> - <i class="octicon octicon-person"></i> + {{svg "octicon-person" 16}} {{.i18n.Tr "your_profile"}}<!-- Your profile --> </a> <a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}?tab=stars"> - <i class="octicon octicon-star"></i> + {{svg "octicon-star" 16}} {{.i18n.Tr "your_starred"}} </a> <a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings"> - <i class="octicon octicon-settings"></i> + {{svg "octicon-settings" 16}} {{.i18n.Tr "your_settings"}}<!-- Your settings --> </a> <a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io"> - <i class="octicon octicon-question"></i> + {{svg "octicon-question" 16}} {{.i18n.Tr "help"}}<!-- Help --> </a> {{if .IsAdmin}} @@ -116,7 +116,7 @@ <div class="divider"></div> <a class="item" href="{{AppSubUrl}}/user/logout"> - <i class="octicon octicon-sign-out"></i> + {{svg "octicon-sign-out" 16}} {{.i18n.Tr "sign_out"}}<!-- Sign Out --> </a> </div><!-- end content avatar menu --> @@ -129,11 +129,11 @@ <div class="right stackable menu"> {{if .ShowRegistrationButton}} <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up"> - <i class="octicon octicon-person"></i> {{.i18n.Tr "register"}} + {{svg "octicon-person" 16}} {{.i18n.Tr "register"}} </a> {{end}} <a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{.Link}}"> - <i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}} + {{svg "octicon-sign-in" 16}} {{.i18n.Tr "sign_in"}} </a> </div><!-- end anonymous right menu --> diff --git a/templates/explore/navbar.tmpl b/templates/explore/navbar.tmpl index 3bd52645e2..5433425972 100644 --- a/templates/explore/navbar.tmpl +++ b/templates/explore/navbar.tmpl @@ -1,16 +1,16 @@ <div class="ui secondary pointing tabular top attached borderless stackable menu navbar"> <a class="{{if .PageIsExploreRepositories}}active{{end}} item" href="{{AppSubUrl}}/explore/repos"> - <span class="octicon octicon-repo"></span> {{.i18n.Tr "explore.repos"}} + {{svg "octicon-repo" 16}} {{.i18n.Tr "explore.repos"}} </a> <a class="{{if .PageIsExploreUsers}}active{{end}} item" href="{{AppSubUrl}}/explore/users"> - <span class="octicon octicon-person"></span> {{.i18n.Tr "explore.users"}} + {{svg "octicon-person" 16}} {{.i18n.Tr "explore.users"}} </a> <a class="{{if .PageIsExploreOrganizations}}active{{end}} item" href="{{AppSubUrl}}/explore/organizations"> - <span class="octicon octicon-organization"></span> {{.i18n.Tr "explore.organizations"}} + {{svg "octicon-organization" 16}} {{.i18n.Tr "explore.organizations"}} </a> {{if .IsRepoIndexerEnabled}} <a class="{{if .PageIsExploreCode}}active{{end}} item" href="{{AppSubUrl}}/explore/code"> - <span class="octicon octicon-code"></span> {{.i18n.Tr "explore.code"}} + {{svg "octicon-code" 16}} {{.i18n.Tr "explore.code"}} </a> {{end}} </div> diff --git a/templates/explore/organizations.tmpl b/templates/explore/organizations.tmpl index 4e2bfc9fd9..6980622de1 100644 --- a/templates/explore/organizations.tmpl +++ b/templates/explore/organizations.tmpl @@ -12,18 +12,18 @@ <span class="header"> <a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}} {{if .Visibility.IsPrivate}} - <span class="text gold"><i class="octicon octicon-lock"></i></span> + <span class="text gold">{{svg "octicon-lock" 16}}</span> {{end}} </span> <div class="description"> - {{if .Location}} - <i class="octicon octicon-location"></i> {{.Location}} - {{end}} - {{if and .Website}} - <i class="octicon octicon-link"></i> - <a href="{{.Website}}" rel="nofollow">{{.Website}}</a> - {{end}} - <i class="octicon octicon-clock"></i> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} + {{if .Location}} + {{svg "octicon-location" 16}} {{.Location}} + {{end}} + {{if and .Website}} + {{svg "octicon-link" 16}} + <a href="{{.Website}}" rel="nofollow">{{.Website}}</a> + {{end}} + {{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} </div> </div> </div> diff --git a/templates/explore/repo_list.tmpl b/templates/explore/repo_list.tmpl index fec304cc91..2dbfac5a2a 100644 --- a/templates/explore/repo_list.tmpl +++ b/templates/explore/repo_list.tmpl @@ -10,22 +10,22 @@ {{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}} </a> {{if .IsPrivate}} - <span class="text gold"><i class="octicon octicon-lock"></i></span> + <span class="middle text gold">{{svg "octicon-lock" 16}}</span> {{else if .IsFork}} - <span><i class="octicon octicon-repo-forked"></i></span> + <span class="middle">{{svg "octicon-repo-forked" 16}}</span> {{else if .IsMirror}} - <span><i class="octicon octicon-repo-clone"></i></span> + <span class="middle">{{svg "octicon-repo-clone" 16}}</span> {{else if .Owner}} {{if .Owner.Visibility.IsPrivate}} - <span class="text gold"><i class="octicon octicon-lock"></i></span> + <span class="text gold">{{svg "octicon-lock" 16}}</span> {{end}} {{end}} <div class="ui right metas"> {{if .PrimaryLanguage }} <span class="text grey"><i class="color-icon" style="background-color: {{.PrimaryLanguage.Color}}"></i>{{ .PrimaryLanguage.Language }}</span> {{end}} - <span class="text grey"><i class="octicon octicon-star"></i> {{.NumStars}}</span> - <span class="text grey"><i class="octicon octicon-git-branch"></i> {{.NumForks}}</span> + <span class="text grey">{{svg "octicon-repo" 16}} {{.NumStars}}</span> + <span class="text grey">{{svg "octicon-git-branch" 16}} {{.NumForks}}</span> </div> </div> <div class="description"> diff --git a/templates/explore/users.tmpl b/templates/explore/users.tmpl index 32a36931c7..1929eb296c 100644 --- a/templates/explore/users.tmpl +++ b/templates/explore/users.tmpl @@ -11,14 +11,14 @@ <div class="content"> <span class="header"><a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}</span> <div class="description"> - {{if .Location}} - <i class="octicon octicon-location"></i> {{.Location}} - {{end}} - {{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}} - <i class="octicon octicon-mail"></i> - <a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a> - {{end}} - <i class="octicon octicon-clock"></i> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} + {{if .Location}} + {{svg "octicon-location" 16}} {{.Location}} + {{end}} + {{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}} + {{svg "octicon-mail" 16}} + <a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a> + {{end}} + {{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} </div> </div> </div> diff --git a/templates/home.tmpl b/templates/home.tmpl index 6616e3c870..5daea544fe 100644 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -16,7 +16,7 @@ <div class="ui stackable middle very relaxed page grid"> <div class="eight wide center column"> <h1 class="hero ui icon header"> - <i class="octicon octicon-flame"></i> {{.i18n.Tr "startpage.install"}} + {{svg "octicon-flame" 16}} {{.i18n.Tr "startpage.install"}} </h1> <p class="large"> {{.i18n.Tr "startpage.install_desc" | Str2html}} @@ -24,7 +24,7 @@ </div> <div class="eight wide center column"> <h1 class="hero ui icon header"> - <i class="octicon octicon-device-desktop"></i> {{.i18n.Tr "startpage.platform"}} + {{svg "octicon-device-desktop" 16}} {{.i18n.Tr "startpage.platform"}} </h1> <p class="large"> {{.i18n.Tr "startpage.platform_desc" | Str2html}} @@ -34,7 +34,7 @@ <div class="ui stackable middle very relaxed page grid"> <div class="eight wide center column"> <h1 class="hero ui icon header"> - <i class="octicon octicon-rocket"></i> {{.i18n.Tr "startpage.lightweight"}} + {{svg "octicon-rocket" 16}} {{.i18n.Tr "startpage.lightweight"}} </h1> <p class="large"> {{.i18n.Tr "startpage.lightweight_desc" | Str2html}} @@ -42,7 +42,7 @@ </div> <div class="eight wide center column"> <h1 class="hero ui icon header"> - <i class="octicon octicon-code"></i> {{.i18n.Tr "startpage.license"}} + {{svg "octicon-code" 16}} {{.i18n.Tr "startpage.license"}} </h1> <p class="large"> {{.i18n.Tr "startpage.license_desc" | Str2html}} diff --git a/templates/org/header.tmpl b/templates/org/header.tmpl index 806682aca9..2dc93dbf8d 100644 --- a/templates/org/header.tmpl +++ b/templates/org/header.tmpl @@ -9,11 +9,11 @@ <div class="ui right"> <div class="ui menu"> <a class="{{if $.PageIsOrgMembers}}active{{end}} item" href="{{$.OrgLink}}/members"> - <i class="octicon octicon-organization"></i> {{$.i18n.Tr "org.people"}} + {{svg "octicon-organization" 16}} {{$.i18n.Tr "org.people"}} <div class="floating ui black label">{{.NumMembers}}</div> </a> <a class="{{if $.PageIsOrgTeams}}active{{end}} item" href="{{$.OrgLink}}/teams"> - <i class="octicon octicon-jersey"></i> {{$.i18n.Tr "org.teams"}} + {{svg "octicon-jersey" 16}} {{$.i18n.Tr "org.teams"}} <div class="floating ui black label">{{.NumTeams}}</div> </a> </div> diff --git a/templates/org/home.tmpl b/templates/org/home.tmpl index 0aa575707a..46c590342b 100644 --- a/templates/org/home.tmpl +++ b/templates/org/home.tmpl @@ -7,12 +7,12 @@ <div id="org-info"> <div class="ui header"> {{.Org.DisplayName}} - {{if .IsOrganizationOwner}}<a class="text grey" href="{{.OrgLink}}/settings"><span class="octicon octicon-gear"></span></a>{{end}} + {{if .IsOrganizationOwner}}<a class="middle text grey" href="{{.OrgLink}}/settings">{{svg "octicon-gear" 16}}</a>{{end}} </div> {{if .Org.Description}}<p class="desc">{{.Org.Description}}</p>{{end}} <div class="text grey meta"> - {{if .Org.Location}}<div class="item"><span class="octicon octicon-location"></span> <span>{{.Org.Location}}</span></div>{{end}} - {{if .Org.Website}}<div class="item"><span class="octicon octicon-link"></span> <a target="_blank" rel="noopener noreferrer" href="{{.Org.Website}}">{{.Org.Website}}</a></div>{{end}} + {{if .Org.Location}}<div class="item">{{svg "octicon-location" 16}} <span>{{.Org.Location}}</span></div>{{end}} + {{if .Org.Website}}<div class="item">{{svg "octicon-link" 16}} <a target="_blank" rel="noopener noreferrer" href="{{.Org.Website}}">{{.Org.Website}}</a></div>{{end}} </div> </div> </div> @@ -24,7 +24,7 @@ <div class="ui eleven wide column"> {{if .CanCreateOrgRepo}} <div class="text right"> - <a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "new_repo"}}</a> + <a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{svg "octicon-repo-create" 16}} {{.i18n.Tr "new_repo"}}</a> </div> <div class="ui divider"></div> {{end}} @@ -38,7 +38,7 @@ <strong>{{.i18n.Tr "org.people"}}</strong> {{if .IsOrganizationMember}} <div class="ui right"> - <a class="text grey" href="{{.OrgLink}}/members">{{.Org.NumMembers}} <span class="octicon octicon-chevron-right"></span></a> + <a class="text grey" href="{{.OrgLink}}/members">{{.Org.NumMembers}} {{svg "octicon-chevron-right" 16}}</a> </div> {{end}} </h4> @@ -55,7 +55,7 @@ <div class="ui top attached header"> <strong>{{.i18n.Tr "org.teams"}}</strong> <div class="ui right"> - <a class="text grey" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> <span class="octicon octicon-chevron-right"></span></a> + <a class="text grey" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right" 16}}</a> </div> </div> <div class="ui attached table segment teams"> diff --git a/templates/org/member/members.tmpl b/templates/org/member/members.tmpl index 03aadf97b8..81cfcf51e6 100644 --- a/templates/org/member/members.tmpl +++ b/templates/org/member/members.tmpl @@ -34,7 +34,7 @@ {{$.i18n.Tr "org.members.member_role"}} </div> <div class="meta"> - <strong>{{if index $.MembersIsUserOrgOwner .ID}}<span class="octicon octicon-shield"></span> {{$.i18n.Tr "org.members.owner"}}{{else}}{{$.i18n.Tr "org.members.member"}}{{end}}</strong> + <strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock" 16}} {{$.i18n.Tr "org.members.owner"}}{{else}}{{$.i18n.Tr "org.members.member"}}{{end}}</strong> </div> </div> <div class="ui one wide column center"> @@ -42,7 +42,13 @@ 2FA </div> <div class="meta"> - <strong><span class="octicon {{if index $.MembersTwoFaStatus .ID}}octicon-check text green{{else}}octicon-x{{end}}"></span></strong> + <strong> + {{if index $.MembersTwoFaStatus .ID}} + <span class="text green">{{svg "octicon-check" 16}}</span> + {{else}} + {{svg "octicon-x" 16}} + {{end}} + </strong> </div> </div> <div class="ui four wide column"> diff --git a/templates/org/settings/delete.tmpl b/templates/org/settings/delete.tmpl index 3b0ee09b17..729126b7b9 100644 --- a/templates/org/settings/delete.tmpl +++ b/templates/org/settings/delete.tmpl @@ -11,7 +11,7 @@ </h4> <div class="ui attached warning segment"> <div class="ui red message"> - <p class="text left"><i class="octicon octicon-alert"></i> {{.i18n.Tr "org.settings.delete_prompt" | Str2html}}</p> + <p class="text left">{{svg "octicon-alert" 16}} {{.i18n.Tr "org.settings.delete_prompt" | Str2html}}</p> </div> <form class="ui form ignore-dirty" id="delete-form" action="{{.Link}}" method="post"> {{.CsrfTokenHtml}} diff --git a/templates/org/team/navbar.tmpl b/templates/org/team/navbar.tmpl index 1a8f108331..95329a2be3 100644 --- a/templates/org/team/navbar.tmpl +++ b/templates/org/team/navbar.tmpl @@ -1,4 +1,4 @@ <div class="ui top attached tabular menu"> - <a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}"><span class="octicon octicon-person"></span> <strong>{{.Team.NumMembers}}</strong> {{$.i18n.Tr "org.lower_members"}}</a> - <a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/repositories"><span class="octicon octicon-repo"></span> <strong>{{.Team.NumRepos}}</strong> {{$.i18n.Tr "org.lower_repositories"}}</a> -</div>
\ No newline at end of file + <a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}">{{svg "octicon-person" 16}} <strong>{{.Team.NumMembers}}</strong> {{$.i18n.Tr "org.lower_members"}}</a> + <a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/repositories">{{svg "octicon-repo" 16}} <strong>{{.Team.NumRepos}}</strong> {{$.i18n.Tr "org.lower_repositories"}}</a> +</div> diff --git a/templates/org/team/repositories.tmpl b/templates/org/team/repositories.tmpl index 66af5195b0..e81ff889eb 100644 --- a/templates/org/team/repositories.tmpl +++ b/templates/org/team/repositories.tmpl @@ -38,7 +38,15 @@ <a class="ui red small button right" href="{{$.OrgLink}}/teams/{{$.Team.LowerName}}/action/repo/remove?repoid={{.ID}}">{{$.i18n.Tr "remove"}}</a> {{end}} <a class="member" href="{{AppSubUrl}}/{{$.Org.Name}}/{{.Name}}"> - <i class="octicon octicon-{{if .IsPrivate}}lock{{else if .IsFork}}repo-forked{{else if .IsMirror}}repo-clone{{else}}repo{{end}}"></i> + {{if .IsPrivate}} + {{svg "octicon-lock" 16}} + {{else if .IsFork}} + {{svg "octicon-repo-forked" 16}} + {{else if .IsMirror}} + {{svg "octicon-repo-clone" 16}} + {{else}} + {{svg "octicon-repo" 16}} + {{end}} <strong>{{$.Org.Name}}/{{.Name}}</strong> </a> </div> diff --git a/templates/org/team/sidebar.tmpl b/templates/org/team/sidebar.tmpl index 75c5ce756d..ee612069b5 100644 --- a/templates/org/team/sidebar.tmpl +++ b/templates/org/team/sidebar.tmpl @@ -47,7 +47,7 @@ </div> {{if .IsOrganizationOwner}} <div class="ui bottom attached segment"> - <a class="ui teal small button" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/edit"><span class="octicon octicon-gear"></span> {{$.i18n.Tr "org.teams.settings"}}</a> + <a class="ui teal small button" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/edit">{{svg "octicon-gear" 16}} {{$.i18n.Tr "org.teams.settings"}}</a> </div> {{end}} </div> diff --git a/templates/org/team/teams.tmpl b/templates/org/team/teams.tmpl index 8714181140..9d4a469028 100644 --- a/templates/org/team/teams.tmpl +++ b/templates/org/team/teams.tmpl @@ -5,7 +5,7 @@ {{template "base/alert" .}} {{if .IsOrganizationOwner}} <div class="text right"> - <a class="ui green button" href="{{.OrgLink}}/teams/new"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "org.create_new_team"}}</a> + <a class="ui green button" href="{{.OrgLink}}/teams/new">{{svg "octicon-plus" 16}} {{.i18n.Tr "org.create_new_team"}}</a> </div> <div class="ui divider"></div> {{end}} diff --git a/templates/pwa/serviceworker_js.tmpl b/templates/pwa/serviceworker_js.tmpl index e7751714f4..f1dd63a250 100644 --- a/templates/pwa/serviceworker_js.tmpl +++ b/templates/pwa/serviceworker_js.tmpl @@ -40,6 +40,9 @@ var urlsToCache = [ '{{StaticUrlPrefix}}/img/gitea-sm.png', '{{StaticUrlPrefix}}/img/gitea-lg.png', + // svg + '{{StaticUrlPrefix}}/img/svg/icons.svg' + // fonts '{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/icons.woff2', '{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.woff2?ef21c39f0ca9b1b5116e5eb7ac5eabe6', diff --git a/templates/repo/activity.tmpl b/templates/repo/activity.tmpl index 8c3167bca7..c11a841b2d 100644 --- a/templates/repo/activity.tmpl +++ b/templates/repo/activity.tmpl @@ -63,21 +63,21 @@ <div class="ui attached segment horizontal segments"> {{if .Permission.CanRead $.UnitTypePullRequests}} <a href="#merged-pull-requests" class="ui attached segment text center"> - <i class="text purple octicon octicon-git-pull-request"></i> <strong>{{.Activity.MergedPRCount}}</strong><br> + <span class="text purple">{{svg "octicon-git-pull-request" 16}}</span> <strong>{{.Activity.MergedPRCount}}</strong><br> {{.i18n.Tr (TrN .i18n.Lang .Activity.MergedPRCount "repo.activity.merged_prs_count_1" "repo.activity.merged_prs_count_n") }} </a> <a href="#proposed-pull-requests" class="ui attached segment text center"> - <i class="text green octicon octicon-git-branch"></i> <strong>{{.Activity.OpenedPRCount}}</strong><br> + <span class="text green">{{svg "octicon-git-branch" 16}}</span> <strong>{{.Activity.OpenedPRCount}}</strong><br> {{.i18n.Tr (TrN .i18n.Lang .Activity.OpenedPRCount "repo.activity.opened_prs_count_1" "repo.activity.opened_prs_count_n") }} </a> {{end}} {{if .Permission.CanRead $.UnitTypeIssues}} <a href="#closed-issues" class="ui attached segment text center"> - <i class="text red octicon octicon-issue-closed"></i> <strong>{{.Activity.ClosedIssueCount}}</strong><br> + <span class="text red">{{svg "octicon-issue-closed" 16}}</span> <strong>{{.Activity.ClosedIssueCount}}</strong><br> {{.i18n.Tr (TrN .i18n.Lang .Activity.ClosedIssueCount "repo.activity.closed_issues_count_1" "repo.activity.closed_issues_count_n") }} </a> <a href="#new-issues" class="ui attached segment text center"> - <i class="text green octicon octicon-issue-opened"></i> <strong>{{.Activity.OpenedIssueCount}}</strong><br> + <span class="text green">{{svg "octicon-issue-opened" 16}}</span> <strong>{{.Activity.OpenedIssueCount}}</strong><br> {{.i18n.Tr (TrN .i18n.Lang .Activity.OpenedIssueCount "repo.activity.new_issues_count_1" "repo.activity.new_issues_count_n") }} </a> {{end}} @@ -120,7 +120,7 @@ {{if gt .Activity.PublishedReleaseCount 0}} <h4 class="ui horizontal divider header" id="published-releases"> - <i class="text octicon octicon-tag"></i> + <span class="text">{{svg "octicon-tag" 16}}</span> {{.i18n.Tr "repo.activity.title.releases_published_by" (.i18n.Tr (TrN .i18n.Lang .Activity.PublishedReleaseCount "repo.activity.title.releases_1" "repo.activity.title.releases_n") .Activity.PublishedReleaseCount) (.i18n.Tr (TrN .i18n.Lang .Activity.PublishedReleaseAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.PublishedReleaseAuthorCount) }} </h4> <div class="list"> @@ -139,7 +139,7 @@ {{if gt .Activity.MergedPRCount 0}} <h4 class="ui horizontal divider header" id="merged-pull-requests"> - <i class="text octicon octicon-git-pull-request"></i> + <span class="text">{{svg "octicon-git-pull-request" 16}}</span> {{.i18n.Tr "repo.activity.title.prs_merged_by" (.i18n.Tr (TrN .i18n.Lang .Activity.MergedPRCount "repo.activity.title.prs_1" "repo.activity.title.prs_n") .Activity.MergedPRCount) (.i18n.Tr (TrN .i18n.Lang .Activity.MergedPRAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.MergedPRAuthorCount) }} </h4> <div class="list"> @@ -155,7 +155,7 @@ {{if gt .Activity.OpenedPRCount 0}} <h4 class="ui horizontal divider header" id="proposed-pull-requests"> - <i class="text octicon octicon-git-branch"></i> + <span class="text">{{svg "octicon-git-branch" 16}}</span> {{.i18n.Tr "repo.activity.title.prs_opened_by" (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedPRCount "repo.activity.title.prs_1" "repo.activity.title.prs_n") .Activity.OpenedPRCount) (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedPRAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.OpenedPRAuthorCount) }} </h4> <div class="list"> @@ -171,7 +171,7 @@ {{if gt .Activity.ClosedIssueCount 0}} <h4 class="ui horizontal divider header" id="closed-issues"> - <i class="text octicon octicon-issue-closed"></i> + <span class="text">{{svg "octicon-issue-closed" 16}}</span> {{.i18n.Tr "repo.activity.title.issues_closed_by" (.i18n.Tr (TrN .i18n.Lang .Activity.ClosedIssueCount "repo.activity.title.issues_1" "repo.activity.title.issues_n") .Activity.ClosedIssueCount) (.i18n.Tr (TrN .i18n.Lang .Activity.ClosedIssueAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.ClosedIssueAuthorCount) }} </h4> <div class="list"> @@ -187,7 +187,7 @@ {{if gt .Activity.OpenedIssueCount 0}} <h4 class="ui horizontal divider header" id="new-issues"> - <i class="text octicon octicon-issue-opened"></i> + <span class="text">{{svg "octicon-issue-opened" 16}}</span> {{.i18n.Tr "repo.activity.title.issues_created_by" (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedIssueCount "repo.activity.title.issues_1" "repo.activity.title.issues_n") .Activity.OpenedIssueCount) (.i18n.Tr (TrN .i18n.Lang .Activity.OpenedIssueAuthorCount "repo.activity.title.user_1" "repo.activity.title.user_n") .Activity.OpenedIssueAuthorCount) }} </h4> <div class="list"> @@ -203,7 +203,7 @@ {{if gt .Activity.UnresolvedIssueCount 0}} <h4 class="ui horizontal divider header" id="unresolved-conversations"> - <i class="text octicon octicon-comment-discussion"></i> + <span class="text">{{svg "octicon-comment-discussion" 16}}</span> {{.i18n.Tr (TrN .i18n.Lang .Activity.UnresolvedIssueCount "repo.activity.title.unresolved_conv_1" "repo.activity.title.unresolved_conv_n") .Activity.UnresolvedIssueCount }} </h4> <div class="text center desc"> diff --git a/templates/repo/blame.tmpl b/templates/repo/blame.tmpl index 483f8d38eb..0a906d1f18 100644 --- a/templates/repo/blame.tmpl +++ b/templates/repo/blame.tmpl @@ -18,14 +18,14 @@ </div> {{if .Repository.CanEnableEditor}} {{if .CanEditFile}} - <a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-pencil btn-octicon poping up" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a> + <a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon poping up" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span></a> {{else}} - <i class="octicon octicon-pencil btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i> + <span class="btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span> {{end}} {{if .CanDeleteFile}} - <a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-trashcan btn-octicon btn-octicon-danger poping up" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a> + <a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon btn-octicon-danger poping up" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span></a> {{else}} - <i class="octicon octicon-trashcan btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i> + <span class="btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span> {{end}} {{end}} </div> diff --git a/templates/repo/branch/list.tmpl b/templates/repo/branch/list.tmpl index a24360795e..26a14eb6ff 100644 --- a/templates/repo/branch/list.tmpl +++ b/templates/repo/branch/list.tmpl @@ -16,10 +16,10 @@ {{range .Branches}} {{if eq .Name $.DefaultBranch}} {{if .IsProtected}} - <i class="octicon octicon-shield"></i> + {{svg "octicon-shield-lock" 16}} {{end}} <a href="{{$.RepoLink}}/src/branch/{{$.DefaultBranch | EscapePound}}">{{$.DefaultBranch}}</a> - <p class="info"><i class="octicon octicon-git-commit"></i><a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p> + <p class="info">{{svg "octicon-git-commit" 16}}<a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p> {{end}} {{end}} </td> @@ -27,8 +27,8 @@ <div class="ui basic jump dropdown icon button poping up" data-content="{{$.i18n.Tr "repo.branch.download" ($.DefaultBranch)}}" data-variation="tiny inverted" data-position="top right"> <i class="download icon"></i> <div class="menu"> - <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a> - <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.zip">{{svg "octicon-file-zip" 16}} ZIP</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.tar.gz">{{svg "octicon-file-zip" 16}} TAR.GZ</a> </div> </div> </td> @@ -53,10 +53,10 @@ <p class="info">{{$.i18n.Tr "repo.branch.deleted_by" .DeletedBranch.DeletedBy.Name}} {{TimeSinceUnix .DeletedBranch.DeletedUnix $.i18n.Lang}}</p> {{else}} {{if .IsProtected}} - <i class="octicon octicon-shield"></i> + {{svg "octicon-shield-lock" 16}} {{end}} <a href="{{$.RepoLink}}/src/branch/{{.Name | EscapePound}}">{{.Name}}</a> - <p class="info"><i class="octicon octicon-git-commit"></i><a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p> + <p class="info">{{svg "octicon-git-commit" 16}}<a href="{{$.RepoLink}}/commit/{{.Commit.ID.String}}">{{ShortSha .Commit.ID.String}}</a> · <span class="commit-message">{{RenderCommitMessage .Commit.CommitMessage $.RepoLink $.Repository.ComposeMetas}}</span> · {{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Commit.Committer.When $.i18n.Lang}}</p> {{end}} </td> <td class="three wide ui"> @@ -77,7 +77,7 @@ {{if not .LatestPullRequest}} {{if .IsIncluded}} <a class="ui poping up orange small label" data-content="{{$.i18n.Tr "repo.branch.included_desc"}}" data-variation="tiny inverted" data-position="top right"> - <i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.branch.included"}} + {{svg "octicon-git-pull-request" 16}} {{$.i18n.Tr "repo.branch.included"}} </a> {{else if and (not .IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}} <a href="{{$.RepoLink}}/compare/{{$.DefaultBranch | EscapePound}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{$.Owner.Name}}:{{end}}{{.Name | EscapePound}}"> @@ -93,11 +93,11 @@ {{else}} <a href="{{.LatestPullRequest.Issue.HTMLURL}}">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a> {{if .LatestPullRequest.HasMerged}} - <a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui purple mini label"><i class="octicon octicon-git-pull-request"></i> {{$.i18n.Tr "repo.pulls.merged"}}</a> + <a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui purple mini label">{{svg "octicon-git-pull-request" 16}} {{$.i18n.Tr "repo.pulls.merged"}}</a> {{else if .LatestPullRequest.Issue.IsClosed}} - <a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui red mini label"><i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.issues.closed_title"}}</a> + <a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui red mini label">{{svg "octicon-issue-closed" 16}} {{$.i18n.Tr "repo.issues.closed_title"}}</a> {{else}} - <a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui green mini label"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.open_title"}}</a> + <a href="{{.LatestPullRequest.Issue.HTMLURL}}" class="ui green mini label">{{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.issues.open_title"}}</a> {{end}} {{end}} </td> @@ -106,14 +106,14 @@ <div class="ui basic jump dropdown icon button poping up" data-content="{{$.i18n.Tr "repo.branch.download" (.Name)}}" data-variation="tiny inverted" data-position="top right"> <i class="download icon"></i> <div class="menu"> - <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a> - <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.zip">{{svg "octicon-file-zip" 16}} ZIP</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound .Name}}.tar.gz">{{svg "octicon-file-zip" 16}} TAR.GZ</a> </div> </div> {{end}} {{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}} {{if .IsDeleted}} - <a class="ui basic jump button icon poping up undo-button" href data-url="{{$.Link}}/restore?branch_id={{.DeletedBranch.ID | urlquery}}&name={{.DeletedBranch.Name | urlquery}}" data-content="{{$.i18n.Tr "repo.branch.restore" (.Name)}}" data-variation="tiny inverted" data-position="top right"><i class="octicon octicon-reply text blue"></i></a> + <a class="ui basic jump button icon poping up undo-button" href data-url="{{$.Link}}/restore?branch_id={{.DeletedBranch.ID | urlquery}}&name={{.DeletedBranch.Name | urlquery}}" data-content="{{$.i18n.Tr "repo.branch.restore" (.Name)}}" data-variation="tiny inverted" data-position="top right"><span class="text blue">{{svg "octicon-reply" 16}}</span></a> {{else}} <a class="ui basic jump button icon poping up delete-branch-button" href data-url="{{$.Link}}/delete?name={{.Name | urlquery}}" data-content="{{$.i18n.Tr "repo.branch.delete" (.Name)}}" data-variation="tiny inverted" data-position="top right" data-name="{{.Name}}"><i class="trash icon text red"></i></a> {{end}} diff --git a/templates/repo/branch_dropdown.tmpl b/templates/repo/branch_dropdown.tmpl index b7f4c91212..28aa14abea 100644 --- a/templates/repo/branch_dropdown.tmpl +++ b/templates/repo/branch_dropdown.tmpl @@ -2,7 +2,7 @@ <div class="ui floating filter dropdown custom" data-can-create-branch="{{.CanCreateBranch}}" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}"> <div class="ui basic small compact button" @click="menuVisible = !menuVisible" @keyup.enter="menuVisible = !menuVisible"> <span class="text"> - <i class="octicon octicon-git-branch"></i> + {{svg "octicon-git-branch" 16}} {{if .IsViewBranch}}{{.i18n.Tr "repo.branch"}}{{else}}{{.i18n.Tr "repo.tree"}}{{end}}: <strong>{{if .IsViewBranch}}{{.BranchName}}{{else}}{{ShortSha .BranchName}}{{end}}</strong> </span> @@ -26,7 +26,7 @@ <div class="two column row"> <a class="reference column" href="#" @click="mode = 'branches'; focusSearchField()"> <span class="text" :class="{black: mode == 'branches'}"> - <i class="octicon octicon-git-branch"></i> {{.i18n.Tr "repo.branches"}} + {{svg "octicon-git-branch" 16}} {{.i18n.Tr "repo.branches"}} </span> </a> <a class="reference column" href="#" @click="mode = 'tags'; focusSearchField()"> @@ -42,7 +42,7 @@ <div class="item" v-if="showCreateNewBranch" :class="{active: active == filteredItems.length}" :ref="'listItem' + filteredItems.length"> <a href="#" @click="createNewBranch()"> <div> - <i class="octicon octicon-git-branch"></i> + {{svg "octicon-git-branch" 16}} {{.i18n.Tr "repo.branch.create_branch" `${ searchTerm }` | Safe}} </div> <div class="text small"> diff --git a/templates/repo/commit_page.tmpl b/templates/repo/commit_page.tmpl index 5b19523cf2..e8477ed985 100644 --- a/templates/repo/commit_page.tmpl +++ b/templates/repo/commit_page.tmpl @@ -10,7 +10,7 @@ {{if IsMultilineCommitMessage .Commit.Message}} <pre class="commit-body">{{RenderCommitBody .Commit.Message $.RepoLink $.Repository.ComposeMetas}}</pre> {{end}} - <span class="text grey"><i class="octicon octicon-git-branch"></i>{{.BranchName}}</span> + <span class="text grey">{{svg "octicon-git-branch" 16}}{{.BranchName}}</span> </div> <div class="ui attached info segment {{if .Commit.Signature}} isSigned {{if .Verification.Verified }} isVerified {{end}}{{end}}"> <div class="ui stackable grid"> diff --git a/templates/repo/commits.tmpl b/templates/repo/commits.tmpl index 32301a038a..3b4c39524d 100644 --- a/templates/repo/commits.tmpl +++ b/templates/repo/commits.tmpl @@ -8,7 +8,7 @@ <div class="fitted item"> <a href="{{.RepoLink}}/graph" class="ui basic small compact button"> <span class="text"> - <i class="octicon octicon-git-branch"></i> + {{svg "octicon-git-branch" 16}} </span> {{.i18n.Tr "repo.commit_graph"}} </a> diff --git a/templates/repo/commits_table.tmpl b/templates/repo/commits_table.tmpl index 0e53936f0a..da2a134994 100644 --- a/templates/repo/commits_table.tmpl +++ b/templates/repo/commits_table.tmpl @@ -21,9 +21,9 @@ <button class="ui blue tiny button" data-panel="#add-deploy-key-panel" data-tooltip={{.i18n.Tr "repo.commits.search.tooltip"}}>{{.i18n.Tr "repo.commits.find"}}</button> </form> {{else if .IsDiffCompare}} - <a href="{{$.CommitRepoLink}}/commit/{{.BeforeCommitID}}" class="ui green sha label">{{if not .BaseIsCommit}}{{if .BaseIsBranch}}<i class="octicon octicon-git-branch"></i>{{else if .BaseIsTag}}<i class="octicon octicon-tag"></i>{{end}}{{.BaseBranch}}{{else}}{{ShortSha .BaseBranch}}{{end}}</a> + <a href="{{$.CommitRepoLink}}/commit/{{.BeforeCommitID}}" class="ui green sha label">{{if not .BaseIsCommit}}{{if .BaseIsBranch}}{{svg "octicon-git-branch" 16}}{{else if .BaseIsTag}}{{svg "octicon-tag" 16}}{{end}}{{.BaseBranch}}{{else}}{{ShortSha .BaseBranch}}{{end}}</a> ... - <a href="{{$.CommitRepoLink}}/commit/{{.AfterCommitID}}" class="ui green sha label">{{if not .HeadIsCommit}}{{if .HeadIsBranch}}<i class="octicon octicon-git-branch"></i>{{else if .HeadIsTag}}<i class="octicon octicon-tag"></i>{{end}}{{.HeadBranch}}{{else}}{{ShortSha .HeadBranch}}{{end}}</a> + <a href="{{$.CommitRepoLink}}/commit/{{.AfterCommitID}}" class="ui green sha label">{{if not .HeadIsCommit}}{{if .HeadIsBranch}}{{svg "octicon-git-branch" 16}}{{else if .HeadIsTag}}{{svg "octicon-tag" 16}}{{end}}{{.HeadBranch}}{{else}}{{ShortSha .HeadBranch}}{{end}}</a> {{end}} </div> </div> diff --git a/templates/repo/diff/blob_excerpt.tmpl b/templates/repo/diff/blob_excerpt.tmpl index 5f0cd30bb7..ad5e3b1b10 100644 --- a/templates/repo/diff/blob_excerpt.tmpl +++ b/templates/repo/diff/blob_excerpt.tmpl @@ -10,7 +10,7 @@ <i class="ui blob-excerpt fa fa-caret-up" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up" data-anchor="{{$.Anchor}}"></i> {{end}} {{if or (eq $line.GetExpandDirection 2)}} - <i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="{{$.Anchor}}"></i> + <span class="ui blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="{{$.Anchor}}">{{svg "octicon-fold" 16}}</span> {{end}} </td> <td colspan="5" class="lines-code lines-code-old "><span class="mono wrap{{if $.highlightClass}} language-{{$.highlightClass}}{{else}} nohighlight{{end}}">{{$.section.GetComputedInlineDiffFor $line}}</span></td> @@ -36,7 +36,7 @@ <i class="ui blob-excerpt fa fa-caret-down" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=down" data-anchor="{{$.Anchor}}"></i> {{end}} {{if or (eq $line.GetExpandDirection 2)}} - <i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="{{$.Anchor}}"></i> + <span class="ui blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="{{$.Anchor}}">{{svg "octicon-fold" 16}}</span> {{end}} </td> {{else}} @@ -47,4 +47,4 @@ <td class="blob-excerpt lines-code{{if (not $line.RightIdx)}} lines-code-old{{end}}"><span class="mono wrap{{if $.highlightClass}} language-{{$.highlightClass}}{{else}} nohighlight{{end}}">{{$.section.GetComputedInlineDiffFor $line}}</span></td> </tr> {{end}} -{{end}}
\ No newline at end of file +{{end}} diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl index 15ba387dca..0b5c7a0564 100644 --- a/templates/repo/diff/box.tmpl +++ b/templates/repo/diff/box.tmpl @@ -133,7 +133,7 @@ <i class="ui blob-excerpt fa fa-caret-up" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i> {{end}} {{if or (eq $line.GetExpandDirection 2)}} - <i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i> + <span class="ui blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{$.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">{{svg "octicon-fold" 16}}</span> {{end}} </td> <td colspan="5" class="lines-code lines-code-old "><span class="mono wrap{{if $highlightClass}} language-{{$highlightClass}}{{else}} nohighlight{{end}}">{{$section.GetComputedInlineDiffFor $line}}</span></td> diff --git a/templates/repo/diff/comment_form.tmpl b/templates/repo/diff/comment_form.tmpl index 822b1e54f6..0bcd5d2028 100644 --- a/templates/repo/diff/comment_form.tmpl +++ b/templates/repo/diff/comment_form.tmpl @@ -24,7 +24,7 @@ {{.i18n.Tr "loading"}} </div> <div class="footer"> - <span class="markdown-info"><i class="octicon octicon-markdown"></i> {{$.root.i18n.Tr "repo.diff.comment.markdown_info"}}</span> + <span class="markdown-info">{{svg "octicon-markdown" 16}} {{$.root.i18n.Tr "repo.diff.comment.markdown_info"}}</span> <div class="ui right floated"> {{if $.reply}} <button name="reply" value="{{$.reply}}" class="ui submit green tiny button btn-reply">{{$.root.i18n.Tr "repo.diff.comment.reply"}}</button> diff --git a/templates/repo/diff/compare.tmpl b/templates/repo/diff/compare.tmpl index 50a51c44ac..e98823953c 100644 --- a/templates/repo/diff/compare.tmpl +++ b/templates/repo/diff/compare.tmpl @@ -13,7 +13,7 @@ {{ end }} </h2> <div class="ui segment choose branch"> - <span class="octicon octicon-git-compare"></span> + {{svg "octicon-git-compare" 16}} <div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}"> <div class="ui basic small button"> <span class="text">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span> diff --git a/templates/repo/diff/section_unified.tmpl b/templates/repo/diff/section_unified.tmpl index fcc511af75..33544fd032 100644 --- a/templates/repo/diff/section_unified.tmpl +++ b/templates/repo/diff/section_unified.tmpl @@ -12,7 +12,7 @@ <i class="ui blob-excerpt fa fa-caret-up" data-url="{{$.root.RepoLink}}/blob_excerpt/{{$.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=up" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i> {{end}} {{if or (eq $line.GetExpandDirection 2)}} - <i class="ui blob-excerpt octicon octicon-fold" data-url="{{$.root.RepoLink}}/blob_excerpt/{{$.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}"></i> + <span class="ui blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{$.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">{{svg "octicon-fold" 16}}</span> {{end}} </td> {{else}} diff --git a/templates/repo/editor/commit_form.tmpl b/templates/repo/editor/commit_form.tmpl index 1915e9be21..35fe1a910d 100644 --- a/templates/repo/editor/commit_form.tmpl +++ b/templates/repo/editor/commit_form.tmpl @@ -17,7 +17,7 @@ <div class="ui radio checkbox {{if not .CanCommitToBranch.CanCommitToBranch}}disabled{{end}}"> <input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="direct" button_text="{{.i18n.Tr "repo.editor.commit_changes"}}" {{if eq .commit_choice "direct"}}checked{{end}}> <label> - <i class="octicon octicon-git-commit" height="16" width="14"></i> + {{svg "octicon-git-commit" 16}} {{.i18n.Tr "repo.editor.commit_directly_to_this_branch" (.BranchName|Escape) | Safe}} {{if not .CanCommitToBranch.CanCommitToBranch}} <div class="ui visible small warning message"> @@ -41,7 +41,7 @@ <input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="commit-to-new-branch" button_text="{{.i18n.Tr "repo.editor.commit_changes"}}" {{if eq .commit_choice "commit-to-new-branch"}}checked{{end}}> {{end}} <label> - <i class="octicon octicon-git-pull-request" height="16" width="12"></i> + {{svg "octicon-git-pull-request" 16}} {{if $pullRequestEnabled}} {{.i18n.Tr "repo.editor.create_new_branch" | Safe}} {{else}} @@ -52,7 +52,7 @@ </div> <div class="quick-pull-branch-name {{if not (eq .commit_choice "commit-to-new-branch")}}hide{{end}}"> <div class="new-branch-name-input field {{if .Err_NewBranchName}}error{{end}}"> - <i class="octicon octicon-git-branch" height="16" width="10"></i> + {{svg "octicon-git-branch" 16}} <input type="text" name="new_branch_name" value="{{.new_branch_name}}" class="input-contrast mr-2 js-quick-pull-new-branch-name" placeholder="{{.i18n.Tr "repo.editor.new_branch_name_desc"}}" {{if eq .commit_choice "commit-to-new-branch"}}required{{end}}> <span class="text-muted js-quick-pull-normalization-info"></span> </div> diff --git a/templates/repo/editor/edit.tmpl b/templates/repo/editor/edit.tmpl index d0ba1becc8..3eac405aa6 100644 --- a/templates/repo/editor/edit.tmpl +++ b/templates/repo/editor/edit.tmpl @@ -16,7 +16,7 @@ <div class="divider"> / </div> {{if eq $i $l}} <input id="file-name" value="{{$v}}" placeholder="{{$.i18n.Tr "repo.editor.name_your_file"}}" data-ec-url-prefix="{{$.EditorconfigURLPrefix}}" required autofocus> - <span class="octicon octicon-info poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted"></span> + <span class="poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-info" 16}}</span> {{else}} <span class="section"><a href="{{EscapePound $.BranchLink}}/{{index $.TreePaths $i | EscapePound}}">{{$v}}</a></span> {{end}} @@ -28,10 +28,10 @@ </div> <div class="field"> <div class="ui top attached tabular menu" data-write="write" data-preview="preview" data-diff="diff"> - <a class="active item" data-tab="write"><i class="octicon octicon-code"></i> {{if .IsNewFile}}{{.i18n.Tr "repo.editor.new_file"}}{{else}}{{.i18n.Tr "repo.editor.edit_file"}}{{end}}</a> + <a class="active item" data-tab="write">{{svg "octicon-code" 16}} {{if .IsNewFile}}{{.i18n.Tr "repo.editor.new_file"}}{{else}}{{.i18n.Tr "repo.editor.edit_file"}}{{end}}</a> {{if not .IsNewFile}} - <a class="item" data-tab="preview" data-url="{{.Repository.APIURL}}/markdown" data-context="{{.RepoLink}}/src/{{.BranchNameSubURL | EscapePound}}" data-preview-file-modes="{{.PreviewableFileModes}}"><i class="octicon octicon-eye"></i> {{.i18n.Tr "preview"}}</a> - <a class="item" data-tab="diff" data-url="{{.RepoLink}}/_preview/{{.BranchName | EscapePound}}/{{.TreePath | EscapePound}}" data-context="{{.BranchLink}}"><i class="octicon octicon-diff"></i> {{.i18n.Tr "repo.editor.preview_changes"}}</a> + <a class="item" data-tab="preview" data-url="{{.Repository.APIURL}}/markdown" data-context="{{.RepoLink}}/src/{{.BranchNameSubURL | EscapePound}}" data-preview-file-modes="{{.PreviewableFileModes}}">{{svg "octicon-eye" 16}} {{.i18n.Tr "preview"}}</a> + <a class="item" data-tab="diff" data-url="{{.RepoLink}}/_preview/{{.BranchName | EscapePound}}/{{.TreePath | EscapePound}}" data-context="{{.BranchLink}}">{{svg "octicon-diff" 16}} {{.i18n.Tr "repo.editor.preview_changes"}}</a> {{end}} </div> <div class="ui bottom attached active tab segment" data-tab="write"> diff --git a/templates/repo/editor/upload.tmpl b/templates/repo/editor/upload.tmpl index 23fdc8bafc..f1ca5b756f 100644 --- a/templates/repo/editor/upload.tmpl +++ b/templates/repo/editor/upload.tmpl @@ -15,7 +15,7 @@ <div class="divider"> / </div> {{if eq $i $l}} <input type="text" id="file-name" value="{{$v}}" placeholder="{{$.i18n.Tr "repo.editor.add_subdir"}}" autofocus> - <span class="octicon octicon-info poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted"></span> + <span class="poping up" data-content="{{$.i18n.Tr "repo.editor.filename_help"}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-info" 16}}</span> {{else}} <span class="section"><a href="{{EscapePound $.BranchLink}}/{{index $.TreePaths $i | EscapePound}}">{{$v}}</a></span> {{end}} diff --git a/templates/repo/empty.tmpl b/templates/repo/empty.tmpl index 07c01fe542..d6965d6fb9 100644 --- a/templates/repo/empty.tmpl +++ b/templates/repo/empty.tmpl @@ -35,7 +35,7 @@ {{end}} {{if not (and $.DisableHTTP $.DisableSSH)}} <button class="ui basic button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url"> - <i class="octicon octicon-clippy"></i> + {{svg "octicon-clippy" 16}} </button> {{end}} </div> diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl index b3757b2764..c92feb5a78 100644 --- a/templates/repo/header.tmpl +++ b/templates/repo/header.tmpl @@ -4,15 +4,46 @@ <div class="repo-header"> <div class="ui huge breadcrumb repo-title"> {{if .RelAvatarLink}} - <img class="ui avatar image" src="{{.RelAvatarLink}}"> + <img class="ui avatar image" src="{{.RelAvatarLink}}"> + {{else if .IsTemplate}} + {{if .IsPrivate}} + {{svg "octicon-repo-template-private" 32}} + {{else}} + {{svg "octicon-repo-template" 32}} + {{end}} {{else}} - <i class="mega-octicon octicon-{{if .IsPrivate}}lock{{else if .IsMirror}}repo-clone{{else if .IsFork}}repo-forked{{else}}repo{{end}}"></i> + {{if .IsPrivate}} + {{svg "octicon-lock" 32}} + {{else if .IsMirror}} + {{svg "octicon-repo-clone" 32}} + {{else if .IsFork}} + {{svg "octicon-repo-fork" 32}} + {{else}} + {{svg "octicon-repo" 32}} + {{end}} {{end}} <a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a> <div class="divider"> / </div> <a href="{{$.RepoLink}}">{{.Name}}</a> - {{if and .RelAvatarLink .IsPrivate}}<i class="mega-octicon octicon-lock"></i>{{end}} - {{if .IsTemplate}}<i class="icon fa-copy"></i>{{end}} + {{if .RelAvatarLink}} + {{if .IsTemplate}} + {{if .IsPrivate}} + {{svg "octicon-repo-template-private" 32}} + {{else}} + {{svg "octicon-repo-template" 32}} + {{end}} + {{else}} + {{if .IsPrivate}} + {{svg "octicon-lock" 32}} + {{else if .IsMirror}} + {{svg "octicon-repo-clone" 32}} + {{else if .IsFork}} + {{svg "octicon-repo-fork" 32}} + {{else}} + {{svg "octicon-repo" 32}} + {{end}} + {{end}} + {{end}} {{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}} {{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener noreferrer" href="{{if .SanitizedOriginalURL}}{{.SanitizedOriginalURL}}{{else}}{{MirrorAddress $.Mirror}}{{end}}">{{if .SanitizedOriginalURL}}{{.SanitizedOriginalURL}}{{else}}{{MirrorAddress $.Mirror}}{{end}}</a></div>{{end}} {{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{SubStr .BaseRepo.RelLink 1 -1}}</a></div>{{end}} @@ -39,7 +70,7 @@ {{if and (not .IsEmpty) ($.Permission.CanRead $.UnitTypeCode)}} <div class="ui labeled button {{if and ($.IsSigned) (not $.CanSignedUserFork)}}disabled-repo-button{{end}}" tabindex="0"> <a class="ui compact basic button {{if or (not $.IsSigned) (not $.CanSignedUserFork)}}poping up{{end}}" {{if $.CanSignedUserFork}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else if $.IsSigned}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" {{ else }} data-content="{{$.i18n.Tr "repo.fork_guest_user" }}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{AppSubUrl}}/repo/fork/{{.ID}}" {{end}} data-position="top center" data-variation="tiny"> - <i class="octicon octicon-repo-forked"></i>{{$.i18n.Tr "repo.fork"}} + {{svg "octicon-repo-forked" 16}}{{$.i18n.Tr "repo.fork"}} </a> <a class="ui basic label" href="{{.Link}}/forks"> {{.NumForks}} @@ -56,43 +87,43 @@ <div class="ui tabular stackable menu navbar"> {{if .Permission.CanRead $.UnitTypeCode}} <a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}{{if (ne .BranchName .Repository.DefaultBranch)}}/src/{{.BranchNameSubURL | EscapePound}}{{end}}"> - <i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}} + {{svg "octicon-code" 16}} {{.i18n.Tr "repo.code"}} </a> {{end}} {{if .Permission.CanRead $.UnitTypeIssues}} <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues"> - <i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span> </a> {{end}} {{if .Permission.CanRead $.UnitTypeExternalTracker}} <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoExternalIssuesLink}}" target="_blank" rel="noopener noreferrer"> - <i class="octicon octicon-link-external"></i> {{.i18n.Tr "repo.issues"}} </span> + {{svg "octicon-link-external" 16}} {{.i18n.Tr "repo.issues"}} </span> </a> {{end}} {{if and .Repository.CanEnablePulls (.Permission.CanRead $.UnitTypePullRequests)}} <a class="{{if .PageIsPullList}}active{{end}} item" href="{{.RepoLink}}/pulls"> - <i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.pulls"}} <span class="ui {{if not .Repository.NumOpenPulls}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenPulls}}</span> + {{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "repo.pulls"}} <span class="ui {{if not .Repository.NumOpenPulls}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenPulls}}</span> </a> {{end}} {{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }} <a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases"> - <i class="octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span> + {{svg "octicon-tag" 16}} {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span> </a> {{end}} {{if or (.Permission.CanRead $.UnitTypeWiki) (.Permission.CanRead $.UnitTypeExternalWiki)}} <a class="{{if .PageIsWiki}}active{{end}} item" href="{{.RepoLink}}/wiki" {{if (.Permission.CanRead $.UnitTypeExternalWiki)}} target="_blank" rel="noopener noreferrer" {{end}}> - <i class="octicon octicon-book"></i> {{.i18n.Tr "repo.wiki"}} + {{svg "octicon-book" 16}} {{.i18n.Tr "repo.wiki"}} </a> {{end}} {{if and (.Permission.CanReadAny $.UnitTypePullRequests $.UnitTypeIssues $.UnitTypeReleases) (not .IsEmptyRepo)}} <a class="{{if .PageIsActivity}}active{{end}} item" href="{{.RepoLink}}/activity"> - <i class="octicon octicon-pulse"></i> {{.i18n.Tr "repo.activity"}} + {{svg "octicon-pulse" 16}} {{.i18n.Tr "repo.activity"}} </a> {{end}} @@ -101,7 +132,7 @@ {{if .Permission.IsAdmin}} <div class="right menu"> <a class="{{if .PageIsSettings}}active{{end}} item" href="{{.RepoLink}}/settings"> - <i class="octicon octicon-tools"></i> {{.i18n.Tr "repo.settings"}} + {{svg "octicon-tools" 16}} {{.i18n.Tr "repo.settings"}} </a> </div> {{end}} diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl index 19989bbe06..2397cb1b88 100644 --- a/templates/repo/home.tmpl +++ b/templates/repo/home.tmpl @@ -127,14 +127,14 @@ {{end}} {{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}} <button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url"> - <i class="octicon octicon-clippy"></i> + {{svg "octicon-clippy" 16}} </button> {{end}} <div class="ui basic jump dropdown icon button poping up" data-content="{{.i18n.Tr "repo.download_archive"}}" data-variation="tiny inverted" data-position="top right"> <i class="download icon"></i> <div class="menu"> - <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a> - <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip">{{svg "octicon-file-zip" 16}} ZIP</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz">{{svg "octicon-file-zip" 16}} TAR.GZ</a> </div> </div> </div> diff --git a/templates/repo/issue/branch_selector_field.tmpl b/templates/repo/issue/branch_selector_field.tmpl index 8758be4ae0..a584152d61 100644 --- a/templates/repo/issue/branch_selector_field.tmpl +++ b/templates/repo/issue/branch_selector_field.tmpl @@ -15,7 +15,7 @@ <div class="two column row"> <a class="reference column" href="#" data-target="#branch-list"> <span class="text black"> - <i class="octicon octicon-git-branch"></i> {{.i18n.Tr "repo.branches"}} + {{svg "octicon-git-branch" 16}} {{.i18n.Tr "repo.branches"}} </span> </a> <a class="reference column" href="#" data-target="#tag-list"> @@ -40,4 +40,4 @@ </div> <div class="ui divider"></div> -{{end}}
\ No newline at end of file +{{end}} diff --git a/templates/repo/issue/labels.tmpl b/templates/repo/issue/labels.tmpl index 32a5c2a4ef..4719c8f1fb 100644 --- a/templates/repo/issue/labels.tmpl +++ b/templates/repo/issue/labels.tmpl @@ -98,18 +98,18 @@ <li class="item"> <div class="ui grid"> <div class="three wide column"> - <div class="ui label has-emoji" style="color: {{.ForegroundColor}}; background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div> + <div class="ui label has-emoji" style="color: {{.ForegroundColor}}; background-color: {{.Color}}">{{svg "octicon-tag" 16}} {{.Name}}</div> </div> <div class="seven wide column"> {{.Description}} </div> <div class="three wide column"> - <a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a> + <a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}">{{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a> </div> <div class="three wide column"> {{if and (not $.Repository.IsArchived) (or $.CanWriteIssues $.CanWritePulls)}} - <a class="ui right delete-button" href="#" data-url="{{$.RepoLink}}/labels/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> - <a class="ui right edit-label-button" href="#" data-id="{{.ID}}" data-title="{{.Name}}" data-description="{{.Description}}" data-color={{.Color}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> + <a class="ui right delete-button" href="#" data-url="{{$.RepoLink}}/labels/delete" data-id="{{.ID}}">{{svg "octicon-trashcan" 16}} {{$.i18n.Tr "repo.issues.label_delete"}}</a> + <a class="ui right edit-label-button" href="#" data-id="{{.ID}}" data-title="{{.Name}}" data-description="{{.Description}}" data-color={{.Color}}>{{svg "octicon-pencil" 16}} {{$.i18n.Tr "repo.issues.label_edit"}}</a> {{end}} </div> </div> diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index ca6fa72b98..0b618daaa9 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -30,11 +30,11 @@ <div class="six wide column"> <div class="ui tiny basic status buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-opened"></i> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-closed"></i> + {{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} </a> </div> @@ -51,7 +51,7 @@ <span class="info">{{.i18n.Tr "repo.issues.filter_label_exclude" | Safe}}</span> <a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a> {{range .Labels}} - <a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}"><span class="octicon {{if .IsExcluded}}octicon-circle-slash{{else if .IsSelected}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> + <a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}">{{if .IsExcluded}}{{svg "octicon-circle-slash" 16}}{{else if .IsSelected}}{{svg "octicon-check" 16}}{{end}}<span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> {{end}} </div> </div> @@ -124,11 +124,11 @@ <div class="six wide column"> <div class="ui tiny basic status buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-opened"></i> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-closed"></i> + {{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} </a> </div> @@ -155,7 +155,7 @@ <div class="menu"> {{range .Labels}} <div class="item issue-action has-emoji" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels"> - <span class="octicon {{if contain $.SelLabelIDs .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} + {{if contain $.SelLabelIDs .ID}}{{svg "octicon-check" 16}}{{end}}<span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} </div> {{end}} </div> @@ -223,11 +223,11 @@ {{end}} {{if .NumComments}} - <span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span> + <span class="comment ui right">{{svg "octicon-comment" 16}} {{.NumComments}}</span> {{end}} {{if .TotalTrackedTime}} - <span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span> + <span class="comment ui right">{{svg "octicon-clock" 16}} {{.TotalTrackedTime | Sec2Time}}</span> {{end}} <p class="desc"> @@ -242,24 +242,24 @@ {{if .Milestone}} <a class="milestone" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}"> - <span class="octicon octicon-milestone"></span> {{.Milestone.Name}} + {{svg "octicon-milestone" 16}} {{.Milestone.Name}} </a> {{end}} {{if .Ref}} <a class="ref" href="{{$.RepoLink}}/src/branch/{{.Ref | PathEscapeSegments}}"> - <span class="octicon octicon-git-branch"></span> {{.Ref}} + {{svg "octicon-git-branch" 16}} {{.Ref}} </a> {{end}} {{$tasks := .GetTasks}} {{if gt $tasks 0}} {{$tasksDone := .GetTasksDone}} <span class="checklist"> - <span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span> + {{svg "octicon-checklist" 16}} {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span> </span> {{end}} {{if ne .DeadlineUnix 0}} <span class="due-date poping up" data-content="{{$.i18n.Tr "repo.issues.due_date"}}" data-variation="tiny inverted" data-position="right center"> - <span class="octicon octicon-calendar"></span><span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span> + {{svg "octicon-calendar" 16}}<span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span> </span> {{end}} {{range .Assignees}} @@ -269,7 +269,7 @@ {{end}} {{if .IsPull}} {{if and (not .PullRequest.HasMerged) ((len .PullRequest.ConflictedFiles) gt 0)}} - <span class="conflicting"><i class="octicon octicon-mirror"></i> {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span> + <span class="conflicting">{{svg "octicon-mirror" 16}} {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span> {{end}} {{end}} </p> diff --git a/templates/repo/issue/milestone_issues.tmpl b/templates/repo/issue/milestone_issues.tmpl index fb0609601c..fdde0ad6b4 100644 --- a/templates/repo/issue/milestone_issues.tmpl +++ b/templates/repo/issue/milestone_issues.tmpl @@ -7,7 +7,7 @@ <h3>{{.Milestone.Name}}</h3> </div> <div class="column center aligned"> - + </div> {{if not .Repository.IsArchived}} <div class="column right aligned"> @@ -22,16 +22,16 @@ <div class="column"> {{ $closedDate:= TimeSinceUnix .Milestone.ClosedDateUnix $.Lang }} {{if .IsClosed}} - <span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} + {{svg "octicon-clock" 16}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} {{else}} - <span class="octicon octicon-calendar"></span> + {{svg "octicon-calendar" 16}} {{if .Milestone.DeadlineString}} <span {{if .IsOverdue}}class="overdue"{{end}}>{{.Milestone.DeadlineString}}</span> {{else}} {{$.i18n.Tr "repo.milestones.no_due_date"}} {{end}} {{end}} - + <b>{{.i18n.Tr "repo.milestones.completeness" .Milestone.Completeness}}</b> </div> </div> @@ -40,11 +40,11 @@ <div class="six wide column"> <div class="ui tiny basic status buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-opened"></i> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-closed"></i> + {{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} </a> </div> @@ -61,7 +61,7 @@ <span class="info">{{.i18n.Tr "repo.issues.filter_label_exclude" | Safe}}</span> <a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a> {{range .Labels}} - <a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}"><span class="octicon {{if .IsExcluded}}octicon-circle-slash{{else if contain $.SelLabelIDs .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> + <a class="item has-emoji label-filter-item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" data-label-id="{{.ID}}">{{if .IsExcluded}}{{svg "octicon-circle-slash" 16}}{{else if contain $.SelLabelIDs .ID}}{{svg "octicon-check" 16}}{{end}}"><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> {{end}} </div> </div> @@ -118,11 +118,11 @@ <div class="six wide column"> <div class="ui tiny basic status buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-opened"></i> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&assignee={{.AssigneeID}}"> - <i class="octicon octicon-issue-closed"></i> + {{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} </a> </div> @@ -149,7 +149,7 @@ <div class="menu"> {{range .Labels}} <div class="item issue-action has-emoji" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels"> - <span class="octicon {{if contain $.SelLabelIDs .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} + {{if contain $.SelLabelIDs .ID}}{{svg "octicon-check" 16}}{{end}}"><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} </div> {{end}} </div> @@ -193,11 +193,11 @@ {{end}} {{if .NumComments}} - <span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span> + <span class="comment ui right">{{svg "octicon-comment" 16}} {{.NumComments}}</span> {{end}} {{if .TotalTrackedTime}} - <span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span> + <span class="comment ui right">{{svg "octicon-clock" 16}} {{.TotalTrackedTime | Sec2Time}}</span> {{end}} <p class="desc"> @@ -208,18 +208,18 @@ {{end}} {{if .Ref}} <a class="ref" href="{{$.RepoLink}}/src/branch/{{.Ref}}"> - <span class="octicon octicon-git-branch"></span> {{.Ref}} + {{svg "octicon-git-branch" 16}} {{.Ref}} </a> {{end}} {{$tasks := .GetTasks}} {{if gt $tasks 0}} {{$tasksDone := .GetTasksDone}} <span class="checklist"> - <span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span> + {{svg "octicon-checklist" 16}} {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span> </span> {{end}} {{if ne .DeadlineUnix 0}} - <span class="octicon octicon-calendar"></span> + {{svg "octicon-calendar" 16}} <span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span> {{end}} {{range .Assignees}} diff --git a/templates/repo/issue/milestones.tmpl b/templates/repo/issue/milestones.tmpl index ef5eece770..e33124e66e 100644 --- a/templates/repo/issue/milestones.tmpl +++ b/templates/repo/issue/milestones.tmpl @@ -14,11 +14,11 @@ {{template "base/alert" .}} <div class="ui tiny basic buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.RepoLink}}/milestones?state=open"> - <i class="octicon octicon-milestone"></i> + {{svg "octicon-milestone" 16}} {{.i18n.Tr "repo.milestones.open_tab" .OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.RepoLink}}/milestones?state=closed"> - <i class="octicon octicon-milestone"></i> + {{svg "octicon-milestone" 16}} {{.i18n.Tr "repo.milestones.close_tab" .ClosedCount}} </a> </div> @@ -43,7 +43,7 @@ <div class="milestone list"> {{range .Milestones}} <li class="item"> - <i class="octicon octicon-milestone"></i> <a href="{{$.RepoLink}}/milestone/{{.ID}}">{{.Name}}</a> + {{svg "octicon-milestone" 16}} <a href="{{$.RepoLink}}/milestone/{{.ID}}">{{.Name}}</a> <div class="ui right green progress" data-percent="{{.Completeness}}"> <div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}> <div class="progress"></div> @@ -52,9 +52,9 @@ <div class="meta"> {{ $closedDate:= TimeSinceUnix .ClosedDateUnix $.Lang }} {{if .IsClosed}} - <span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} + {{svg "octicon-clock" 16}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} {{else}} - <span class="octicon octicon-calendar"></span> + {{svg "octicon-calendar" 16}} {{if .DeadlineString}} <span {{if .IsOverdue}}class="overdue"{{end}}>{{.DeadlineString}}</span> {{else}} @@ -62,20 +62,20 @@ {{end}} {{end}} <span class="issue-stats"> - <i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.open_tab" .NumOpenIssues}} - <i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.issues.close_tab" .NumClosedIssues}} - {{if .TotalTrackedTime}}<i class="octicon octicon-clock"></i> {{.TotalTrackedTime|Sec2Time}}{{end}} + {{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.issues.open_tab" .NumOpenIssues}} + {{svg "octicon-issue-closed" 16}} {{$.i18n.Tr "repo.issues.close_tab" .NumClosedIssues}} + {{if .TotalTrackedTime}}{{svg "octicon-clock" 16}} {{.TotalTrackedTime|Sec2Time}}{{end}} </span> </div> {{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}} <div class="ui right operate"> - <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> + <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-pencil" 16}} {{$.i18n.Tr "repo.issues.label_edit"}}</a> {{if .IsClosed}} - <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-check"></i> {{$.i18n.Tr "repo.milestones.open"}}</a> + <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-check" 16}} {{$.i18n.Tr "repo.milestones.open"}}</a> {{else}} - <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.milestones.close"}}</a> + <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-x" 16}} {{$.i18n.Tr "repo.milestones.close"}}</a> {{end}} - <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> + <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trashcan" 16}} {{$.i18n.Tr "repo.issues.label_delete"}}</a> </div> {{end}} {{if .Content}} diff --git a/templates/repo/issue/new_form.tmpl b/templates/repo/issue/new_form.tmpl index 470139d7f3..524b849c14 100644 --- a/templates/repo/issue/new_form.tmpl +++ b/templates/repo/issue/new_form.tmpl @@ -41,12 +41,12 @@ <div class="ui {{if not .Labels}}disabled{{end}} floating jump select-label dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.labels"}}</strong> - <span class="octicon octicon-gear"></span> + {{svg "octicon-gear" 16}} </span> <div class="filter menu" data-id="#label_ids"> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div> {{range .Labels}} - <a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} + <a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} {{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a> {{end}} </div> @@ -64,14 +64,14 @@ <div class="ui {{if not (or .OpenMilestones .ClosedMilestones)}}disabled{{end}} floating jump select-milestone dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.milestone"}}</strong> - <span class="octicon octicon-gear"></span> + {{svg "octicon-gear" 16}} </span> <div class="menu"> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_milestone"}}</div> {{if .OpenMilestones}} <div class="divider"></div> <div class="header"> - <i class="octicon octicon-milestone"></i> + {{svg "octicon-milestone" 16}} {{.i18n.Tr "repo.issues.new.open_milestone"}} </div> {{range .OpenMilestones}} @@ -81,7 +81,7 @@ {{if .ClosedMilestones}} <div class="divider"></div> <div class="header"> - <i class="octicon octicon-milestone"></i> + {{svg "octicon-milestone" 16}} {{.i18n.Tr "repo.issues.new.closed_milestone"}} </div> {{range .ClosedMilestones}} @@ -105,13 +105,13 @@ <div class="ui {{if not .Assignees}}disabled{{end}} floating jump select-assignees dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.assignees"}}</strong> - <span class="octicon octicon-gear"></span> + {{svg "octicon-gear" 16}} </span> <div class="filter menu" data-id="#assignee_ids"> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignees"}}</div> {{range .Assignees}} <a class="item" href="#" data-id="{{.ID}}" data-id-selector="#assignee_{{.ID}}"> - <span class="octicon"></span> + <span class="octicon-check invisible">{{svg "octicon-check" 16}}</span> <span class="text"> <img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.GetDisplayName}} </span> diff --git a/templates/repo/issue/view_content/add_reaction.tmpl b/templates/repo/issue/view_content/add_reaction.tmpl index 9e1dc3cc87..543f313f0a 100644 --- a/templates/repo/issue/view_content/add_reaction.tmpl +++ b/templates/repo/issue/view_content/add_reaction.tmpl @@ -1,8 +1,8 @@ {{if .ctx.IsSigned}} <div class="item action ui pointing top right select-reaction dropdown" data-action-url="{{ .ActionURL }}"> <a class="add-reaction"> - <i class="octicon octicon-plus-small" style="width: 10px"></i> - <i class="octicon octicon-smiley"></i> + {{svg "octicon-plus-small" 16}} + {{svg "octicon-smiley" 16}} </a> <div class="menu has-emoji"> <div class="header">{{ .ctx.i18n.Tr "repo.pick_reaction"}}</div> diff --git a/templates/repo/issue/view_content/attachments.tmpl b/templates/repo/issue/view_content/attachments.tmpl index a97f5d85da..17bf9bb9ed 100644 --- a/templates/repo/issue/view_content/attachments.tmpl +++ b/templates/repo/issue/view_content/attachments.tmpl @@ -3,7 +3,7 @@ {{if FilenameIsImage .Name}} <img class="ui image" src="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'> {{else}} - <span class="ui image octicon octicon-desktop-download" title='{{$.ctx.i18n.Tr "repo.issues.attachment.download" .Name}}'></span> + <span class="ui image" title='{{$.ctx.i18n.Tr "repo.issues.attachment.download" .Name}}'>{{svg "octicon-desktop-download" 16}}</span> {{end}} </a> {{end}} diff --git a/templates/repo/issue/view_content/comments.tmpl b/templates/repo/issue/view_content/comments.tmpl index 9c99f44ba8..2e9d8a32ba 100644 --- a/templates/repo/issue/view_content/comments.tmpl +++ b/templates/repo/issue/view_content/comments.tmpl @@ -70,7 +70,7 @@ </div> {{else if eq .Type 1}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -78,7 +78,7 @@ </div> {{else if eq .Type 2}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-circle-slash issue-symbol"></span> + <span class="issue-symbol">{{svg "octicon-circle-slash" 16}}</span> <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -99,7 +99,7 @@ {{end}} {{ $createdStr:= TimeSinceUnix .CreatedUnix $.Lang }} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-bookmark"></span> + {{svg "octicon-bookmark" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -115,21 +115,21 @@ </div> {{else if eq .Type 4}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-bookmark"></span> + {{svg "octicon-bookmark" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> <span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.commit_ref_at" .EventTag $createdStr | Safe}}</span> <div class="detail"> - <span class="octicon octicon-git-commit"></span> + {{svg "octicon-git-commit" 16}} <span class="text grey">{{.Content | Str2html}}</span> </div> </div> {{else if eq .Type 7}} {{if .Label}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -139,7 +139,7 @@ {{end}} {{else if eq .Type 8}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -148,7 +148,7 @@ </div> {{else if eq .Type 9}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} {{if gt .AssigneeID 0}} {{if .RemovedAssignee}} <a class="ui avatar image" href="{{.Assignee.HomeLink}}"> @@ -179,7 +179,7 @@ </div> {{else if eq .Type 10}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -189,7 +189,7 @@ </div> {{else if eq .Type 11}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -199,7 +199,7 @@ </div> {{else if eq .Type 12}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -207,32 +207,32 @@ </div> {{else if eq .Type 13}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> <span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.stop_tracking_history" $createdStr | Safe}}</span> <div class="detail"> - <span class="octicon octicon-clock"></span> + {{svg "octicon-clock" 16}} <span class="text grey">{{.Content}}</span> </div> </div> {{else if eq .Type 14}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> <span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.add_time_history" $createdStr | Safe}}</span> <div class="detail"> - <span class="octicon octicon-clock"></span> + {{svg "octicon-clock" 16}} <span class="text grey">{{.Content}}</span> </div> </div> {{else if eq .Type 15}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -240,7 +240,7 @@ </div> {{else if eq .Type 16}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -250,7 +250,7 @@ </div> {{else if eq .Type 17}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -260,7 +260,7 @@ </div> {{else if eq .Type 18}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -270,7 +270,7 @@ </div> {{else if eq .Type 19}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -279,7 +279,7 @@ </span> {{if .DependentIssue}} <div class="detail"> - <span class="octicon octicon-plus"></span> + {{svg "octicon-plus" 16}} <span class="text grey"> <a href="{{.DependentIssue.HTMLURL}}"> {{if eq .DependentIssue.RepoID .Issue.RepoID}} @@ -294,7 +294,7 @@ </div> {{else if eq .Type 20}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -303,7 +303,7 @@ </span> {{if .DependentIssue}} <div class="detail"> - <span class="text grey octicon octicon-trashcan"></span> + <span class="text grey">{{svg "octicon-trashcan" 16}}</span> <span class="text grey"> <a href="{{.DependentIssue.HTMLURL}}"> {{if eq .DependentIssue.RepoID .Issue.RepoID}} @@ -318,7 +318,7 @@ </div> {{else if eq .Type 22}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-{{.Review.Type.Icon}} issue-symbol"></span> + <span class="issue-symbol">{{svg (printf "octicon-%s" .Review.Type.Icon) 16}}</span> {{if .OriginalAuthor }} {{else}} <a class="ui avatar image"{{if gt .Poster.ID 0}} href="{{.Poster.HomeLink}}"{{end}}> @@ -344,7 +344,7 @@ </span> {{if .Content}} <div class="detail"> - <span class="octicon octicon-quote"></span> + {{svg "octicon-quote" 16}} <span class="text grey has-emoji">{{.Content}}</span> </div> {{end}} @@ -355,11 +355,11 @@ {{$invalid := (index $comms 0).Invalidated}} {{if $invalid}} <button id="show-outdated-{{(index $comms 0).ID}}" data-comment="{{(index $comms 0).ID}}" class="ui compact right labeled button show-outdated"> - <i class="octicon octicon-fold"></i> + {{svg "octicon-fold" 16}} {{$.i18n.Tr "repo.issues.review.show_outdated"}} </button> <button id="hide-outdated-{{(index $comms 0).ID}}" data-comment="{{(index $comms 0).ID}}" class="hide ui compact right labeled button hide-outdated"> - <i class="octicon octicon-fold"></i> + {{svg "octicon-fold" 16}} {{$.i18n.Tr "repo.issues.review.hide_outdated"}} </button> {{end}} @@ -417,7 +417,7 @@ </div> {{else if eq .Type 23}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-lock issue-symbol"></span> + <span class="issue-symbol">{{svg "octicon-lock" 16}}</span> <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -434,7 +434,7 @@ </div> {{else if eq .Type 24}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-key issue-symbol"></span> + <span class="issue-symbol">{{svg "octicon-key" 16}}</span> <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -445,7 +445,7 @@ </div> {{else if eq .Type 25}} <div class="event"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> @@ -455,13 +455,13 @@ </div> {{else if eq .Type 26}} <div class="event" id="{{.HashTag}}"> - <span class="octicon octicon-primitive-dot"></span> + {{svg "octicon-primitive-dot" 16}} <a class="ui avatar image" href="{{.Poster.HomeLink}}"> <img src="{{.Poster.RelAvatarLink}}"> </a> <span class="text grey"><a href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> {{$.i18n.Tr "repo.issues.del_time_history" $createdStr | Safe}}</span> <div class="detail"> - <span class="octicon octicon-clock"></span> + {{svg "octicon-clock" 16}} <span class="text grey">{{.Content}}</span> </div> </div> diff --git a/templates/repo/issue/view_content/pull.tmpl b/templates/repo/issue/view_content/pull.tmpl index 32c744515c..0d98f08e69 100644 --- a/templates/repo/issue/view_content/pull.tmpl +++ b/templates/repo/issue/view_content/pull.tmpl @@ -11,7 +11,7 @@ {{else if eq .Type 2}}grey {{else if eq .Type 3}}red {{else}}grey{{end}}"> - <span class="octicon octicon-{{.Type.Icon}}"></span> + {{svg (printf "octicon-%s" .Type.Icon) 16}} </span> {{if .Stale}} <span class="type-icon text grey"> @@ -52,7 +52,7 @@ {{else if and .RequireSigned (not .WillSign)}}}red {{else if .Issue.PullRequest.IsChecking}}yellow {{else if .Issue.PullRequest.CanAutoMerge}}green - {{else}}red{{end}}"><span class="mega-octicon octicon-git-merge"></span></a> + {{else}}red{{end}}">{{svg "octicon-git-merge" 32}}</a> <div class="content"> {{template "repo/pulls/status" .}} <div class="ui {{if not $.LatestCommitStatus}}top attached header{{else}}attached merge-section segment{{end}}"> @@ -87,7 +87,7 @@ {{end}} {{else if .IsPullFilesConflicted}} <div class="item text grey"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.files_conflicted"}} {{range .ConflictedFiles}} <div>{{.}}</div> @@ -95,38 +95,38 @@ </div> {{else if .IsPullRequestBroken}} <div class="item text red"> - <i class="icon icon-octicon"><span class="octicon octicon-x"></span></i> + <i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> {{$.i18n.Tr "repo.pulls.data_broken"}} </div> {{else if .IsPullWorkInProgress}} <div class="item text grey"> - <i class="icon icon-octicon"><span class="octicon octicon-x"></span></i> + <i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> {{$.i18n.Tr "repo.pulls.cannot_merge_work_in_progress" .WorkInProgressPrefix | Str2html}} </div> {{else if .Issue.PullRequest.IsChecking}} <div class="item text yellow"> - <i class="icon icon-octicon"><span class="octicon octicon-sync"></span></i> + <i class="icon icon-octicon">{{svg "octicon-sync" 16}}</i> {{$.i18n.Tr "repo.pulls.is_checking"}} </div> {{else if .Issue.PullRequest.CanAutoMerge}} {{if .IsBlockedByApprovals}} <div class="item text red"> - <i class="icon icon-octicon"><span class="octicon octicon-x"></span></i> + <i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> {{$.i18n.Tr "repo.pulls.blocked_by_approvals" .GrantedApprovals .Issue.PullRequest.ProtectedBranch.RequiredApprovals}} </div> {{else if .IsBlockedByRejection}} <div class="item text red"> - <i class="icon icon-octicon"><span class="octicon octicon-x"></span></i> + <i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> {{$.i18n.Tr "repo.pulls.blocked_by_rejection"}} </div> {{else if and .EnableStatusCheck (or .RequiredStatusCheckState.IsError .RequiredStatusCheckState.IsFailure)}} <div class="item text red"> - <i class="icon icon-octicon"><span class="octicon octicon-x"></span></i> + <i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> {{$.i18n.Tr "repo.pulls.required_status_check_failed"}} </div> {{else if and .RequireSigned (not .WillSign)}} <div class="item text red"> - <i class="icon icon-octicon"><span class="octicon octicon-x"></span></i> + <i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> {{$.i18n.Tr "repo.pulls.require_signed_wont_sign"}} </div> <div class="item text yellow"> @@ -138,12 +138,12 @@ {{if and (or $.IsRepoAdmin (not $notAllOverridableChecksOk)) (or (not .RequireSigned) .WillSign)}} {{if $notAllOverridableChecksOk}} <div class="item text yellow"> - <i class="icon icon-octicon"><span class="octicon octicon-primitive-dot"></span></i> + <i class="icon icon-octicon">{{svg "octicon-primitive-dot" 16}}</i> {{$.i18n.Tr "repo.pulls.required_status_check_administrator"}} </div> {{else}} <div class="item text green"> - <i class="icon icon-octicon"><span class="octicon octicon-check"></span></i> + <i class="icon icon-octicon">{{svg "octicon-check" 16}}</i> {{$.i18n.Tr "repo.pulls.can_auto_merge_desc"}} </div> {{end}} @@ -162,7 +162,7 @@ <div class="ui very compact branch-update grid"> <div class="row"> <div class="item text gray eleven wide left floated column"> - <i class="icon icon-octicon"><span class="octicon octicon-alert"></span></i> + <i class="icon icon-octicon">{{svg "octicon-alert" 16}}</i> {{$.i18n.Tr "repo.pulls.outdated_with_base_branch"}} </div> {{if .UpdateAllowed}} @@ -256,7 +256,7 @@ {{end}} <div class="ui {{if $notAllOverridableChecksOk}}red{{else}}green{{end}} buttons merge-button"> <button class="ui button" data-do="{{.MergeStyle}}"> - <span class="octicon octicon-git-merge"></span> + {{svg "octicon-git-merge" 16}} <span class="button-text"> {{if eq .MergeStyle "merge"}} {{$.i18n.Tr "repo.pulls.merge_pull_request"}} @@ -292,17 +292,17 @@ </div> {{else}} <div class="item text red"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.no_merge_desc"}} </div> <div class="item text grey"> - <span class="octicon octicon-info"></span> + {{svg "octicon-info" 16}} {{$.i18n.Tr "repo.pulls.no_merge_helper"}} </div> {{end}} {{else}} <div class="item text grey"> - <span class="octicon octicon-info"></span> + {{svg "octicon-info" 16}} {{$.i18n.Tr "repo.pulls.no_merge_access"}} </div> {{end}} @@ -311,31 +311,31 @@ {{/* Merge conflict without specific file. Suggest manual merge, only if all reviews and status checks OK. */}} {{if .IsBlockedByApprovals}} <div class="item text red"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.blocked_by_approvals" .GrantedApprovals .Issue.PullRequest.ProtectedBranch.RequiredApprovals}} </div> {{else if .IsBlockedByRejection}} <div class="item text red"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.blocked_by_rejection"}} </div> {{else if and .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}} <div class="item text red"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.required_status_check_failed"}} </div> {{else if and .RequireSigned (not .WillSign)}} <div class="item text red"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.require_signed_wont_sign"}} </div> {{else}} <div class="item text red"> - <span class="octicon octicon-x"></span> + {{svg "octicon-x" 16}} {{$.i18n.Tr "repo.pulls.cannot_auto_merge_desc"}} </div> <div class="item text grey"> - <span class="octicon octicon-info"></span> + {{svg "octicon-info" 16}} {{$.i18n.Tr "repo.pulls.cannot_auto_merge_helper"}} </div> {{end}} diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl index 4d57173617..a9a4035594 100644 --- a/templates/repo/issue/view_content/sidebar.tmpl +++ b/templates/repo/issue/view_content/sidebar.tmpl @@ -5,12 +5,12 @@ <div class="ui {{if or (not .IsIssueWriter) .Repository.IsArchived}}disabled{{end}} floating jump select-label dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.labels"}}</strong> - <span class="octicon octicon-gear"></span> + {{svg "octicon-gear" 16}} </span> <div class="filter menu labels" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/labels"> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div> {{range .Labels}} - <a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon {{if .IsChecked}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} + <a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}} {{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a> {{end}} </div> @@ -30,14 +30,14 @@ <div class="ui {{if or (not .IsIssueWriter) .Repository.IsArchived}}disabled{{end}} floating jump select-milestone dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.milestone"}}</strong> - <span class="octicon octicon-gear"></span> + {{svg "octicon-gear" 16}} </span> <div class="menu" data-action="update" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/milestone"> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_milestone"}}</div> {{if .OpenMilestones}} <div class="divider"></div> <div class="header"> - <i class="octicon octicon-milestone"></i> + {{svg "octicon-milestone" 16}} {{.i18n.Tr "repo.issues.new.open_milestone"}} </div> {{range .OpenMilestones}} @@ -47,7 +47,7 @@ {{if .ClosedMilestones}} <div class="divider"></div> <div class="header"> - <i class="octicon octicon-milestone"></i> + {{svg "octicon-milestone" 16}} {{.i18n.Tr "repo.issues.new.closed_milestone"}} </div> {{range .ClosedMilestones}} @@ -71,7 +71,7 @@ <div class="ui {{if or (not .IsIssueWriter) .Repository.IsArchived}}disabled{{end}} floating jump select-assignees-modify dropdown"> <span class="text"> <strong>{{.i18n.Tr "repo.issues.new.assignees"}}</strong> - <span class="octicon octicon-gear"></span> + {{svg "octicon-gear" 16}} </span> <div class="filter menu" data-action="" data-issue-id="{{$.Issue.ID}}" data-update-url="{{$.RepoLink}}/issues/assignee"> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignees"}}</div> @@ -83,11 +83,13 @@ checked {{end}} {{end}}" href="#" data-id="{{.ID}}" data-id-selector="#assignee_{{.ID}}"> - <span class="octicon{{range $.Issue.Assignees}} - {{if eq .ID $AssigneeID}} - octicon-check + {{$checked := false}} + {{range $.Issue.Assignees}} + {{if eq .ID $AssigneeID}} + {{$checked = true}} + {{end}} {{end}} - {{end}}"></span> + <span class="octicon-check {{if not $checked}}invisible{{end}}">{{svg "octicon-check" 16}}</span> <span class="text"> <img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.GetDisplayName}} </span> @@ -130,10 +132,10 @@ {{$.CsrfTokenHtml}} <button class="fluid ui button"> {{if $.IssueWatch.IsWatching}} - <i class="octicon octicon-mute"></i> + {{svg "octicon-mute" 16}} {{.i18n.Tr "repo.issues.unsubscribe"}} {{else}} - <i class="octicon octicon-unmute"></i> + {{svg "octicon-unmute" 16}} {{.i18n.Tr "repo.issues.subscribe"}} {{end}} </button> @@ -218,7 +220,7 @@ </div> {{if ne .Issue.DeadlineUnix 0}} <p> - <span class="octicon octicon-calendar"></span> + {{svg "octicon-calendar" 16}} {{.Issue.DeadlineUnix.FormatShort}} {{if .Issue.IsOverdue}} <span style="color: red;">{{.i18n.Tr "repo.issues.due_date_overdue"}}</span> @@ -344,10 +346,10 @@ <div> <button class="fluid ui show-modal button {{if .Issue.IsLocked }} negative {{ end }}" data-modal="#lock"> {{if .Issue.IsLocked}} - <i class="octicon octicon-key"></i> + {{svg "octicon-key" 16}} {{.i18n.Tr "repo.issues.unlock"}} {{else}} - <i class="octicon octicon-lock"></i> + {{svg "octicon-lock" 16}} {{.i18n.Tr "repo.issues.lock"}} {{end}} </button> diff --git a/templates/repo/issue/view_title.tmpl b/templates/repo/issue/view_title.tmpl index 11bede3713..21ebf62129 100644 --- a/templates/repo/issue/view_title.tmpl +++ b/templates/repo/issue/view_title.tmpl @@ -17,13 +17,13 @@ {{end}} </div> {{if .HasMerged}} - <div class="ui purple large label"><i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.pulls.merged"}}</div> + <div class="ui purple large label">{{svg "octicon-gt-pull-request" 16}} {{.i18n.Tr "repo.pulls.merged"}}</div> {{else if .Issue.IsClosed}} - <div class="ui red large label"><i class="octicon octicon-issue-closed"></i> {{.i18n.Tr "repo.issues.closed_title"}}</div> + <div class="ui red large label">{{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.closed_title"}}</div> {{else if .Issue.IsPull}} - <div class="ui green large label"><i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.issues.open_title"}}</div> + <div class="ui green large label">{{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "repo.issues.open_title"}}</div> {{else}} - <div class="ui green large label"><i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues.open_title"}}</div> + <div class="ui green large label">{{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_title"}}</div> {{end}} {{if .Issue.IsPull}} @@ -51,7 +51,7 @@ <span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$.HeadTarget}}</span> </div> </div> - <i class="octicon octicon-arrow-right"></i> + {{svg "octicon-arrow-right" 16}} <div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}"> <div class="ui basic small button"> <span class="text" id="pull-target-branch" data-basename="{{$.BaseName}}" data-branch="{{$.BaseBranch}}">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span> diff --git a/templates/repo/pulls/tab_menu.tmpl b/templates/repo/pulls/tab_menu.tmpl index e3f39e8ad2..b54751a401 100644 --- a/templates/repo/pulls/tab_menu.tmpl +++ b/templates/repo/pulls/tab_menu.tmpl @@ -1,16 +1,16 @@ <div class="ui top attached pull tabular stackable menu"> <a class="item {{if .PageIsPullConversation}}active{{end}}" href="{{.RepoLink}}/pulls/{{.Issue.Index}}"> - <span class="octicon octicon-comment-discussion"></span> + {{svg "octicon-comment-discussion" 16}} {{$.i18n.Tr "repo.pulls.tab_conversation"}} <span class="ui {{if not .Issue.NumComments}}gray{{else}}blue{{end}} small label">{{.Issue.NumComments}}</span> </a> <a class="item {{if .PageIsPullCommits}}active{{end}}" {{if .NumCommits}}href="{{.RepoLink}}/pulls/{{.Issue.Index}}/commits"{{end}}> - <span class="octicon octicon-git-commit"></span> + {{svg "octicon-git-commit" 16}} {{$.i18n.Tr "repo.pulls.tab_commits"}} <span class="ui {{if not .NumCommits}}gray{{else}}blue{{end}} small label">{{if .NumCommits}}{{.NumCommits}}{{else}}N/A{{end}}</span> </a> <a class="item {{if .PageIsPullFiles}}active{{end}}" {{if .NumFiles}}href="{{.RepoLink}}/pulls/{{.Issue.Index}}/files"{{end}}> - <span class="octicon octicon-diff"></span> + {{svg "octicon-diff" 16}} {{$.i18n.Tr "repo.pulls.tab_files"}} <span class="ui {{if not .NumFiles}}gray{{else}}blue{{end}} small label">{{if .NumFiles}}{{.NumFiles}}{{else}}N/A{{end}}</span> </a> diff --git a/templates/repo/release/list.tmpl b/templates/repo/release/list.tmpl index 71cf697495..eb3b043238 100644 --- a/templates/repo/release/list.tmpl +++ b/templates/repo/release/list.tmpl @@ -43,8 +43,8 @@ <div class="download"> {{if $.Permission.CanRead $.UnitTypeCode}} <a href="{{$.RepoLink}}/src/commit/{{.Sha1}}" rel="nofollow"><i class="code icon"></i> {{ShortSha .Sha1}}</a> - <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><i class="octicon octicon-file-zip"></i> ZIP</a> - <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a> + <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16}} ZIP</a> + <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz">{{svg "octicon-file-zip" 16}} TAR.GZ</a> {{end}} </div> {{else}} @@ -75,18 +75,18 @@ <ul class="list"> {{if $.Permission.CanRead $.UnitTypeCode}} <li> - <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><strong><i class="octicon octicon-file-zip"></i> {{$.i18n.Tr "repo.release.source_code"}} (ZIP)</strong></a> + <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.zip" rel="nofollow"><strong>{{svg "octicon-file-zip" 16}} {{$.i18n.Tr "repo.release.source_code"}} (ZIP)</strong></a> </li> <li> - <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><strong><i class="octicon octicon-file-zip"></i> {{$.i18n.Tr "repo.release.source_code"}} (TAR.GZ)</strong></a> + <a href="{{$.RepoLink}}/archive/{{.TagName | EscapePound}}.tar.gz"><strong>{{svg "octicon-file-zip" 16}} {{$.i18n.Tr "repo.release.source_code"}} (TAR.GZ)</strong></a> </li> {{end}} {{if .Attachments}} {{range .Attachments}} <li> - <span class="ui text right" data-tooltip="{{$.i18n.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}" data-position="bottom right"><i class="ui octicon octicon-info"></i></span> + <span class="ui text right" data-tooltip="{{$.i18n.Tr "repo.release.download_count" (.DownloadCount | PrettyNumber)}}" data-position="bottom right">{{svg "octicon-info" 16}}</span> <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}"> - <strong><span class="ui image octicon octicon-package" title='{{.Name}}'></span> {{.Name}}</strong> + <strong><span class="ui image" title='{{.Name}}'>{{svg "octicon-package" 16}}</span> {{.Name}}</strong> <span class="ui text grey right">{{.Size | FileSize}}</span> </a> </li> diff --git a/templates/repo/release/new.tmpl b/templates/repo/release/new.tmpl index 01af6edc12..c45c5b20bf 100644 --- a/templates/repo/release/new.tmpl +++ b/templates/repo/release/new.tmpl @@ -23,7 +23,7 @@ <span class="at">@</span> <div class="ui selection dropdown"> <input type="hidden" name="tag_target" value="{{.tag_target}}"/> - <i class="octicon octicon-git-branch"></i> + {{svg "octicon-git-branch" 16}} <div class="text"> {{.i18n.Tr "repo.release.target"}} : <strong id="repo-branch-current">{{.Repository.DefaultBranch}}</strong> diff --git a/templates/repo/settings/collaboration.tmpl b/templates/repo/settings/collaboration.tmpl index f6234f94a0..8c6e6461ad 100644 --- a/templates/repo/settings/collaboration.tmpl +++ b/templates/repo/settings/collaboration.tmpl @@ -18,7 +18,7 @@ </a> </div> <div class="ui eight wide column"> - <span class="octicon octicon-shield"></span> + {{svg "octicon-shield-lock" 16}} <div class="ui inline dropdown"> <div class="text">{{if eq .Collaboration.Mode 1}}{{$.i18n.Tr "repo.settings.collaboration.read"}}{{else if eq .Collaboration.Mode 2}}{{$.i18n.Tr "repo.settings.collaboration.write"}}{{else if eq .Collaboration.Mode 3}}{{$.i18n.Tr "repo.settings.collaboration.admin"}}{{else}}{{$.i18n.Tr "repo.settings.collaboration.undefined"}}{{end}}</div> <i class="dropdown icon"></i> @@ -67,7 +67,7 @@ </a> </div> <div class="ui eight wide column poping up" data-content="Team's permission is set on the team setting page and can't be changed per repository"> - <span class="octicon octicon-shield"></span> + {{svg "octicon-shield-lock" 16}} <div class="ui inline dropdown"> <div class="text">{{if eq .Authorize 1}}{{$.i18n.Tr "repo.settings.collaboration.read"}}{{else if eq .Authorize 2}}{{$.i18n.Tr "repo.settings.collaboration.write"}}{{else if eq .Authorize 3}}{{$.i18n.Tr "repo.settings.collaboration.admin"}}{{else if eq .Authorize 4}}{{$.i18n.Tr "repo.settings.collaboration.owner"}}{{else}}{{$.i18n.Tr "repo.settings.collaboration.undefined"}}{{end}}</div> </div> diff --git a/templates/repo/settings/deploy_keys.tmpl b/templates/repo/settings/deploy_keys.tmpl index 57477b37a8..2d228597e1 100644 --- a/templates/repo/settings/deploy_keys.tmpl +++ b/templates/repo/settings/deploy_keys.tmpl @@ -24,14 +24,14 @@ {{$.i18n.Tr "settings.delete_key"}} </button> </div> - <i class="mega-octicon octicon-key {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}></i> + <i class="{{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}>{{svg "octicon-key" 32}}</i> <div class="content"> <strong>{{.Name}}</strong> <div class="print meta"> {{.Fingerprint}} </div> <div class="activity meta"> - <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}} - <span>{{$.i18n.Tr "settings.can_read_info"}}{{if not .IsReadOnly}} / {{$.i18n.Tr "settings.can_write_info"}} {{end}}</span></i> + <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — {{svg "octicon-info" 16}} {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}} - <span>{{$.i18n.Tr "settings.can_read_info"}}{{if not .IsReadOnly}} / {{$.i18n.Tr "settings.can_write_info"}} {{end}}</span></i> </div> </div> </div> diff --git a/templates/repo/settings/githooks.tmpl b/templates/repo/settings/githooks.tmpl index 2af66780f9..99a38cb800 100644 --- a/templates/repo/settings/githooks.tmpl +++ b/templates/repo/settings/githooks.tmpl @@ -14,7 +14,7 @@ </div> {{range .Hooks}} <div class="item"> - <span class="text {{if .IsActive}}green{{else}}grey{{end}}"><i class="octicon octicon-primitive-dot"></i></span> + <span class="text {{if .IsActive}}green{{else}}grey{{end}}">{{svg "octicon-primitive-dot" 16}}</span> <span>{{.Name}}</span> <a class="text blue ui right" href="{{$.RepoLink}}/settings/hooks/git/{{.Name}}"><i class="fa fa-pencil"></i></a> </div> diff --git a/templates/repo/settings/lfs.tmpl b/templates/repo/settings/lfs.tmpl index f43f9479a2..cde718d0cc 100644 --- a/templates/repo/settings/lfs.tmpl +++ b/templates/repo/settings/lfs.tmpl @@ -7,8 +7,8 @@ <h4 class="ui top attached header"> {{.i18n.Tr "repo.settings.lfs_filelist"}} ({{.i18n.Tr "admin.total" .Total}}) <div class="ui right"> - <a class="ui black tiny show-panel button" href="{{.Link}}/locks"><i class="octicon octicon-lock octicon-tiny"></i>{{.i18n.Tr "repo.settings.lfs_locks"}}</a> - <a class="ui blue tiny show-panel button" href="{{.Link}}/pointers"><i class="octicon octicon-search octicon-tiny"></i> {{.i18n.Tr "repo.settings.lfs_findpointerfiles"}}</a> + <a class="ui black tiny show-panel button" href="{{.Link}}/locks"><span class="octicon-tiny">{{svg "octicon-lock" 16}}</span>{{.i18n.Tr "repo.settings.lfs_locks"}}</a> + <a class="ui blue tiny show-panel button" href="{{.Link}}/pointers"><span class="octicon-tiny">{{svg "octicon-search" 16}}</span> {{.i18n.Tr "repo.settings.lfs_findpointerfiles"}}</a> </div> </h4> <table id="lfs-files-table" class="ui attached segment single line table"> @@ -27,7 +27,7 @@ <td class="right aligned"> <a class="ui blue show-panel button" href="{{$.Link}}/find?oid={{.Oid}}&size={{.Size}}">{{$.i18n.Tr "repo.settings.lfs_findcommits"}}</a> <button class="ui basic show-modal icon button" data-modal="#delete-{{.Oid}}"> - <i class="octicon octicon-trashcan btn-octicon btn-octicon-danger poping up" data-content="{{$.i18n.Tr "repo.editor.delete_this_file"}}" data-position="bottom center" data-variation="tiny inverted"></i> + <span class="btn-octicon btn-octicon-danger poping up" data-content="{{$.i18n.Tr "repo.editor.delete_this_file"}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span> </button> </td> </tr> diff --git a/templates/repo/settings/lfs_file_find.tmpl b/templates/repo/settings/lfs_file_find.tmpl index 18db0215a5..1057cfa945 100644 --- a/templates/repo/settings/lfs_file_find.tmpl +++ b/templates/repo/settings/lfs_file_find.tmpl @@ -13,7 +13,7 @@ {{range .Results}} <tr> <td> - <span class="octicon octicon-file-text"></span> + {{svg "octicon-file" 16}} <a href="{{EscapePound $.RepoLink}}/src/commit/{{.SHA}}/{{EscapePound .Name}}" title="{{.Name}}">{{.Name}}</a> </td> <td class="message has-emoji"> @@ -24,7 +24,7 @@ </span> </td> <td> - <span class="text grey"><i class="octicon octicon-git-branch"></i>{{.BranchName}}</span> + <span class="text grey">{{svg "octicon-git-branch" 16}}{{.BranchName}}</span> </td> <td> {{if .ParentHashes}} diff --git a/templates/repo/settings/lfs_locks.tmpl b/templates/repo/settings/lfs_locks.tmpl index 8a5f6e1658..4830fb2542 100644 --- a/templates/repo/settings/lfs_locks.tmpl +++ b/templates/repo/settings/lfs_locks.tmpl @@ -23,14 +23,14 @@ <tr> <td> {{if index $.Linkable $index}} - <span class="octicon octicon-file-text"></span> + {{svg "octicon-file" 16}} <a href="{{EscapePound $.RepoLink}}/src/branch/{{EscapePound $lock.Repo.DefaultBranch}}/{{EscapePound $lock.Path}}" title="{{$lock.Path}}">{{$lock.Path}}</a> {{else}} - <span class="octicon octicon-diff"></span> + {{svg "octicon-diff" 16}} <span class="poping up" title="{{$.i18n.Tr "repo.settings.lfs_lock_file_no_exist"}}">{{$lock.Path}}</span> {{end}} {{if not (index $.Lockables $index)}} - <i class="octicon octicon-alert poping up" title="{{$.i18n.Tr "repo.settings.lfs_noattribute"}}"></i> + <span class="poping up" title="{{$.i18n.Tr "repo.settings.lfs_noattribute"}}">{{svg "octicon-alert" 16}}</span> {{end}} </td> <td> @@ -43,7 +43,7 @@ <td class="right aligned"> <form action="{{$.LFSFilesLink}}/locks/{{$lock.ID}}/unlock" method="POST"> {{$.CsrfTokenHtml}} - <button class="ui blue button"><i class="octicon octicon-lock btn-octicon"></i>{{$.i18n.Tr "repo.settings.lfs_force_unlock"}}</button> + <button class="ui blue button"><span class="btn-octicon">{{svg "octicon-lock" 16}}</span>{{$.i18n.Tr "repo.settings.lfs_force_unlock"}}</button> </form> </td> </tr> diff --git a/templates/repo/settings/protected_branch.tmpl b/templates/repo/settings/protected_branch.tmpl index b4c65f7830..86045f433f 100644 --- a/templates/repo/settings/protected_branch.tmpl +++ b/templates/repo/settings/protected_branch.tmpl @@ -65,7 +65,7 @@ <div class="menu"> {{range .Teams}} <div class="item" data-value="{{.ID}}"> - <i class="octicon octicon-jersey"></i> + {{svg "octicon-jersey" 16}} {{.Name}} </div> {{end}} @@ -115,7 +115,7 @@ <div class="menu"> {{range .Teams}} <div class="item" data-value="{{.ID}}"> - <i class="octicon octicon-jersey"></i> + {{svg "octicon-jersey" 16}} {{.Name}} </div> {{end}} @@ -195,7 +195,7 @@ <div class="menu"> {{range .Teams}} <div class="item" data-value="{{.ID}}"> - <i class="octicon octicon-jersey"></i> + {{svg "octicon-jersey" 16}} {{.Name}} </div> {{end}} diff --git a/templates/repo/settings/webhook/history.tmpl b/templates/repo/settings/webhook/history.tmpl index 577f357720..53c01c168b 100644 --- a/templates/repo/settings/webhook/history.tmpl +++ b/templates/repo/settings/webhook/history.tmpl @@ -14,9 +14,9 @@ <div class="item"> <div class="meta"> {{if .IsSucceed}} - <span class="text green"><i class="octicon octicon-check"></i></span> + <span class="text green">{{svg "octicon-check" 16}}</span> {{else}} - <span class="text red"><i class="octicon octicon-alert"></i></span> + <span class="text red">{{svg "octicon-alert" 16}}</span> {{end}} <a class="ui blue sha label toggle button" data-target="#info-{{.ID}}">{{.UUID}}</a> <div class="ui right"> diff --git a/templates/repo/settings/webhook/list.tmpl b/templates/repo/settings/webhook/list.tmpl index d1784564dc..5813b74914 100644 --- a/templates/repo/settings/webhook/list.tmpl +++ b/templates/repo/settings/webhook/list.tmpl @@ -38,11 +38,11 @@ {{range .Webhooks}} <div class="item"> {{if eq .LastStatus 1}} - <span class="text green"><i class="octicon octicon-check"></i></span> + <span class="text green">{{svg "octicon-check" 16}}</span> {{else if eq .LastStatus 2}} - <span class="text red"><i class="octicon octicon-alert"></i></span> + <span class="text red">{{svg "octicon-alert" 16}}</span> {{else}} - <span class="text grey"><i class="octicon octicon-primitive-dot"></i></span> + <span class="text grey">{{svg "octicon-primitive-dot" 16}}</span> {{end}} <a class="dont-break-out" href="{{$.BaseLink}}/{{.ID}}">{{.URL}}</a> <div class="ui right"> diff --git a/templates/repo/sub_menu.tmpl b/templates/repo/sub_menu.tmpl index 96128fb2af..51d8d26c30 100644 --- a/templates/repo/sub_menu.tmpl +++ b/templates/repo/sub_menu.tmpl @@ -3,15 +3,15 @@ <div class="ui two horizontal center link list"> {{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo)}} <div class="item{{if .PageIsCommits}} active{{end}}"> - <a class="ui" href="{{.RepoLink}}/commits{{if .IsViewBranch}}/branch{{else if .IsViewTag}}/tag{{else if .IsViewCommit}}/commit{{end}}/{{EscapePound .BranchName}}"><i class="octicon octicon-history"></i> <b>{{.CommitsCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .CommitsCount "repo.commit" "repo.commits") }}</a> + <a class="ui" href="{{.RepoLink}}/commits{{if .IsViewBranch}}/branch{{else if .IsViewTag}}/tag{{else if .IsViewCommit}}/commit{{end}}/{{EscapePound .BranchName}}">{{svg "octicon-history" 16}} <b>{{.CommitsCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .CommitsCount "repo.commit" "repo.commits") }}</a> </div> {{end}} {{if and (.Permission.CanRead $.UnitTypeCode) (not .IsEmptyRepo) }} <div class="item{{if .PageIsBranches}} active{{end}}"> - <a class="ui" href="{{.RepoLink}}/branches/"><i class="octicon octicon-git-branch"></i> <b>{{.BranchesCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .BranchesCount "repo.branch" "repo.branches") }}</a> + <a class="ui" href="{{.RepoLink}}/branches/">{{svg "octicon-git-branch" 16}} <b>{{.BranchesCount}}</b> {{.i18n.Tr (TrN .i18n.Lang .BranchesCount "repo.branch" "repo.branches") }}</a> </div> <div class="item"> - <a class="ui" href="#"><i class="octicon octicon-database"></i> <b>{{SizeFmt .Repository.Size}}</b></a> + <a class="ui" href="#">{{svg "octicon-database" 16}} <b>{{SizeFmt .Repository.Size}}</b></a> </div> {{end}} </div> diff --git a/templates/repo/user_cards.tmpl b/templates/repo/user_cards.tmpl index cd7f15a710..9bf0560427 100644 --- a/templates/repo/user_cards.tmpl +++ b/templates/repo/user_cards.tmpl @@ -14,11 +14,11 @@ <div class="meta"> {{if .Website}} - <span class="octicon octicon-link"></span> <a href="{{.Website}}" target="_blank" rel="noopener noreferrer">{{.Website}}</a> + {{svg "octicon-link" 16}} <a href="{{.Website}}" target="_blank" rel="noopener noreferrer">{{.Website}}</a> {{else if .Location}} - <span class="octicon octicon-location"></span> {{.Location}} + {{svg "octicon-location" 16}} {{.Location}} {{else}} - <span class="octicon octicon-clock"></span> {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} + {{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} {{end}} </div> </li> diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl index f95076272e..f1cf198dee 100644 --- a/templates/repo/view_file.tmpl +++ b/templates/repo/view_file.tmpl @@ -40,14 +40,14 @@ </div> {{if .Repository.CanEnableEditor}} {{if .CanEditFile}} - <a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-pencil btn-octicon poping up" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a> + <a href="{{.RepoLink}}/_edit/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon poping up" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span></a> {{else}} - <i class="octicon octicon-pencil btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i> + <span class="btn-octicon poping up disabled" data-content="{{.EditFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-pencil" 16}}</span> {{end}} {{if .CanDeleteFile}} - <a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><i class="octicon octicon-trashcan btn-octicon btn-octicon-danger poping up" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i></a> + <a href="{{.RepoLink}}/_delete/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"><span class="btn-octicon btn-octicon-danger poping up" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span></a> {{else}} - <i class="octicon octicon-trashcan btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted"></i> + <span class="btn-octicon poping up disabled" data-content="{{.DeleteFileTooltip}}" data-position="bottom center" data-variation="tiny inverted">{{svg "octicon-trashcan" 16}}</span> {{end}} {{end}} </div> diff --git a/templates/repo/view_list.tmpl b/templates/repo/view_list.tmpl index 3ba0eeec8d..3d4fc14cbb 100644 --- a/templates/repo/view_list.tmpl +++ b/templates/repo/view_list.tmpl @@ -42,7 +42,7 @@ <tbody> {{if .HasParentPath}} <tr class="has-parent"> - <td colspan="3"><i class="octicon octicon-mail-reply"></i><a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td> + <td colspan="3">{{svg "octicon-mail-reply" 16}}<a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td> </tr> {{end}} {{range $item := .Files}} @@ -52,7 +52,7 @@ {{if $entry.IsSubModule}} <td> <span class="truncate"> - <span class="octicon octicon-file-submodule"></span> + {{svg "octicon-file-submodule" 16}} {{$refURL := $commit.RefURL AppUrl $.BranchLink}} {{if $refURL}} <a href="{{$refURL}}">{{$entry.Name}}</a> @ <a href="{{$refURL}}/commit/{{$commit.RefID}}">{{ShortSha $commit.RefID}}</a> @@ -67,7 +67,7 @@ {{if $entry.IsDir}} {{$subJumpablePathName := $entry.GetSubJumpablePathName}} {{$subJumpablePath := SubJumpablePath $subJumpablePathName}} - <span class="octicon octicon-file-directory"></span> + {{svg "octicon-file-directory" 16}} <a href="{{EscapePound $.TreeLink}}/{{EscapePound $subJumpablePathName}}" title="{{$subJumpablePathName}}"> {{if eq (len $subJumpablePath) 2}} <span class="jumpable-path">{{index $subJumpablePath 0}}</span>{{index $subJumpablePath 1}} @@ -76,7 +76,7 @@ {{end}} </a> {{else}} - <span class="octicon octicon-{{EntryIcon $entry}}"></span> + {{svg (printf "octicon-%s" (EntryIcon $entry)) 16}} <a href="{{EscapePound $.TreeLink}}/{{EscapePound $entry.Name}}" title="{{$entry.Name}}">{{$entry.Name}}</a> {{end}} </span> diff --git a/templates/repo/wiki/pages.tmpl b/templates/repo/wiki/pages.tmpl index 61903423f3..01e8627944 100644 --- a/templates/repo/wiki/pages.tmpl +++ b/templates/repo/wiki/pages.tmpl @@ -15,7 +15,7 @@ {{range .Pages}} <tr> <td> - <i class="octicon octicon-file-text"></i> + {{svg "octicon-file" 16}} <a href="{{$.RepoLink}}/wiki/{{.SubURL}}">{{.Name}}</a> </td> {{$timeSince := TimeSinceUnix .UpdatedUnix $.Lang}} diff --git a/templates/repo/wiki/revision.tmpl b/templates/repo/wiki/revision.tmpl index 13d3a6227f..019bd1ea45 100644 --- a/templates/repo/wiki/revision.tmpl +++ b/templates/repo/wiki/revision.tmpl @@ -23,7 +23,7 @@ {{end}} {{if or ((not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)))}} <button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url"> - <i class="octicon octicon-clippy"></i> + {{svg "octicon-clippy" 16}} </button> {{end}} </div> diff --git a/templates/repo/wiki/start.tmpl b/templates/repo/wiki/start.tmpl index 0341e8067b..d8de0fcb77 100644 --- a/templates/repo/wiki/start.tmpl +++ b/templates/repo/wiki/start.tmpl @@ -3,7 +3,7 @@ {{template "repo/header" .}} <div class="ui container"> <div class="ui center segment"> - <span class="mega-octicon octicon-book"></span> + {{svg "octicon-book" 32}} <h2>{{.i18n.Tr "repo.wiki.welcome"}}</h2> <p>{{.i18n.Tr "repo.wiki.welcome_desc"}}</p> {{if and .CanWriteWiki (not .Repository.IsMirror)}} diff --git a/templates/repo/wiki/view.tmpl b/templates/repo/wiki/view.tmpl index f775ac9429..f160deedbd 100644 --- a/templates/repo/wiki/view.tmpl +++ b/templates/repo/wiki/view.tmpl @@ -47,7 +47,7 @@ {{end}} {{if or ((not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)))}} <button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url"> - <i class="octicon octicon-clippy"></i> + {{svg "octicon-clippy" 16}} </button> {{end}} </div> diff --git a/templates/user/dashboard/dashboard.tmpl b/templates/user/dashboard/dashboard.tmpl index 27a0a76bc4..7ebe28195a 100644 --- a/templates/user/dashboard/dashboard.tmpl +++ b/templates/user/dashboard/dashboard.tmpl @@ -85,11 +85,11 @@ <ul class="repo-owner-name-list"> <li v-for="repo in repos" :class="{'private': repo.private}" v-show="showRepo(repo, reposFilter)"> <a :href="suburl + '/' + repo.full_name"> - <i :class="repoClass(repo)"></i> + <svg :class="'svg ' + repoClass(repo)" width="16" height="16" aria-hidden="true"><use :xlink:href="staticPrefix + '/img/svg/icons.svg#' + repoClass(repo)" /></svg> <strong class="text truncate item-name">${repo.full_name}</strong> <i v-if="repo.archived" class="archive icon archived-icon"></i> <span class="ui right text light grey"> - ${repo.stars_count} <i class="octicon octicon-star rear"></i> + ${repo.stars_count} <span class="rear">{{svg "octicon-star" 16}}</span> </span> </a> </li> @@ -113,10 +113,10 @@ <ul class="repo-owner-name-list"> <li v-for="org in organizations"> <a :href="suburl + '/' + org.name"> - <i class="octicon octicon-organization"></i> + {{svg "octicon-organization" 16}} <strong class="text truncate item-name">${org.name}</strong> <span class="ui right text light grey"> - ${org.num_repos} <i class="octicon octicon-repo rear"></i> + ${org.num_repos} <span class="rear">{{svg "octicon-repo" 16}}</span> </span> </a> </li> diff --git a/templates/user/dashboard/feeds.tmpl b/templates/user/dashboard/feeds.tmpl index 7c4b1da0c7..fe92cad559 100644 --- a/templates/user/dashboard/feeds.tmpl +++ b/templates/user/dashboard/feeds.tmpl @@ -101,7 +101,7 @@ </div> </div> <div class="ui two wide right aligned column"> - <i class="text grey mega-octicon octicon-{{ActionIcon .GetOpType}}"></i> + <span class="text grey">{{svg (printf "octicon-%s" (ActionIcon .GetOpType)) 32}}</span> </div> </div> <div class="ui divider"></div> diff --git a/templates/user/dashboard/issues.tmpl b/templates/user/dashboard/issues.tmpl index c8cc8b09df..dfb94560e5 100644 --- a/templates/user/dashboard/issues.tmpl +++ b/templates/user/dashboard/issues.tmpl @@ -54,11 +54,11 @@ <div class="twelve wide column content"> <div class="ui tiny basic status buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open"> - <i class="octicon octicon-issue-opened"></i> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.Link}}?type={{$.ViewType}}&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed"> - <i class="octicon octicon-issue-closed"></i> + {{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} </a> </div> @@ -110,10 +110,10 @@ {{end}} {{if .NumComments}} - <span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span> + <span class="comment ui right">{{svg "octicon-comment" 16}} {{.NumComments}}</span> {{end}} {{if .TotalTrackedTime}} - <span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span> + <span class="comment ui right">{{svg "octicon-clock" 16}} {{.TotalTrackedTime | Sec2Time}}</span> {{end}} <p class="desc"> @@ -126,12 +126,12 @@ {{end}} {{if .Milestone}} <a class="milestone" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}"> - <span class="octicon octicon-milestone"></span> {{.Milestone.Name}} + {{svg "octicon-milestone" 16}} {{.Milestone.Name}} </a> {{end}} {{if .Ref}} <a class="ref" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/src/branch/{{.Ref}}"> - <span class="octicon octicon-git-branch"></span> {{.Ref}} + {{svg "octicon-git-branch" 16}} {{.Ref}} </a> {{end}} {{range .Assignees}} @@ -143,17 +143,17 @@ {{if gt $tasks 0}} {{$tasksDone := .GetTasksDone}} <span class="checklist"> - <span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span> + {{svg "octicon-checklist" 16}} {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span> </span> {{end}} {{if ne .DeadlineUnix 0}} <span class="due-date poping up" data-content="{{$.i18n.Tr "repo.issues.due_date"}}" data-variation="tiny inverted" data-position="right center"> - <span class="octicon octicon-calendar"></span><span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span> + {{svg "octicon-calendar" 16}}<span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span> </span> {{end}} {{if .IsPull}} {{if and (not .PullRequest.HasMerged) ((len .PullRequest.ConflictedFiles) gt 0)}} - <span class="conflicting"><i class="octicon octicon-mirror"></i> {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span> + <span class="conflicting">{{svg "octicon-mirror" 16}} {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}</span> {{end}} {{end}} </p> diff --git a/templates/user/dashboard/milestones.tmpl b/templates/user/dashboard/milestones.tmpl index 98b99c6430..2a4226e923 100644 --- a/templates/user/dashboard/milestones.tmpl +++ b/templates/user/dashboard/milestones.tmpl @@ -36,11 +36,11 @@ <div class="twelve wide column content"> <div class="ui tiny basic status buttons"> <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open"> - <i class="octicon octicon-issue-opened"></i> + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "repo.milestones.open_tab" .MilestoneStats.OpenCount}} </a> <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.Link}}?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed"> - <i class="octicon octicon-issue-closed"></i> + {{svg "octicon-issue-closed" 16}} {{.i18n.Tr "repo.milestones.close_tab" .MilestoneStats.ClosedCount}} </a> </div> @@ -66,7 +66,7 @@ {{range .Milestones}} <li class="item"> <div class="ui label">{{.Repo.FullName}}</div> - <i class="octicon octicon-milestone"></i> <a href="{{.Repo.Link }}/milestone/{{.ID}}">{{.Name}}</a> + {{svg "octicon-milestone" 16}} <a href="{{.Repo.Link }}/milestone/{{.ID}}">{{.Name}}</a> <div class="ui right green progress" data-percent="{{.Completeness}}"> <div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}> <div class="progress"></div> @@ -75,9 +75,9 @@ <div class="meta"> {{ $closedDate:= TimeSinceUnix .ClosedDateUnix $.Lang }} {{if .IsClosed}} - <span class="octicon octicon-clock"></span> {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} + {{svg "octicon-clock" 16}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}} {{else}} - <span class="octicon octicon-calendar"></span> + {{svg "octicon-calendar" 16}} {{if .DeadlineString}} <span {{if .IsOverdue}}class="overdue"{{end}}>{{.DeadlineString}}</span> {{else}} @@ -85,20 +85,20 @@ {{end}} {{end}} <span class="issue-stats"> - <i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.milestones.open_tab" .NumOpenIssues}} - <i class="octicon octicon-issue-closed"></i> {{$.i18n.Tr "repo.milestones.close_tab" .NumClosedIssues}} - {{if .TotalTrackedTime}}<i class="octicon octicon-clock"></i> {{.TotalTrackedTime|Sec2Time}}{{end}} + {{svg "octicon-issue-opened" 16}} {{$.i18n.Tr "repo.milestones.open_tab" .NumOpenIssues}} + {{svg "octicon-issue-closed" 16}} {{$.i18n.Tr "repo.milestones.close_tab" .NumClosedIssues}} + {{if .TotalTrackedTime}}{{svg "octicon-clock" 16}} {{.TotalTrackedTime|Sec2Time}}{{end}} </span> </div> {{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}} <div class="ui right operate"> - <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a> + <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-pencil" 16}} {{$.i18n.Tr "repo.issues.label_edit"}}</a> {{if .IsClosed}} - <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-check"></i> {{$.i18n.Tr "repo.milestones.open"}}</a> + <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-check" 16}} {{$.i18n.Tr "repo.milestones.open"}}</a> {{else}} - <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.milestones.close"}}</a> + <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-x" 16}} {{$.i18n.Tr "repo.milestones.close"}}</a> {{end}} - <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}"><i class="octicon octicon-trashcan"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a> + <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trashcan" 16}} {{$.i18n.Tr "repo.issues.label_delete"}}</a> </div> {{end}} {{if .Content}} diff --git a/templates/user/dashboard/navbar.tmpl b/templates/user/dashboard/navbar.tmpl index 1ebd20c8b2..7afb975bbc 100644 --- a/templates/user/dashboard/navbar.tmpl +++ b/templates/user/dashboard/navbar.tmpl @@ -25,7 +25,7 @@ </div> {{if .SignedUser.CanCreateOrganization}} <a class="item" href="{{AppSubUrl}}/org/create"> - <i class="octicon octicon-plus"></i> {{.i18n.Tr "new_org"}} + {{svg "octicon-plus" 16}} {{.i18n.Tr "new_org"}} </a> {{end}} </div> @@ -35,17 +35,17 @@ {{if .ContextUser.IsOrganization}} <div class="right stackable menu"> <a class="{{if .PageIsNews}}active{{end}} item" style="margin-left: auto" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/dashboard"> - <i class="octicon octicon-rss"></i> {{.i18n.Tr "activities"}} + {{svg "octicon-rss" 16}} {{.i18n.Tr "activities"}} </a> <a class="{{if .PageIsIssues}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/issues"> - <i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "issues"}} + {{svg "octicon-issue-opened" 16}} {{.i18n.Tr "issues"}} </a> <a class="{{if .PageIsPulls}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/pulls"> - <i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "pull_requests"}} + {{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "pull_requests"}} </a> {{if .ShowMilestonesDashboardPage}} <a class="{{if .PageIsMilestonesDashboard}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/milestones"> - <i class="octicon octicon-milestone"></i> {{.i18n.Tr "milestones"}} + {{svg "octicon-milestone" 16}} {{.i18n.Tr "milestones"}} </a> {{end}} <div class="item"> diff --git a/templates/user/notification/notification.tmpl b/templates/user/notification/notification.tmpl index beeac0181e..c4f744a291 100644 --- a/templates/user/notification/notification.tmpl +++ b/templates/user/notification/notification.tmpl @@ -18,7 +18,7 @@ <form action="{{AppSubUrl}}/notifications/purge" method="POST" style="margin-left: auto;"> {{$.CsrfTokenHtml}} <button class="ui mini button primary" title='{{$.i18n.Tr "notification.mark_all_as_read"}}'> - <i class="octicon octicon-checklist"></i> + {{svg "octicon-checklist" 16}} </button> </form> {{end}} @@ -41,22 +41,22 @@ <tr data-href="{{$notification.HTMLURL}}"> <td class="collapsing"> {{if eq $notification.Status 3}} - <i class="blue octicon octicon-pin"></i> + <span class="blue">{{svg "octicon-pin" 16}}</span> {{else if $issue.IsPull}} {{if $issue.IsClosed}} {{if $issue.GetPullRequest.HasMerged}} - <i class="purple octicon octicon-git-merge"></i> + <span class="purple">{{svg "octicon-git-merge" 16}}</span> {{else}} - <i class="red octicon octicon-git-pull-request"></i> + <span class="red">{{svg "octicon-git-pull-request" 16}}</span> {{end}} {{else}} - <i class="green octicon octicon-git-pull-request"></i> + <span class="green">{{svg "octicon-git-pull-request" 16}}</span> {{end}} {{else}} {{if $issue.IsClosed}} - <i class="red octicon octicon-issue-closed"></i> + <span class="red">{{svg "octicon-issue-closed" 16}}</span> {{else}} - <i class="green octicon octicon-issue-opened"></i> + <span class="green">{{svg "octicon-issue-opened" 16}}</span> {{end}} {{end}} </td> @@ -77,7 +77,7 @@ <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> <input type="hidden" name="status" value="pinned" /> <button class="ui mini button" title='{{$.i18n.Tr "notification.pin"}}'> - <i class="octicon octicon-pin"></i> + {{svg "octicon-pin" 16}} </button> </form> {{end}} @@ -90,7 +90,7 @@ <input type="hidden" name="status" value="read" /> <input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" /> <button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_read"}}'> - <i class="octicon octicon-check"></i> + {{svg "octicon-check" 16}} </button> </form> {{else if eq $notification.Status 2}} @@ -100,7 +100,7 @@ <input type="hidden" name="status" value="unread" /> <input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" /> <button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_unread"}}'> - <i class="octicon octicon-bell"></i> + {{svg "octicon-bell" 16}} </button> </form> {{end}} diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl index 101a2e7d45..945cc90f0d 100644 --- a/templates/user/profile.tmpl +++ b/templates/user/profile.tmpl @@ -20,23 +20,23 @@ <div class="extra content wrap"> <ul class="text black"> {{if .Owner.Location}} - <li><i class="octicon octicon-location"></i> {{.Owner.Location}}</li> + <li>{{svg "octicon-location" 16}} {{.Owner.Location}}</li> {{end}} {{if .ShowUserEmail }} <li> - <i class="octicon octicon-mail"></i> + {{svg "octicon-mail" 16}} <a href="mailto:{{.Owner.Email}}" rel="nofollow">{{.Owner.Email}}</a> </li> {{end}} {{if .Owner.Website}} <li> - <i class="octicon octicon-link"></i> + {{svg "octicon-link" 16}} <a target="_blank" rel="noopener noreferrer me" href="{{.Owner.Website}}">{{.Owner.Website}}</a> </li> {{end}} {{if .Owner.Description}} <li> - <i class="octicon octicon-info"></i> + {{svg "octicon-info" 16}} <span>{{.Owner.Description}}</span> </li> {{end}} @@ -48,7 +48,7 @@ </li> {{end}} {{end}} - <li><i class="octicon octicon-clock"></i> {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li> + <li>{{svg "octicon-clock" 16}} {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li> {{if and .Orgs .HasOrgsVisible}} <li> <ul class="user-orgs"> @@ -65,9 +65,9 @@ {{if and .IsSigned (ne .SignedUserName .Owner.Name)}} <li class="follow"> {{if .SignedUser.IsFollowing .Owner.ID}} - <a class="ui basic red button" href="{{.Link}}/action/unfollow?redirect_to={{$.Link}}"><i class="octicon octicon-person"></i> {{.i18n.Tr "user.unfollow"}}</a> + <a class="ui basic red button" href="{{.Link}}/action/unfollow?redirect_to={{$.Link}}">{{svg "octicon-person" 16}} {{.i18n.Tr "user.unfollow"}}</a> {{else}} - <a class="ui basic green button" href="{{.Link}}/action/follow?redirect_to={{$.Link}}"><i class="octicon octicon-person"></i> {{.i18n.Tr "user.follow"}}</a> + <a class="ui basic green button" href="{{.Link}}/action/follow?redirect_to={{$.Link}}">{{svg "octicon-person" 16}} {{.i18n.Tr "user.follow"}}</a> {{end}} </li> {{end}} @@ -78,21 +78,21 @@ <div class="ui eleven wide column"> <div class="ui secondary stackable pointing menu"> <a class='{{if and (ne .TabName "activity") (ne .TabName "following") (ne .TabName "followers") (ne .TabName "stars")}}active{{end}} item' href="{{.Owner.HomeLink}}"> - <i class="octicon octicon-repo"></i> {{.i18n.Tr "user.repositories"}} + {{svg "octicon-repo" 16}} {{.i18n.Tr "user.repositories"}} </a> <a class='{{if eq .TabName "activity"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=activity"> - <i class="octicon octicon-rss"></i> {{.i18n.Tr "user.activity"}} + {{svg "octicon-rss" 16}} {{.i18n.Tr "user.activity"}} </a> <a class='{{if eq .TabName "stars"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=stars"> - <i class="octicon octicon-star"></i> {{.i18n.Tr "user.starred"}} + {{svg "octicon-star" 16}} {{.i18n.Tr "user.starred"}} <div class="ui label">{{.Owner.NumStars}}</div> </a> <a class='{{if eq .TabName "following"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=following"> - <i class="octicon octicon-person"></i> {{.i18n.Tr "user.following"}} + {{svg "octicon-person" 16}} {{.i18n.Tr "user.following"}} <div class="ui label">{{.Owner.NumFollowing}}</div> </a> <a class='{{if eq .TabName "followers"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=followers"> - <i class="octicon octicon-person"></i> {{.i18n.Tr "user.followers"}} + {{svg "octicon-person" 16}} {{.i18n.Tr "user.followers"}} <div class="ui label">{{.Owner.NumFollowers}}</div> </a> </div> diff --git a/templates/user/settings/account.tmpl b/templates/user/settings/account.tmpl index dcb5770acc..59608a8f16 100644 --- a/templates/user/settings/account.tmpl +++ b/templates/user/settings/account.tmpl @@ -151,7 +151,7 @@ </h4> <div class="ui attached warning segment"> <div class="ui red message"> - <p class="text left"><i class="octicon octicon-alert"></i> {{.i18n.Tr "settings.delete_prompt" | Str2html}}</p> + <p class="text left">{{svg "octicon-alert" 16}} {{.i18n.Tr "settings.delete_prompt" | Str2html}}</p> </div> <form class="ui form ignore-dirty" id="delete-form" action="{{AppSubUrl}}/user/settings/account/delete" method="post"> {{.CsrfTokenHtml}} diff --git a/templates/user/settings/applications.tmpl b/templates/user/settings/applications.tmpl index 08b2ca7195..4131350cb0 100644 --- a/templates/user/settings/applications.tmpl +++ b/templates/user/settings/applications.tmpl @@ -22,7 +22,7 @@ <div class="content"> <strong>{{.Name}}</strong> <div class="activity meta"> - <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> + <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — {{svg "octicon-info" 16}} {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> </div> </div> </div> diff --git a/templates/user/settings/keys_gpg.tmpl b/templates/user/settings/keys_gpg.tmpl index 0a4afbfb63..3682d3237b 100644 --- a/templates/user/settings/keys_gpg.tmpl +++ b/templates/user/settings/keys_gpg.tmpl @@ -16,7 +16,7 @@ {{$.i18n.Tr "settings.delete_key"}} </button> </div> - <i class="mega-octicon octicon-key {{if or .ExpiredUnix.IsZero ($.PageStartTime.Before .ExpiredUnix.AsTime)}}green{{end}}"></i> + <span class="{{if or .ExpiredUnix.IsZero ($.PageStartTime.Before .ExpiredUnix.AsTime)}}green{{end}}">{{svg "octicon-key" 32}}</span> <div class="content"> {{range .Emails}}<strong>{{.Email}} </strong>{{end}} <div class="print meta"> diff --git a/templates/user/settings/keys_ssh.tmpl b/templates/user/settings/keys_ssh.tmpl index e954472ff9..f5c18d760e 100644 --- a/templates/user/settings/keys_ssh.tmpl +++ b/templates/user/settings/keys_ssh.tmpl @@ -20,14 +20,14 @@ {{$.i18n.Tr "settings.delete_key"}} </button> </div> - <i class="mega-octicon octicon-key {{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted tiny"{{end}}></i> + <span class="{{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted tiny"{{end}}>{{svg "octicon-key" 32}}</span> <div class="content"> <strong>{{.Name}}</strong> <div class="print meta"> {{.Fingerprint}} </div> <div class="activity meta"> - <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> + <i>{{$.i18n.Tr "settings.add_on"}} <span>{{.CreatedUnix.FormatShort}}</span> — {{svg "octicon-info" 16}} {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span {{if .HasRecentActivity}}class="green"{{end}}>{{.UpdatedUnix.FormatShort}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> </div> </div> </div> diff --git a/templates/user/settings/repos.tmpl b/templates/user/settings/repos.tmpl index efb2c41c5b..d28f067fdd 100644 --- a/templates/user/settings/repos.tmpl +++ b/templates/user/settings/repos.tmpl @@ -1,53 +1,53 @@ -{{template "base/head" .}}
-<div class="user settings repos">
- {{template "user/settings/navbar" .}}
- <div class="ui container">
- {{template "base/alert" .}}
- <h4 class="ui top attached header">
- {{.i18n.Tr "settings.repos"}}
- </h4>
- <div class="ui attached segment">
- {{if .Repos}}
- <div class="ui middle aligned divided list">
- {{range .Repos}}
- <div class="item">
- <div class="content">
- {{if .IsPrivate}}
- <span class="text gold iconFloat"><i class="octicon octicon-lock"></i></span>
- {{else if .IsFork}}
- <span class="iconFloat"><i class="octicon octicon-repo-forked"></i></span>
- {{else if .IsMirror}}
- <span class="iconFloat"><i class="octicon octicon-repo-clone"></i></span>
- {{else}}
- <span class="iconFloat"><i class="octicon octicon-repo"></i></span>
- {{end}}
- <a class="name" href="{{AppSubUrl}}/{{$.Owner.Name}}/{{.Name}}">{{$.Owner.Name}}/{{.Name}}</a>
- <span>{{SizeFmt .Size}}</span>
- {{if .IsFork}}
- {{$.i18n.Tr "repo.forked_from"}}
- <span><a href="{{AppSubUrl}}/{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}">{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}</a></span>
- {{end}}
- </div>
- </div>
- {{end}}
- </div>
- {{else}}
- <div class="item">
- {{.i18n.Tr "settings.repos_none"}}
- </div>
- {{end}}
- </div>
- </div>
-</div>
-
-<div class="ui small basic delete modal">
- <div class="ui icon header">
- <i class="trash icon"></i>
- {{.i18n.Tr "settings.remove_account_link"}}
- </div>
- <div class="content">
- <p>{{.i18n.Tr "settings.remove_account_link_desc"}}</p>
- </div>
- {{template "base/delete_modal_actions" .}}
-</div>
-{{template "base/footer" .}}
+{{template "base/head" .}} +<div class="user settings repos"> + {{template "user/settings/navbar" .}} + <div class="ui container"> + {{template "base/alert" .}} + <h4 class="ui top attached header"> + {{.i18n.Tr "settings.repos"}} + </h4> + <div class="ui attached segment"> + {{if .Repos}} + <div class="ui middle aligned divided list"> + {{range .Repos}} + <div class="item"> + <div class="content"> + {{if .IsPrivate}} + <span class="text gold iconFloat">{{svg "octicon-lock" 16}}</span> + {{else if .IsFork}} + <span class="iconFloat">{{svg "octicon-repo-forked" 16}}</span> + {{else if .IsMirror}} + <span class="iconFloat">{{svg "octicon-repo-clone" 16}}</span> + {{else}} + <span class="iconFloat">{{svg "octicon-repo" 16}}</span> + {{end}} + <a class="name" href="{{AppSubUrl}}/{{$.Owner.Name}}/{{.Name}}">{{$.Owner.Name}}/{{.Name}}</a> + <span>{{SizeFmt .Size}}</span> + {{if .IsFork}} + {{$.i18n.Tr "repo.forked_from"}} + <span><a href="{{AppSubUrl}}/{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}">{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}</a></span> + {{end}} + </div> + </div> + {{end}} + </div> + {{else}} + <div class="item"> + {{.i18n.Tr "settings.repos_none"}} + </div> + {{end}} + </div> + </div> +</div> + +<div class="ui small basic delete modal"> + <div class="ui icon header"> + <i class="trash icon"></i> + {{.i18n.Tr "settings.remove_account_link"}} + </div> + <div class="content"> + <p>{{.i18n.Tr "settings.remove_account_link_desc"}}</p> + </div> + {{template "base/delete_modal_actions" .}} +</div> +{{template "base/footer" .}} diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go index a3a918f0b3..73804d3472 100644 --- a/vendor/golang.org/x/net/html/const.go +++ b/vendor/golang.org/x/net/html/const.go @@ -52,7 +52,6 @@ var isSpecialElementMap = map[string]bool{ "iframe": true, "img": true, "input": true, - "isindex": true, // The 'isindex' element has been removed, but keep it for backwards compatibility. "keygen": true, "li": true, "link": true, diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go index 01477a9639..74774c458a 100644 --- a/vendor/golang.org/x/net/html/foreign.go +++ b/vendor/golang.org/x/net/html/foreign.go @@ -172,7 +172,6 @@ var svgAttributeAdjustments = map[string]string{ "diffuseconstant": "diffuseConstant", "edgemode": "edgeMode", "externalresourcesrequired": "externalResourcesRequired", - "filterres": "filterRes", "filterunits": "filterUnits", "glyphref": "glyphRef", "gradienttransform": "gradientTransform", diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go index 992cff2a33..2cd12fc816 100644 --- a/vendor/golang.org/x/net/html/parse.go +++ b/vendor/golang.org/x/net/html/parse.go @@ -184,6 +184,17 @@ func (p *parser) clearStackToContext(s scope) { } } +// parseGenericRawTextElements implements the generic raw text element parsing +// algorithm defined in 12.2.6.2. +// https://html.spec.whatwg.org/multipage/parsing.html#parsing-elements-that-contain-only-text +// TODO: Since both RAWTEXT and RCDATA states are treated as tokenizer's part +// officially, need to make tokenizer consider both states. +func (p *parser) parseGenericRawTextElement() { + p.addElement() + p.originalIM = p.im + p.im = textIM +} + // generateImpliedEndTags pops nodes off the stack of open elements as long as // the top node has a tag name of dd, dt, li, optgroup, option, p, rb, rp, rt or rtc. // If exceptions are specified, nodes with that name will not be popped off. @@ -192,16 +203,17 @@ func (p *parser) generateImpliedEndTags(exceptions ...string) { loop: for i = len(p.oe) - 1; i >= 0; i-- { n := p.oe[i] - if n.Type == ElementNode { - switch n.DataAtom { - case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc: - for _, except := range exceptions { - if n.Data == except { - break loop - } + if n.Type != ElementNode { + break + } + switch n.DataAtom { + case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc: + for _, except := range exceptions { + if n.Data == except { + break loop } - continue } + continue } break } @@ -369,8 +381,7 @@ findIdenticalElements: // Section 12.2.4.3. func (p *parser) clearActiveFormattingElements() { for { - n := p.afe.pop() - if len(p.afe) == 0 || n.Type == scopeMarkerNode { + if n := p.afe.pop(); len(p.afe) == 0 || n.Type == scopeMarkerNode { return } } @@ -625,25 +636,29 @@ func inHeadIM(p *parser) bool { switch p.tok.DataAtom { case a.Html: return inBodyIM(p) - case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta: + case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta: p.addElement() p.oe.pop() p.acknowledgeSelfClosingTag() return true case a.Noscript: - p.addElement() if p.scripting { - p.setOriginalIM() - p.im = textIM - } else { - p.im = inHeadNoscriptIM + p.parseGenericRawTextElement() + return true } + p.addElement() + p.im = inHeadNoscriptIM + // Don't let the tokenizer go into raw text mode when scripting is disabled. + p.tokenizer.NextIsNotRawText() return true - case a.Script, a.Title, a.Noframes, a.Style: + case a.Script, a.Title: p.addElement() p.setOriginalIM() p.im = textIM return true + case a.Noframes, a.Style: + p.parseGenericRawTextElement() + return true case a.Head: // Ignore the token. return true @@ -855,7 +870,7 @@ func inBodyIM(p *parser) bool { return true } copyAttributes(p.oe[0], p.tok) - case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: + case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: return inHeadIM(p) case a.Body: if p.oe.contains(a.Template) { @@ -881,7 +896,7 @@ func inBodyIM(p *parser) bool { p.addElement() p.im = inFramesetIM return true - case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul: + case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dialog, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Main, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul: p.popUntil(buttonScope, a.P) p.addElement() case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6: @@ -1014,53 +1029,6 @@ func inBodyIM(p *parser) bool { p.tok.DataAtom = a.Img p.tok.Data = a.Img.String() return false - case a.Isindex: - if p.form != nil { - // Ignore the token. - return true - } - action := "" - prompt := "This is a searchable index. Enter search keywords: " - attr := []Attribute{{Key: "name", Val: "isindex"}} - for _, t := range p.tok.Attr { - switch t.Key { - case "action": - action = t.Val - case "name": - // Ignore the attribute. - case "prompt": - prompt = t.Val - default: - attr = append(attr, t) - } - } - p.acknowledgeSelfClosingTag() - p.popUntil(buttonScope, a.P) - p.parseImpliedToken(StartTagToken, a.Form, a.Form.String()) - if p.form == nil { - // NOTE: The 'isindex' element has been removed, - // and the 'template' element has not been designed to be - // collaborative with the index element. - // - // Ignore the token. - return true - } - if action != "" { - p.form.Attr = []Attribute{{Key: "action", Val: action}} - } - p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String()) - p.parseImpliedToken(StartTagToken, a.Label, a.Label.String()) - p.addText(prompt) - p.addChild(&Node{ - Type: ElementNode, - DataAtom: a.Input, - Data: a.Input.String(), - Attr: attr, - }) - p.oe.pop() - p.parseImpliedToken(EndTagToken, a.Label, a.Label.String()) - p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String()) - p.parseImpliedToken(EndTagToken, a.Form, a.Form.String()) case a.Textarea: p.addElement() p.setOriginalIM() @@ -1070,18 +1038,21 @@ func inBodyIM(p *parser) bool { p.popUntil(buttonScope, a.P) p.reconstructActiveFormattingElements() p.framesetOK = false - p.addElement() - p.setOriginalIM() - p.im = textIM + p.parseGenericRawTextElement() case a.Iframe: p.framesetOK = false + p.parseGenericRawTextElement() + case a.Noembed: + p.parseGenericRawTextElement() + case a.Noscript: + if p.scripting { + p.parseGenericRawTextElement() + return true + } + p.reconstructActiveFormattingElements() p.addElement() - p.setOriginalIM() - p.im = textIM - case a.Noembed, a.Noscript: - p.addElement() - p.setOriginalIM() - p.im = textIM + // Don't let the tokenizer go into raw text mode when scripting is disabled. + p.tokenizer.NextIsNotRawText() case a.Select: p.reconstructActiveFormattingElements() p.addElement() @@ -1137,7 +1108,7 @@ func inBodyIM(p *parser) bool { return false } return true - case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul: + case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dialog, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Main, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul: p.popUntil(defaultScope, p.tok.DataAtom) case a.Form: if p.oe.contains(a.Template) { @@ -1198,14 +1169,13 @@ func inBodyIM(p *parser) bool { if len(p.templateStack) > 0 { p.im = inTemplateIM return false - } else { - for _, e := range p.oe { - switch e.DataAtom { - case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc, a.Tbody, a.Td, a.Tfoot, a.Th, - a.Thead, a.Tr, a.Body, a.Html: - default: - return true - } + } + for _, e := range p.oe { + switch e.DataAtom { + case a.Dd, a.Dt, a.Li, a.Optgroup, a.Option, a.P, a.Rb, a.Rp, a.Rt, a.Rtc, a.Tbody, a.Td, a.Tfoot, a.Th, + a.Thead, a.Tr, a.Body, a.Html: + default: + return true } } } @@ -1221,9 +1191,15 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) { // Once the code successfully parses the comprehensive test suite, we should // refactor this code to be more idiomatic. - // Steps 1-4. The outer loop. + // Steps 1-2 + if current := p.oe.top(); current.Data == tagName && p.afe.index(current) == -1 { + p.oe.pop() + return + } + + // Steps 3-5. The outer loop. for i := 0; i < 8; i++ { - // Step 5. Find the formatting element. + // Step 6. Find the formatting element. var formattingElement *Node for j := len(p.afe) - 1; j >= 0; j-- { if p.afe[j].Type == scopeMarkerNode { @@ -1238,17 +1214,22 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) { p.inBodyEndTagOther(tagAtom, tagName) return } + + // Step 7. Ignore the tag if formatting element is not in the stack of open elements. feIndex := p.oe.index(formattingElement) if feIndex == -1 { p.afe.remove(formattingElement) return } + // Step 8. Ignore the tag if formatting element is not in the scope. if !p.elementInScope(defaultScope, tagAtom) { // Ignore the tag. return } - // Steps 9-10. Find the furthest block. + // Step 9. This step is omitted because it's just a parse error but no need to return. + + // Steps 10-11. Find the furthest block. var furthestBlock *Node for _, e := range p.oe[feIndex:] { if isSpecialElement(e) { @@ -1265,47 +1246,65 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) { return } - // Steps 11-12. Find the common ancestor and bookmark node. + // Steps 12-13. Find the common ancestor and bookmark node. commonAncestor := p.oe[feIndex-1] bookmark := p.afe.index(formattingElement) - // Step 13. The inner loop. Find the lastNode to reparent. + // Step 14. The inner loop. Find the lastNode to reparent. lastNode := furthestBlock node := furthestBlock x := p.oe.index(node) - // Steps 13.1-13.2 - for j := 0; j < 3; j++ { - // Step 13.3. + // Step 14.1. + j := 0 + for { + // Step 14.2. + j++ + // Step. 14.3. x-- node = p.oe[x] - // Step 13.4 - 13.5. + // Step 14.4. Go to the next step if node is formatting element. + if node == formattingElement { + break + } + // Step 14.5. Remove node from the list of active formatting elements if + // inner loop counter is greater than three and node is in the list of + // active formatting elements. + if ni := p.afe.index(node); j > 3 && ni > -1 { + p.afe.remove(node) + // If any element of the list of active formatting elements is removed, + // we need to take care whether bookmark should be decremented or not. + // This is because the value of bookmark may exceed the size of the + // list by removing elements from the list. + if ni <= bookmark { + bookmark-- + } + continue + } + // Step 14.6. Continue the next inner loop if node is not in the list of + // active formatting elements. if p.afe.index(node) == -1 { p.oe.remove(node) continue } - // Step 13.6. - if node == formattingElement { - break - } - // Step 13.7. + // Step 14.7. clone := node.clone() p.afe[p.afe.index(node)] = clone p.oe[p.oe.index(node)] = clone node = clone - // Step 13.8. + // Step 14.8. if lastNode == furthestBlock { bookmark = p.afe.index(node) + 1 } - // Step 13.9. + // Step 14.9. if lastNode.Parent != nil { lastNode.Parent.RemoveChild(lastNode) } node.AppendChild(lastNode) - // Step 13.10. + // Step 14.10. lastNode = node } - // Step 14. Reparent lastNode to the common ancestor, + // Step 15. Reparent lastNode to the common ancestor, // or for misnested table nodes, to the foster parent. if lastNode.Parent != nil { lastNode.Parent.RemoveChild(lastNode) @@ -1317,13 +1316,13 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) { commonAncestor.AppendChild(lastNode) } - // Steps 15-17. Reparent nodes from the furthest block's children + // Steps 16-18. Reparent nodes from the furthest block's children // to a clone of the formatting element. clone := formattingElement.clone() reparentChildren(clone, furthestBlock) furthestBlock.AppendChild(clone) - // Step 18. Fix up the list of active formatting elements. + // Step 19. Fix up the list of active formatting elements. if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark { // Move the bookmark with the rest of the list. bookmark-- @@ -1331,7 +1330,7 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) { p.afe.remove(formattingElement) p.afe.insert(bookmark, clone) - // Step 19. Fix up the stack of open elements. + // Step 20. Fix up the stack of open elements. p.oe.remove(formattingElement) p.oe.insert(p.oe.index(furthestBlock)+1, clone) } @@ -1502,14 +1501,13 @@ func inCaptionIM(p *parser) bool { case StartTagToken: switch p.tok.DataAtom { case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr: - if p.popUntil(tableScope, a.Caption) { - p.clearActiveFormattingElements() - p.im = inTableIM - return false - } else { + if !p.popUntil(tableScope, a.Caption) { // Ignore the token. return true } + p.clearActiveFormattingElements() + p.im = inTableIM + return false case a.Select: p.reconstructActiveFormattingElements() p.addElement() @@ -1526,14 +1524,13 @@ func inCaptionIM(p *parser) bool { } return true case a.Table: - if p.popUntil(tableScope, a.Caption) { - p.clearActiveFormattingElements() - p.im = inTableIM - return false - } else { + if !p.popUntil(tableScope, a.Caption) { // Ignore the token. return true } + p.clearActiveFormattingElements() + p.im = inTableIM + return false case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr: // Ignore the token. return true @@ -1777,12 +1774,11 @@ func inSelectIM(p *parser) bool { } p.addElement() case a.Select: - if p.popUntil(selectScope, a.Select) { - p.resetInsertionMode() - } else { + if !p.popUntil(selectScope, a.Select) { // Ignore the token. return true } + p.resetInsertionMode() case a.Input, a.Keygen, a.Textarea: if p.elementInScope(selectScope, a.Select) { p.parseImpliedToken(EndTagToken, a.Select, a.Select.String()) @@ -1810,12 +1806,11 @@ func inSelectIM(p *parser) bool { p.oe = p.oe[:i] } case a.Select: - if p.popUntil(selectScope, a.Select) { - p.resetInsertionMode() - } else { + if !p.popUntil(selectScope, a.Select) { // Ignore the token. return true } + p.resetInsertionMode() case a.Template: return inHeadIM(p) } @@ -2136,28 +2131,31 @@ func parseForeignContent(p *parser) bool { Data: p.tok.Data, }) case StartTagToken: - b := breakout[p.tok.Data] - if p.tok.DataAtom == a.Font { - loop: - for _, attr := range p.tok.Attr { - switch attr.Key { - case "color", "face", "size": - b = true - break loop + if !p.fragment { + b := breakout[p.tok.Data] + if p.tok.DataAtom == a.Font { + loop: + for _, attr := range p.tok.Attr { + switch attr.Key { + case "color", "face", "size": + b = true + break loop + } } } - } - if b { - for i := len(p.oe) - 1; i >= 0; i-- { - n := p.oe[i] - if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) { - p.oe = p.oe[:i+1] - break + if b { + for i := len(p.oe) - 1; i >= 0; i-- { + n := p.oe[i] + if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) { + p.oe = p.oe[:i+1] + break + } } + return false } - return false } - switch p.top().Namespace { + current := p.adjustedCurrentNode() + switch current.Namespace { case "math": adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments) case "svg": @@ -2172,7 +2170,7 @@ func parseForeignContent(p *parser) bool { panic("html: bad parser state: unexpected namespace") } adjustForeignAttributes(p.tok.Attr) - namespace := p.top().Namespace + namespace := current.Namespace p.addElement() p.top().Namespace = namespace if namespace != "" { @@ -2201,12 +2199,20 @@ func parseForeignContent(p *parser) bool { return true } +// Section 12.2.4.2. +func (p *parser) adjustedCurrentNode() *Node { + if len(p.oe) == 1 && p.fragment && p.context != nil { + return p.context + } + return p.oe.top() +} + // Section 12.2.6. func (p *parser) inForeignContent() bool { if len(p.oe) == 0 { return false } - n := p.oe[len(p.oe)-1] + n := p.adjustedCurrentNode() if n.Namespace == "" { return false } @@ -2341,8 +2347,7 @@ func ParseWithOptions(r io.Reader, opts ...ParseOption) (*Node, error) { f(p) } - err := p.parse() - if err != nil { + if err := p.parse(); err != nil { return nil, err } return p.doc, nil @@ -2364,7 +2369,6 @@ func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) ( contextTag = context.DataAtom.String() } p := &parser{ - tokenizer: NewTokenizerFragment(r, contextTag), doc: &Node{ Type: DocumentNode, }, @@ -2372,6 +2376,11 @@ func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) ( fragment: true, context: context, } + if context != nil && context.Namespace != "" { + p.tokenizer = NewTokenizer(r) + } else { + p.tokenizer = NewTokenizerFragment(r, contextTag) + } for _, f := range opts { f(p) @@ -2396,8 +2405,7 @@ func ParseFragmentWithOptions(r io.Reader, context *Node, opts ...ParseOption) ( } } - err := p.parse() - if err != nil { + if err := p.parse(); err != nil { return nil, err } diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go index d34564f49d..8bf47ede79 100644 --- a/vendor/golang.org/x/net/html/render.go +++ b/vendor/golang.org/x/net/html/render.go @@ -252,20 +252,19 @@ func writeQuoted(w writer, s string) error { // Section 12.1.2, "Elements", gives this list of void elements. Void elements // are those that can't have any contents. var voidElements = map[string]bool{ - "area": true, - "base": true, - "br": true, - "col": true, - "command": true, - "embed": true, - "hr": true, - "img": true, - "input": true, - "keygen": true, - "link": true, - "meta": true, - "param": true, - "source": true, - "track": true, - "wbr": true, + "area": true, + "base": true, + "br": true, + "col": true, + "embed": true, + "hr": true, + "img": true, + "input": true, + "keygen": true, + "link": true, + "meta": true, + "param": true, + "source": true, + "track": true, + "wbr": true, } diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go index ae0d1b05cd..877709f991 100644 --- a/vendor/golang.org/x/net/html/token.go +++ b/vendor/golang.org/x/net/html/token.go @@ -296,8 +296,7 @@ func (z *Tokenizer) Buffered() []byte { // too many times in succession. func readAtLeastOneByte(r io.Reader, b []byte) (int, error) { for i := 0; i < 100; i++ { - n, err := r.Read(b) - if n != 0 || err != nil { + if n, err := r.Read(b); n != 0 || err != nil { return n, err } } diff --git a/vendor/modules.txt b/vendor/modules.txt index f21fb744ab..daf4e7dc0e 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -486,7 +486,7 @@ golang.org/x/crypto/scrypt golang.org/x/crypto/ssh golang.org/x/crypto/ssh/agent golang.org/x/crypto/ssh/knownhosts -# golang.org/x/net v0.0.0-20191101175033-0deb6923b6d9 +# golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa golang.org/x/net/context golang.org/x/net/context/ctxhttp golang.org/x/net/html diff --git a/web_src/js/index.js b/web_src/js/index.js index c84a2c8991..5d195774dd 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -18,8 +18,13 @@ function htmlEncode(text) { return jQuery('<div />').text(text).html(); } +function svg(name, size) { + return `<svg class="svg ${name}" width="${size}" height="${size}" aria-hidden="true"><use xlink:href="${staticPrefix}/img/svg/icons.svg#${name}"/></svg>`; +} + let csrf; let suburl; +let staticPrefix; let previewFileModes; let simpleMDEditor; const commentMDEditors = {}; @@ -377,10 +382,10 @@ function initCommentForm() { // adding/removing labels if ($(this).hasClass('checked')) { $(this).removeClass('checked'); - $(this).find('.octicon').removeClass('octicon-check'); + $(this).find('.octicon-check').addClass('invisible'); } else { $(this).addClass('checked'); - $(this).find('.octicon').addClass('octicon-check'); + $(this).find('.octicon-check').removeClass('invisible'); } updateIssuesMeta( @@ -395,7 +400,7 @@ function initCommentForm() { if ($(this).hasClass('checked')) { $(this).removeClass('checked'); - $(this).find('.octicon').removeClass('octicon-check'); + $(this).find('.octicon-check').addClass('invisible'); if (hasLabelUpdateAction) { if (!($(this).data('id') in labels)) { labels[$(this).data('id')] = { @@ -409,7 +414,7 @@ function initCommentForm() { } } else { $(this).addClass('checked'); - $(this).find('.octicon').addClass('octicon-check'); + $(this).find('.octicon-check').removeClass('invisible'); if (hasLabelUpdateAction) { if (!($(this).data('id') in labels)) { labels[$(this).data('id')] = { @@ -452,7 +457,7 @@ function initCommentForm() { $(this).parent().find('.item').each(function () { $(this).removeClass('checked'); - $(this).find('.octicon').removeClass('octicon-check'); + $(this).find('.octicon').addClass('invisible'); }); $list.find('.item').each(function () { @@ -2361,6 +2366,7 @@ function initTemplateSearch() { $(document).ready(async () => { csrf = $('meta[name=_csrf]').attr('content'); suburl = $('meta[name=_suburl]').attr('content'); + staticPrefix = $('meta[name=_staticprefix]').attr('content'); // Show exact time $('.time-since').each(function () { @@ -2497,7 +2503,7 @@ $(document).ready(async () => { $(this).find('h1, h2, h3, h4, h5, h6').each(function () { let node = $(this); node = node.wrap('<div class="anchor-wrap"></div>'); - node.append(`<a class="anchor" href="#${encodeURIComponent(node.attr('id'))}"><span class="octicon octicon-link"></span></a>`); + node.append(`<a class="anchor" href="#${encodeURIComponent(node.attr('id'))}">${svg('octicon-link', 16)}</a>`); }); }); @@ -2779,6 +2785,7 @@ function initVueComponents() { reposFilter: 'all', searchQuery: '', isLoading: false, + staticPrefix, repoTypes: { all: { count: 0, @@ -2881,13 +2888,13 @@ function initVueComponents() { repoClass(repo) { if (repo.fork) { - return 'octicon octicon-repo-forked'; + return 'octicon-repo-forked'; } if (repo.mirror) { - return 'octicon octicon-repo-clone'; + return 'octicon-repo-clone'; } if (repo.private) { - return 'octicon octicon-lock'; + return 'octicon-lock'; } - return 'octicon octicon-repo'; + return 'octicon-repo'; } } }); diff --git a/web_src/less/_base.less b/web_src/less/_base.less index d1851d5d88..9627ba7914 100644 --- a/web_src/less/_base.less +++ b/web_src/less/_base.less @@ -261,11 +261,11 @@ code, z-index: 900; } - .octicon { - &.fitted { - margin-right: 0; - } + .fitted .svg { + margin-right: 0; + } + .svg { margin-right: 0.75em; } @@ -277,7 +277,7 @@ code, } } - .text .octicon { + .text .svg { width: 16px; text-align: center; } @@ -597,7 +597,7 @@ code, } &.status.buttons { - .octicon { + .svg { margin-right: 4px; } } @@ -1136,7 +1136,7 @@ i.icon.centerlock { overflow-y: visible; } - *:not(.fa):not(.octicon):not(.icon) { + *:not(.fa):not(.svg):not(.icon) { font-size: 12px; font-family: @monospaced-fonts, monospace; line-height: 20px; @@ -1167,7 +1167,7 @@ i.icon.centerlock { height: 2.1666em !important; } -.octicon { +.svg { &.green { color: #21ba45; } @@ -1192,3 +1192,7 @@ i.icon.centerlock { border: 1px solid #ccc; border-radius: 500em; } + +.invisible { + visibility: hidden; +} diff --git a/web_src/less/_dashboard.less b/web_src/less/_dashboard.less index 71239ffc3e..ab0d3b61b9 100644 --- a/web_src/less/_dashboard.less +++ b/web_src/less/_dashboard.less @@ -155,7 +155,7 @@ padding: 6px 1.2em; display: block; - .octicon { + .svg { color: #888888; &.rear { diff --git a/web_src/less/_explore.less b/web_src/less/_explore.less index ad9adc70e0..e9a2546896 100644 --- a/web_src/less/_explore.less +++ b/web_src/less/_explore.less @@ -9,7 +9,7 @@ background-color: #fafafa !important; border-width: 1px !important; - .octicon { + .svg { width: 16px; text-align: center; margin-right: 5px; @@ -95,7 +95,7 @@ .description { margin-top: 5px; - .octicon:not(:first-child) { + .svg:not(:first-child) { margin-left: 5px; } diff --git a/web_src/less/_home.less b/web_src/less/_home.less index 53fd76f098..90390239a1 100644 --- a/web_src/less/_home.less +++ b/web_src/less/_home.less @@ -24,10 +24,11 @@ } } - .octicon { + .svg { color: #5aa509; - font-size: 40px; + height: 40px; width: 50px; + vertical-align: bottom; } &.header { diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less index 7a84c7d636..bd2449ba1e 100644 --- a/web_src/less/_repository.less +++ b/web_src/less/_repository.less @@ -1,5 +1,4 @@ .repository { - @mega-octicon-width: 30px; padding-top: 15px; @@ -12,34 +11,29 @@ margin-top: 0; } - .mega-octicon { - width: @mega-octicon-width; - font-size: 30px; - } - .ui.huge.breadcrumb { font-weight: 400; font-size: 1.5rem; - i.mega-octicon { + svg { position: relative; top: 5px; } - i.octicon-lock { + svg.octicon-lock { margin-left: 5px; } } .fork-flag { - margin-left: @mega-octicon-width + 6px; + margin-left: 36px; margin-top: 3px; display: block; font-size: 12px; white-space: nowrap; } - .octicon.octicon-repo-forked { + .svg.octicon-repo-forked { margin-top: -1px; font-size: 15px; } @@ -135,7 +129,7 @@ border-bottom: 0; } - .ui.tabular .octicon { + .ui.tabular .svg { margin-right: 5px; } } @@ -147,13 +141,13 @@ padding: 0 8px; } - .octicon { + .svg { float: left; margin: 0 -7px 0 -5px; width: 16px; } - &.labels .octicon { + &.labels .svg { margin: -2px -7px 0 -5px; } @@ -325,7 +319,7 @@ } tbody { - .octicon { + .svg { margin-left: 3px; margin-right: 5px; color: #777777; @@ -456,7 +450,7 @@ .sidebar { padding-left: 0; - .octicon { + .svg { width: 16px; } } @@ -476,7 +470,7 @@ } .tabular.menu { - .octicon { + .svg { margin-right: 5px; } } @@ -637,7 +631,7 @@ &.tabular.menu { margin-bottom: 10px; - .octicon { + .svg { margin-right: 5px; } } @@ -675,7 +669,7 @@ text-align: center; vertical-align: middle; - .octicon { + .svg { width: 23px; font-size: 23px; margin-top: 0.45em; @@ -896,11 +890,11 @@ margin: 15px 0 15px 79px; padding-left: 25px; - & > .octicon:not(.issue-symbol) { + & > .svg:not(.issue-symbol) { text-shadow: -2px 0 #fff, 0 2px #fff, 2px 0 #fff, 0 -2px #fff; } - & > .octicon.issue-symbol { + & > .svg.issue-symbol { font-size: 20px; margin-left: -35px; margin-right: -1px; @@ -935,7 +929,7 @@ } } - .octicon { + .svg { width: 30px; float: left; text-align: center; @@ -980,7 +974,7 @@ margin-top: 5px; margin-left: 35px; - .octicon { + .svg { &.octicon-git-commit { margin-top: 2px; } @@ -1104,7 +1098,7 @@ color: #999999; padding-top: 5px; - .issue-stats .octicon { + .issue-stats .svg { padding-left: 5px; } @@ -1150,7 +1144,7 @@ } .choose.branch { - .octicon { + .svg { padding-right: 10px; } } @@ -1617,7 +1611,7 @@ margin-top: 20px; > a { - .octicon { + .svg { margin-left: 5px; margin-right: 5px; } @@ -1730,7 +1724,7 @@ padding-top: 70px; padding-bottom: 100px; - .mega-octicon { + .svg { font-size: 48px; } } @@ -2232,11 +2226,11 @@ margin: 15px -1rem -1rem -1rem; } - > .mega-octicon { + > .svg { display: table-cell; } - > .mega-octicon + .content { + > .svg + .content { display: table-cell; padding: 0 0 0 0.5em; vertical-align: top; diff --git a/web_src/less/_svg.less b/web_src/less/_svg.less new file mode 100644 index 0000000000..b17b9a8b32 --- /dev/null +++ b/web_src/less/_svg.less @@ -0,0 +1,9 @@ +.svg { + display: inline-block; + vertical-align: text-top; + fill: currentColor; + + .middle & { + vertical-align: middle; + } +} diff --git a/web_src/less/_user.less b/web_src/less/_user.less index 52c59464d8..2bec3489e7 100644 --- a/web_src/less/_user.less +++ b/web_src/less/_user.less @@ -24,7 +24,7 @@ border-bottom: 1px solid #eaeaea; } - .octicon, + .svg, .fa { margin-left: 1px; margin-right: 5px; @@ -80,7 +80,7 @@ } &.notification { - .octicon { + .svg { float: left; font-size: 2em; diff --git a/web_src/less/index.less b/web_src/less/index.less index 1b93024329..12eb8cf8e5 100644 --- a/web_src/less/index.less +++ b/web_src/less/index.less @@ -1,6 +1,7 @@ @import "~highlight.js/styles/github.css"; @import "./vendor/gitGraph.css"; +@import "_svg"; @import "_tribute"; @import "_emojify"; @import "_base"; diff --git a/web_src/less/themes/theme-arc-green.less b/web_src/less/themes/theme-arc-green.less index bd8033e302..0d2a1a4e98 100644 --- a/web_src/less/themes/theme-arc-green.less +++ b/web_src/less/themes/theme-arc-green.less @@ -654,11 +654,11 @@ a.ui.basic.green.label:hover { border-top: 1px solid #353944; } -.repository.view.issue .comment-list .event > .octicon.issue-symbol { +.repository.view.issue .comment-list .event > .svg.issue-symbol { background: #3b4954; } -.repository.view.issue .comment-list .event > .octicon:not(.issue-symbol) { +.repository.view.issue .comment-list .event > .svg:not(.issue-symbol) { text-shadow: -2px 0 #383c4a, 0 2px #383c4a, 2px 0 #383c4a, 0 -2px #383c4a; } @@ -1065,8 +1065,8 @@ input { color: #668cb1; } -.repository.file.list #repo-files-table tbody .octicon.octicon-file-directory, -.repository.file.list #repo-files-table tbody .octicon.octicon-file-submodule { +.repository.file.list #repo-files-table tbody .svg.octicon-file-directory, +.repository.file.list #repo-files-table tbody .svg.octicon-file-submodule { color: #7c9b5e; } diff --git a/webpack.config.js b/webpack.config.js index 08926bf58a..c3d3ad88e0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -5,14 +5,17 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const PostCSSPresetEnv = require('postcss-preset-env'); const PostCSSSafeParser = require('postcss-safe-parser'); +const SpriteLoaderPlugin = require('svg-sprite-loader/plugin'); const TerserPlugin = require('terser-webpack-plugin'); const VueLoaderPlugin = require('vue-loader/lib/plugin'); const { statSync } = require('fs'); const { resolve, parse } = require('path'); const { SourceMapDevToolPlugin } = require('webpack'); +const glob = (pattern) => fastGlob.sync(pattern, { cwd: __dirname, absolute: true }); + const themes = {}; -for (const path of fastGlob.sync(resolve(__dirname, 'web_src/less/themes/*.less'))) { +for (const path of glob('web_src/less/themes/*.less')) { themes[parse(path).name] = [path]; } @@ -29,6 +32,7 @@ module.exports = { jquery: [ resolve(__dirname, 'web_src/js/jquery.js'), ], + icons: glob('node_modules/@primer/octicons/build/svg/**/*.svg'), ...themes, }, devtool: false, @@ -140,12 +144,35 @@ module.exports = { }, ], }, + { + test: /\.svg$/, + use: [ + { + loader: 'svg-sprite-loader', + options: { + extract: true, + spriteFilename: 'img/svg/icons.svg', + symbolId: (path) => { + const { name } = parse(path); + if (/@primer[/\\]octicons/.test(path)) { + return `octicon-${name}`; + } + return name; + }, + }, + }, + { + loader: 'svgo-loader', + }, + ], + }, ], }, plugins: [ new VueLoaderPlugin(), - // needed so themes don't generate useless js files + // avoid generating useless js output files for css- and svg-only chunks new FixStyleOnlyEntriesPlugin({ + extensions: ['less', 'scss', 'css', 'svg'], silent: true, }), new MiniCssExtractPlugin({ @@ -158,6 +185,9 @@ module.exports = { 'js/index.js', ], }), + new SpriteLoaderPlugin({ + plainSprite: true, + }), ], performance: { maxEntrypointSize: 512000, |