研究生的第一个假期作业终于在今天结束了。寒假作业评比一共三轮，一共7个组，我们拿到了第一名，小组奖金900元虽然金额不大，也算是没有辜负我们组所有人这么长时间花费的努力。所以，简单记录一下这个寒假的工作吧~接收到任务1月10号学校放假，那时候新型冠状病毒还并不是一个新闻。我以为这又是一个枯燥的寒假。本来我们的寒假期间是1月10号~2月5号（正月十二）所以虽然我们腊月都感到截止日期的逐渐逼近，但我们还都是心照不宣的不讨论寒假作业这件事情。到了正月初四，组长终于开始意识到“问题很大”。于是组长贴心的下午两点叫我们起床，开工。那个时候虽然只是听说疫情挺严重，学校的通知也只是正月15之前禁止到校，但谁也不知道疫情竟然已经如此严重了，延迟开学居然延迟3月份还未能开学。[album type="photos"][/album]1月28号，正月初四，如果按照既定的时间截止的话，时间已经很紧急了，但是我丝毫没有开始写代码的欲望，甚至还有一种莫名的自信。但是组长的任务安排也都是有更近的截止时间，所以每天下午3点左右简直就是灵魂拷问时间啊2月4号之后，公司那边要求2月7号提供项目目前的进度报告：所以我们必须在2月6号左右就得完成一个大概的初始版本。也就是至少客户端可以直播对话。需要认真起来了然后这个时候，我对整个项目的流程都不是很清楚，拉流推流啥意思。recorder、grabber是啥。player、client、capture关系又是什么，我真的不太清楚。关于我们这次视频会议，公司之前在直播这方面有所研究，一直开发维护theia项目，这个项目的功能就是主播直播，观众观看、发弹幕、连线之类的。不管怎样，到了2月7号晚上我们基本有一个可以用的版本了。界面啥的基本都是沿用theia项目，我们为了简化流程，客户端拉流的只拉了一个多个用户的混合流。就这样有一周暂时没怎么写寒假作业，2月15号我觉得学一下javafx，重新写一下客户端这边界面，现在的界面颇有一股复古的气息。界面重构以及流程梳理本科的时候用netbeans写过java的桌面端程序，netbeans是可以直接拖控件就创建好界面的。现在使用Scala+javafx，于是学习了screnbuilder的用法还有jxml的用法，以及在网上找到了一个Scala+javafx的helloworld demo。到了19号我基本把界面重构出来，也把整个客户端的流程重新设计了一下，整个client模块我基本是重新写了一遍。到了2月25号的时候，对照寒假作业的要求，发现我们还有一些功能没有完成：这几个功能让整个会议的功能变得复杂了很多。除此之外，之前client只拉一个混合后的流的做法虽然简单，但是问题是显而易见的，延迟太高，5、6s左右，而且用户自身的画面和声音在混合流中，都有延迟，就很奇怪。所以，最后我们还是决定客户端拉多个用户的流，这样问题是增加了客户端这边的内存开销，但是效果是延迟更低，会议效果会更好。不仅如此，在最后的几天根据发言人、支持人身份对客户端的画布进行动态分配。写代码是一回事，等真正一起联调测试的时候，bug就是一个个的浮现水面了。准备最后的评选2月28号，我们开始了第一次测试，当时由于我开了全局代理，导致 new Image(url) 这个地方无法对图片进行加载，以至于我一打开会议界面就卡死了。所以第一次测试只有我们组的另外两个人。当时测试问题还比较少。到了29号晚上3个人测试，问题就变得特别多，不仅客户端这边，后台那边对ws消息的处理也有一些问题。3月1号下午我们又开始了测试，这才基本没什么影响使用的大功能了。3月2号开始了第一轮评比，7进3，我们录制一个4~5分钟视频发到视频网站上，然后研二的学长学姐们评比3月4号上午开始第二轮，3进2，同样是录制一个1~2分钟的视频发到视频网站上，然后参赛其他组评比3月4号下午开始进行第三轮，2进1，是参赛其他组直接观看web端的录像（混流后的）进行评比。由于我们客户端界面好看，第二轮我们录制的视频还特意做了一个小剧本，配上朱一旦的「完美搭档」的bgm，第三轮我们web查看的录像的混流效果很好，延迟较低，而且音画基本同步。所以最后，我们拿到了第一名。从一开始我们感觉好像来不及，到最后我们每个人都是朝着第三轮的目标开始完善自己的部分。也算是没有辜负我们的努力吧~最后的完成的界面：同时还有web端可以查看和管理录像。相关技术和工具：scalajavafxsrs 流服务器ffmepeg项目地址：https://github.com/HiddenTrackMJ/geek有兴趣欢迎star,fork~
苹果IOS/Ipad OS 10.13 OSX10.15 全系列更新后，有一个内置软件变化很大，那就是「提醒事项」。使用Android设备，尝试了无数款规划类的应用，比如什么四象限类型的。但没能坚持下来规划任务。但是Microsoft Todo 还是留在了我的Android手机上，虽然也没怎么使用。换了iphone之后，也是在研究生生活中，每天其实有很多琐碎的事情，如果不记录下来，简直一团糟（和本科混吃等死很不一样）ToDo 在iPhone上同样适用，与此同时微软时隔几年之后在Mac也上架了ToDo,使得这款应用成为一个跨平台的利器。但随着不断使用中，发现了一些我很不喜欢的地方，新版本的「提醒事项」，有着ToDo的影子，所以考虑是否切换到该内置应用。下面是两款软件的对比，也可以给大家做一些参考：ToDo设计问题「我的一天」「我的一天」这个微软介绍的截图中的“特性”。但却很有问题。对任意一个任务可以选择「添加到我的一天」，但是「我的一天」和「已计划的日程」却是完全独立的。「我的一天」里面的任务却不会出现在「已计划的日程」，除非你再次给这个日程添加一个「截止日期」/「提醒日期」为今天。这看起很复杂。如果我需要安排今天的任务，而且希望今天的任务也出现在「已计划的日程」中，则必须操作两次……对于「提供我的一天的建议」这个功能似乎很酷，但，其实就是显示一些未完成的清单列表嘛…… 我几乎没使用过这个功能。「任务」到底是什么任务？很早，ToDo 是没有文件夹分类清单，只能添加清单一级。所以「任务」这一栏就显示了所有的任务。后来增加了清单文件夹📂这一个功能，「任务」里面只会显示“未归类的任务”。对于我来说，「任务」这一栏就是空的，因为我所有的任务都会归属某个清单。这个功能就很……截止日期和提醒日期对于每个任务，ToDo 有两个时间设置。看起来，这两个时间的定义不同，但是实际操作起来却没什么必要。一个任务提醒你需要去完成了，为什么这个时间点不是截止时间呢。除非这个任务是时间跨度很长。但非常不建议添加这样模糊的任务到清单中。每一个任务尽量是具体的、可以很快执行完毕的，如果是长期任务一定要进行划分，否则这样的模糊的任务很大可能是无法进行的。我在使用ToDo的时候设置这两个时间完全就是跟随心情，有时候点截止日期，有时候点提醒日期，这让我很迷茫，尽管这两种方式都会让任务出现在「已计划日程」中。容易误触「已完成」在IOS上，如果选择「隐藏已完成任务」，在任务清单中，选中 一项未完成的任务 的「完成按钮」，这项任务就会立即消失在这个列表中。天知道，我已经很多次的误触这个「完成按钮」，导致不知道把哪个任务不小心给点「已完成」了。正确的体验应该是，点击已完成，不会立即消失，而是再次刷新列表的时候再去消失这一项。优点优点也有一些。跨平台，Android、IOS，Mac，Linux（虽然用不到）。但是我偶尔会用我的旧Android手机睡觉前看新闻（嘿嘿就是focus软件），偶尔也会记录一些突然想起来的任务。动画很不错。很多操作都有动画，比如任务消失，显示在清单列表中，列表的显示等排序的方式很多一些小细节做的比较完善一点，我喜欢的是这个：选择「提醒时间」的时候，会有「今日晚些时候」，而对于「明天」、「下周」这样的选项也会有一个默认的时间（不仅仅是日期）。因为很多时间，我的任务并不是精确到某个时间点，而是某天内完成都可以的，自己再去选择一个时间就有点麻烦和纠结了。对于今天超时的任务，选择「今日晚些时候」就很方便的再拖一会儿。提醒事项设计优点几乎ToDo的设计缺陷（我认为的）都修正了。「今天」的任务列表是“提醒时间为今天”的任务列表，没有对任务进行「添加到今天」这一步多余步骤。「全部」类似于ToDo的「任务」的功能，但是这里会“按照清单”分别显示所有的任务只有提醒日期一个时间设置，更简单IOS上，对任务点击已完成，不会立即消失。（但是Mac上也会立即消失，好在可以command+z 撤销操作）上面最膈应我的四个问题，「提醒事项」都修复了。除此之外还有一些亮点：能够对自然语言进行解析，这个Android 版本的Todo也是支持的，但是到了苹果平台就没有了，可能还来得及迭代。和电脑端可以使用「接力」任务提醒自动关联日历的日程中会在日历📅的小部件中显示，系统提醒非常及时和准确。但自身仍然也有一些问题。缺点提醒我，需要手动指定一个时间没有想ToDo那样的默认时间，就有点麻烦了！没有指定时间的任务如果一个任务的提醒时间只指定日期，但不指定时间，这个任务不会自动添加到日历的日程中，也不会有弹窗提醒。不提醒可以理解，但好歹应该加到日历中的日程中吧。同样的在IOS 13.12中，联系人的生日如果只选择日期，不选择年份不会添加到日历的日程中，在新版本中修复了这个问题。所以有理由相信这个设计问题被忽视了。这三个缺点看起来似乎没有ToDo的设计缺陷要重要，但是实际上对于体验上却又致命的关键。除此之外，两款软件的功能几乎一致。在多平台的速度上没有太大差别。界面细节“很”简陋对点击「已完成」/「未完成」没有震动的反馈，甚至在IOS上，已完成任务和未完成任务的样式是一模一样的，已完成的任务没有删除线，也没有文字变灰……很难受几乎为0的动画效果，非常不符合苹果的风格，很僵硬，甚至Mac的「提醒事项」双击任务有的时候会卡顿。子任务在任务编辑页面的最底下Mac上的显示方式还好一点，会将任务和子任务同时在列表中显示出来，子任务会有一个缩进。而在IOS的应用中，子任务的添加在任务编辑页面的最下方，你好歹也放在前面呀，子任务这个功能这么不重要吗……[album type="photos"][/album]最后最后决定，迁移使用苹果的「提醒事项」。我倾向使用内置的应用，一开始我甚至准备使用苹果的内置地图应用，但在国内比高德和百度差太远，就放弃了。华为的Android机器上用来记录的我一直使用的是便签而不是第三方应用。因为内置应用一般上更简单，更少的商业化。以上内容仅供参考~
我的选择Mac端：mweb 2.0移动端 ： 1writer这样我的跨平台写作流程是：在iCloud里面设置一个文件夹 写作文档。电脑端使用mweb的外部模式，打开该文件夹，进行写作。同时iCloud会进行同步。移动端使用1writer 打开外部文件夹，可以继续写作。[album type='photos'][/album]其他同类型应用使用体验一点吐槽首先统一吐槽一些软件，非得自己搞什么“文档库”，文档都不知道被软件存储到什么位置，然后必须使用软件内部的iCloud同步才能跨平台写作。最关键的是文件也不知道存储在iCloud的什么位置。我个人觉得写作软件：首先做好显示外部文件夹层次和文件就可以了。现在手机、电脑设备的文件系统都比较完善了。没必要搞什么应用内部的文档库，给我一种不安全感，因为我不知道文件存哪了其次应用内部也完全没必要搞iCloud同步，如果软件本身就支持打开iCloud外部文件夹，同步问题就自然解决了。而不是把用户的文档数据转成应用内部的数据，然后再用iCloud同步，这不是多此一举吗。评分标准满分100分。写作软件只要有以下优点，我个人就觉的是一款完美的软件：价格合理（20分）细节处理（比如主题切换、空格习惯设置、实时预览等等）（20分）支持对文件夹、标题和内容快速搜索，搜索结果呈现简单明了（10分）显示外部文件夹的层次结构以及相应的内容（20分）markdown解析流畅，对中文支持好，支持大部分的markdown语法（10分）对图片的上传有一个合理的方式（10分）至于能够同步博客、medium之类的功能对于我个人来说可有可无（5分）ui颜值不错，太丑的界面实在让人觉得 ...当然习惯了可能就好了吧（5分）除此之外的什么聚焦模式，打字机模式，有则优，没有其实根本也不影响写作体验。（0分）bear（移动端）（75分）[album][/album]字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明10元/月各种小功能考虑的比较好不支持支持内容、标题解析的样式好看，可以换主题 不支持同步博客之类的不是ios原生那种，但却是很精致得分1020010101005但是单就不支持外部文件夹对于我来说已经不会使用了。ia writer（移动端）（38分）因为我先用了ia writer，觉得差强人意，于是决定在移动端使用这款软件，没想到用户体验几乎为0。而且售价60，我不知道谁给他的勇气。[album][/album]字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明60元/买断自带markdown小键盘，有聚焦模式不支持支持搜索内容、标题，但搜索结果只有标题，没有匹配的内容差强人意，不支持公式如果是iCloud的文档，图片会自动放到iCloud里面，本地文档是无法上传图片的无不说了得分1015085500缺点：界面劝退，线条蓝色图标，我感觉像是上世界的Android风格，完全没有iOS的界面元素不支持外部文件夹打开，只支持外部某个文件打开，劝退1writer（移动端）（76分）[album][/album]字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务发布(5')UI界面(5')说明30元/买断有markdown工具条，还有一些个性化的设置我在iOS平台唯一看到的支持外部文件夹的软件只支持搜索标题差强人意会把图片自动放到相同文件夹类，无法自己设置无中等偏上，有改进的空间，虽然用了一些iOS设计风格，但整体上还是不够iOS得分20152055803ulysses（移动端）（45分）[album][/album]字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务发布(5')UI界面(5')说明28元/月，太贵了，iCloud一个月才6月呢这个软件打开你就能感受到花了很多功夫不支持支持内容、标题搜索，搜索界面也很好看不支持表格，样式还是很好看的没找到本地图片上传，只找到一个附件，但是和文章是分离开来的支持wp,ghost,mediumios原生界面，完美得分5200105055ia writer（电脑端）（66分）因为有试用期，我就下载了。基本功能还行，流畅性不够，尤其是右侧的编辑器区域，滚动起来就是不流畅，就是不流畅。而且聚焦模式用起来很……很不舒服。（可能我不习惯这个聚焦模式，内容始终显示在中间，上面还会有空白）语法高亮对中文也是没有作用的。字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明198元/买断差强人意，不支持更换主题颜色，写作的背景是灰色的，也不支持修改背景。灰色背景看得我很难受。支持支持，搜索速度很快没有代码高亮不支持从本地直接复制图片，也不支持调用第三方图床不支持差强人意得分51520108053Mweb（电脑端）（85分）[album][/album]这款是我在Mac端体验最好的，但是因为我刚买没多久就升级，而且需要重新购买，让我一直对这款软件有点意见！！我昨天升级了mweb3.0，有14天的体验期，我决定体验一段时间，如果没有优惠的话还是降级到mweb2.0，毕竟旧版本功能足够我使用，只是界面没有新版好看而已。支持多tab打开文档，这个功能非常好用，也是唯一一个我看到有这个功能的软件字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明128元/买断设置项实在太多了，切换主题都会小问题支持文档库和外部文件夹完美支持文字多了，滚动会卡（3.0专属bug），对表格的编辑支持也不够好支持第三方图床，也支持自动拷贝到文档文件夹下的media目录中支持多种，除了typecho基本都支持了我个人比较喜欢，相比ulysses还是差了一点得分1520201021053typora（电脑端）（95分）这是一款完全免费，也是很多人推荐过的软件，我很早以前一直使用，非常不错如果只是写markdown文档来说，这款软件非常棒，但在管理文件夹这方面是弱势，因为无法记忆上次打开的文件夹，每次启用都是一个新的空白文档。 现在已经支持打开设置一个固定文件夹了！！完美了但是整体设计，给我一种太轻巧的感觉以至于不太适合文件夹的展示，可能我没习惯。字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明免费对外观、markdown、图片、编辑器的设置基本都考虑到了支持支持用过所有软件中，解析最快，最流流畅的，完全是为markdown而生支持本地图片上传，不支持调用第三图床，但支持下载网络图片，支持ipic插件不支持简洁，美观得分20202010101005Ulysses （电脑端）（70分）也是在体验期下载，后面就没使用了界面好看，但是不支持实时预览，你如果想要看markdown的效果，得以pdf、text等某种文本导出才可以。[album][/album]字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明28/月有些细节有问题，比如 !> 会自动转化成 \!>,而且还没有开关，让人抓狂支持支持没有发现什么问题不支持从本地直接复制图片，也不支持调用第三方图床支持界面很好看得分515201010055tea (电脑端)（47分）[album][/album]完全免费，支持mac windows，移动端就没有了。这款软件我很早体验过一次，它自带的material风格（点击会有波纹效果）让我感觉和osx系统非常的不匹配。一种很不原生的性能很差的感觉。事实上，在文字编辑的渲染，总给我一种延迟的感觉。但是基于插件式的软件，很有创新点。有点类似vscode。但vscode更强大。这让我想起来，vscode本身也可以作为一个不错的markdown编辑器，但总给我一种杀鸡用牛刀的感觉。而且vscode也无法记住上一次打开的文件夹。还有一点vscode风格也是沿用Windows系统上面的。还有一个巨坑就是主打的所见即所得模式居然不能直接看到markdown的源码，必须导出为新的markdown文档，才能看到……我服了字段价格(20')细节处理(20')支持外部文件夹(20')搜索功能(10')markdown解析(10')图片上传(10')第三方服务同步(5')UI界面(5')说明免费还没简陋，我个人感觉不支持只支持当前文档搜索还可以无无还可以得分20100210005除此之外，我还尝试了ios上面的 markdown（够简洁，基本免费，但是不支持文件夹），pretext（更简洁，markdown预览不支持中文，不支持文件夹，基本就一个功能，编写markdown文件）总结中国开发者在markdown编辑器开发这方面已经越来越出色了。在界面、功能性上完全不输国外开发者。希望国内有一个和1writer一样设计思想的更优质产品出现。手机端，支持引入外部文件夹，我目前只发现了1writer。虽然bear、ulysses界面好看，但是贵啊，而且不支持外部文件夹。电脑端，基本都支持打开外部文件夹（除了 tea）。要免费，选择typora就好了，已经满足我的需求。或者也可以考虑mweb，在有优惠的时候。最不推荐购买的： ia writer 包括移动端和pc端，界面太丑。价格也不算便宜，至少在中文文档这方便稳定性、流畅性很差，不值。bear、ulysses 虽然订阅制，虽然很贵，但是购买之后不会觉得不值。从价格上，bear比ulysses更有性价比，两款软件功能很类似。ulysses界面我是最喜欢的，其次bear，次之mweb完~
当我从Linux转换开始使用macOS的时候，我发现macOS的终端很丑，它长这样：于是我找到这样一篇文章：Mac OS 终端 iTerm2 并配置 zsh。所以什么是终端，什么是zsh。终端很久很久以前，终端这个概念是这样的：是一种硬件，是一种输入输出设备，用于和计算机交换信息。终端的工作：用户通过终端输入命令，终端将命令传入计算机，执行后，并把结果输入到终端上显示。从这个概念不难可以看到电传打印机符合这个概念：但是现在计算机硬件一体化程度越来越高，硬件质量也越来越强，输入输出设备完全没必要单独用一个硬件和计算机进行交换信息了，取而代之使用软件终端和计算机进行交互信息。这就是终端模拟器 (Terminal Emulator)，也就是我们现在所讨论的终端。除了它不是硬件，它符合终端的概念和工作流程。举个例子，下面这些软件都是终端：1GNU/Linux：gnome-terminal、Konsole；macOS：Terminal.app、iTerm2；Windows：Win32 控制台、ConEmu 等。shell我之前很迷惑一个问题是，有终端就够了嘛，输入命令，执行并把结果输出，要shell干什么。更让人抓狂的shell还有很多种类，bash,cshell,zsh。这些到底是做什么的？所以需要明确下终端负责的工作。终端的工作范围：接收用户的输入，显示传过来的输出。（此外还提供一些优化用户体验的功能，比如支持文字复制粘贴、软件背景颜色的调整等）终端的工作其实是很少的哦，简单来说3点：GUI软件界面、接收输入、显示输出。而shell的核心工作就是操控计算机内核（如新建文件等等），即访问操作系统中的某个具有一定功能、可以处理具体事务的文件(二进制文件 ---- 此类文件经常被称作工具)、或包含一定内容的文件(文本文件)2shell分为：图形化 shell（图形化的桌面环境），如Windows Explorer （文件管理器）、 Linux的桌面环境有：KDE、GNOME、CDE、 XFCE等。命令行 shell。如bash 、sh 、csh 、ksh我们一般讨论shell都是指命令行shell。shell为什么叫做命令解释器不管是GUI shell 还是命令行 Shell，其实都是在解释命令，只不过GUI shell隐藏解释命令细节，用户通过点击鼠标的操作操作内核命令。shell为什么叫做壳如上图，shell通过解析命令调用 系统调用和相关API操作内核命令，进而读写硬件完成任务。shell是最外的一层的接收用户操作，像一层壳一样裹在整个调用过程中。为什么有这么多命令行shellshell与shell脚本语言并不完全相同的概念。shell除了包括对命令的语法规范（shell语言）和对命令解析，还包括一些额外的功能（如命令补全、主题等等）。shell语言和我们学习的任何其他高级语言c,python,java没有太大区别。不同的shell语言可以看做java语言的不同版本。不同shell的区别主要是两方面：脚本语言语法有差异功能、外观、自定义美化上有差异脚本语言早期的sh甚至不支持给长命令设置别名的语法。3zsh虽然完全兼容bash的语法，但还有一些语法差异，具体可以看Zsh和Bash，究竟有何不同 坑很深自定义功能配置除非我们需要编写shell脚本，普通用户一般很难发现不同shell脚本语言差异。对文件操作ls、pwd等等这些常用命令所有shell都一样支持。所以我们普通用户更关注是细节、外观、功能上的差距。这一点zsh做的格外的优秀。比如色彩高亮、命令提示、智能补全、快速跳转等等附加功能。4我们在讨论配置终端的时候，实际上是在讨论配置shell。为什么zsh如此受欢迎？这个较新的shell与bash兼容，但包括更多的功能。 zsh shell提供内置的拼写校正，改进的命令行完成，充当shell插件的可加载模块，允许您在命令行上别名文件名或其他任何东西的全局别名，而不仅仅是命令，以及更多主题支持。 它像bash，但有很多附加功能，附加功能和可配置选项，你可能会喜欢，如果你在命令行上花费大量的时间。3总结： 终端就是软件，是最外层的，shell = shell脚本语言解析器+编辑、外观等额外功能不同shell的切换输入cat /etc/shells，可以查看本机上的所有shell：临时切换比如切换bash，直接输入bash，即可切换到bash环境下，输入exit，复原默认shell环境。默认切换5#使用系统自带的 zsh：输入密码成功切换，重启终端即可使用 zsh。 chsh -s /bin/zsh #使用第三方的 zsh，如从 brew 安装的 zsh。 sudo chsh -s /usr/local/bin/zsh 命令行界面 (CLI)、终端 (Terminal)、Shell、TTY，傻傻分不清楚？ ↩ Shell 是用来解决什么问题的？ - Bryan Yuan的回答 - 知乎 ↩ Bash，Zsh和其他Linux Shell之间有什么区别？ ↩ 为什么说 zsh 是 shell 中的极品？ - 韦易笑的回答 - 知乎 ↩ 终端中的 zsh 和 bash ↩
接触typecho一段时间，大家了解的插件应该是CommentToMail(by 羽飞) ，最新版本更新时间是2014-04-25。我之前也尝试了N次，最终是成功用上了这个插件。但是有好多小伙伴因为各种各样的玄学原因，无法正常使用。所以，这里推荐另一款插件CommentMailPlus，是小伙伴yorkchou 推荐的。他的博客也写了一篇介绍，下面我来详细说明一下 使用方法。（本地测试有效）网址在这：https://www.mailgun.com/插件下载地址：https://github.com/oott123/CommentMailPlus注册账号并验证账号因为网站是英文的，所以，我做了一个图↓图示应该很清楚了，一共6步。第6步点击【Domains】栏目，可以看到mailgun默认分配了一个很长很长很长的域名，即Sandbox subdomains。【注意】：这个域名是mailgun仅仅用来测试用的，如果直接使用这个域名配置的话，是只能向Authorized Recipients列表的成员发信。向其他人发现会被拒绝，错误信息： "reason": "Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.",所以，我们要绑定自定义域名来实现向所有用户（评论者）发信。无需绑定信用卡。绑定自定义域名第一步点击顶部的【Domains】栏目，下面有一个黑色的按钮Add New Domain，戳它！第二步填写Domain Name。建议填写【二级域名】，比如我的域名是ihewro.com，就填mail.ihewro.com。当然如果你域名多的话，拿一个闲置的顶级域名也没关系。第三步出现一个界面【Now Follow These Steps To Verify Your Domain】，就是验证你的域名的步骤：访问你的域名解析商，比如我使用万网，就去打开万网的后台为发信添加DNS记录：这里有两种方式，一种是添加txt类型一种是添加mx类型我使用第一种，感觉更简单一点。唯一注意的是，在万网填写主机记录要去掉你的根域名部分。比如Hostname为mail.ihewro.com，在填主机记录里填写的是mail即可。为追踪信息添加DNS记录：这个可以不填，不影响发信，但是可能影响其他功能。填写方式和注意部分和上面一样。比如我的万网后台填写记录就是这样的（下图↓）：​然后就绑定成功后，会在【Domains】栏目中看到你的域名前面是绿色的。后台插件的配置Mailgun API 密钥即API KeyMailgun域名即你的自定义域名，比如mail.ihewro.com发件人邮箱即Default SMTP Login好啦！一切大功告成！其他其他需要了解的是顶部导航条了。【logs】里面显示的是发信记录。可以详细看见每次发现的信息。就这样，逃～
最近才接触到linux。一开始使用的是ubuntu.后来发现了国产操作系统 deepin，被界面打动了，立即换成了 deepin 15.3.今天上午官方放出了15.4 beta版本公测（正式版本将在今年的4月份开始推送），所以要体验，只能通过.iso文件全新安装了。下了课，就安装上了 linux deepin 15.4 桌面操作系统。下面是简单的体验。先说说缺点。第一，热区功能有点问题，非常不灵敏，时不时出现失效问题。15.3中没有发现这个问题。15.4 优化了效果之后，就变成如下图的情况：第二，调整声音时候的反馈生效十分刺耳。建议参考win 7的效果优化一下反馈音效。(重启几次，发现效果好了一点，不怎么刺耳)第三，正在打开软件的时候，鼠标没有正在加载的图示。这样用户无法知道刚才的点击启动操作是否有效，造成多次点击。使用ubuntu的时候，发现这点做的很好。第四，顶部状态栏仍然没有。这个特性再mac系统和ubuntu中都有，虽然windows一直没有，但我觉得，这个顶部状态栏还是非常好用方便的。第五，控制中心的天气似乎没有调整地区的功能，而且UI有点错位的问题。（见下图）第六，调整字体大小的选项现在只有3个选项了？只能调整10，12，16px. V15.3中可调整范围还是很大的，而且间隔是1px的调整。希望这点官方会保留以前的设置。第七，控制中心的设置，鼠标放在图标上没有具体说明。初次使用这个系统的话，不知道每个图标的具体含义。（见下图）优点或者说是改进也是蛮多的。第一，动画效果较15.3更多了一点。比如窗口的打开和关闭的动画效果更自然。但是点击关闭出现“关机/重启/注销/待机/锁定”界面仍然没有动画，很突然的感觉第二，深度音乐的界面和功能大大改进了。以前界面可能是仿很多年前的QQ音乐的UI，现在重写了变得很大气。第三，切换系统源的时候，以前是先出现所有镜像源的列表再逐渐显示出各个源的速度，现在是先后台检测完所有镜像源的速度，然后再直接显示出来。当然还有一些更新，在官方的发行说明中又详细介绍，不再赘述。最后，附上一些截图，给没有升级的，或者想试试deepin系统的小伙伴们。deepin 确实很不错奥！注：封面图来自deepin论坛（找不到发帖地址了，侵删）
本篇单纯为个人记录，仅以备用与参考，仅适用于vivo X5max+ 2015-02-25b版本 ，360 也木有任何广告费~ root手机对各位机友来说，应该是家常便饭，但对于vivo手机真的是！很麻烦！首先这款手机查遍了互联网，也找不到第三方rec,就根本没办法通过线刷[超级权限SU]来破解root，只能用360root，尽管流氓，还得破解了。但是root成功后，一旦重启，system仍然会被锁，就成为[不完全root]，只能看看wifi密码之类的，不能修改核心文件。所以，一切需要写入system的操作都得在没重启之前。之前一直用[Google相册],不得不说Google公司技术确实没话说，国产软件还没有与Google相册相平衡的。我喜欢的这个软件有几点：自动备份并且，不限量的免费上传空间额度（高清画质）自动整理与归纳相册内容但是！更新后，一进入，一会儿就自动退出，连相片都没办法备份了（在挂V P N前提下）。Google 三件套之前一直没有刷到系统内置应用，所以想通过root，直接把Google三件套刷到系统中去，提高应用的稳定性。前期工作备份手机的信息（联系人，信息，重要相册之类）恢复出厂设置，清除SD卡所有内容（SD杂乱的东西都不要了！太占空间！）通过电脑把官方签名的降级ROM包下载到SD卡中 [PD1408BL_B_1.7.18-update-full.zip],其他版本的ROM包不确定能否root成功。刷降级包关机。然后开机键+上音量键 同时按，选择[recovery mode]，进入rec 模式双清缓存和用户应用数据，双清，防止后续可能出现未知错误把降级包刷进系统，出现[正在更新系统……]的界面启动手机(reboot phone)使用360root 获取系统权限下载电脑端的360 root，按照提示，会发现root成功！这时候千万不要关机，不要重启！否则一切功亏一篑下载[酷安]与[shadowsocks-Android]，在酷安中搜索[Link2SD]、[GO谷歌安装器] 、[绿色守护]、Lux。先挂上VPN，然后打开[GO谷歌安装器]，赋予root权限，直接把Google三件套刷进系统，然后在这个软件中选择[谷歌套件更新]，不然的话就提示，Google play 服务出错，闪退。在Google Play store 中下载[Google 相册]。使用[Link2SD]把[绿色守护]、[Lux]、[Google 相册] 转换为系统应用(注2:)。这时候，重启一下手机，Google相册正常使用了，Hooray!* 注1：[酷安]软件市场强烈推荐，因为上面的APP都是正版，评论区对于付费软件还有破解版（尽管并不好，但是很方便），[Link2SD]获取root权限后，可以直接把应用变成系统应用。[绿色守护]、[Lux] 为个人爱好，可以不装。* 注2：同上，[绿色守护]、[Lux] 为个人爱好，可以不刷进系统。至此，一切看起来差不多了~vivo X5max+上似乎没办法装Xposed 模块，所以更高级的玩法也没办法实现了。
前几天写一篇关于项目的开源许可协议 。 常见有六种，GPL、BSD、MIT、Mozilla、Apache和LGPL。这些协议适用于我们软件与项目代码，对于我们文档和作品，我们通常使用创作共用许可证 来保护。参考文章 ：阮一峰：谈谈创作共用许可证（Creative Commons licenses） 创作共用许可证（Creative Commons licenses，简称cc），它是由成立于2001年的美国Creative Commons基金会，在2002年12月16日提出的。CC协议中作者可保留的权利作者使用CC协议，可以且只能选择保留以下四种权利：1）署名（Attribution，简写为by）：必须提到原作者。2）非商业用途（Noncommercial，简写为nc）：不得用于盈利性目的。3）禁止演绎（No Derivative Works，简写为nd）：不得修改原作品。4）相同方式共享（Share Alike，简写为sa）：如果允许修改原作品，那么必须使用相同的许可证发布。以上4中权利排列组合，就有16种，但是要注意几点：1） 不能同时选择 禁止演绎 与 相同方式共享 2) 不能同时放弃４种权利所以，再次排列组合，就有了最常见到６中排列组合：1. 署名（by license）2. 署名-非商业用途（by-nc license）3. 署名-禁止演绎（by-nd license）4. 署名-非商业用途-禁止演绎（by-nc-nd license）5. 署名-非商业用途-相同方式共享（by-nc-sa license）6. 署名-相同方式共享（by-sa license）需要注意的是，对应不同的司法管辖区，创作共用许可证有不同的地区版本。另外，创作共用许可证一直在修订，最新的是4.0版，但是一部分地区还在使用3.0版。推荐使用最新版本。如何选择合适的CC协议呢？你可以访问这个网站[https://creativecommons.org/choose/https:]，一步步根据你的需求，最后可以生成符合你的许可协议。本博客所有原创文章知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
同步更新官网文档：v3.1 2017/8/17instantclick 中文文档简介instantclick.js 是一种ajax无刷新和预加载页面的技术，对于普通博客程序，有着明显的加速作用。(instantclick.js ≈ pjax + 预加载页面)而且，使用方法也十分的简单。在github截止目前，已经由4447个star了，非常可观。但是官方文档纯英文，可能阅读上有点障碍，所以，在此，翻译一下大部分的官方文档内容，方便新手快速使用。大部分采用直译方式，需要注意的地方 用小括号注释起来。（尽管如此，instantclick.js 仍然有一些bug亟待解决，如果你可以忽略缺点吧，我们一起开始吧！）目录初级阶段开始使用instantclick 工作原理预加载页面黑名单规则事件和脚本的重新加载进阶阶段跟踪页面内容的变化自定义加载条初级阶段开始使用下载instantclick.js最新的发布版本是2014/12/25发布的V3.1.0 （虽然github一直有更新，但是并没有发布新的版本~）压缩版本2.7kb开发版本21kb其他的下载方式github上面的最新开发版本通过bower（一种前端开发工具） : bower install instantclick初始化instantclick把 instantclick.js 和 初始化代码 放在你的页面的结束之前( 标签结束之前)... 现在instantclick 已经成功在你的网页上面生效。阅读下面的文章以便更熟练的使用instantclick。instantclick 工作原理：将会让你建立正确的模型以便更好的理解instantclick的机制预加载页面：将会向你展示不同的预加载页面的方法黑名单规则：因为有些链接你不想预加载事件和脚本的重新加载：将会帮助你使instantclick更好的配合你的网页中的JavaScript。instantclick不总是“即插即用”（不是通过两行代码就可以在你的网页上运行），你可能需要自定义一些设置来适应你的网站，这也是为什么阅读上述文章是强制性的。instantclick 工作原理InstantClick与传统的web应用区别不大，但是很有必要去了解这些不同的地方！instantclick使浏览器不再刷新整个页面（即无刷新页面效果）首先：你需要理解的核心内容是：instantclick在技术上使你的网站成为单页应用程序；浏览器不再刷新整个页面，而是通过instantclick技术来更改页面内容，这意味着：你不能依赖DOMContentLoaded和jQuery.ready()这两个函数来触发相关事件（这两个事件在刷新整个页面的时候才会触发，但是你可以使用[InstantClick’s events]()来替代)依赖上面两个函数的第三方脚本（比如js代码）需要调整（参阅[事件和脚本的重新加载]()）在加载页面的时候，浏览器不会在显示原本加载进度条了，instantclick有它自己的加载进度条。其次：你需要明白instantclick只会改变 和title，所以你的脚本只会被加载一次（带来的好处是速度的明显提升）。下面还有一些内容你需要了解：通过instantclick加载的每个页面的 标签里面的样式和脚本应该是相同的（因为instantclick只会加载一次 标签里的内容）如果 标签里面的某些内容依赖于网页的内容（比如在页面加载时运行的脚本或css动画），它需要调整以便正常运行。InstantClick是渐进式增强功能：如果访问者的浏览器不支持InstantClick，您的网站链接将照常工作，只是不会提升速度了。预加载页面InstantClick 关于预加载方式有多种选择。你可以根据你的服务器配置来选择合适的方式。但是不管怎样，当每个页面改变时，不会重新加载脚本和样式表，这样会使你的页面加载速度提升一倍！（与Turbolinks、pjax等等技术是类似的）默认: 在鼠标悬停预加载(on mouseover)当用户鼠标悬停在链接上开始预加载页面。如果用户网络链接不错的话，你的页面会很快的打开。初始化方法就是[开始使用]()设置的方式。不会给服务器带来额外负担：在鼠标点击的瞬间预加载(mousedown)当用户按下你的链接按钮的瞬间，页面开始预加载。这为你的服务器带来了接近零的开销，但仍然能够带来一个很“神奇”的速度提升！使用方法：将'mousedown'作为参数传递给InstantClick.initInstantClick.init('mousedown');折中的方式：鼠标悬停延迟一定时间才会预加载如果用户在您选择的延迟过后仍悬停在链接上，则该网页将开始预加载。推荐的延迟时间为：100ms和50ms。超过100ms效果比mousedown效果更差。低于50ms，则会与mouseover效果相似。要使InstantClick延迟一定时间后预加载，请将延迟（毫秒）作为参数传递给InstantClick.init。InstantClick.init(50);手机端效果上面的任何预加载方式，在手机端的时候，当用户手指接触链接时候都会开始预加载。如果您的网站针对移动设备（在安卓和iOS界面上使用了[FashClick]()技术）进行了优化，则当访问者从链接中释放手指时，会发生“点击”，导致预加载大约100 ms的延迟。如果您的网站没有针对手机进行优化，延迟时间则取决于操作系统。 Android给出300 ms，iOS给出450 ms。在同一站点上的3G请求的延迟时间通常需要大约200ms。如何选择？如果您的网站可以处理额外的负载，选择 在鼠标悬停时预加载方式。如果你的网站不能，选择在鼠标点击的瞬间预加载方式。您的网站的速度仍然会超过99％的网站。如果你想确定你的服务器是否可以，先选择在鼠标点击的瞬间预加载方式，你的服务器几乎不会有额外的压力。然后使用鼠标悬停延迟100毫秒预加载。然后50毫秒延迟（或减少更小的减少，如果你有耐心）。然后直接用在鼠标悬停时预加载，分别看你的服务器是否能够承受额外的负担。如果服务器端分析很重要，你只能使用在鼠标点击的瞬间预加载，使用任何其他方式都会带来误差。黑名单规则有一些链接是不需要通过instantclick来预加载。黑名单规则可以实现这个效果。哪些需要进入黑名单哪些需要进入黑名单，而不能进入白名单的：链接指向操作，例如注销和切换语言。链接指向需要一段时间加载的非HTML内容链接指向的页面与当前页面 标签内的css样式和脚本不同链接触发JavaScript的操作部分链接已在内部列入黑名单，且无法列入白名单：链接有target或者download属性链接与当前的域名或者协议不同链接指向当前页面的锚点链接(#anchor)把一个链接列入黑名单把一个链接加入黑名单，只需要在链接中加入data-no-instant属性Blog把一组链接列入黑名单有时候要把一组链接一起列入黑名单，这时候比给所有链接分别添加data-no-intant要方便的多。把父元素内部的所有链接列入黑名单，只需要向该父元素添加data-no-instant属性。把一个链接或者一组链接列入白名单如果您已将某个父元素列入黑名单，并且希望将其中的某个链接（或者子元素内部的所有链接）列入白名单，只需要向该链接或子元素添加data-instant属性。InstantClick在后台中从当前链接的位置到 的位置，遍历所有的父元素，如果找到data-no-instant属性，它就会认为该链接已经被列入黑名单，并停止循环遍历父元素。如果它找到data-instant属性，它会认为该链接已经被列入白名单。（此处翻译可能需要修改）如果您希望默认将所有链接列入黑名单，然后逐个将链接列入白名单或仅想把某个容器的链接列入白名单，请在 添加一个data-no-instant属性，然后向该链接或者容器中添加data-instant属性。白名单模式下面的方法已经弃用，可能会在4.0版本中删除。只有当你的网站正确激活参数（真正的参数传递给InstantClick.init），这种方法才会有用。（此处翻译可能需要修改）正确的方式™：如果要实现与白名单模式相同的效果，只需添加data-no-instant到你的 标签中，参见上一条目“把一个链接或者一组链接列入白名单”。通过向InstantClick.init传递true参数来启用白名单模式。InstantClick.init(true); /* or */ InstantClick.init(50, true); /* or */ InstantClick.init('mousedown', true);事件和脚本的重新加载InstantClick技术上使你的网站成为单页应用程序，因此当页面切换的时候，不会触发DOMContentLoaded函数。因此，一些脚本可能需要调整才能与InstantClick正常工作。InstantClick会触发4个事件以便于挂钩到页面的整个生命周期：change:当前的页面一旦改变会触发该事件，即使浏览器不支持instantclick，页面初始加载的时候也会触发该事件，这个事件可以用来替换DOMContentLoaded.它的回调可以接受一个可选的isInitialLoad参数，它是一个布尔值，当它是初始页面更改或当InstantClick不被支持时为true，而当InstantClick更改页面时为false。（此处翻译需要修改）fetch:页面开始预加载的时候receive:页面已经预加载完成，你可以使用该事件[修改页面的内容]().wait:用户已经点击了链接，但是页面还没有开始预加载。仅在页面不是立即显示（可能由于网络原因）的时候触发。监听一个事件，比如change，你可以使用InstantClick.on:InstantClick.on('change', yourCallback);您需要在InstantClick.init之前调用InstantClick.on，因为change事件在网页初始加载时就会被触发，包括浏览器不支持pushState的时候。（此处翻译可能需要修改）如果在 标签内部有一个脚本，当instantclick切换到另一个页面的时候，你并不希望重新加载它 ，你可以添加一个data-no-instant属性。 如果有一些脚本与instantclick发生冲突，建议向所有脚本添加一个data-no-instant属性，然后逐个删除每个属性，直到找到罪魁祸首。您可以通过查看Turbolinks兼容性站点上的示例（在CoffeeScript中）了解如何解决兼容性问题。例如，以下是如何使Google Analytics（网站统计与分析）（2013年末的代码）正常工作： 在receive事件里改变页面内容有时，即时改变页面内容比为instantclick重构你的后端代码要简单。你可以使用receive事件。这个事件有三个参数：url， ，body 和title。url 接收的页面的地址，它包括哈希值。它是只读的。body是body对象，title是标题文本。如果你想在页面显示之前改变页面内容，你可以修改这两个参数并返回一个对象（或者只修改其中的一个参数）。下面是一个例子：InstantClick.on('receive', function(url, body, title) { var dont_display = body.querySelector('#dont_display_me_when_loaded_with_instantclick') if (dont_display) { dont_display.setAttribute('hidden', ''); } title += ' (loaded with InstantClick)'; return { body: body, title: title }; });要记住 body 对象是body 而不是document.body!当您有多个回调函数监听receive函数时，每个后续回调将获得最后更改的内容。如果你不想修改页面内容，则不用返回任何内容或返回false。进阶阶段跟踪页面内容的变化当前跟踪页面内容的变化的方式目前有点笨拙。它可能稍后在InstantClick 4.0中更改。要检查样式表或脚本（外部或内联）何时更新，请添加一个data-instant-track属性： InstantClick将检查href或src属性（如果存在）中的更改。要指示文件已更新，请修改其属性： 如果它是内联脚本或样式，InstantClick将检查元素内容中的更改。 当检测到任何更改时，InstantClick将重新加载页面，从而使浏览器重新评估所有脚本和样式。自定义加载条进度条是一个假的进度条，只是在那里给你的用户的感觉页面的加载进度。在未来，应该可以使进度条显示真正的进度（通过查看服务器的Content-Length头）。即使页面已经立即加载，也会显示进度条，在将来这将更改。你可以在github讨论。当访问者缩放页面或旋转其设备时，该栏的大小和位置会自动调整，因此即使您的网站未针对移动设备进行优化，也会正常工作。默认情况下，进度条的颜色为#29d, 你可以改变CSS:#instantclick-bar { background: white; }你也可以让进度条消失：#instantclick { display: none; }使进度条消失的方式不是最佳的。在稍后的InstantClick版本中，可能可以通过向InstantClick.init传递参数来实现这个效果。
[scode type="green"]本站是handsome主题唯一购买方式，其他任何途径、渠道均为非法倒卖主题。handsome主题已经获得国家认证软件著作权证书[/scode]主题介绍 [tag]10.1.0[/tag][scode type="lblue"]购买前请务必阅读购买须知，你可以购买前进行咨询。本博客中的所有功能效果均为主题自带[/scode]写作和阅读，记录与回顾，简单与强大。[button color="success" icon="glyphicon glyphicon-send" url="https://handsome.ihewro.com/user.html"]handsome用户社区[/button]功能介绍[tabs][tab name="多种样式" active="true"]精心搭配和设计的纯白色调，适应各个设备和分辨率。十四种色调、多种布局可以随心切换。[album type="photos"][/album]通过后台设置，主题可以实现一栏、双栏、三栏样式的切换。除此之外，设计了对图片背景更加友好的透明模式。对黑色情有独钟的深色模式。简约实用的阅读模式。[/tab][tab name="时光机"]handsome 时光机支持网页端、手机端、微信公众号、浏览器、chrome、Firefox、edge浏览器扩展，让你随时随时记录。[album type="photos"]Jietu20210216-170937@2x.jpg时光机标签，分类所思所想[/album]微信公众号还支持向指定分类发布文章（可以设置为加密分类，即可直接在微信公众号上写日记了）功能介绍那年今日页面会显示过去了24月中同日的发布内容，回忆过去此刻的心情rss订阅在时光机页面，你还可以订阅任何支持rss的其他网站，一个页面查看你的所有关注内容[/tab][tab name="内容加密"]handsome主题提供丰富多样的加密方式助力表达。全站加密，私密的只有空间。单独加密某个分类。某篇文章加密。功能介绍全站加密设置密码后，全站前台所有页面访问需要输入密码分类加密设置密码后，当前分类的文章均需要输入密码才可以访问，还支持对该分类的指定日期范围进行加密文章加密支持对单篇文章进行加密文章部分内容登录可见有些比较私密的内容，可以让文章的部分内容需要登录才可以阅读文章部分内容评论可见不想被白嫖，留下个评论再走吧评论隐私评论进评论者和登录用户可见，适用于涉及到评论者隐私的一些信息评论[/tab][tab name="书写和排版"]handsome主题首次将vditor 现代化markdown编辑器移植入typecho博客，完美支持附件上传和主题的相应功能，让图片上传、文字写作变得更加舒畅。功能介绍支持文章格式复制好的文章想要转载，直接复制能够保持与原文章的格式一致剪切板中包含图片自动上传转载一篇别人的文章，但同时也想将图片上传到自己服务器，现在一切自动进行复制图片上传ctrl+c ctrl+v 完成文章中提供了多达近20种的短代码，提高文本排版体验，而这一切都可以在编辑器种可视化编辑。[hplayer media="netease" id="483983380" type="song" size="large" /]文章内插入播放器，支持云解析歌曲（网易云、虾米、酷狗、百度音乐）[vplayer url="https://ihewro.github.io/sample_640x360.mp4" /]文章中插入本地视频资源（如.mp4）[vplayer][Video url="https://www.bilibili.com/video/BV1Bi4y1d7if" title="抱歉 Louis C.K.: Sorry (2021) " /][Video url="https://www.bilibili.com/video/BV1RL4y1J7wJ" title="一根弦" /][/vplayer]文章中插入第三方解析视频（或者合集，可以自定义解析地址）[post cid="152" /]文章内插入其他文章的引用（支持大、小两种样式）[collapse status="true" title="收缩框"]这些文字可以默认不展示，点击标题后展开[/collapse][timeline title="2020大事记" type="small" start="梦开始的地方" end="新的一年开始"][item date="2020-1-20"] 武汉封城，疫情让一起变得慌乱起来 [/item][item date="2020-3-20"] 开始远程办公，慢慢有序起来[/item][item color="light"]生活变得好起来了[/item][item date="2020-10-1"] 国庆节去哈尔滨旅行，和老同学见面[/item][/timeline]时间线[goal title="2021的小目标"][item check="true"] 每天早睡 [/item][item check="false"] 每天早起 [/item][item progress="50%"] 阅读10本书 [/item][item start="2021-01-02" end="2022-10-1"] 每天锻炼30分钟 [/item][/goal]计划表[link][item name="百度一些" link="http://baidu.com" desc="百度一下你就知道" /][item name="网站名称" link="http://example.com" desc="一些链接描述" /][/link]链接卡片[column][block] [scode type="share" size="small"]前端/客户端/后台开发[/scode]web 站点iOS / Android开发 / 微信小程序后台管理系统 / 爬虫[/block][block] [scode type="blue" size="small"]语言[/scode]Python/php/JavaScriptJava/Scalac++/c[/block][/column]分栏显示[scode type="share"]这里编辑标签内容[/scode][scode type="yellow" size="simple"]这里编辑标签内容，但是不显示图标[/scode][scode type="red" size="small"]这里编辑标签内容，不显示图标并且边距更小，适合文字背景[/scode]高亮引用（具有5种不同图标及其颜色）[/tab][tab name="自定义与美化"]喜欢变化，不拘泥于已有的设置，handsome后台设置让一切变得更简单。handsome用户提供的丰富教程均在用户社区：[button color="success" icon="glyphicon glyphicon-send" url="https://handsome.ihewro.com/user.html"]handsome用户社区[/button]详细的安装和使用文档：[button color="success" icon="glyphicon glyphicon-file" url="https://handsome.ihewro.com"]handsome主题安装与使用说明文档[/button][/tab][tab name="特色功能"]ajax搜索，高亮显示搜索词语音视频播放器功能介绍内置音乐播放器主题内置顶部全局播放器（切换页面不会中断）和文章内插入播放器，为文章添加更多色彩。播放器支持网易云、QQ音乐、虾米音乐、百度音乐的云解析。内置视频播放器很多博主是生活博主，希望能在播放上展示一些生活视频。主题内置视频播放器，但只支持播放.mp4. .avi .mkv等视频文件后缀的地址。相册分类图表统计你可以通过图表清晰查看近10个月的博客动态情况以及博客文章、分类、标签的数量信息。[/tab][tab name="其他功能"]大部分的功能，主题都已经内置，并提供使用开关，减少了寻找插件适配的麻烦。让你专注于创造而不被其他琐事打扰。handsome 从发布已经提交了800+次记录，用户的反馈让handsome能够做的更好。功能介绍文章目录树让文章结构更加清晰，支持电脑和手机屏幕尺寸代码高亮适用于有展示代码需求的用户mathjax公式支持适用于与数学公式相关的用户图片灯箱图片弹窗，放大、下载图片更加方便图片延迟加载延迟加载文章和博客中的图片文章置顶将自己的某几篇文章置顶显示支持cdn、镜像空间加速支持镜像空间自动替换文章中的图片、静态资源地址为你的静态空间的地址支持cdn图片缩略图自动处理大小如果你的cdn支持图片处理，可以使用主题开关以便对文章、首页的图片进行自动大小的缩放，以便更加的节省用户的流量和提升速度、流畅性文本排版增强文章中可以插入按钮，可以引用其他的文章以文章块的方式显示，文章中可以插入伸缩框、tab框、视频、音乐、高亮引用、标签、相册文章截图一个按钮自动生成文章的分享卡片，简单好看。平滑滚动让你的鼠标滚动更流畅相册模块简单创建方式，支持外链和站内链接图片豆瓣清单时光机文章归档留言板友情链接github项目让网站模块更丰富头图丰富自定义文章想不想配图都可以，简单发送一篇生活日记亦或是正式发布精美排版的文章一切由你决定外链自动识别外链自动增加小图标，新窗口打开，本站链接则pjax无刷新打开无需首页渲染的资源都会动态化加载代码高亮以及mathjax都只在文章页面动态加载js，表情和打赏模块的图片都只会在用户点击的时候才会加载图片，尽可能减少请求数目，加快访问速度本地缓存功能基于service work技术实现游客浏览器级别的缓存，在第一次打开博客后，会自动的缓存博客的js和css，后续的访问只会拉去少量的资源，让访问速度达到极致强大的使用文档从安装到使用，常见问题到功能介绍，主题的99%问题都可以从这里获取到答案更强大的后台设置初次使用，完成外观设置和初级设置配置即可开始使用 ；想要更自由的配置，试试高级设置中的增强功能，开发者也能有用武之地； 无需了解、修改代码，使用鼠标进行选择、取消即可配置自己的博客用户社区由handsome用户友情提供自定义美化教程，你的博客可以更不一样工单系统类似邮件的问题解决平台，同时也支持QQ在线方式还有更多……支持填写备案号、统计代码, 添加自定义css、html、js， pjax动画设置，更多细节等你体验[/tab][/tabs]主题购买方案售价个人使用88元/人[tabs][tab name="购买方式" active="true"][scode type="lblue"]谢绝议价，加好友请注明「购买 handsome 主题」[/scode][collapse title="购买前务必点击此处查看购买须知" active="true" color="red" font-weight="bold" status="false"]handsome 作为我的业余项目，购买即表示您理解以下规则，否则请勿打扰，感谢支持与理解：购买前：不支持退款：因为主题为虚拟商品，在购买获源码后不支持任何理由的退款，麻烦阅读主题介绍页面的功能说明后再考虑是否购买，可以购买前咨询主题上手：主题的配置不需要修改代码，但需要一定的文档阅读能力，如果不愿意看文档，请勿购买使用范围：typecho主题，支持typecho1.0、1.1、1.2版本。不适用于WordPress,支持MySQL、sqlite、Pgsql数据库，支持Apache，nginx服务器，支持PHP5.6~php8.0版本。主题有域名授权机制，默认可以自助授权一个域名，如果是自己站点，可以自助修改（无需我操作），如果是自己其它站点需要授权（自己使用），可以联系我手动添加（无需任何二次付费），支持授权外网和内网（局域网）ip、域名主题自用随意修改，请勿基于handsome 迁移/移植到到其它系统/平台，否则请勿购买购买后：售后内容：主题售后负责与主题设置相关的问题，不负责任何与服务器配置、typecho安装有关的售后提问售后响应：因为不是机器人，也不是专职来进行售后，因此可能无法立刻回复。我会在空闲时间回复您，您可以优先查看使用文档，节省彼此的时间，99%的问题都有写到。如果文档中没有查到，可以尽量多描述遇到的问题细节和截图发给我，看到后会回复的，通常会在以小时单位内回复，如果没有回复，麻烦再次提醒我一下提供免费的升级更新服务：handsome目前仍然在更新周期当中，更新周期不固定，如果有空就会多更新，具体更新内容可以参考文末的更新日志不支持个性化定制服务：您可以提出您的任何建议和想法，但会综合考虑各种因素，不保证会采用，请谅解。总结：购买后你将获得：88元 = handsome主题 + 配套插件 + 免费的后续更新 + 基础的售后服务（主题相关）感谢！[post cid="1189" cover="" size="small" /][/collapse][scode type="green" size="simple"]购买流程：先直接扫描购买方式中的二维码或者通过转账方式支付费用（如果有问题可以售前咨询），付款时备注一下联系方式QQ然后通过下面的联系方式联系我（备注一下「购买 handsome 主题」），看到后会立即响应申请和处理，通过QQ发送给你主题的相关文件[button size="xs" color="info" icon="fontello fontello-gratipay" url="hd_ui.message({title:'QQ申请',message:'QQ号 3323935172 已复制到剪切板，可以在QQ中搜索并添加',type:'info',time:'100000',});if(navigator.clipboard){navigator.clipboard.writeText('3323935172');}"]QQ( 3323935172 )咨询购买（推荐） [/button][button size="xs" color="success" icon="glyphicon glyphicon-send" url="mailto:me@ihewro.com"]me#ihewro.com[/button]享受主题售后服务（包含主题设置相关的问题）[/scode][scode type="green" size="simple"]购买方式：微信/支付宝/QQ： 可以，但不推荐使用微信支付 （推荐使用支付宝支付，支付宝支持花呗支付）扫描二维码付费，点击可放大清晰版paypal 支付方式，美元汇率问题请点击链接查看。[/scode][/tab][/tabs]使用文档[tabs][tab name="使用文档" color="red" font-weight="bold" active="true"][button color="success" icon="glyphicon glyphicon-file" url="https://handsome.ihewro.com"]handsome主题安装与使用说明文档[/button]帮助文档内提到的内容将不予回复。非主题相关问题以及自定义功能修改的问题请在交流群中讨论[/tab][tab name="更新日志"]由于篇幅原因，只显示最近一条日志，详细日志请参阅 handsome主题更新日志[collapse title="更新日志" status="false"][scode type="green"]2025-03-23 更新至10.1.0[/scode]新增增加 首页左侧边栏 mini 头像样式 （需要在开发者高级设置-"smaller_avatar"）增加开发者高级设置配置填写错误的错误检查机制修复修复微信公众号无法发送时光机修复文章引用未在文章末尾显示引用列表和反向链接链接修复搜索弹窗中时光机类别无法搜索修复独立页面中的前台快速编辑功能修复文章每保存一次搜索缓存就增加了一条，没有去重（历史问题）修复php 7.2版本安装后的报错问题修复全局加密问题修复时光机友好时间格式问题可能出现“-1年前”的问题修复时光机可能在首页同时出现两个位置的问题[scode type="green"]2025-01-29 更新至10.0.0[/scode]新增支持 typecho 1.3 alpha版本 （不建议目前阶段使用 typecho1.3，可能存在其他未知bug，以及后续alpha版本中可能存在其他未兼容点）sqlite使用时光机标签页的问题可以按照该方法修改typecho代码兼容（临时解法）,暂未发现未兼容sqlite的功能新增春色绿、夏日蓝、秋叶黄、冬意雪、樱桃粉五款新色调（后续色调细节会继续调整，暂时放出预览版本）（配置项：外观设置界面——外观设置——主题色调选择）支持博客前台文章快速编辑能力，简单的错字可以更简单的修改了（登录后在文章标题右侧有一个“笔🖊️”的图标）文章支持引用和反向链接：文章中使用 [post 短代码引用另一篇文章即可。建立引用后，会在引用文章和被引用文章的下方显示对应的引用列表和反向链接列表。时光机增加 @ 引用历史说说的功能：时光机页面的编辑器输入 @即可体验。时光机增加「私密」、「未分类」两个固定标签，用于筛选特定内容时光机增加「专注」按钮：开启后只显示输入框，避免其他内容对思路的干扰增加「盾牌」标识：文章中的文章引用、搜索结果列表、文章页面标题增加对该文章的权限说明，避免因为错误设置权限导致错误被其他看到的问题。首页时光机位置增加配置：支持在顶栏（默认）、首页右侧边栏两种位置（外观设置界面——时光机配置——时光机入口默认位置）优化优化阅读模式的逻辑实现，性能更佳文章中引用的文章显示的摘要支持显示自定义的摘要内容优化文章文本内容的文字大小、颜色以便更易读独立页面搜索页面、归档页面、友情链接等页面标题增加icon图标时光机中输入内容未提交前关闭或刷新页面增加提示文章中插入small 大小的文章卡片增加悬浮卡片用于显示文章部分内容博客右侧侧边栏的文章随机小头图更换了一批新的图标优化Pjax请求，减少pjax无用的内容获取，优化性能优化不同分辨率下盒子模式的宽度、头图高度等样式修复修复左侧边栏拖拽时候的样式问题修复时光机标签选中后，对应的说说下的评论不显示的问题[/collapse][/tab][/tabs]