.workers.dev` URL:
+
+然后就设置好了,下面的其他部分我没有特殊设置,这里就不讲了。但我没开 Media preview proxy,之前开了会看不到图片,可能需要再做一些特殊设置,但感觉也没什么开的必要?
+
+## Part3. 配置 Varnish Cache
+
+参考文档:[Using a Varnish Cache - Akkoma Documentation](https://docs.akkoma.dev/stable/configuration/optimisation/varnish_cache/)
+
+### 1. 安装 Varish
+
+参考:[Installing Varnish on Ubuntu - Varnish Developer Portal](https://www.varnish-software.com/developers/tutorials/installing-varnish-ubuntu/)
+
+### 2. 配置 Varnish
+
+进入 Akkoma 目录,比如在`/opt/akkoma` 下,复制 Akkoma 预置的 Varnish 配置文件到 Varnish 目录下:
+
+```bash
+cp /opt/akkoma/installation/akkoma.vcl /etc/varnish/akkoma.vcl
+```
+
+进入 Varnish 配置目录中,删除已有的`default.vcl` 配置:
+
+```bash
+cd /etc/varnish
+sudo rm -rf default.vcl
+```
+
+- 启动 Varnish:`sudo systemctl start varnish`
+- 检查 Varnish 情况:`sudo systemctl status varnish`
+- 停止 Varnish: `sudo systemctl stop varnish`
+- 设置开机启动:`sudo systemctl enable varnish`
+
+启动后可以通过`curl -D- localhost:6081` 检查运行情况,像这样就是正常运行了:
+
+
+### 3. 修改 Nginx 配置,可以修改下面的 upstream 端口为 6081
+
+
+
+## Part4. Storing Remote Media
+
+建议参考文档:[Storing Remote Media - Akkoma Documentation](https://docs.akkoma.dev/stable/configuration/storing_remote_media/)
+
+这部分我的配置不保证不产生任何副作用,因为我配置之后有些路由会 503,不确定是上面和这个环节那里出了错,下面我的配置仅供参考:
+
+```conf
+proxy_cache_path /tmp/akkoma-media-cache levels=1:2 keys_zone=pleroma_media_cache:10m max_size=10g
+ inactive=720m use_temp_path=off;
+```
+
+```conf
+ location /media {
+ proxy_cache akkoma_media_cache;
+ slice 1m;
+ proxy_cache_key $host$uri$is_args$args$slice_range;
+ proxy_set_header Range $slice_range;
+ proxy_cache_valid 200 206 301 304 1h;
+ proxy_cache_lock on;
+ proxy_ignore_client_abort on;
+ proxy_buffering on;
+ chunked_transfer_encoding on;
+ proxy_pass http://phoenix;
+ }
+
+ location /proxy {
+ proxy_cache akkoma_media_cache;
+ proxy_cache_lock on;
+ proxy_pass http://phoenix;
+ }
+```
+
+然后打开 Admin-Fe 中的 **MRF** 页面,在 Policies 的部分加上`MediaProxyWarmingPolicy`:
+
+
+大功告成。
+
+## 后言
+
+朋友 loikein 说像这种可能会重复说的话就可以整理成博客了,我觉得它说得很对,我以后会多整理一下这些回答过很多朋友的内容,之后或许:我离不开 Obsidian 的几个理由,还有很多想写的,但先不吹牛了。
+
+[^1]: [Cross-Origin Resource Sharing (CORS) - HTTP | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
diff --git a/urara/2023-10-02-remote-work/+page.md b/urara/2023-10-02-remote-work/+page.md
new file mode 100644
index 00000000..fdec4e1c
--- /dev/null
+++ b/urara/2023-10-02-remote-work/+page.md
@@ -0,0 +1,29 @@
+---
+title: 远程工作相关链接
+created: 2023-10-03
+summary: 对网友的回复,回滚系统误删了,存之。
+---
+方法:
+
+* [如何找到时薪 80 美元的远程工作(一) - GeekPlux](https://geekplux.com/posts/how-to-get-jobs-pay-80-dollars-per-hour-1)
+* [如何找到时薪 80 美元的远程工作(二) - GeekPlux](https://geekplux.com/posts/how-to-get-jobs-pay-80-dollars-per-hour-2)
+
+平台:
+
+* [Hire Freelancers & Find Freelance Jobs Online](https://www.freelancer.com/)
+* [We connect outstanding freelancers with great clients.](https://www.toptal.com/)
+* [upwork](https://www.upwork.com/)
+* [Your search engine for remote only engineering jobs](https://remoteonlyengineers.com/#)
+* [The remote job board you’ll enjoy using | Himalayas](https://himalayas.app/)
+* [Job Board Search](https://jobboardsearch.com/)
+* [Remote Jobs in Programming, Support, Design and more](https://remotive.com/)
+* [JustRemote](https://justremote.co/)
+* [JavaScript Jobs - OnSite and Remote JavaScript Jobs - August 2022](https://javascriptjob.xyz/)
+* [Remote OK](https://remoteok.com/)
+* [web3 招聘平台 - Bole Jobs](https://www.bolejobs.co/)
+* [Just Join IT](https://justjoin.it/)
+* [Startup Jobs – Developer, designer, marketing, sales jobs, and more](https://startup.jobs/)
+* [Find Startup Jobs Near You and Remote Jobs](https://wellfound.com/jobs)
+* [Build, Lead, Invest](https://www.angellist.com/)
+* [https://abetterweb3.notion.site/](https://abetterweb3.notion.site/)
+* [Remote first jobs](https://remotefirst.asia/)
diff --git a/urara/2024-01-20-2023/+page.md b/urara/2024-01-20-2023/+page.md
new file mode 100644
index 00000000..42e2ecce
--- /dev/null
+++ b/urara/2024-01-20-2023/+page.md
@@ -0,0 +1,156 @@
+---
+title: 2023 - 命题作文
+created: 2024-01-20
+summary: 写着写着就累了
+---
+
+我最近一直在想年终总结这件事情,从十二月底开始拖着一直不想写,关于「为什么不想写」,我想了很多,有的忘了,有的现在正要写。
+
+年终总结这种东西,似乎从来没有写过,年初计划倒是经常写。对我来说,年终总结就像一个命题作文,有既定的内容范围,它不像我每周胡乱写的周记一样漫无天际,它有无形的边框,要写什么、不写什么,似乎是有所约束的,这种约束感让我难以放手去写。
+
+所以,这是一篇年终总结吗?是,也不是。
+
+## 聊胜于无的年初计划
+
+2023刚开始的时候,我也在发愁年终总结,因为我,没什么好总结的。写写看了什么书?打了什么游戏?或者是看了什么剧或者番?不好意思,全都没有记录。有一种搜索记忆的方式是从我一年5k多的自言自语中遍历搜索,噢,天呐,不敢想象。
+
+所以2023刚开始的时候,我开了一个Airtable表格,目标是记录2023中做过的事情,比如看过的书之类的,结果……完全没有在记录,因为我也没看什么书。
+
+
+
+但是BL倒是有记一些:
+
+
+
+我想,我努力回想,年初计划了什么,四处翻看,终于在 Notion 里面找到一些记录,我还是有做到其中一些的,比如找工作、学习 React 和 Next.js 之类的,更多的就没有做到了,但鉴于我把计划都忘得差不多了,做不到就做不到吧。
+
+## 二次元的自我修养
+
+今年因为想着要找工作,所以我总是放不下心来去看东西,无论是电视剧还是动画片、漫画,所以今年并没有补充太多的二次元精神粮食。
+
+### 动画
+今年的动画看过:
+
+对了我还看了新版 《Trigun stampede》, Vash太帅了!就是剧情有点摸不着头脑。
+
+以及今年终于把巨人给看完了!我是那种一看东西就很容易入迷的人,所以花了几天的时间,没日没夜地看完了,从漫画到动画。确实很好看,剧情很好,颇具争议的结尾在我看来还可以接受,就是有的地方的基调比较抑郁,也比较吓人,让我睡不好觉。
+
+回想第一次看巨人还是高中的时候,时间过去太久,剧情都已经忘得差不多了,于是我又从头开始看,好神奇啊,除了主角的名字,其他的我真的全忘了,似乎也没有过去很久呀?尽管在最终季动画出来之前我就去补完了漫画,但看到三笠捧着艾伦的头的时候,眼泪还是落了下来。
+
+在巨人之前看了Eva,不太看得懂,感觉比较意识流,最后几集大段大段的独白让我再次陷入了偏头痛中。我很喜欢残酷天使这个OP。
+
+还看了比较热门的《跃动青春》和《地狱乐》、《天空大魔镜》,是当下饭番看的,三部都很不错,我都去把漫画补完了,当时我发在看跃动青春贴文的时候,似乎有网友说,是不是觉得有些感慨,因为没有这样类似的青春。啊,不是的,有过的,我还是会经常掉到那时的梦里,一次又一次。
+
+看了一半没看完的:《咒术回战》
+### 日漫
+除了上面提到的一些漫画之外,还看了《我推的孩子》、《咒术回战》(都没看完),以及断断续续在追的《电锯人》连载。
+
+### 韩漫
+今年开始看韩漫了。刚开始看的时候还煞有其事地记录看过的,并写评分,但随着看得越来越多,也就懒得写了,其中我比较喜欢的画风是《Wetsand》、《限定时光》的,节奏最好的是《邂逅》,我还去看了这本的原著小说,还不错,但也是有点老套的失忆情节。
+
+感觉韩漫好多剧情都不怎么样,比如说……咳,大名鼎鼎的《水边之夜》,今年看过觉得剧情比较好的是《将杀》、《危险的便利店》、《犯规》(未完结,但是我看了小说,小说还不错)、《冷血动物》、《百万罗曼史》(好看!第一次体会到矮子攻的魅力)、《彩虹城》(也是去看了小说)、《同情的形态》(比较虐,但是我喜欢这种酸涩的感觉)、《无线电风暴》、《百分百清洁》等等。
+
+今年比较期待《犯规》和《彩虹城》、《失能开关》的更新,这几本我都去看了原著小说,尽管翻译得差强人意,但还是品出了些许滋味,所以很期待。
+
+### 这也是二次元?
+意思是电视剧,今年只看了《黑暗荣耀》,很喜欢男主的人设,虽然我觉得这个角色和剧情缝合得很牵强,演员演技似乎也不太够。但我还是很喜欢这种像小狗一样的人设。
+
+电影,因为没有一起去电影院的朋友,我自己在家也不太能坐这么久看电影,所以一部也没看。等等,似乎看了一部叫《星条红与皇室蓝》的,很扯,但是又很好磕,比较悲剧的是:我站反了。
+
+还有关于BL小说的部分,今年完全没读,除了上面提到的读过的几本韩漫原著之外,只读了卡比丘的一本新作,叫什么来着?
+
+
+## 年度好物和浪费钱
+今年跟往年一样,还在败家和浪费钱,而且败得更多了。
+
+年度好物:Switch
+
+年度浪费钱:Readwise Reader 会员?
+
+### Nintendo Switch OLED
+今年买的最值的东西:Nintendo Switch OLED(斯普拉顿三限定)!虽然很多人说 2024年就要出新版了,现在买很不值,但是我还是觉得能在2023年买到真的太好了,原来快乐这么容易就可以买到。
+
+我买了很多游戏,都是比较热门的,比如说塞尔达的两部、斯普拉顿三、动森、逆转裁判、幽灵诡计等等,其中玩得最多的是斯普拉顿三,其他因为太喜欢玩斯普拉顿三所以搁置了。
+
+我一开始想买 Switch,是因为想跟朋友井一起玩,她是一个喷喷爱好者,2和3都买了,但当我买到之后她已经好久不玩了,那句话怎么说来着?「电子阳痿」。我尽毕生所学去求她还是没有把她拉回游戏里面,实在可惜呀!但是我在游戏里也认识到不少朋友,也算是好事吧。
+
+说起来昨天井给我发了 Switch2 的消息,我还是挺期待2代的,私心希望能晚一点点出,我再攒点钱……
+
+还买了Switch 配件若干:
+- 好用爱用:创维23.8寸的显示器
+- 还行经常用:漫步者M230蓝牙音箱
+- 没什么用:Switch 防尘盒
+- 有时用:tomotoc 的收纳包
+- 超值:Switch Pro,在网上收的二手,才180!手感太好了
+- 想想不买也可以:紫绿配色 Joycon
+- 用了几天就没用:Skull & Co.的Joycon摇杆帽
+- 不是浪费钱,是一种情趣:任天堂周边布贴和喷喷周边(鱼蛋和手套)
+- 我何罪之有:网易UU加速器会员、biubiu加速器会员、小米AX3000T路由器
+
+### 新手机
+
+熟悉的朋友都知道我是一个不太爱用手机的人,但是我今年换手机了,换的是和朋友同款的 iPhone 15 Pro。换手机的理由不多,就是手机上很多APP开始闪退了,所以在国庆前后换掉了,上一个手机是用了两年多的荣耀50,是家人手机丢了然后临时买的,后面手机又找到了,所以我拿来用了。
+
+用了有三个月左右,目前感觉还不错,但是我手机只用来拍照、购物、看天气等简单操作,虽然装了很多 APP,但是都没有怎么深度用过,浏览器还是用的默认的Safari,说起来 Safari 没有 UBlock Origin实在是很难受,很想念Fennec,原来没有广告的世界是这么纯净。
+
+总的来说,手机手感很好,边缘很圆润不切手,IOS系统APP统一的设计让人感受到一种整洁的美,然后拍照功能也不错,我觉得还是蛮值的。不久前我手机上是没有安装任何音乐APP的,但因为最近买了副 AirPods,所以我也装了几个这样的 APP,比如 Spotify 之类的,感觉耳机在手机和电脑之间切换很自然,就是我很少有使用的场景。
+
+### 通勤包
+不久前回家,在衣柜里面翻到两个全新的包,然后想起来这是朋友送的,感觉有点可惜,我不太喜欢被送东西,因为很少有人能送我需要的,就像这两个包,就像买东西送的那几个品牌贴纸,我不需要,我又不好意思扔掉,处于一种比较尴尬的局面。
+
+说回包,我有一个用了很久很久的斜挎小包,来自NTMY:
+
+
+
+我在这家店买过不少包,双肩包、斜挎包、还有一个丢失了的相机包,这个牌子的质量都很好,轻便耐用。所以我又买了一个斜挎的邮差包作为通勤包:
+
+
+抱歉没有实物图,我懒得拍。这个包可以装下十三寸的Macbook,里面还有夹层,夏天背着蛮清爽的,因为广东一年四季都是夏天,所以四季皆宜。就是里面放电脑的话,转身很容易撞到门,要小心一点。因为肩带有点长,看评论区说可以用日字扣缩短,所以我也试了下,好方便!日字扣就是这个:
+
+
+
+
+
+### 周边若干
+
+莫名其妙就买了的EVA周边(分别是耳机套和充电宝。):
+
+
+
+
+今年能看完全职猎人吗?:
+
+
+来自熊先生商会:
+
+
+
+
+### Readwise Reader 订阅服务
+
+在这个 Reader 出来之前的赞扬有多少,我的失望就有多少。
+
+不算便宜的订阅费,性能却极其差劲,我很少能在手机上正常打开,无论是安卓还是 IOS ,也许是因为我有一千多个 RSS 订阅源吧,但是我觉得这种性能表现很不应该,比这个更多的订阅源,我在 Miniflux 上却从来没卡顿过。
+
+网页上他们的标注插件性能也不好,总是占浏览器CPU的前两名,甚至说不同浏览器内打开 Reader 之后,里面的内容都不是同步的,还遇到几次添加了页面但是找不到的情况。
+
+我是觉得,阅读APP应该做到秒开,因为对我来说一时兴起阅读这种事情是很难得的……
+
+今年还订吗?得想想,因为我最近又能正常使用了。
+
+## 写到这里就够了
+想写的特别多,但是写着写着总是觉得没完没了,就像一个黑洞,这也写,那也写,什么时候写得完?所以下面快速总结一下今年:
+
+今年我换了一份比较满意的工作,慢慢的从前端转换到全栈,自学了React、Next.js、TypeScript、bash,还学了一点 Shader 和计算机图形学、Go,学会了写API接口,也对 Vue 更熟练了,今年还做了几个项目,比如几个 Raycast 插件,和kwaa写了一点CSS,全年写代码约 1232 小时。
+
+今年参加了妹妹的婚礼,还给高中同学封了我的第一个红包,感觉很多同龄人都走向了家庭生活,我还是和往常一样,没有什么特别的,我也不想走入家庭生活。
+
+今年见到的朋友很少,无论是井还是 Pully,我们都很久不见了,希望2024年能见到吧。然后是网友,总觉得网友比我的很多朋友更了解我,因为我们每天都在同一片狭窄又宽阔的联邦宇宙更新自己的状态,两年?还是三年?认识也有好久了,通过某篇博文里面看到的联系方式、因为同一个城市所以熟悉起来的同行、因为同样的困境、喜好所以聚在一起的朋友,好神奇呀。
+
+今年做梦,一次又一次梦到高中,就像一个无法逃脱的梦,很奇怪。
+
+在刚上学的时候,所有人都会问:「你的梦想是什么?」,那时我对世界知之甚少,有人说「科学家」,但我连科学家都不知道是什么,只知道每天放学回家就打开电视看虹猫蓝兔,因为他们需要一个答案,所以我也捡起了「科学家」的「梦想」。初高中的时候,老师则会问,「你以后想去做什么?念什么大学,学什么专业?」,然后我们在留言板上写下自己设想的未来,大学的时候,辅导员会问:「你以后有什么计划?考研还是就业?」,
+
+现在想想,有多久没有人问过我:「你以后想成为什么样的人?」,好像就业就是一个终点,被看作是一种人生完成态的终止,几乎没有人再问我,想成为什么样的人,我似乎已经变成一个不可改变的状态,我只能成为我自己了。
+
+于是我最近开始问自己这个问题,我没想明白,但正在想,希望今年能想明白。
\ No newline at end of file
diff --git a/urara/2024-02-23-reading/+page.md b/urara/2024-02-23-reading/+page.md
new file mode 100644
index 00000000..f4a01a46
--- /dev/null
+++ b/urara/2024-02-23-reading/+page.md
@@ -0,0 +1,80 @@
+---
+title: 我在看什么 · 2023年9月~2024年2月
+created: 2024-02-23
+summary: 如何设计优秀的 URL / 游戏机黑客词汇表 / Coding Menu / Four Magic Words
+tags:
+ - 我在看什么
+---
+
+又上班之后看的东西就少了,但还是攒了一些。
+
+## 电子设备
+- [E-ink is so Retropunk](https://rmkit.dev/eink-is-so-retropunk/)
+- [My E-Reader Setup](https://blog.videah.net/my-e-reader-setup/)
+ - 讲的是 Kobo Libra 2
+- 为了NS重启网络知识学习:
+ - [游戏机黑客词汇表](https://gledos.science/hacking-game-console-word-list.html)
+ - [Nintendo Switch:~联机加速方案的研究与折腾~](https://zankyo.cc/2845/)
+ - [OpenWRT路由器加速Switch联机的方案](https://nekodaemon.com/2021/03/02/OpenWRT%E8%B7%AF%E7%94%B1%E5%99%A8%E5%8A%A0%E9%80%9FSwitch%E8%81%94%E6%9C%BA%E7%9A%84%E6%96%B9%E6%A1%88/)
+ - [如何让日版主机找到5G信号?](https://www.gcores.com/articles/25847)
+ - [Switch自建NAT优化指北](https://blog.z3ratu1.top/Switch%E8%87%AA%E5%BB%BANAT%E4%BC%98%E5%8C%96%E6%8C%87%E5%8C%97.html)
+- [介于一般和糟糕之间:文石 Tab Ultra C Pro 测评](https://roriri.one/2023/12/10/boox-tab-c-pro/)
+## 写代码
+- [【API技术核心原理】REST | GraphQL | gRPC | tRPC](https://www.bilibili.com/video/BV1yL41167fD/)
+- [Argon2 vs bcrypt vs. scrypt: which hashing algorithm is right for you?](https://stytch.com/blog/argon2-vs-bcrypt-vs-scrypt/)[Playwright vs Cypress: A Comparison](https://www.browserstack.com/guide/playwright-vs-cypress)
+- [Full-Stack TypeScript with tRPC and React](https://www.robinwieruch.de/react-trpc/)
+- [How to use the JavaScript bcrypt library](https://flaviocopes.com/javascript-bcrypt/)
+- [PWA for Vue applications: A practical guide](https://dev.to/pegahsafaie/pwa-for-vue-applications-a-practical-guide-4de3)
+ - 有点过时了,但我的项目也是过时的,所以能用
+- [The Source of Readability](https://loup-vaillant.fr/articles/source-of-readability)
+ > - If the thing itself is big, we won’t have much brain space left to understand the surrounding context. The less that context matters the better.
+ > - Counting source lines of code only works if you honestly observe similar coding conventions.
+ > - Most auto-formatters are liable to add a lot of lines to this function, for no discernible benefit.
+- [Passkeys: A No-Frills Explainer On The Future Of Password-Less Authentication — Smashing Magazine](https://www.smashingmagazine.com/2023/10/passkeys-explainer-future-password-less-authentication/)
+ - 没看完,但感觉不错,Passkey的介绍博文
+- [JavaScript WTF: Why does every() return true for empty arrays? - Human Who Codes](https://humanwhocodes.com/blog/2023/09/javascript-wtf-why-does-every-return-true-for-empty-array/)
+ > Instead of reading every() as “does every item in this array match this condition?” read it as, “is there any item in this array that doesn’t match this condition?” That shift in thinking can help avoid errors in your JavaScript code going forward.
+- [性能优化模式](https://tech.meituan.com/2015/12/10/performance-tuning-pattern.html)
+- [Simplifying File Saving with JavaScript Blobs and Wails: A Step-by-Step Guide](https://www.shrey.com/blog/simplifying-file-saving-with-javascript-blobs-and-wails-a-step-by-step-guide)
+- [How to Persist a Logged-in User in React](https://www.freecodecamp.org/news/how-to-persist-a-logged-in-user-in-react/)
+- [开源对象存储服务:Minio – 标点符](https://www.biaodianfu.com/minio.html)
+- [探索前端跨组件通信:EventBus在Vue和React中的应用 - 掘金](https://juejin.cn/post/7321271017430908980)
+- [重新思考浏览器输入了 URL 并按下回车之后到底发生了什么——本地 DNS 部分](https://nova.moe/rethink-type-url-dns/)
+- [Authentication in Nuxt 3](https://dev.to/rafaelmagalhaes/authentication-in-nuxt-3-375o)
+ - 很实用,照着做了
+- [FileReader - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/FileReader?retiredLocale=de)
+ - 用于图片转Base64
+- [Why I’m learning Deno](https://commonlog.jjude.com/why-im-learning-deno/)
+- [如何设计优秀的 URL?](https://segmentfault.com/a/1190000044493390)
+ - 比较标题党的一篇文章,并没有说「如何设计」,但是里面一些相关文章还不错:
+ - [URL Design · by Kyle Neath](https://warpspire.com/posts/url-design/)
+ 
+ - [Four Cool URLs - Alex Pounds’ Blog](https://alexpounds.com/blog/2018/12/29/four-cool-urls)
+ 
+- [console.delight – Frontend Masters Boost](https://frontendmasters.com/blog/console-delight/)
+
+## 杂谈
+- [How to Make Learning as Addictive as Social Media | Luis Von Ahn | TED](https://www.youtube.com/watch?v=P6FORpg0KVo)
+ - 讲 Duolingo 是如何借鉴 Social Media App 的机制让人上瘾的,一个是用打卡机制,另一个是用AI选择合适的时间发送App学习提醒。
+ 挺有意思的。
+- [Superlinear Returns](http://paulgraham.com/superlinear.html)
+ 
+- [gilest.org: Make the indie web easier](https://gilest.org/indie-easy.html)
+ 
+- [Rich Bowen: 无论你在创造什么,最终交付的是信任](https://segmentfault.com/a/1190000044267214)
+- [How To Code Everyday](https://www.youtube.com/watch?v=a0eB7tMkvs4)
+ > Coding Menu就是把不同的Coding Task按时间分类,按当天的精力选取适合的Task
+- [互联网故障背后的草台班子们](https://mp.weixin.qq.com/s/e7S_USwAkg6ACLOcHHX9rg)
+## 有意思
+- [André Staltz - Some people want to run their own servers](https://staltz.com/some-people-want-to-run-their-own-servers.html)
+- [Four Magic Words](https://www.fortressofdoors.com/four-magic-words/)
+ - 非常有意思的一篇,看得我坐过站了
+- [Illinois|专辑浅谈|关于亡灵、UFO、黑鹰、连环杀手、黄蜂、僵尸…与爱](https://mp.weixin.qq.com/s/8_y6Opx2orhhT-phbX_yHg)
+- [超还原!three.js复刻原神启动,网页就能玩](https://www.bilibili.com/video/BV1E8411v7xy)
+- [zoxide has forever improved the way I navigate in the terminal. - YouTube](https://www.youtube.com/watch?v=aghxkpyRVDY)
+ - cd 命令的替代品,但是我没试过,写完这篇博文试试
+
+## 其他
+- [《风花雪月》全人物培养攻略之:青狮学级](https://www.bilibili.com/read/cv3334448/)
+ - 吾生也有涯,下棋也无涯
+- 书:《网络是怎样连接的》
\ No newline at end of file
diff --git a/urara/2024-09-14-obsidian-apperance/+page.md b/urara/2024-09-14-obsidian-apperance/+page.md
new file mode 100644
index 00000000..e9edda6c
--- /dev/null
+++ b/urara/2024-09-14-obsidian-apperance/+page.md
@@ -0,0 +1,143 @@
+---
+title: 使用 Obsidian 三年之后的设置 (外观篇)
+created: 2024-09-14
+summary: 爱用 Minimal 主题就是 Minimalist 吗
+tags:
+ - Obsidian
+image: /2024-09-14-obsidian-apperance/cover.png
+---
+截止这篇文章发布的时候(2024年9月14日),我的 Obsidian 库里面有2874个文档,最早的文件创建时间是 2021年5月18日。我的设备是Macbook Pro M1 (2020),目前还足够跑一个这样的Obsidian仓库,没有卡慢的情况。
+
+太长的文章我没有信心写完,所以打算一篇一篇写,这是第一篇,关于我在Obsidian里面做的一些面子工程。
+
+## 个人偏好
+虽然本人姑且算是一个程序员,但是我喜欢All in Light mode,喜欢小的字体(15、14px左右)、喜欢低饱和的配色,比如[Nord](https://www.nordtheme.com/)、Catppuccin这种,喜欢纤细扁平的UI风格,如果有一点干净清透的阴影就更好了,还喜欢有一点圆角的图片(我是说4px左右)。
+
+所以我的配置也是这种风格的,请看目前的配置:
+
+
+
+
+其实对于目前的样式,我是有一些不满意的,就是……左边工具栏好多风格不一的icon,而且都是些我不太用得上能,没事……再忍忍,等写到插件篇,我会去整理的。
+## 基础样式
+### 字体
+
+#### 字体选择策略
+忘记在哪里看到过,衬线体适合阅读,无衬线体适合用作界面UI字体,因为无衬线体更简洁容易辨别,认知负担小。
+
+所以我在Obsidain上也是采取这样的策略,目前我的字体设置:
+- 界面字体:[阿里巴巴普惠体2.0](https://done.alibabadesign.com/puhuiti2.0)
+- 正文字体:
+ - 英文:Spectral
+ - 中文:朱雀仿宋
+
+目前的正文字体比较正式,像印刷体,之前为了增加记笔记的趣味性,也用过这些搭配:
+- 界面字体:
+ - iA Writer Quatto S
+- 正文字体:
+ - 英文:iA Writer Quatto S
+ - 中文:[LXGW Bright](https://github.com/lxgw/LxgwBright) (这个字体中英文都很美丽,也可以中英文共用一个字体)
+
+代码字体一直都是Jetbrains Mono Nerd Font,因为Nerd Font支持很多Logo,所以我很喜欢,可以在这里选择自己喜欢的下载:[Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher](https://www.nerdfonts.com/font-downloads), 顺带一提,我在IDE也用的 Jetbrains Mono Nerd Font。
+
+字体大小是15px。
+
+#### 如何分别设置中英文字体
+Obsidian上的字体设置有点像CSS里面的,有优先级和Fallback,越上面的字体优先级越高,当上面的字体无法找到对应的字时,就会回落到下一个字体设置。
+
+
+
+比如说上图中的字体,Spectral为英文字体,没有中文字符,所以当Spectral中没有中文字符的时候就会使用Zhuque Fangsong中的字体,所以我们可以把英文字体放在第一个,然后中文字体放在第二个,以此来分别设置中英文的字体。
+
+我比较奇怪,在网上看到比较好看的网页字体时会马上F12去查看用了什么字体,然后想办法下载到电脑上,最后收集了好多漂亮的字体,但又总是用回那几个。
+
+### 堆叠标签页
+默认状态下Obsidian的标签页是像浏览器那样水平一个一个横着延展的:
+
+
+
+但是我喜欢设置成像书本一样堆叠的标签页:
+
+
+如果用可以用滚轮左右滑动的鼠标就很方便,比如说我用的魔法老鼠和触控板,手指轻轻一滑就可以左右滑动切换页面,也许这也是我为什么还在用魔法老鼠的原因之一吧。
+
+设置方法如下:
+
+
+
+题外话:
+这个设置我都忘了什么时候设置的了,上次朋友问我,找了好久。这个功能在我一开始用Obsidian的时候是没有的,我是在[+ Start Here - LYT Kit](https://notes.linkingyourthinking.com/Cards/%2B+Start+Here)的设置教程里看到的,当时是用一个叫 [Sliding Panes](https://github.com/deathau/sliding-panes-obsidian) 来设置的,最近一年多才加上堆叠标签页的功能。于是我就把Sliding Panes卸载了,现在社区里也找不到这个插件了。
+
+### 其他
+- 我没有修改Obsidain的icon,即使我觉得不好看,但是也不是不能看,所以就懒得换了。
+- 没有开启半透明效果
+- 没有开启自动Dark Mode, 再说了,电脑夜如白昼的话,开了也相当于没开。
+
+## 主题
+
+### Things
+
+用了很久的 [Things](https://github.com/colineckert/obsidian-things) ,这个主题的风格比较正式、整洁,标签的样式也很清新,我曾经参照Nord的配色修改了各个标题的颜色,但后面不知道为什么不见了,这个主题下的图片有很漂亮的圆角和阴影,我很喜欢。但我还是慢慢地厌倦了。
+
+
+
+### Minimal
+在很长一段时间,直到今天我都在用[Minimal](https://minimal.guide/home) 这个主题,这是我最喜欢的主题,它简洁优雅,没有对Obsidian本体做太多UI上的修改就使得整个界面焕然一新,就像人剪了个适合自己的发型那样,还能看出来是自己。(好烂的比喻)
+
+Minimal 主题最好配合插件[Minimal Theme Setting](obsidian://show-plugin?id=obsidian-minimal-settings)使用,配合插件可以使用更多的配色,做更多细致的调整。我最喜欢的配色是Nord配色,加上Background Contrast设置为All Light,All Light 模式下底色更白,更统一一点,插件里还有E-ink主题,有墨水屏显示器的朋友可以试一下。
+
+Minimal Theme setting 中可选的主题:
+
+
+我还喜欢用彩色的Heading,需要在插件中打开这个:
+
+其他的设置参考上图,我习惯只对外链用下划线,内链不用,这样我能比较容易地区分链接类型,然后status bar(右下角的那条东西) 也全隐藏起来。
+
+对了,Minimal还有一个很好的功能,就是对Checklist的样式做了特别的CSS,感觉很像Bullet Journal里面的list,可以参考:[Checklists - Minimal Documentation](https://minimal.guide/checklists)
+
+大概是这个样子:
+
+
+
+其实我还装了很多其他的主题,但我已经不再使用它们了,所以不再赘述。
+
+## 美观用的插件
+### Hider
+[GitHub - kepano/obsidian-hider: Hide Obsidian UI elements such as tooltips, status, titlebar and more](https://github.com/kepano/obsidian-hider)
+
+一个可以自定义隐藏部分Obsidian UI组件的插件,比如说隐藏Scroll Bar之类的,和Minimal是同一个作者,也就是现在Obsidian的CEO[^1]。其实这个插件我已经没有在用了,可能是Minimal Theme Setting里已经包含了其中的功能,所以我不太用得上了,但是因为已经用了两年多,所以还是列一下。
+
+
+### Style Setting
+[GitHub - mgmeyers/obsidian-style-settings: A dynamic user interface for adjusting theme, plugin, and snippet CSS variables within Obsidian](https://github.com/mgmeyers/obsidian-style-settings)
+
+这个插件可以用于调整很多主题的颜色配置等细节,如果那个主题支持的话,像上面提到的Things, Minimal都可以在这里调整。
+
+因为我很少用H1,大标题总是从H2开始,所以我给Minimal的H2标题加了下划线,可以这样设置:
+
+
+### Admonitions
+
+[GitHub - javalent/admonitions: Adds admonition block-styled content to Obsidian.md](https://github.com/javalent/admonitions)
+
+给Obsidian里的Callout Block添加动画效果,我比较少用Callout,但是样式我挺喜欢的。
+
+### List Callouts
+[GitHub - mgmeyers/obsidian-list-callouts: Create callouts in lists in Obsidian.](https://github.com/mgmeyers/obsidian-list-callouts)
+
+可以给List加上icon和颜色的插件,因为我记不住符号,所以不怎么用,但我很喜欢。
+
+Demo:
+
+
+### File Explorer Count
+文件夹内文件数量显示的插件,这应该也算是界面美观的一种?很实用。本文最开头提到的计数就是用这个插件算出来的。
+
+
+
+### Lapel
+[GitHub - liamcain/obsidian-lapel: 🤵 Dress up your editor. Obsidian plugin to show the heading level in the gutter.](https://github.com/liamcain/obsidian-lapel)
+
+一个在编辑器左侧显示Heading层次的插件,说不上有什么用,但觉得还是有点用。我一直开着。
+
+[^1]: 时间过得真快,我一开始用他插件的时候,他还只是一个活跃的用户呢,结果某天就变成了CEO!
\ No newline at end of file
diff --git a/urara/2024-10-14-obsidian-highlight/+page.md b/urara/2024-10-14-obsidian-highlight/+page.md
new file mode 100644
index 00000000..406e3b8d
--- /dev/null
+++ b/urara/2024-10-14-obsidian-highlight/+page.md
@@ -0,0 +1,117 @@
+---
+title: 为Obsidian添加仿真荧光笔高亮样式
+created: 2024-10-14
+summary: Subtle highlight style for Obsidian
+tags:
+ - Obsidian
+ - CSS
+---
+效果如图:
+
+
+参考:
+
+
+鉴于安装的插件和CSS样式太多,我强制用了`!important`, 所以代码比较丑陋。
+
+## 如何安装
+
+### 1. 安装插件highlightr
+如果只需要黄色样式的高亮效果,则不需要安装这个插件。
+安装链接:[obsidian://show-plugin?id=highlightr-plugin](obsidian://show-plugin?id=highlightr-plugin)
+
+highlight method设置为`css-classed`
+
+
+### 2. 安装CSS代码片段
+首先打开CSS代码片段存放的文件夹:
+
+
+然后点击 -> [subtle-hightlight.css](/2024-10-14-obsidian-highlight/subtle-highlight.css)下载css代码,下载后将`subtle-highlight.css`存到代码片段的文件夹中
+
+或者复制下面的代码后在该文件夹下创建一个叫`subtle-highlight.css` 的文件:
+```css
+span.cm-highlight{
+ background: linear-gradient(
+ 100deg,
+ #ffffaf00 1%,
+ #ffffaf 2.5%,
+ #ffffaf80 5.7%,
+ #ffffaf1a 93%,
+ #ffffafb4 95%,
+ #ffffaf00 98%
+ ),
+ linear-gradient(182deg, #ffffaf00, #ffffaf4d 8%, #ffffaf00 15%) !important;
+}
+
+mark:not([class]) {
+ background: linear-gradient(
+ 100deg,
+ #ffffaf00 1%,
+ #ffffaf 2.5%,
+ #ffffaf80 5.7%,
+ #ffffaf1a 93%,
+ #ffffafb4 95%,
+ #ffffaf00 98%
+ ),
+ linear-gradient(182deg, #ffffaf00, #ffffaf4d 8%, #ffffaf00 15%) !important;
+}
+
+.hltr-pink {
+ background: linear-gradient(
+ 100deg,
+ #ffafd400 1%,
+ #ffafd4 2.5%,
+ #ffafd480 5.7%,
+ #ffafd41a 93%,
+ #ffafd4b4 95%,
+ #ffafd400 98%
+ ),
+ linear-gradient(182deg, #ffafd400, #ffafd44d 8%, #ffafd400 15%) !important;
+}
+
+.hltr-green {
+ background: linear-gradient(
+ 100deg,
+ #b8ffaf00 1%,
+ #b8ffaf 2.5%,
+ #b8ffaf80 5.7%,
+ #b8ffaf1a 93%,
+ #b8ffafb4 95%,
+ #b8ffaf00 98%
+ ),
+ linear-gradient(182deg, #b8ffaf00, #b8ffaf4d 8%, #b8ffaf00 15%) !important;
+}
+
+.hltr-blue {
+ background: linear-gradient(
+ 100deg,
+ #afd7ff00 1%,
+ #afd7ff 2.5%,
+ #afd7ff80 5.7%,
+ #afd7ff1a 93%,
+ #afd7ffb4 95%,
+ #afd7ff00 98%
+ ),
+ linear-gradient(182deg, #afd7ff00, #afd7ff4d 8%, #afd7ff00 15%) !important;
+}
+```
+
+添加css文件后点击左边的“重新加载按钮”:
+
+
+找到该文件后打开:
+
+
+然后就可以啦
+
+## 如何使用
+对于黄色来说,用 `==需要高亮的内容==` 就可以了,而对于其他颜色,安装highlightr之后,选择需要高亮的文字,然后右键选择颜色即可,如图:
+
+
+目前只有粉色、绿色、蓝色有荧光笔仿真效果。
+
diff --git a/urara/2024-10-28-git/+page.md b/urara/2024-10-28-git/+page.md
new file mode 100644
index 00000000..84c0bc5a
--- /dev/null
+++ b/urara/2024-10-28-git/+page.md
@@ -0,0 +1,125 @@
+---
+title: Git使用随记
+created: 2024-10-28
+summary: git alias,git add -A,git add .
+tags:
+ - Git
+---
+
+## 最近常用Alias
+
+### git random
+功能:在制定的某个时间段内随机提交,并且每次提交都要比前次提交时间晚,适用于 MacOS、Linux,其他系统未经验证。
+
+比如说今晚22:00到明天3:00之间:
+```bash
+git config --global alias.random '!f() {
+ # 获取最后一次提交的时间戳
+ last_commit_time=$(git log -1 --format=%ct 2>/dev/null)
+
+ # 如果没有之前的提交,使用当前时间作为基准
+ if [ -z "$last_commit_time" ]; then
+ last_commit_time=$(date +%s)
+ fi
+
+ # 计算下一个可用的时间戳(最后提交时间 + 1分钟)
+ next_available_time=$((last_commit_time + 60))
+
+ # 获取今天 22:00 的时间戳
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ # MacOS
+ today=$(date -v22H -v00M -v00S +%s)
+ tomorrow=$(date -v+1d -v02H -v59M -v59S +%s)
+ else
+ # Linux
+ today=$(date -d "$(date +%Y-%m-%d) 22:00:00" +%s)
+ tomorrow=$(date -d "$(date -d tomorrow +%Y-%m-%d) 02:59:59" +%s)
+ fi
+
+ # 确保下一个可用时间在今天 22:00 到明天 02:59 之间
+ if [ $next_available_time -lt $today ]; then
+ next_available_time=$today
+ elif [ $next_available_time -gt $tomorrow ]; then
+ next_available_time=$tomorrow
+ fi
+
+ # 在下一个可用时间和明天 02:59 之间随机选择一个时间
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ # MacOS
+ random_time=$(jot -r 1 $next_available_time $tomorrow)
+ FISH_DATE=$(date -r $random_time "+%Y-%m-%d %H:%M:%S")
+ else
+ # Linux
+ random_time=$(shuf -i $next_available_time-$tomorrow -n 1)
+ FISH_DATE=$(date -d "@$random_time" "+%Y-%m-%d %H:%M:%S")
+ fi
+
+ # 如果没有提供提交信息,使用默认信息
+ commit_message=${1:-"Random commit at $FISH_DATE"}
+
+ # 设置环境变量并提交
+ GIT_AUTHOR_DATE="$FISH_DATE" \
+ GIT_COMMITTER_DATE="$FISH_DATE" \
+ git commit -m "$commit_message"
+}; f'
+```
+
+### git add -A + git commit -m "" 合并,快速提交
+
+设置:
+```bash
+git config --global alias.fast '!git add -A && git commit -m'
+```
+
+使用:
+```bash
+git fast "Your commit message here"
+```
+
+### undo
+撤销最后一次commit,但保留所有更改
+
+设置:
+```bash
+git config --global alias.undo 'reset --soft HEAD^'
+```
+
+使用:
+```bash
+git undo
+```
+
+### cancel
+完全撤销最后一次commit,丢弃所有更改
+
+设置:
+```bash
+git config --global alias.cancel 'reset --hard HEAD^'
+```
+
+使用:
+```bash
+git cancel
+```
+
+### `git add -A` 和 `git add .` 的区别
+
+一年多前和朋友讨论过这个问题,但是我没太理解,我一直用的是 git add -A。最近突然懂了:因为`.` 表示的是当前目录,所以 `git add .` 只会添加当前目录以及其子目录下的改动(类似于相对路径);而 A 表示 All,所以 `git add -A `会添加整个工作区的变动,不管在哪个目录执行。
+
+不过如果在根目录下执行,这两个命令就是等价的。
+
+### Git 学习资料
+按推荐程度排序:
+- [Learn Git Branching](https://learngitbranching.js.org/):既有图形可视化,又有跟使用场景贴近的练习,文字讲解也很清晰,但个人建议阅读繁体版本。
+- [Oh My Git!](https://ohmygit.org/): 游戏化的教程,很有意思,但还是有点抽象,跟实际场景不是特别贴切。
+- [gitchat](https://wkevin.github.io/GitChat/gitchat.html#round-1-%E8%B5%B7%E6%AD%A5): 风趣易懂的文字教程
+- [Learn Git with Bitbucket Cloud | Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud)
+- [Pro Git 第二版(中文版) · 看云](https://www.kancloud.cn/kancloud/progit)
+- [Git Time](https://git.bradwoods.io/):一个交互式的Git教程/游戏,更像玩游戏,玩了没记住什么(
+
+## 其他
+- [git cheatsheet](https://ndpsoftware.com/git-cheatsheet.html)
+- [github skills](https://skills.github.com/)
+- [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
+
+借此机会,我对之前的文章:[Git · 常用操作笔记](https://sevic.me/2022-05-25-git/) 中的命令表格进行了更新。
\ No newline at end of file
diff --git a/urara/2025-03-22-reading/+page.md b/urara/2025-03-22-reading/+page.md
new file mode 100644
index 00000000..a2c42e02
--- /dev/null
+++ b/urara/2025-03-22-reading/+page.md
@@ -0,0 +1,172 @@
+---
+title: 我在看什么 · 2024年3月 - 2025年3月
+created: 2025-03-22
+summary:
+tags:
+ - 我在看什么
+---
+时间过得真快,上次写这个系列还是2024年2月,没想到过去一年了。
+
+我的信息源:
+- Readwise Reader的每周Wisread订阅
+- 我的Miniflux RSS Reed订阅源
+- 好友推荐的文章
+- 某些推特[^1]上关注的博主推荐的书
+
+## 个人成长
+- [Do Quests, Not Goals](https://www.raptitude.com/2024/08/do-quests-not-goals/)
+ - 我不知道怎么翻译这个Quest比较好,感觉Focumn里面的理念跟这篇文章里面提到的蛮像的
+- [Find your own axis | thesephist.com](https://thesephist.com/posts/axis/)
+ > Career isn't a flat ordered list of professions where you rank things by how much success each profession signifies, and then pick the one closest to the top
+- [Remove Labels | Cheng-Wei Hu](https://chengweihu.com/remove-labels/)
+ > Labels can manifest as tangible symbols, such as shirt logos, or intangible terms that we or society assign to us, like being called "smart" or "cool". And beyond serving as outward signals, labels also resonate internally, influencing our actions through our natural tendency.
+ >
+ > We draw an unnecessary line for our behavior and potential because we label ourselves as a "non-math" person.
+ >
+ > To embrace complete freedom and follow our intrinsic curiosity, we should remove unnecessary labels until we can completely ignore them. While labels can be useful, we should be wary of their subconscious influence. We must choose our labels carefully and consciously.
+- [Inside the Toolkit: PKM App Essentials - by Renee De Four](https://anthologyofone.substack.com/p/inside-the-toolkit-pkm-app-essentials)
+- [Stop Worrying & Start Doing: A Simple Way to Organize Your Tasks - YouTube](https://www.youtube.com/watch?v=dR7UtedSoZ8)
+ - 一天最好不要多于7个task(保持5~7个比较合适)
+ - 以最难的task开始(有点像highlight里面提到的), 然后隐藏其他任务,先专注最重要的
+ - 完成后可以从之后的task list 里面挑选
+- [Putting Ideas into Words](http://paulgraham.com/words.html)
+ > I'm saying is that however much you learn from exploring ideas in other ways, you'll still learn new things from writing about them.
+ > The reason I've spent so long establishing this rather obvious point is that it leads to another that many people will find shocking. If writing down your ideas always makes them more precise and mord f x de complete, then no one who hasn't written about a topic has fully formed ideas about it. And someone who never writes has no fully formed ideas about anything nontrivial
+- [Growth Without Goals - Colossus](https://joincolossus.com/growth-without-goals/)
+- [The Art of Finishing \| ByteDrum](https://www.bytedrum.com/posts/art-of-finishing/)
+ 我很喜欢这篇文章,作者分析的那些我们挖坑又不填的心态分析得很到位,一个未完成的项目是“充满希望的”“有吸引力的”,但完成了的,就要接受审判。还有每次继续填坑的时候总是先升级一些包的版本,解决新出现的兼容问题,做了一大堆之后发现功能上什么都没做,总是重构再重构……然后未完成的项目也会成为一个越背越重的心理包袱。距离我第一次读这篇文章已经过去三个月了,但我还是印象很深刻。
+ 
+- 语言学习: [自学德语这半年](https://zhuanlan.zhihu.com/p/455675697)
+
+## 工作与团队管理
+- [Pmarchive · How to hire the best people you’ve ever worked with](https://pmarchive.com/how_to_hire_the_best_people.html)
+ > If you can't find anything -- if a candidate has just followed the rules their whole lives, showed up for the right classes and the right tests and the right career opportunities without achieving something distinct and notable, relative to their starting point -- then they probably aren't driven.
+ >
+ > One way to test for an aspect of ethics -- honesty -- is to test for how someone reacts when they don't know something.
+ > Pick a topic you know intimately and ask the candidate increasingly esoteric questions until they don't know the answer.
+ > They'll either say they don't know, or they'll try to bullshit you.
+ > Guess what. If they bullshit you during the hiring process, they'll bullshit you once they're onboard.
+
+- [Use A Work Journal To Recover Focus Faster And Clarify Your Thoughts](https://fev.al/posts/work-journal/) 读完这篇文章后我开始写工作日志了。工作日志能在切换任务时保留一些context。(但是我现在又不写了 )
+ > Write notes of what you’re doing and what you’re thinking. When you drop the pen and get back at it, read the last bit. That’s it.
+ >
+ > I guess that’s kind of it: if you’re having trouble switching between things or getting focused, try writing what you’re doing, and read the last couple sentences when you resume. Maybe it will help you. Maybe it won’t. Or maybe I’m an idiot who needs crutches. But hey, who knows!
+- [Notes for new hires | Clinton Blackburn](https://dev.clintonblackburn.com/2024/07/07/notes-for-new-hires)
+ 通过这篇文章学到了friction log的这种东西,感觉很有用,但是我没写过
+ > The idea is simple: take note of all the things—not just product-related—that are causing you trouble.
+- 关于Feature Factory:
+ - [cutle.fish/blog/12-signs-youre-working-in-a-feature-factory](https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory)
+ - [12 Signs You’re Working in a Feature Factory - 3 Years Later | Amplitude](https://www.amplitude.com/blog/12-signs-youre-working-in-a-feature-factory-3-years-later)
+- [Slop is Good • furbo.org](https://furbo.org/2024/08/26/slop-is-good/)
+- [Hot Potato Routing | 卡瓦邦噶!](https://www.kawabangga.com/posts/6357)
+ > 维基百科中说,Hot Potato Routing 是大部分运营商的路由策略。Hot-potato routing (or “closest exit routing”) is the normal behavior generally employed by most ISPs.
+ > 每个人都在用最自私的策略来降低自己的工作量,但是却让全局的工作量增加了,自己的工作量实际上也是增加了的,整体的服务质量却降低了——用户的请求需要绕得更远才能到达目标。
+ > 这不就是很多大公司的工作方式吗?
+ > 大公司给每个人规定了 KPI(就不提 OKR 了,OKR 在大部分公司的实践其实就是 KPI)。收到新的任务,每个人做的最优选择就是把和 KPI 不相关的工作「转发」出去。
+- [Agile vs Introverts - Event-Driven.io](https://event-driven.io/en/agile_vs_introverts/)
+
+## 设计与用户体验
+- [Homepage Design: 5 Fundamental Principles](https://www.nngroup.com/articles/homepage-design-principles/)
+- [Guidelines for Visualizing Links](https://www.nngroup.com/articles/guidelines-for-visualizing-links/)
+- [段落開頭為什麼要「空兩格」? - Bobby Tung - Medium](https://bobtung.medium.com/%E6%AE%B5%E8%90%BD%E9%96%8B%E9%A0%AD%E7%82%BA%E4%BB%80%E9%BA%BC%E8%A6%81-%E7%A9%BA%E5%85%A9%E6%A0%BC-99287e0653a9)
+ > 中文、日文段落開頭空一、兩個字的做法,在一百年前從西文排版引進「縮排」,目的是為了改革過去沒有標點、段落不易區隔的問題。
+ > 而網頁技術的出現,重新以無限空間的捲軸取代了分頁,進而約定成俗地以段落間空白來作為段落區分的方法。多少也可以當作革了印刷的命。把印刷時代的段首縮排帶進網頁上,可能會顯得多餘。
+- [User Needs](https://www.interaction-design.org/literature/topics/user-needs)
+- [How to Design UI Forms in 2024: Your Best Guide \| IxDF](https://www.interaction-design.org/literature/article/ui-form-design)
+- [Checkout Page Design, Best Practices, Templates & Examples](https://www.bolt.com/thinkshop/checkout-page-best-practices-templates-examples-to-end-abandonment)
+- [Why is Vertical Rhythm an Important Typography Practice? \| Zell Liew](https://zellwk.com/blog/why-vertical-rhythms/)
+
+## 作为前端开发
+- [WebRTC Architecture Basics: P2P, SFU, MCU, and Hybrid Approaches | by Mukund Iyengar | SecureMeeting | Medium](https://medium.com/securemeeting/webrtc-architecture-basics-p2p-sfu-mcu-and-hybrid-approaches-6e7d77a46a66)
+- [How to Create and Publish an NPM Package – a Step-by-Step Guide](https://www.freecodecamp.org/news/how-to-create-and-publish-your-first-npm-package/)
+- [Build Your Own: React, ProseMirror, and Redux](https://nytimes.github.io/oak-byo-react-prosemirror-redux/)
+ PS: 我还没看完
+- [Tailwind is a Leaky Abstraction \| jakelazaroff.com](https://jakelazaroff.com/words/tailwind-is-a-leaky-abstraction/)
+- [URL 对象](https://zh.javascript.info/url)
+- [The Birth of “Disable JavaScript”](https://blog.jim-nielsen.com/2023/the-birth-of-disable-javascript/)
+- [mess with dns](https://messwithdns.net/)
+
+## 自己做开发
+- [Frontend Resources V2! 🚀 - DEV Community](https://dev.to/miguelrodriguezp99/frontend-resources-v2-57mj)
+- [Freesets](https://freesets.dev/)
+- [Tailwind Hero Components | Tailkits](https://tailkits.com/components/tailwind-hero-components/)
+- [TinySnap:上线 2 个月收到 6 位数的收购报价,我们采访了产品背后的独立开发者 · w2solo - 独立开发者社区](https://w2solo.com/topics/3682)
+ > 我认为独立开发的商业模式的本质是这样的:我实现了一个想法,而有人愿意为这个想法付费。整个独立开发过程中最重要的就是先验证你的想法是不是有人愿意付费
+ >
+ > SEO 就是隐性的营销手段,ROI 产出非常高。对于技术开发者来说,SEO 是很容易搞定的,但是大家意识到这个东西都比较晚。我们甚至可以在产品发布之前就开始做 SEO,把关键词和竞争对手的数据拿来分析,可以早一点开始做内容营销,多写一点文章,不管是自己写还是用 AI 生成,把关键词放在文章里。时间长一点就会看到非常明显的效果。
+- [For your next side project, make a browser extension](https://www.geoffreylitt.com/2023/01/08/for-your-next-side-project-make-a-browser-extension.html)
+ > Now that I had more users, my #1 priority was to “earn the pixels”: that is, to make the extension feel native to Twitter, never cause glitches, and generally offer a high-quality experience. I wanted to make sure people never had a reason to disable the extension.
+- [动手写一个 Hugo 博客主题(性能篇) \| Yuanji's Blog](https://blog.yuanji.dev/posts/creating-a-hugo-theme-2/)
+- [How I build MVPs within 3 days](https://vadimdemedes.com/posts/how-i-build-mvps-within-3-days/)
+ > Final advice, don’t switch to another project until the MVP of your current idea is shipped.
+ Otherwise, you’ll end up right where you started.
+ Try to build up an attitude to finish one thing before moving on.
+ It will pay off.
+
+## 工具
+- [ONCE — Writebook](https://once.com/writebook)
+ - 一个免费的电子书制作工具
+- [Pomodoro Cat - YouTube](https://www.youtube.com/@PomodoroCat)
+ - 工作番茄钟
+- [Bash vs Zsh vs Fish | Zell Liew](https://zellwk.com/blog/bash-zsh-fish/)
+- [The Fish Shell](https://flaviocopes.com/fish-shell/)
+- [Move a running process into a tmux session \| ./xai.sh](https://xai.sh/2020/10/16/Move-running-process-into-tmux-session.html)
+- [树莓派:用 Pi-hole 来保护隐私和过滤广告 \|\| 0x01 byte](https://1byte.io/articles/pi-hole-intro/)
+- [My name is Kyle and I switch browsers too often \| Luke's Wild Website](https://www.lkhrs.com/blog/2022/12/browser-switchers-anonymous/?__readwiseLocation=)
+- 关于Cursor:
+ - [My Top Cursor Tips (v0.43) - DEV Community](https://dev.to/heymarkkop/my-top-cursor-tips-v043-1kcg)
+ - [学习 Cursor ,拥抱 AI 编程 \| Cursor 101](https://cursor101.com/)
+ - 这里可以买AI Token: [GPTAPI.US - AI模型中转API - OpenAI ChatGPT API低价GPT-4 - Claude 3 Opus、Gemini Pro 1.5、Command R+ API接口](https://www.gptapi.us/)
+- [MusicBrainz 不完全使用指南](https://www.himiku.com/archives/musicbrainz.html)
+
+## 游戏
+- 如何使用 Bitsy : [Claire Morwood 给所有人的 Bitsy 游戏制作教程 A Bitsy Tutorial (2017) ](https://mp.weixin.qq.com/s/mBZMUrvM2Ko4E__VgGiyiw)
+ - 提到的这个游戏蛮有意思的,我很喜欢:[novena by cecile richard](https://haraiva.itch.io/novena)
+- [像「发微博」一样做游戏,低代码如何颠覆游戏产业-36氪](https://www.36kr.com/p/1676791490421762)
+ > 他认为这是 Bitsy 作为游戏工具最特殊的地方,在于功能简单的同时最大限度保留了创作者和游戏玩家沟通的通道,这种技术平民化特质能将沟通变得更加高效,这才吸引到诗人、小说家、幻想故事爱好者的青睐,他们可以不关注游戏建模、画面性甚至是流程长短。
+ >
+ > 像写「俳句」一样做游戏
+ >
+ > 「在 Itch.io 平台(Bitsy 游戏发布的主要平台)寻找游戏更像是走进一个社区艺术画廊而不是一家商店,任何人都可以被邀请展示他们的作品,为更多样化的开发团队开放场地,而免费游戏的激增使人们不再认为这是一个纯粹的交易空间——你可以为了探索而探索。」
+
+## 有意思的
+- [Smashing Newsletter](https://mailchi.mp/smashingmagazine/464-friendly-little-helpers)
+ - 这期Smashing的Newsletter我挺喜欢的,有很多有用的东西,比如说植物手册、音乐时间机器之类的。
+- [Git 的故事:這一次沒這麼好玩 | 軟體考古學家](https://blog.brachiosoft.com/posts/git/) 我把这篇文章放这个位置是不是不太好?但我觉得确实蛮有意思
+ > 從 4 月 14 日半夜的往後 48 小時,濱野純與 Linus 在該討論串上通了十幾封信。濱野純耐心的修改程式碼,要做到 Linus 心目中的合併。字裡行間不難發現濱野純是 Linus 的忠實粉絲。例如,濱野純會引用 Linus 四年前說過的金句「我永遠是對」,也會適度地拍 Linus 的馬屁。
+- 动漫巡礼地图:[动画巡礼 - anitabi - 圣地巡礼 - 聖地巡礼 - せいちじゅんれい - 神奇海螺试验场](https://anitabi.cn/map)
+- [albumwhale](https://albumwhale.com/)
+- [我们仍未知道那天所看见的 88 × 31 的名字 - gledos的博客](https://gledos.science/88x31.html)
+- [Radio Garden – Explore live radio by rotating the globe](https://radio.garden/)
+- From SmashMagazine:
+ - 特别多有意思的小游戏:[Neal.fun](https://neal.fun/)
+ - [IO Tools - Free Online Web Tools](https://iotools.cloud/)
+ - [UCLAB – FH Potsdam -](https://uclab.fh-potsdam.de)
+- [Steve Ruiz](https://www.steveruiz.me/)
+ 无意中翻到了[tldraw](https://tldraw.dev)开发者的博客,感觉这就是我想要成为的样子:创意 + 开发
+- 这是tldraw一个员工的博客,我也觉得很有意思:[Todepond dot com](https://todepond.com)
+## 一些想法和观点
+- [cdixon | What the smartest people do on the weekend is what everyone else will do during the week in ten years](https://cdixon.org/2013/03/02/what-the-smartest-people-do-on-the-weekend-is-what-everyone-else-will-do-during-the-week-in-ten-years)
+ >Business people vote with their dollars, and are mostly trying to create near-term financial returns. Engineers vote with their time, and are mostly trying to invent interesting new things. Hobbies are what the smartest people spend their time on when they aren’t constrained by near-term financial goals.
+- [Rock stars have a boss? \| Derek Sivers](https://sive.rs/noboss)
+ > But you only have a boss if you choose to! Nobody is making you serve these masters.
+ > Of course, if you don’t want a boss, then everything is up to you. Less promotion, but more freedom. Less help, but keeping all your rights. Riding the back roads, not the highway. Serving no one but yourself.
+ Never forget you have the choice.
+- [Thoughts on Music](https://archive.md/JgrJG)
+## 书
+基本上是没看什么书啦。
+
+- 《软技能》
+- 《马可瓦尔多》
+- 《金阁寺》
+- 《经济学的思维方式》
+- 漫画
+ - 《去唱卡拉OK吧》
+ - 《女校之星》
+ - 《迷宫饭》
+- 小说:
+ - 《如何阻止男主发疯》
+
+感谢阅读,下次再见!
+
+[^1]: 为什么不叫X?嗯……我不喜欢。
\ No newline at end of file
diff --git a/urara/about/+page.svelte.md b/urara/about/+page.svelte.md
index 961d7740..8527aceb 100644
--- a/urara/about/+page.svelte.md
+++ b/urara/about/+page.svelte.md
@@ -75,6 +75,4 @@ hi[[@]]seviche.cc
- 2023-04-29 Out of Memory
- 2022-05-06 从 Zola 搬到 Urara
-- 之前:静态博客尝试过 Hugo / Zola / Hexo / Nextra,动态博客尝试过 Ghost / WordPress / QQ 空间(?,部署平台 Vercel 和 Netlify 都试过,目前还没有试过的是 CloudFare Page。
-
-\*所有文章除特别声明外,均采用 [CC BY-NC-SA 4.0 协议](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh),转载请注明出处
+- 之前:静态博客尝试过 Hugo / Zola / Hexo / Nextra,动态博客尝试过 Ghost / WordPress / QQ 空间(?,部署平台 Vercel 和 Netlify 都试过,目前还没有试过的是 CloudFare Page。
\ No newline at end of file
diff --git a/urara/argon/+page.md b/urara/argon/+page.md
new file mode 100644
index 00000000..7f683373
--- /dev/null
+++ b/urara/argon/+page.md
@@ -0,0 +1,67 @@
+---
+title: CSS · Argon主题的CSS修改
+created: 2022-01-16 14:04:17
+tags:
+ - CSS
+slug: free-axure-cloud
+summary: 基于最近所学,对当前Argon主题做了一些微小的调整
+lastmod: 2022-05-07T05:30:35.639Z
+---
+
+然后已经不用 Wordpress 了,这个主题加载太慢了(也可能是我自己的问题
+
+```css
+/*删掉tag图标*/
+
+.fa-tags {
+ display: none;
+}
+
+/*左侧菜单居中*/
+.leftbar-menu-item {
+ text-align: center;
+}
+/*删掉日历图标*/
+.fa-calendar-o {
+ display: none;
+}
+
+/*说说字体统一大小*/
+.shuoshuo-date-date {
+ font-size: 15px;
+}
+
+.shuoshuo-date-month {
+ font-size: 15px;
+}
+
+/*banner字体改为思源宋体*/
+.banner-title.text-white {
+ font-family: 'Noto Serif SC', serif;
+}
+/*删掉左侧搜索栏*/
+.card-body.text-center.leftbar-search-button {
+ display: none;
+}
+
+/*删掉左侧栏站点名称*/
+.leftbar-banner.card-body {
+ display: none;
+}
+
+/*作者相关链接居中*/
+.site-author-links a {
+ text-align: center;
+}
+
+/*去掉页脚卡片外形,并缩减边距*/
+#footer.card {
+ background: none;
+ padding: 0;
+ box-shadow: none !important;
+}
+
+html.darkmode #footer {
+ background: none !important;
+}
+```
diff --git a/urara/axure/+page.md b/urara/axure/+page.md
new file mode 100644
index 00000000..afe3ae2e
--- /dev/null
+++ b/urara/axure/+page.md
@@ -0,0 +1,32 @@
+---
+title: 两种免费发布Axure原型的方式
+created: 2022-01-21 00:11:17
+tags:
+ - 实用技巧
+slug: free-axure-cloud
+summary: 通过Netlify和Vercel发布
+lastmod: 2022-04-07T07:24:20.692Z
+---
+
+好像很少看到有人提,这里简单记一下思路,我有用 Vercel 成功试验过,跟本地预览效果是一样的,还可以改域名。不过了解过 Netlify 之后,我觉得用 Netlify 更简单,有兴趣的可以再研究一下。
+
+## Netlify
+
+需要了解 Netlify 的使用方式
+
+1. 在 Axure 中导出文档的 HTML 文件:发布>生成 HTML 文件
+2. 注册并托管到 Netlify
+3. 上传 HTML 文件:site -> 拖动 HTML 文件夹到下面的虚线区域
+
+更新方式:再导入一次更新后的文件包
+
+## Vercel +Github
+
+需要了解 Github 的基本使用方式和 Vercel
+
+1. 在 Axure 中导出文档的 HTML 文件:发布>生成 HTML 文件
+2. 创建一个 Github repo,并下载到本地
+3. 复制 HTML 文件到本地 Github repo 的文件夹中,并 commit->push 到云端
+4. 导入相应 repo 到 Vercel 中
+
+更新方式:复制更新后的 HTML 文件夹到相应的 Github repo 文件夹中,覆盖原来的
diff --git a/urara/css-fundamental/+page.md b/urara/css-fundamental/+page.md
new file mode 100644
index 00000000..75d6e169
--- /dev/null
+++ b/urara/css-fundamental/+page.md
@@ -0,0 +1,471 @@
+---
+title: CSS · 基础笔记
+created: 2021-12-06T11:59:47+08:00
+slug: css-fundamental
+tags:
+ - CSS
+lastmod: 2022-05-07T05:30:27.910Z
+---
+
+一些随堂笔记。
+
+课程:[Build Responsive Real-World Websites with HTML and CSS](https://www.udemy.com/course/design-and-develop-a-killer-website-with-html5-and-css3/)
+
+## css 是什么
+
+- **C**ascading**S**tyle**S**heets (层叠式样式表)
+- CSS describes the **visual style and presentation** of the **content written in HTML**
+- CSS consists of countless **properties** that developers use to format the content: properties about font, text, spacing, layout, etc.
+
+## 分类
+
+### inline CSS
+
+```html
+text
+```
+
+> 最好不用
+
+### internal CSS
+
+放在``里面的`
+
+```
+
+- 代码很长的时候,整理很麻烦
+
+### external CSS
+
+- 引用单独的 css 文件,如 `style.css`
+- 放在``里用``引用,如:
+
+```html
+
+
+
+```
+
+关于`` ,可参考:[MDN](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/link#attr-rel)
+
+## 组成
+
+
+
+## Selectors
+
+### descendent selector
+
+```css
+footer p {
+ font-family: sans;
+}
+
+article header p {
+ color: blue;
+}
+```
+
+### line selector
+
+```css
+h1,
+h2,
+h3 {
+ color: blue;
+}
+```
+
+定义特定元素样式的两种方式:CSS ID、class attributes
+
+## id
+
+> 给每个元素一个 id,仅能用一次,尽量不要用
+
+在 HTML 中:
+
+```html
+text
+```
+
+在 CSS 中:
+
+```css
+#author {
+ font-family: sans;
+}
+```
+
+### class attributes
+
+> 能无限复用
+
+在 HTML 中:
+
+```html
+text
+```
+
+在 CSS 中:
+
+```css
+.author {
+ font-family: sans;
+}
+```
+
+> 能无限复用
+
+在 HTML 中:
+
+```html
+text
+```
+
+在 CSS 中:
+
+```css
+.author {
+ font-family: sans;
+}
+```
+
+### universal selector
+
+- 对所有元素生效
+- 优先级最低
+- 不可继承
+
+```css
+* {
+ color: #1098ab;
+}
+```
+
+### body
+
+- 在`` 里的通常只应用于文本元素(text)
+- Not all properties get inherited. It’s mostly ones **related to text**: `font-family`, `font-size`, `font-weight`, `font-style`, `color`, `line-height`, `letter-spacing`, `text-align`, `text-transform`, `text-shadow`, `list-style`, etc.
+- 可继承
+
+### 优先级
+
+#### conflicting between selectors
+
+
+
+- 尽量不要用`!important`
+
+```css
+foot p {
+ color: green !important;
+}
+```
+
+- 所有 selector 都会被应用,只有冲突的按优先级应用
+- 当使用相同类别的 selector 时,应用最后一个
+
+#### inheritance
+
+- inheriting elements can easily be override
+- 优先级最低
+- body 可继承,universal selector 不可以
+
+## 颜色
+
+### RGB/RGBA
+
+- 基本`(r,g,b,alpha)`
+- 白色`(255,255,255)`
+- 黑色`(0,0,0)`
+
+## Hexadecimal Colors
+
+- 0 to ff (255 in hexadecimal numbers):
+ `#00ffff`
+- Shorthand, when all colors are identical pairs
+ `#off`
+ 当需要透明度的时候才用 rgb 颜色,一般用 hex
+
+## Pseudo Class
+
+> 用来指定特定元素
+
+### 第一个元素/最后一个元素
+
+```css
+li:first-child {
+ font-weight: bold;
+}
+
+li:last-child {
+ font-style: italic;
+}
+```
+
+### 奇数/偶数 /特定次序
+
+```css
+li:nth-child(odd) {
+ font-style: italic;
+}
+
+li:nth-child(even) {
+ font-style: italic;
+}
+
+li:nth-child(3) {
+ font-style: italic;
+}
+```
+
+### 多种元素时
+
+如下所示,当 HTML 中``并不是``里面的第一个元素时,不生效。
+
+即当母元素(parent element)里有多种元素时(child elements),不宜使用伪类(pseudo class),可以在列中使用,如``
+
+```html
+
+
+
+
+```
+
+```css
+article p:fist-child {
+ font-family: sans;
+}
+```
+
+### Style hyperlinks
+
+四个状态都应定义,并按顺序排列
+
+#### link
+
+不进行交互的预览下
+
+```css
+a:link {
+ color: #1098ad;
+}
+```
+
+#### visited
+
+点击后
+
+```css
+a:visited {
+ color: #777;
+}
+```
+
+#### hover
+
+悬停时
+
+```css
+a:hover {
+ color: orangered;
+ font-weight: bold;
+ text-decoration: underline dotted orangered;
+}
+```
+
+#### active
+
+点击时(通常和 hover 同时出现
+
+```css
+a:active {
+ background-color: black;
+ font-style: italic;
+}
+```
+
+## Pseudo Elements
+
+> any pseudo elements is actually an inline element
+
+在 HTML 中并不真实存在,但仍可在 CSS 中选择,如行内第一个字符:
+在 HTML 中并不真实存在,但仍可在 CSS 中选择,如行内第一个字符:
+
+```css
+h1::first-letter {
+ font-style: normal;
+}
+```
+
+段内第一行:
+
+```css
+p::first-line {
+ color: red;
+}
+```
+
+### adjacent sibiling selector
+
+在同一 parent element 里,下面最临近的元素
+
+如 h3 标题下的 p:
+
+```css
+h3 + p::first-line {
+ color: red;
+}
+```
+
+### after
+
+- 就算没有文字内容,也要定义`content`
+- 位于行末
+
+
+
+```css
+h2::after {
+ content: 'TOP';
+ font-size: 16px;
+ font-weight: bold;
+ color: black;
+ padding: 5px 15px;
+ display: inline-block;
+ position: absolute;
+ top: -10px;
+ right: -25px;
+ background-color: #ffe70e;
+}
+
+h2 {
+ position: relative;
+}
+```
+
+### before
+
+- 位于行前
+
+```css
+h2::before {
+}
+```
+
+## Box Model
+
+
+
+
+
+
+
+### Type of boxes:
+
+#### inline boxes
+
+
+
+#### block-level boxes
+
+
+
+#### inline-block boxes
+
+
+
+img 其实是 inline-block box
+
+### padding
+
+内边距
+
+```css
+padding: 上下 左右;
+```
+
+#### reset margin ane padding
+
+```css
+* {
+ margin: 0;
+ padding: 0;
+}
+```
+
+不要用 body
+
+### margin
+
+外边距
+
+#### collapsing margins
+
+- 当两元素的 margin 重合时,大的会覆盖小的
+
+### Dimensions
+
+#### width
+
+- percentage: percentage of the width of the parents containers
+
+## position
+
+
+
+### Normal Flow
+
+- 默认状态
+
+### Absolute Position
+
+- 绝对位置
+- 常用于一些小元素
+- parent elements/containers should set to `relative`
+- 取决于最近层次的 relative parent elements/containers
+
+
+
+### centering page
+
+use the `` element to create a container class, then set the `margin-left` and `margin-right` to `auto`
+
+```css
+.container {
+ width: 800px;
+ margin: 0 auto;
+}
+```
+
+## 基本操作
+
+### CSS 注释
+
+- `/*需要注释的内容*/`
+- VS code 快捷键 :`CMD+/` (mac) `Control+/` (win)
+- 调出开发者工具`cmd+i`
+
+### Fix bugs
+
+- 方法:
+
+ - **inspect**
+ - 检查刚开始变得不一样的地方
+ - 如果有很多 selector,复杂的那个会被首先应用
+ - 检查 css 文件引用链接是否正确
+
+- 工具:
+ HTML 校对器:
+ [Markup Validation Service](https://validator.w3.org/)
+
+ 代码比对:
+ [Diffchecker](https://www.diffchecker.com/)
diff --git a/urara/css-layout/+page.md b/urara/css-layout/+page.md
new file mode 100644
index 00000000..83cbcc49
--- /dev/null
+++ b/urara/css-layout/+page.md
@@ -0,0 +1,269 @@
+---
+title: CSS · 三种布局方式
+slug: css-layouts
+tags:
+ - CSS
+created: 2022-01-13T10:07:00.000Z
+summary: Float / Flexbox / Grid /
+lastmod: 2022-05-07T05:30:20.613Z
+---
+
+课程:[Build Responsive Real-World Websites with HTML and CSS](https://www.udemy.com/course/design-and-develop-a-killer-website-with-html5-and-css3/)
+
+## Overview
+
+
+
+## Box-sizing
+
+
+
+> 未定义之前:content-box
+
+### reset
+
+```css
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+```
+
+## Float Layout
+
+- 浮动在页面之上,对周围元素没有影响
+- 现在很少用了
+
+### left
+
+- 浮动到页面左边
+
+
+
+```css
+.author-img {
+ float: left;
+}
+```
+
+> 此时图片和文本不在同一个层面上
+
+### right
+
+> 浮动到页面右边
+
+
+
+```css
+p {
+ float: right;
+}
+```
+
+### ABSOLUTE POSITIONING VS. FLOATS
+
+
+
+### Clear Float
+
+- 当没有其他元素可以 clear float 时,在其后新建一个元素设置 clear
+- 当存在需要清除的元素时,直接在该元素上清除
+
+#### 方法 1: empty div
+
+使用一个并列的空`
`元素来清除
+
+```html
+
+
title
+
title
+
+
+```
+
+```css
+/*清除两者*/
+.clear {
+ clear: both;
+}
+
+/*清除左边*/
+.clear {
+ clear: left;
+}
+```
+
+#### 方法 2:clearfix hack
+
+原理和 empty div 的方式一样,但更简单,利用 pseudo element 在 parent element 后增加一个元素
+
+```html
+
+
title
+
title
+
+```
+
+```css
+.clearfix::after {
+ clear: both;
+ content: '';
+ display: block;
+}
+```
+
+## Flexbox
+
+
+
+
+
+> 加粗字体为默认状态
+
+```css
+.container {
+ display: flex;
+ align-items: center; /*水平居中*/
+ justify-content: center; /*垂直居中*/
+}
+```
+
+### Flex container
+
+- flex container takes the height of the tallest items
+
+常用:
+
+```css
+.container {
+ display: flex;
+ align-items: stretch;
+ justify-content: flex-start;
+}
+```
+
+### Flex items
+
+```css
+.items {
+ align-self: flex-start;
+}
+```
+
+### Propetities
+
+#### order
+
+数字越大越靠后
+
+#### flex-grow
+
+数字越大占比越大
+
+#### flex-basis
+
+item’s width
+
+#### shorthand
+
+`flex:1` =
+
+```css
+flex-grow: 1;
+flex-shrink: 1;
+flex-basis: 0%;
+```
+
+## CSS Grid
+
+
+
+
+
+
+
+### grid container
+
+```css
+.container {
+ display: grid;
+ grid-template-columns: 250px 200px; /*两列*/
+ grid-template-rows: 200px 200px; /*两行*/
+}
+```
+
+> 通常不定义 rows
+
+#### Gap
+
+用 gap 而不是 margin:
+
+```css
+.container {
+ /*gap:20px;*/
+ columns-gap: 30px;
+ row-gap: 20px;
+}
+```
+
+#### align tracks inside containers
+
+> when the content is smaller than the grid
+
+```css
+justify-content: center;
+align-content: center;
+```
+
+### grid items
+
+```css
+.items: {
+ grid-column: 2/3; /*当前后数值相差只有1位时,可省去后面的数字*/
+ grid-row: 2/3;
+
+ /*占几个列/行时*/
+ grid-column: 1/3;
+ grid-row: 1/3;
+ /*或者*/
+ grid-column: 1 / span 3;
+ /*自动填充剩余空间*/
+ grid-column: 1/-1;
+}
+```
+
+#### align items inside cells
+
+```css
+.container {
+ align-items: center;
+ justify-items: center;
+}
+```
+
+```css
+.item {
+ align-self: end;
+}
+```
+
+### fr
+
+- `1fr`:自动填充剩余空间
+- 2:1:1:1 的四列
+
+```css
+.container {
+ grid-template-columns: 2fr 1fr 1fr 1fr;
+}
+/*shorthand*/
+
+.container {
+ grid-template-columns: repeat(4, 1fr);
+}
+```
+
+### implicit row
+
+所定义的空间被用完后多出来的列
diff --git a/urara/flare/+page.md b/urara/flare/+page.md
new file mode 100644
index 00000000..3c6bb201
--- /dev/null
+++ b/urara/flare/+page.md
@@ -0,0 +1,140 @@
+---
+title: 自建网页书签Flare
+created: 2022-02-20 14:04:17
+tags:
+ - Docker
+ - Self-hosted
+slug: flare
+summary: 通过Docker自建网页书签Flare
+lastmod: 2022-03-30T02:19:33.711Z
+---
+
+Flare 是一个自托管的网页书签导航 (个人理解),详细介绍可以看作者写的这篇:[使用 Docker 搭建适用于 HomeLab 的书签导航](https://sspai.com/post/71329)
+
+效果如图:
+
+
+这里分成了“应用”和“书签”两个栏目,但其实都是网页链接书签,看示例文档里的设置,应用里的是使用更为频繁的链接,书签栏则是一些参考链接/外链,或许“应用”命名为“常用”,“书签”则命名为“链接”或者“其他”更好一些。我之前还以为应用是本地应用……(我的问题
+╮( ̄ ▽  ̄"") ╭
+
+项目仓库:[GitHub - soulteary/docker-flare](https://github.com/soulteary/docker-flare)
+
+### 1.创建 Flare 文件夹
+
+此处我将文件夹命名为 flare
+
+```bash
+mkdir ~/flare && cd ~/flare
+```
+
+### 2.下载包含示例的代码
+
+```bash
+git clone https://github.com/soulteary/docker-flare.git
+cd docker-flare
+```
+
+### 3.运行容器
+
+#### 方法 1:直接启动
+
+```bash
+# 可以使用最新镜像
+docker run --rm -it -p 5005:5005 -v `pwd`/app:/app soulteary/flare
+# 也可以追求明确,使用固定版本
+docker run --rm -it -p 5005:5005 -v `pwd`/app:/app soulteary/flare:0.2.10
+```
+
+#### 方法 2:通过 docker composer
+
+因为示例文件夹里面已经有一个 `docker-compose.yml` 文件了,所以我们不需要另外创建,如果需要修改的话可以用 `nano docker-compose.yml` 编辑 (如果需要设置用户登陆的话,需要在此修改)
+
+启动容器:
+
+```bash
+docker-compose up -d
+```
+
+这时我们可以通过 `http://ip:5005` 访问书签页面了。
+
+### 4.修改书签内容
+
+我用的是 Royal TSX 上的 File transfer 来查看文件夹内容。
+
+配置文件的路径如下:
+
+各个文件的功能如下:
+
+- config.yml:基本应用设置/标题/组件……
+- apps.yml:设置“应用”栏的书签名字/链接/icon/描述
+- bookmarks.yml:设置“书签”栏的分类/链接名称/icon/链接
+
+作者贴心地内置了 `@mdi/font` 相关 icon,可以通过 `http://ip:5005/resources/mdi-cheat-sheets/` 来访问图标列表,然后通过 Ctrl /CMD+ F 来进行页面内搜索。
+
+在书签页面,可以通过左下角的齿轮图标调整主题和其他设置,和 `config.yml` 里的选项几乎一致:
+
+
+### 5.用 nginx 反代和设置域名
+
+安装 Nginx 并打开 `flare.conf` 文件
+
+```bash
+apt install nginx
+cd /etc/nginx/sites-enabled/
+rm rf default
+cd /etc/nginx/sites-available/
+nano flare.conf
+```
+
+`flare.conf` 的内容 (注意修改 example.com 为自己的域名)
+
+```conf
+server {
+ listen 80;
+ listen [::]:80;
+ server_name example.com;
+
+ location / {
+ proxy_pass http://127.0.0.1:5005;
+ }
+}
+```
+
+用 `nginx -t` 测试配置文件,如果最后有出现 `suceessful`,那测试就成功了。
+
+然后为这个配置文件增加一个链接
+
+```bash
+cd /etc/nginx/sites-enabled/
+ln -s ../sites-available/flare.conf flare.conf
+```
+
+重启 nginx
+
+```bash
+systemctl reload nginx
+```
+
+刚遇到一些问题,又回到了我的 Miniflux 主页^ ^,遂重启容器:
+
+```bash
+cd ~/flare/docker-flare
+docker-compose down
+docker-compose up -d
+```
+
+### 6.SSL 证书和其他书签
+
+安装证书,详情参考这篇:[用 docker 安装 Halo 博客并用 Nginx 反代](https://halo.sevic.me/archives/halo-in-docker)
+
+```bash
+certbot --nginx -d example.com -d www.example.com
+```
+
+其他好用书签:
+
+- [Raindrop](https://app.raindrop.io/):可以共享的网页书签,也可以嵌入到网页中,我的白噪音书签:[白噪音](https://raindrop.io/Rainny/-21205390)
+- [Airtable](https://airtable.com/):一个共享表格工具,详情可以看我的资源收藏夹:[About Coding](https://airtable.com/shrpftxf6JgRomP2X/tblEvtThXHNBMQ8lW/viwSXGTALloahC10H)
+- [Guardo](https://guardo.io/):说是可以替代 Raindrop,但书签文件夹不能生成共享链接,所以一直没用。
+
+再次感谢[云五的 WordPress 搭建教程](https://yukieyun.net/tech/shared-service-same-server-wordpress/),照葫芦画瓢套用了 Nginx 的设置。
diff --git a/urara/grid/+page.md b/urara/grid/+page.md
new file mode 100644
index 00000000..904ecffc
--- /dev/null
+++ b/urara/grid/+page.md
@@ -0,0 +1,45 @@
+---
+title: CSS · Reusable Grid
+slug: css-grid
+tags:
+ - CSS
+created: 2022-01-13T10:01:44.000Z
+summary: 可复用的CSS Grid设置
+lastmod: 2022-05-07T05:32:52.372Z
+---
+
+1. 先设置一个 class 为 grid,并设定 gap
+2. 子元素中再设置具体的列数
+
+如设一个上为 2 列和下为 3 列的栅格布局:
+
+#### CSS:
+
+```css
+.grid {
+ display: grid;
+ gap: 1.2rem;
+}
+.grid--2--cols {
+ grid-template-columns: repeat(2, 1fr);
+}
+
+.grid--3--cols {
+ grid-template-columns: repeat(3, 1fr);
+}
+```
+
+#### HTML:
+
+```html
+
+
+
+ Text1
+ Text2
+ Text3
+
+```
diff --git a/urara/halo/+page.md b/urara/halo/+page.md
new file mode 100644
index 00000000..d61e44e4
--- /dev/null
+++ b/urara/halo/+page.md
@@ -0,0 +1,275 @@
+---
+title: 用 docker 安装 Halo 博客
+created: 2022-02-16 14:04:17
+tags:
+ - Docker
+ - Self-host
+slug: halo
+summary: ''
+lastmod: 2022-05-07T05:39:19.169Z
+---
+
+系统:ubuntn 20.04
+
+参考:
+
+- [用 Nginx 反代实现 docker 安装 WordPress 与其他服务并存 – 沉默之沙](https://yukieyun.net/tech/shared-service-same-server-wordpress/)
+- [RSS | RSSHub 搭配 Miniflux,实现订阅自由](https://mantyke.icu/2021/rsshub-miniflux/)
+
+Halo 官网:[Halo](https://halo.run/#quickstart)
+
+建议大家先去[Halo 官网主题仓库](https://halo.run/themes.html)看看有没有喜欢的主题再决定要不要装,不然很可能像我一样装了之后又跑路了…… ^^
+
+## 准备
+
+### 解析域名
+
+域名生效需要时间,为了避免申请 SSL 证书时屡次失败导致超过申请次数限制,最好提前添加域名解析[^1],我这里用的是子域名。
+
+为域名添加一个 A 记录,指向服务器所在 IP。如 Namesile 中:
+
+
+### 安装 docker
+
+在 Ubuntu 中安装 docker[^2]:
+
+```zsh
+apt update
+apt install apt-transport-https ca-certificates curl software-properties-common
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
+add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
+apt update
+```
+
+其他系统可参考:[Plume | 利用 Docker-compose 搭建 Fedi 开源博客平台 – Zoe's Dumpster.](https://blog.tantalum.life/posts/build-plume-in-docker/#%E5%AE%89%E8%A3%85dockerdocker-compose)中的安装方式,或者查看官方文档。有的 VPS 在装系统的时候也可以预装 docker,如 vultr/contabo 都有,不过 docker-compose 就需要自己装(这里似乎没有用到 docker-compose。
+
+检查是否装好,有版本就装好了:
+
+```zsh
+docker -v
+```
+
+### 检查端口开放情况
+
+参考:[Ubuntu20.04 开放指定端口\_哈-CSDN 博客](https://blog.csdn.net/lianghecai52171314/article/details/113813826)
+
+我不太懂端口是怎么开放的,自动开放还是用了就开放。这里用的是 ufw 来设置防火墙开放端口,用 netstat 查看端口占用状况。
+
+Debian/Ubuntu 中安装 netstat[^3]:
+
+```zsh
+apt install net-tools
+```
+
+检查端口占用:
+
+```bash
+netstat -aptn
+```
+
+ufw 是 Ubuntu20.04 系统预装的 [^3],如未安装上,可以这样安装:
+
+```bash
+ sudo apt update
+ sudo apt install ufw
+```
+
+常用操作:
+
+```bash
+ufw enable #打开防火墙
+ufw disable #关闭防火墙
+ufw status #查看防火墙规则
+ufw allow 22 #打开22端口
+ufw deny 22 #拒绝访问22端口
+```
+
+打开防火墙之前最好打开常用的端口,如 22,不然可能会连不上服务器。
+
+## 安装 Halo
+
+参考:[使用 Docker 部署 Halo | Halo Documents](https://docs.halo.run/getting-started/install/docker)
+
+### 1.创建工作目录
+
+创建一个文件夹存放 Halo,我这里命名为.halo,当然也可以叫其他的。
+
+```bash
+mkdir ~/.halo && cd ~/.halo
+```
+
+### 2.下载示例配置文件到工作目录
+
+```bash
+wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
+```
+
+### 3. 编辑配置文件,配置数据库或者端口
+
+我不会用 vim 命令,所以这里用 nano 编辑
+
+#### 打开配置文件 application.yaml
+
+```bash
+nano application.yaml
+```
+
+#### 修改配置
+
+[配置参考 | Halo Documents](https://docs.halo.run/getting-started/config)
+这里已经有刚下载好的配置文件了,我们可以根据自己的需要修改,Halo 数据库支持 H2 和 Mysql 数据库,因为我已经安装了一个 Wordpress 博客占用了 Mysql 数据库,虽然不知道有无影响,但为了避免出错,最后选择了按示例里的配置,使用 H2 数据库(主要还是懒得改
+
+我这里将端口放到 8090,因为原 80 端口已经被占用,大家可以选择其他开放端口,注意修改数据库用户名和密码。
+
+```yaml
+server:
+ port: 8090
+
+ # Response data gzip.
+ compression:
+ enabled: false
+spring:
+ datasource:
+ # H2 database configuration.
+ driver-class-name: org.h2.Driver
+ url: jdbc:h2:file:~/.halo/db/halo
+ username: admin #数据库用户名
+ password: 123456 #数据库密码
+
+ # MySQL database configuration.
+ # driver-class-name: com.mysql.cj.jdbc.Driver
+ # url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+ # username: root
+ # password: 123456
+
+ # H2 database console configuration.
+ h2:
+ console:
+ settings:
+ web-allow-others: false
+ path: /h2-console
+ enabled: false
+
+halo:
+ # Your admin client path is https://your-domain/{admin-path}
+ admin-path: admin
+
+ # memory or level
+ cache: memory
+```
+
+### 4. 拉取最新的 Halo 镜像
+
+```bash
+docker pull halohub/halo:latest
+```
+
+### 5. 创建容器
+
+```bash
+docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:latest
+```
+
+### 6. 打开安装引导界面。
+
+访问 `http://服务器ip:端口号`
+
+
+## 用 Nginx 反代
+
+说实话,我现在还没懂 Nginx 是干嘛的,反代又是什么,但好像一般都要有,那就做一下吧。幸好 Halo 还有现成的配置[^4]可以抄一下,结合云五的 Wordpress 搭建教程[^2],把里面 wordpress 的部分改为 halo 就可以了。
+
+### 1.安装 Nginx
+
+```bash
+apt install nginx
+cd /etc/nginx/sites-enabled/
+rm rf default
+cd /etc/nginx/sites-available/
+nano halo.conf
+```
+
+### 2.配置 halo.conf
+
+注意修改`www.yourdomain.com` 为自己的域名
+
+```conf
+ upstream halo {
+ server 127.0.0.1:8090;
+ }
+ server {
+ listen 80;
+ listen [::]:80;
+ server_name www.yourdomain.com;
+ client_max_body_size 1024m;
+ location / {
+ proxy_pass http://127.0.0.1:8090;
+ proxy_set_header HOST $host;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ }
+ }
+```
+
+用`nginx -t`测试配置文件,如果最后有出现`suceessful` ,那测试就成功了。
+
+然后为这个配置文件增加一个链接
+
+```bash
+cd /etc/nginx/sites-enabled/
+ln -s ../sites-available/halo.conf halo.conf
+```
+
+### 3.重启 nginx
+
+```bash
+systemctl reload nginx
+```
+
+现在访问域名就可以到达 halo 博客主页了,如果不行,可以 ping 一下域名看是不是解析还没生效:如 `ping exampl.com`
+
+我这里出现一个问题,是输入域名后到了我的 miniflux 主页,因为 halo.conf 里域名后缀输错了……
+
+## 安装 certbot,为域名获取免费 SSL 证书
+
+有 ssl 证书后,就不会被提示网站不安全了,也就是从 http->https
+
+### 1.安装 certbot
+
+```bash
+apt install certbot python3-certbot-nginx
+```
+
+### 2.配置证书
+
+修改 example.com 为自己的域名:
+
+```bash
+certbot --nginx -d example.com -d www.example.com
+```
+
+如果你不确定是否可以申请成功,或者还在修改/测试配置,可以在后面加`--staging` 测试,避免申请超过次数限制[^1]
+
+一些选项,这里最好选择 1,如果选择 2,就没办法用 http 访问域名了:
+
+```text
+ 1: No redirect - Make no further changes to the webserver configuration.
+ 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
+ new sites, or if you're confident your site works on HTTPS. You can undo this
+ change by editing your web server's configuration.
+```
+
+然后同意条款后问是否暴露邮箱时选 No[^2]。
+
+## 其他
+
+- 主题编辑:首页 / 外观 / 主题编辑 里修改具体文件
+- 进入后台:域名后面加/admin,如:https://yourdomain/admin
+
+---
+
+[^1]: [WordPress + VPS 建站教程 - 少数派](https://sspai.com/post/66447#:~:text=sudo%20swapon%20/swapfile-,SSL%20%E8%B6%85%E8%BF%87%E4%BD%BF%E7%94%A8%E9%A2%91%E7%8E%87%E9%99%90%E9%A2%9D,-%E6%98%AF%E7%9A%84%EF%BC%8C%E5%85%8D%E8%B4%B9)
+[^2]: [用 Nginx 反代实现 docker 安装 WordPress 与其他服务并存 – 沉默之沙](https://yukieyun.net/tech/shared-service-same-server-wordpress/)
+[^3]: [如何在 Linux 中安装 netstat 命令 - 云+社区 - 腾讯云](https://cloud.tencent.com/developer/article/1852241)
+[^4]: [使用 Docker 部署 Halo | Halo Documents](https://docs.halo.run/getting-started/install/docker#nginx)
diff --git a/urara/hover/+page.md b/urara/hover/+page.md
new file mode 100644
index 00000000..621b2015
--- /dev/null
+++ b/urara/hover/+page.md
@@ -0,0 +1,32 @@
+---
+title: CSS · hover时图片放大的动效
+created: 2022-01-13T16:03:47.000Z
+slug: hover-image-scale
+tags:
+ - CSS Trick
+ - CSS
+summary: 通过transform设置
+lastmod: 2022-05-07T05:30:52.029Z
+---
+
+思路:
+
+1. 设置放大
+2. 隐藏溢出
+
+```css
+.gallery-item {
+ overflow: hidden;
+}
+
+.gallery-item img:hover {
+ transform: scale(1.1);
+}
+.gallery-item img {
+ display: block;
+ width: 100%;
+ transition: all 0.4s;
+}
+```
+
+效果:https://codepen.io/sevichee/pen/wvrRjjq
diff --git a/urara/html-basis/+page.md b/urara/html-basis/+page.md
new file mode 100644
index 00000000..b6bfaccc
--- /dev/null
+++ b/urara/html-basis/+page.md
@@ -0,0 +1,141 @@
+---
+title: HTML · 基础笔记
+created: 2021-12-06T11:59:47+08:00
+slug: html-notes
+tags:
+ - HTML
+lastmod: 2022-05-07T05:30:47.655Z
+---
+
+课程:[Build Responsive Real-World Websites with HTML and CSS](https://www.udemy.com/course/design-and-develop-a-killer-website-with-html5-and-css3/)
+
+## HTML 是什么
+
+HyperTextMarkupLanguage
+[HTML 元素参考 - HTML(超文本标记语言) | MDN](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element)
+
+## 基本组成
+
+以`
Hello!
`为例子:
+
+1. opening tag:`
`
+2. content : `Hello!`
+3. closing tag: `
`
+
+## 框架
+
+```html
+
+
+
+
+
这是标题的位置,head里面的东西都看不见(一般来说)
+
+
+
+
一级标题
+
+
+```
+
+## attributes
+
+- 用来描述元素 elements
+- pieces of data
+
+| attributes | |
+| ---------- | --------------------------------------------------------------------------------------------- |
+| src | sources |
+| alt\* | alternative text (describe what the image are ) good for SEO/blind people |
+| width | 宽度 |
+| height | 高度 |
+| href | 超链接 `#`表示回到页首 |
+| target | 在哪个窗口打开\_blank 新窗口 `_self` 旧窗口 `_top`顶部 `_parent` 父级窗口,如果有窗口层级的话 |
+
+## tags
+
+| | |
+| ---------- | --------------------------------------------------------------------- |
+| head | 在页面中不可见的元素,如页面标题、link to css files…… |
+| main | 文章的主要内容(HTML5 中新增) |
+| body | 页面的主要内容 |
+| section | 区块(semeantic HTMl |
+| h1 | 标题,一个页面只能有一个 h1 |
+| p | 段落 |
+| span | 行内文本 |
+| `` | 注释 |
+| b | **加粗**,和`
`不同,它没有语意,是过时的表述 |
+| strong | **加粗**,表示是页面中重要的元素 |
+| i | _斜体_,过时的表述,应用`` |
+| em | _斜体_,emphasize |
+| ol | 1. order list 数字排序 |
+| ul | . unorder list |
+| li | list item 列 ,用在 ol/ul 里面 |
+| img | 图片 特殊类型,不需要包含内容,需要 attributes( src/alt/width/height) |
+| meta | data about data meta charset=”UTF-8” |
+| a | anchor 超链接(attribute:href) |
+| header | 页头(container |
+| nav | 导航 ( container |
+| menu | 菜单,web application 常用 |
+| article | 内容(container |
+| footer | 页脚(container |
+| div | 无意义内容区块 |
+| br/ | 断行 |
+| aside | 次级信息/额外信息 |
+| figure | 常用于 feature cards/coding list…… |
+| figcaption | 图片脚注(只能在 figure 里面用) |
+| form | 表单 |
+| input | 输入框 |
+| label | 表单输入标题(也许 |
+| table | 表格 |
+| thead | 表头 |
+| tbody | 表体 |
+| th | 表头单元格 |
+| tr | table row |
+| td | table data |
+| address | 地址 |
+| s | 删除 |
+| blockquote | 引言 |
+
+- `