Browse Source

new repo ui

- copy link button: #1396, #1168, #1668,
- synxtax highlight: #1712, #1549, #1315, #670
- z-index: #1942
pull/1950/head
Unknwon 9 years ago
parent
commit
7b1c10ea7e
  1. 2
      README.md
  2. 2
      conf/locale/locale_en-US.ini
  3. 2
      gogs.go
  4. 4
      modules/bindata/bindata.go
  5. 11
      public/config.codekit
  6. 306
      public/css/gogs.css
  7. 98
      public/css/highlight-8.7/github.css
  8. BIN
      public/fonts/octicons.eot
  9. 21
      public/fonts/octicons.svg
  10. BIN
      public/fonts/octicons.ttf
  11. BIN
      public/fonts/octicons.woff
  12. 210
      public/js/gogs.js
  13. 9
      public/less/_base.less
  14. 174
      public/less/_markdown.less
  15. 11
      public/less/_octicons.less
  16. 175
      public/less/_repository.less
  17. 1
      routers/repo/view.go
  18. 2
      templates/.VERSION
  19. 2
      templates/base/footer.tmpl
  20. 186
      templates/repo/home.tmpl
  21. 47
      templates/repo/sidebar.tmpl
  22. 12
      templates/repo/sidebar_mini.tmpl
  23. 86
      templates/repo/view_file.tmpl
  24. 121
      templates/repo/view_list.tmpl

2
README.md

@ -5,7 +5,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
![](public/img/gogs-large-resize.png)
##### Current version: 0.7.8 Beta
##### Current version: 0.7.9 Beta
<table>
<tr>

2
conf/locale/locale_en-US.ini

@ -387,7 +387,7 @@ repo_is_empty = This repository is empty, please come back later!
branch = Branch
tree = Tree
branch_and_tags = Branches & Tags
filter_branch_and_tag = Filter branch or tag
branches = Branches
tags = Tags
issues = Issues

2
gogs.go

@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
const APP_VER = "0.7.8.1113 Beta"
const APP_VER = "0.7.9.1114 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())

4
modules/bindata/bindata.go

File diff suppressed because one or more lines are too long

11
public/config.codekit

@ -56,6 +56,15 @@
"outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0
},
"\/css\/highlight-8.7\/github.css": {
"fileType": 16,
"ignore": 0,
"ignoreWasSetByUser": 0,
"inputAbbreviatedPath": "\/css\/highlight-8.7\/github.css",
"outputAbbreviatedPath": "No Output Path",
"outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0
},
"\/css\/jquery.datetimepicker-2.4.5.css": {
"fileType": 16,
"ignore": 0,
@ -191,7 +200,7 @@
"outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0,
"outputStyle": 1,
"syntaxCheckerStyle": 1
"syntaxCheckerStyle": 0
},
"\/js\/jquery-1.11.3.min.js": {
"fileType": 64,

306
public/css/gogs.css

@ -1,6 +1,6 @@
@font-face {
font-family: 'octicons';
src: url('../fonts/octicons.eot?#iefix&v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d') format('embedded-opentype'), url('../fonts/octicons.woff?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d') format('woff'), url('../fonts/octicons.ttf?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d') format('truetype'), url('../fonts/octicons.svg?v=396334ee3da78f4302d25c758ae3e3ce5dc3c97d#octicons') format('svg');
src: url('../fonts/octicons.eot?#iefix&v=30e752e9a0821a0a098947055eeece0b0f46bc34') format('embedded-opentype'), url('../fonts/octicons.woff?v=30e752e9a0821a0a098947055eeece0b0f46bc34') format('woff'), url('../fonts/octicons.ttf?v=30e752e9a0821a0a098947055eeece0b0f46bc34') format('truetype'), url('../fonts/octicons.svg?v=30e752e9a0821a0a098947055eeece0b0f46bc34#octicons') format('svg');
font-weight: normal;
font-style: normal;
}
@ -65,6 +65,10 @@
content: '\f0de';
}
/* */
.octicon-bold:before {
content: '\f0e2';
}
/* */
.octicon-book:before {
content: '\f007';
}
@ -364,6 +368,10 @@
content: '\f027';
}
/* */
.octicon-italic:before {
content: '\f0e4';
}
/* */
.octicon-jersey:before {
content: '\f019';
}
@ -411,6 +419,10 @@
content: '\f06a';
}
/* */
.octicon-logo-gist:before {
content: '\f0ad';
}
/* */
.octicon-logo-github:before {
content: '\f092';
}
@ -568,14 +580,6 @@
content: '\f047';
}
/* */
.octicon-screen-full:before {
content: '\f066';
}
/* */
.octicon-screen-normal:before {
content: '\f067';
}
/* */
.octicon-search-save:before,
.octicon-search:before {
content: '\f02e';
@ -628,6 +632,10 @@
content: '\f015';
}
/* */
.octicon-tasklist:before {
content: '\f0e5';
}
/* */
.octicon-telescope:before {
content: '\f088';
}
@ -636,6 +644,10 @@
content: '\f0c8';
}
/* */
.octicon-text-size:before {
content: '\f0e3';
}
/* */
.octicon-three-bars:before {
content: '\f05e';
}
@ -809,6 +821,12 @@ pre.raw {
.ui .text.blue a:hover {
color: #428bca !important;
}
.ui .text.black {
color: #444;
}
.ui .text.black:hover {
color: #000;
}
.ui .text.grey {
color: #767676 !important;
}
@ -839,6 +857,9 @@ pre.raw {
.ui .text.small {
font-size: 0.75em;
}
.ui .text.normal {
font-weight: normal;
}
.ui .text.bold {
font-weight: bold;
}
@ -1049,8 +1070,9 @@ footer .container .links > *:first-child {
overflow: hidden;
font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
font-size: 16px;
line-height: 1.6;
line-height: 1.6 !important;
word-wrap: break-word;
padding: 5px 2em 2em !important;
}
.markdown > *:first-child {
margin-top: 0 !important;
@ -1185,6 +1207,9 @@ footer .container .links > *:first-child {
margin-top: 0;
margin-bottom: 16px;
}
.markdown blockquote {
margin-left: 0;
}
.markdown hr {
height: 4px;
padding: 0;
@ -1449,115 +1474,6 @@ footer .container .links > *:first-child {
background: #f8f8f8;
border-top: 0;
}
/* Author: jmblog */
/* Project: https://github.com/jmblog/color-themes-for-google-code-prettify */
/* GitHub Theme */
/* Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */
/* plain text */
.pln {
color: #333333;
}
@media screen {
/* string content */
.str {
color: #dd1144;
}
/* a keyword */
.kwd {
color: #333333;
}
/* a comment */
.com {
color: #999988;
font-style: italic;
}
/* a type name */
.typ {
color: #445588;
}
/* a literal value */
.lit {
color: #445588;
}
/* punctuation */
.pun {
color: #333333;
}
/* lisp open bracket */
.opn {
color: #333333;
}
/* lisp close bracket */
.clo {
color: #333333;
}
/* a markup tag name */
.tag {
color: navy;
}
/* a markup attribute name */
.atn {
color: teal;
}
/* a markup attribute value */
.atv {
color: #dd1144;
}
/* a declaration */
.dec {
color: #333333;
}
/* a variable name */
.var {
color: teal;
}
/* a function name */
.fun {
color: #990000;
}
}
/* Use higher contrast and text-weight for printable form. */
@media print, projection {
.str {
color: #006600;
}
.kwd {
color: #006;
font-weight: bold;
}
.com {
color: #600;
font-style: italic;
}
.typ {
color: #404;
font-weight: bold;
}
.lit {
color: #004444;
}
.pun,
.opn,
.clo {
color: #444400;
}
.tag {
color: #006;
font-weight: bold;
}
.atn {
color: #440044;
}
.atv {
color: #006600;
}
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0;
}
.home {
padding-bottom: 80px;
}
@ -1877,6 +1793,158 @@ ol.linenums {
margin: 1px;
padding-right: 0;
}
.repository.file.list #repo-desc {
font-size: 1.2em;
}
.repository.file.list .choose.reference .header .icon {
font-size: 1.4em;
}
.repository.file.list .head.meta {
padding: 0;
}
.repository.file.list .head.meta li {
list-style: none;
display: inline-block;
}
.repository.file.list .head.meta li .ui.breadcrumb {
margin-top: -5px;
}
.repository.file.list .head.meta li .ui.breadcrumb span,
.repository.file.list .head.meta li .ui.breadcrumb a {
font-size: 16px;
}
.repository.file.list .clone.input {
margin-top: -8px;
width: 100%;
}
.repository.file.list .clone.input input {
border-radius: 0;
padding: 5px 10px;
}
.repository.file.list .clone.input .clone.button {
font-size: 13px;
padding: 0 5px;
}
.repository.file.list .clone.input .clone.button:first-child {
border-radius: .28571429rem 0 0 .28571429rem;
}
.repository.file.list .clone.input .icon.button {
padding: 0 10px;
}
.repository.file.list .clone.input .dropdown .menu {
right: 0!important;
left: auto!important;
}
.repository.file.list #repo-files-table .table.list {
width: 80% !important;
}
.repository.file.list #repo-files-table thead th {
padding-top: 8px;
padding-bottom: 5px;
font-weight: normal;
}
.repository.file.list #repo-files-table thead th #last-commit-message {
margin-left: 5px;
margin-bottom: -4px;
width: 400px;
}
.repository.file.list #repo-files-table thead th .age {
margin-top: 2px;
}
.repository.file.list #repo-files-table thead .ui.avatar {
margin-bottom: 5px;
}
.repository.file.list #repo-files-table tbody .icon {
margin-left: 5px;
}
.repository.file.list #repo-files-table tbody .name {
max-width: 120px;
}
.repository.file.list #repo-files-table tbody .message {
max-width: 300px;
}
.repository.file.list #repo-files-table tbody .age {
min-width: 150px;
}
.repository.file.list #repo-files-table tbody .text.truncate {
margin-bottom: -5px;
max-width: 100%;
}
.repository.file.list #repo-files-table td {
padding-top: 8px;
padding-bottom: 8px;
}
.repository.file.list #repo-files-table tr:hover {
background-color: #ffffEE;
}
.repository.file.list #file-content .header .icon {
font-size: 1em;
margin-top: -2px;
}
.repository.file.list #file-content .view-raw * {
width: 100%;
}
.repository.file.list #file-content .view-raw img {
padding: 5px 5px 0 5px;
}
.repository.file.list #file-content .code-view * {
font-size: 13px;
font-family: monospace;
line-height: 20px;
}
.repository.file.list #file-content .code-view table {
width: 100%;
}
.repository.file.list #file-content .code-view .lines-num {
vertical-align: top;
text-align: right;
color: #999;
background: #f5f5f5;
width: 1%;
}
.repository.file.list #file-content .code-view .lines-num span {
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
line-height: 20px;
padding: 0 10px;
cursor: pointer;
display: block;
}
.repository.file.list #file-content .code-view .lines-num,
.repository.file.list #file-content .code-view .lines-code {
padding: 0;
}
.repository.file.list #file-content .code-view .lines-num pre,
.repository.file.list #file-content .code-view .lines-code pre,
.repository.file.list #file-content .code-view .lines-num ol,
.repository.file.list #file-content .code-view .lines-code ol,
.repository.file.list #file-content .code-view .lines-num .hljs,
.repository.file.list #file-content .code-view .lines-code .hljs {
background-color: white;
margin: 0;
padding: 0 !important;
}
.repository.file.list #file-content .code-view .lines-num pre li,
.repository.file.list #file-content .code-view .lines-code pre li,
.repository.file.list #file-content .code-view .lines-num ol li,
.repository.file.list #file-content .code-view .lines-code ol li,
.repository.file.list #file-content .code-view .lines-num .hljs li,
.repository.file.list #file-content .code-view .lines-code .hljs li {
padding-left: 5px;
}
.repository.file.list #file-content .code-view .lines-num pre li.active,
.repository.file.list #file-content .code-view .lines-code pre li.active,
.repository.file.list #file-content .code-view .lines-num ol li.active,
.repository.file.list #file-content .code-view .lines-code ol li.active,
.repository.file.list #file-content .code-view .lines-num .hljs li.active,
.repository.file.list #file-content .code-view .lines-code .hljs li.active {
background: #ffffdd;
}
.repository.file.list .sidebar {
padding-left: 0;
}
.repository.file.list .sidebar .octicon {
width: 16px;
}
.repository.options #interval {
width: 100px!important;
min-width: 100px;

98
public/css/highlight-8.7/github.css

@ -0,0 +1,98 @@
/*
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
color: #333;
background: #f8f8f8;
}
.hljs-comment,
.hljs-quote {
color: #998;
font-style: italic;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: #333;
font-weight: bold;
}
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
color: #008080;
}
.hljs-string,
.hljs-doctag {
color: #d14;
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: #900;
font-weight: bold;
}
.hljs-subst {
font-weight: normal;
}
.hljs-type,
.hljs-class .hljs-title {
color: #458;
font-weight: bold;
}
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: #000080;
font-weight: normal;
}
.hljs-regexp,
.hljs-link {
color: #009926;
}
.hljs-symbol,
.hljs-bullet {
color: #990073;
}
.hljs-built_in {
color: #0086b3;
}
.hljs-meta {
color: #999;
font-weight: bold;
}
.hljs-deletion {
background: #fdd;
}
.hljs-addition {
background: #dfd;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}

BIN
public/fonts/octicons.eot

Binary file not shown.

21
public/fonts/octicons.svg

@ -27,15 +27,16 @@ Applies to all other files
<glyph glyph-name="arrow-up" unicode="&#xf03d;" d="M320 640L0 256h192v-256h256V256h192L320 640z" horiz-adv-x="640" />
<glyph glyph-name="beaker" unicode="&#xf0dd;" d="M920-102L704 384V640h64v64H192v-64h64v-256L40-102c-19-42 12-90 58-90h764c46 0 77 48 58 90zM240 192l80 192V640h320v-256l80-192H240z m272 128h64v-64h-64v64z m-64 64h-64v64h64v-64z m0 192h64v-64h-64v64z m0 192h-64V832h64v-64z" horiz-adv-x="1024" />
<glyph glyph-name="bell" unicode="&#xf0de;" d="M896 64v-64H0v64l47 37c49 49 52 163 76 283 49 241 261 320 261 320 0 35 29 64 64 64s64-29 64-64c0 0 217-79 266-320 24-120 27-234 76-283l42-37z m-448-256c71 0 128 57 128 128H320c0-71 57-128 128-128z" horiz-adv-x="896" />
<glyph glyph-name="bold" unicode="&#xf0e2;" d="M0 704h245c159 0 275-48 275-189 0-73-40-143-107-167v-4c85-19 147-79 147-183 0-153-126-225-295-225H0V704z m234-317c107 0 152 42 152 108 0 75-50 103-150 103H136v-211h98z m17-345c113 0 176 41 176 127 0 81-61 116-176 116H136v-243h115z" horiz-adv-x="640" />
<glyph glyph-name="book" unicode="&#xf007;" d="M128 512h256v-64H128v64z m0-192h256v64H128v-64z m0-128h256v64H128v-64z m704 320H576v-64h256v64z m0-128H576v-64h256v64z m0-128H576v-64h256v64z m128 384v-576c0-35-29-64-64-64H544l-64-64-64 64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h352l64-64 64 64h352c35 0 64-29 64-64z m-512-32l-32 32H64v-576h384V608z m448 32H544l-32-32v-544h384V640z" horiz-adv-x="1024" />
<glyph glyph-name="bookmark" unicode="&#xf07b;" d="M0-64l192 128 192-128V640c0 35-29 64-64 64H64c-35 0-64-29-64-64v-704z m72 580l88 1 27 83c3 9 7 9 10 0l27-83 88-1c9 0 11-3 4-9l-72-52 28-83c2-9-1-11-8-7l-72 52-72-52c-7-4-10-2-8 7l28 83-72 52c-7 6-5 9 4 9z" horiz-adv-x="384" />
<glyph glyph-name="bookmark" unicode="&#xf07b;" d="M576 832H64C17 832 0 815 0 768v-960l320 198 320-198V768c0 47-17 64-64 64z m-50-272l-119-87 46-138c4-14-1-18-13-11l-120 86-120-86c-12-7-16-3-13 11l46 138-119 87c-11 10-9 15 6 15l147 2 45 138h16l45-138 147-2c15 0 17-5 6-15z" horiz-adv-x="640" />
<glyph glyph-name="briefcase" unicode="&#xf0d3;" d="M576 576v64c0 35-29 64-64 64H384c-35 0-64-29-64-64v-64H64c-35 0-64-29-64-64v-512c0-35 29-64 64-64h768c35 0 64 29 64 64V512c0 35-29 64-64 64H576z m-192 64h128v-64H384v64z m448-384H512v-64H384v64H64V512h64v-192h640V512h64v-256z" horiz-adv-x="896" />
<glyph glyph-name="broadcast" unicode="&#xf048;" d="M576 256h-64c35 0 64 29 64 64v64c0 35-29 64-64 64h-64c-35 0-64-29-64-64v-64c0-35 29-64 64-64h-64c-35 0-64-29-64-64v-128h64v-192c0-35 29-64 64-64h64c35 0 64 29 64 64V64h64V192c0 35-29 64-64 64zM448 384h64v-64h-64v64z m128-256h-64v-256h-64V128h-64v64h192v-64z m134 224c0 127-103 230-230 230S250 479 250 352c0-18 2-35 6-52v-127c-39 49-64 111-64 179 0 159 129 288 288 288s288-129 288-288c0-68-25-130-64-179V300c4 17 6 34 6 52z m250 0c0-184-104-344-256-424v67c119 74 198 206 198 357 0 233-189 422-422 422S58 585 58 352c0-151 79-283 198-357v-67C104 8 0 168 0 352 0 617 215 832 480 832s480-215 480-480z" horiz-adv-x="1024" />
<glyph glyph-name="browser" unicode="&#xf0c5;" d="M320 640h64v-64h-64V640zM192 640h64v-64h-64V640zM64 640h64v-64H64V640zM832 0H64V512h768V0zM832 576H448v64h384V576zM896 640c0 35.35-28.65 64-64 64H64c-35.35 0-64-28.65-64-64v-640c0-35.35 28.65-64 64-64h768c35.35 0 64 28.65 64 64V640z" horiz-adv-x="896" />
<glyph glyph-name="bug" unicode="&#xf091;" d="M704 192h192v64H704v64l203 66-22 60-181-62v64c0 35-29 64-64 64v64c0 31-23 56-53 62l66 66h115V768H627L499 640h-38L333 768H192v-64h115l66-66c-30-6-53-31-53-62v-64c-35 0-64-29-64-64v-64L75 446l-22-60 203-66v-64H64v-64h192v-64L53 62l22-60 181 62v-64c0-35 29-64 64-64h64l64 64V448h64v-448l64-64h64c35 0 64 29 64 64v64l181-62 22 60-203 66v64zM576 512H384v64h192v-64z" horiz-adv-x="1024" />
<glyph glyph-name="calendar" unicode="&#xf068;" d="M768 704h-64v-96c0-18-14-32-32-32H544c-18 0-32 14-32 32v96H320v-96c0-18-14-32-32-32H160c-18 0-32 14-32 32v96H64c-35 0-64-29-64-64v-704c0-35 29-64 64-64h704c35 0 64 29 64 64V640c0 35-29 64-64 64z m0-768H64V512h704v-576zM256 640h-64V768h64v-128z m384 0h-64V768h64v-128zM320 384h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64zM192 256h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64zM192 128h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64zM192 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z m128 0h-64v64h64v-64z" horiz-adv-x="896" />
<glyph glyph-name="check" unicode="&#xf03a;" d="M768 512L256 0 0 256l96 96 160-160 416 416 96-96z" horiz-adv-x="768" />
<glyph glyph-name="checklist" unicode="&#xf076;" d="M208 166c1 21 10 42 25 56l64 60c16 15 35 22 55 22s41-8 57-23l39-40 128 128V640c0 35-29 64-64 64H64c-35 0-64-29-64-64v-576c0-35 29-64 64-64h272L231 108c-15 16-23 36-23 58z m-16 474h320v-64H192v64z m-64-192H64v64h64v-64z m0 128H64v64h64v-64z m64-64h320v-64H192v64z m544-224L448 0 288 164l64 60 96-96 224 224 64-64z" horiz-adv-x="768" />
<glyph glyph-name="checklist" unicode="&#xf076;" d="M1024 288L640-96 448 96l96 96 96-96 288 288 96-96zM365 51l51-51H128c-35 0-64 29-64 64V640c0 35 29 64 64 64h448c35 0 64-29 64-64v-416l-51 51c-25 25-66 25-91 0L365 141c-25-25-25-65 0-90zM256 576h320v64H256v-64z m0-128h320v64H256v-64z m0-128h192v64H256v-64z m-64-64h-64v-64h64v64z m0 128h-64v-64h64v64z m0 128h-64v-64h64v64z m0 128h-64v-64h64v64z" horiz-adv-x="1024" />
<glyph glyph-name="chevron-down" unicode="&#xf0a3;" d="M320 128L0 448l96 96 224-240 224 240 96-96-320-320z" horiz-adv-x="640" />
<glyph glyph-name="chevron-left" unicode="&#xf0a4;" d="M352 640l96-96-240-224 240-224-96-96L32 320l320 320z" horiz-adv-x="512" />
<glyph glyph-name="chevron-right" unicode="&#xf078;" d="M480 320L160 0l-96 96 240 224L64 544l96 96 320-320z" horiz-adv-x="512" />
@ -100,6 +101,7 @@ Applies to all other files
<glyph glyph-name="issue-closed" unicode="&#xf028;" d="M448 192h128v-128H448V192z m128 384H448v-320h128V576z m96-96l-64-64 160-160 256 288-64 64-192-224-96 96zM512-45c-201 0-365 164-365 365s164 365 365 365c117 0 221-56 288-141l59 59C777 704 652 768 512 768 265 768 64 567 64 320s201-448 448-448 448 201 448 448l-97-97c-42-154-183-268-351-268z" horiz-adv-x="1024" />
<glyph glyph-name="issue-opened" unicode="&#xf026;" d="M448 685c201 0 365-164 365-365S649-45 448-45 83 119 83 320s164 365 365 365m0 83C201 768 0 567 0 320s201-448 448-448 448 201 448 448S695 768 448 768z m64-192H384v-320h128V576z m0-384H384v-128h128V192z" horiz-adv-x="896" />
<glyph glyph-name="issue-reopened" unicode="&#xf027;" d="M512 256H384V576h128v-320zM384 64h128V192H384v-128z m405 128H640l96-96c-67-85-171-141-288-141-201 0-365 164-365 365 0 22 2 43 6 64H5c-3-21-5-42-5-64 0-247 201-448 448-448 140 0 264 65 346 166l102-102V192H789zM107 448h149l-96 96c67 85 171 141 288 141 201 0 365-164 365-365 0-22-2-43-6-64h84c3 21 5 42 5 64 0 247-201 448-448 448-140 0-264-65-346-166L0 704v-256h107z" horiz-adv-x="896" />
<glyph glyph-name="italic" unicode="&#xf0e4;" d="M180 512h127L192-64H64l116 576z m23 173c0 45 37 83 85 83 36 0 72-24 72-66 0-48-38-83-85-83-37 0-72 24-72 66z" horiz-adv-x="384" />
<glyph glyph-name="jersey" unicode="&#xf019;" d="M224 448l-32-32v-320l32-32h128l32 32V416l-32 32H224z m96-320h-64V384h64v-256z m401 464c-14 88-20 168-17 240H513c0-17-8-31-25-44-16-13-40-19-72-19s-56 6-72 19c-15 13-23 27-23 44H128c3-72-2-152-16-240-13-88-51-136-112-144v-576c1-17 7-31 20-44s27-19 44-20h704c17 1 31 7 44 20s19 27 20 44V448c-61 8-98 56-112 144z m47-720H64V384c57 32 95 80 110 144s20 144 18 240h64c-1-50 10-94 33-132 23-37 65-57 128-60 63 1 105 21 128 60 23 38 32 82 31 132h64c1-91 8-163 21-216 13-52 44-128 107-168v-512zM480 448l-32-32v-320l32-32h128l32 32V416l-32 32H480z m96-320h-64V384h64v-256z" horiz-adv-x="896" />
<glyph glyph-name="key" unicode="&#xf049;" d="M821 693c-48 48-108 73-181 75-72-2-133-27-181-75s-72-108-74-181c0-19 2-38 6-57L0 64v-64l64-64h128l64 64v64h64v64h64v64h128l70 71c19-5 38-7 58-7 73 2 133 27 181 75s73 108 75 181c-2 73-27 133-75 181zM704 488c-49 0-88 39-88 88s39 88 88 88 88-39 88-88-39-88-88-88z" horiz-adv-x="896" />
<glyph glyph-name="keyboard" unicode="&#xf00d;" d="M640 512h-64v64h64v-64z m-448-64h-64v-64h64v64z m320 128h-64v-64h64v64z m-256 0H128v-64h128v64z m512-448h128v64H768v-64zM512 384h64v64h-64v-64zM256 192H128v-64h128v64z m512 384h-64v-64h64v64z m128 0h-64v-64h64v64zM768 256h128V448H768v-192z m256 384v-576c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h896c35 0 64-29 64-64z m-64 0H64v-576h896V640zM384 384h64v64h-64v-64z m0 192h-64v-64h64v64zM256 384h64v64h-64v-64z m64-256h384v64H320v-64z m320 256h64v64h-64v-64z m-448-64h-64v-64h64v64z m320 0v-64h64v64h-64z m-128 0v-64h64v64h-64z m-64 0h-64v-64h64v64z m320-64h64v64h-64v-64z" horiz-adv-x="1024" />
@ -107,10 +109,11 @@ Applies to all other files
<glyph glyph-name="light-bulb" unicode="&#xf000;" d="M352 832C159 832 0 692 0 512c0-59 35-144 64-192 86-144 114-178 128-256v-64h320v64c14 78 42 112 128 256 29 48 64 133 64 192C704 692 545 832 352 832z m233-479c-16-28-30-51-43-71-55-90-80-132-93-207-1-3-1-7-1-11H256c0 4 0 8-1 11-13 75-38 117-93 207-13 20-27 43-43 71-27 45-55 117-55 159C64 653 193 768 352 768c78 0 151-27 206-76 53-48 82-112 82-180 0-42-28-114-55-159zM192-64h320c-15-73-83-128-160-128s-145 55-160 128z" horiz-adv-x="768" />
<glyph glyph-name="link" unicode="&#xf05c;" d="M256 256h64v-64h-64c-96 0-192 108-192 224s99 224 192 224h256c93 0 192-108 192-224 0-90-58-174-128-208v74c37 29 64 81 64 134 0 82-65 160-128 160H256c-63 0-128-78-128-160s64-160 128-160z m576 192h-64v-64h64c64 0 128-78 128-160s-65-160-128-160H576c-63 0-128 78-128 160 0 53 27 105 64 134v74c-70-34-128-118-128-208 0-116 99-224 192-224h256c93 0 192 108 192 224s-96 224-192 224z" horiz-adv-x="1024" />
<glyph glyph-name="link-external" unicode="&#xf07f;" d="M704 192h64v-192c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h192v-64H64v-640h640V192zM384 704l144-144-208-208 96-96 208 208 144-144V704H384z" horiz-adv-x="768" />
<glyph glyph-name="list-ordered" unicode="&#xf062;" d="M320 256h448v128h-448v-128z m0-256h448v128h-448v-128z m0 640v-128h448v128h-448z m-241-256h78v256h-36l-85-23v-50l43 2v-185z m110-206c0 36-12 78-96 78-33 0-64-6-83-16l1-66c21 10 42 15 67 15s32-11 32-28c0-26-30-58-110-112v-50h192v67l-91-2c49 30 87 66 87 113l1 1z" horiz-adv-x="768" />
<glyph glyph-name="list-unordered" unicode="&#xf061;" d="M0 256h128v128h-128v-128z m0 256h128v128h-128v-128z m0-512h128v128h-128v-128z m256 256h512v128h-512v-128z m0 256h512v128h-512v-128z m0-512h512v128h-512v-128z" horiz-adv-x="768" />
<glyph glyph-name="list-ordered" unicode="&#xf062;" d="M768 0c0-38 0-64-38-64H294c-38 0-38 26-38 64s0 64 38 64h436c38 0 38-26 38-64zM294 576h436c38 0 38 26 38 64s0 64-38 64H294c-38 0-38-26-38-64s0-64 38-64z m436-192H294c-38 0-38-26-38-64s0-64 38-64h436c38 0 38 26 38 64s0 64-38 64zM128 768H82C63 756 45 752 16 746v-42h48v-137H10v-55h182v55h-64V768z m16-520c-11 0-29-2-42-4 34 36 73 80 73 121-1 50-36 83-87 83-38 0-62-13-88-41l37-37c12 12 24 24 41 24 18 0 31-10 31-33 0-34-49-77-109-132v-37h192l-6 56h-42z m-5-242v2c28 12 41 30 41 55 0 45-36 71-92 71-31 0-57-12-82-33l35-41c16 13 28 20 44 20 17 0 27-8 27-23 0-17-13-28-55-28v-48c53 0 63-11 63-30 0-16-15-24-37-24-18 0-36 9-52 24L0-92c19-23 49-36 90-36 53 0 98 26 98 74 0 32-20 52-49 60z" horiz-adv-x="768" />
<glyph glyph-name="list-unordered" unicode="&#xf061;" d="M128 0c0-38 0-64-38-64H38c-38 0-38 26-38 64s0 64 38 64h52c38 0 38-26 38-64z m166 576h436c38 0 38 26 38 64s0 64-38 64H294c-38 0-38-26-38-64s0-64 38-64zM90 384H38c-38 0-38-26-38-64s0-64 38-64h52c38 0 38 26 38 64s0 64-38 64z m0 320H38c-38 0-38-26-38-64s0-64 38-64h52c38 0 38 26 38 64s0 64-38 64z m640-320H294c-38 0-38-26-38-64s0-64 38-64h436c38 0 38 26 38 64s0 64-38 64z m0-320H294c-38 0-38-26-38-64s0-64 38-64h436c38 0 38 26 38 64s0 64-38 64z" horiz-adv-x="768" />
<glyph glyph-name="location" unicode="&#xf060;" d="M384 832C172 832 0 672 0 480c0-289 384-672 384-672s384 383 384 672C768 672 596 832 384 832z m0-931C265 31 64 292 64 480 64 639 208 768 384 768c86 0 167-31 228-87 59-55 92-126 92-201 0-188-201-449-320-579z m128 579c0-71-57-128-128-128s-128 57-128 128 57 128 128 128 128-57 128-128z" horiz-adv-x="768" />
<glyph glyph-name="lock" unicode="&#xf06a;" d="M256 0h-64v64h64v-64z m512 384v-448c0-35-29-64-64-64H64c-35 0-64 29-64 64V384c0 35 29 64 64 64h64V576C128 717 243 832 384 832s256-115 256-256v-128h64c35 0 64-29 64-64z m-525 64h282V576c0 78-63 141-141 141s-141-63-141-141v-128z m461-64H128v-448h576V384z m-448-64h-64v-64h64v64z m0-128h-64v-64h64v64z" horiz-adv-x="768" />
<glyph glyph-name="logo-gist" unicode="&#xf0ad;" d="M301 402h157v-257c-35-17-105-22-162-22-164 0-223 141-223 323 0 181 59 323 223 323 81 0 132-15 210-47v68c-41 21-106 42-210 42-224 0-296-172-296-386s71-386 296-386c105 0 179 17 230 41v364h-225v-63z m409-239v409h-68v-401c0-80 38-110 110-110v57c-31 0-42 10-42 45z m16 559c0 28-22 50-50 50s-50-22-50-50 22-50 50-50 50 22 50 50z m277-364c-96 8-114 31-114 75 0 49 21 86 120 86 67 0 106-10 145-23v60c-44 19-97 25-144 25-141 0-187-77-187-148 0-69 30-120 175-133 99-8 113-40 113-86 0-47-28-91-132-91-71 0-119 12-150 23v-60c32-13 101-25 149-25 152 0 201 77 201 154 0 82-34 130-176 143z m550 158v55h-155v160l-70-20v-135l-100-29v-31h100v-320c0-98 77-136 160-136 13 0 33 1 45 4v56c-13-1-26-2-39-2-63 0-96 25-96 86v312h155z" horiz-adv-x="1552.629" />
<glyph glyph-name="logo-github" unicode="&#xf092;" d="M552.73 499.865H311.557c-6.205 0-11.25-5.045-11.25-11.297v-117.887c0-6.252 5.045-11.272 11.25-11.272h94.109v-146.542c0 0-21.145-7.057-79.496-7.057-68.914 0-165.156 25.244-165.156 236.795 0 211.642 100.197 239.491 194.307 239.491 81.465 0 116.514-14.304 138.869-21.241 7.01-2.203 13.404 4.831 13.404 11.105L534.543 785.87c0 2.912-1.041 6.417-4.262 8.785C521.186 801.048 465.865 832 326.168 832 165.133 832 0 763.513 0 434.243 0 105.02099999999996 189.051 56 348.381 56c131.883 0 212.021 56.314 212.021 56.314 3.268 1.801 3.6 6.395 3.6 8.479V488.568C563.955 494.773 558.887 499.865 552.73 499.865zM1772.381 803.866h-135.695c-6.252 0-11.271-5.044-11.271-11.296v-262.393h-211.619V792.57c0 6.252-5.068 11.296-11.178 11.296h-135.838c-6.111 0-11.084-5.044-11.084-11.296v-710.473c0-6.299 5.021-11.32 11.084-11.32h135.838c6.203 0 11.178 5.068 11.178 11.32V385.933h211.619l-0.475-303.883c0-6.3 5.021-11.272 11.084-11.272h135.885c6.252 0 11.131 5.068 11.131 11.272l0.473 710.521C1783.607 798.822 1778.539 803.866 1772.381 803.866zM714.949 787.763c-48.357 0-87.574-39.572-87.574-88.403 0-48.855 39.217-88.428 87.574-88.428s87.527 39.572 87.527 88.428C802.477 748.19 763.307 787.763 714.949 787.763zM792.861 559.874c0 6.205-5.02 11.344-11.131 11.344H646.32c-6.348 0-11.746-6.394-11.746-12.67 0 0 0-394.654 0-469.867 0-13.735 8.572-17.903 19.703-17.903 0 0 57.688 0 121.959 0 13.311 0 16.814 6.536 16.814 18.188-0.094 25.197-0.094 123.808-0.094 142.942C792.861 250.09500000000003 792.861 559.874 792.861 559.874zM2297.973 570.152h-134.701c-6.158 0-11.084-5.092-11.084-11.344v-348.31c0 0-34.244-25.197-82.934-25.197-48.547 0-61.525 22.024-61.525 69.719 0 47.553 0 303.835 0 303.835 0 6.252-5.068 11.345-11.131 11.345h-136.643c-6.252 0-11.178-5.093-11.178-11.345 0 0 0-185.521 0-326.807 0-141.284 78.766-175.906 186.99-175.906 88.854 0 160.609 49.115 160.609 49.115s3.363-25.766 5.068-28.844c1.422-3.078 5.447-6.158 9.852-6.158h86.58c6.158 0 11.178 5.069 11.178 11.321l0.379 477.278C2309.15 565.0609999999999 2304.129 570.152 2297.973 570.152zM2666.932 586.1610000000001c-76.539 0-128.592-34.148-128.592-34.148V792.57c0 6.252-5.068 11.296-11.131 11.296h-136.264c-6.109 0-11.131-5.044-11.131-11.296l-0.379-710.521c0-6.3 5.068-11.272 11.225-11.272 0 0 94.773 0 94.869 0 4.215 0 7.389 2.179 9.805 5.968 2.369 3.837 5.73 32.775 5.73 32.775s55.557-52.763 161.035-52.763c123.807 0 194.758 62.804 194.758 281.906C2856.859 557.482 2743.471 586.1610000000001 2666.932 586.1610000000001zM2613.791 185.77499999999998c-46.701 1.421-78.34 22.64-78.34 22.64v225.07c0 0 31.307 19.206 69.672 22.593 48.547 4.31 95.438-10.326 95.438-126.13C2700.322 207.94100000000003 2679.199 183.83399999999995 2613.791 185.77499999999998zM1185.125 188.33299999999997c-5.969 0-21.219-2.368-36.85-2.368-49.92 0-66.971 23.256-66.971 53.331 0 30.218 0 199.85 0 199.85h101.926c6.252 0 11.178 5.044 11.178 11.343v109.48c0.094 6.299-4.926 11.344-11.178 11.344h-101.926l-0.143 134.535c0 5.092-2.699 7.625-8.572 7.625H933.861c-5.352 0-8.336-2.391-8.336-7.578v-139.035c0 0-69.576-16.79-74.266-18.188-4.641-1.326-8.051-5.684-8.051-10.822v-87.408c0-6.252 5.068-11.344 11.178-11.344h71.139c0 0 0-91.34 0-210.222 0-156.109 109.553-171.455 183.439-171.455 33.723 0 74.076 10.988 80.848 13.356 4.074 1.421 6.395 5.637 6.395 10.136l0.047 96.101C1196.254 183.312 1190.998 188.428 1185.125 188.33299999999997z" horiz-adv-x="2856.857" />
<glyph glyph-name="mail" unicode="&#xf03b;" d="M0 576v-512c0-35 29-64 64-64h768c35 0 64 29 64 64V576c0 35-29 64-64 64H64c-35 0-64-29-64-64z m832 0L448 256 64 576h768zM64 480l256-192L64 96V480z m64-416l224 192 96-96 96 96 224-192H128z m704 32L576 288l256 192v-384z" horiz-adv-x="896" />
<glyph glyph-name="mail-read" unicode="&#xf03c;" d="M384 512H256v64h128v-64z m192-64H256v-64h320v64z m320 31v-543c0-35-29-64-64-64H64c-35 0-64 29-64 64V479c0 21 10 40 27 52l101 72v37c0 35 29 64 64 64h77L448 832l179-128h77c35 0 64-29 64-64v-37l101-72c17-12 27-31 27-52zM192 352l256-160 256 160V640H192v-288zM64-32l288 192L64 352v-384z m704-32L448 128 128-64h640z m64 416L544 160l288-192V352z" horiz-adv-x="896" />
@ -118,7 +121,7 @@ Applies to all other files
<glyph glyph-name="mark-github" unicode="&#xf00a;" d="M512 832C229.252 832 0 602.748 0 320c0-226.251 146.688-418.126 350.155-485.813 25.593-4.686 34.937 11.125 34.937 24.626 0 12.188-0.469 52.562-0.718 95.314-128.708-23.46-161.707 31.541-172.469 60.373-5.525 14.809-30.407 60.249-52.398 72.263-17.988 9.828-43.26 33.237-0.917 33.735 40.434 0.476 69.348-37.308 78.471-52.75 45.938-77.749 119.876-55.627 148.999-42.5 4.654 32.999 17.902 55.627 32.501 68.373-113.657 12.939-233.22 56.875-233.22 253.063 0 55.94 19.968 101.561 52.658 137.404-5.22 12.999-22.844 65.095 5.063 135.563 0 0 42.937 13.749 140.811-52.501 40.811 11.406 84.594 17.031 128.124 17.22 43.499-0.188 87.314-5.874 128.188-17.28 97.689 66.311 140.686 52.501 140.686 52.501 28-70.532 10.375-122.564 5.124-135.499 32.811-35.844 52.626-81.468 52.626-137.404 0-196.686-119.751-240-233.813-252.686 18.439-15.876 34.748-47.001 34.748-94.748 0-68.437-0.686-123.627-0.686-140.501 0-13.625 9.312-29.561 35.25-24.562C877.436-97.99800000000005 1024 93.87400000000002 1024 320 1024 602.748 794.748 832 512 832z" horiz-adv-x="1024" />
<glyph glyph-name="markdown" unicode="&#xf0c9;" d="M950.154 640H73.846C33.127 640 0 606.873 0 566.154v-492.308C0 33.125 33.127 0 73.846 0h876.308c40.721 0 73.846 33.125 73.846 73.846V566.154C1024 606.873 990.875 640 950.154 640zM576 128.125L448 128V320l-96-123.077L256 320v-192H128V512h128l96-128 96 128 128 0.125V128.125zM767.091 96.125L608 320h96V512h128v-192h96L767.091 96.125z" horiz-adv-x="1024" />
<glyph glyph-name="megaphone" unicode="&#xf077;" d="M640 768c-11 0-23-3-33-9-92-56-319-220-415-247-88 0-192-43-192-160s104-160 192-160c19-5 41-15 64-26v-294h128V93c86-55 172-117 223-148 10-6 22-9 33-9 33 0 64 27 64 64V704c0 37-31 64-64 64z m0-768c-24 15-57 37-96 64-10 7-21 14-32 22V620c10 7 20 13 30 20 39 26 74 49 98 64v-704z m128 384h256v-64H768v64z m0-128l256-128v-64L768 192v64z m256 384v-64L768 448v64l256 128z" horiz-adv-x="1024" />
<glyph glyph-name="mention" unicode="&#xf0be;" d="M466.697 732.899C238.66 760.898 31.1 598.735 3.102 370.698c-28-228.038 134.163-435.598 362.2-463.597 71.429-8.756 145.115 0.913 213.325 29.946l-0.016 0.032c24.404 10.357 35.788 38.538 25.431 62.939-10.359 24.403-38.538 35.787-62.94 25.43l-0.001 0.004c-52.472-22.339-109.15-29.799-164.1-23.067-175.413 21.538-300.153 181.2-278.616 356.613 21.538 175.413 181.199 300.154 356.613 278.616 175.412-21.538 300.154-181.199 278.617-356.612-4.309-35.083-21.542-55.725-61.6-55.725-42.5 0-64 45.889-64 81.222V432c0 26.51-21.49 48-48 48-9.699 0-18.72-2.887-26.269-7.833-25.684 20.259-57.437 33.87-94.349 38.402-105.246 12.923-201.045-61.924-213.967-167.17C212.508 238.15200000000004 287.354 142.35400000000004 392.6 129.43200000000002c57.379-7.045 116.216 14.707 157.871 53.13 24.959-28.124 59.866-47.624 100.121-52.567 87.707-10.769 167.537 51.602 178.307 139.309C856.898 497.34 694.734 704.899 466.697 732.899zM511.285 308.30100000000004c-6.462-52.623-54.361-90.047-106.985-83.585-52.623 6.461-90.046 54.36-83.585 106.984 6.461 52.623 54.361 90.046 106.984 83.585C480.322 408.823 517.746 360.924 511.285 308.30100000000004z" horiz-adv-x="832" />
<glyph glyph-name="mention" unicode="&#xf0be;" d="M421-128c80 0 161 20 228 60l-27 60c-54-33-121-53-194-53-207 0-361 133-361 366C67 585 274 765 488 765c221 0 334-140 334-333 0-153-86-247-160-247-67 0-87 47-67 140l47 240h-67l-7-46c-26 40-60 53-100 53-140 0-234-153-234-280 0-107 60-167 147-167 54 0 107 34 147 80 7-60 60-93 127-93 107 0 241 107 241 320C896 665 742 832 501 832 234 832 0 619 0 299c0-280 187-427 421-427z m-20 320c-47 0-87 33-87 107 0 93 60 206 154 206 33 0 54-13 80-53l-33-193c-40-47-80-67-114-67z" horiz-adv-x="896" />
<glyph glyph-name="milestone" unicode="&#xf075;" d="M512 704H384V832h128v-128z m256-320H128c-35 0-64 29-64 64V576c0 35 29 64 64 64h640l128-128-128-128zM512 576H384v-128h128V576z m-128-768h128V320H384v-512z" horiz-adv-x="896" />
<glyph glyph-name="mirror" unicode="&#xf024;" d="M992 531L544 832 96 531c-19-12-32-29-32-51v-672l480 256 480-256V480c0 22-13 39-32 51z m-32-627L576 112v80h-64v-80L128-96V480L512 736v-288h64V736l384-256v-576zM384 384h320V512l192-192-192-192V256H384v-128L192 320l192 192v-128z" horiz-adv-x="1024" />
<glyph glyph-name="mortar-board" unicode="&#xf0d7;" d="M501 244l-245 76s0-96 0-160 115-96 256-96 256 32 256 96 0 160 0 160l-245-76c-7-2-15-2-23 0h1z m18 409c-4 1-9 1-13 0l-489-152c-21-7-21-36 0-43l111-35v-113c-19-11-32-32-32-55 0-12 3-23 9-32-5-9-9-20-9-32v-165c0-35 128-35 128 0v165c0 12-3 23-9 32 5 9 9 20 9 32 0 24-13 44-32 55v93l313-98c4-1 9-1 13 0l489 152c21 7 21 36 0 43l-488 153z m-6-205c-35 0-64 14-64 32s29 32 64 32 64-14 64-32-29-32-64-32z" horiz-adv-x="1024" />
@ -137,7 +140,7 @@ Applies to all other files
<glyph glyph-name="primitive-square" unicode="&#xf053;" d="M512 64H0V576h512V64z" horiz-adv-x="512" />
<glyph glyph-name="pulse" unicode="&#xf085;" d="M736 320.062L563.188 486.406 422.406 288 352 729.594 152.438 320.062H0V192h230.406L288 307.188l57.594-345.562L576 288l102.375-96H896V320.062H736z" horiz-adv-x="896" />
<glyph glyph-name="question" unicode="&#xf02c;" d="M384 192h128v-128H384V192z m256 224c0-137-128-160-128-160H384c0 35 29 64 64 64h32c18 0 32 14 32 32v64c0 18-14 32-32 32h-64c-18 0-32-14-32-32v-32H256c0 96 96 192 192 192s192-64 192-160zM448 685c201 0 365-164 365-365S649-45 448-45 83 119 83 320s164 365 365 365m0 83C201 768 0 567 0 320s201-448 448-448 448 201 448 448S695 768 448 768z" horiz-adv-x="896" />
<glyph glyph-name="quote" unicode="&#xf063;" d="M0 320v-256h256V320H128c0 0 0 128 128 128V576C256 576 0 576 0 320zM640 448V576c0 0-256 0-256-256v-256h256V320H512C512 320 512 448 640 448z" horiz-adv-x="640" />
<glyph glyph-name="quote" unicode="&#xf063;" d="M394 629C239 529 163 426 163 254c10 3 19 3 28 3 81 0 160-55 160-154 0-103-66-167-160-167C70-64 0 33 0 208 0 451 112 626 321 747l73-118z m448 0C687 529 611 426 611 254c10 3 19 3 28 3 81 0 160-55 160-154 0-103-66-167-160-167-121 0-191 97-191 272 0 243 112 418 321 539l73-118z" horiz-adv-x="896" />
<glyph glyph-name="radio-tower" unicode="&#xf030;" d="M306.838 441.261c15.868 16.306 15.868 42.731 0 59.037-20.521 21.116-30.643 48.417-30.705 76.124 0.062 27.77 10.183 55.039 30.705 76.186 15.868 16.337 15.868 42.764 0 59.069-7.934 8.184-18.272 12.275-28.706 12.275-10.371 0-20.804-4.029-28.738-12.213-36.266-37.297-54.633-86.433-54.57-135.317-0.062-48.792 18.305-97.927 54.57-135.161C265.262 424.955 290.97 424.955 306.838 441.261zM149.093 798.858c-8.121 8.309-18.68 12.463-29.3 12.463-10.558 0-21.179-4.154-29.237-12.463C30.8 737.509 0.751 656.856 0.813 576.422 0.751 496.081 30.8 415.272 90.494 353.985c16.181-16.618 42.356-16.618 58.537 0 16.118 16.587 16.118 43.513 0 60.067-43.7 44.98-65.44 103.456-65.44 162.368s21.74 117.449 65.44 162.368C165.149 755.439 165.149 782.365 149.093 798.858zM513.031 472.153c57.351 0 103.956 46.574 103.956 103.956 0 57.382-46.605 103.955-103.956 103.955-57.381 0-103.956-46.573-103.956-103.955C409.076 518.727 455.65 472.153 513.031 472.153zM933.539 798.233c-16.181 16.618-42.355 16.618-58.475 0-16.181-16.587-16.181-43.513 0-60.068 43.668-44.918 65.409-103.456 65.409-162.368 0-58.85-21.805-117.387-65.473-162.306-16.117-16.618-16.117-43.575 0.062-60.068 8.059-8.309 18.616-12.463 29.237-12.463 10.558 0 21.178 4.154 29.236 12.463 59.726 61.287 89.774 142.096 89.649 222.437C1023.313 656.138 993.264 736.947 933.539 798.233zM513.281 389.127L513.281 389.127c-26.489-0.062-53.04 6.466-77.091 19.429L235.057-127.59000000000003h95.209l54.819 63.973h255.891l53.977-63.973h95.272L589.124 408.431C565.384 395.655 539.395 389.127 513.281 389.127zM512.656 358.483L577.004 128.29999999999995H449.059L512.656 358.483zM385.086 0.3550000000000182l63.974 63.973h127.944l63.974-63.973H385.086zM717.194 710.958c-15.868-16.306-15.868-42.731 0-59.037 20.491-21.116 30.611-48.511 30.674-76.124-0.062-27.77-10.183-55.102-30.674-76.187-15.868-16.336-15.868-42.763 0-59.068 7.871-8.184 18.242-12.213 28.737-12.213 10.309 0 20.741 4.029 28.675 12.213 36.298 37.234 54.665 86.433 54.54 135.255 0.125 48.792-18.181 97.927-54.54 135.161C758.801 727.264 733.062 727.264 717.194 710.958z" horiz-adv-x="1024" />
<glyph glyph-name="repo" unicode="&#xf001;" d="M256 256h-64v64h64v-64z m0 192h-64v-64h64v64z m0 128h-64v-64h64v64z m0 128h-64v-64h64v64z m512 64v-768c0-35-29-64-64-64H384v-128l-96 96-96-96V-64H64c-35 0-64 29-64 64V768C0 803 29 832 64 832h640c35 0 64-29 64-64z m-64-640H64v-128h128v64h192v-64h320V128z m0 640H128v-576h576V768z" horiz-adv-x="768" />
<glyph glyph-name="repo-clone" unicode="&#xf04c;" d="M960 832H576v-448c0-35 29-64 64-64h64v-64h64v64h192c35 0 64 29 64 64V768c0 35-29 64-64 64zM704 384h-64v64h64v-64z m256 0H768v64h192v-64z m0 128H704V768h256v-256z m-704 0h-64v64h64v-64z m0 128h-64v64h64v-64zM128 768h384V832H64C29 832 0 803 0 768v-768c0-35 29-64 64-64h128v-128l96 96 96-96V-64h320c35 0 64 29 64 64V192H128V768z m576-640v-128H384v64H192v-64H64V128h640zM192 320h64v-64h-64v64z m64 64h-64v64h64v-64z" horiz-adv-x="1024" />
@ -148,8 +151,6 @@ Applies to all other files
<glyph glyph-name="rocket" unicode="&#xf033;" d="M1024 832s-6-24-19-68c-13-45-35-101-68-170-45 5-81 21-106 46s-40 60-45 105c69 33 125 56 169 69 45 13 69 18 69 18zM779 587c-17 17-30 35-40 56-10 20-17 42-22 65-37-21-74-45-111-72-37-28-73-60-108-95-45-45-85-116-114-157H192L0 192h192l128 128c-22-49-65-191-64-192l64-64c1-1 143 41 192 64L384 0v-192l192 192V192c41 29 112 70 157 114 35 35 67 72 94 109 28 37 52 74 73 110-23 5-45 12-66 22-20 10-38 23-55 40z" horiz-adv-x="1024" />
<glyph glyph-name="rss" unicode="&#xf034;" d="M128 0H0V128c71 0 128-57 128-128zM0 640v-64c318 0 576-258 576-576h64c0 353-287 640-640 640z m0-256v-64c176 0 320-144 320-320h64c0 212-172 384-384 384z" horiz-adv-x="640" />
<glyph glyph-name="ruby" unicode="&#xf047;" d="M832 448L512 128V576h192l128-128z m192 0L512-64 0 448l256 256h512l256-256zM512 32l416 416-192 192H288L96 448l416-416z" horiz-adv-x="1024" />
<glyph glyph-name="screen-full" unicode="&#xf066;" d="M832 192h64v-192c0-35-29-64-64-64H640v64h192V192z m-768 0H0v-192c0-35 29-64 64-64h192v64H64V192z m0 448h192v64H64c-35 0-64-29-64-64v-192h64V640z m64-64h640v-512H128V576z m128-384h384V448H256v-256z m576 512H640v-64h192v-192h64V640c0 35-29 64-64 64z" horiz-adv-x="896" />
<glyph glyph-name="screen-normal" unicode="&#xf067;" d="M128 576H0v64h128V768h64v-128c0-35-29-64-64-64z m0-512H0v-64h128v-128h64V0c0 35-29 64-64 64z m576 128c0-35-29-64-64-64H256c-35 0-64 29-64 64V448c0 35 29 64 64 64h384c35 0 64-29 64-64v-256zM576 384H320v-128h256V384z m128-384v-128h64V0h128v64H768c-35 0-64-29-64-64z m64 640V768h-64v-128c0-35 29-64 64-64h128v64H768z" horiz-adv-x="896" />
<glyph glyph-name="search" unicode="&#xf02e;" d="M1005-83L761 162c45 63 71 139 71 222 0 212-172 384-384 384S64 596 64 384s172-384 384-384c83 0 159 26 222 71l245-244c12-13 29-19 45-19s33 6 45 19c25 25 25 65 0 90zM448 83c-166 0-301 135-301 301s135 301 301 301 301-135 301-301-135-301-301-301z" horiz-adv-x="1024" />
<glyph glyph-name="server" unicode="&#xf097;" d="M704 448H64c-35 0-64-29-64-64v-128c0-35 29-64 64-64h640c35 0 64 29 64 64V384c0 35-29 64-64 64zM128 256H64V384h64v-128z m128 0h-64V384h64v-128z m128 0h-64V384h64v-128z m128 0h-64V384h64v-128zM704 768H64C29 768 0 739 0 704v-128c0-35 29-64 64-64h640c35 0 64 29 64 64V704c0 35-29 64-64 64zM128 576H64V704h64v-128z m128 0h-64V704h64v-128z m128 0h-64V704h64v-128z m128 0h-64V704h64v-128z m192 64h-64v64h64v-64z m0-512H64c-35 0-64-29-64-64v-128c0-35 29-64 64-64h640c35 0 64 29 64 64V64c0 35-29 64-64 64zM128-64H64V64h64v-128z m128 0h-64V64h64v-128z m128 0h-64V64h64v-128z m128 0h-64V64h64v-128z" horiz-adv-x="768" />
<glyph glyph-name="settings" unicode="&#xf07c;" d="M192 384h-64V704h64v-320z m-64-448h64V128h-64v-192z m320 0h64V320h-64v-384z m320 0h64V64h-64v-128z m64 768h-64v-384h64V704z m-320 0h-64v-128h64V704zM256 320H64c-35 0-64-29-64-64s29-64 64-64h192c35 0 64 29 64 64s-29 64-64 64z m320 192H384c-35 0-64-29-64-64s29-64 64-64h192c35 0 64 29 64 64s-29 64-64 64z m320-256H704c-35 0-64-29-64-64s29-64 64-64h192c35 0 64 29 64 64s-29 64-64 64z" horiz-adv-x="1024" />
@ -161,9 +162,11 @@ Applies to all other files
<glyph glyph-name="stop" unicode="&#xf08f;" d="M640 768H256L0 512v-384l256-256h384l256 256V512L640 768z m192-608L608-64H288L64 160V480l224 224h320l224-224v-320zM384 576h128v-320H384V576z m0-384h128v-128H384V192z" horiz-adv-x="896" />
<glyph glyph-name="sync" unicode="&#xf087;" d="M655.461 358.531c11.875-81.719-13.062-167.781-76.812-230.594-94.188-92.938-239.5-104.375-346.375-34.562l74.875 73L31.96 204.75 70.367-64l84.031 80.5c150.907-111.25 364.938-100.75 502.063 34.562 79.5 78.438 115.75 182.562 111.25 285.312L655.461 358.531zM189.46 511.938c94.156 92.938 239.438 104.438 346.313 34.562l-75-72.969 275.188-38.406L697.586 704l-83.938-80.688C462.711 734.656 248.742 724.031 111.585 588.75 32.085 510.344-4.133 406.219 0.335 303.5l112.25-22.125C100.71 363.125 125.71 449.094 189.46 511.938z" horiz-adv-x="768.051" />
<glyph glyph-name="tag" unicode="&#xf015;" d="M431 657c-30 30-71 47-113 47H160C72 704 0 632 0 544v-158c0-42 17-83 47-113l388-388c25-25 65-25 90 0l294 294c25 25 25 65 0 90L431 657zM88 314c-20 19-30 45-30 72V544c0 56 46 102 102 102h158c27 0 53-10 72-30l393-392-303-303L88 314z m40 262h128v-128H128V576z" horiz-adv-x="896" />
<glyph glyph-name="tasklist" unicode="&#xf0e5;" d="M986 256H486c-38 0-38 26-38 64s0 64 38 64h500c38 0 38-26 38-64s0-64-38-64zM614 576c-38 0-38 26-38 64s0 64 38 64h372c38 0 38-26 38-64s0-64-38-64H614zM0 582l90 83 102-102L454 832l90-90-352-352L0 582z m486-518h500c38 0 38-26 38-64s0-64-38-64H486c-38 0-38 26-38 64s0 64 38 64z" horiz-adv-x="1024" />
<glyph glyph-name="telescope" unicode="&#xf088;" d="M512 256l192-384h-64L512 128v-320h-64V192L320-128h-64l128 320 128 64zM448 832h-64v-64h64V832zM320 640h-64v-64h64v64zM128 768H64v-64h64V768zM40 256c-14-10-18-28-10-43l35-59c8-15 26-20 41-13l89 42-74 128-81-55z m505 345L174 348l79-137 405 194-113 196z m270-82l-94 161c-9 16-30 21-46 11l-77-53 118-205 85 41c17 8 23 28 14 45z" horiz-adv-x="896" />
<glyph glyph-name="terminal" unicode="&#xf0c8;" d="M448 192h256v-64H448v64z m-192-64l192 192-192 192-48-48 144-144-144-144 48-48z m640 512v-640c0-35-29-64-64-64H64c-35 0-64 29-64 64V640c0 35 29 64 64 64h768c35 0 64-29 64-64z m-64 0H64v-640h768V640z" horiz-adv-x="896" />
<glyph glyph-name="three-bars" unicode="&#xf05e;" d="M0 640v-128h768v128h-768z m0-384h768v128h-768v-128z m0-256h768v128h-768v-128z" horiz-adv-x="768" />
<glyph glyph-name="text-size" unicode="&#xf0e3;" d="M1150-64h-144l-61 208H685l-61-208H480l-44 149H226l-45-149H42l211 614h160l139-406 185 560h161l252-768zM407 184s-65 231-75 263h-5l-72-263h152z m507 67l-97 347h-4l-96-347h197z" horiz-adv-x="1152" />
<glyph glyph-name="three-bars" unicode="&#xf05e;" d="M730 256H38c-38 0-38 26-38 64s0 64 38 64h692c38 0 38-26 38-64s0-64-38-64z m0 256H38c-38 0-38 26-38 64s0 64 38 64h692c38 0 38-26 38-64s0-64-38-64zM38 128h692c38 0 38-26 38-64s0-64-38-64H38c-38 0-38 26-38 64s0 64 38 64z" horiz-adv-x="768" />
<glyph glyph-name="thumbsdown" unicode="&#xf0db;" d="M871 347c9 19 15 40 15 62 0 51-28 96-69 120 4 13 6 27 6 41 0 50-26 93-65 118 2 8 10 19 10 27C768 781 709 832 640 832c0 0-212 0-222 0-88 0-170-43-242-81-42-22-89-47-113-47H0v-576h64c37-2 155-69 206-112 12-10 173-168 173-168 26-26 60-40 96-40 35 0 68 13 92 38 51 51 50 135-2 188-20 20-94 115-117 138l256-44c76 0 128 59 128 131 0 34-3 64-25 88zM768 192l-384 64c-7 0 200-266 200-266 28-29 29-73 3-100-13-13-30-19-48-19s-37 7-52 21L347 34c-86 71-216 158-283 158V642c87 0 221 126 352 126h224c34 0 64-20 64-53 0-34-30-75-64-75h48c45 0 72-25 72-70 0-44-36-90-81-90h63c45 0 81-26 81-71 0-44-36-80-81-80h27c42 0 63-32 63-70 0-39-23-67-64-67z" horiz-adv-x="896" />
<glyph glyph-name="thumbsup" unicode="&#xf0da;" d="M896 381c0 72-52 131-128 131l-256-44c23 23 97 118 117 138 52 53 53 137 2 188-24 25-57 38-92 38-36 0-70-14-96-40 0 0-161-158-173-168-51-43-169-110-206-112H0v-576h63c24 0 71-25 113-47 72-38 154-81 242-81 10 0 222 0 222 0 69 0 128 51 128 117 0 8-8 19-10 27 39 25 65 68 65 118 0 14-2 28-6 41 41 24 69 69 69 120 0 22-6 43-15 62 22 24 25 54 25 88z m-64 0c0-38-21-70-63-70h-27c45 0 81-36 81-80 0-45-36-71-81-71h-63c45 0 81-46 81-90 0-45-27-70-72-70h-48c34 0 64-41 64-75 0-33-30-53-64-53H416c-131 0-265 126-352 126V448c67 0 197 87 283 158L487 748c15 14 34 21 52 21s35-6 48-19c26-27 25-71-3-100 0 0-207-266-200-266l384 64c41 0 64-28 64-67z" horiz-adv-x="896" />
<glyph glyph-name="tools" unicode="&#xf031;" d="M286.547 366.984c16.843-16.812 81.716-85.279 81.716-85.279l35.968 37.093-56.373 58.248L456.072 491.98c0 0-48.842 47.623-27.468 28.655 20.438 75.903 1.812 160.589-55.842 220.243C315.608 800.064 234.392 819.47 161.425 799.096l123.653-127.715-32.53-125.309-121.06-33.438L7.898 640.3820000000001c-19.718-75.436-0.969-159.339 56.311-218.556C124.302 359.703 210.83 341.453 286.547 366.984zM698.815 242.769L549.694 95.46100000000001l245.932-254.805c20.062-20.812 46.498-31.188 72.872-31.188 26.25 0 52.624 10.375 72.811 31.188 40.249 41.624 40.249 108.997 0 150.62L698.815 242.769zM1023.681 670.162L867.06 832.001 405.387 354.703l56.373-58.248L185.425 10.839000000000055l-63.154-33.749-89.217-145.559 22.719-23.562 140.839 92.247 32.655 65.312 276.336 285.554 56.404-58.248L1023.681 670.162z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 67 KiB

BIN
public/fonts/octicons.ttf

Binary file not shown.

BIN
public/fonts/octicons.woff

Binary file not shown.

210
public/js/gogs.js

@ -206,6 +206,31 @@ function initRepository() {
return;
}
function initFilterSearchDropdown(selector) {
var $dropdown = $(selector);
$dropdown.dropdown({
fullTextSearch: true,
onChange: function (text, value, $choice) {
window.location.href = $choice.data('url');
console.log($choice.data('url'))
},
message: {noResults: $dropdown.data('no-results')}
});
}
// File list
if ($('.repository.file.list').length > 0) {
initFilterSearchDropdown('.choose.reference .dropdown');
$('.reference.column').click(function () {
$('.choose.reference .scrolling.menu').css('display', 'none');
$('.choose.reference .text').removeClass('black');
$($(this).data('target')).css('display', 'block');
$(this).find('.text').addClass('black');
return false;
});
}
// Options
if ($('.repository.settings.options').length > 0) {
$('#repo_name').keyup(function () {
@ -289,23 +314,23 @@ function initRepository() {
$('#edit-title').click(editTitleToggle);
$('#cancel-edit-title').click(editTitleToggle);
$('#save-edit-title').click(editTitleToggle).
click(function () {
if ($edit_input.val().length == 0 ||
$edit_input.val() == $issue_title.text()) {
$edit_input.val($issue_title.text());
return false;
}
$.post($(this).data('update-url'), {
"_csrf": csrf,
"title": $edit_input.val()
},
function (data) {
$edit_input.val(data.title);
$issue_title.text(data.title);
});
click(function () {
if ($edit_input.val().length == 0 ||
$edit_input.val() == $issue_title.text()) {
$edit_input.val($issue_title.text());
return false;
});
}
$.post($(this).data('update-url'), {
"_csrf": csrf,
"title": $edit_input.val()
},
function (data) {
$edit_input.val(data.title);
$issue_title.text(data.title);
});
return false;
});
// Edit issue or comment content
$('.edit-content').click(function () {
@ -397,33 +422,26 @@ function initRepository() {
}
}
// Quick start
if ($('.repository.quickstart').length > 0) {
$('#repo-clone-ssh').click(function () {
$('.clone-url').text($(this).data('link'));
$('#repo-clone-url').val($(this).data('link'));
$(this).addClass('blue');
$('#repo-clone-https').removeClass('blue');
});
$('#repo-clone-https').click(function () {
$('.clone-url').text($(this).data('link'));
$('#repo-clone-url').val($(this).data('link'));
$(this).addClass('blue');
$('#repo-clone-ssh').removeClass('blue');
});
}
// Quick start and repository home
$('#repo-clone-ssh').click(function () {
$('.clone-url').text($(this).data('link'));
$('#repo-clone-url').val($(this).data('link'));
$(this).addClass('blue');
$('#repo-clone-https').removeClass('blue');
});
$('#repo-clone-https').click(function () {
$('.clone-url').text($(this).data('link'));
$('#repo-clone-url').val($(this).data('link'));
$(this).addClass('blue');
$('#repo-clone-ssh').removeClass('blue');
});
$('#repo-clone-url').click(function () {
$(this).select();
});
// Pull request
if ($('.repository.compare.pull').length > 0) {
var $branch_dropdown = $('.choose.branch .dropdown');
$branch_dropdown.dropdown({
fullTextSearch: true,
onChange: function (text, value, $choice) {
window.location.href = $choice.data('url');
console.log($choice.data('url'))
},
message: {noResults: $branch_dropdown.data('no-results')}
});
initFilterSearchDropdown('.choose.branch .dropdown');
}
}
@ -540,7 +558,7 @@ function initAdmin() {
}
function buttonsClickOnEnter() {
$('.ui.button').keypress(function(e){
$('.ui.button').keypress(function (e) {
if (e.keyCode == 13 || e.keyCode == 32) // enter key or space bar
$(this).click();
});
@ -553,9 +571,9 @@ $(document).ready(function () {
// Show exact time
$('.time-since').each(function () {
$(this).addClass('poping up').
attr('data-content', $(this).attr('title')).
attr('data-variation', 'inverted tiny').
attr('title', '');
attr('data-content', $(this).attr('title')).
attr('data-variation', 'inverted tiny').
attr('title', '');
});
// Semantic UI modules.
@ -678,6 +696,26 @@ $(document).ready(function () {
$($(this).data('modal')).modal('show');
});
// Set anchor.
$('.markdown').each(function () {
var headers = {};
$(this).find('h1, h2, h3, h4, h5, h6').each(function () {
var node = $(this);
var val = encodeURIComponent(node.text().toLowerCase().replace(/[^\w\- ]/g, '').replace(/[ ]/g, '-'));
var name = val;
if (headers[val] > 0) {
name = val + '-' + headers[val];
}
if (headers[val] == undefined) {
headers[val] = 1;
} else {
headers[val] += 1;
}
node = node.wrap('<div id="' + name + '" class="anchor-wrap" ></div>');
node.append('<a class="anchor" href="#' + name + '"><span class="octicon octicon-link"></span></a>');
});
});
buttonsClickOnEnter();
initCommentForm();
@ -687,4 +725,88 @@ $(document).ready(function () {
initUser();
initWebhook();
initAdmin();
});
$(window).load(function () {
function changeHash(hash) {
if (history.pushState) {
history.pushState(null, null, hash);
}
else {
location.hash = hash;
}
}
function deSelect() {
if (window.getSelection) {
window.getSelection().removeAllRanges();
} else {
document.selection.empty();
}
}
function selectRange($list, $select, $from) {
$list.removeClass('active');
if ($from) {
var a = parseInt($select.attr('rel').substr(1));
var b = parseInt($from.attr('rel').substr(1));
var c;
if (a != b) {
if (a > b) {
c = a;
a = b;
b = c;
}
var classes = [];
for (i = a; i <= b; i++) {
classes.push('.L' + i);
}
$list.filter(classes.join(',')).addClass('active');
changeHash('#L' + a + '-' + 'L' + b);
return
}
}
$select.addClass('active');
changeHash('#' + $select.attr('rel'));
}
// Code view.
if ($('.code-view').length > 0) {
var $block = $('.code-view .linenums');
var lines = $block.html().split("\n");
$block.html('');
var $num_list = $('.code-view .lines-num');
// Building blocks.
for (var i = 0; i < lines.length; i++) {
$block.append('<li class="L' + (i + 1) + '" rel="L' + (i + 1) + '">' + lines[i] + '</li>');
$num_list.append('<span id="L' + (i + 1) + '">' + (i + 1) + '</span>');
}
$(document).on('click', '.lines-num span', function (e) {
var $select = $(this);
var $list = $select.parent().siblings('.lines-code').find('ol.linenums > li');
selectRange($list, $list.filter('[rel=' + $select.attr('id') + ']'), (e.shiftKey ? $list.filter('.active').eq(0) : null));
deSelect();
});
$(window).on('hashchange', function (e) {
var m = window.location.hash.match(/^#(L\d+)\-(L\d+)$/);
var $list = $('.code-view ol.linenums > li');
var $first;
if (m) {
$first = $list.filter('.' + m[1]);
selectRange($list, $first, $list.filter('.' + m[2]));
$("html, body").scrollTop($first.offset().top - 200);
return;
}
m = window.location.hash.match(/^#(L\d+)$/);
if (m) {
$first = $list.filter('.' + m[1]);
selectRange($list, $first);
$("html, body").scrollTop($first.offset().top - 200);
}
}).trigger('hashchange');
}
});

9
public/less/_base.less

@ -112,6 +112,12 @@ pre {
}
}
}
&.black {
color: #444;
&:hover {
color: #000;
}
}
&.grey {
color: #767676 !important;
a {
@ -143,6 +149,9 @@ pre {
&.small {
font-size: 0.75em;
}
&.normal {
font-weight: normal;
}
&.bold {
font-weight: bold;
}

174
public/less/_markdown.less

@ -1,39 +1,40 @@
.markdown {
overflow:hidden;
font-family:"Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
font-size:16px;
line-height:1.6;
word-wrap:break-word;
overflow: hidden;
font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
font-size: 16px;
line-height: 1.6 !important;
word-wrap: break-word;
padding: 5px 2em 2em !important;
>*:first-child {
margin-top:0 !important;
margin-top: 0 !important;
}
>*:last-child {
margin-bottom:0 !important;
margin-bottom: 0 !important;
}
a:not([href]) {
color:inherit;
text-decoration:none;
color: inherit;
text-decoration: none;
}
.absent {
color:#c00;
color: #c00;
}
.anchor {
position:absolute;
top:0;
left:0;
display:block;
padding-right:6px;
padding-left:30px;
margin-left:-30px;
position: absolute;
top: 0;
left: 0;
display: block;
padding-right: 6px;
padding-left: 30px;
margin-left: -30px;
}
.anchor:focus {
outline:none;
outline: none;
}
h1,
@ -42,11 +43,11 @@
h4,
h5,
h6 {
position:relative;
margin-top:1em;
margin-bottom:16px;
font-weight:bold;
line-height:1.4;
position: relative;
margin-top: 1em;
margin-bottom: 16px;
font-weight: bold;
line-height: 1.4;
}
h1 .octicon-link,
@ -157,8 +158,11 @@
dl,
table,
pre {
margin-top:0;
margin-bottom:16px;
margin-top: 0;
margin-bottom: 16px;
}
blockquote {
margin-left: 0;
}
hr {
@ -471,124 +475,4 @@
font-weight:bold;
background:#f8f8f8;border-top:0;
}
}
/* Author: jmblog */
/* Project: https://github.com/jmblog/color-themes-for-google-code-prettify */
/* GitHub Theme */
/* Pretty printing styles. Used with prettify.js. */
/* SPAN elements with the classes below are added by prettyprint. */
/* plain text */
.pln {
color: #333333;
}
@media screen {
/* string content */
.str {
color: #dd1144;
}
/* a keyword */
.kwd {
color: #333333;
}
/* a comment */
.com {
color: #999988;
font-style: italic;
}
/* a type name */
.typ {
color: #445588;
}
/* a literal value */
.lit {
color: #445588;
}
/* punctuation */
.pun {
color: #333333;
}
/* lisp open bracket */
.opn {
color: #333333;
}
/* lisp close bracket */
.clo {
color: #333333;
}
/* a markup tag name */
.tag {
color: navy;
}
/* a markup attribute name */
.atn {
color: teal;
}
/* a markup attribute value */
.atv {
color: #dd1144;
}
/* a declaration */
.dec {
color: #333333;
}
/* a variable name */
.var {
color: teal;
}
/* a function name */
.fun {
color: #990000;
}
}
/* Use higher contrast and text-weight for printable form. */
@media print,
projection {
.str {
color: #006600;
}
.kwd {
color: #006;
font-weight: bold;
}
.com {
color: #600;
font-style: italic;
}
.typ {
color: #404;
font-weight: bold;
}
.lit {
color: #004444;
}
.pun,
.opn,
.clo {
color: #444400;
}
.tag {
color: #006;
font-weight: bold;
}
.atn {
color: #440044;
}
.atv {
color: #006600;
}
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0;
}

11
public/less/_octicons.less

@ -1,6 +1,6 @@
// v3.1.0
// v3.3.0
@octicons-font-path: "../fonts";
@octicons-version: "396334ee3da78f4302d25c758ae3e3ce5dc3c97d";
@octicons-version: "30e752e9a0821a0a098947055eeece0b0f46bc34";
@font-face {
font-family: 'octicons';
@ -40,6 +40,7 @@
.octicon-microscope:before,
.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'} /* */
@ -120,6 +121,7 @@
.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'} /* */
@ -134,6 +136,7 @@
.octicon-mirror-private:before,
.octicon-git-fork-private:before,
.octicon-lock:before { content: '\f06a'} /* */
.octicon-logo-gist:before { content: '\f0ad'} /* */
.octicon-logo-github:before { content: '\f092'} /* */
.octicon-mail:before { content: '\f03b'} /* */
.octicon-mail-read:before { content: '\f03c'} /* */
@ -180,8 +183,6 @@
.octicon-rocket:before { content: '\f033'} /* */
.octicon-rss:before { content: '\f034'} /* */
.octicon-ruby:before { content: '\f047'} /* */
.octicon-screen-full:before { content: '\f066'} /* */
.octicon-screen-normal:before { content: '\f067'} /* */
.octicon-search-save:before,
.octicon-search:before { content: '\f02e'} /* */
.octicon-server:before { content: '\f097'} /* */
@ -201,8 +202,10 @@
.octicon-tag-remove:before,
.octicon-tag-add:before,
.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'} /* */

175
public/less/_repository.less

@ -78,6 +78,181 @@
padding-right: 0;
}
}
&.file.list {
#repo-desc {
font-size: 1.2em;
}
.choose.reference {
.header .icon {
font-size: 1.4em;
}
}
.head.meta {
padding: 0;
li {
list-style: none;
display: inline-block;
.ui.breadcrumb {
margin-top: -5px;
span,
a {
font-size: 16px;
}
}
}
}
.clone.input {
margin-top: -8px;
width: 100%;
input {
border-radius: 0;
padding: 5px 10px;
}
.clone.button {
font-size: 13px;
padding: 0 5px;
&:first-child {
border-radius: .28571429rem 0 0 .28571429rem;
}
}
.icon.button {
padding: 0 10px;
}
.dropdown .menu {
right: 0!important;
left: auto!important;
}
}
#repo-files-table {
.table.list {
width: 80% !important;
}
thead {
th {
padding-top: 8px;
padding-bottom: 5px;
font-weight: normal;
#last-commit-message {
margin-left: 5px;
margin-bottom: -4px;
width: 400px;
}
.age {
margin-top: 2px;
}
}
.ui.avatar {
margin-bottom: 5px;
}
}
tbody {
.icon {
margin-left: 5px;
}
.name {
max-width: 120px;
}
.message {
max-width: 300px;
}
.age {
min-width: 150px;
}
.text.truncate {
margin-bottom: -5px;
max-width: 100%;
}
}
td {
padding-top: 8px;
padding-bottom: 8px;
}
tr:hover {
background-color: #ffffEE;
}
}
#file-content {
.header {
.icon {
font-size: 1em;
margin-top: -2px;
}
}
.view-raw {
* {
width: 100%;
}
img {
padding: 5px 5px 0 5px;
}
}
.code-view {
* {
font-size: 13px;
font-family: monospace;
line-height: 20px;
}
table {
width: 100%;
}
.lines-num {
vertical-align: top;
text-align: right;
color: #999;
background: #f5f5f5;
width: 1%;
span {
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
line-height: 20px;
padding: 0 10px;
cursor: pointer;
display: block;
}
}
.lines-num,
.lines-code {
padding: 0;
pre,
ol,
.hljs {
background-color: white;
margin: 0;
padding: 0 !important;
li {
padding-left: 5px;
&.active {
background: #ffffdd;
}
}
}
}
}
}
.sidebar {
padding-left: 0;
.octicon {
width: 16px;
}
}
}
&.options {
#interval {

1
routers/repo/view.go

@ -25,6 +25,7 @@ const (
func Home(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Repo.Repository.Name
ctx.Data["RequireHighlightJS"] = true
branchName := ctx.Repo.BranchName
userName := ctx.Repo.Owner.Name

2
templates/.VERSION

@ -1 +1 @@
0.7.8.1113 Beta
0.7.9.1114 Beta

2
templates/base/footer.tmpl

@ -28,7 +28,7 @@
<!-- Third-party libraries -->
{{if .RequireHighlightJS}}
<link rel="stylesheet" href="{{AppSubUrl}}/css/highlight-8.7/default.css">
<link rel="stylesheet" href="{{AppSubUrl}}/css/highlight-8.7/github.css">
<script src="{{AppSubUrl}}/js/libs/highlight-8.7.pack.js"></script>
{{end}}
{{if .RequireMinicolors}}

186
templates/repo/home.tmpl

@ -1,81 +1,117 @@
{{template "ng/base/head" .}}
{{template "ng/base/header" .}}
<div id="repo-wrapper">
{{template "repo/header_old" .}}
<div id="repo-content" class="clear container">
<div id="repo-main" class="left grid-5-6">
<p id="repo-desc">
{{if .Repository.DescriptionHtml}}<span class="description">{{.Repository.DescriptionHtml}}</span>{{else}}<span class="no-description text-italic">{{.i18n.Tr "repo.no_desc"}}</span>{{end}}
<a class="link" href="{{.Repository.Website}}">{{.Repository.Website}}</a>
</p>
<ul id="repo-file-nav" class="clear menu menu-line">
{{if and .IsRepositoryAdmin .Repository.BaseRepo}}
{{ $baseRepo := .Repository.BaseRepo}}
<li>
<a href="{{AppSubUrl}}/{{$baseRepo.Owner.Name}}/{{$baseRepo.Name}}/compare/{{$.BaseDefaultBranch}}...{{$.Owner.Name}}:{{$.BranchName}}">
<button class="btn btn-green btn-small btn-radius" id="repo-compare-btn"><i class="octicon octicon-git-compare"></i></button>
</a>
</li>
{{end}}
<li id="repo-branch-switch" class="down drop">
<a>
<button class="btn btn-gray btn-medium btn-radius">
<i class="octicon octicon-git-branch"></i> {{if .IsViewBranch}}{{.i18n.Tr "repo.branch"}}{{else}}{{.i18n.Tr "repo.tree"}}{{end}}:
<strong id="repo-branch-current">{{if .IsViewBranch}}{{.BranchName}}{{else}}{{ShortSha .BranchName}}{{end}}</strong>
</button>
</a>
<div class="drop-down panel">
<p class="panel-header text-bold">{{.i18n.Tr "repo.branch_and_tags"}}</p>
<!-- <input id="repo-branch-filter-ipt" class="ipt ipt-large" type="text" placeholder="find branches / tags"/> -->
<div id="repo-branch-tag">
<ul class="menu menu-line tab-nav clear" id="repo-branch-tab-nav">
<li class="js-tab-nav {{if not .IsTag}}js-tab-nav-show{{end}} left" data-tab-target="#repo-branch-list"><a>{{.i18n.Tr "repo.branches"}}</a></li>
<li class="js-tab-nav {{if .IsTag}}js-tab-nav-show{{end}} left" data-tab-target="#repo-tag-list"><a>{{.i18n.Tr "repo.tags"}}</a></li>
</ul>
<ul class="menu menu-vertical switching-list {{if .IsTag}}hide{{end}}" id="repo-branch-list">
{{range .Branches}}
<li {{if eq . $.BranchName}}class="checked"{{end}}><a href="{{$.RepoLink}}/src/{{EscapePound .}}"><i class="octicon octicon-check"></i>{{.}}</a></li>
{{end}}
</ul>
<ul class="menu menu-vertical switching-list {{if not .IsTag}}hide{{end}}" id="repo-tag-list">
{{range .Tags}}
<li {{if eq . $.BranchName}}class="checked"{{end}}><a href="{{$.RepoLink}}/src/{{EscapePound .}}"><i class="octicon octicon-check"></i>{{.}}</a></li>
{{end}}
</ul>
</div>
</div>
</li>
<li id="repo-bread" class="breads">
<a class="title bread" href="{{.RepoLink}}/src/{{EscapePound .BranchName}}">{{.Repository.Name}}</a>
{{ $n := len .Treenames}}
{{ $l := Subtract $n 1}}
{{range $i, $v := .Treenames}}
{{if eq $i $l}}
<span class="bread">{{$v}}</span>
{{else}}
{{ $p := index $.Paths $i}}
<span class="bread"><a href="{{EscapePound $.BranchLink}}/{{EscapePound $p}}">{{$v}}</a></span>
{{end}}
{{end}}
</li>
<!-- <li id="repo-commits-jump" class="repo-jump right">
<a href="#">
<button class="btn btn-small btn-gray btn-right-radius"><i class="octicon octicon-git-commit"></i></button>
{{template "base/head" .}}
<div class="repository file list">
{{template "repo/header" .}}
<div class="ui container">
{{template "repo/sidebar" .}}
<div class="ui grid">
<div class="ui ten wide column">
<p id="repo-desc">
{{if .Repository.DescriptionHtml}}<span class="description">{{.Repository.DescriptionHtml}}</span>{{else}}<span class="no-description text-italic">{{.i18n.Tr "repo.no_desc"}}</span>{{end}}
<a class="link" href="{{.Repository.Website}}">{{.Repository.Website}}</a>
</p>
</div>
<div class="ui six wide column">
<div class="ui action small clone input">
{{if not $.DisableSSH}}
<button class="ui blue basic clone button" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}">
SSH
</button>
{{end}}
<button class="ui {{if $.DisableSSH}}blue{{end}} basic clone button" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}">
HTTPS
</button>
<input id="repo-clone-url" value="{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}" readonly>
<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>
</button>
<div class="ui basic jump dropdown icon button">
<i class="download icon"></i>
<div class="menu">
<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip"><i class="icon octicon octicon-file-zip"></i> ZIP</a>
<a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz"><i class="icon octicon octicon-file-zip"></i> TAR.GZ</a>
</div>
</div>
</div>
</div>
</div>
<ul class="head meta">
{{if and .IsRepositoryAdmin .Repository.BaseRepo}}
<li>
{{ $baseRepo := .Repository.BaseRepo}}
<a href="{{AppSubUrl}}/{{$baseRepo.Owner.Name}}/{{$baseRepo.Name}}/compare/{{$.BaseDefaultBranch}}...{{$.Owner.Name}}:{{$.BranchName}}">
<button class="ui green small button"><i class="octicon octicon-git-compare"></i></button>
</a>
</li>
{{end}}
<li>
<div class="choose reference">
<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
<div class="ui basic small button">
<span class="text">
<i class="octicon octicon-git-branch"></i>
{{if .IsViewBranch}}{{.i18n.Tr "repo.branch"}}{{else}}{{.i18n.Tr "repo.tree"}}{{end}}:
<strong>{{if .IsViewBranch}}{{.BranchName}}{{else}}{{ShortSha .BranchName}}{{end}}</strong>
</span>
<i class="dropdown icon"></i>
</div>
<div class="menu">
<div class="ui icon search input">
<i class="filter icon"></i>
<input name="search" placeholder="{{.i18n.Tr "repo.filter_branch_and_tag"}}...">
</div>
<div class="header">
<div class="ui grid">
<div class="two column row">
<a class="reference column" href="#" data-target="#branch-list">
<span class="text {{if .IsViewBranch}}black{{end}}">
<i class="icon octicon octicon-git-branch"></i> {{.i18n.Tr "repo.branches"}}
</span>
</a>
</li>
<li id="repo-find-jump" class="repo-jump right">
<a href="#">
<button class="btn btn-small btn-gray btn-left-radius"><i class="octicon octicon-list-unordered"></i></button>
<a class="reference column" href="#" data-target="#tag-list">
<span class="text {{if .IsTag}}black{{end}}">
<i class="reference tags icon"></i> {{.i18n.Tr "repo.tags"}}
</span>
</a>
</li> -->
</ul>
{{if .IsFile}}
{{template "repo/view_file" .}}
</div>
</div>
</div>
<div id="branch-list" class="scrolling menu" {{if .IsTag}}style="display: none"{{end}}>
{{range .Branches}}
<div class="item {{if eq $.BranchName .}}selected{{end}}" data-url="{{$.RepoLink}}/src/{{EscapePound .}}">{{.}}</div>
{{end}}
</div>
<div id="tag-list" class="scrolling menu" {{if .IsViewBranch}}style="display: none"{{end}}>
{{range .Tags}}
<div class="item {{if eq $.BranchName .}}selected{{end}}" data-url="{{$.RepoLink}}/src/{{EscapePound .}}">{{.}}</div>
{{end}}
</div>
</div>
</div>
</div>
</li>
<li>
<div class="ui breadcrumb">
<a class="section" href="{{.RepoLink}}/src/{{EscapePound .BranchName}}">{{.Repository.Name}}</a>
{{ $n := len .Treenames}}
{{ $l := Subtract $n 1}}
{{range $i, $v := .Treenames}}
<div class="divider"> / </div>
{{if eq $i $l}}
<span class="active section">{{$v}}</span>
{{else}}
{{template "repo/view_list" .}}
{{ $p := index $.Paths $i}}
<span class="section"><a href="{{EscapePound $.BranchLink}}/{{EscapePound $p}}">{{$v}}</a></span>
{{end}}
{{end}}
</div>
{{template "repo/sidebar" .}}
</div>
</li>
</ul>
{{if .IsFile}}
{{template "repo/view_file" .}}
{{else}}
{{template "repo/view_list" .}}
{{end}}
</div>
</div>
{{template "ng/base/footer" .}}
{{template "base/footer" .}}

47
templates/repo/sidebar.tmpl

@ -1,30 +1,19 @@
<div id="repo-sidebar" class="right grid-1-6">
<ul class="menu menu-vertical" id="repo-sidebar-nav">
<li>
<a class="radius" href="{{.RepoLink}}/issues"><i class="octicon octicon-issue-opened"></i>{{.i18n.Tr "repo.issues"}}<span class="num right label label-blue label-radius">{{.Repository.NumOpenIssues}}</span></a>
</li>
<li>
<a class="radius" href="{{.RepoLink}}/pulls"><i class="octicon octicon-git-pull-request"></i>{{.i18n.Tr "repo.pulls"}}<span class="num right label label-blue label-radius">{{.Repository.NumOpenPulls}}</span></a>
</li>
<li class="border-bottom"></li>
<li class="head">{{if .IsViewBranch}}{{.BranchName}}{{else}}{{ShortSha .BranchName}}{{end}}</li>
<li>
<a class="radius" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}"><i class="octicon octicon-history"></i>{{.i18n.Tr "repo.commits"}} <span class="num right label label-gray label-radius">{{.CommitsCount}}</span></a>
</li>
<!-- <li>
<a class="radius" href="{{.RepoLink}}/branches"><i class="octicon octicon-git-branch"></i>Branches<span class="num right label label-gray label-radius">{{.BrancheCount}}</span></a>
</li> -->
<li>
<a class="radius" href="{{.RepoLink}}/releases"><i class="octicon octicon-tag"></i>{{.i18n.Tr "repo.releases"}} <span class="num right label label-gray label-radius">{{.Repository.NumTags}}</span></a>
</li>
<!-- <li>
<a class="radius" href="#"><i class="octicon octicon-organization"></i>contributors <span class="num right label label-gray label-radius">43</span></a>
</li> -->
{{if .IsRepositoryAdmin}}
<li class="border-bottom"></li>
<li>
<a class="radius" href="{{.RepoLink}}/settings"><i class="octicon octicon-tools"></i>{{.i18n.Tr "repo.settings"}}</a>
</li>
{{end}}
</ul>
<div class="ui five item menu">
<a class="item" href="{{.RepoLink}}/issues">
<i class="icon octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} <span class="ui blue label">{{.Repository.NumOpenIssues}}</span>
</a>
<a class="item" href="{{.RepoLink}}/pulls">
<i class="icon octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.pulls"}} <span class="ui blue label">{{.Repository.NumOpenPulls}}</span>
</a>
<a class="item" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}">
<i class="icon octicon octicon-history"></i> {{.i18n.Tr "repo.commits"}} <span class="ui blue label">{{.CommitsCount}}</span>
</a>
<a class="item" href="{{.RepoLink}}/releases">
<i class="icon octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui blue label">{{.Repository.NumTags}}</span>
</a>
{{if .IsRepositoryAdmin}}
<a class="item" href="{{.RepoLink}}/settings">
<i class="icon octicon octicon-tools"></i> {{.i18n.Tr "repo.settings"}}
</a>
{{end}}
</div>

12
templates/repo/sidebar_mini.tmpl

@ -1,12 +0,0 @@
<ul class="menu menu-vertical" id="repo-sidebar-mini">
<li><a href="#" class="btn-right-radius"><i class="octicon octicon-code"></i></a></li>
<li class="border-bottom"></li>
<li><a href="#" class="btn-right-radius"><i class="octicon octicon-issue-opened"></i>
<span class="num label label-blue">999</span>
</a></li>
<li class="current"><a href="#" class="btn-right-radius"><i class="octicon octicon-git-pull-request"></i>
<span class="num label label-black">12</span>
</a></li>
<li class="border-bottom"></li>
<li><a href="#" class="btn-right-radius"><i class="octicon octicon-tools"></i></a></li>
</ul>

86
templates/repo/view_file.tmpl

@ -1,50 +1,50 @@
<div class="panel panel-radius" id="{{if .ReadmeExist}}repo-readme{{else}}repo-read-file{{end}}">
<p class="panel-header">
{{if .ReadmeExist}}
<i class="icon fa fa-book fa-lg"></i>
{{if .ReadmeInList}}
<strong class="file-name">{{.FileName}}</strong>
{{else}}
<strong>{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span>
{{end}}
{{else}}
<i class="icon fa fa-file-text-o"></i>
<strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span>
{{end}}
{{if not .ReadmeInList}}
{{if not .IsCommit}}
<a class="right" href="{{.RepoLink}}/src/{{.CommitID}}/{{EscapePound .TreeName}}">
<button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_permalink"}}</button>
</a>
{{end}}
<a class="right" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}/{{EscapePound .TreeName}}">
<button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_history"}}</button>
</a>
<a class="right" href="{{EscapePound .FileLink}}">
<button class="btn btn-medium btn-gray btn-left-radius btn-comb">{{.i18n.Tr "repo.file_raw"}}</button>
</a>
<div id="file-content">
<h4 class="ui top attached header" id="{{if .ReadmeExist}}repo-readme{{else}}repo-read-file{{end}}">
{{if .ReadmeExist}}
<i class="book icon ui left"></i>
{{if .ReadmeInList}}
<strong>{{.FileName}}</strong>
{{else}}
<strong>{{.FileName}}</strong> <span class="text grey normal">{{FileSize .FileSize}}</span>
{{end}}
{{else}}
<i class="file text outline icon ui left"></i>
<strong>{{.FileName}}</strong> <span class="text grey normal">{{FileSize .FileSize}}</span>
{{end}}
{{if not .ReadmeInList}}
<div class="ui right">
<div class="ui small grey basic buttons">
{{if not .IsCommit}}
<a class="ui button" href="{{.RepoLink}}/src/{{.CommitID}}/{{EscapePound .TreeName}}">{{.i18n.Tr "repo.file_permalink"}}</a>
{{end}}
</p>
<div class="{{if .ReadmeExist}}panel-content markdown{{end}} code-view" id="repo-code-view">
{{if .ReadmeExist}}
{{if .FileContent}}{{.FileContent | Str2html}}{{end}}
<a class="ui button" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}/{{EscapePound .TreeName}}">{{.i18n.Tr "repo.file_history"}}</a>
<a class="ui button" href="{{EscapePound .FileLink}}">{{.i18n.Tr "repo.file_raw"}}</a>
</div>
</div>
{{end}}
</h4>
<div class="ui attached table segment">
<div class="{{if .ReadmeExist}}markdown{{else if .IsFileText}}code-view{{end}}">
{{if .ReadmeExist}}
{{if .FileContent}}{{.FileContent | Str2html}}{{end}}
{{else if not .IsFileText}}
<div class="view-raw">
{{if .IsImageFile}}
<img src="{{EscapePound .FileLink}}">
{{else}}
<a href="{{EscapePound .FileLink}}" rel="nofollow" class="btn btn-gray btn-radius">{{.i18n.Tr "repo.file_view_raw"}}</a>
{{end}}
{{if .IsImageFile}}
<img src="{{EscapePound .FileLink}}">
{{else}}
<a href="{{EscapePound .FileLink}}" rel="nofollow" class="btn btn-gray btn-radius">{{.i18n.Tr "repo.file_view_raw"}}</a>
{{end}}
</div>
{{else if .FileSize}}
{{else if .FileSize}}
<table>
<tbody>
<tr>
<td class="lines-num"></td>
<td class="lines-code"><pre class="prettyprint linenums {{if .FileExt}}lang-{{.FileExt}}{{end}}"><code>{{.FileContent}}</code></pre></td>
</tr>
</tbody>
<tbody>
<tr>
<td class="lines-num"></td>
<td class="lines-code"><pre class="{{if .FileExt}}lang-{{.FileExt}}{{end}}"><code><ol class="linenums">{{.FileContent}}</ol></code></pre></td>
</tr>
</tbody>
</table>
{{end}}
{{end}}
</div>
</div>
</div>
</div>

121
templates/repo/view_list.tmpl

@ -1,69 +1,64 @@
<table id="repo-files-table" class="table-border table-block table-radius">
<thead>
<table id="repo-files-table" class="ui table">
<thead>
<tr>
<th colspan="5" class="clear">
<span class="author left">
{{if .LastCommitUser}}
<img class="avatar-24 radius" src="{{.LastCommitUser.AvatarLink}}" />
<a href="{{AppSubUrl}}/{{.LastCommitUser.Name}}"><strong>{{.LastCommit.Author.Name}}</strong></a>:
{{else}}
<img class="avatar-24 radius" src="{{AvatarLink .LastCommit.Author.Email}}" />
<strong>{{.LastCommit.Author.Name}}</strong>:
{{end}}
&nbsp;
</span>
<span class="last-commit"><a href="{{.RepoLink}}/commit/{{.LastCommit.ID}}" rel="nofollow">
<strong>{{ShortSha .LastCommit.ID.String}}</strong></a>
<span class="text-truncate">{{RenderCommitMessage .LastCommit.Summary .RepoLink}}</span>
</span>
<span class="age right">{{TimeSince .LastCommit.Author.When $.Lang}}</span>
</th>
<th colspan="5" class="clear">
<span>
{{if .LastCommitUser}}
<img class="ui avatar image img-12" src="{{.LastCommitUser.AvatarLink}}" />
<a href="{{AppSubUrl}}/{{.LastCommitUser.Name}}"><strong>{{.LastCommit.Author.Name}}</strong></a>:
{{else}}
<img class="ui avatar image img-12" src="{{AvatarLink .LastCommit.Author.Email}}" />
<strong>{{.LastCommit.Author.Name}}</strong>:
{{end}}
</span>
<a class="text black" href="{{.RepoLink}}/commit/{{.LastCommit.ID}}" rel="nofollow">
<strong>{{ShortSha .LastCommit.ID.String}}</strong></a>
<span class="text truncate grey" id="last-commit-message">{{RenderCommitMessage .LastCommit.Summary .RepoLink}}</span>
<span class="ui right text grey age">{{TimeSince .LastCommit.Author.When $.Lang}}</span>
</th>
</tr>
</thead>
<tbody>
{{if .HasParentPath}}
<tr class="has-parent">
<td class="icon"></td>
<td class="name"><a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td>
<th class="sha">SHA1</th>
<td class="msg"></td>
<td class="age"></td>
</tr>
{{end}}
{{range $item := .Files}}
{{$entry := index $item 0}}
{{$commit := index $item 1}}
<tr>
{{if $entry.IsSubModule}}
<td class="icon">
<span class="octicon octicon-file-submodule"></span>
</td>
<td class="name">
{{if $commit.RefUrl}}
<a href="{{$commit.RefUrl}}" class="text-truncate">{{$entry.Name}}</a> @ <a href="{{$commit.RefUrl}}/commit/{{$commit.RefId}}">{{ShortSha $commit.RefId}}</a>
{{else}}
{{$entry.Name}} @ {{ShortSha $commit.RefId}}
{{end}}
</td>
{{else}}
<td class="icon">
<span class="octicon octicon-file-{{if or $entry.IsDir}}directory{{else}}text{{end}}"></span>
</td>
<td class="name">
<a href="{{EscapePound $.BranchLink}}/{{EscapePound $.TreePath}}{{EscapePound $entry.Name}}" class="text-truncate">{{$entry.Name}}</a>
</td>
{{end}}
<td class="sha">
<a rel="nofollow" class="label label-green" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{$commit.ID}} ">{{SubStr $commit.ID.String 0 10}} </a>
</td>
<td class="message">
<span class="text-truncate">{{RenderCommitMessage $commit.Summary $.RepoLink}}</span>
</td>
<td class="age">{{TimeSince $commit.Committer.When $.Lang}}</td>
</tr>
</thead>
<tbody>
{{if .HasParentPath}}
<tr class="has-parent">
<td><span class="octicon octicon-mail-reply"></span></td>
<td><a href="{{EscapePound .BranchLink}}{{.ParentPath}}">..</a></td>
</tr>
{{end}}
{{range $item := .Files}}
{{$entry := index $item 0}}
{{$commit := index $item 1}}
<tr>
{{if $entry.IsSubModule}}
<td>
<span class="icon octicon octicon-file-submodule"></span>
</td>
<td>
{{if $commit.RefUrl}}
<a href="{{$commit.RefUrl}}" class="text truncate">{{$entry.Name}}</a> @ <a href="{{$commit.RefUrl}}/commit/{{$commit.RefId}}">{{ShortSha $commit.RefId}}</a>
{{else}}
{{$entry.Name}} @ {{ShortSha $commit.RefId}}
{{end}}
</td>
{{else}}
<td>
<span class="icon octicon octicon-file-{{if or $entry.IsDir}}directory{{else}}text{{end}}"></span>
</td>
<td class="name">
<a href="{{EscapePound $.BranchLink}}/{{EscapePound $.TreePath}}{{EscapePound $entry.Name}}" class="text truncate">{{$entry.Name}}</a>
</td>
{{end}}
</tbody>
<td class="sha">
<a rel="nofollow" class="ui green sha label" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{$commit.ID}} ">{{SubStr $commit.ID.String 0 10}} </a>
</td>
<td class="message">
<span class="text truncate">{{RenderCommitMessage $commit.Summary $.RepoLink}}</span>
</td>
<td class="text grey right age">{{TimeSince $commit.Committer.When $.Lang}}</td>
</tr>
{{end}}
</tbody>
</table>
{{if .ReadmeExist}}
{{template "repo/view_file" .}}
{{template "repo/view_file" .}}
{{end}}

Loading…
Cancel
Save