changed from hexo to custom react stuff #1

Merged
developomp merged 73 commits from dev into master 2021-06-27 14:37:56 +09:00
140 changed files with 3102 additions and 49745 deletions

View file

@ -0,0 +1,47 @@
name: Deploy to Firebase Hosting on merge
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- uses: actions/cache@main
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: Install Dependencies and Build
run: cd source && yarn install && yarn build
- name: Archive Production Artifact
uses: actions/upload-artifact@master
with:
name: build
path: source/build
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: build
path: source/build
- name: Set target
uses: w9jds/firebase-action@master
with:
args: use developomp-site
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

47
.gitignore vendored
View file

@ -1,11 +1,28 @@
# where I keep my notes
_/ _/
# auto generated files
yarn.lock yarn.lock
package-lock.json package-lock.json
hexo/source/_drafts posts.json
posts/
# dependencies
.pnp/
.pnp.js
# testing
coverage/
# production
build/
# misc
.DS_Store
# unaltered # unaltered
# Created by https://www.toptal.com/developers/gitignore/api/firebase,node,hexo,git,visualstudiocode # Created by https://www.toptal.com/developers/gitignore/api/firebase,node,git,visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=firebase,node,hexo,git,visualstudiocode # Edit at https://www.toptal.com/developers/gitignore?templates=firebase,node,git,visualstudiocode
### Firebase ### ### Firebase ###
.idea .idea
@ -31,11 +48,6 @@ hexo/source/_drafts
*_LOCAL_*.txt *_LOCAL_*.txt
*_REMOTE_*.txt *_REMOTE_*.txt
### Hexo ###
db.json
public/
.deploy_git/
### Node ### ### Node ###
# Logs # Logs
logs logs
@ -92,6 +104,9 @@ typings/
# Optional eslint cache # Optional eslint cache
.eslintcache .eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache # Microbundle cache
.rpt2_cache/ .rpt2_cache/
.rts2_cache_cjs/ .rts2_cache_cjs/
@ -123,6 +138,14 @@ typings/
.nuxt .nuxt
dist dist
# Storybook build outputs
.out
.storybook-out
storybook-static
# rollup.js default build output
dist/
# Gatsby files # Gatsby files
.cache/ .cache/
# Comment in the public line in if your project uses Gatsby and not Next.js # Comment in the public line in if your project uses Gatsby and not Next.js
@ -147,10 +170,16 @@ dist
# Stores VSCode versions used for testing VSCode extensions # Stores VSCode versions used for testing VSCode extensions
.vscode-test .vscode-test
# Temporary folders
tmp/
temp/
### VisualStudioCode ### ### VisualStudioCode ###
.vscode/* .vscode/*
!.vscode/settings.json
!.vscode/tasks.json !.vscode/tasks.json
!.vscode/launch.json !.vscode/launch.json
!.vscode/extensions.json
*.code-workspace *.code-workspace
### VisualStudioCode Patch ### ### VisualStudioCode Patch ###
@ -158,4 +187,4 @@ dist
.history .history
.ionide .ionide
# End of https://www.toptal.com/developers/gitignore/api/firebase,node,hexo,git,visualstudiocode # End of https://www.toptal.com/developers/gitignore/api/firebase,node,git,visualstudiocode

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "hexo/themes/icarus"]
path = hexo/themes/icarus
url = https://github.com/developomp/hexo-theme-icarus.git

5
.prettierrc Normal file
View file

@ -0,0 +1,5 @@
{
"tabWidth": 4,
"useTabs": true,
"semi": false
}

View file

10
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,10 @@
{
"recommendations": [
"jpoissonnier.vscode-styled-components",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"naumovs.color-highlight",
"streetsidesoftware.code-spell-checker",
"aaron-bond.better-comments"
]
}

8
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,8 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.detectIndentation": false,
"editor.insertSpaces": false,
"cSpell.words": ["Fontawesome", "developomp", "developomp's", "dompurify"]
}

28
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,28 @@
# Contributing
## Before starting
tl;dr for dummies:
- Suggestions and Bug reports here: [GitHub issues page](https://github.com/developomp/developomp-site/issues)
- contribution is only for developers
- code contributions only. No article contribution.
This document is aimed for developers. Basic level of development knowledge is expected from the contributors.
To be specific, contributors are expected to be familiar with the javascript language, react framework, code analyzers, and formatters.
If you are **not** a developer, but have suggestions and/or bugs you wish to report, feel free to do so in the [GitHub issues page](https://github.com/developomp/developomp-site/issues).
## Guidelines
- Usage of vscode is highly recommended. Other IDE are allowed as long as the code style is consistent.
- All contributions must be made in form of a github pull request. Sending code through email or other platform is not welcomed.
- Format code using the [prettier](https://prettier.io) formatter with [this](./.prettierrc) configuration.
- Test your code before making a pull request.
- Make sure to write basic comments to help other people understand your code at first glance.
- Add a comment in the following format for each code file.
```javascript
/** filename.tsx
* what it does and why it exists
*/
```

97
LICENSE_OFL Normal file
View file

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

View file

@ -1,30 +1,71 @@
# <a href="https://developomp.com" target="_blank">developomp-site</a> # developomp-site
Tools used: Repository for my (developomp's) <a href="https://developomp.com" target="_blank">website</a>.
Tools / Frameworks / Packages used:
| Name | Use | | Name | Use |
| --------------------------------------: | :-------------------------------------- | | ----------------------------------------------------------------------------: | :---------------------------------------------------- |
| [Hexo](https://hexo.io) | generating static files | | [AWS](https://aws.amazon.com) | Domain register |
| [Firebase](https://firebase.google.com) | hosting site (Future: hosting database) | | [Firebase](https://firebase.google.com) | Static site hosting |
| [Github](https://github.com) | storing source & automatic deployment | | [Typescript](https://github.com/microsoft/TypeScript) | Static typing for javascript |
| [AWS](https://aws.amazon.com) | Domain name purchase & management | | [react](https://reactjs.org) | Front end framework |
| [react-fontawesome](https://github.com/FortAwesome/react-fontawesome) | [Fontawesome](https://fontawesome.com) icons in react |
| [react-helmet-async](https://github.com/staylor/react-helmet-async) | HTML head management |
| [gray-matter](https://github.com/jonschlinkert/gray-matter) | parsing markdown |
| [local-storage-fallback](https://github.com/ripeworks/local-storage-fallback) | storing theme choice |
| [react-tooltip](https://github.com/wwayne/react-tooltip) | Tooltips |
| [react-date-range](https://github.com/hypeserver/react-date-range) | Date picker for search page |
| [query-string](https://github.com/sindresorhus/query-string) | URL query parsing |
| [styled-components](https://github.com/styled-components/styled-components) | easier CSS styling |
| [styled-theming](https://github.com/styled-components/styled-theming) | Theming |
| [eslint](https://github.com/eslint/eslint) | code analysis |
| [prettier](https://github.com/prettier/prettier) | code formatting |
| [ts-node](https://github.com/TypeStrong/ts-node) | running markdown-to-html generator |
| [jest](https://jestjs.io) | code testing |
# Setup # Setup
Requires: [git](https://git-scm.com), [node](https://nodejs.org), [hexo](https://github.com/hexojs/hexo), [firebase](https://firebase.google.com) Requirement:
- Clone the repo with git modules - [node](https://nodejs.org)
- `git clone --recurse-submodules https://github.com/developomp/developomp-site.git` - [yarn](https://github.com/yarnpkg/yarn) ([npm](https://github.com/npm/cli) is **not** supported)
- to update: `git submodule foreach git pull origin master` - optional:
- Install dependencies - [git](https://git-scm.com)
- `cd developomp-site/hexo` - [vscode](https://code.visualstudio.com)
- `yarn` or `npm i` - [extensions](./.vscode/extensions.json) (also optional but highly recommended):
- Generate files
- `hexo generate` Steps:
- (optional, requires firebase setup) deploy it to firebase
- `firebase deploy` - Clone this repository
- `git clone https://github.com/developomp/developomp-site.git`
- Or download as a zip file
- ![download procedure](./downloading.png)
- open [`source`](./source) directory
- `cd source`
- Install dependencies (must be in `source` directory)
- `yarn install`
- start local server in http://localhost:3000
- `yarn start`
# Contributing
Please read the [`CONTRIBUTING.md`](./CONTRIBUTING.md) file.
# Special thanks
- [Ruipeng Zhang](https://github.com/ppoffice) for design inspiration ([hexo-icarus-theme](https://github.com/ppoffice/hexo-theme-icarus))
- [discord](http://discord.com) for dark theme color palette (before the [rebranding of May 2021](https://blog.discord.com/how-were-making-discord-more-welcoming-for-everyone-ee152f198c60))
- My friend [Aditya Prakash](https://github.com/AdityaPrakash-26) for extensive testing and wonderful suggestions
# License # License
This project is licensed under the MIT License.\ This project is licensed under the MIT License.<br>
Check the [LICENSE file](./LICENSE) for more information. Check the [LICENSE](./LICENSE) file for more information.
Font license:
[Open Font License (OFL)](./LICENSE_OFL) ([Source](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL#5667e9e4)):
- [Source Code Pro](https://fonts.google.com/specimen/Source+Code+Pro?query=source+code+pro) (monospaced code font)
- [Noto Sans KR](https://fonts.google.com/specimen/Noto+Sans+KR) (Korean and English font)

BIN
downloading.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View file

@ -1,11 +1,16 @@
{ {
"hosting": { "hosting": [
{
"target": "test",
"cleanUrls": true, "cleanUrls": true,
"public": "hexo/public", "public": "source/build",
"ignore": [ "rewrites": [
"firebase.json", {
"**/.*", "source": "**",
"**/node_modules/**" "destination": "/index.html"
}
],
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"]
}
] ]
} }
}

View file

@ -1,360 +0,0 @@
# Version of the configuration file
version: 4.0.0
# Icarus theme variant, can be "default" or "cyberpunk"
variant: default
# Path or URL to the website's logo
logo: /img/icon_circle.svg
# Page metadata configurations
head:
# URL or path to the website's icon
favicon: /img/icon_circle.svg
# Web application manifests configuration
# https://developer.mozilla.org/en-US/docs/Web/Manifest
manifest:
# Name of the web application (default to the site title)
name:
# The displayed name of the web application
# when there is not enough space to display full name
short_name:
# The start URL of the web application
start_url:
# The default theme color for the application
theme_color:
# A placeholder background color for the application page to display
# before its stylesheet is loaded
background_color:
# The preferred display mode for the website
display: standalone
# Image files that can serve as application icons for different contexts
icons:
-
# The path to the image file
src: ''
# A string containing space-separated image dimensions
sizes: ''
# A hint as to the media type of the image
type:
# Open Graph metadata
# https://hexo.io/docs/helpers.html#open-graph
open_graph:
# Page title (og:title) (optional)
# You should leave this blank for most of the time
title:
# Page type (og:type) (optional)
# You should leave this blank for most of the time
type: blog
# Page URL (og:url) (optional)
# You should leave this blank for most of the time
url:
# Page cover (og:image) (optional)
# You should leave this blank for most of the time
image:
# Site name (og:site_name) (optional)
# You should leave this blank for most of the time
site_name:
# Page author (article:author) (optional)
# You should leave this blank for most of the time
author:
# Page description (og:description) (optional)
# You should leave this blank for most of the time
description:
# Twitter card type (twitter:card)
twitter_card:
# Twitter ID (twitter:creator)
twitter_id:
# Twitter Site (twitter:site)
twitter_site:
# Google+ profile link (deprecated)
google_plus:
# Facebook admin ID
fb_admins:
# Facebook App ID
fb_app_id:
# Structured data of the page
# https://developers.google.com/search/docs/guides/intro-structured-data
structured_data:
# Page title (optional)
# You should leave this blank for most of the time
title:
# Page description (optional)
# You should leave this blank for most of the time
description:
# Page URL (optional)
# You should leave this blank for most of the time
url:
# Page author (article:author) (optional)
# You should leave this blank for most of the time
author:
# Page images (optional)
# You should leave this blank for most of the time
image:
# Additional HTML meta tags in an array
meta:
# Meta tag specified in <attribute>=<value> style
# E.g., name=theme-color;content=#123456 => <meta name="theme-color" content="#123456">
- ''
# URL or path to the website's RSS atom.xml
rss:
# Page top navigation bar configurations
navbar:
# Navigation menu items
menu:
Home: /
Archives: /archives
Categories: /categories
Tags: /tags
Explore: /explore
# Links to be shown on the right of the navigation bar
links:
RSS feed:
icon: fas fa-rss
url: /feed
View source:
icon: fab fa-github
url: 'https://github.com/developomp/developomp-site'
# Page footer configurations
footer:
# Links to be shown on the right of the footer section
links:
Creative Commons:
icon: fab fa-creative-commons
url: 'https://creativecommons.org/'
Attribution:
icon: fab fa-creative-commons-by
url: 'https://creativecommons.org/licenses/by/4.0/'
# Article related configurations
article:
# Code highlight settings
highlight:
# Code highlight themes
# https://github.com/highlightjs/highlight.js/tree/master/src/styles
theme: atom-one-light
# Show copy code button
clipboard: true
# Default folding status of the code blocks. Can be "", "folded", "unfolded"
fold: unfolded
# Whether to show estimated article reading time
readtime: true
# Article licensing block
# licenses:
# Creative Commons:
# icon: fab fa-creative-commons
# url: 'https://creativecommons.org/'
# Attribution:
# icon: fab fa-creative-commons-by
# url: 'https://creativecommons.org/licenses/by/4.0/'
# Search plugin configurations
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Search/
search:
type: insight
# Comment plugin configurations
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Comment/
# comment:
# type: disqus
# Disqus shortname
# shortname: 'developomp'
# Donate plugin configurations
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Donation/
# donates:
# "Buy me a coffee" donate button configurations
# -
# type: buymeacoffee
# # URL to the "Buy me a coffee" page
# url: ''
# Patreon donate button configurations
# -
# type: patreon
# # URL to the Patreon page
# url: ''
# Paypal donate button configurations
# -
# type: paypal
# # Paypal business ID or email address
# business: ''
# # Currency code
# currency_code: USD
# Share plugin configurations
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Share/
# share:
# type: sharethis
# # URL to the ShareThis share plugin script
# install_url: ''
# Sidebar configurations.
# Please be noted that a sidebar is only visible when it has at least one widget
sidebar:
# Left sidebar configurations
left:
# Whether the sidebar sticks to the top when page scrolls
sticky: false
# Right sidebar configurations
right:
# Whether the sidebar sticks to the top when page scrolls
sticky: false
# Sidebar widget configurations
# http://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/
widgets:
# Profile widget configurations
# -
# Where should the widget be placed, left sidebar or right sidebar
# position: left
# type: profile
# Author name
# author: developomp
# Author title
# author_title:
# Author's current location
# location: South Korea
# URL or path to the avatar image
# avatar: /img/icon.svg
# Whether show the rounded avatar image
# avatar_rounded: true
# Email address for the Gravatar
# gravatar:
# URL or path for the follow button
# follow_link:
# Links to be shown on the bottom of the profile widget
# social_links:
# Github:
# icon: fab fa-github
# url: 'https://github.com/developomp'
# RSS:
# icon: fas fa-rss
# url: /feed
# Table of contents widget configurations
-
# Where should the widget be placed, left sidebar or right sidebar
position: left
type: toc
# Whether to show the index of each heading
index: true
# Recommendation links widget configurations
# -
# # Where should the widget be placed, left sidebar or right sidebar
# position: left
# type: links
# # Names and URLs of the sites
# links:
# Hexo: 'https://hexo.io'
# Bulma: 'https://bulma.io'
# Categories widget configurations
-
# Where should the widget be placed, left sidebar or right sidebar
position: left
type: categories
# Recent posts widget configurations
-
# Where should the widget be placed, left sidebar or right sidebar
position: left
type: recent_posts
# Archives widget configurations
-
# Where should the widget be placed, left sidebar or right sidebar
position: left
type: archives
# Tags widget configurations
-
# Where should the widget be placed, left sidebar or right sidebar
position: left
type: tags
# Google FeedBurner email subscription widget configurations
# -
# # Where should the widget be placed, left sidebar or right sidebar
# position: left
# type: subscribe_email
# # Hint text under the email input
# description:
# # Feedburner ID
# feedburner_id: ''
# Google AdSense unit configurations
# -
# # Where should the widget be placed, left sidebar or right sidebar
# position: left
# type: adsense
# # AdSense client ID
# client_id: ''
# # AdSense AD unit ID
# slot_id: ''
# Plugin configurations
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/
plugins:
# Enable page startup animations
animejs: true
# Show the "back to top" button
back_to_top: true
# Baidu Analytics plugin settings
# https://tongji.baidu.com
# baidu_analytics:
# Baidu Analytics tracking ID
# tracking_id:
# Bing Webmaster Tools plugin settings
# https://www.bing.com/toolbox/webmaster/
# bing_webmaster:
# Bing Webmaster Tools tracking ID in the <meta> tag
# tracking_id:
# BuSuanZi site/page view counter
# https://busuanzi.ibruce.info
busuanzi: false
# CNZZ statistics
# https://www.umeng.com/web
# cnzz:
# CNZZ tracker id
# id:
# CNZZ website id
# web_id:
# Alerting users about the use of cookies
# https://www.osano.com/cookieconsent/
cookie_consent:
# The compliance type. Can be "info", "opt-in", or "opt-out"
type: info
# Theme of the popup. Can be "block", "edgeless", or "classic"
theme: edgeless
# Whether the popup should stay static regardless of the page scrolls
static: false
# Where on the screen the consent popup should display
position: bottom-left
# URL to your site's cookie policy
policyLink: 'https://www.cookiesandyou.com/'
# Enable the lightGallery and Justified Gallery plugins
gallery: true
# Google Analytics plugin settings
# https://analytics.google.com
google_analytics:
# Google Analytics tracking ID
tracking_id:
# Hotjar user feedback plugin
# https://www.hotjar.com/
hotjar:
# Hotjar site id
site_id:
# Enable the KaTeX math typesetting support
# https://katex.org/
katex: false
# Enable the MathJax math typesetting support
# https://www.mathjax.org/
mathjax: false
# Enable the Outdated Browser plugin
# http://outdatedbrowser.com/
outdated_browser: false
# Show a progress bar at top of the page on page loading
progressbar: true
# Statcounter statistics
# https://statcounter.com/
statcounter:
# Statcounter project id
project:
# Statcounter project security code
security:
# Twitter conversion tracking plugin settings
# https://business.twitter.com/en/help/campaign-measurement-and-analytics/conversion-tracking-for-websites.html
twitter_conversion_tracking:
# Twitter Pixel ID
pixel_id:
# CDN provider settings
# https://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/speed-up-your-site-with-custom-cdn/
providers:
# Name or URL template of the JavaScript and/or stylesheet CDN provider
cdn: jsdelivr
# Name or URL template of the webfont CDN provider
fontcdn: google
# Name or URL of the fontawesome icon font CDN provider
iconcdn: fontawesome

View file

@ -1,89 +0,0 @@
title: developomp
subtitle: ''
description: developomp's website
keywords: developomp
author: developomp
language: en
timezone: ''
url: 'http://developomp.com'
root: /
permalink: ':title/'
permalink_defaults:
lang: en
pretty_urls:
trailing_index: false
trailing_html: false
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: ':lang'
skip_render:
- '*.json'
- '*.unityweb'
- '**/*.html'
- '*.xml'
- '*.js'
- '*.css'
- '*.txt'
feed:
type:
- atom
- rss2
path:
- atom.xml
- rss2.xml
limit: 10
hub: null
content: null
content_limit: 140
content_limit_delim: ' '
order_by: '-date'
icon: /img/icon_circle.svg
autodiscovery: true
template: null
new_post_name: ':title.md'
default_layout: post
titlecase: false
external_link:
enable: true
field: site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
prismjs:
enable: false
preprocess: true
line_number: true
tab_replace: ''
index_generator:
path: ''
per_page: 10
order_by: '-date'
default_category: uncategorized
category_map: null
tag_map: null
meta_generator: true
date_format: YYYY-MM-DD
time_format: 'HH:mm:ss'
updated_option: mtime
per_page: 10
pagination_dir: page
include: null
exclude: null
ignore: null
theme: icarus
deploy:
type: ''

View file

@ -1,27 +0,0 @@
{
"name": "developomp.com",
"version": "0.0.0",
"private": true,
"author": "developomp",
"hexo": {
"version": "5.3.0"
},
"dependencies": {
"bulma-stylus": "^0.8.0",
"hexo": "latest",
"hexo-component-inferno": "latest",
"hexo-generator-archive": "latest",
"hexo-generator-category": "latest",
"hexo-generator-feed": "latest",
"hexo-generator-index": "latest",
"hexo-generator-tag": "latest",
"hexo-renderer-ejs": "latest",
"hexo-renderer-inferno": "latest",
"hexo-renderer-marked": "latest",
"hexo-renderer-stylus": "latest",
"hexo-server": "latest",
"hexo-theme-icarus": "latest",
"inferno": "latest",
"inferno-create-element": "latest"
}
}

View file

@ -1,6 +0,0 @@
---
title: { { title } }
date: { { date } }
updated: { { date } }
tags:
---

View file

@ -1,12 +0,0 @@
---
title:
comment:
licenses:
widgets:
article:
---
<center>
<h1><font size=40>404</font></h1>
the page you're looking for does not exist. :(
</center>

View file

@ -1,5 +0,0 @@
---
title: explore
---
Nothing here.

View file

@ -1,2 +0,0 @@
- [rss2](/rss2.xml)
- [atom](/atom.xml)

View file

@ -1,2 +0,0 @@
- [rss2](/rss2.xml)
- [atom](/atom.xml)

View file

@ -1,7 +0,0 @@
---
title: games
date: 2020-08-16
tags:
---
Nothing here yet.

View file

@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TicTac Toe</title>
<link rel="stylesheet" href="/games/tictactoe/index.css">
<script src="/games/tictactoe/index.js" defer></script>
</head>
<body>
<div class="board x" id="board">
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
</div>
<div class="winner" id="winner">
<div data-message></div>
<button id="restart">Restart</button>
</div>
</body>
</html>

View file

@ -1,89 +0,0 @@
body {
margin: 0;
background-color: #282828;
color: #fff;
font-family: Monospace, sans-serif;
font-size: 13px;
line-height: 24px;
overscroll-behavior: none;
}
canvas {
width: 100%;
height: 100%;
display: block;
}
a {
color: #ff0;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
button {
cursor: pointer;
text-transform: uppercase;
}
#info {
position: absolute;
top: 0;
width: 100%;
padding: 10px;
box-sizing: border-box;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
pointer-events: none;
z-index: 1;
}
a, button, input, select {
pointer-events: auto;
}
.dg.ac {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
z-index: 2 !important;
}
#overlay {
position: absolute;
z-index: 2;
top: 0;
left: 0;
width: 100%;
height:100%;
display: flex;
align-items: center;
justify-content: center;
opacity: 1;
background-color: #000000;
color: #ffffff;
}
#overlay > div {
text-align: center;
}
#overlay > div > button {
height: 20px;
background: transparent;
color: #ffffff;
outline: 1px solid #ffffff;
border: 0;
cursor: pointer;
}
#overlay > div > p {
color: #777777;
font-size: 12px;
}

View file

@ -1,14 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3D</title>
<link rel="stylesheet" href="/games/3d/index.css">
<script src="/games/3d/index.js" defer></script>
<script src="/games/3d/three.js"></script>
</head>
<body>
<div id="3dView"></div>
</body>
</html>

File diff suppressed because one or more lines are too long

View file

@ -1,3 +0,0 @@
User-agent: *
Allow: /
Sitemap: /sitemap.xml

@ -1 +0,0 @@
Subproject commit 645cffa7a885409f6959a0263410015c1c486c30

1
source/.eslintignore Normal file
View file

@ -0,0 +1 @@
node_modules/

31
source/.eslintrc Normal file
View file

@ -0,0 +1,31 @@
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react/recommended",
"plugin:json/recommended",
"prettier"
],
"settings": {
"node": {
"tryExtensions": [".js", ".jsx", ".json"]
},
"react": {
"version": "17.0"
}
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"plugins": ["react", "@typescript-eslint"],
"rules": {
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"react/jsx-uses-vars": "error",
"react/react-in-jsx-scope": ["off"]
}
}

190
source/generate.ts Normal file
View file

@ -0,0 +1,190 @@
/**
* It reads markdown files and write its content and metadata to json files that can be imported by React.
* - Files and directories names starting with a underscore (_) will be ignored
* - Symbolic links are ignored as of the moment
* - Filename-to-url encoder is not perfect. Some non-url-friendly filenames might cause problems
*/
import fs from "fs" // read and write files
import path from "path" // get relative path
import matter from "gray-matter" // parse markdown metadata
import toc from "markdown-toc" // table of contents generation
const dirPath = "./markdown" // where it will look for markdown documents
const outPath = "./src/data" // path to the json database
// data that will be converted to JSON string
const result = {
date: {},
tags: {},
posts: {},
}
// creates directory/directories
// https://stackoverflow.com/a/40686946/12979111
function mkDirByPathSync(targetDir, { isRelativeToScript = false } = {}) {
const sep = path.sep
const initDir = path.isAbsolute(targetDir) ? sep : ""
const baseDir = isRelativeToScript ? __dirname : "."
return targetDir.split(sep).reduce((parentDir, childDir) => {
const curDir = path.resolve(baseDir, parentDir, childDir)
try {
fs.mkdirSync(curDir)
} catch (err) {
if (err.code === "EEXIST") {
// curDir already exists!
return curDir
}
// To avoid `EISDIR` error on Mac and `EACCES`-->`ENOENT` and `EPERM` on Windows.
if (err.code === "ENOENT") {
// Throw the original parentDir error on curDir `ENOENT` failure.
throw new Error(
`EACCES: permission denied, mkdir '${parentDir}'`
)
}
const caughtErr =
["EACCES", "EPERM", "EISDIR"].indexOf(err.code) > -1
if (
!caughtErr ||
(caughtErr && curDir === path.resolve(targetDir))
) {
throw err // Throw if it's just the last created dir.
}
}
return curDir
}, initDir)
}
// only supports folders and files (no symbolic links)
// does not scale well for large number of folders
// it calls itself for every directory it finds
function recursiveParser(fileOrFolderPath: string) {
// ignore if file/directory name starts with a underscore
const fileOrFolderName = fileOrFolderPath.substring(
fileOrFolderPath.lastIndexOf("/") + 1
)
if (fileOrFolderName.startsWith("_")) return
// not perfect. Some filenames might cause problems.
const stats = fs.lstatSync(fileOrFolderPath) // checks if the path leads to a directory or a file
// don't use replaceAll
const urlPath = `/${path.relative(dirPath, fileOrFolderPath)}` // path that will be used as site url
.replace(/\.[^/.]+$/, "") // remove file extension
.replace(/ /g, "-") // replace space with a dash "-"
// if it's a directory, apply this function to every files/folders in it
// if it's a file, parse and save it to file
if (stats.isDirectory()) {
fs.readdirSync(fileOrFolderPath).map((child) =>
recursiveParser(`${fileOrFolderPath}/${child}`)
)
} else if (stats.isFile()) {
// skip if file is not a markdown file
if (!fileOrFolderName.endsWith(".md")) {
console.log(`Ignoring non markdown file at: ${fileOrFolderPath}`)
return
}
const parsedMarkdown = matter(fs.readFileSync(fileOrFolderPath, "utf8")) // parse markdown metadata
const contentJSONFile = `${outPath}/posts${urlPath}.json`
mkDirByPathSync(
contentJSONFile.substring(0, contentJSONFile.lastIndexOf("/") + 1)
)
// write content to json file
fs.writeFileSync(
contentJSONFile,
JSON.stringify({
content: parsedMarkdown.content,
})
)
result.posts[urlPath] = parsedMarkdown.data
// preview
// might cut mid html tag
result.posts[urlPath].preview =
parsedMarkdown.content.split(" ").slice(0, 20).join(" ") + " ..."
// date
if (!result.posts[urlPath].date) {
throw Error(`Date does not exist in file: ${urlPath}`)
}
const postDate = new Date(parsedMarkdown.data.date)
result.posts[urlPath].date = postDate.toLocaleString("default", {
month: "short",
day: "numeric",
year: "numeric",
})
const YYYYMMDD = new Date(
postDate.getTime() - postDate.getTimezoneOffset() * 60 * 1000
)
.toISOString()
.split("T")[0]
if (result.date[YYYYMMDD]) result.date[YYYYMMDD].push(urlPath)
else result.date[YYYYMMDD] = [urlPath]
//tags
if (result.posts[urlPath].tags) {
result.posts[urlPath].tags.forEach((tag) => {
if (result.tags[tag]) result.tags[tag].push(urlPath)
else result.tags[tag] = [urlPath]
})
}
// toc
result.posts[urlPath].toc = toc(result.posts[urlPath].content).content
}
}
/** Step 1
* Deleting existing files
*/
try {
fs.rmSync(`${outPath}/posts`, { recursive: true })
// eslint-disable-next-line no-empty
} catch (err) {}
try {
fs.unlinkSync(`${outPath}/posts.json`)
// eslint-disable-next-line no-empty
} catch (err) {}
/** Step 2
* Populate result and write to src/data/posts/
*/
// check if it's a directory and start recursive function
if (fs.lstatSync(dirPath).isDirectory()) {
recursiveParser(dirPath)
} else {
throw Error("Initial path given does not lead to a directory")
}
let dateKeys: string[] = []
for (const dateKey in result.date) {
dateKeys.push(dateKey)
}
dateKeys = dateKeys.sort()
const resultDate = result.date
result.date = {}
dateKeys.forEach(
(sortedDateKey) => (result.date[sortedDateKey] = resultDate[sortedDateKey])
)
/** Step 3
* write to src/data/posts.json
*/
fs.writeFileSync(`${outPath}/posts.json`, JSON.stringify(result) + "\n")

15
source/markdown/about.md Normal file
View file

@ -0,0 +1,15 @@
---
title: About
date: 2021-04-20
---
About page
- about me
- email: developomp@gmail.com
- discord: developomp#0001 (yes I have nitro)
- [github profile](https://github.com/developomp)
- me as a person
- [goals](/goals)
- [Portfolio](/portfolio)

8
source/markdown/games.md Normal file
View file

@ -0,0 +1,8 @@
---
title: games
date: 2020-08-16
---
- [TicTacToe](/games/tictactoe)
- [pong](/games/pong)
- [click](/games/click)

16
source/markdown/goals.md Normal file
View file

@ -0,0 +1,16 @@
---
title: goals
date: 2021-05-11
---
- skill
- type 400 letters per minute (both english and korean)
- milestone
- make a high quality video with at least 1M views on YouTube
- 1000 star on a gh repository
- completely switch to RISC based CPU powered laptop
- project
- create fully functional discord clone from scratch
- make a multiplayer game that can pay for itself
- assemble my own linux distro
- assemble my own mechanical keyboard

View file

@ -1,7 +1,8 @@
--- ---
title: Quote NO.1 title: Quote NO.1
date: 2020-08-16 date: 2020-08-16
tags: quotes tags:
- quotes
--- ---
> "Get the fuck out of my lawn" > "Get the fuck out of my lawn"

View file

@ -1,14 +1,15 @@
--- ---
title: Quote NO.2 title: Quote NO.2
date: 2021-02-20 date: 2021-02-20
tags: quotes tags:
- quotes
--- ---
In a Q&A session in Aalto Talk with Linus Torvalds, hosted by Aalto Center for Entrepreneurship (ACE) in Otaniemi. In a Q&A session in Aalto Talk with Linus Torvalds, hosted by Aalto Center for Entrepreneurship (ACE) in Otaniemi.
> "Nvidia, Fuck you!"
<div style="padding: 56.25% 0px 0px; position: relative;"><iframe src="https://www.youtube.com/embed/MShbP3OpASA?cc_load_policy=1&end=3005&iv_load_policy=3&rel=0&start=2993" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen scrolling="no" style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"></iframe></div> <div style="padding: 56.25% 0px 0px; position: relative;"><iframe src="https://www.youtube.com/embed/MShbP3OpASA?cc_load_policy=1&end=3005&iv_load_policy=3&rel=0&start=2993" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen scrolling="no" style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"></iframe></div>
<br> <br>
>"Nvidia, Fuck you!"
<div style="text-align: right"> <i>- Linus Torvalds (2012)</i> </div> <div style="text-align: right"> <i>- Linus Torvalds (2012)</i> </div>

View file

@ -1,7 +1,8 @@
--- ---
title: Quote NO.3 title: Quote NO.3
date: 2021-03-18 date: 2021-03-18
tags: quotes tags:
- quotes
--- ---
In the introduction of one of his book: "The Future of the mind" (9th paragraph) In the introduction of one of his book: "The Future of the mind" (9th paragraph)

View file

@ -0,0 +1,15 @@
---
title: My Quote NO.1
date: 2021-03-22
tags:
- quotes
---
> Let's find problems in ourselves first
<div style="text-align: right"> <i>- developomp 2019</i> </div>
To fix a problem, one should first understand the problem.
If one tries to fix what is not the problem, it will make the problem worse, or make another problem.
And the first place to look for problems is not other than ourselves.
Because often times, solution to our problems turns out to be, or in ourselves.<br>

10
source/markdown/quotes/me/10.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.10
date: 2021-03-22
tags:
- quotes
---
> Don't forget what you planned to be
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/11.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.11
date: 2021-03-22
tags:
- quotes
---
> Yesterday is a lecture for today
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/12.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.12
date: 2021-03-22
tags:
- quotes
---
> Practice isn't a action. Its a formation.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/13.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.13
date: 2021-03-22
tags:
- quotes
---
> Don't forget the peaks and the valleys of your life.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

12
source/markdown/quotes/me/14.md Executable file
View file

@ -0,0 +1,12 @@
---
title: My Quote NO.14
date: 2021-03-22
tags:
- quotes
---
> Those who see only the present lose their future.<br />
> Those who see only the future lose both the present and the future. <br />
> Only those who can see both the present and the future are given the future.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/15.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.15
date: 2021-03-22
tags:
- quotes
---
> The depth of a proverb is proportional to the depth of the reader's thoughts.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/16.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.16
date: 2021-03-22
tags:
- quotes
---
> Words of wisdom deepens the more you think about it.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/17.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.17
date: 2021-03-22
tags:
- quotes
---
> God didn't bless us with the best, so let's do it ourself.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

11
source/markdown/quotes/me/18.md Executable file
View file

@ -0,0 +1,11 @@
---
title: My Quote NO.18
date: 2021-03-22
tags:
- quotes
---
> I got a purpose now, so why sit down?<br>
> I got ceilings to break and things to do.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/19.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.19
date: 2021-03-22
tags:
- quotes
---
> Finding the problem is the first step to solving anything
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.2
date: 2021-03-22
tags:
- quotes
---
> Don't be great for your fame, but be famous for your greatness.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

11
source/markdown/quotes/me/20.md Executable file
View file

@ -0,0 +1,11 @@
---
title: My Quote NO.20
date: 2021-03-22
tags:
- quotes
---
> Look at the clock and wait for the next minute to come.<br>
> You'll see the preciousness of time.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

11
source/markdown/quotes/me/21.md Executable file
View file

@ -0,0 +1,11 @@
---
title: My Quote NO.21
date: 2021-03-22
tags:
- quotes
---
> Kill an ant. Throw it and try to find it.<br>
> That's how almost all life ended. Forgotten.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/22.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.22
date: 2021-03-22
tags:
- quotes
---
> Lot of things learned, nothing useful.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

11
source/markdown/quotes/me/23.md Executable file
View file

@ -0,0 +1,11 @@
---
title: My Quote NO.23
date: 2021-03-22
tags:
- quotes
---
> To give 10, one should know a 100.
> So when someone gives a 10, don't think he's in the same level as you.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

10
source/markdown/quotes/me/24.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.24
date: 2021-03-22
tags:
- quotes
---
> Think about everything
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.25
date: 2021-03-22
tags:
- quotes
---
> Challenge yourself to give your best at all time.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.26
date: 2021-03-22
tags:
- quotes
---
> Escape from the valleys of life doesn't happen in an instant.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,13 @@
---
title: My Quote NO.27
date: 2021-03-22
tags:
- quotes
---
> Sometimes I am amazed by the fact that I am aware of anything.
<div style="text-align: right"> <i>- developomp 2019</i> </div>
Learning about AI
This folded sheet of protein is capable to understand the laws that govern the universe

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.28
date: 2021-03-22
tags:
- quotes
---
> Mind is like a sword. It will be dull if you stop sharpening it.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.29
date: 2021-03-22
tags:
- quotes
---
> Even if the day comes when we can live for hundreds of years, we'll still make a world where hard working is a necessity.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.3
date: 2021-03-22
tags:
- quotes
---
> If you have a proverbs, record it. Treat it as if it's a jewel. In the future, this fine gem will be the eyes of many, and a lamp to light the ways of people.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.30
date: 2021-03-22
tags:
- quotes
---
> If you think too much about the answer, you'll forget what the question was.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.31
date: 2021-03-22
tags:
- quotes
---
> People earns highest respect from me are those who appreciate critiques.
<div style="text-align: right"> <i>- developomp 2020</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.32
date: 2021-05-10
tags:
- quotes
---
> Any field is fascinating as long as there are no exams.
<div style="text-align: right"> <i>- developomp 2021</i> </div>

View file

@ -0,0 +1,15 @@
---
title: My Quote NO.4
date: 2021-03-22
tags:
- quotes
---
> I don't want to call it learning that I didn't learn with my heart when I learn.
<div style="text-align: right"> <i>- developomp 2019</i> </div>
When we learn in school, we systematically memorize and recite information and immediately forget everything after an exam.
Some of us may remember some of it, but most of us don't remember most of the information we were taught.
I don't want to call that learning. Learning for me is when I know that topic of that subject by heart.
Something that you don't just get information, but the spirit of it too.

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.5
date: 2021-03-22
tags:
- quotes
---
> Don't define anything different from normality as a failure.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

View file

@ -0,0 +1,10 @@
---
title: My Quote NO.6
date: 2021-03-22
tags:
- quotes
---
> What did you do when everyone in the world ran?
<div style="text-align: right"> <i>- developomp 2019</i> </div>

11
source/markdown/quotes/me/7.md Executable file
View file

@ -0,0 +1,11 @@
---
title: My Quote NO.7
date: 2021-03-22
tags:
- quotes
---
> The 1000 miles you've walked so far are not important. What's important is
> that you still have the will to walk another mile.
<div style="text-align: right"><i>- developomp 2019</i></div>

15
source/markdown/quotes/me/8.md Executable file
View file

@ -0,0 +1,15 @@
---
title: My Quote NO.8
date: 2021-03-22
tags:
- quotes
---
> Out of all the thing you've done and haven't done, which one do you regret more?
<div style="text-align: right"> <i>- developomp 2019</i> </div>
Many people regret not doing something
...
To them I want to ask this one question:
"So, what are the things you need to do now?"

10
source/markdown/quotes/me/9.md Executable file
View file

@ -0,0 +1,10 @@
---
title: My Quote NO.9
date: 2021-03-22
tags:
- quotes
---
> People who don't know what they're talking about are the poorest people in the world.
<div style="text-align: right"> <i>- developomp 2019</i> </div>

75
source/package.json Normal file
View file

@ -0,0 +1,75 @@
{
"name": "developomp-site",
"version": "1.0.0",
"description": "website source for https://developomp.com",
"author": "developomp <developomp@gmail.com>",
"homepage": "/",
"repository": "https://github.com/developomp/developomp-site.git",
"bugs": {
"url": "https://github.com/developomp/developomp-site/issues"
},
"private": true,
"license": "MIT",
"scripts": {
"generate": "ts-node -O '{\"module\":\"commonjs\"}' ./generate.ts",
"start": "yarn generate && react-scripts start",
"build": "yarn generate && react-scripts build",
"test": "yarn generate && react-scripts test",
"pretty": "yarn generate && prettier --write ./source"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.35",
"@fortawesome/free-brands-svg-icons": "^5.15.3",
"@fortawesome/free-regular-svg-icons": "^5.15.3",
"@fortawesome/free-solid-svg-icons": "^5.15.3",
"@fortawesome/react-fontawesome": "^0.1.14",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^13.1.9",
"date-fns": "^2.22.1",
"gray-matter": "^4.0.3",
"local-storage-fallback": "^4.1.2",
"markdown-toc": "^1.2.0",
"marked": "^2.1.1",
"query-string": "^7.0.1",
"react": "^17.0.2",
"react-date-range": "^1.3.0",
"react-device-detect": "^1.17.0",
"react-dom": "^17.0.2",
"react-helmet-async": "^1.0.9",
"react-router-dom": "^5.2.0",
"react-scripts": "^4.0.3",
"react-tooltip": "^4.2.21",
"styled-components": "^5.3.0",
"web-vitals": "^2.0.1"
},
"devDependencies": {
"@types/jest": "^26.0.23",
"@types/node": "^15.12.4",
"@types/react": "^17.0.11",
"@types/react-dom": "^17.0.8",
"@types/styled-components": "^5.1.10",
"@typescript-eslint/eslint-plugin": "^4.28.0",
"@typescript-eslint/parser": "^4.28.0",
"eslint": "^7.29.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-json": "^3.0.0",
"eslint-plugin-react": "^7.24.0",
"prettier": "^2.3.1",
"ts-node": "^10.0.0",
"tslint-config-prettier": "^1.18.0",
"typescript": "^4.3.4"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

View file

@ -0,0 +1,53 @@
*, *::after, *::before {
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
:root {
--main-color: white;
--background-color: black;
}
body {
margin: 0;
background-color: var(--background-color);
}
.menu {
margin: 0 auto;
padding: 10px;
position: relative;
}
.clicker {
border-radius: 50%;
background-color: var(--main-color);
position: absolute;
}
.winner.show {
display: flex;
}
#timer {
color: var(--main-color);
font-size: 5rem;
}
.gameArea {
border: 0;
margin: auto auto auto auto;
}
.primer {
border: 0;
width: 10vw;
height: 10vw;
margin: auto auto auto auto;
background-color: var(--main-color);
}

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Click!</title>
<link rel="stylesheet" href="/games/click/index.css" />
<script src="/games/click/index.js" defer></script>
</head>
<body>
<p id="timer"></p>
<div id="primer" class="primer"></div>
<div class="gameArea"></div>
</body>
</html>

View file

@ -0,0 +1,96 @@
// todo: add cross-hair
// todo: continuous reaction speed reading
// todo: better font
// todo: average reaction speed
// todo: reaction speed graph
// todo: put mouse over to restart
// todo: click order
// todo: sound effect
// todo: X if miss
// todo: settings
// todo: remaining clickers
const gameArea = document.getElementsByClassName("gameArea")[0]
const primer = document.getElementById("primer")
const timerText = document.getElementById("timer")
let clickerSize = 1.3
let initClickerCount = 10
let clickerCount = initClickerCount
let timer, startTime, clickable
primer.addEventListener("mousedown", () => {prime()})
document.addEventListener("keydown", (event) => {
if ("zq".includes(event.key.toLowerCase())) {
removeClicker()
}
if (event.key.toLowerCase() === "a") {
// todo: pause
}
else if (event.key.toLowerCase() === "q") {
// todo: end measurement
}
})
function prime() {
primer.style.display = "none"
clearInterval(timer)
clearClicker()
initializeTimer()
addClicker()
}
function addClicker() {
let newClicker = document.createElement("div")
newClicker.addEventListener("mousedown", removeClicker, {once: true})
newClicker.addEventListener("mouseenter", () => {clickable = newClicker})
newClicker.addEventListener("mouseleave", clearClickable)
newClicker.classList.add("clicker")
newClicker.style.width = `${clickerSize}in`
newClicker.style.height = `${clickerSize}in`
let x = Math.random() * 100, y = Math.random() * 100
// todo: always make clicker appear in the screen
newClicker.style.top = `${x}%`
newClicker.style.left = `${y}%`
gameArea.appendChild(newClicker)
}
function removeClicker() {
if (clickable === undefined) return
clickerCount -= 1
if (clickerCount > 0) {
addClicker()
}
else if (clickerCount === 0) {
primer.style.display = "block"
clearInterval(timer)
clearClicker()
clickerCount = initClickerCount
clearClickable()
return
}
clickable.remove()
clearClickable()
}
function clearClicker() {
gameArea.textContent = "";
clearClickable()
}
function clearClickable() {
clickable = undefined
}
function initializeTimer() {
startTime = Date.now()
timer = setInterval(() => {
timerText.innerHTML = ((Date.now() - startTime) / 1000).toFixed(2)
}, 10)
}

Binary file not shown.

View file

@ -0,0 +1,13 @@
{
"companyName": "AnonymousPomp",
"productName": "PONG",
"dataUrl": "7.data.unityweb",
"wasmCodeUrl": "7.wasm.code.unityweb",
"wasmFrameworkUrl": "7.wasm.framework.unityweb",
"TOTAL_MEMORY": 268435456,
"graphicsAPI": ["WebGL 2.0", "WebGL 1.0"],
"webglContextAttributes": {"preserveDrawingBuffer": false},
"splashScreenStyle": "Dark",
"backgroundColor": "#231F20",
"cacheControl": {"default": "must-revalidate"}
}

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,24 @@
function UnityProgress(gameInstance, progress) {
if (!gameInstance.Module)
return;
if (!gameInstance.logo) {
gameInstance.logo = document.createElement("div");
gameInstance.logo.className = "logo " + gameInstance.Module.splashScreenStyle;
gameInstance.container.appendChild(gameInstance.logo);
}
if (!gameInstance.progress) {
gameInstance.progress = document.createElement("div");
gameInstance.progress.className = "progress " + gameInstance.Module.splashScreenStyle;
gameInstance.progress.empty = document.createElement("div");
gameInstance.progress.empty.className = "empty";
gameInstance.progress.appendChild(gameInstance.progress.empty);
gameInstance.progress.full = document.createElement("div");
gameInstance.progress.full.className = "full";
gameInstance.progress.appendChild(gameInstance.progress.full);
gameInstance.container.appendChild(gameInstance.progress);
}
gameInstance.progress.full.style.width = (100 * progress) + "%";
gameInstance.progress.empty.style.width = (100 * (1 - progress)) + "%";
if (progress == 1)
gameInstance.logo.style.display = gameInstance.progress.style.display = "none";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1,18 @@
.webgl-content * {border: 0; margin: 0; padding: 0}
.webgl-content {position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.webgl-content .logo, .progress {position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.webgl-content .logo {background: url('progressLogo.Light.png') no-repeat center / contain; width: 154px; height: 130px;}
.webgl-content .progress {height: 18px; width: 141px; margin-top: 90px;}
.webgl-content .progress .empty {background: url('progressEmpty.Light.png') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;}
.webgl-content .progress .full {background: url('progressFull.Light.png') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;}
.webgl-content .logo.Dark {background-image: url('progressLogo.Dark.png');}
.webgl-content .progress.Dark .empty {background-image: url('progressEmpty.Dark.png');}
.webgl-content .progress.Dark .full {background-image: url('progressFull.Dark.png');}
.webgl-content .footer {margin-top: 5px; height: 38px; line-height: 38px; font-family: Helvetica, Verdana, Arial, sans-serif; font-size: 18px;}
.webgl-content .footer .webgl-logo, .title, .fullscreen {height: 100%; display: inline-block; background: transparent center no-repeat;}
.webgl-content .footer .webgl-logo {background-image: url('webgl-logo.png'); width: 204px; float: left;}
.webgl-content .footer .title {margin-right: 10px; float: right;}
.webgl-content .footer .fullscreen {background-image: url('fullscreen.png'); width: 38px; float: right;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PONG</title>
<link rel="shortcut icon" href="/games/pong/TemplateData/favicon.ico">
<link rel="stylesheet" href="/games/pong/TemplateData/style.css">
<script src="/games/pong/TemplateData/UnityProgress.js"></script>
<script src="/games/pong/Build/UnityLoader.js"></script>
<script>
var gameInstance = UnityLoader.instantiate("gameContainer", "/games/pong/Build/7.json", {onProgress: UnityProgress});
</script>
</head>
<body>
<div class="webgl-content">
<div id="gameContainer" style="width: 960px; height: 600px"></div>
<div class="footer">
<div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
<div class="title">PONG v7</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>TicTac Toe</title>
<link rel="icon" href="/icon/icon_circle.svg" />
<link rel="stylesheet" href="/games/tictactoe/index.css" />
<script src="/games/tictactoe/index.js" defer></script>
</head>
<body>
<div class="board x" id="board">
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
<div class="cell" data-cell></div>
</div>
<div class="winner" id="winner">
<div data-message></div>
<button id="restart">Restart</button>
</div>
</body>
</html>

View file

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Before After
Before After

View file

@ -0,0 +1,6 @@
<svg width="800" height="800" viewBox="0 0 800 800" fill="none" xmlns="http://www.w3.org/2000/svg">
<g>
<circle cx="400" cy="400" r="400" fill="black"/>
<path d="M217.617 226.262H184.863C180.632 226.262 176.23 226.77 171.66 227.785C167.259 228.632 163.197 230.07 159.473 232.102C155.749 234.133 152.702 236.757 150.332 239.973C147.962 243.189 146.777 247.082 146.777 251.652V252.16V341.281C146.777 354.315 144.915 365.826 141.191 375.812C137.467 385.63 132.643 394.178 126.719 401.457C133.828 410.598 138.822 420.415 141.699 430.91C144.746 441.405 146.27 451.223 146.27 460.363V550.246C146.27 556.171 147.793 560.91 150.84 564.465C153.887 567.85 157.526 570.474 161.758 572.336C165.99 574.029 170.221 575.129 174.453 575.637C178.685 575.975 181.986 576.145 184.355 576.145H217.109V642.922H183.848C176.908 642.922 169.46 642.16 161.504 640.637C153.717 639.283 145.931 636.997 138.145 633.781C130.527 630.734 123.164 626.757 116.055 621.848C109.115 616.939 102.936 611.014 97.5195 604.074C92.2721 597.134 88.0404 589.178 84.8242 580.207C81.7773 571.236 80.2539 561.079 80.2539 549.738V460.871C80.2539 451.9 77.8841 445.214 73.1445 440.812C68.5742 436.411 62.1419 434.211 53.8477 434.211C49.1081 434.211 44.707 433.365 40.6445 431.672C36.582 429.81 33.0273 427.44 29.9805 424.562C27.1029 421.516 24.8177 417.961 23.125 413.898C21.4323 409.836 20.5859 405.52 20.5859 400.949C20.5859 396.379 21.4323 392.147 23.125 388.254C24.8177 384.191 27.1029 380.721 29.9805 377.844C33.0273 374.797 36.4974 372.427 40.3906 370.734C44.4531 368.872 48.7695 367.857 53.3398 367.688C62.4805 367.688 69.3359 365.487 73.9062 361.086C78.4766 356.516 80.7617 349.914 80.7617 341.281V251.652C80.7617 237.095 83.724 224.146 89.6484 212.805C95.5729 201.464 103.444 191.9 113.262 184.113C123.079 176.327 134.167 170.402 146.523 166.34C159.049 162.277 171.829 160.246 184.863 160.246H217.617V226.262ZM595.47 371.242C595.47 386.307 593.608 399.764 589.884 411.613C586.16 423.462 581.082 433.957 574.65 443.098C568.387 452.069 561.108 459.771 552.814 466.203C544.52 472.635 535.802 477.883 526.662 481.945C517.69 486.008 508.55 488.97 499.24 490.832C490.099 492.694 481.466 493.625 473.341 493.625H324.045V427.609H473.341C481.805 426.932 489.422 425.24 496.193 422.531C503.133 419.654 509.058 415.845 513.966 411.105C518.875 406.366 522.684 400.695 525.392 394.094C528.101 387.323 529.455 379.706 529.455 371.242V341.281C528.608 332.987 526.831 325.37 524.123 318.43C521.414 311.49 517.69 305.565 512.951 300.656C508.38 295.747 502.795 291.939 496.193 289.23C489.591 286.353 481.974 284.914 473.341 284.914H324.552C315.75 284.914 309.064 287.199 304.494 291.77C299.923 296.34 297.638 302.941 297.638 311.574V583H231.623V311.574C231.623 294.647 234.67 280.259 240.763 268.41C247.026 256.561 254.728 246.997 263.869 239.719C273.179 232.44 283.25 227.193 294.084 223.977C304.917 220.591 314.904 218.898 324.045 218.898H473.341C488.237 218.898 501.61 220.845 513.459 224.738C525.308 228.462 535.718 233.54 544.689 239.973C553.83 246.236 561.532 253.514 567.795 261.809C574.227 270.103 579.474 278.82 583.537 287.961C587.768 296.932 590.815 306.073 592.677 315.383C594.539 324.523 595.47 333.156 595.47 341.281V371.242ZM778.07 400.949C778.07 405.52 777.223 409.836 775.53 413.898C773.838 417.961 771.468 421.516 768.421 424.562C765.543 427.44 762.073 429.81 758.011 431.672C754.118 433.365 749.886 434.211 745.316 434.211C736.683 434.211 729.997 436.411 725.257 440.812C720.687 445.214 718.402 451.9 718.402 460.871L718.909 549.738C718.909 561.079 717.301 571.236 714.085 580.207C710.869 589.178 706.553 597.134 701.136 604.074C695.719 611.014 689.456 616.939 682.347 621.848C675.407 626.757 668.043 630.734 660.257 633.781C652.64 636.997 644.853 639.283 636.898 640.637C629.111 642.16 621.748 642.922 614.808 642.922H582.054L581.546 576.145H614.808C617.008 576.145 620.224 575.975 624.456 575.637C628.688 575.129 632.835 574.029 636.898 572.336C641.129 570.474 644.769 567.85 647.816 564.465C650.862 560.91 652.386 556.171 652.386 550.246V460.363C652.386 451.223 653.909 441.405 656.956 430.91C660.172 420.415 665.166 410.598 671.937 401.457C666.012 394.178 661.103 385.63 657.21 375.812C653.486 365.826 651.624 354.315 651.624 341.281V252.16V251.652C650.778 246.913 649.17 242.935 646.8 239.719C644.599 236.503 641.806 233.879 638.421 231.848C635.036 229.816 631.227 228.378 626.995 227.531C622.933 226.685 618.701 226.262 614.3 226.262H581.038V160.246H614.3C628.011 160.246 641.129 162.447 653.655 166.848C666.181 171.079 677.184 177.258 686.663 185.383C696.312 193.339 703.929 202.987 709.515 214.328C715.101 225.5 717.894 237.941 717.894 251.652C717.894 252.837 717.978 260.878 718.148 275.773C718.317 290.5 718.402 312.336 718.402 341.281C718.402 349.914 720.602 356.516 725.003 361.086C729.404 365.487 736.175 367.688 745.316 367.688C749.886 367.857 754.118 368.872 758.011 370.734C762.073 372.427 765.543 374.797 768.421 377.844C771.468 380.721 773.838 384.191 775.53 388.254C777.223 392.147 778.07 396.379 778.07 400.949Z" fill="#F4F4F4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -0,0 +1,3 @@
<svg width="800" height="800" viewBox="0 0 800 800" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M217.617 226.262H184.863C180.632 226.262 176.23 226.77 171.66 227.785C167.259 228.632 163.197 230.07 159.473 232.102C155.749 234.133 152.702 236.757 150.332 239.973C147.962 243.189 146.777 247.082 146.777 251.652V252.16V341.281C146.777 354.315 144.915 365.826 141.191 375.812C137.467 385.63 132.643 394.178 126.719 401.457C133.828 410.598 138.822 420.415 141.699 430.91C144.746 441.405 146.27 451.223 146.27 460.363V550.246C146.27 556.171 147.793 560.91 150.84 564.465C153.887 567.85 157.526 570.474 161.758 572.336C165.99 574.029 170.221 575.129 174.453 575.637C178.685 575.975 181.986 576.145 184.355 576.145H217.109V642.922H183.848C176.908 642.922 169.46 642.16 161.504 640.637C153.717 639.283 145.931 636.997 138.145 633.781C130.527 630.734 123.164 626.757 116.055 621.848C109.115 616.939 102.936 611.014 97.5195 604.074C92.2721 597.134 88.0404 589.178 84.8242 580.207C81.7773 571.236 80.2539 561.079 80.2539 549.738V460.871C80.2539 451.9 77.8841 445.214 73.1445 440.812C68.5742 436.411 62.1419 434.211 53.8477 434.211C49.1081 434.211 44.707 433.365 40.6445 431.672C36.582 429.81 33.0273 427.44 29.9805 424.562C27.1029 421.516 24.8177 417.961 23.125 413.898C21.4323 409.836 20.5859 405.52 20.5859 400.949C20.5859 396.379 21.4323 392.147 23.125 388.254C24.8177 384.191 27.1029 380.721 29.9805 377.844C33.0273 374.797 36.4974 372.427 40.3906 370.734C44.4531 368.872 48.7695 367.857 53.3398 367.688C62.4805 367.688 69.3359 365.487 73.9062 361.086C78.4766 356.516 80.7617 349.914 80.7617 341.281V251.652C80.7617 237.095 83.724 224.146 89.6484 212.805C95.5729 201.464 103.444 191.9 113.262 184.113C123.079 176.327 134.167 170.402 146.523 166.34C159.049 162.277 171.829 160.246 184.863 160.246H217.617V226.262ZM595.47 371.242C595.47 386.307 593.608 399.764 589.884 411.613C586.16 423.462 581.082 433.957 574.65 443.098C568.387 452.069 561.108 459.771 552.814 466.203C544.52 472.635 535.802 477.883 526.662 481.945C517.69 486.008 508.55 488.97 499.24 490.832C490.099 492.694 481.466 493.625 473.341 493.625H324.045V427.609H473.341C481.805 426.932 489.422 425.24 496.193 422.531C503.133 419.654 509.058 415.845 513.966 411.105C518.875 406.366 522.684 400.695 525.392 394.094C528.101 387.323 529.455 379.706 529.455 371.242V341.281C528.608 332.987 526.831 325.37 524.123 318.43C521.414 311.49 517.69 305.565 512.951 300.656C508.38 295.747 502.795 291.939 496.193 289.23C489.591 286.353 481.974 284.914 473.341 284.914H324.552C315.75 284.914 309.064 287.199 304.494 291.77C299.923 296.34 297.638 302.941 297.638 311.574V583H231.623V311.574C231.623 294.647 234.67 280.259 240.763 268.41C247.026 256.561 254.728 246.997 263.869 239.719C273.179 232.44 283.25 227.193 294.084 223.977C304.917 220.591 314.904 218.898 324.045 218.898H473.341C488.237 218.898 501.61 220.845 513.459 224.738C525.308 228.462 535.718 233.54 544.689 239.973C553.83 246.236 561.532 253.514 567.795 261.809C574.227 270.103 579.474 278.82 583.537 287.961C587.768 296.932 590.815 306.073 592.677 315.383C594.539 324.523 595.47 333.156 595.47 341.281V371.242ZM778.07 400.949C778.07 405.52 777.223 409.836 775.53 413.898C773.838 417.961 771.468 421.516 768.421 424.562C765.543 427.44 762.073 429.81 758.011 431.672C754.118 433.365 749.886 434.211 745.316 434.211C736.683 434.211 729.997 436.411 725.257 440.812C720.687 445.214 718.402 451.9 718.402 460.871L718.909 549.738C718.909 561.079 717.301 571.236 714.085 580.207C710.869 589.178 706.553 597.134 701.136 604.074C695.719 611.014 689.456 616.939 682.347 621.848C675.407 626.757 668.043 630.734 660.257 633.781C652.64 636.997 644.853 639.283 636.898 640.637C629.111 642.16 621.748 642.922 614.808 642.922H582.054L581.546 576.145H614.808C617.008 576.145 620.224 575.975 624.456 575.637C628.688 575.129 632.835 574.029 636.898 572.336C641.129 570.474 644.769 567.85 647.816 564.465C650.862 560.91 652.386 556.171 652.386 550.246V460.363C652.386 451.223 653.909 441.405 656.956 430.91C660.172 420.415 665.166 410.598 671.937 401.457C666.012 394.178 661.103 385.63 657.21 375.812C653.486 365.826 651.624 354.315 651.624 341.281V252.16V251.652C650.778 246.913 649.17 242.935 646.8 239.719C644.599 236.503 641.806 233.879 638.421 231.848C635.036 229.816 631.227 228.378 626.995 227.531C622.933 226.685 618.701 226.262 614.3 226.262H581.038V160.246H614.3C628.011 160.246 641.129 162.447 653.655 166.848C666.181 171.079 677.184 177.258 686.663 185.383C696.312 193.339 703.929 202.987 709.515 214.328C715.101 225.5 717.894 237.941 717.894 251.652C717.894 252.837 717.978 260.878 718.148 275.773C718.317 290.5 718.402 312.336 718.402 341.281C718.402 349.914 720.602 356.516 725.003 361.086C729.404 365.487 736.175 367.688 745.316 367.688C749.886 367.857 754.118 368.872 758.011 370.734C762.073 372.427 765.543 374.797 768.421 377.844C771.468 380.721 773.838 384.191 775.53 388.254C777.223 392.147 778.07 396.379 778.07 400.949Z" fill="#F4F4F4" />
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -0,0 +1,5 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="500" height="500" fill="black"/>
<path d="M145.094 150.189H126.197C123.756 150.189 121.217 150.482 118.58 151.068C116.041 151.557 113.697 152.387 111.549 153.559C109.4 154.73 107.643 156.244 106.275 158.1C104.908 159.955 104.225 162.201 104.225 164.838V165.131V216.547C104.225 224.066 103.15 230.707 101.002 236.469C98.8535 242.133 96.0703 247.064 92.6523 251.264C96.7539 256.537 99.6348 262.201 101.295 268.256C103.053 274.311 103.932 279.975 103.932 285.248V337.104C103.932 340.521 104.811 343.256 106.568 345.307C108.326 347.26 110.426 348.773 112.867 349.848C115.309 350.824 117.75 351.459 120.191 351.752C122.633 351.947 124.537 352.045 125.904 352.045H144.801V390.57H125.611C121.607 390.57 117.311 390.131 112.721 389.252C108.229 388.471 103.736 387.152 99.2441 385.297C94.8496 383.539 90.6016 381.244 86.5 378.412C82.4961 375.58 78.9316 372.162 75.8066 368.158C72.7793 364.154 70.3379 359.564 68.4824 354.389C66.7246 349.213 65.8457 343.354 65.8457 336.811V285.541C65.8457 280.365 64.4785 276.508 61.7441 273.969C59.1074 271.43 55.3965 270.16 50.6113 270.16C47.877 270.16 45.3379 269.672 42.9941 268.695C40.6504 267.621 38.5996 266.254 36.8418 264.594C35.1816 262.836 33.8633 260.785 32.8867 258.441C31.9102 256.098 31.4219 253.607 31.4219 250.971C31.4219 248.334 31.9102 245.893 32.8867 243.646C33.8633 241.303 35.1816 239.301 36.8418 237.641C38.5996 235.883 40.6016 234.516 42.8477 233.539C45.1914 232.465 47.6816 231.879 50.3184 231.781C55.5918 231.781 59.5469 230.512 62.1836 227.973C64.8203 225.336 66.1387 221.527 66.1387 216.547V164.838C66.1387 156.439 67.8477 148.969 71.2656 142.426C74.6836 135.883 79.2246 130.365 84.8887 125.873C90.5527 121.381 96.9492 117.963 104.078 115.619C111.305 113.275 118.678 112.104 126.197 112.104H145.094V150.189ZM363.086 233.832C363.086 242.523 362.012 250.287 359.863 257.123C357.715 263.959 354.785 270.014 351.074 275.287C347.461 280.463 343.262 284.906 338.477 288.617C333.691 292.328 328.662 295.355 323.389 297.699C318.213 300.043 312.939 301.752 307.568 302.826C302.295 303.9 297.314 304.438 292.627 304.438H206.494V266.352H292.627C297.51 265.961 301.904 264.984 305.811 263.422C309.814 261.762 313.232 259.564 316.064 256.83C318.896 254.096 321.094 250.824 322.656 247.016C324.219 243.109 325 238.715 325 233.832V216.547C324.512 211.762 323.486 207.367 321.924 203.363C320.361 199.359 318.213 195.941 315.479 193.109C312.842 190.277 309.619 188.08 305.811 186.518C302.002 184.857 297.607 184.027 292.627 184.027H206.787C201.709 184.027 197.852 185.346 195.215 187.982C192.578 190.619 191.26 194.428 191.26 199.408V356H153.174V199.408C153.174 189.643 154.932 181.342 158.447 174.506C162.061 167.67 166.504 162.152 171.777 157.953C177.148 153.754 182.959 150.727 189.209 148.871C195.459 146.918 201.221 145.941 206.494 145.941H292.627C301.221 145.941 308.936 147.064 315.771 149.311C322.607 151.459 328.613 154.389 333.789 158.1C339.062 161.713 343.506 165.912 347.119 170.697C350.83 175.482 353.857 180.512 356.201 185.785C358.643 190.961 360.4 196.234 361.475 201.605C362.549 206.879 363.086 211.859 363.086 216.547V233.832ZM468.432 250.971C468.432 253.607 467.943 256.098 466.967 258.441C465.99 260.785 464.623 262.836 462.865 264.594C461.205 266.254 459.203 267.621 456.859 268.695C454.613 269.672 452.172 270.16 449.535 270.16C444.555 270.16 440.697 271.43 437.963 273.969C435.326 276.508 434.008 280.365 434.008 285.541L434.301 336.811C434.301 343.354 433.373 349.213 431.518 354.389C429.662 359.564 427.172 364.154 424.047 368.158C420.922 372.162 417.309 375.58 413.207 378.412C409.203 381.244 404.955 383.539 400.463 385.297C396.068 387.152 391.576 388.471 386.986 389.252C382.494 390.131 378.246 390.57 374.242 390.57H355.346L355.053 352.045H374.242C375.512 352.045 377.367 351.947 379.809 351.752C382.25 351.459 384.643 350.824 386.986 349.848C389.428 348.773 391.527 347.26 393.285 345.307C395.043 343.256 395.922 340.521 395.922 337.104V285.248C395.922 279.975 396.801 274.311 398.559 268.256C400.414 262.201 403.295 256.537 407.201 251.264C403.783 247.064 400.951 242.133 398.705 236.469C396.557 230.707 395.482 224.066 395.482 216.547V165.131V164.838C394.994 162.104 394.066 159.809 392.699 157.953C391.43 156.098 389.818 154.584 387.865 153.412C385.912 152.24 383.715 151.41 381.273 150.922C378.93 150.434 376.488 150.189 373.949 150.189H354.76V112.104H373.949C381.859 112.104 389.428 113.373 396.654 115.912C403.881 118.354 410.229 121.918 415.697 126.605C421.264 131.195 425.658 136.762 428.881 143.305C432.104 149.75 433.715 156.928 433.715 164.838C433.715 165.521 433.764 170.16 433.861 178.754C433.959 187.25 434.008 199.848 434.008 216.547C434.008 221.527 435.277 225.336 437.816 227.973C440.355 230.512 444.262 231.781 449.535 231.781C452.172 231.879 454.613 232.465 456.859 233.539C459.203 234.516 461.205 235.883 462.865 237.641C464.623 239.301 465.99 241.303 466.967 243.646C467.943 245.893 468.432 248.334 468.432 250.971Z" fill="#F4F4F4"/>
<circle cx="250" cy="250" r="240" stroke="#F4F4F4" stroke-width="20"/>
</svg>

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
source/public/img/d111.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,6 @@
<svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="256" height="256" viewbox="0 0 949 256">
<path fill="#2366d1" d="M110.85125168440814 128L221.70250336881628 192L110.85125168440814 256L0 192Z"/>
<path fill="#609dff" d="M110.85125168440814 64L221.70250336881628 128L110.85125168440814 192L0 128Z"/>
<path fill="#a4c7ff" d="M110.85125168440814 0L221.70250336881628 64L110.85125168440814 128L0 64Z"/>
</svg>

After

Width:  |  Height:  |  Size: 431 B

Some files were not shown because too many files have changed in this diff Show more