retypeset-odyssey 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +168 -0
  3. package/astro.config.ts +18 -0
  4. package/default-config.yaml +136 -0
  5. package/discover-collections.ts +160 -0
  6. package/integration.ts +394 -0
  7. package/package.json +105 -0
  8. package/patches/@qwik.dev__partytown@0.11.2.patch +98 -0
  9. package/public/_redirects +819 -0
  10. package/public/feeds/atom-style.xsl +105 -0
  11. package/public/feeds/rss-style.xsl +105 -0
  12. package/public/fonts/EarlySummer-VF-Split/00785494587e3487ac63a0e7e4fa30f0.woff2 +0 -0
  13. package/public/fonts/EarlySummer-VF-Split/08e5d941a4c76fad7b68e7a937ebb21f.woff2 +0 -0
  14. package/public/fonts/EarlySummer-VF-Split/1268e5072156188d601f1eeb4473655d.woff2 +0 -0
  15. package/public/fonts/EarlySummer-VF-Split/12a385475353c815d7a5add53ee51e37.woff2 +0 -0
  16. package/public/fonts/EarlySummer-VF-Split/12b11ca08223c65a21fc731d59dcfc11.woff2 +0 -0
  17. package/public/fonts/EarlySummer-VF-Split/16d6676d3cb645c520ee6df8a1f89afd.woff2 +0 -0
  18. package/public/fonts/EarlySummer-VF-Split/2912a75ffef95e7a5ae9e2b2311ad61d.woff2 +0 -0
  19. package/public/fonts/EarlySummer-VF-Split/298d96ea561e419a4104bc9fc18499ce.woff2 +0 -0
  20. package/public/fonts/EarlySummer-VF-Split/2a2c71acc17ec39f6780835899e53096.woff2 +0 -0
  21. package/public/fonts/EarlySummer-VF-Split/2a7e2d0e59d3f638074c50fab39fdef1.woff2 +0 -0
  22. package/public/fonts/EarlySummer-VF-Split/36931fc4370e1670ed76af5d3feccba2.woff2 +0 -0
  23. package/public/fonts/EarlySummer-VF-Split/3a68fdc792e4a9e0399a04e32d0cc2e3.woff2 +0 -0
  24. package/public/fonts/EarlySummer-VF-Split/4054d6a4d6b37719b51e0f71da6e7cd9.woff2 +0 -0
  25. package/public/fonts/EarlySummer-VF-Split/429cb25f825c3cbde6bfac5b36ae9675.woff2 +0 -0
  26. package/public/fonts/EarlySummer-VF-Split/42a9efc11298368ecdc1b85ab46f0b4f.woff2 +0 -0
  27. package/public/fonts/EarlySummer-VF-Split/432018d2bdc9df92a7662056eb2b1261.woff2 +0 -0
  28. package/public/fonts/EarlySummer-VF-Split/44a6fb782f2a01560faa0f95248b60ef.woff2 +0 -0
  29. package/public/fonts/EarlySummer-VF-Split/45367b060e8ba0aa2507e6b91b86620b.woff2 +0 -0
  30. package/public/fonts/EarlySummer-VF-Split/571db7564bda7c1a93542881b8976f4b.woff2 +0 -0
  31. package/public/fonts/EarlySummer-VF-Split/58d55eeef4cf455e86a1142b1f3110d3.woff2 +0 -0
  32. package/public/fonts/EarlySummer-VF-Split/59ea41e77309160a0f63cdc76a010202.woff2 +0 -0
  33. package/public/fonts/EarlySummer-VF-Split/5d19d9174e568db4755981aa2e4ab380.woff2 +0 -0
  34. package/public/fonts/EarlySummer-VF-Split/5e811eb3b4175ee93d7ec000bf4631c2.woff2 +0 -0
  35. package/public/fonts/EarlySummer-VF-Split/6268e0cd5d66d6fe05b331f259e7b9e4.woff2 +0 -0
  36. package/public/fonts/EarlySummer-VF-Split/6549844aa3d833ca06a68a8e839db465.woff2 +0 -0
  37. package/public/fonts/EarlySummer-VF-Split/714b459658a7321ceeb1e1386ce165c2.woff2 +0 -0
  38. package/public/fonts/EarlySummer-VF-Split/7511d97a469915013683eae06cb21cd9.woff2 +0 -0
  39. package/public/fonts/EarlySummer-VF-Split/7784b4ebe543d13f62f6f6e05beb0b2e.woff2 +0 -0
  40. package/public/fonts/EarlySummer-VF-Split/77c9bea70b3c6ab24e1497d5468c825b.woff2 +0 -0
  41. package/public/fonts/EarlySummer-VF-Split/789ebea9e81df623e930b86de98fbfab.woff2 +0 -0
  42. package/public/fonts/EarlySummer-VF-Split/885bb7ab0717e8a47fc17f953adcdbf1.woff2 +0 -0
  43. package/public/fonts/EarlySummer-VF-Split/896c58aff69a9a857764cee0663bc56d.woff2 +0 -0
  44. package/public/fonts/EarlySummer-VF-Split/8fb6fc01c59d1e3ad1910b58dec7f5e7.woff2 +0 -0
  45. package/public/fonts/EarlySummer-VF-Split/95be5462b91b9a0458797cdc89d94cb5.woff2 +0 -0
  46. package/public/fonts/EarlySummer-VF-Split/9a5b2724f983ca0fc0d5ff8d10c41396.woff2 +0 -0
  47. package/public/fonts/EarlySummer-VF-Split/9ffe17f9c0e4cc4356cb3f08ffdb9c6d.woff2 +0 -0
  48. package/public/fonts/EarlySummer-VF-Split/EarlySummer-VF-Subset.woff2 +0 -0
  49. package/public/fonts/EarlySummer-VF-Split/EarlySummerSerif License.txt +91 -0
  50. package/public/fonts/EarlySummer-VF-Split/a097ef49be62cd2565aca45600e1e3ac.woff2 +0 -0
  51. package/public/fonts/EarlySummer-VF-Split/a17a1ae6063088e5b3a48c06b816929a.woff2 +0 -0
  52. package/public/fonts/EarlySummer-VF-Split/a83fdcfc5ecf2f6996704b0c02758689.woff2 +0 -0
  53. package/public/fonts/EarlySummer-VF-Split/a8cf15ff9b71e59407d8406866ff6f99.woff2 +0 -0
  54. package/public/fonts/EarlySummer-VF-Split/af530ed51dd519e4456f8a5e259e908b.woff2 +0 -0
  55. package/public/fonts/EarlySummer-VF-Split/b195a8924915deec4aa9c3ec777cc93f.woff2 +0 -0
  56. package/public/fonts/EarlySummer-VF-Split/b4b6bb5df9239dd67b52ca858fd2a506.woff2 +0 -0
  57. package/public/fonts/EarlySummer-VF-Split/b7592e1e027923f19e0e55dfdac69668.woff2 +0 -0
  58. package/public/fonts/EarlySummer-VF-Split/b965859f69d8ccceaf0e2d6292afbcfb.woff2 +0 -0
  59. package/public/fonts/EarlySummer-VF-Split/bbe9333f1ff242bd96ecb23ff9e723b1.woff2 +0 -0
  60. package/public/fonts/EarlySummer-VF-Split/be758580e295339ea98f0240b9869f24.woff2 +0 -0
  61. package/public/fonts/EarlySummer-VF-Split/c07099e1d025617f6d40966986e1941b.woff2 +0 -0
  62. package/public/fonts/EarlySummer-VF-Split/c1b593dda62fdeb7dde3af02016da282.woff2 +0 -0
  63. package/public/fonts/EarlySummer-VF-Split/c89f0335910a68a0958f2846108370e8.woff2 +0 -0
  64. package/public/fonts/EarlySummer-VF-Split/ca49aa409fdedd3f2f894cd20a16640a.woff2 +0 -0
  65. package/public/fonts/EarlySummer-VF-Split/ccd4a28d2f63797e0183c87792e20b75.woff2 +0 -0
  66. package/public/fonts/EarlySummer-VF-Split/d2718da923fce8e7ea229d65e306e92c.woff2 +0 -0
  67. package/public/fonts/EarlySummer-VF-Split/d893e9b307d96041e9cfcbd03761b9f4.woff2 +0 -0
  68. package/public/fonts/EarlySummer-VF-Split/dafaedaee41b75e21479d4ff324b6a34.woff2 +0 -0
  69. package/public/fonts/EarlySummer-VF-Split/db392af65f1867e5fd580eed2195df99.woff2 +0 -0
  70. package/public/fonts/EarlySummer-VF-Split/dc7c73a9e5577143ccd11e05ab55cb39.woff2 +0 -0
  71. package/public/fonts/EarlySummer-VF-Split/de396881189f747eba67685298363242.woff2 +0 -0
  72. package/public/fonts/EarlySummer-VF-Split/df625b213228bba22a7733d4eff8f148.woff2 +0 -0
  73. package/public/fonts/EarlySummer-VF-Split/e6e60b384f220b893ef31a926ece829a.woff2 +0 -0
  74. package/public/fonts/EarlySummer-VF-Split/e6e8ce2c5972ab665630bb705383d0fb.woff2 +0 -0
  75. package/public/fonts/EarlySummer-VF-Split/e963c7ed7104c2d6d68fcb5f952fe2f5.woff2 +0 -0
  76. package/public/fonts/EarlySummer-VF-Split/e966b23b4cd7783f43e31032d41784f4.woff2 +0 -0
  77. package/public/fonts/EarlySummer-VF-Split/edaac57c3856ec13128f4c6c3e00975c.woff2 +0 -0
  78. package/public/fonts/EarlySummer-VF-Split/ee54e0d86edf068c6c9cbddb76a856fe.woff2 +0 -0
  79. package/public/fonts/EarlySummer-VF-Split/f612c78a5544ff2dd3e8296ac3e58344.woff2 +0 -0
  80. package/public/fonts/EarlySummer-VF-Split/f9e539bd9b7bf999c3da82f5403ec3b6.woff2 +0 -0
  81. package/public/fonts/EarlySummer-VF-Split/fa5863b923ac15993c52a619f699ee63.woff2 +0 -0
  82. package/public/fonts/EarlySummer-VF-Split/fc759e56ec6f6e6d3d4cb163d62fb557.woff2 +0 -0
  83. package/public/fonts/Font Subset List/CJK Common Characters.txt +7534 -0
  84. package/public/fonts/Font Subset List/EarlySummer Subset.txt +3 -0
  85. package/public/fonts/Font Subset List/Japanese Kana + Korean Letters.txt +6123 -0
  86. package/public/fonts/Font Subset List/Latin + Cyrillic + Greek + Arabic Glyphs.txt +121 -0
  87. package/public/fonts/Font Subset List/unicode_range.py +49 -0
  88. package/public/fonts/NotoSansSC-Bold.otf +0 -0
  89. package/public/fonts/NotoSansSC-Regular.otf +0 -0
  90. package/public/fonts/STIX-Italic-VF.woff2 +0 -0
  91. package/public/fonts/STIX-VF.woff2 +0 -0
  92. package/public/fonts/Snell-Black-SF.woff2 +0 -0
  93. package/public/fonts/Snell-Bold-SF.woff2 +0 -0
  94. package/public/giscus/theme-dark.css +208 -0
  95. package/public/giscus/theme-light.css +208 -0
  96. package/public/icons/favicon.svg +4 -0
  97. package/public/icons/og-logo.png +0 -0
  98. package/public/robots.txt +4 -0
  99. package/public/sounds/tap_01.wav +0 -0
  100. package/public/sounds/tap_02.wav +0 -0
  101. package/public/sounds/tap_03.wav +0 -0
  102. package/public/sounds/tap_04.wav +0 -0
  103. package/public/sounds/tap_05.wav +0 -0
  104. package/public/sounds/type_01.wav +0 -0
  105. package/public/sounds/type_02.wav +0 -0
  106. package/public/sounds/type_03.wav +0 -0
  107. package/public/sounds/type_04.wav +0 -0
  108. package/public/sounds/type_05.wav +0 -0
  109. package/scripts/apply-lqip.ts +276 -0
  110. package/scripts/format-posts.ts +105 -0
  111. package/scripts/migration/README.md +52 -0
  112. package/scripts/migration/migrate-hexo.ts +185 -0
  113. package/scripts/migration/validate-abbrlinks.ts +161 -0
  114. package/scripts/new-post.ts +52 -0
  115. package/scripts/seo/generate-legacy-redirects.ts +407 -0
  116. package/scripts/update-theme.ts +46 -0
  117. package/src/assets/icons/copy-check.svg +3 -0
  118. package/src/assets/icons/copy-icon.svg +4 -0
  119. package/src/assets/icons/go-back.svg +3 -0
  120. package/src/assets/icons/heading-anchor.svg +4 -0
  121. package/src/assets/icons/lang-en.svg +3 -0
  122. package/src/assets/icons/lang-ja.svg +5 -0
  123. package/src/assets/icons/lang-zh.svg +5 -0
  124. package/src/assets/icons/language-switcher.svg +3 -0
  125. package/src/assets/icons/pin-icon.svg +3 -0
  126. package/src/assets/icons/search-icon.svg +3 -0
  127. package/src/assets/icons/theme-toggle.svg +3 -0
  128. package/src/assets/icons/toc-icon.svg +3 -0
  129. package/src/assets/icons/top-icon.svg +3 -0
  130. package/src/assets/lqip-map.json +10 -0
  131. package/src/components/Button.astro +152 -0
  132. package/src/components/CategoryList.astro +66 -0
  133. package/src/components/Comment/Giscus.astro +119 -0
  134. package/src/components/Comment/Index.astro +30 -0
  135. package/src/components/Comment/Twikoo.astro +114 -0
  136. package/src/components/Comment/Waline.astro +149 -0
  137. package/src/components/FloatingButtons.astro +101 -0
  138. package/src/components/Footer.astro +74 -0
  139. package/src/components/Header.astro +62 -0
  140. package/src/components/JournalList.astro +56 -0
  141. package/src/components/Navbar.astro +69 -0
  142. package/src/components/NoteList.astro +56 -0
  143. package/src/components/Pagination.astro +267 -0
  144. package/src/components/PostDate.astro +80 -0
  145. package/src/components/PostList.astro +87 -0
  146. package/src/components/SearchModal.astro +340 -0
  147. package/src/components/TagList.astro +135 -0
  148. package/src/components/Widgets/BackButton.astro +43 -0
  149. package/src/components/Widgets/CodeCopyButton.astro +47 -0
  150. package/src/components/Widgets/GithubCard.astro +110 -0
  151. package/src/components/Widgets/ImageZoom.astro +135 -0
  152. package/src/components/Widgets/MediaEmbed.astro +127 -0
  153. package/src/components/Widgets/SoundEffect.astro +179 -0
  154. package/src/components/Widgets/TOC.astro +198 -0
  155. package/src/config-schema.ts +164 -0
  156. package/src/config.ts +127 -0
  157. package/src/config.ts.example +205 -0
  158. package/src/content/about/_example-about-en.md +6 -0
  159. package/src/content/about/about-en.md +21 -0
  160. package/src/content/about/about-ja.md +21 -0
  161. package/src/content/about/about-zh.md +24 -0
  162. package/src/content.config.ts +247 -0
  163. package/src/env.d.ts +25 -0
  164. package/src/i18n/config.ts +65 -0
  165. package/src/i18n/lang.ts +70 -0
  166. package/src/i18n/path.ts +160 -0
  167. package/src/i18n/ui.ts +214 -0
  168. package/src/layouts/Head.astro +203 -0
  169. package/src/layouts/Layout.astro +69 -0
  170. package/src/pages/404.astro +20 -0
  171. package/src/pages/[...lang]/[...page].astro +48 -0
  172. package/src/pages/[...lang]/about.astro +28 -0
  173. package/src/pages/[...lang]/atom.xml.ts +14 -0
  174. package/src/pages/[...lang]/categories/index.astro +35 -0
  175. package/src/pages/[...lang]/journals/[slug].astro +89 -0
  176. package/src/pages/[...lang]/journals/index.astro +55 -0
  177. package/src/pages/[...lang]/journals/page/[page].astro +66 -0
  178. package/src/pages/[...lang]/notes/[slug].astro +88 -0
  179. package/src/pages/[...lang]/notes/index.astro +55 -0
  180. package/src/pages/[...lang]/notes/page/[page].astro +66 -0
  181. package/src/pages/[...lang]/posts/[slug].astro +101 -0
  182. package/src/pages/[...lang]/rss.xml.ts +14 -0
  183. package/src/pages/[...lang]/search.astro +65 -0
  184. package/src/pages/[...lang]/tags/[tag].astro +53 -0
  185. package/src/pages/[...lang]/tags/index.astro +36 -0
  186. package/src/pages/_dynamic/list.astro +101 -0
  187. package/src/pages/_dynamic/slug.astro +100 -0
  188. package/src/pages/og/[...image].ts +114 -0
  189. package/src/pages/robots.txt.ts +20 -0
  190. package/src/plugins/rehype-code-copy-button.mjs +82 -0
  191. package/src/plugins/rehype-external-links.mjs +18 -0
  192. package/src/plugins/rehype-heading-anchor.mjs +55 -0
  193. package/src/plugins/rehype-image-processor.mjs +77 -0
  194. package/src/plugins/remark-container-directives.mjs +135 -0
  195. package/src/plugins/remark-leaf-directives.mjs +184 -0
  196. package/src/plugins/remark-reading-time.mjs +11 -0
  197. package/src/styles/comment.css +205 -0
  198. package/src/styles/extension.css +180 -0
  199. package/src/styles/font.css +111 -0
  200. package/src/styles/global.css +91 -0
  201. package/src/styles/lqip.css +71 -0
  202. package/src/styles/markdown.css +276 -0
  203. package/src/styles/transition.css +173 -0
  204. package/src/types/global.d.ts +22 -0
  205. package/src/types/index.d.ts +111 -0
  206. package/src/utils/cache.ts +32 -0
  207. package/src/utils/content.ts +819 -0
  208. package/src/utils/description.ts +147 -0
  209. package/src/utils/dynamic-collections.ts +155 -0
  210. package/src/utils/feed.ts +238 -0
  211. package/src/utils/page.ts +107 -0
  212. package/tsconfig.json +13 -0
  213. package/uno.config.ts +75 -0
@@ -0,0 +1,121 @@
1
+ <!-- https://github.com/googlefonts/glyphsets/blob/main/GLYPHSETS.md -->
2
+
3
+ ### GF Latin Kernel
4
+
5
+ Letter (52 glyphs):
6
+ `A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z`
7
+
8
+ Mark, spacing (1 glyphs):
9
+ `/grave`
10
+
11
+ Number (10 glyphs):
12
+ `0 1 2 3 4 5 6 7 8 9`
13
+
14
+ Punctuation (29 glyphs):
15
+ `! " # ' ( ) * , - . / : ; ? [ \ ] _ { } · – — ‘ ’ “ ” • …`
16
+
17
+ Separator (2 glyphs):
18
+ ` `
19
+
20
+ Symbol (22 glyphs):
21
+ `$ % & + < = > @ ^ | ~ ¢ £ ¥ © ® ° × ÷ € ™ −`
22
+
23
+
24
+
25
+ ### GF Latin Core
26
+
27
+ Letter (220 glyphs):
28
+ `A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ª º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ Ā ā Ă ă Ą ą Ć ć Ċ ċ Č č Ď ď Đ đ Ē ē Ė ė Ę ę Ě ě Ğ ğ Ġ ġ Ģ ģ Ħ ħ Ī ī Į į İ ı Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ń ń Ņ ņ Ň ň Ő ő Œ œ Ŕ ŕ Ř ř Ś ś Ş ş Š š Ť ť Ū ū Ů ů Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž ž Ș ș Ț ț ȷ Ẁ ẁ Ẃ ẃ Ẅ ẅ ẞ Ỳ ỳ /idotaccent`
29
+
30
+ Mark, nonspacing (15 glyphs):
31
+ `◌̀ ◌́ ◌̂ ◌̃ ◌̄ ◌̆ ◌̇ ◌̈ ◌̊ ◌̋ ◌̌ ◌̦ ◌̧ ◌̨ ◌/caroncomb.alt`
32
+
33
+ Mark, spacing (13 glyphs):
34
+ `/grave ¨ ¯ ´ ¸ ˆ ˇ ˘ ˙ ˚ ˛ ˜ ˝`
35
+
36
+ Number (10 glyphs):
37
+ `0 1 2 3 4 5 6 7 8 9`
38
+
39
+ Punctuation (39 glyphs):
40
+ `! " # ' ( ) * , - . / : ; ? [ \ ] _ { } ¡ « · » ¿ – — ‘ ’ ‚ “ ” „ • … ‹ › /periodcentered.loclCAT /periodcentered.loclCAT.case`
41
+
42
+ Separator (3 glyphs):
43
+ ` /.notdef`
44
+
45
+ Symbol (24 glyphs):
46
+ `$ % & + < = > @ ^ | ~ ¢ £ ¥ § © ® ° ¶ × ÷ € ™ −`
47
+
48
+
49
+
50
+ ### GF Cyrillic Core
51
+
52
+ Letter (166 glyphs):
53
+ `A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ё Ђ Є І Ї Ј Љ Њ Ћ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ё ђ є і ї ј љ њ ћ ў џ Ґ ґ Ғ ғ Җ җ Қ қ Ң ң Ү ү Ұ ұ Ҳ ҳ Ҷ ҷ Һ һ Ә ә Ӣ ӣ Ө ө Ӯ ӯ`
54
+
55
+ Mark, nonspacing (5 glyphs):
56
+ `◌̀ ◌́ ◌̄ ◌̆ ◌̈`
57
+
58
+ Mark, spacing (2 glyphs):
59
+ `/grave ʼ`
60
+
61
+ Number (10 glyphs):
62
+ `0 1 2 3 4 5 6 7 8 9`
63
+
64
+ Punctuation (33 glyphs):
65
+ `! " # ' ( ) * , - . / : ; ? [ \ ] _ { } « · » – — ‘ ’ ‚ “ ” „ • …`
66
+
67
+ Separator (2 glyphs):
68
+ ` `
69
+
70
+ Symbol (23 glyphs):
71
+ `$ % & + < = > @ ^ | ~ ¢ £ ¥ © ® ° × ÷ € № ™ −`
72
+
73
+
74
+
75
+ ### GF Greek Core
76
+
77
+ Letter (123 glyphs):
78
+ `A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ά Έ Ή Ί Ό Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ Ϗ ϗ`
79
+
80
+ Mark, nonspacing (2 glyphs):
81
+ `◌́ ◌̈`
82
+
83
+ Mark, spacing (3 glyphs):
84
+ `/grave ΄ ΅`
85
+
86
+ Number (10 glyphs):
87
+ `0 1 2 3 4 5 6 7 8 9`
88
+
89
+ Punctuation (33 glyphs):
90
+ `! " # ' ( ) * , - . / : ; ? [ \ ] _ { } « · » ; · – — ‘ ’ “ ” • …`
91
+
92
+ Separator (2 glyphs):
93
+ ` `
94
+
95
+ Symbol (24 glyphs):
96
+ `$ % & + < = > @ ^ | ~ ¢ £ ¥ © ® ° × ÷ ʹ ͵ € ™ −`
97
+
98
+
99
+
100
+ ### GF Arabic Core
101
+
102
+ Letter (239 glyphs):
103
+ `A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ء آ أ ؤ إ ئ ا ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ـ ف ق ك ل م ن ه و ى ي ٮ ٯ ٱ ٹ پ چ ڈ ڑ ژ ڡ ک گ ں ھ ہ ی ے ݣ /ain-ar.fina /ain-ar.init /ain-ar.medi /alef-ar.fina /alefHamzaabove-ar.fina /alefHamzabelow-ar.fina /alefMadda-ar.fina /alefMaksura-ar.fina /alefMaksura-ar.init /alefMaksura-ar.medi /alefWasla-ar.fina /beh-ar.fina /beh-ar.init /beh-ar.medi /behDotless-ar.fina /behDotless-ar.init /behDotless-ar.medi /dad-ar.fina /dad-ar.init /dad-ar.medi /dal-ar.fina /ddal-ar.fina /feh-ar.fina /feh-ar.init /feh-ar.medi /fehDotless-ar.fina /fehDotless-ar.init /fehDotless-ar.medi /gaf-ar.fina /gaf-ar.init /gaf-ar.medi /ghain-ar.fina /ghain-ar.init /ghain-ar.medi /hah-ar.fina /hah-ar.init /hah-ar.medi /heh-ar.fina /heh-ar.init /heh-ar.medi /hehDoachashmee-ar.fina /hehDoachashmee-ar.init /hehDoachashmee-ar.medi /hehgoal-ar.fina /hehgoal-ar.init /hehgoal-ar.medi /jeem-ar.fina /jeem-ar.init /jeem-ar.medi /jeh-ar.fina /kaf-ar.fina /kaf-ar.init /kaf-ar.medi /keheh-ar.fina /keheh-ar.init /keheh-ar.medi /kehehThreedotsabove-ar.fina /kehehThreedotsabove-ar.init /kehehThreedotsabove-ar.medi /khah-ar.fina /khah-ar.init /khah-ar.medi /lam-ar.fina /lam-ar.init /lam-ar.medi /lam_alef-ar /lam_alefHamzaabove-ar /lam_alefHamzabelow-ar /lam_alefMadda-ar /lam_alefWasla-ar /meem-ar.fina /meem-ar.init /meem-ar.medi /noon-ar.fina /noon-ar.init /noon-ar.medi /noonghunna-ar.fina /noonghunna-ar.init /noonghunna-ar.medi /peh-ar.fina /peh-ar.init /peh-ar.medi /qaf-ar.fina /qaf-ar.init /qaf-ar.medi /qafDotless-ar.fina /qafDotless-ar.init /qafDotless-ar.medi /reh-ar.fina /rreh-ar.fina /sad-ar.fina /sad-ar.init /sad-ar.medi /seen-ar.fina /seen-ar.init /seen-ar.medi /sheen-ar.fina /sheen-ar.init /sheen-ar.medi /tah-ar.fina /tah-ar.init /tah-ar.medi /tcheh-ar.fina /tcheh-ar.init /tcheh-ar.medi /teh-ar.fina /teh-ar.init /teh-ar.medi /tehMarbuta-ar.fina /thal-ar.fina /theh-ar.fina /theh-ar.init /theh-ar.medi /tteh-ar.fina /tteh-ar.init /tteh-ar.medi /waw-ar.fina /wawHamzaabove-ar.fina /yeh-ar.fina /yeh-ar.init /yeh-ar.medi /yehFarsi-ar.fina /yehFarsi-ar.init /yehFarsi-ar.medi /yehHamzaabove-ar.fina /yehHamzaabove-ar.init /yehHamzaabove-ar.medi /yehbarree-ar.fina /zah-ar.fina /zah-ar.init /zah-ar.medi /zain-ar.fina`
104
+
105
+ Mark, nonspacing (41 glyphs):
106
+ `◌ؕ ◌ً ◌ٌ ◌ٍ ◌َ ◌ُ ◌ِ ◌ّ ◌ْ ◌ٓ ◌ٔ ◌ٕ ◌ٖ ◌٘ ◌ٰ ◌ۛ ◌/dotabove-ar ◌/dotbelow-ar ◌/dotcenter-ar ◌/gafsarkashabove-ar ◌/hamzaaboveDamma-ar ◌/hamzaaboveDammatan-ar ◌/hamzaaboveFatha-ar ◌/hamzaaboveFathatan-ar ◌/hamzaaboveSukun-ar ◌/hamzabelowKasra-ar ◌/hamzabelowKasratan-ar ◌/shaddaAlefabove-ar ◌/shaddaDamma-ar ◌/shaddaDammatan-ar ◌/shaddaFatha-ar ◌/shaddaFathatan-ar ◌/shaddaKasra-ar ◌/shaddaKasratan-ar ◌/threedotsdownabove-ar ◌/threedotsdownbelow-ar ◌/threedotsdowncenter-ar ◌/threedotsupabove-ar ◌/twodotshorizontalabove-ar ◌/twodotshorizontalbelow-ar ◌/wasla-ar`
107
+
108
+ Mark, spacing (1 glyphs):
109
+ `/grave`
110
+
111
+ Number (34 glyphs):
112
+ `0 1 2 3 4 5 6 7 8 9 ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ٫ ٬ ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ /fourFarsi-ar.urdu /sevenFarsi-ar.urdu`
113
+
114
+ Punctuation (41 glyphs):
115
+ `! " # ' ( ) * , - . / : ; ? [ \ ] _ { } « · » ، ؍ ؛ ؟ ٭ ۔ – — ‘ ’ “ ” • … ‹ › ﴾ ﴿`
116
+
117
+ Separator (2 glyphs):
118
+ ` `
119
+
120
+ Symbol (25 glyphs):
121
+ `$ % & + < = > @ ^ | ~ ¢ £ ¥ © ® ° × ÷ ؉ ٪ € ™ − ◌`
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env python3
2
+ from fontTools.ttLib import TTFont
3
+ import sys
4
+
5
+ def get_unicode_range(font_file):
6
+ """Extract unicode-range from font file"""
7
+ try:
8
+ # Load the font file
9
+ font = TTFont(font_file)
10
+ cmap = font.getBestCmap()
11
+
12
+ # Get Unicode code points for all characters
13
+ unicode_points = sorted(cmap.keys())
14
+
15
+ # Merge consecutive code points into ranges
16
+ ranges = []
17
+ start = unicode_points[0]
18
+ end = start
19
+
20
+ for point in unicode_points[1:]:
21
+ if point == end + 1:
22
+ end = point
23
+ else:
24
+ # Add a range
25
+ if start == end:
26
+ ranges.append(f"U+{start:04X}")
27
+ else:
28
+ ranges.append(f"U+{start:04X}-{end:04X}")
29
+ start = end = point
30
+
31
+ # Add the final range
32
+ if start == end:
33
+ ranges.append(f"U+{start:04X}")
34
+ else:
35
+ ranges.append(f"U+{start:04X}-{end:04X}")
36
+
37
+ # Generate CSS format
38
+ return "unicode-range: " + ",".join(ranges) + ";"
39
+
40
+ except:
41
+ return "Error: Unable to process this font file"
42
+
43
+ # Usage
44
+ if __name__ == "__main__":
45
+ if len(sys.argv) != 2:
46
+ print("Usage: python simple_unicode_range.py fontfile.woff2")
47
+ else:
48
+ result = get_unicode_range(sys.argv[1])
49
+ print(result)
Binary file
Binary file
Binary file
@@ -0,0 +1,208 @@
1
+ /*! MIT License
2
+ * Copyright (c) 2018 GitHub Inc.
3
+ * https://github.com/primer/primitives/blob/main/LICENSE
4
+ */
5
+
6
+ main {
7
+ /* Custom Theme Colors */
8
+ --secondary-color: oklch(77% 0.005 298);
9
+ --secondary-color-25: oklch(77% 0.005 298 / 25%);
10
+ --secondary-color-5: oklch(77% 0.005 298 / 5%);
11
+ --background-color: oklch(22% 0.005 298);
12
+
13
+ --color-fg-default: var(--secondary-color);
14
+ --color-canvas-default: transparent;
15
+ --color-canvas-overlay: var(--background-color);
16
+ --color-canvas-inset: transparent;
17
+ --color-canvas-subtle: transparent;
18
+ --color-accent-fg: oklch(70.7% 0.165 254.624);
19
+ --color-accent-emphasis: oklch(70.7% 0.165 254.624);
20
+
21
+ /* Official Theme Colors */
22
+ --color-prettylights-syntax-comment: #8b949e;
23
+ --color-prettylights-syntax-constant: #79c0ff;
24
+ --color-prettylights-syntax-entity: #d2a8ff;
25
+ --color-prettylights-syntax-storage-modifier-import: #c9d1d9;
26
+ --color-prettylights-syntax-entity-tag: #7ee787;
27
+ --color-prettylights-syntax-keyword: #ff7b72;
28
+ --color-prettylights-syntax-string: #a5d6ff;
29
+ --color-prettylights-syntax-variable: #ffa657;
30
+ --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;
31
+ --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;
32
+ --color-prettylights-syntax-invalid-illegal-bg: #8e1519;
33
+ --color-prettylights-syntax-carriage-return-text: #f0f6fc;
34
+ --color-prettylights-syntax-carriage-return-bg: #b62324;
35
+ --color-prettylights-syntax-string-regexp: #7ee787;
36
+ --color-prettylights-syntax-markup-list: #f2cc60;
37
+ --color-prettylights-syntax-markup-heading: #1f6feb;
38
+ --color-prettylights-syntax-markup-italic: #c9d1d9;
39
+ --color-prettylights-syntax-markup-bold: #c9d1d9;
40
+ --color-prettylights-syntax-markup-deleted-text: #ffdcd7;
41
+ --color-prettylights-syntax-markup-deleted-bg: #67060c;
42
+ --color-prettylights-syntax-markup-inserted-text: #aff5b4;
43
+ --color-prettylights-syntax-markup-inserted-bg: #033a16;
44
+ --color-prettylights-syntax-markup-changed-text: #ffdfb6;
45
+ --color-prettylights-syntax-markup-changed-bg: #5a1e02;
46
+ --color-prettylights-syntax-markup-ignored-text: #c9d1d9;
47
+ --color-prettylights-syntax-markup-ignored-bg: #1158c7;
48
+ --color-prettylights-syntax-meta-diff-range: #d2a8ff;
49
+ --color-prettylights-syntax-brackethighlighter-angle: #8b949e;
50
+ --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;
51
+ --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;
52
+ --color-btn-text: #c9d1d9;
53
+ --color-btn-bg: #21262d;
54
+ --color-btn-border: rgb(240 246 252 / 10%);
55
+ --color-btn-shadow: 0 0 transparent;
56
+ --color-btn-inset-shadow: 0 0 transparent;
57
+ --color-btn-hover-bg: #30363d;
58
+ --color-btn-hover-border: #8b949e;
59
+ --color-btn-active-bg: hsl(212deg 12% 18% / 100%);
60
+ --color-btn-active-border: #6e7681;
61
+ --color-btn-selected-bg: #161b22;
62
+ --color-btn-primary-text: #fff;
63
+ --color-btn-primary-bg: #238636;
64
+ --color-btn-primary-border: rgb(240 246 252 / 10%);
65
+ --color-btn-primary-shadow: 0 0 transparent;
66
+ --color-btn-primary-inset-shadow: 0 0 transparent;
67
+ --color-btn-primary-hover-bg: #2ea043;
68
+ --color-btn-primary-hover-border: rgb(240 246 252 / 10%);
69
+ --color-btn-primary-selected-bg: #238636;
70
+ --color-btn-primary-selected-shadow: 0 0 transparent;
71
+ --color-btn-primary-disabled-text: rgb(255 255 255 / 50%);
72
+ --color-btn-primary-disabled-bg: rgb(35 134 54 / 60%);
73
+ --color-btn-primary-disabled-border: rgb(240 246 252 / 10%);
74
+ --color-action-list-item-default-hover-bg: rgb(177 186 196 / 12%);
75
+ --color-segmented-control-bg: rgb(110 118 129 / 10%);
76
+ --color-segmented-control-button-bg: #0d1117;
77
+ --color-segmented-control-button-selected-border: #6e7681;
78
+ --color-fg-muted: #7d8590;
79
+ --color-fg-subtle: #6e7681;
80
+ --color-border-default: #30363d;
81
+ --color-border-muted: #21262d;
82
+ --color-neutral-muted: rgb(110 118 129 / 40%);
83
+ --color-accent-muted: rgb(56 139 253 / 40%);
84
+ --color-accent-subtle: rgb(56 139 253 / 10%);
85
+ --color-success-fg: #3fb950;
86
+ --color-attention-fg: #d29922;
87
+ --color-attention-muted: rgb(187 128 9 / 40%);
88
+ --color-attention-subtle: rgb(187 128 9 / 15%);
89
+ --color-danger-fg: #f85149;
90
+ --color-danger-muted: rgb(248 81 73 / 40%);
91
+ --color-danger-subtle: rgb(248 81 73 / 10%);
92
+ --color-primer-shadow-inset: 0 0 transparent;
93
+ --color-scale-gray-7: #21262d;
94
+ --color-scale-blue-8: #0c2d6b;
95
+
96
+ /*! Extensions from @primer/css/alerts/flash.scss */
97
+ --color-social-reaction-bg-hover: var(--color-scale-gray-7);
98
+ --color-social-reaction-bg-reacted-hover: var(--color-scale-blue-8);
99
+ }
100
+
101
+ main .pagination-loader-container {
102
+ background-image: url("https://github.com/images/modules/pulls/progressive-disclosure-line-dark.svg");
103
+ }
104
+
105
+ main .gsc-loading-image {
106
+ background-image: url("https://github.githubassets.com/images/mona-loading-dark.gif");
107
+ }
108
+
109
+ /* Smooth Font */
110
+ body {
111
+ -webkit-font-smoothing: antialiased;
112
+ -moz-osx-font-smoothing: grayscale;
113
+ }
114
+
115
+ /* All Border Color */
116
+ *:not(.BtnGroup-item) {
117
+ border-color: var(--secondary-color-25)!important;
118
+ }
119
+
120
+ /* Hide Giscus Copyright and Avatar Line */
121
+ .gsc-tl-line,
122
+ .gsc-left-header em {
123
+ display: none;
124
+ }
125
+
126
+ /* Font Size and Color on Comments Count */
127
+ h4.gsc-comments-count-separator,
128
+ h4.gsc-replies-count {
129
+ color: var(--secondary-color);
130
+ font-size: 0.875rem;
131
+ }
132
+
133
+ /* "Oldest" and "Newest" Buttons Style */
134
+ .BtnGroup-item,
135
+ .BtnGroup-item.BtnGroup-item--selected {
136
+ background-color: var(--background-color);
137
+ }
138
+ .BtnGroup-item.BtnGroup-item--selected {
139
+ border-color: var(--secondary-color-25)!important;
140
+ }
141
+ .BtnGroup-item:not(.BtnGroup-item--selected):hover {
142
+ border-color: var(--secondary-color-25)!important;
143
+ }
144
+ .BtnGroup-item button.btn:hover {
145
+ background-color: var(--background-color);
146
+ }
147
+ .BtnGroup-item--selected .btn {
148
+ font-weight: 500;
149
+ }
150
+ .BtnGroup-item .btn {
151
+ background-color: transparent;
152
+ }
153
+
154
+ /* Larger Padding Top on Author Comment Header */
155
+ .gsc-comment-header {
156
+ padding-top: 1rem;
157
+ }
158
+
159
+ /* Add Padding Bottom on Replies Box */
160
+ .gsc-replies {
161
+ padding-bottom: 0.5rem;
162
+ }
163
+
164
+ /* Hide Underline on Reply Time */
165
+ .gsc-comment-author a:has(time),
166
+ .gsc-reply-author a:has(time) {
167
+ text-decoration: none;
168
+ font-size: 0.75rem;
169
+ }
170
+
171
+ /* Hide Underline on Comments Count */
172
+ .gsc-comments-count a {
173
+ text-decoration: none!important;
174
+ }
175
+
176
+ /* Social Reactions Icons */
177
+ .gsc-social-reaction-summary-item.has-reacted {
178
+ background-color: var(--background-color);
179
+ }
180
+ .gsc-social-reaction-summary-item.has-reacted:hover {
181
+ background-color: var(--background-color)!important;
182
+ border-color: var(--color-accent-fg)!important;
183
+ }
184
+ .color-bg-info {
185
+ background-color: var(--background-color);
186
+ }
187
+
188
+ /* Medium Font Weight on Comment Box Tabs Selected Button */
189
+ .gsc-comment-box-tabs .color-text-primary {
190
+ font-weight: 500;
191
+ }
192
+
193
+ /* Thinner Bottom Line on Comment Box Preview Border */
194
+ .gsc-comment-box-preview {
195
+ border-bottom-width: 1px;
196
+ }
197
+
198
+ /* Hide Underline on sign out button */
199
+ .link-secondary {
200
+ text-decoration: none;
201
+ }
202
+
203
+ /* Scrollbar Style on Code Blocks */
204
+ pre {
205
+ background-color: var(--secondary-color-5)!important;
206
+ scrollbar-width: thin!important;
207
+ scrollbar-color: var(--secondary-color-25) transparent!important;
208
+ }
@@ -0,0 +1,208 @@
1
+ /*! MIT License
2
+ * Copyright (c) 2018 GitHub Inc.
3
+ * https://github.com/primer/primitives/blob/main/LICENSE
4
+ */
5
+
6
+ main {
7
+ /* Custom Theme Colors */
8
+ --secondary-color: oklch(40% 0.005 298);
9
+ --secondary-color-25: oklch(40% 0.005 298 / 25%);
10
+ --secondary-color-5: oklch(40% 0.005 298 / 5%);
11
+ --background-color: oklch(96% 0.005 298);
12
+
13
+ --color-fg-default: var(--secondary-color);
14
+ --color-canvas-default: transparent;
15
+ --color-canvas-overlay: var(--background-color);
16
+ --color-canvas-inset: transparent;
17
+ --color-canvas-subtle: transparent;
18
+ --color-accent-fg: oklch(48.8% 0.243 264.376);
19
+ --color-accent-emphasis: oklch(48.8% 0.243 264.376);
20
+
21
+ /* Official Theme Colors */
22
+ --color-prettylights-syntax-comment: #6e7781;
23
+ --color-prettylights-syntax-constant: #0550ae;
24
+ --color-prettylights-syntax-entity: #8250df;
25
+ --color-prettylights-syntax-storage-modifier-import: #24292f;
26
+ --color-prettylights-syntax-entity-tag: #116329;
27
+ --color-prettylights-syntax-keyword: #cf222e;
28
+ --color-prettylights-syntax-string: #0a3069;
29
+ --color-prettylights-syntax-variable: #953800;
30
+ --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;
31
+ --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;
32
+ --color-prettylights-syntax-invalid-illegal-bg: #82071e;
33
+ --color-prettylights-syntax-carriage-return-text: #f6f8fa;
34
+ --color-prettylights-syntax-carriage-return-bg: #cf222e;
35
+ --color-prettylights-syntax-string-regexp: #116329;
36
+ --color-prettylights-syntax-markup-list: #3b2300;
37
+ --color-prettylights-syntax-markup-heading: #0550ae;
38
+ --color-prettylights-syntax-markup-italic: #24292f;
39
+ --color-prettylights-syntax-markup-bold: #24292f;
40
+ --color-prettylights-syntax-markup-deleted-text: #82071e;
41
+ --color-prettylights-syntax-markup-deleted-bg: #ffebe9;
42
+ --color-prettylights-syntax-markup-inserted-text: #116329;
43
+ --color-prettylights-syntax-markup-inserted-bg: #dafbe1;
44
+ --color-prettylights-syntax-markup-changed-text: #953800;
45
+ --color-prettylights-syntax-markup-changed-bg: #ffd8b5;
46
+ --color-prettylights-syntax-markup-ignored-text: #eaeef2;
47
+ --color-prettylights-syntax-markup-ignored-bg: #0550ae;
48
+ --color-prettylights-syntax-meta-diff-range: #8250df;
49
+ --color-prettylights-syntax-brackethighlighter-angle: #57606a;
50
+ --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;
51
+ --color-prettylights-syntax-constant-other-reference-link: #0a3069;
52
+ --color-btn-text: #24292f;
53
+ --color-btn-bg: #f6f8fa;
54
+ --color-btn-border: rgb(31 35 40 / 15%);
55
+ --color-btn-shadow: 0 1px 0 rgb(31 35 40 / 4%);
56
+ --color-btn-inset-shadow: inset 0 1px 0 rgb(255 255 255 / 25%);
57
+ --color-btn-hover-bg: #f3f4f6;
58
+ --color-btn-hover-border: rgb(31 35 40 / 15%);
59
+ --color-btn-active-bg: hsl(220deg 14% 93% / 100%);
60
+ --color-btn-active-border: rgb(31 35 40 / 15%);
61
+ --color-btn-selected-bg: hsl(220deg 14% 94% / 100%);
62
+ --color-btn-primary-text: #fff;
63
+ --color-btn-primary-bg: #1f883d;
64
+ --color-btn-primary-border: rgb(31 35 40 / 15%);
65
+ --color-btn-primary-shadow: 0 1px 0 rgb(31 35 40 / 10%);
66
+ --color-btn-primary-inset-shadow: inset 0 1px 0 rgb(255 255 255 / 3%);
67
+ --color-btn-primary-hover-bg: #1a7f37;
68
+ --color-btn-primary-hover-border: rgb(31 35 40 / 15%);
69
+ --color-btn-primary-selected-bg: hsl(137deg 66% 28% / 100%);
70
+ --color-btn-primary-selected-shadow: inset 0 1px 0 rgb(0 45 17 / 20%);
71
+ --color-btn-primary-disabled-text: rgb(255 255 255 / 80%);
72
+ --color-btn-primary-disabled-bg: #94d3a2;
73
+ --color-btn-primary-disabled-border: rgb(31 35 40 / 15%);
74
+ --color-action-list-item-default-hover-bg: rgb(208 215 222 / 32%);
75
+ --color-segmented-control-bg: #eaeef2;
76
+ --color-segmented-control-button-bg: #fff;
77
+ --color-segmented-control-button-selected-border: #8c959f;
78
+ --color-fg-muted: #656d76;
79
+ --color-fg-subtle: #6e7781;
80
+ --color-border-default: #d0d7de;
81
+ --color-border-muted: hsl(210deg 18% 87% / 100%);
82
+ --color-neutral-muted: rgb(175 184 193 / 20%);
83
+ --color-accent-muted: rgb(84 174 255 / 40%);
84
+ --color-accent-subtle: #ddf4ff;
85
+ --color-success-fg: #1a7f37;
86
+ --color-attention-fg: #9a6700;
87
+ --color-attention-muted: rgb(212 167 44 / 40%);
88
+ --color-attention-subtle: #fff8c5;
89
+ --color-danger-fg: #d1242f;
90
+ --color-danger-muted: rgb(255 129 130 / 40%);
91
+ --color-danger-subtle: #ffebe9;
92
+ --color-primer-shadow-inset: inset 0 1px 0 rgb(208 215 222 / 20%);
93
+ --color-scale-gray-1: #eaeef2;
94
+ --color-scale-blue-1: #b6e3ff;
95
+
96
+ /*! Extensions from @primer/css/alerts/flash.scss */
97
+ --color-social-reaction-bg-hover: var(--color-scale-gray-1);
98
+ --color-social-reaction-bg-reacted-hover: var(--color-scale-blue-1);
99
+ }
100
+
101
+ main .pagination-loader-container {
102
+ background-image: url("https://github.com/images/modules/pulls/progressive-disclosure-line-dark.svg");
103
+ }
104
+
105
+ main .gsc-loading-image {
106
+ background-image: url("https://github.githubassets.com/images/mona-loading-dark.gif");
107
+ }
108
+
109
+ /* Smooth Font */
110
+ body {
111
+ -webkit-font-smoothing: antialiased;
112
+ -moz-osx-font-smoothing: grayscale;
113
+ }
114
+
115
+ /* All Border Color */
116
+ *:not(.BtnGroup-item) {
117
+ border-color: var(--secondary-color-25)!important;
118
+ }
119
+
120
+ /* Hide Giscus Copyright and Avatar Line */
121
+ .gsc-tl-line,
122
+ .gsc-left-header em {
123
+ display: none;
124
+ }
125
+
126
+ /* Font Size and Color on Comments Count */
127
+ h4.gsc-comments-count-separator,
128
+ h4.gsc-replies-count {
129
+ color: var(--secondary-color);
130
+ font-size: 0.875rem;
131
+ }
132
+
133
+ /* "Oldest" and "Newest" Buttons Style */
134
+ .BtnGroup-item,
135
+ .BtnGroup-item.BtnGroup-item--selected {
136
+ background-color: var(--background-color);
137
+ }
138
+ .BtnGroup-item.BtnGroup-item--selected {
139
+ border-color: var(--secondary-color-25)!important;
140
+ }
141
+ .BtnGroup-item:not(.BtnGroup-item--selected):hover {
142
+ border-color: var(--secondary-color-25)!important;
143
+ }
144
+ .BtnGroup-item button.btn:hover {
145
+ background-color: var(--background-color);
146
+ }
147
+ .BtnGroup-item--selected .btn {
148
+ font-weight: 500;
149
+ }
150
+ .BtnGroup-item .btn {
151
+ background-color: transparent;
152
+ }
153
+
154
+ /* Larger Padding Top on Author Comment Header */
155
+ .gsc-comment-header {
156
+ padding-top: 1rem;
157
+ }
158
+
159
+ /* Add Padding Bottom on Replies Box */
160
+ .gsc-replies {
161
+ padding-bottom: 0.5rem;
162
+ }
163
+
164
+ /* Hide Underline on Reply Time */
165
+ .gsc-comment-author a:has(time),
166
+ .gsc-reply-author a:has(time) {
167
+ text-decoration: none;
168
+ font-size: 0.75rem;
169
+ }
170
+
171
+ /* Hide Underline on Comments Count */
172
+ .gsc-comments-count a {
173
+ text-decoration: none!important;
174
+ }
175
+
176
+ /* Social Reactions Icons */
177
+ .gsc-social-reaction-summary-item.has-reacted {
178
+ background-color: var(--background-color);
179
+ }
180
+ .gsc-social-reaction-summary-item.has-reacted:hover {
181
+ background-color: var(--background-color)!important;
182
+ border-color: var(--color-accent-fg)!important;
183
+ }
184
+ .color-bg-info {
185
+ background-color: var(--background-color);
186
+ }
187
+
188
+ /* Medium Font Weight on Comment Box Tabs Selected Button */
189
+ .gsc-comment-box-tabs .color-text-primary {
190
+ font-weight: 500;
191
+ }
192
+
193
+ /* Thinner Bottom Line on Comment Box Preview Border */
194
+ .gsc-comment-box-preview {
195
+ border-bottom-width: 1px;
196
+ }
197
+
198
+ /* Hide Underline on sign out button */
199
+ .link-secondary {
200
+ text-decoration: none;
201
+ }
202
+
203
+ /* Scrollbar Style on Code Blocks */
204
+ pre {
205
+ background-color: var(--secondary-color-5)!important;
206
+ scrollbar-width: thin!important;
207
+ scrollbar-color: var(--secondary-color-25) transparent!important;
208
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68.03 68.11">
2
+ <path d="M16.1.57c9.98-.79 24.79-.69 34.86-.12s15.87 5.3 16.57 15.9.67 25.2 0 35.32-5.58 15.18-15.52 15.88c-10.08.71-26.32.76-36.37 0S1.05 61.01.46 51.34c-.61-10.1-.61-24.55 0-34.65S5.84 1.39 16.1.57" style="fill:#f2f2f2"/>
3
+ <path d="M31.24 24.74c.06.55.12 1.11.2 1.68.07.57.11 1.23.11 1.99 0 1.75-.31 3.31-.92 4.68s-1.41 2.54-2.4 3.5-2.11 1.7-3.37 2.21c-1.25.51-2.52.76-3.8.76-1.05 0-2-.17-2.84-.5-.85-.33-1.57-.79-2.16-1.36a6.2 6.2 0 0 1-1.4-1.99c-.34-.76-.5-1.56-.5-2.4q0-2.715 1.29-4.92t3.39-3.93c1.4-1.15 2.99-2.15 4.76-2.99 1.78-.84 3.58-1.54 5.42-2.08s3.63-.94 5.38-1.2 3.29-.39 4.63-.39c1.78 0 3.37.09 4.79.26 1.41.17 2.63.38 3.65.61.76-.23 1.44-.42 2.05-.57s1.22-.25 1.81-.31c.6-.06 1.19-.1 1.77-.13s1.21-.04 1.88-.04l.09.52c-1.57 0-2.77.1-3.58.31-.82.2-1.49.47-2.01.79.79.35 1.52.74 2.19 1.16s1.25.9 1.73 1.44q.72.81 1.11 1.86c.39 1.05.39 1.5.39 2.4 0 1.55-.41 2.82-1.22 3.83-.82 1.01-1.84 1.8-3.08 2.38s-2.59 1-4.07 1.25q-2.205.375-4.17.42v.09c.61.26 1.2.57 1.77.92s1.06.76 1.49 1.25c.42.48.76 1.04 1.03 1.66s.39 1.35.39 2.16c0 .64-.1 1.31-.31 2.01-.2.7-.44 1.38-.7 2.03s-.5 1.28-.7 1.88-.31 1.13-.31 1.6c0 .44.12.77.37 1.01.25.23.55.35.9.35.52 0 1.14-.2 1.86-.61.71-.41 1.45-.92 2.21-1.55s1.52-1.34 2.29-2.14 1.5-1.6 2.19-2.38 1.3-1.54 1.84-2.25.95-1.29 1.25-1.73l.35.17c-.93 1.25-1.97 2.59-3.1 4.02a36 36 0 0 1-3.61 3.91c-1.27 1.18-2.57 2.16-3.91 2.95s-2.68 1.18-4.02 1.18c-1.49 0-2.62-.39-3.39-1.18s-1.16-1.88-1.16-3.28c0-.87.18-1.73.55-2.58.36-.84.76-1.68 1.2-2.49s.84-1.6 1.2-2.36.55-1.47.55-2.14c0-.84-.24-1.47-.72-1.88s-1.09-.61-1.81-.61h-.48l.13-.52c1.43 0 2.67-.12 3.72-.37s2.11-.85 3.19-1.81c.82-.73 1.49-1.68 2.01-2.86s.79-2.4.79-3.65c0-.7-.18-1.41-.55-2.14-.36-.73-.85-1.34-1.46-1.84-.99.9-1.92 1.89-2.78 2.97s-1.69 2.25-2.49 3.52-1.61 2.65-2.43 4.15-1.69 3.11-2.62 4.83c-1.4 2.56-2.86 4.74-4.39 6.51-1.53 1.78-3.13 3.22-4.79 4.33s-3.37 1.91-5.14 2.4c-1.76.49-3.58.74-5.44.74-2.22 0-4.02-.44-5.42-1.31s-2.1-2.2-2.1-3.98c0-.9.28-1.68.83-2.34s1.31-.98 2.27-.98q1.26 0 2.01.66c.5.44.74 1.08.74 1.92 0 .5-.12.95-.35 1.36s-.64.73-1.22.96c-.06.23-.09.38-.09.44 0 .93.32 1.63.96 2.08s1.46.68 2.45.68q1.83 0 3.48-.87c1.09-.58 2.12-1.35 3.08-2.29.96-.95 1.86-2.03 2.71-3.24a54 54 0 0 0 2.34-3.67c.71-1.24 1.37-2.43 1.97-3.58s1.14-2.15 1.64-2.99c.96-1.78 1.86-3.28 2.71-4.5.84-1.22 1.74-2.32 2.69-3.3s2.01-1.89 3.19-2.75 2.59-1.81 4.22-2.86c-.93-.5-2.01-.84-3.24-1.03-1.22-.19-2.35-.28-3.37-.28-1.34 0-2.75.14-4.24.42s-2.95.69-4.39 1.25c-1.44.55-2.81 1.24-4.11 2.05-1.3.82-2.45 1.76-3.45 2.84a12.9 12.9 0 0 0-2.4 3.61c-.6 1.33-.93 2.78-.98 4.35 0 .61.07 1.22.22 1.81.15.6.37 1.14.68 1.62q.465.72 1.2 1.2c.5.32 1.09.5 1.79.52 1.34-.03 2.51-.36 3.5-.98.99-.63 1.81-1.41 2.47-2.36s1.14-1.98 1.46-3.1.48-2.18.48-3.17q0-1.05-.09-1.95c-.06-.6-.12-1.14-.18-1.64l.48-.04Z" style="fill:#222124"/>
4
+ </svg>
Binary file
@@ -0,0 +1,4 @@
1
+ User-agent: *
2
+ Allow: /
3
+
4
+ Sitemap: https://zhenjia.org/sitemap-index.xml
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file