A new start
2
.dockerignore
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
node_modules
|
||||||
|
dist
|
25
.editorconfig
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.{md,mdx}]
|
||||||
|
indent_size = tab
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.{js,jsx,ts,tsx,css,less,sass,scss}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.{yml,yaml,json}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.go]
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_size = tab
|
14
.env.example
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Since the ".env" file is gitignored, you can use the ".env.example" file to
|
||||||
|
# build a new ".env" file when you clone the repo. Keep this file up-to-date
|
||||||
|
# when you add new variables to `.env`.
|
||||||
|
|
||||||
|
# This file will be committed to version control, so make sure not to have any
|
||||||
|
# secrets in it. If you are cloning this repo, create a copy of this file named
|
||||||
|
# ".env" and populate it with your secrets.
|
||||||
|
|
||||||
|
# PostgreSQL configuration.
|
||||||
|
POSTGRES_HOST=
|
||||||
|
POSTGRES_PORT=
|
||||||
|
POSTGRES_USERNAME=
|
||||||
|
POSTGRES_PASSWORD=
|
||||||
|
POSTGRES_DATABASE=
|
162
.gitattributes
vendored
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
# This file is inspired by https://github.com/alexkaratarakis/gitattributes
|
||||||
|
#
|
||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# The above will handle all files NOT found below
|
||||||
|
# These files are text and should be normalized (Convert crlf => lf)
|
||||||
|
|
||||||
|
*.bat text eol=crlf
|
||||||
|
*.cmd text eol=crlf
|
||||||
|
*.coffee text
|
||||||
|
*.css text
|
||||||
|
*.cql text
|
||||||
|
*.df text
|
||||||
|
*.ejs text
|
||||||
|
*.html text
|
||||||
|
*.java text
|
||||||
|
*.js text
|
||||||
|
*.json text
|
||||||
|
*.less text
|
||||||
|
*.properties text
|
||||||
|
*.sass text
|
||||||
|
*.scss text
|
||||||
|
*.sh text
|
||||||
|
*.sql text
|
||||||
|
*.txt text
|
||||||
|
*.ts text
|
||||||
|
*.xml text
|
||||||
|
*.yaml text
|
||||||
|
*.yml text
|
||||||
|
|
||||||
|
# Documents
|
||||||
|
*.doc diff=astextplain
|
||||||
|
*.DOC diff=astextplain
|
||||||
|
*.docx diff=astextplain
|
||||||
|
*.DOCX diff=astextplain
|
||||||
|
*.dot diff=astextplain
|
||||||
|
*.DOT diff=astextplain
|
||||||
|
*.pdf diff=astextplain
|
||||||
|
*.PDF diff=astextplain
|
||||||
|
*.rtf diff=astextplain
|
||||||
|
*.RTF diff=astextplain
|
||||||
|
*.markdown text
|
||||||
|
*.md text
|
||||||
|
*.adoc text
|
||||||
|
*.textile text
|
||||||
|
*.mustache text
|
||||||
|
*.csv text
|
||||||
|
*.tab text
|
||||||
|
*.tsv text
|
||||||
|
*.txt text
|
||||||
|
*.config text
|
||||||
|
AUTHORS text
|
||||||
|
CHANGELOG text
|
||||||
|
CHANGES text
|
||||||
|
CONTRIBUTING text
|
||||||
|
COPYING text
|
||||||
|
copyright text
|
||||||
|
*COPYRIGHT* text
|
||||||
|
INSTALL text
|
||||||
|
license text
|
||||||
|
LICENSE text
|
||||||
|
NEWS text
|
||||||
|
readme text
|
||||||
|
*README* text
|
||||||
|
TODO text
|
||||||
|
Jenkinsfile text
|
||||||
|
|
||||||
|
# Graphics
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.jpeg binary
|
||||||
|
*.gif binary
|
||||||
|
*.tif binary
|
||||||
|
*.tiff binary
|
||||||
|
*.ico binary
|
||||||
|
# SVG treated as an asset (binary) by default. If you want to treat it as text,
|
||||||
|
# comment-out the following line and uncomment the line after.
|
||||||
|
*.svg binary
|
||||||
|
#*.svg text
|
||||||
|
*.eps binary
|
||||||
|
*.sketch binary
|
||||||
|
|
||||||
|
# These files are binary and should be left untouched
|
||||||
|
# (binary is a macro for -text -diff)
|
||||||
|
*.class binary
|
||||||
|
*.jar binary
|
||||||
|
*.war binary
|
||||||
|
|
||||||
|
## LINTERS
|
||||||
|
.csslintrc text
|
||||||
|
.eslintrc text
|
||||||
|
.jscsrc text
|
||||||
|
.jshintrc text
|
||||||
|
.jshintignore text
|
||||||
|
.stylelintrc text
|
||||||
|
.prettierignore text
|
||||||
|
.prettierrc text
|
||||||
|
.scalafmt.conf text
|
||||||
|
|
||||||
|
## CONFIGS
|
||||||
|
*.bowerrc text
|
||||||
|
*.conf text
|
||||||
|
*.config text
|
||||||
|
.editorconfig text
|
||||||
|
.gitattributes text
|
||||||
|
.gitconfig text
|
||||||
|
.gitignore text
|
||||||
|
.htaccess text
|
||||||
|
*.npmignore text
|
||||||
|
|
||||||
|
## HEROKU
|
||||||
|
Procfile text
|
||||||
|
.slugignore text
|
||||||
|
|
||||||
|
## AUDIO
|
||||||
|
*.kar binary
|
||||||
|
*.m4a binary
|
||||||
|
*.mid binary
|
||||||
|
*.midi binary
|
||||||
|
*.mp3 binary
|
||||||
|
*.ogg binary
|
||||||
|
*.ra binary
|
||||||
|
|
||||||
|
## VIDEO
|
||||||
|
*.3gpp binary
|
||||||
|
*.3gp binary
|
||||||
|
*.as binary
|
||||||
|
*.asf binary
|
||||||
|
*.asx binary
|
||||||
|
*.fla binary
|
||||||
|
*.flv binary
|
||||||
|
*.m4v binary
|
||||||
|
*.mng binary
|
||||||
|
*.mov binary
|
||||||
|
*.mp4 binary
|
||||||
|
*.mpeg binary
|
||||||
|
*.mpg binary
|
||||||
|
*.swc binary
|
||||||
|
*.swf binary
|
||||||
|
*.webm binary
|
||||||
|
|
||||||
|
## ARCHIVES
|
||||||
|
*.7z binary
|
||||||
|
*.gz binary
|
||||||
|
*.rar binary
|
||||||
|
*.tar binary
|
||||||
|
*.zip binary
|
||||||
|
|
||||||
|
## FONTS
|
||||||
|
*.ttf binary
|
||||||
|
*.eot binary
|
||||||
|
*.otf binary
|
||||||
|
*.woff binary
|
||||||
|
*.woff2 binary
|
||||||
|
|
||||||
|
## Bun
|
||||||
|
*.lockb binary diff=lockb
|
||||||
|
|
||||||
|
## License File
|
||||||
|
LICENSE.* text
|
29
.gitignore
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# build output
|
||||||
|
dist/
|
||||||
|
.zeabur/
|
||||||
|
|
||||||
|
# generated types
|
||||||
|
.astro/
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# logs
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
# environment variables
|
||||||
|
.env
|
||||||
|
.env.production
|
||||||
|
|
||||||
|
# macOS-specific files
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# jetbrains setting folder
|
||||||
|
!.idea/icon.svg
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Hide the SQL session
|
||||||
|
*.session.sql
|
1
.husky/pre-commit
Normal file
@ -0,0 +1 @@
|
|||||||
|
npx lint-staged
|
12
.idea/icon.svg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="300px" viewBox="0 0 300 300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>favicon</title>
|
||||||
|
<g id="favicon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<rect fill="#263148" x="0" y="0" width="300" height="300" />
|
||||||
|
<g id="logo-white" transform="translate(9, 3.888)">
|
||||||
|
<path d="M159,154.195523 C167.013592,152.617424 174.05936,152.751451 180.129673,154.674602 C190.120795,157.839913 194.348511,161.02564 199.517296,168.40144 C202.925628,173.265093 205.718707,181.861769 208,194.149433 C202.817237,195.503225 198.494331,195.463815 195.074572,193.809733 C188.963104,190.853715 183.30068,186.732689 175.022826,177.505654 C169.768056,171.648346 164.430736,163.875789 159,154.195523 Z" id="font1-dot" fill="#EEB4B4" />
|
||||||
|
<path d="M151.486676,25.701431 C155.616373,28.5082875 160.109234,31.601356 164.965286,34.9806001 C165.393463,35.2785613 165.822641,35.5757097 166.255249,35.8738863 L167.105716,36.458366 C168.619019,37.4954138 170.108644,38.5008303 171.499238,39.4303971 L172.608374,40.1697969 C174.26724,41.2727003 175.735093,42.2354804 176.860606,42.9690389 L176.448028,45.1207071 L166.710146,84.6326462 C180.591569,66.4261557 193.885083,57.2272012 206.997372,58.6211808 C208.743695,58.806834 210.475625,59.0033727 212.18144,59.2464237 C212.733943,59.3251464 213.291751,59.4029337 213.853878,59.4813177 C215.158468,59.6632319 216.474026,59.8465926 217.787079,60.0508718 L218.661915,60.1902579 C225.09927,61.241972 231.826526,62.8614549 236.986443,68.0144332 C240.889249,71.9119921 243.813448,77.8014483 245.23642,86.708071 C247.095663,98.3453903 243.120654,117.723729 238.770002,139.330906 L238.580551,140.271866 C237.890376,143.700241 237.191343,147.180322 236.50179,150.693982 L236.044022,153.039529 C235.556986,155.549827 235.077075,158.073824 234.610494,160.607168 L234.263405,162.507565 L233.922672,164.406776 C228.900089,192.67064 226.130123,221.241925 234.44056,240.371255 C240.652266,254.669635 245.935235,262.932333 250.296038,267.670416 C253.412465,271.056463 256.180453,272.79959 258.553083,273.698031 C262.383549,275.148509 265.383302,274.528886 267.668585,273.982958 C268.14919,273.865733 268.422366,273.767797 268.665926,273.767797 C271.112421,273.767797 275.809409,272.387068 282.731388,269.370175 C283.375366,277.48654 282.878184,284.333295 281.156359,289.899262 C280.659157,291.506519 280.558961,292.472131 279.535062,293.024782 C275.748117,295.068793 270.498503,293.963559 265.488631,292.694915 C256.722323,290.485677 244.816282,287.548472 234.696635,275.178958 C233.697221,273.957347 232.737161,272.794212 231.813783,271.675534 C222.758366,260.704951 217.370091,254.220034 212.983093,237.93167 C209.908658,226.516685 208.870828,218.179476 208.826484,204.259903 L208.825284,202.840608 C208.836884,194.672214 209.157933,184.633261 209.605114,171.185381 C210.376069,148.00078 213.79261,132.71409 216.334239,121.332289 C218.054209,113.629996 219.354132,107.626433 219.354132,102.212372 C219.354132,100.105514 219.634597,97.1568247 219.926173,94.0567601 L220.027967,92.9734861 C220.416501,88.8241101 220.77388,84.5552796 220.633396,81.5249303 C220.563268,80.0122213 220.36004,78.7458615 220.056532,77.8111784 C219.39849,75.7846738 218.218924,74.7926623 217.050886,74.319003 C213.016784,72.6831053 207.083752,73.8938983 200.767445,77.2643023 C193.5468,81.1172643 185.881323,87.4227388 181.226749,92.1251087 C170.078149,103.388189 168.197052,106.181552 163.449564,130.566909 C160.514746,145.641534 157.152557,190.083423 153.408527,263.882996 C148.310625,260.529506 144.573436,256.539474 142.267189,251.849384 C137.44815,242.049164 135.781889,238.498147 133.16629,221.130117 C131.151349,207.750561 132.216961,189.426224 132.839043,178.568221 C133.052135,174.848508 133.207609,172.07036 133.207609,170.48586 C133.207609,164.09523 134.233106,147.312148 137.188741,122.72916 C137.780573,117.806695 138.265493,113.776123 138.700893,110.283341 L138.823994,109.299731 C139.331717,105.259782 139.777004,101.934213 140.256685,98.7255887 L140.372518,97.9574584 L140.582929,96.5951823 L140.761224,95.4724241 L140.885706,94.7044198 C141.871689,88.670391 143.122232,82.1576033 145.272592,71.2270532 C148.154429,56.5783156 150.225956,41.4023262 151.486676,25.701431 Z" id="font1-right" fill="#FFFFFF" />
|
||||||
|
<path d="M78.8891291,0 L95.8005079,20.9095227 C95.225924,21.6575488 94.6661502,22.3687531 94.1213578,23.0610595 C90.498037,27.665481 87.5143717,31.5165865 85.0892155,38.8498924 C84.5933419,40.3493393 84.11666,41.7284904 83.6520528,43.0728622 C83.5490334,43.3709557 83.4494774,43.6590286 83.3486814,43.9513373 L82.9235478,45.1899741 L82.6412306,46.0224097 L82.2485912,47.2004158 C80.4111972,52.7806913 78.6427308,59.1891547 76.4859025,71.9475546 C76.3776982,72.5876213 76.2738377,73.2121994 76.1751238,73.8203757 L75.8128598,76.0522841 L78.072301,76.1393226 C78.6520627,76.1616563 79.233139,76.1970078 79.8150176,76.2458239 C87.4717734,76.8881795 94.6057156,79.8018442 100.240592,83.8134948 C106.031451,87.9361953 110.302115,93.214716 111.609957,98.4281539 C115.240663,112.901207 110.993666,140.365178 108.836316,154.571762 C108.454224,157.088603 108.185012,158.862829 107.988397,160.271632 C107.819607,161.481054 107.625793,162.940163 107.407149,164.586499 C106.781752,169.295591 105.954511,175.526376 104.92697,181.804864 L104.678362,183.301099 C104.604458,183.739061 104.529572,184.176727 104.455334,184.604273 L104.223432,185.919703 L103.986615,187.248058 C102.465647,195.80355 101.02459,204.149885 98.485251,205.777632 C97.1963754,206.603817 95.9047926,207.065865 94.5842529,207.065865 C93.8588313,207.065865 93.1344185,206.927653 92.4069507,206.668298 L95.4781875,150.606035 L95.4781875,125.416711 C95.4781875,119.629476 93.0062228,110.908957 89.011414,104.252932 C85.2823118,98.0396202 80.2711525,93.9905379 75.163077,93.8351964 C74.0775524,93.8021846 72.9925685,93.9378881 71.9187092,94.2290372 L71.4263054,96.8428337 C70.7159074,100.613041 70.0525722,104.126731 69.4322911,107.412363 C64.7908163,131.998276 62.5529774,143.865744 61.0463793,154.851795 L60.8656498,156.191994 L60.6074832,158.19028 L60.4564922,159.410154 C59.6660213,165.902037 59.0513782,172.654885 58.2694423,182.117243 L58.1071301,184.090317 C57.9422433,186.102896 57.7692971,188.236388 57.5853124,190.511952 C54.4936668,228.750117 54.5110376,253.296254 57.6025561,277.724448 C58.251829,282.854795 58.3254515,286.119184 57.7997112,287.772531 C57.3533443,287.365152 56.8839604,286.712284 56.3626176,285.917213 C52.9105561,280.652664 48.8648383,269.062761 47.655685,256.055841 C44.8625825,226.010303 44.1900887,198.199537 45.6450201,172.623459 C47.1003171,147.040956 50.0546274,122.362378 54.5097037,98.5879441 C54.6592145,97.7900827 54.8106671,96.9918965 54.9640617,96.1933855 C55.1162766,95.4010154 55.2701489,94.6096509 55.4255602,93.8194108 C54.5845527,93.7480795 53.7194585,93.7489156 52.8332622,93.823043 C51.80541,93.9090195 50.8219304,94.0875047 49.8871243,94.3559954 C40.9569857,96.920869 32.323789,109.590977 26.0163924,128.220937 C25.5897822,129.481002 25.1964216,130.603972 24.8064948,131.717231 C23.9716729,134.100687 23.1541733,136.435766 22.0577662,139.963149 C20.3672515,146.863794 19.2883814,155.11982 17.6274898,174.892165 L17.5002077,176.41617 C17.0934812,181.313351 16.6513406,186.891553 16.1571801,193.292133 C9.8071489,188.98619 5.71118886,185.065024 4.00517668,181.431253 C1.70360048,176.528943 0.414450227,167.507602 0,154.408561 C0.00301447963,88.3903589 8.23407782,59.6337727 27.7303891,30.3791899 L35.9962997,39.4225457 C36.9078334,45.6050425 36.6691333,52.0098284 36.334543,58.397272 L36.1828539,61.2074098 C35.9059422,66.2844755 35.6468393,71.3361913 35.8481016,76.2587175 L59.2444284,76.2587175 L59.8164199,73.1824272 C62.3280788,59.6740418 63.7105033,52.2383301 64.7073785,47.2643843 C65.3214048,44.2279628 65.7161407,42.4192098 66.1158122,40.7377245 L66.5998483,38.7653101 C67.0726403,36.911647 67.4709203,35.4207871 67.9619662,33.5825073 C70.1167026,25.5160341 74.7481339,10.4984271 78.8891291,0 Z" id="font1-left" fill="#FFFFFF" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.0 KiB |
3
.ncurc.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"upgrade": true
|
||||||
|
}
|
7
.prettierignore
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
dist
|
||||||
|
.zeabur
|
||||||
|
node_modules
|
||||||
|
public/images
|
||||||
|
|
||||||
|
# The MDX files
|
||||||
|
*.mdx
|
20
.prettierrc
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"trailingComma": "all",
|
||||||
|
"tabWidth": 2,
|
||||||
|
"semi": true,
|
||||||
|
"singleQuote": true,
|
||||||
|
"printWidth": 120,
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"astroAllowShorthand": true,
|
||||||
|
"astroOrganizeImportsMode": "All",
|
||||||
|
"endOfLine": "lf",
|
||||||
|
"plugins": ["prettier-plugin-astro", "prettier-plugin-organize-imports", "prettier-plugin-astro-organize-imports"],
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": "**/*.astro",
|
||||||
|
"options": {
|
||||||
|
"parser": "astro"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
4
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["astro-build.astro-vscode", "esbenp.prettier-vscode", "biomejs.Biome"],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
11
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"command": "./node_modules/.bin/astro dev",
|
||||||
|
"name": "Development server",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node-terminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
146
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
{
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.codeActionsOnSave": {
|
||||||
|
"quickfix.biome": "explicit"
|
||||||
|
},
|
||||||
|
"[javascript]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"[astro]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"cSpell.words": [
|
||||||
|
"alexinea",
|
||||||
|
"ameho",
|
||||||
|
"amehochan",
|
||||||
|
"aplayer",
|
||||||
|
"artalk",
|
||||||
|
"astro",
|
||||||
|
"astrojs",
|
||||||
|
"batang",
|
||||||
|
"bigserial",
|
||||||
|
"biomejs",
|
||||||
|
"blogster",
|
||||||
|
"blurhash",
|
||||||
|
"captainofphb",
|
||||||
|
"cfilter",
|
||||||
|
"cimage",
|
||||||
|
"ckenh",
|
||||||
|
"cnip",
|
||||||
|
"csvg",
|
||||||
|
"ctan",
|
||||||
|
"cynosura",
|
||||||
|
"datetime",
|
||||||
|
"dichen",
|
||||||
|
"dinesh",
|
||||||
|
"dotum",
|
||||||
|
"duoshuo",
|
||||||
|
"emde",
|
||||||
|
"eparams",
|
||||||
|
"firis",
|
||||||
|
"flexdinesh",
|
||||||
|
"fmoran",
|
||||||
|
"fong",
|
||||||
|
"forencrypt",
|
||||||
|
"giscus",
|
||||||
|
"gotop",
|
||||||
|
"gungseo",
|
||||||
|
"hefei",
|
||||||
|
"heiti",
|
||||||
|
"HONORBKK",
|
||||||
|
"HUAWEIYAL",
|
||||||
|
"ianvs",
|
||||||
|
"iconfont",
|
||||||
|
"iroha",
|
||||||
|
"isodate",
|
||||||
|
"jamo",
|
||||||
|
"jian",
|
||||||
|
"jiasm",
|
||||||
|
"jing",
|
||||||
|
"jungshik",
|
||||||
|
"khalil",
|
||||||
|
"KHTML",
|
||||||
|
"koanughi",
|
||||||
|
"koaunghi",
|
||||||
|
"lantinghei",
|
||||||
|
"lastmod",
|
||||||
|
"lazyload",
|
||||||
|
"linuxapi",
|
||||||
|
"loveness",
|
||||||
|
"luoli",
|
||||||
|
"luxon",
|
||||||
|
"mboker",
|
||||||
|
"minagi",
|
||||||
|
"Miui",
|
||||||
|
"MMWEBID",
|
||||||
|
"MMWEBSDK",
|
||||||
|
"mochi",
|
||||||
|
"napi",
|
||||||
|
"netease",
|
||||||
|
"nextval",
|
||||||
|
"nian",
|
||||||
|
"noto",
|
||||||
|
"oppo",
|
||||||
|
"opposans",
|
||||||
|
"pandiyan",
|
||||||
|
"penheulim",
|
||||||
|
"pilgi",
|
||||||
|
"plaiceholder",
|
||||||
|
"playform",
|
||||||
|
"psql",
|
||||||
|
"pwsz",
|
||||||
|
"qrcode",
|
||||||
|
"quan",
|
||||||
|
"recma",
|
||||||
|
"Redmi",
|
||||||
|
"regclass",
|
||||||
|
"sauvignon",
|
||||||
|
"sheng",
|
||||||
|
"shiki",
|
||||||
|
"shinmun",
|
||||||
|
"shmily",
|
||||||
|
"skrs",
|
||||||
|
"syhily",
|
||||||
|
"taza",
|
||||||
|
"teruteru",
|
||||||
|
"timestamptz",
|
||||||
|
"toolsmp",
|
||||||
|
"tsconfigs",
|
||||||
|
"ultrahtml",
|
||||||
|
"unpic",
|
||||||
|
"urlset",
|
||||||
|
"varchar",
|
||||||
|
"velite",
|
||||||
|
"vercel",
|
||||||
|
"weapi",
|
||||||
|
"wechat",
|
||||||
|
"weibo",
|
||||||
|
"xiao",
|
||||||
|
"xinsenz",
|
||||||
|
"XWEB",
|
||||||
|
"yefengs",
|
||||||
|
"yetgul",
|
||||||
|
"ying",
|
||||||
|
"yuaanlin",
|
||||||
|
"yual",
|
||||||
|
"yufan",
|
||||||
|
"yyjn",
|
||||||
|
"zeabur"
|
||||||
|
],
|
||||||
|
"sqltools.connections": [
|
||||||
|
{
|
||||||
|
"previewLimit": 50,
|
||||||
|
"server": "localhost",
|
||||||
|
"port": 5432,
|
||||||
|
"driver": "PostgreSQL",
|
||||||
|
"name": "DuoShuo",
|
||||||
|
"database": "duoshuo",
|
||||||
|
"username": "duoshuo",
|
||||||
|
"password": "Twgdh@2024"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"[mdx]": {
|
||||||
|
"editor.defaultFormatter": "unifiedjs.vscode-mdx"
|
||||||
|
}
|
||||||
|
}
|
18
Dockerfile
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
FROM node:lts-alpine AS base
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package.json package-lock.json ./
|
||||||
|
|
||||||
|
FROM base AS build
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
ENV ASTRO_TELEMETRY_DISABLED=1
|
||||||
|
RUN NODE_ENV=development npm install
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM base AS runtime
|
||||||
|
RUN npm install --omit=dev
|
||||||
|
COPY --from=build /app/dist ./dist
|
||||||
|
ENV HOST=0.0.0.0
|
||||||
|
ENV PORT=4321
|
||||||
|
EXPOSE 4321
|
||||||
|
CMD node ./dist/server/entry.mjs
|
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 Yufan Sheng
|
||||||
|
|
||||||
|
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.
|
240
README.md
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
![yufan.me](docs/poster/github-poster.png#gh-light-mode-only)
|
||||||
|
![yufan.me](docs/poster/github-poster-dark.png#gh-dark-mode-only)
|
||||||
|
|
||||||
|
# Yufan Personal Weblog
|
||||||
|
|
||||||
|
This is a personal weblog for [Yufan Sheng](https://github.com/syhily)
|
||||||
|
which is built on [Astro](https://astro.build) and hosted on [zeabur](https://zeabur.com).
|
||||||
|
|
||||||
|
[![Deployed on Zeabur](https://zeabur.com/deployed-on-zeabur-dark.svg)](https://zeabur.com?referralCode=syhily&utm_source=syhily)
|
||||||
|
|
||||||
|
## History
|
||||||
|
|
||||||
|
The blog's source code has evolved through four stages. Initially, it was built on WordPress in 2011.
|
||||||
|
In 2017, I switched to Hexo and converted all my blog posts to Markdown;
|
||||||
|
the code is available in the [Hexo branch](https://github.com/syhily/yufan.me/tree/hexo).
|
||||||
|
By 2024, the blog had been rewritten using Next.js with App Router;
|
||||||
|
you can find this version in the [Next branch](https://github.com/syhily/yufan.me/tree/next).
|
||||||
|
Currently, the blog has transitioned to Astro, which is located in
|
||||||
|
the [Astro branch](https://github.com/syhily/yufan.me/tree/astro).
|
||||||
|
|
||||||
|
## Core Frameworks
|
||||||
|
|
||||||
|
- [Node.js](https://nodejs.org): The latest Node.js LTS
|
||||||
|
- [Astro](https://astro.build): Core engine
|
||||||
|
- [Artalk](https://artalk.js.org): The self-hosted comment system
|
||||||
|
- [Fuse.js](https://www.fusejs.io): Search engine
|
||||||
|
- [Postgres](https://zeabur.com/docs/marketplace/postgresql): The view counter and like button for all my posts
|
||||||
|
|
||||||
|
## Local Development
|
||||||
|
|
||||||
|
This weblog is still under [development](#todo-checklist). Many ideas and thoughts are in my checklists.
|
||||||
|
You can fork and clone this project for your own use. But do so at your own risk.
|
||||||
|
|
||||||
|
The project uses npm for development. Run it locally with these commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Install the dependencies by using bun.
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# Init git hooks.
|
||||||
|
npx husky
|
||||||
|
|
||||||
|
# Check the newer dependencies.
|
||||||
|
npm update
|
||||||
|
|
||||||
|
# Start local development with a live preview. The weblog is hosted on http://localhost:4321
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Postgres Database
|
||||||
|
|
||||||
|
This blog uses Postgres to store post views and favorites. For security reasons,
|
||||||
|
the configuration isn't defined in the `.env` file.
|
||||||
|
Modify the `.env.example` file and rename it to `.env` for local development.
|
||||||
|
|
||||||
|
You can create a Postgres database by installing [Postgres.app](https://postgresapp.com).
|
||||||
|
The default username is `your system username`, with no password.
|
||||||
|
|
||||||
|
Create and initialize the database and user with these commands:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- Create a database.
|
||||||
|
CREATE DATABASE <db>;
|
||||||
|
|
||||||
|
-- Create a user.
|
||||||
|
CREATE USER <db_user> PASSWORD '<strong_password>';
|
||||||
|
|
||||||
|
-- Grant the connection.
|
||||||
|
GRANT CONNECT ON DATABASE <db> TO <db_user>;
|
||||||
|
|
||||||
|
-- Grant the database privilege.
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE <db> TO <db_user>;
|
||||||
|
|
||||||
|
-- If you are using Postgres 15 or above.
|
||||||
|
-- Switch to the created database and execute SQL.
|
||||||
|
GRANT ALL ON SCHEMA public TO <db_user>;
|
||||||
|
```
|
||||||
|
|
||||||
|
Most tables are created by the Artalk. [Execute the Artalk](https://artalk.js.org/guide/deploy.html) to create the tables.
|
||||||
|
|
||||||
|
The like table should be created manually. Execute the SQL below.
|
||||||
|
|
||||||
|
```sql
|
||||||
|
-- Sequence and defined type
|
||||||
|
CREATE SEQUENCE IF NOT EXISTS atk_likes_id_seq;
|
||||||
|
|
||||||
|
-- Table Definition
|
||||||
|
CREATE TABLE "public"."atk_likes" (
|
||||||
|
"id" int8 NOT NULL DEFAULT nextval('atk_likes_id_seq'::regclass),
|
||||||
|
"created_at" timestamptz,
|
||||||
|
"updated_at" timestamptz,
|
||||||
|
"deleted_at" timestamptz,
|
||||||
|
"token" varchar(255),
|
||||||
|
"page_key" varchar(255),
|
||||||
|
PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Create table index
|
||||||
|
CREATE INDEX IF NOT EXISTS "idx_atk_likes_token" ON "public"."atk_likes" ("token");
|
||||||
|
```
|
||||||
|
|
||||||
|
### Comments Integration
|
||||||
|
|
||||||
|
This weblog use artalk as its backend comment service. But since artalk didn't provide the latest comments API.
|
||||||
|
We decide to query it directly from Postgres database. So the comments and fav clicks are living in the same database.
|
||||||
|
|
||||||
|
## Writing
|
||||||
|
|
||||||
|
All the posts should be placed in `src/content/posts` directory with MDX format.
|
||||||
|
All the pages should be placed in `src/content/pages` directory with MDX format.
|
||||||
|
You can add any scripts or other customizable features by leveraging the MDX.
|
||||||
|
|
||||||
|
### Front Matter
|
||||||
|
|
||||||
|
Front-matter is a block of YAML at the beginning of the file that is used to configure settings for your writings.
|
||||||
|
Front-matter is terminated by three dashes when written in YAML.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
title: Hello World
|
||||||
|
date: 2013/7/13 20:46:25
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
### Post Front Matter Settings
|
||||||
|
|
||||||
|
| Setting | Description | Required | Default |
|
||||||
|
| ----------- | ------------------------------------ | -------- | -------------------- |
|
||||||
|
| `id` | ID (unique), used as the permalink | true | Filename |
|
||||||
|
| `title` | Title | true | Filename |
|
||||||
|
| `date` | Published date | true | |
|
||||||
|
| `updated` | Updated date | false | Published date |
|
||||||
|
| `comments` | Enables comment feature for the post | false | `true` |
|
||||||
|
| `tags` | Tags | false | `null` |
|
||||||
|
| `category` | Category | true | `null` |
|
||||||
|
| `summary` | Post summary in plain text | false | First 140 characters |
|
||||||
|
| `cover` | The cover image | false | `null` |
|
||||||
|
| `published` | Whether the post should be published | false | `true` |
|
||||||
|
|
||||||
|
### Pages Front Matter Settings
|
||||||
|
|
||||||
|
| Setting | Description | Required | Default |
|
||||||
|
| ----------- | ------------------------------------ | -------- | -------------- |
|
||||||
|
| `id` | ID (unique), used as the permalink | true | Filename |
|
||||||
|
| `title` | Title | true | Filename |
|
||||||
|
| `date` | Published date | true | |
|
||||||
|
| `updated` | Updated date | false | Published date |
|
||||||
|
| `comments` | Enables comment feature for the post | false | `true` |
|
||||||
|
| `cover` | The cover image | false | `null` |
|
||||||
|
| `published` | Whether the post should be published | false | `true` |
|
||||||
|
|
||||||
|
## Weblog Design
|
||||||
|
|
||||||
|
Almost all the design resources are placed in the file [yufan.me.sketch](docs/yufan.me.sketch).
|
||||||
|
I mainly use the [Sketch](https://www.sketch.com) as my design tools.
|
||||||
|
|
||||||
|
The favicon is almost the same as the weblog logo. The main different is that we simplify the elements used in logo.
|
||||||
|
Pick up the main park from the logo and change the dot color for readability in small icon.
|
||||||
|
The background color is included in the exported favicon.
|
||||||
|
That is because we want to make sure it could be viewed clearly in any browser.
|
||||||
|
|
||||||
|
The size of the favicon is following this
|
||||||
|
[tutorial](https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs)
|
||||||
|
to get it worked everywhere.
|
||||||
|
|
||||||
|
## Deploy the Weblog
|
||||||
|
|
||||||
|
This weblog is deployed on the [zeabur](https://zeabur.com) platform.
|
||||||
|
You can check their documents and get your own weblog to be published without any budget at first.
|
||||||
|
|
||||||
|
Or you can host on your own machine. Use [Dockerfile](./Dockerfile) to build a image and run it locally.
|
||||||
|
|
||||||
|
The comment system is leverage the [Artalk](https://artalk.js.org), a self-hosted comment system.
|
||||||
|
You should host it on your own machine.
|
||||||
|
But it can be modified and changed to any other comment solutions.
|
||||||
|
For instance, the [giscus](https://giscus.app) is an opinionated choice.
|
||||||
|
|
||||||
|
## TODO Checklist
|
||||||
|
|
||||||
|
- [ ] Check article grammar errors by using ChatGPT. Remain **54** posts.
|
||||||
|
- [ ] Add music to the articles. Remain **54** posts.
|
||||||
|
- [ ] Clean up the legacy links in the weblog comments.
|
||||||
|
- [ ] External the article inner links with different target.
|
||||||
|
- [ ] Artalk integration with custom stylesheet.
|
||||||
|
- [ ] Slide share components integration.
|
||||||
|
|
||||||
|
### Long Term Goals
|
||||||
|
|
||||||
|
- [ ] Add han.js support for better typography.
|
||||||
|
- [ ] Drop bootstrap, in favor of tailwind css.
|
||||||
|
- [ ] Use self developed duoshuo as the comments solution.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The source code of this blog is licensed under the [MIT](LICENSE) license,
|
||||||
|
feel to free to use it without any legal risks.
|
||||||
|
|
||||||
|
The [content](src/content) of this blog's posts is licensed under the
|
||||||
|
[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) license.
|
||||||
|
|
||||||
|
### Logo Fonts License
|
||||||
|
|
||||||
|
The fonts used in weblog logo is [M+A1](https://booth.pm/ja/items/2347968) with [license](licenses/LICENSE.m-plus.txt),
|
||||||
|
[UnGungseo](https://kldp.net/unfonts) with [license](licenses/LICENSE.un-fonts.txt),
|
||||||
|
and [Iroha Mochi](https://modi.jpn.org/font_iroha-mochi.php) with [license](licenses/LICENSE.iroha-mochi.txt).
|
||||||
|
|
||||||
|
They are the fonts that can be used in business without any charge.
|
||||||
|
|
||||||
|
### Article Font License
|
||||||
|
|
||||||
|
The [OPPOSans 3.0](https://www.coloros.com/article/A00000050) is used for reading in my weblog.
|
||||||
|
It can be used in business scenarios without any modification.
|
||||||
|
I just placed it under the [opposans](src/asserts/styles/opposans/) directory for better integration.
|
||||||
|
The license file is [here](licenses/LICENSE.oppo-sans.txt)
|
||||||
|
|
||||||
|
### Open Graph Font License
|
||||||
|
|
||||||
|
The [Noto Sans Simplified Chinese](https://fonts.google.com/noto/specimen/Noto+Sans+SC)
|
||||||
|
is used for rendering the open graph image in my weblog.
|
||||||
|
It can be used in business scenarios without any modification.
|
||||||
|
The license file is [here](LICENSE.noto-sans-sc.txt)
|
||||||
|
|
||||||
|
### Third Party Codes License
|
||||||
|
|
||||||
|
Some codes in this project is copied from other project. I have add the comments in the files's header.
|
||||||
|
|
||||||
|
The source codes used from third party projects are:
|
||||||
|
|
||||||
|
- [seo.ts](src/helpers/seo.ts)
|
||||||
|
from [flexdinesh/blogster](https://github.com/flexdinesh/blogster/blob/main/packages/shared/src/seo.ts)
|
||||||
|
with [license](licenses/LICENSE.flexdinesh.txt)
|
||||||
|
- [og.ts](src/helpers/og.ts)
|
||||||
|
from [yuaanlin/yual.in](https://github.com/yuaanlin/yual.in/blob/main/pages/og_image/%5Bslug%5D.tsx)
|
||||||
|
with [permission](licenses/LICENSE.yuaanlin.jpg)
|
||||||
|
- [images.ts](src/helpers/images.ts)
|
||||||
|
from [zce/velite](https://github.com/zce/velite/blob/main/src/assets.ts)
|
||||||
|
with [license](licenses/LICENSE.zce.txt)
|
||||||
|
- [images.ts](src/helpers/images.ts)
|
||||||
|
from [vercel/next.js](https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/image-blur-svg.ts)
|
||||||
|
with [license](licenses/LICENSE.vercel.txt)
|
57
astro.config.ts
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import mdx from '@astrojs/mdx';
|
||||||
|
import node from '@astrojs/node';
|
||||||
|
import { defineConfig, envField } from 'astro/config';
|
||||||
|
import arraybuffer from 'vite-plugin-arraybuffer';
|
||||||
|
import { astroImage } from './remark-plugins/images';
|
||||||
|
|
||||||
|
// Dynamic switch the site. This is hard coded.
|
||||||
|
const port = 4321;
|
||||||
|
const site = import.meta.env.PROD ? 'https://yufan.me' : `http://localhost:${port}`;
|
||||||
|
|
||||||
|
// https://astro.build/config
|
||||||
|
export default defineConfig({
|
||||||
|
site: site,
|
||||||
|
output: 'server',
|
||||||
|
security: {
|
||||||
|
checkOrigin: true,
|
||||||
|
},
|
||||||
|
experimental: {
|
||||||
|
env: {
|
||||||
|
schema: {
|
||||||
|
POSTGRES_HOST: envField.string({ context: 'server', access: 'secret' }),
|
||||||
|
POSTGRES_PORT: envField.number({ context: 'server', access: 'secret' }),
|
||||||
|
POSTGRES_USERNAME: envField.string({ context: 'server', access: 'secret' }),
|
||||||
|
POSTGRES_PASSWORD: envField.string({ context: 'server', access: 'secret' }),
|
||||||
|
POSTGRES_DATABASE: envField.string({ context: 'server', access: 'secret' }),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
integrations: [
|
||||||
|
mdx({
|
||||||
|
remarkPlugins: [astroImage],
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
adapter: node({
|
||||||
|
mode: 'standalone',
|
||||||
|
}),
|
||||||
|
markdown: {
|
||||||
|
gfm: true,
|
||||||
|
shikiConfig: {
|
||||||
|
theme: 'solarized-light',
|
||||||
|
wrap: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
host: true,
|
||||||
|
port: port,
|
||||||
|
},
|
||||||
|
devToolbar: {
|
||||||
|
// I don't need such toolbar.
|
||||||
|
enabled: false,
|
||||||
|
},
|
||||||
|
vite: {
|
||||||
|
plugins: [arraybuffer()],
|
||||||
|
// Add this for avoiding the needless import optimize in Vite.
|
||||||
|
optimizeDeps: { exclude: ['@napi-rs/canvas'] },
|
||||||
|
},
|
||||||
|
});
|
11
biome.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
|
||||||
|
"formatter": { "enabled": false },
|
||||||
|
"organizeImports": { "enabled": false },
|
||||||
|
"linter": { "enabled": true, "rules": { "recommended": true } },
|
||||||
|
"vcs": {
|
||||||
|
"enabled": true,
|
||||||
|
"clientKind": "git",
|
||||||
|
"useIgnoreFile": true
|
||||||
|
}
|
||||||
|
}
|
BIN
docs/poster/github-poster-dark.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
docs/poster/github-poster.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
docs/yufan.me.sketch
Normal file
21
licenses/LICENSE.flexdinesh.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 Dinesh Pandiyan
|
||||||
|
|
||||||
|
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.
|
64
licenses/LICENSE.iroha-mochi.txt
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
いろはモチ ver.1.00
|
||||||
|
OpenType形式
|
||||||
|
|
||||||
|
公開日 2018.01.12
|
||||||
|
MODI工場/倒神神倒
|
||||||
|
|
||||||
|
紹介・詳細ページ
|
||||||
|
http://modi.jpn.org/font_iroha-mochi.php
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
懐かしい絵本みたいなひらがなフォントです。
|
||||||
|
|
||||||
|
ウェイト(太さ)は1種類のみです。
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
## 仕様・収録文字について
|
||||||
|
|
||||||
|
−ひらがな・カタカナ
|
||||||
|
−illustratorやInDesignの合成フォント機能における「かな」に含まれる全文字です。
|
||||||
|
−おまけでいくつか基本的な約物(記号)
|
||||||
|
|
||||||
|
ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゝゞ
|
||||||
|
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶーヽヾ
|
||||||
|
濁点付きの『う』
|
||||||
|
小書きの『か』
|
||||||
|
小書きの『け』
|
||||||
|
濁点付きの『ワ』
|
||||||
|
濁点付きの『ヰ』
|
||||||
|
濁点付きの『ヱ』
|
||||||
|
濁点付きの『ヲ』
|
||||||
|
"',{}、。,.・:;?!゛゜´`¨^ ̄_〆ー—‐/〜|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】′″
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
## ライセンスについて
|
||||||
|
|
||||||
|
−「いろはモチ」は、MODI工場独自ライセンスです。
|
||||||
|
|
||||||
|
−連絡表記不要。商用、非商用問わずご自由にどうぞ。素材集書籍などへの収録も同様です。
|
||||||
|
|
||||||
|
−通常利用、商用利用、改変、再配布、埋め込みもOK。とにかくご自由にどうぞ。
|
||||||
|
|
||||||
|
−オリジナル・改造フォントともに、フォント単体で有料販売してはいけません。
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
## 免責事項
|
||||||
|
|
||||||
|
このフォントの使用に関してはすべて無保証とさせていただきます。
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
## 更新履歴
|
||||||
|
|
||||||
|
■2018.01.12 v1.00
|
||||||
|
公開
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
## MODI工場ホームページ
|
||||||
|
http://modi.jpn.org/
|
||||||
|
|
||||||
|
## 連絡先
|
||||||
|
modi@modi.jpn.org
|
||||||
|
|
||||||
|
誤字などのミスがあったら教えていただければ幸いです。
|
||||||
|
お返事はできないですがご了承ください。
|
10
licenses/LICENSE.m-plus.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
M+ FONTS Copyright (C) 2002-2019 M+ FONTS PROJECT
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
These fonts are free software.
|
||||||
|
Unlimited permission is granted to use, copy, and distribute them, with
|
||||||
|
or without modification, either commercially or noncommercially.
|
||||||
|
THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.
|
||||||
|
|
||||||
|
http://mplus-fonts.osdn.jp
|
93
licenses/LICENSE.noto-sans-sc.txt
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'
|
||||||
|
|
||||||
|
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://openfontlicense.org
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
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
licenses/LICENSE.oppo-sans.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
* OPPO Sans(含中文及西文,3 款字重)允许个人或企业免费使用,含商业用途,版权归 OPPO 广东移动通信有限公司所有。
|
||||||
|
您应遵守以下条款,违者将会被追究法律责任:
|
||||||
|
1. 不对字体进行改编或二次开发;
|
||||||
|
2. 不对外售卖字体;
|
||||||
|
3. 不向他方提供其他下载渠道;
|
||||||
|
4. 不用于违法用途。
|
37
licenses/LICENSE.un-fonts.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Copyright (c) 1998-2004 Koanughi Un.
|
||||||
|
|
||||||
|
Please see the enclosed file COPYING for license information (GPL). If you
|
||||||
|
did not receive this file, see http://www.gnu.org/licenses/gpl.txt.
|
||||||
|
|
||||||
|
|
||||||
|
Un-fonts is comes from the HLaTeX as type1 fonts in 1998 by Koaunghi Un,
|
||||||
|
he made type1 fonts to use with Korean TeX(HLaTeX [1]) in the late 1990's and
|
||||||
|
release it under the GNU GPL license.
|
||||||
|
|
||||||
|
It converted to TrueType with the FontForge(PfaEdit) by Won-kyu Park in 2003.
|
||||||
|
|
||||||
|
|
||||||
|
Core families (9 fonts)
|
||||||
|
* UnBatang, UnBatangBold: serif
|
||||||
|
* UnDotum, UnDotumBold: sans-serif
|
||||||
|
* UnGraphic, UnGraphicBold: sans-serif style
|
||||||
|
* UnPilgi, UnPilgiBold: script
|
||||||
|
* UnGungseo: cursive, brush-stroke
|
||||||
|
|
||||||
|
Extra families (10 fonts)
|
||||||
|
* UnPen, UnPenheulim: script
|
||||||
|
* UnTaza: typewriter style
|
||||||
|
* UnBom: decorative
|
||||||
|
* UnShinmun
|
||||||
|
* UnYetgul: old Korean printing style
|
||||||
|
* UnJamoSora, UnJamoNovel, UnJamoDotum, UnJamoBatang
|
||||||
|
|
||||||
|
Please send problems and feedback at http://kldp.net/projects/unfonts/
|
||||||
|
|
||||||
|
|
||||||
|
Project maintainers:
|
||||||
|
|
||||||
|
* Won-kyu Park <wkpark@kldp.org>
|
||||||
|
* Jungshik Shin <jshin@mailaps.org>
|
||||||
|
----
|
||||||
|
[1] http://ftp.dante.de/tex-archive/fonts/korean/HLaTeX and other CTAN archives)
|
21
licenses/LICENSE.vercel.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2024 Vercel, 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.
|
BIN
licenses/LICENSE.yuaanlin.jpg
Normal file
After Width: | Height: | Size: 88 KiB |
21
licenses/LICENSE.zce.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2024 zce <w@zce.me> (https://zce.me)
|
||||||
|
|
||||||
|
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.
|
9418
package-lock.json
generated
Normal file
80
package.json
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
"name": "yufan.me",
|
||||||
|
"version": "3.0.0",
|
||||||
|
"private": true,
|
||||||
|
"keywords": [
|
||||||
|
"blog",
|
||||||
|
"astro",
|
||||||
|
"yufan",
|
||||||
|
"ameho",
|
||||||
|
"syhily"
|
||||||
|
],
|
||||||
|
"homepage": "https://yufan.me",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/syhily/yufan.me/issues",
|
||||||
|
"email": "syhily@gmail.com"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/syhily/yufan.me.git"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"author": {
|
||||||
|
"name": "Yufan Sheng",
|
||||||
|
"email": "syhily@gmail.com",
|
||||||
|
"url": "https://yufan.me"
|
||||||
|
},
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"astro": "astro",
|
||||||
|
"build": "rimraf dist && astro check && astro build",
|
||||||
|
"dev": "astro dev",
|
||||||
|
"lint": "biome check --write --use-server . && prettier . --write",
|
||||||
|
"prepare": "npx husky",
|
||||||
|
"preview": "astro preview",
|
||||||
|
"start": "astro dev"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"**/*": [
|
||||||
|
"biome check --no-errors-on-unmatched --files-ignore-unknown=true",
|
||||||
|
"prettier --write --ignore-unknown"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@astrojs/mdx": "^3.1.0",
|
||||||
|
"@astrojs/node": "^8.3.0",
|
||||||
|
"@astrojs/rss": "^4.0.6",
|
||||||
|
"astro": "^4.10.2",
|
||||||
|
"drizzle-orm": "^0.31.2",
|
||||||
|
"fuse.js": "^7.0.0",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"luxon": "^3.4.4",
|
||||||
|
"pg": "^8.12.0",
|
||||||
|
"qrcode-svg": "^1.1.0",
|
||||||
|
"ultrahtml": "^1.5.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@astrojs/check": "^0.7.0",
|
||||||
|
"@biomejs/biome": "^1.8.1",
|
||||||
|
"@napi-rs/canvas": "^0.1.53",
|
||||||
|
"@types/lodash": "^4.17.5",
|
||||||
|
"@types/luxon": "^3.4.2",
|
||||||
|
"@types/node": "^20.14.2",
|
||||||
|
"@types/pg": "^8.11.6",
|
||||||
|
"@types/qrcode-svg": "^1.1.4",
|
||||||
|
"@types/unist": "^3.0.2",
|
||||||
|
"aplayer": "^1.10.1",
|
||||||
|
"artalk": "^2.8.7",
|
||||||
|
"bootstrap": "^5.3.3",
|
||||||
|
"prettier": "^3.3.2",
|
||||||
|
"prettier-plugin-astro": "^0.14.0",
|
||||||
|
"prettier-plugin-astro-organize-imports": "^0.4.8",
|
||||||
|
"prettier-plugin-organize-imports": "^3.2.4",
|
||||||
|
"resize-sensor": "^0.0.6",
|
||||||
|
"rimraf": "^5.0.7",
|
||||||
|
"sharp": "^0.33.4",
|
||||||
|
"typescript": "^5.4.5",
|
||||||
|
"unist-util-visit": "^5.0.0",
|
||||||
|
"vite-plugin-arraybuffer": "^0.0.7"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
public/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
12
public/favicon.svg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="300px" viewBox="0 0 300 300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>favicon</title>
|
||||||
|
<g id="favicon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<rect fill="#263148" x="0" y="0" width="300" height="300" />
|
||||||
|
<g id="logo-white" transform="translate(9, 3.888)">
|
||||||
|
<path d="M159,154.195523 C167.013592,152.617424 174.05936,152.751451 180.129673,154.674602 C190.120795,157.839913 194.348511,161.02564 199.517296,168.40144 C202.925628,173.265093 205.718707,181.861769 208,194.149433 C202.817237,195.503225 198.494331,195.463815 195.074572,193.809733 C188.963104,190.853715 183.30068,186.732689 175.022826,177.505654 C169.768056,171.648346 164.430736,163.875789 159,154.195523 Z" id="font1-dot" fill="#EEB4B4" />
|
||||||
|
<path d="M151.486676,25.701431 C155.616373,28.5082875 160.109234,31.601356 164.965286,34.9806001 C165.393463,35.2785613 165.822641,35.5757097 166.255249,35.8738863 L167.105716,36.458366 C168.619019,37.4954138 170.108644,38.5008303 171.499238,39.4303971 L172.608374,40.1697969 C174.26724,41.2727003 175.735093,42.2354804 176.860606,42.9690389 L176.448028,45.1207071 L166.710146,84.6326462 C180.591569,66.4261557 193.885083,57.2272012 206.997372,58.6211808 C208.743695,58.806834 210.475625,59.0033727 212.18144,59.2464237 C212.733943,59.3251464 213.291751,59.4029337 213.853878,59.4813177 C215.158468,59.6632319 216.474026,59.8465926 217.787079,60.0508718 L218.661915,60.1902579 C225.09927,61.241972 231.826526,62.8614549 236.986443,68.0144332 C240.889249,71.9119921 243.813448,77.8014483 245.23642,86.708071 C247.095663,98.3453903 243.120654,117.723729 238.770002,139.330906 L238.580551,140.271866 C237.890376,143.700241 237.191343,147.180322 236.50179,150.693982 L236.044022,153.039529 C235.556986,155.549827 235.077075,158.073824 234.610494,160.607168 L234.263405,162.507565 L233.922672,164.406776 C228.900089,192.67064 226.130123,221.241925 234.44056,240.371255 C240.652266,254.669635 245.935235,262.932333 250.296038,267.670416 C253.412465,271.056463 256.180453,272.79959 258.553083,273.698031 C262.383549,275.148509 265.383302,274.528886 267.668585,273.982958 C268.14919,273.865733 268.422366,273.767797 268.665926,273.767797 C271.112421,273.767797 275.809409,272.387068 282.731388,269.370175 C283.375366,277.48654 282.878184,284.333295 281.156359,289.899262 C280.659157,291.506519 280.558961,292.472131 279.535062,293.024782 C275.748117,295.068793 270.498503,293.963559 265.488631,292.694915 C256.722323,290.485677 244.816282,287.548472 234.696635,275.178958 C233.697221,273.957347 232.737161,272.794212 231.813783,271.675534 C222.758366,260.704951 217.370091,254.220034 212.983093,237.93167 C209.908658,226.516685 208.870828,218.179476 208.826484,204.259903 L208.825284,202.840608 C208.836884,194.672214 209.157933,184.633261 209.605114,171.185381 C210.376069,148.00078 213.79261,132.71409 216.334239,121.332289 C218.054209,113.629996 219.354132,107.626433 219.354132,102.212372 C219.354132,100.105514 219.634597,97.1568247 219.926173,94.0567601 L220.027967,92.9734861 C220.416501,88.8241101 220.77388,84.5552796 220.633396,81.5249303 C220.563268,80.0122213 220.36004,78.7458615 220.056532,77.8111784 C219.39849,75.7846738 218.218924,74.7926623 217.050886,74.319003 C213.016784,72.6831053 207.083752,73.8938983 200.767445,77.2643023 C193.5468,81.1172643 185.881323,87.4227388 181.226749,92.1251087 C170.078149,103.388189 168.197052,106.181552 163.449564,130.566909 C160.514746,145.641534 157.152557,190.083423 153.408527,263.882996 C148.310625,260.529506 144.573436,256.539474 142.267189,251.849384 C137.44815,242.049164 135.781889,238.498147 133.16629,221.130117 C131.151349,207.750561 132.216961,189.426224 132.839043,178.568221 C133.052135,174.848508 133.207609,172.07036 133.207609,170.48586 C133.207609,164.09523 134.233106,147.312148 137.188741,122.72916 C137.780573,117.806695 138.265493,113.776123 138.700893,110.283341 L138.823994,109.299731 C139.331717,105.259782 139.777004,101.934213 140.256685,98.7255887 L140.372518,97.9574584 L140.582929,96.5951823 L140.761224,95.4724241 L140.885706,94.7044198 C141.871689,88.670391 143.122232,82.1576033 145.272592,71.2270532 C148.154429,56.5783156 150.225956,41.4023262 151.486676,25.701431 Z" id="font1-right" fill="#FFFFFF" />
|
||||||
|
<path d="M78.8891291,0 L95.8005079,20.9095227 C95.225924,21.6575488 94.6661502,22.3687531 94.1213578,23.0610595 C90.498037,27.665481 87.5143717,31.5165865 85.0892155,38.8498924 C84.5933419,40.3493393 84.11666,41.7284904 83.6520528,43.0728622 C83.5490334,43.3709557 83.4494774,43.6590286 83.3486814,43.9513373 L82.9235478,45.1899741 L82.6412306,46.0224097 L82.2485912,47.2004158 C80.4111972,52.7806913 78.6427308,59.1891547 76.4859025,71.9475546 C76.3776982,72.5876213 76.2738377,73.2121994 76.1751238,73.8203757 L75.8128598,76.0522841 L78.072301,76.1393226 C78.6520627,76.1616563 79.233139,76.1970078 79.8150176,76.2458239 C87.4717734,76.8881795 94.6057156,79.8018442 100.240592,83.8134948 C106.031451,87.9361953 110.302115,93.214716 111.609957,98.4281539 C115.240663,112.901207 110.993666,140.365178 108.836316,154.571762 C108.454224,157.088603 108.185012,158.862829 107.988397,160.271632 C107.819607,161.481054 107.625793,162.940163 107.407149,164.586499 C106.781752,169.295591 105.954511,175.526376 104.92697,181.804864 L104.678362,183.301099 C104.604458,183.739061 104.529572,184.176727 104.455334,184.604273 L104.223432,185.919703 L103.986615,187.248058 C102.465647,195.80355 101.02459,204.149885 98.485251,205.777632 C97.1963754,206.603817 95.9047926,207.065865 94.5842529,207.065865 C93.8588313,207.065865 93.1344185,206.927653 92.4069507,206.668298 L95.4781875,150.606035 L95.4781875,125.416711 C95.4781875,119.629476 93.0062228,110.908957 89.011414,104.252932 C85.2823118,98.0396202 80.2711525,93.9905379 75.163077,93.8351964 C74.0775524,93.8021846 72.9925685,93.9378881 71.9187092,94.2290372 L71.4263054,96.8428337 C70.7159074,100.613041 70.0525722,104.126731 69.4322911,107.412363 C64.7908163,131.998276 62.5529774,143.865744 61.0463793,154.851795 L60.8656498,156.191994 L60.6074832,158.19028 L60.4564922,159.410154 C59.6660213,165.902037 59.0513782,172.654885 58.2694423,182.117243 L58.1071301,184.090317 C57.9422433,186.102896 57.7692971,188.236388 57.5853124,190.511952 C54.4936668,228.750117 54.5110376,253.296254 57.6025561,277.724448 C58.251829,282.854795 58.3254515,286.119184 57.7997112,287.772531 C57.3533443,287.365152 56.8839604,286.712284 56.3626176,285.917213 C52.9105561,280.652664 48.8648383,269.062761 47.655685,256.055841 C44.8625825,226.010303 44.1900887,198.199537 45.6450201,172.623459 C47.1003171,147.040956 50.0546274,122.362378 54.5097037,98.5879441 C54.6592145,97.7900827 54.8106671,96.9918965 54.9640617,96.1933855 C55.1162766,95.4010154 55.2701489,94.6096509 55.4255602,93.8194108 C54.5845527,93.7480795 53.7194585,93.7489156 52.8332622,93.823043 C51.80541,93.9090195 50.8219304,94.0875047 49.8871243,94.3559954 C40.9569857,96.920869 32.323789,109.590977 26.0163924,128.220937 C25.5897822,129.481002 25.1964216,130.603972 24.8064948,131.717231 C23.9716729,134.100687 23.1541733,136.435766 22.0577662,139.963149 C20.3672515,146.863794 19.2883814,155.11982 17.6274898,174.892165 L17.5002077,176.41617 C17.0934812,181.313351 16.6513406,186.891553 16.1571801,193.292133 C9.8071489,188.98619 5.71118886,185.065024 4.00517668,181.431253 C1.70360048,176.528943 0.414450227,167.507602 0,154.408561 C0.00301447963,88.3903589 8.23407782,59.6337727 27.7303891,30.3791899 L35.9962997,39.4225457 C36.9078334,45.6050425 36.6691333,52.0098284 36.334543,58.397272 L36.1828539,61.2074098 C35.9059422,66.2844755 35.6468393,71.3361913 35.8481016,76.2587175 L59.2444284,76.2587175 L59.8164199,73.1824272 C62.3280788,59.6740418 63.7105033,52.2383301 64.7073785,47.2643843 C65.3214048,44.2279628 65.7161407,42.4192098 66.1158122,40.7377245 L66.5998483,38.7653101 C67.0726403,36.911647 67.4709203,35.4207871 67.9619662,33.5825073 C70.1167026,25.5160341 74.7481339,10.4984271 78.8891291,0 Z" id="font1-left" fill="#FFFFFF" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.0 KiB |
68
public/feed.xsl
Normal file
BIN
public/icon-192.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
public/icon-512.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
public/images/2011/04/2011041420484000.jpg
Normal file
After Width: | Height: | Size: 425 KiB |
BIN
public/images/2011/04/2011041520510800.jpg
Normal file
After Width: | Height: | Size: 267 KiB |
BIN
public/images/2011/04/2011041520580200.jpg
Normal file
After Width: | Height: | Size: 357 KiB |
BIN
public/images/2011/04/2011041522562500.jpg
Normal file
After Width: | Height: | Size: 243 KiB |
BIN
public/images/2011/04/2011042321083500.jpg
Normal file
After Width: | Height: | Size: 435 KiB |
BIN
public/images/2011/04/2011042321142000.jpg
Normal file
After Width: | Height: | Size: 418 KiB |
BIN
public/images/2011/04/2011042321143500.jpg
Normal file
After Width: | Height: | Size: 268 KiB |
BIN
public/images/2011/04/2011042321155000.jpg
Normal file
After Width: | Height: | Size: 435 KiB |
BIN
public/images/2011/04/2011042511393900.jpg
Normal file
After Width: | Height: | Size: 191 KiB |
BIN
public/images/2011/04/2011042521290100.jpg
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
public/images/2011/04/2011042521292600.jpg
Normal file
After Width: | Height: | Size: 138 KiB |
BIN
public/images/2011/04/2011042521293200.jpg
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
public/images/2011/04/2011042521302200.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
public/images/2011/04/2011042521302700.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
public/images/2011/04/2011042521351900.jpg
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
public/images/2011/04/2011042521393900.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
public/images/2011/05/2011051421445100.jpg
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
public/images/2011/05/2011051421472100.jpg
Normal file
After Width: | Height: | Size: 464 KiB |
BIN
public/images/2011/05/2011051521491300.jpg
Normal file
After Width: | Height: | Size: 478 KiB |
BIN
public/images/2011/05/2011052622280900.jpg
Normal file
After Width: | Height: | Size: 153 KiB |
BIN
public/images/2011/05/2011052622281600.jpg
Normal file
After Width: | Height: | Size: 171 KiB |
BIN
public/images/2011/05/2011052622282200.jpg
Normal file
After Width: | Height: | Size: 241 KiB |
BIN
public/images/2011/05/2011052622285100.jpg
Normal file
After Width: | Height: | Size: 298 KiB |
BIN
public/images/2011/06/2011061816481300.jpg
Normal file
After Width: | Height: | Size: 126 KiB |
BIN
public/images/2011/06/2011061816505900.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
public/images/2011/06/2011062418273300.jpg
Normal file
After Width: | Height: | Size: 240 KiB |
BIN
public/images/2011/06/2011062418362900.jpg
Normal file
After Width: | Height: | Size: 424 KiB |
BIN
public/images/2011/06/2011062418383500.jpg
Normal file
After Width: | Height: | Size: 332 KiB |
BIN
public/images/2011/06/2011062418552500.jpg
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
public/images/2011/07/2011070220190200.jpg
Normal file
After Width: | Height: | Size: 166 KiB |
BIN
public/images/2011/07/2011070220314300.jpg
Normal file
After Width: | Height: | Size: 93 KiB |
BIN
public/images/2011/07/2011070220315100.jpg
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
public/images/2011/07/2011070220315800.jpg
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
public/images/2011/07/2011070220320500.jpg
Normal file
After Width: | Height: | Size: 203 KiB |
BIN
public/images/2011/07/2011070220322300.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
public/images/2011/07/2011070220323300.jpg
Normal file
After Width: | Height: | Size: 110 KiB |
BIN
public/images/2011/07/2011070220324000.jpg
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
public/images/2011/07/2011070220324800.jpg
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
public/images/2011/07/2011070220325600.jpg
Normal file
After Width: | Height: | Size: 118 KiB |
BIN
public/images/2011/07/2011070220330400.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
public/images/2011/07/2011070220331000.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
public/images/2011/07/2011070220331700.jpg
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
public/images/2011/07/2011070220332300.jpg
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
public/images/2011/07/2011070220332900.jpg
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
public/images/2011/07/2011070220544000.jpg
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
public/images/2011/07/2011070220550500.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
public/images/2011/07/2011070220552500.jpg
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
public/images/2011/07/2011070220554100.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
public/images/2011/07/2011070220560200.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
public/images/2012/01/2012011519234100.jpg
Normal file
After Width: | Height: | Size: 332 KiB |
BIN
public/images/2012/01/2012011819285800.jpg
Normal file
After Width: | Height: | Size: 357 KiB |
BIN
public/images/2012/01/2012011819343900.jpg
Normal file
After Width: | Height: | Size: 206 KiB |
BIN
public/images/2012/02/2012020222465000.jpg
Normal file
After Width: | Height: | Size: 362 KiB |
BIN
public/images/2012/02/2012020521241800.jpg
Normal file
After Width: | Height: | Size: 326 KiB |
BIN
public/images/2012/02/2012020521304400.jpg
Normal file
After Width: | Height: | Size: 232 KiB |
BIN
public/images/2012/02/2012020521334700.jpg
Normal file
After Width: | Height: | Size: 281 KiB |
BIN
public/images/2012/02/2012020821400300.jpg
Normal file
After Width: | Height: | Size: 631 KiB |
BIN
public/images/2012/02/2012020821442400.jpg
Normal file
After Width: | Height: | Size: 289 KiB |
BIN
public/images/2012/02/2012020821481600.jpg
Normal file
After Width: | Height: | Size: 548 KiB |
BIN
public/images/2012/02/2012020922491700.jpg
Normal file
After Width: | Height: | Size: 329 KiB |
BIN
public/images/2012/02/2012021222511100.jpg
Normal file
After Width: | Height: | Size: 290 KiB |
BIN
public/images/2012/02/2012021422120000.jpg
Normal file
After Width: | Height: | Size: 238 KiB |