导航

内容来源于网络

前言

分享Github开源项目,在玩的过程中学习,2023年每天的目标就是研究几个项目,寻找点乐趣。

开源项目

001.discourse

Ruby 语言写的论坛,百分之百开源、免费。

002.mastodon

基于 Ruby 语言的社交网站服务器端所有的源代码,通过这个项目,你可以自己部署一个属于自己的社交网站

003.snibox

代码片段管理器。支持各种编程语言的代码片段、Markdown、纯文本。在线示例

004.hacker101

(英文)一个免费的 Web安全课程。无论你是一个程序员、对 bug 悬赏感兴趣,或是一个经验丰富的安全专业人员,在 HACKE101 课程中都可以学到东西。包涵大量示例代码和在线 Demo。

005.githubchart-api

根据 GitHub 账号的贡献记录生成对应图像。一行代码,可以在任何网站展示自己在 GitHub 上的贡献活跃图标。

示例代码:

1
<img src="https://ghchart.rshah.org/409ba5/2016rshah" alt="2016rshah's Blue Github Chart" />

006.guides

Ruby 编程风格指南。统一的格式风格有利于代码的维护和迭代,对于 Ruby 使用者而言帮助极大

007.jekyll

强大的静态博客网站生成工具。无需数据库,可以通过 Markdown 和 Config 轻松生成一个静态博客。该项目十分成熟、社区活跃、拥有多种主题可供选择。最后可以通过 GitHub Page 把生成的博客免费部署上线。

快速开始:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo apt-get install ruby-full build-essential zlib1g-dev //Step 1

echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc //Step 2
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

gem install jekyll bundler //Step 3

jekyll new myblog //Step 4

cd myblog //Step 5

bundle exec jekyll serve //Step 6

//Browse to http://localhost:4000 //Step 7
008.rubocop

一个 Ruby 静态代码分析器和代码格式化程序。开箱即用,强制执行社区 Ruby 样式指南中列出的许多指导原则。RuboCop 非常灵活,大多数行为都可以通过各种配置选项进行调整。除了报告代码中的问题外,还可以自动为您解决一些问题。使用最广、效率超高的 Ruby 静态代码检测工具。

示例代码:

1
2
3
gem install rubocop
cd my/cool/ruby/project
rubocop
009.shift

一个 Ruby 语言写的在线 MySQL 数据库迁移工具

010.overcommit

一款可配置的 git hook 管理工具。git hook 是 git 的强大功能,当触发某一个 git 的事件,例如:add、commit、push 等操作时,会触发执行对应事件的附加操作(hook)。可以用来检测代码质量、commit 描述风格、控制代码质量等。overcommit 就是能让你不写一行代码(配置不算代码),来自定义 hook 要执行的操作。它使用简单、文档详尽、例子众多、社区活跃,值得一试

011.rest-client

一个 Ruby 的 HTTP 客户端库。已经有累计 10 万人在使用,该库使用方便、API 设计优雅、支持常用的 HTTP 方法、文件下载、设置代理等。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'rest-client'

RestClient.get 'http://example.com/resource'

RestClient.get 'http://example.com/resource', {params: {id: 50, 'foo' => 'bar'}}

RestClient.get 'https://user:password@example.com/private/resource', {accept: :json}

RestClient.post 'http://example.com/resource', {param1: 'one', nested: {param2: 'two'}}

RestClient.post "http://example.com/resource", {'x' => 1}.to_json, {content_type: :json, accept: :json}

RestClient.delete 'http://example.com/resource'

>> response = RestClient.get 'http://example.com/resource'
=> <RestClient::Response 200 "<!doctype h...">
>> response.code
=> 200
>> response.cookies
=> {"Foo"=>"BAR", "QUUX"=>"QUUUUX"}
>> response.headers
=> {:content_type=>"text/html; charset=utf-8", :cache_control=>"private" ... }
>> response.body
=> "<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n ..."

RestClient.post( url,
{
:transfer => {
:path => '/foo/bar',
:owner => 'that_guy',
:group => 'those_guys'
},
:upload => {
:file => File.new(path, 'rb')
}
})
012.pghero

Postgres 性能监控服务。让你对 pg 数据库的性能了如指掌

013.ruby-pinyin

可以把汉字转化为对应的拼音的库,同时能够较好的处理多音字的情况。

正确处理多音字,示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# encoding: utf-8
require 'ruby-pinyin'

# return ['jie', 'cao']
PinYin.of_string('节操')

# return ['jie2', 'cao1']
PinYin.of_string('节操', true)
PinYin.of_string('节操', :ascii)

# return ["jié", "cāo"]
PinYin.of_string('节操', :unicode)

# 正确处理多音字: return ["nán", "jīng", "shì", "cháng", "jiāng", "dà", "qiáo"]
PinYin.of_string('南京市长江大桥', :unicode)

# return %w(gan xie party gan xie guo jia)
PinYin.of_string('感谢party感谢guo jia')

# return 'gan-xie-party-gan-xie-guo-jia'
PinYin.permlink('感谢party感谢guo jia')

# return 'gxpartygxguojia'
PinYin.abbr('感谢party感谢guo jia')

# return 'gan xie party, gan xie guo jia!'
# PinYin.sentence保留标点符号, 同时用对应英文标点代替中文标点
PinYin.sentence('感谢party, 感谢guo家!')

# override readings with your own data file
PinYin.override_files = [File.expand_path('../my.dat', __FILE__)]
014.huginn

基于 Ruby 开发的自动化处理任务工具。可以监控事物然后根据编写好的逻辑进行处理(IFTTT),比如:监控天气然后通过微信提醒你带伞、追的小说或者动漫更新通知、聚合信息发送等。它框架稳定、生态活跃,有了它从而让你的生活更加有效率,快去试试吧

015.pagy

特别快的 Ruby 分页库。具有效率高、易用、自定义等特性,只需要少量代码就可实现分页。还有丰富文档可够参考,如果你要在 Ruby 程序中实现分页又不想自己费神,那就快试试这个吧

~ 35x Simpler!

016.astuto

一个免费、开源的 Ruby 自托管客户反馈平台。它可以帮助您收集、管理用户的反馈并设置其优先级。客户反馈是大部分网站不可或缺的功能,使用 astuto 能够十分快速的给你的网站加上此功能

017.homeland

开源免费、不限制商业使用的社区网站系统

018.spree

基于 Ruby on Rails 实现的大而全的电子商城开源项目。功能齐全项目结构清晰:

  • spree_api:REST API 接口
  • spree_frontend:移动优先,可自定义的店面
  • spree_backend:功能丰富的管理面板
  • spree_cmd:开发人员的命令行工具
  • spree_core:数据层、服务和邮件、基本组件

019.fastlane

一款专为 iOS 和 Android 开发者提供自动化构建的工具。它上手简单使用方便,能够帮助开发者自动完成 App 打包、签名、测试、发布、提交到 App Store、Google Play 等工作,实现一条命令发布应用

1
2
3
4
5
6
7
8
9
10
11
12
lane :beta do
increment_build_number
build_app
upload_to_testflight
end

lane :release do
capture_screenshots
build_app
upload_to_app_store # Upload the screenshots and the binary to iTunes
slack # Let your team-mates know the new version is live
end

020.forem

用来构建社区的 Ruby 开源项目。一款开源、现成的论坛项目,能够让你快速搭建起来一个社区平台。国外知名的程序员社区 dev 用的就是它

021.gollum

基于 Git 的轻量级 wiki 系统。后端采用 Ruby 编写,然后 Git 作为文件存储的 wiki 系统。功能够用部署简单,但界面比较“简朴”。

快速开始:

1
2
3
4
5
git clone https://github.com/gollum/gollum
cd gollum
[sudo] bundle install
bundle exec bin/gollum
Open http://localhost:4567 in your browser.

022.lobsters

lobste.rs 网站的源码。采用 Rails 开发的网站,类似 Hacker News 以分享链接和讨论为核心。可用来二次开发类似的网站

023.solidus

开源的简约电商平台。基于 Ruby on Rails 构建的电商平台,界面清爽代码完全开源。在线尝试

024.linguist

GitHub 官方开源的识别项目编程语言的库。该项目是 GitHub.com 网站上,用于检测开源项目编程语言占比的库。

1
2
3
4
5
6
7
8
9
10
11
// Install
gem install github-linguist
// Run Command
github-linguist
// Below is Result
66.84% 264519 Ruby
24.68% 97685 C
6.57% 25999 Go
1.29% 5098 Lex
0.32% 1257 Shell
0.31% 1212 Dockerfile

025.wpscan

一款 WordPress 安全扫描工具。该项目可用于发现 WordPress 构建的网站存在的安全隐患,扫描项包括 WordPress 漏洞、已安装的插件和主题、弱密码等。

持续更新中…