公告
欢迎 点击分享 自荐或发现的开源项目,也可安装 分享插件 更便捷地推荐有趣的开源项目。
小伙伴们,新的一年就要来了,今年的 Bug 改完了吗?先看看《HelloGitHub》最新一期月刊压压惊,再改吧😁
《HelloGitHub》第 33 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

简介
分享 GitHub 上有趣、入门级的开源项目。
这是一个面向编程新手、热爱编程、对开源社区感兴趣人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。
- 会编程的可以贡献代码
- 不会编程的可以反馈使用这些工具中的 Bug
- 帮着宣传你觉得优秀的项目
- Star 项目⭐️
在浏览、参与这些项目的过程中,你将学习到更多编程知识、提高编程技巧、找到编程的乐趣。
🎉 最后 HelloGitHub 这个项目就诞生了 🎉
以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容
C 项目
1、json-tutorial:由Milo Yip发起的用 C 从零开始编写 JSON 库教程。大纲:
- 启程:编译环境、JSON 简介、测试驱动、解析器主要函数及各数据结构。
- 解析数字:JSON number 的语法
- 解析字符串:使用 union 存储 variant、自动扩展的堆栈、JSON string 的语法、valgrind
- Unicode:Unicode 和 UTF-8 的基本知识、JSON string 的 unicode 处理
- 解析数组:JSON array 的语法
- 解析对象:JSON object 的语法、重构 string 解析函数
- 生成器:JSON 生成过程、注意事项。练习完成 JSON 生成器
- 访问与其他功能:JSON array/object 的访问及修改
C++ 项目
2、LeetCodeAnimation:用动画的形式呈现解 LeetCode 题目的思路
CSS 项目
3、lit:仅 395 字节的响应式 CSS 框架
Go 项目
4、yeetgif:一个命令行工具,用来组合、生成表情的 gif 动图。支持多种模式:旋转、抖动、鬼畜等,可以组合出很魔性的表情

5、ptt-daily-beauty:每晚 11 点会自动发送 PTT 论坛(台湾最大论坛) Beauty 板块前 3 名的小姐姐图片。点击订阅

6、q:Golang debug 库,自动打印变量类型并且格式化输出

7、tldr:Golang tldr 客户端。对比之前推荐过的 Python 版本客户端,Golang 版本速度更快、交互友好、且支持选择搜索结果的展示样式。每当你想要用 tar 解压缩,但是记不住具体参数的时候,tldr 可以拯救世界

Java 项目
8、xLog:简单、美观、强大、可扩展的 Android 和 Java 日志库,可同时在多个通道打印日志,如 Logcat、Console 和文件。功能:
- 全局配置(TAG,各种格式化器...)或基于单条日志的配置
- 支持打印任意对象以及可自定义的对象格式化器
- 支持打印无限长的日志(没有 4K 字符的限制)
- XML 和 JSON 格式化输出
- 等等

9、AndroidWM:一个轻量级的开源 Android 图片水印框架,支持文字水印和图像水印,以及不同的水印样式、位置等。同时可以支持 LSB 空间域隐形数字水印的加载和频域数字水印的加载和检测,适合客户端图片水印添加,移动端图像处理等

JavaScript 项目
10、better-onetab:实用的管理浏览器多标签页面的工具,目前支持 Chrome 以及 FireFox 的扩展。支持标签页储存和标签页分组等功能

11、lint-md:用于检查中文 markdown 编写格式规范的命令行工具。方便集成 CI,支持 API 方法调用。对于矫正 markdown 编写格式来说是一个很好的检查工具,基于 AST 的格式规范检测的代码也可以借鉴和学习

12、js2image:将源代码压缩成圣诞树的样子,使用此项目压缩生产环境代码后请注意测试。有兴趣的小伙伴可以尝试扩展出压缩成其它样子,很有意思

13、swc:基于 Rust 开发的 Babel 替代品,速度更快,值得关注
Objective-C 项目
14、iSH:在 iOS 上跑 Linux shell,可以通过 linux 命令操作你的 iOS 设备

15、Nudeln:基于 UITextView 书写风格类似于 masonry 的 iOS 端富文本控件。它采用声明式(链式)方法定义富文本控件,与编程式的相比它所需的代码量更短、更直观和易用。示例代码:
#import "NudeIn.h" /// 声明控件为你的成员变量 @property (nonatomic,strong) NudeIn *attrLabel; /// Do it yourself _attrLabel = [NudeIn make:^(NUDTextMaker *make) { make.text(@"this is a ").font(14).color([UIColor blackColor]).attach(); make.text(@"BlueLink").font(17).color([
