浏览代码

Merge pull request #20982 from overleaf/ae-font-folders

Organise and update web fonts

GitOrigin-RevId: f82a695bd7a4d16e4df83c2a297bf7d2393914a8
Alf Eaton 1 年之前
父节点
当前提交
fac23dbbdc
共有 77 个文件被更改,包括 848 次插入257 次删除
  1. 12 0
      services/web/frontend/fonts/README.md
  2. 0 0
      services/web/frontend/fonts/STIXTwoMath/OFL.txt
  3. 二进制
      services/web/frontend/fonts/STIXTwoMath/STIXTwoMath-Regular.woff2
  4. 4 0
      services/web/frontend/fonts/STIXTwoMath/stix-two-math.css
  5. 186 0
      services/web/frontend/fonts/build-fonts.mjs
  6. 二进制
      services/web/frontend/fonts/dm-mono/DMMono-Italic.woff2
  7. 二进制
      services/web/frontend/fonts/dm-mono/DMMono-Medium.woff2
  8. 二进制
      services/web/frontend/fonts/dm-mono/DMMono-MediumItalic.woff2
  9. 二进制
      services/web/frontend/fonts/dm-mono/DMMono-Regular.woff2
  10. 4 4
      services/web/frontend/fonts/dm-mono/dm-mono.css
  11. 二进制
      services/web/frontend/fonts/font-awesome-v470.woff
  12. 165 0
      services/web/frontend/fonts/font-awesome/LICENSE.txt
  13. 1 3
      services/web/frontend/fonts/font-awesome/font-awesome.css
  14. 0 0
      services/web/frontend/fonts/font-awesome/fontawesome-webfont.woff2
  15. 0 35
      services/web/frontend/fonts/lato.css
  16. 0 0
      services/web/frontend/fonts/lato/LatoLatin-Bold.woff2
  17. 0 0
      services/web/frontend/fonts/lato/LatoLatin-BoldItalic.woff2
  18. 0 0
      services/web/frontend/fonts/lato/LatoLatin-Italic.woff2
  19. 0 0
      services/web/frontend/fonts/lato/LatoLatin-Regular.woff2
  20. 二进制
      services/web/frontend/fonts/lato/lato-v2-latin-ext-700.woff
  21. 二进制
      services/web/frontend/fonts/lato/lato-v2-latin-ext-700italic.woff
  22. 二进制
      services/web/frontend/fonts/lato/lato-v2-latin-ext-italic.woff
  23. 二进制
      services/web/frontend/fonts/lato/lato-v2-latin-ext-regular.woff
  24. 27 0
      services/web/frontend/fonts/lato/lato.css
  25. 1 1
      services/web/frontend/fonts/material-symbols/material-symbols.css
  26. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-700.woff
  27. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-700.woff2
  28. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-700italic.woff
  29. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-700italic.woff2
  30. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-italic.woff
  31. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-italic.woff2
  32. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-regular.woff
  33. 二进制
      services/web/frontend/fonts/merriweather-v21-latin-regular.woff2
  34. 0 40
      services/web/frontend/fonts/merriweather.css
  35. 二进制
      services/web/frontend/fonts/merriweather/Merriweather-Bold.woff2
  36. 二进制
      services/web/frontend/fonts/merriweather/Merriweather-BoldItalic.woff2
  37. 二进制
      services/web/frontend/fonts/merriweather/Merriweather-Italic.woff2
  38. 二进制
      services/web/frontend/fonts/merriweather/Merriweather-Regular.woff2
  39. 93 0
      services/web/frontend/fonts/merriweather/OFL.txt
  40. 24 0
      services/web/frontend/fonts/merriweather/merriweather.css
  41. 二进制
      services/web/frontend/fonts/noto-sans/NotoSans-Italic.woff2
  42. 二进制
      services/web/frontend/fonts/noto-sans/NotoSans-Medium.woff2
  43. 二进制
      services/web/frontend/fonts/noto-sans/NotoSans-MediumItalic.woff2
  44. 二进制
      services/web/frontend/fonts/noto-sans/NotoSans-Regular.woff2
  45. 二进制
      services/web/frontend/fonts/noto-sans/NotoSans-SemiBold.woff2
  46. 二进制
      services/web/frontend/fonts/noto-sans/NotoSans-SemiBoldItalic.woff2
  47. 93 93
      services/web/frontend/fonts/noto-sans/OFL.txt
  48. 6 6
      services/web/frontend/fonts/noto-sans/noto-sans.css
  49. 二进制
      services/web/frontend/fonts/noto-serif/NotoSerif-Italic[wght].woff2
  50. 二进制
      services/web/frontend/fonts/noto-serif/NotoSerif[wght].woff2
  51. 1 1
      services/web/frontend/fonts/noto-serif/OFL.txt
  52. 2 2
      services/web/frontend/fonts/noto-serif/noto-serif.css
  53. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-300.woff
  54. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-300.woff2
  55. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-600.woff
  56. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-600.woff2
  57. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-700.woff
  58. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-700.woff2
  59. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-regular.woff
  60. 二进制
      services/web/frontend/fonts/open-sans-v17-latin-regular.woff2
  61. 0 40
      services/web/frontend/fonts/open-sans.css
  62. 88 0
      services/web/frontend/fonts/open-sans/OFL.txt
  63. 二进制
      services/web/frontend/fonts/open-sans/OpenSans-Bold.woff2
  64. 二进制
      services/web/frontend/fonts/open-sans/OpenSans-Light.woff2
  65. 二进制
      services/web/frontend/fonts/open-sans/OpenSans-Regular.woff2
  66. 二进制
      services/web/frontend/fonts/open-sans/OpenSans-SemiBold.woff2
  67. 24 0
      services/web/frontend/fonts/open-sans/open-sans.css
  68. 二进制
      services/web/frontend/fonts/source-code-pro-v13-latin-regular.woff
  69. 二进制
      services/web/frontend/fonts/source-code-pro-v13-latin-regular.woff2
  70. 0 10
      services/web/frontend/fonts/source-code-pro.css
  71. 93 0
      services/web/frontend/fonts/source-code-pro/LICENSE.md
  72. 二进制
      services/web/frontend/fonts/source-code-pro/SourceCodePro-Regular.ttf.woff2
  73. 6 0
      services/web/frontend/fonts/source-code-pro/source-code-pro.css
  74. 0 4
      services/web/frontend/fonts/stix-two-math.css
  75. 8 8
      services/web/frontend/stylesheets/bootstrap-5/main-style.scss
  76. 9 9
      services/web/frontend/stylesheets/main-style.less
  77. 1 1
      services/web/package.json

+ 12 - 0
services/web/frontend/fonts/README.md

@@ -0,0 +1,12 @@
+This directory contains fonts used by the Overleaf web application.
+
+* [DM Mono](https://github.com/googlefonts/dm-mono)
+* [Font Awesome](https://fontawesome.com/v4/)
+* [Lato](https://www.latofonts.com/)
+* [Material Symbols](https://github.com/google/material-design-icons)
+* [Merriweather](https://github.com/SorkinType/Merriweather)
+* [Noto Sans](https://notofonts.github.io/#latin-greek-cyrillic)
+* [Noto Serif](https://notofonts.github.io/#latin-greek-cyrillic)
+* [Open Sans](https://github.com/googlefonts/opensans)
+* [Source Code Pro](https://github.com/adobe-fonts/source-code-pro)
+* [STIX Two Math](https://github.com/stipub/stixfonts/)

+ 0 - 0
services/web/frontend/fonts/STIXTwoMath/LICENSE.txt → services/web/frontend/fonts/STIXTwoMath/OFL.txt


二进制
services/web/frontend/fonts/STIXTwoMath/STIXTwoMath-Regular.woff2


+ 4 - 0
services/web/frontend/fonts/STIXTwoMath/stix-two-math.css

@@ -0,0 +1,4 @@
+@font-face {
+  font-family: 'Stix Two Math';
+  src: url('STIXTwoMath-Regular.woff2') format('woff2');
+}

+ 186 - 0
services/web/frontend/fonts/build-fonts.mjs

@@ -0,0 +1,186 @@
+import fs from 'node:fs/promises'
+import { createWriteStream } from 'node:fs'
+import { basename, join } from 'node:path'
+import { tmpdir } from 'node:os'
+import { execSync } from 'node:child_process'
+import yauzl from 'yauzl'
+
+// brew install woff2
+
+const families = [
+  {
+    folder: 'dm-mono',
+    url: 'https://github.com/googlefonts/dm-mono',
+    fonts: [
+      'https://github.com/googlefonts/dm-mono/raw/refs/heads/main/exports/DMMono-Italic.ttf',
+      'https://github.com/googlefonts/dm-mono/raw/refs/heads/main/exports/DMMono-Medium.ttf',
+      'https://github.com/googlefonts/dm-mono/raw/refs/heads/main/exports/DMMono-MediumItalic.ttf',
+      'https://github.com/googlefonts/dm-mono/raw/refs/heads/main/exports/DMMono-Regular.ttf',
+    ],
+  },
+  {
+    folder: 'font-awesome',
+    url: 'https://fontawesome.com/v4/',
+    archive: 'https://fontawesome.com/v4/assets/font-awesome-4.7.0.zip',
+    fonts: ['font-awesome-4.7.0/fonts/fontawesome-webfont.woff2'],
+  },
+  {
+    folder: 'lato',
+    url: 'https://www.latofonts.com/',
+    archive: 'https://www.latofonts.com/download/lato2oflweb-zip/',
+    fonts: [
+      'Lato2OFLWeb/LatoLatin/fonts/LatoLatin-Bold.woff2',
+      'Lato2OFLWeb/LatoLatin/fonts/LatoLatin-BoldItalic.woff2',
+      'Lato2OFLWeb/LatoLatin/fonts/LatoLatin-Italic.woff2',
+      'Lato2OFLWeb/LatoLatin/fonts/LatoLatin-Regular.woff2',
+    ],
+  },
+  {
+    folder: 'merriweather',
+    url: 'https://github.com/SorkinType/Merriweather',
+    fonts: [
+      'https://github.com/SorkinType/Merriweather/raw/refs/heads/master/fonts/webfonts/Merriweather-Bold.woff2',
+      'https://github.com/SorkinType/Merriweather/raw/refs/heads/master/fonts/webfonts/Merriweather-BoldItalic.woff2',
+      'https://github.com/SorkinType/Merriweather/raw/refs/heads/master/fonts/webfonts/Merriweather-Italic.woff2',
+      'https://github.com/SorkinType/Merriweather/raw/refs/heads/master/fonts/webfonts/Merriweather-Regular.woff2',
+    ],
+    license:
+      'https://github.com/SorkinType/Merriweather/raw/refs/heads/master/OFL.txt',
+  },
+  {
+    folder: 'noto-sans',
+    url: 'https://notofonts.github.io/#latin-greek-cyrillic',
+    fonts: [
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSans/full/ttf/NotoSans-Italic.ttf',
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSans/full/ttf/NotoSans-Medium.ttf',
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSans/full/ttf/NotoSans-MediumItalic.ttf',
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSans/full/ttf/NotoSans-Regular.ttf',
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSans/full/ttf/NotoSans-SemiBold.ttf',
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSans/full/ttf/NotoSans-SemiBoldItalic.ttf',
+    ],
+    license:
+      'https://raw.githubusercontent.com/notofonts/latin-greek-cyrillic/refs/heads/main/OFL.txt',
+  },
+  {
+    folder: 'noto-serif',
+    url: 'https://notofonts.github.io/#latin-greek-cyrillic',
+    fonts: [
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSerif/unhinted/slim-variable-ttf/NotoSerif%5Bwght%5D.ttf',
+      'https://github.com/notofonts/notofonts.github.io/raw/refs/heads/main/fonts/NotoSerif/unhinted/slim-variable-ttf/NotoSerif-Italic%5Bwght%5D.ttf',
+    ],
+    license:
+      'https://raw.githubusercontent.com/notofonts/latin-greek-cyrillic/refs/heads/main/OFL.txt',
+  },
+  {
+    folder: 'open-sans',
+    url: 'https://github.com/googlefonts/opensans',
+    fonts: [
+      'https://github.com/googlefonts/opensans/raw/refs/heads/main/fonts/ttf/OpenSans-Bold.ttf',
+      'https://github.com/googlefonts/opensans/raw/refs/heads/main/fonts/ttf/OpenSans-Light.ttf',
+      'https://github.com/googlefonts/opensans/raw/refs/heads/main/fonts/ttf/OpenSans-Regular.ttf',
+      'https://github.com/googlefonts/opensans/raw/refs/heads/main/fonts/ttf/OpenSans-SemiBold.ttf',
+    ],
+    license:
+      'https://raw.githubusercontent.com/googlefonts/opensans/refs/heads/main/OFL.txt',
+  },
+  {
+    folder: 'source-code-pro',
+    url: 'https://github.com/adobe-fonts/source-code-pro',
+    fonts: [
+      'https://github.com/adobe-fonts/source-code-pro/raw/refs/heads/release/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2',
+    ],
+    license:
+      'https://raw.githubusercontent.com/adobe-fonts/source-code-pro/refs/heads/release/LICENSE.md',
+  },
+  {
+    folder: 'STIXTwoMath',
+    url: 'https://github.com/stipub/stixfonts',
+    fonts: [
+      'https://github.com/stipub/stixfonts/raw/refs/heads/master/fonts/static_otf_woff2/STIXTwoMath-Regular.woff2',
+    ],
+    license:
+      'https://raw.githubusercontent.com/stipub/stixfonts/refs/heads/master/OFL.txt',
+  },
+]
+
+const fetchFile = async (url, path) => {
+  console.log(`${url}\n${path}`)
+  const response = await fetch(url)
+  if (!response.ok) {
+    throw new Error(response.statusText)
+  }
+  await fs.writeFile(path, response.body)
+}
+
+for (const family of families) {
+  if (!family.folder) {
+    throw new Error('Missing family information')
+  }
+
+  await fs.mkdir(family.folder, { recursive: true })
+
+  const fonts = new Set(family.fonts)
+
+  if (family.archive) {
+    const dir = await fs.mkdtemp(join(tmpdir(), 'fonts-'))
+    const filename = decodeURIComponent(basename(family.archive))
+    const path = `${dir}/${filename}`
+    await fetchFile(family.archive, path)
+
+    await new Promise((resolve, reject) => {
+      yauzl.open(path, { lazyEntries: true }, (err, zipfile) => {
+        if (err) {
+          reject(err)
+        } else {
+          zipfile.on('entry', entry => {
+            if (fonts.has(entry.fileName)) {
+              console.log(entry.fileName)
+              zipfile.openReadStream(entry, (err, readStream) => {
+                if (err) {
+                  reject(err)
+                } else {
+                  const path = `${family.folder}/${basename(entry.fileName)}`
+                  const output = createWriteStream(path)
+                  readStream.on('end', async () => {
+                    output.close()
+                    if (path.endsWith('.ttf')) {
+                      execSync(`woff2_compress "${path}"`)
+                      await fs.unlink(path)
+                    }
+                    zipfile.readEntry()
+                  })
+                  readStream.pipe(output)
+                }
+              })
+            } else {
+              zipfile.readEntry()
+            }
+          })
+          zipfile.on('error', reject)
+          zipfile.on('end', resolve)
+          zipfile.readEntry()
+        }
+      })
+    })
+
+    await fs.unlink(path)
+  } else {
+    for (const url of fonts) {
+      const filename = decodeURIComponent(basename(url))
+      const path = `${family.folder}/${filename}`
+      await fetchFile(url, path)
+
+      if (path.endsWith('.ttf')) {
+        execSync(`woff2_compress "${path}"`)
+        await fs.unlink(path)
+      }
+    }
+  }
+
+  if (family.license) {
+    const url = family.license
+    const filename = decodeURIComponent(basename(url))
+    const path = `${family.folder}/${filename}`
+    await fetchFile(url, path)
+  }
+}

二进制
services/web/frontend/fonts/dm-mono/DMMono-Italic.woff2


二进制
services/web/frontend/fonts/dm-mono/DMMono-Medium.woff2


二进制
services/web/frontend/fonts/dm-mono/DMMono-MediumItalic.woff2


二进制
services/web/frontend/fonts/dm-mono/DMMono-Regular.woff2


+ 4 - 4
services/web/frontend/fonts/dm-mono.css → services/web/frontend/fonts/dm-mono/dm-mono.css

@@ -3,7 +3,7 @@
   font-style: normal;
   font-weight: 400;
   font-display: fallback;
-  src: url('dm-mono/DMMono-Regular.woff2') format('woff2');
+  src: url('DMMono-Regular.woff2') format('woff2');
 }
 
 @font-face {
@@ -11,7 +11,7 @@
   font-style: italic;
   font-weight: 400;
   font-display: fallback;
-  src: url('dm-mono/DMMono-Italic.woff2') format('woff2');
+  src: url('DMMono-Italic.woff2') format('woff2');
 }
 
 @font-face {
@@ -19,7 +19,7 @@
   font-style: normal;
   font-weight: 500;
   font-display: fallback;
-  src: url('dm-mono/DMMono-Medium.woff2') format('woff2');
+  src: url('DMMono-Medium.woff2') format('woff2');
 }
 
 @font-face {
@@ -27,5 +27,5 @@
   font-style: italic;
   font-weight: 500;
   font-display: fallback;
-  src: url('dm-mono/DMMono-MediumItalic.woff2') format('woff2');
+  src: url('DMMono-MediumItalic.woff2') format('woff2');
 }

二进制
services/web/frontend/fonts/font-awesome-v470.woff


+ 165 - 0
services/web/frontend/fonts/font-awesome/LICENSE.txt

@@ -0,0 +1,165 @@
+Fonticons, Inc. (https://fontawesome.com)
+
+--------------------------------------------------------------------------------
+
+Font Awesome Free License
+
+Font Awesome Free is free, open source, and GPL friendly. You can use it for
+commercial projects, open source projects, or really almost whatever you want.
+Full Font Awesome Free license: https://fontawesome.com/license/free.
+
+--------------------------------------------------------------------------------
+
+# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
+
+The Font Awesome Free download is licensed under a Creative Commons
+Attribution 4.0 International License and applies to all icons packaged
+as SVG and JS file types.
+
+--------------------------------------------------------------------------------
+
+# Fonts: SIL OFL 1.1 License
+
+In the Font Awesome Free download, the SIL OFL license applies to all icons
+packaged as web and desktop font files.
+
+Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
+with Reserved Font Name: "Font Awesome".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+SIL OPEN FONT LICENSE
+Version 1.1 - 26 February 2007
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting — in part or in whole — any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+--------------------------------------------------------------------------------
+
+# Code: MIT License (https://opensource.org/licenses/MIT)
+
+In the Font Awesome Free download, the MIT license applies to all non-font and
+non-icon files.
+
+Copyright 2024 Fonticons, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in the
+Software without restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--------------------------------------------------------------------------------
+
+# Attribution
+
+Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
+Awesome Free files already contain embedded comments with sufficient
+attribution, so you shouldn't need to do anything additional when using these
+files normally.
+
+We've kept attribution comments terse, so we ask that you do not actively work
+to remove them from files, especially code. They're a great way for folks to
+learn about Font Awesome.
+
+--------------------------------------------------------------------------------
+
+# Brand Icons
+
+All brand icons are trademarks of their respective owners. The use of these
+trademarks does not indicate endorsement of the trademark holder by Font
+Awesome, nor vice versa. **Please do not use brand logos for any purpose except
+to represent the company, product, or service to which they refer.**

+ 1 - 3
services/web/frontend/fonts/font-awesome.css → services/web/frontend/fonts/font-awesome/font-awesome.css

@@ -4,9 +4,7 @@
  */
 @font-face {
   font-family: 'FontAwesome';
-  src:
-    url('font-awesome-v470.woff2') format('woff2'),
-    url('font-awesome-v470.woff') format('woff');
+  src: url('fontawesome-webfont.woff2') format('woff2');
   font-weight: normal;
   font-style: normal;
 }

+ 0 - 0
services/web/frontend/fonts/font-awesome-v470.woff2 → services/web/frontend/fonts/font-awesome/fontawesome-webfont.woff2


+ 0 - 35
services/web/frontend/fonts/lato.css

@@ -1,35 +0,0 @@
-@font-face {
-  font-family: 'Lato';
-  font-style: normal;
-  font-weight: 400;
-  src:
-    url('lato/lato-v2-latin-ext-regular.woff2') format('woff2'),
-    url('lato/lato-v2-latin-ext-regular.woff') format('woff');
-}
-
-@font-face {
-  font-family: 'Lato';
-  font-style: italic;
-  font-weight: 400;
-  src:
-    url('lato/lato-v2-latin-ext-italic.woff2') format('woff2'),
-    url('lato/lato-v2-latin-ext-italic.woff') format('woff');
-}
-
-@font-face {
-  font-family: 'Lato';
-  font-style: normal;
-  font-weight: 700;
-  src:
-    url('lato/lato-v2-latin-ext-700.woff2') format('woff2'),
-    url('lato/lato-v2-latin-ext-700.woff') format('woff');
-}
-
-@font-face {
-  font-family: 'Lato';
-  font-style: italic;
-  font-weight: 700;
-  src:
-    url('lato/lato-v2-latin-ext-700italic.woff2') format('woff2'),
-    url('lato/lato-v2-latin-ext-700italic.woff') format('woff');
-}

+ 0 - 0
services/web/frontend/fonts/lato/lato-v2-latin-ext-700.woff2 → services/web/frontend/fonts/lato/LatoLatin-Bold.woff2


+ 0 - 0
services/web/frontend/fonts/lato/lato-v2-latin-ext-700italic.woff2 → services/web/frontend/fonts/lato/LatoLatin-BoldItalic.woff2


+ 0 - 0
services/web/frontend/fonts/lato/lato-v2-latin-ext-italic.woff2 → services/web/frontend/fonts/lato/LatoLatin-Italic.woff2


+ 0 - 0
services/web/frontend/fonts/lato/lato-v2-latin-ext-regular.woff2 → services/web/frontend/fonts/lato/LatoLatin-Regular.woff2


二进制
services/web/frontend/fonts/lato/lato-v2-latin-ext-700.woff


二进制
services/web/frontend/fonts/lato/lato-v2-latin-ext-700italic.woff


二进制
services/web/frontend/fonts/lato/lato-v2-latin-ext-italic.woff


二进制
services/web/frontend/fonts/lato/lato-v2-latin-ext-regular.woff


+ 27 - 0
services/web/frontend/fonts/lato/lato.css

@@ -0,0 +1,27 @@
+@font-face {
+  font-family: 'Lato';
+  font-style: normal;
+  font-weight: 400;
+  src: url('LatoLatin-Regular.woff2') format('woff2');
+}
+
+@font-face {
+  font-family: 'Lato';
+  font-style: italic;
+  font-weight: 400;
+  src: url('LatoLatin-Italic.woff2') format('woff2');
+}
+
+@font-face {
+  font-family: 'Lato';
+  font-style: normal;
+  font-weight: 700;
+  src: url('LatoLatin-Bold.woff2') format('woff2');
+}
+
+@font-face {
+  font-family: 'Lato';
+  font-style: italic;
+  font-weight: 700;
+  src: url('LatoLatin-BoldItalic.woff2') format('woff2');
+}

+ 1 - 1
services/web/frontend/fonts/material-symbols.css → services/web/frontend/fonts/material-symbols/material-symbols.css

@@ -7,7 +7,7 @@
     Generated from MaterialSymbolsRounded[FILL,GRAD,opsz,wght].woff2 with specific values:
    'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 20
   */
-  src: url('material-symbols/MaterialSymbolsRoundedSlice.woff2') format('woff2');
+  src: url('MaterialSymbolsRoundedSlice.woff2') format('woff2');
 }
 
 .material-symbols {

二进制
services/web/frontend/fonts/merriweather-v21-latin-700.woff


二进制
services/web/frontend/fonts/merriweather-v21-latin-700.woff2


二进制
services/web/frontend/fonts/merriweather-v21-latin-700italic.woff


二进制
services/web/frontend/fonts/merriweather-v21-latin-700italic.woff2


二进制
services/web/frontend/fonts/merriweather-v21-latin-italic.woff


二进制
services/web/frontend/fonts/merriweather-v21-latin-italic.woff2


二进制
services/web/frontend/fonts/merriweather-v21-latin-regular.woff


二进制
services/web/frontend/fonts/merriweather-v21-latin-regular.woff2


+ 0 - 40
services/web/frontend/fonts/merriweather.css

@@ -1,40 +0,0 @@
-@font-face {
-  font-family: 'Merriweather';
-  font-style: normal;
-  font-weight: 400;
-  src:
-    local('Merriweather Regular'),
-    local('Merriweather-Regular'),
-    url('merriweather-v21-latin-regular.woff2') format('woff2'),
-    url('merriweather-v21-latin-regular.woff') format('woff');
-}
-@font-face {
-  font-family: 'Merriweather';
-  font-style: italic;
-  font-weight: 400;
-  src:
-    local('Merriweather Italic'),
-    local('Merriweather-Italic'),
-    url('merriweather-v21-latin-italic.woff2') format('woff2'),
-    url('merriweather-v21-latin-italic.woff') format('woff');
-}
-@font-face {
-  font-family: 'Merriweather';
-  font-style: normal;
-  font-weight: 700;
-  src:
-    local('Merriweather Bold'),
-    local('Merriweather-Bold'),
-    url('merriweather-v21-latin-700.woff2') format('woff2'),
-    url('merriweather-v21-latin-700.woff') format('woff');
-}
-@font-face {
-  font-family: 'Merriweather';
-  font-style: italic;
-  font-weight: 700;
-  src:
-    local('Merriweather Bold Italic'),
-    local('Merriweather-BoldItalic'),
-    url('merriweather-v21-latin-700italic.woff2') format('woff2'),
-    url('merriweather-v21-latin-700italic.woff') format('woff');
-}

二进制
services/web/frontend/fonts/merriweather/Merriweather-Bold.woff2


二进制
services/web/frontend/fonts/merriweather/Merriweather-BoldItalic.woff2


二进制
services/web/frontend/fonts/merriweather/Merriweather-Italic.woff2


二进制
services/web/frontend/fonts/merriweather/Merriweather-Regular.woff2


+ 93 - 0
services/web/frontend/fonts/merriweather/OFL.txt

@@ -0,0 +1,93 @@
+Copyright 2016 The Merriweather Project Authors (https://github.com/EbenSorkin/Merriweather), with Reserved Font Name "Merriweather".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

+ 24 - 0
services/web/frontend/fonts/merriweather/merriweather.css

@@ -0,0 +1,24 @@
+@font-face {
+  font-family: 'Merriweather';
+  font-style: normal;
+  font-weight: 400;
+  src: url('Merriweather-Regular.woff2') format('woff2');
+}
+@font-face {
+  font-family: 'Merriweather';
+  font-style: italic;
+  font-weight: 400;
+  src: url('Merriweather-Italic.woff2') format('woff2');
+}
+@font-face {
+  font-family: 'Merriweather';
+  font-style: normal;
+  font-weight: 700;
+  src: url('Merriweather-Bold.woff2') format('woff2');
+}
+@font-face {
+  font-family: 'Merriweather';
+  font-style: italic;
+  font-weight: 700;
+  src: url('Merriweather-BoldItalic.woff2') format('woff2');
+}

二进制
services/web/frontend/fonts/noto-sans/NotoSans-Italic.woff2


二进制
services/web/frontend/fonts/noto-sans/NotoSans-Medium.woff2


二进制
services/web/frontend/fonts/noto-sans/NotoSans-MediumItalic.woff2


二进制
services/web/frontend/fonts/noto-sans/NotoSans-Regular.woff2


二进制
services/web/frontend/fonts/noto-sans/NotoSans-SemiBold.woff2


二进制
services/web/frontend/fonts/noto-sans/NotoSans-SemiBoldItalic.woff2


+ 93 - 93
services/web/frontend/fonts/noto-sans/OFL.txt

@@ -1,93 +1,93 @@
-Copyright 2015-2021 Google LLC. All Rights Reserved.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
+Copyright 2022 The Noto Project Authors (https://github.com/notofonts/latin-greek-cyrillic)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+https://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

+ 6 - 6
services/web/frontend/fonts/noto-sans.css → services/web/frontend/fonts/noto-sans/noto-sans.css

@@ -4,7 +4,7 @@
   font-style: normal;
   font-weight: 400;
   font-display: fallback;
-  src: url('noto-sans/NotoSans-Regular.woff2') format('woff2');
+  src: url('NotoSans-Regular.woff2') format('woff2');
 }
 
 @font-face {
@@ -12,7 +12,7 @@
   font-style: italic;
   font-weight: 400;
   font-display: fallback;
-  src: url('noto-sans/NotoSans-Italic.woff2') format('woff2');
+  src: url('NotoSans-Italic.woff2') format('woff2');
 }
 
 /* Noto Sans - Medium */
@@ -21,7 +21,7 @@
   font-style: normal;
   font-weight: 500;
   font-display: fallback;
-  src: url('noto-sans/NotoSans-Medium.woff2') format('woff2');
+  src: url('NotoSans-Medium.woff2') format('woff2');
 }
 
 @font-face {
@@ -29,7 +29,7 @@
   font-style: italic;
   font-weight: 500;
   font-display: fallback;
-  src: url('noto-sans/NotoSans-MediumItalic.woff2') format('woff2');
+  src: url('NotoSans-MediumItalic.woff2') format('woff2');
 }
 
 /* Noto Sans - SemiBold */
@@ -38,7 +38,7 @@
   font-style: normal;
   font-weight: 600;
   font-display: fallback;
-  src: url('noto-sans/NotoSans-SemiBold.woff2') format('woff2');
+  src: url('NotoSans-SemiBold.woff2') format('woff2');
 }
 
 @font-face {
@@ -46,5 +46,5 @@
   font-style: italic;
   font-weight: 600;
   font-display: fallback;
-  src: url('noto-sans/NotoSans-SemiBoldItalic.woff2') format('woff2');
+  src: url('NotoSans-SemiBoldItalic.woff2') format('woff2');
 }

二进制
services/web/frontend/fonts/noto-serif/NotoSerif-Italic[wght].woff2


二进制
services/web/frontend/fonts/noto-serif/NotoSerif[wght].woff2


+ 1 - 1
services/web/frontend/fonts/noto-serif/OFL.txt

@@ -18,7 +18,7 @@ with others.
 
 The OFL allows the licensed fonts to be used, studied, modified and
 redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
+fonts, including any derivative works, can be bundled, embedded, 
 redistributed and/or sold with any software provided that any reserved
 names are not used by derivative works. The fonts and derivatives,
 however, cannot be released under any other type of license. The

+ 2 - 2
services/web/frontend/fonts/noto-serif.css → services/web/frontend/fonts/noto-serif/noto-serif.css

@@ -3,7 +3,7 @@
   font-style: normal;
   font-weight: 200 700;
   font-stretch: 62.5% 100%;
-  src: url('noto-serif/NotoSerif[wght].woff2') format('woff2');
+  src: url('NotoSerif[wght].woff2') format('woff2');
 }
 
 @font-face {
@@ -11,5 +11,5 @@
   font-style: italic;
   font-weight: 200 700;
   font-stretch: 62.5% 100%;
-  src: url('noto-serif/NotoSerif-Italic[wght].woff2') format('woff2');
+  src: url('NotoSerif-Italic[wght].woff2') format('woff2');
 }

二进制
services/web/frontend/fonts/open-sans-v17-latin-300.woff


二进制
services/web/frontend/fonts/open-sans-v17-latin-300.woff2


二进制
services/web/frontend/fonts/open-sans-v17-latin-600.woff


二进制
services/web/frontend/fonts/open-sans-v17-latin-600.woff2


二进制
services/web/frontend/fonts/open-sans-v17-latin-700.woff


二进制
services/web/frontend/fonts/open-sans-v17-latin-700.woff2


二进制
services/web/frontend/fonts/open-sans-v17-latin-regular.woff


二进制
services/web/frontend/fonts/open-sans-v17-latin-regular.woff2


+ 0 - 40
services/web/frontend/fonts/open-sans.css

@@ -1,40 +0,0 @@
-@font-face {
-  font-family: 'Open Sans';
-  font-style: normal;
-  font-weight: 300;
-  src:
-    local('Open Sans Light'),
-    local('OpenSans-Light'),
-    url('open-sans-v17-latin-300.woff2') format('woff2'),
-    url('open-sans-v17-latin-300.woff') format('woff');
-}
-@font-face {
-  font-family: 'Open Sans';
-  font-style: normal;
-  font-weight: 400;
-  src:
-    local('Open Sans Regular'),
-    local('OpenSans-Regular'),
-    url('open-sans-v17-latin-regular.woff2') format('woff2'),
-    url('open-sans-v17-latin-regular.woff') format('woff');
-}
-@font-face {
-  font-family: 'Open Sans';
-  font-style: normal;
-  font-weight: 600;
-  src:
-    local('Open Sans SemiBold'),
-    local('OpenSans-SemiBold'),
-    url('open-sans-v17-latin-600.woff2') format('woff2'),
-    url('open-sans-v17-latin-600.woff') format('woff');
-}
-@font-face {
-  font-family: 'Open Sans';
-  font-style: normal;
-  font-weight: 700;
-  src:
-    local('Open Sans Bold'),
-    local('OpenSans-Bold'),
-    url('open-sans-v17-latin-700.woff2') format('woff2'),
-    url('open-sans-v17-latin-700.woff') format('woff');
-}

+ 88 - 0
services/web/frontend/fonts/open-sans/OFL.txt

@@ -0,0 +1,88 @@
+Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font
+creation efforts of academic and linguistic communities, and to
+provide a free and open framework in which fonts may be shared and
+improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply to
+any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software
+components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to,
+deleting, or substituting -- in part or in whole -- any of the
+components of the Original Version, by changing formats or by porting
+the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed,
+modify, redistribute, and sell modified and unmodified copies of the
+Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in
+Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the
+corresponding Copyright Holder. This restriction only applies to the
+primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created using
+the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

二进制
services/web/frontend/fonts/open-sans/OpenSans-Bold.woff2


二进制
services/web/frontend/fonts/open-sans/OpenSans-Light.woff2


二进制
services/web/frontend/fonts/open-sans/OpenSans-Regular.woff2


二进制
services/web/frontend/fonts/open-sans/OpenSans-SemiBold.woff2


+ 24 - 0
services/web/frontend/fonts/open-sans/open-sans.css

@@ -0,0 +1,24 @@
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 300;
+  src: url('OpenSans-Light.woff2') format('woff2');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: url('OpenSans-Regular.woff2') format('woff2');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 600;
+  src: url('OpenSans-SemiBold.woff2') format('woff2');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 700;
+  src: url('OpenSans-Bold.woff2') format('woff2');
+}

二进制
services/web/frontend/fonts/source-code-pro-v13-latin-regular.woff


二进制
services/web/frontend/fonts/source-code-pro-v13-latin-regular.woff2


+ 0 - 10
services/web/frontend/fonts/source-code-pro.css

@@ -1,10 +0,0 @@
-@font-face {
-  font-family: 'Source Code Pro';
-  font-style: normal;
-  font-weight: 400;
-  src:
-    local('Source Code Pro Regular'),
-    local('SourceCodePro-Regular'),
-    url('source-code-pro-v13-latin-regular.woff2') format('woff2'),
-    url('source-code-pro-v13-latin-regular.woff') format('woff');
-}

+ 93 - 0
services/web/frontend/fonts/source-code-pro/LICENSE.md

@@ -0,0 +1,93 @@
+© 2023 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

二进制
services/web/frontend/fonts/source-code-pro/SourceCodePro-Regular.ttf.woff2


+ 6 - 0
services/web/frontend/fonts/source-code-pro/source-code-pro.css

@@ -0,0 +1,6 @@
+@font-face {
+  font-family: 'Source Code Pro';
+  font-style: normal;
+  font-weight: 400;
+  src: url('SourceCodePro-Regular.ttf.woff2') format('woff2');
+}

+ 0 - 4
services/web/frontend/fonts/stix-two-math.css

@@ -1,4 +0,0 @@
-@font-face {
-  font-family: 'Stix Two Math';
-  src: url('./STIXTwoMath/STIXTwoMath-Regular.woff2') format('woff2');
-}

+ 8 - 8
services/web/frontend/stylesheets/bootstrap-5/main-style.scss

@@ -1,12 +1,12 @@
 // Web fonts
-@import '../../fonts/noto-sans';
-@import '../../fonts/dm-mono';
-@import '../../fonts/merriweather';
-@import '../../fonts/source-code-pro';
-@import '../../fonts/stix-two-math';
-@import '../../fonts/noto-serif';
-@import '../../fonts/material-symbols';
-@import '../../fonts/font-awesome';
+@import '../../fonts/noto-sans/noto-sans.css';
+@import '../../fonts/dm-mono/dm-mono.css';
+@import '../../fonts/merriweather/merriweather.css';
+@import '../../fonts/source-code-pro/source-code-pro.css';
+@import '../../fonts/STIXTwoMath/stix-two-math.css';
+@import '../../fonts/noto-serif/noto-serif.css';
+@import '../../fonts/material-symbols/material-symbols.css';
+@import '../../fonts/font-awesome/font-awesome.css';
 
 // Vendor CSS
 // TODO Bootstrap 5: Check whether this works with Bootstrap 5, and whether we can replace it

+ 9 - 9
services/web/frontend/stylesheets/main-style.less

@@ -1,11 +1,11 @@
-@import (less) '../fonts/lato.css';
-@import (less) '../fonts/dm-mono.css';
-@import (less) '../fonts/noto-sans.css';
-@import (less) '../fonts/merriweather.css';
-@import (less) '../fonts/source-code-pro.css';
-@import (less) '../fonts/stix-two-math.css';
-@import (less) '../fonts/noto-serif.css';
-@import (less) '../fonts/material-symbols.css';
+@import (less) '../fonts/lato/lato.css';
+@import (less) '../fonts/dm-mono/dm-mono.css';
+@import (less) '../fonts/noto-sans/noto-sans.css';
+@import (less) '../fonts/merriweather/merriweather.css';
+@import (less) '../fonts/source-code-pro/source-code-pro.css';
+@import (less) '../fonts/STIXTwoMath/stix-two-math.css';
+@import (less) '../fonts/noto-serif/noto-serif.css';
+@import (less) '../fonts/material-symbols/material-symbols.css';
 
 @is-overleaf-light: false;
 
@@ -13,7 +13,7 @@
 @import 'variables/all.less';
 @import 'variables/css-variables.less';
 @import 'app/ol-style-guide.less';
-@import (less) '../fonts/font-awesome.css';
+@import (less) '../fonts/font-awesome/font-awesome.css';
 
 @import 'core/mixins.less';
 

+ 1 - 1
services/web/package.json

@@ -65,7 +65,7 @@
     "local:test": "npm run local:test:unit && npm run local:test:frontend && npm run local:test:acceptance"
   },
   "browserslist": [
-    "defaults",
+    "defaults and supports woff2",
     "last 1 year",
     "safari > 13"
   ],