template.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="description" content="" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1" />
  7. <title>Noto Dashboard</title>
  8. <link
  9. href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
  10. rel="stylesheet"
  11. integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn"
  12. crossorigin="anonymous"
  13. />
  14. <script
  15. src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js"
  16. integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
  17. crossorigin="anonymous"
  18. ></script>
  19. <script
  20. src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
  21. integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF"
  22. crossorigin="anonymous"
  23. ></script>
  24. <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
  25. rel="stylesheet">
  26. <style>
  27. [data-toggle="collapse"] .material-icons:before {
  28. content: "\e5d6";
  29. }
  30. [data-toggle="collapse"].collapsed .material-icons:before {
  31. content: "\e5d7";
  32. }
  33. .material-icons { display:inline-block; vertical-align:middle; text-decoration: none !important;}
  34. h6 .material-icons { display:inline-flex; vertical-align: top; font-size:1.1rem; }
  35. .badge .material-icons { display:inline-flex; vertical-align: top; font-size:0.9rem; }
  36. .tooltip .tooltip-inner { text-align: left; padding:10px; }
  37. .grid-wrapper {
  38. display: grid;
  39. grid-template-columns: repeat(12, 1fr);
  40. gap: 4px;
  41. }
  42. .dropdown-menu {
  43. max-height: 80vh;
  44. overflow-y: auto;
  45. }
  46. .up-to-date-false { background: #fff0f0; }
  47. .up-to-date-true { background: #f0fff0; }
  48. html { scroll-padding-top: 60px; }
  49. body { padding-top: 4.5rem }
  50. .title { display:inline-block; position:relative; left: -20px; }
  51. .title a {font-size: 0.8em; }
  52. </style>
  53. </head>
  54. <body>
  55. <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
  56. <div class="container-fluid">
  57. <div class="order-0 mr-auto">
  58. <a class="navbar-brand" href="#"> Noto Dashboard </a>
  59. </div>
  60. <div class="collapse navbar-collapse" id="navbarNav">
  61. <ul class="navbar-nav mx-auto">
  62. <li class="nav-item active">
  63. <a class="nav-link" href="/">Dashboard</a>
  64. </li>
  65. <li class="nav-item">
  66. <a class="nav-link" href="/overview">Overview</a>
  67. </li>
  68. <li class="nav-item">
  69. <a class="nav-link" href="/analytics.html">Analytics</a>
  70. </li>
  71. </ul>
  72. <ul class="navbar-nav ml-auto">
  73. <a class="nav-link dropdown-toggle" href="#" id="servicesDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Scripts</a>
  74. <div class="dropdown-menu dropdown-menu-right" aria-labelledby="scriptsDropdown">
  75. <div class="container" style="max-width:100%">
  76. <div class="row p-1">
  77. {{#each results}}
  78. <div class="col-2 p-1"><a href="#{{@key}}" class="text-body">{{denoto title}}</a></div>
  79. {{/each}}
  80. </div>
  81. </div>
  82. </div>
  83. </ul>
  84. </div>
  85. </div>
  86. </ul>
  87. </div>
  88. </div>
  89. </nav>
  90. <main role="main" class="container">
  91. <div class="jumbotron pt-2 pb-2">
  92. <h1 class="display-4">Noto Dashboard</h1>
  93. <p class="lead">
  94. Welcome to the Noto dashboard. Noto is a collection of high-quality fonts with multiple weights and widths in sans, serif, mono, and other styles, in more than 1,000 languages and over 150 writing systems.
  95. </p>
  96. <p> At this site, you can:</p>
  97. <ul>
  98. <li>Download the latest versions of individual font files or font family releases.</li>
  99. <li>See the reported issues in Noto fonts and report new issues.</li>
  100. </ul>
  101. <p>
  102. If you are a software distributor looking to download and package the entire Noto collection, you can either git clone or download <a href="https://github.com/notofonts/notofonts.github.io">this repository</a>.
  103. </p>
  104. </div>
  105. {{#each results}}
  106. <div id="{{@key}}">
  107. <h3 class="title"><a href="#{{@key}}" class="text-secondary">#</a> {{title}}</h3>
  108. <ul>
  109. <li>
  110. <a href="{{gh_url}}">Development builds</a>
  111. <img
  112. src="https://img.shields.io/github/actions/workflow/status/notofonts/{{@key}}/build.yaml?label=%20&style=plastic"
  113. />
  114. </li>
  115. <li><a href="{{repo_url}}">Source repository</a></li>
  116. <li>
  117. <a href="{{repo_url}}/issues/new/choose"
  118. >Report an issue in this font</a
  119. >
  120. </li>
  121. </ul>
  122. <div class="accordion">
  123. {{#if issues}}
  124. <div class="card">
  125. <div class="card-header">
  126. <h5 class="mb-0">
  127. <button
  128. class="btn btn-link collapsed"
  129. data-toggle="collapse"
  130. data-target="#{{@key}} .issuescard"
  131. >
  132. <span class="material-icons"></span>
  133. Known Issues ({{issue_count}})
  134. </button>
  135. </h5>
  136. </div>
  137. <div class="collapse issuescard">
  138. <div class="card-body">
  139. <ul>
  140. {{#each issues}}
  141. <li>{{title}} (<a href="{{url}}">#{{number}}</a>)</li>
  142. {{/each}}
  143. </ul>
  144. </div>
  145. </div>
  146. </div>
  147. {{/if}}
  148. {{#if has_releases}}
  149. <div class="card">
  150. <div class="card-header">
  151. <h5 class="mb-0">
  152. <button
  153. class="btn btn-link collapsed"
  154. data-toggle="collapse"
  155. data-target="#{{@key}} .releasescard"
  156. >
  157. <span class="material-icons"></span>
  158. Releases
  159. </button>
  160. </h5>
  161. </div>
  162. <div class="collapse releasescard">
  163. <div class="card-body">
  164. {{#each families}} {{#if latest_release}}
  165. <h6>
  166. {{@key}}
  167. <a href="{{latest_release.url}}"
  168. >{{latest_release.version}}</a
  169. >
  170. {{#if third_party_versions}}
  171. <span class="ml-5 font-weight-normal">{{#each third_party_versions}}
  172. {{{icon}}} <span class="up-to-date-{{up_to_date}}">{{{version}}}</span>
  173. {{/each}}
  174. </span>
  175. {{/if}}
  176. </h6>
  177. <pre>{{latest_release.notes}}</pre>
  178. {{/if}} {{/each}}
  179. </div>
  180. </div>
  181. </div>
  182. {{else}}
  183. <div class="card">
  184. <div class="card-header">
  185. <h5 class="mb-0">
  186. <button
  187. class="btn btn-link text-decoration-none"
  188. >
  189. No Releases
  190. </button>
  191. </h5>
  192. </div>
  193. </div>
  194. {{/if}}
  195. <div class="card">
  196. <div class="card-header">
  197. <h5 class="mb-0">
  198. <button
  199. class="btn btn-link"
  200. data-toggle="collapse"
  201. data-target="#{{@key}} .fontscard"
  202. >
  203. <span class="material-icons"></span>
  204. Latest fonts
  205. </button>
  206. </h5>
  207. </div>
  208. <div class="collapse show fontscard">
  209. <div class="card-body">
  210. {{#each families}}
  211. {{#gt1 ../families_count}}
  212. <h5>{{@key}}</h5>
  213. {{/gt1}}
  214. <div class="row">
  215. <div class="col">
  216. <h6>Unhinted
  217. <i class="material-icons" data-toggle="tooltip" data-placement="right" title="Unhinted builds are smaller files without hinting information, suitable for use on high-resolution displays. These builds only cover the Unicode codepoints of the family in question.">help</i>
  218. </h6>
  219. <ul class="list-unstyled">
  220. {{#each files.unhinted}}
  221. <li class="text-nowrap">
  222. <a
  223. href="https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/{{this}}"
  224. >{{basename this}}</a
  225. > <span class="text-nowrap">({{sizeof this}})</span>
  226. {{#ifslim this}}<span class="badge badge-pill badge-info">Slim VF<i class="material-icons" data-toggle="tooltip" data-placement="right" title="Slim variable fonts contain a limited subset of the variable font's design space, covering only weights from Regular to Bold, and Regular width. They can be used where expression is required but disk space is at a premium.">help</i></span></h6> {{/ifslim}}
  227. </li>
  228. {{/each}}
  229. </ul>
  230. </div>
  231. <div class="col">
  232. <h6>Hinted
  233. <i class="material-icons" data-toggle="tooltip" data-placement="right" title="Hinted builds contain hinting information, and are suitable for use in all environments, including lower-resolution displays and print uses. These builds only cover the Unicode codepoints of the family in question.">help</i></h6>
  234. <ul class="list-unstyled">
  235. {{#each files.hinted}}
  236. <li class="text-nowrap">
  237. <a
  238. href="https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/{{this}}"
  239. >{{basename this}}</a
  240. > <span class="text-nowrap">({{sizeof this}})</span>
  241. {{#ifslim this}}<span class="badge badge-pill badge-info">Slim VF<i class="material-icons" data-toggle="tooltip" data-placement="right" title="Slim variable fonts contain a limited subset of the variable font's design space, covering only weights from Regular to Bold, and Regular width. They can be used where expression is required but disk space is at a premium.">help</i></span></h6> {{/ifslim}}
  242. </li>
  243. {{/each}}
  244. </ul>
  245. </div>
  246. <div class="col">
  247. <h6>Full
  248. <i class="material-icons" data-toggle="tooltip" data-placement="right" title="Full builds contain hinting information, and also contain basic Latin and punctuation Unicode codepoints.">help</i></h6>
  249. <ul class="list-unstyled">
  250. {{#each files.full}}
  251. <li class="text-nowrap">
  252. <a
  253. href="https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/{{this}}"
  254. >{{basename this}}</a
  255. > <span class="text-nowrap">({{sizeof this}})</span>
  256. {{#ifslim this}}<span class="badge badge-pill badge-info">Slim VF<i class="material-icons" data-toggle="tooltip" data-placement="right" title="Slim variable fonts contain a limited subset of the variable font's design space, covering only weights from Regular to Bold, and Regular width. They can be used where expression is required but disk space is at a premium.">help</i></span></h6> {{/ifslim}}
  257. </li>
  258. </li>
  259. {{/each}}
  260. </ul>
  261. </div>
  262. </div>
  263. {{/each}}
  264. </div>
  265. <!-- card-body -->
  266. </div>
  267. <!-- fontscard -->
  268. </div>
  269. <!-- card -->
  270. </div>
  271. <!-- accordion -->
  272. <hr />
  273. </div>
  274. <!-- @key -->
  275. {{/each}}
  276. </main>
  277. <footer class="navbar navbar-expand-lg navbar-dark bg-dark">
  278. <div class="container-fluid">
  279. <p class="navbar-text">Get this information as a <a href="noto.json">JSON file</a>.
  280. Report an <a href="https://github.com/notofonts/notofonts.github.io/issues/new">issue in this web page</a>. (Use <a href="/reporter.html"> this page</a> to report an issue in a font.)
  281. </p>
  282. </div>
  283. </footer>
  284. <script>
  285. $(function () {
  286. $('[data-toggle="tooltip"]').tooltip()
  287. })
  288. </script>
  289. </body>
  290. </html>