[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-8078":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":30,"discoverSource":31},8078,"trestle","TrestleAdmin\u002Ftrestle","TrestleAdmin","A modern, responsive admin framework for Ruby on Rails","https:\u002F\u002Ftrestle.io",null,"Ruby",1996,175,51,114,0,2,19.74,"GNU Lesser General Public License v3.0",false,"main",true,[24,25,26],"admin-dashboard","rails","ruby","2026-06-12 02:01:48","\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle\">\n    \u003Cimg src=\"https:\u002F\u002Favatars3.githubusercontent.com\u002Fu\u002F29348992?v=3&s=200\" alt=\"Trestle Logo\" width=\"60\" align=\"right\" \u002F>\n\u003C\u002Fa>\n\n# Trestle\n\n[![RubyGem](https:\u002F\u002Fimg.shields.io\u002Fgem\u002Fv\u002Ftrestle?include_prereleases&color=%234d6bb2)](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle)\n[![Build Status](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FTrestleAdmin\u002Ftrestle\u002Frspec.yml?style=flat)](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle\u002Factions)\n[![Coveralls](https:\u002F\u002Fimg.shields.io\u002Fcoveralls\u002FTrestleAdmin\u002Ftrestle.svg?style=flat)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002FTrestleAdmin\u002Ftrestle)\n[![Code Climate](https:\u002F\u002Fapi.codeclimate.com\u002Fv1\u002Fbadges\u002Fc529a7a9c500ed81baed\u002Fmaintainability)](https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002FTrestleAdmin\u002Ftrestle)\n\n[Demo Site](https:\u002F\u002Fdemo.trestle.io) | [Demo Source Code](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002FRailsFlixDemo)\n\n> A modern, responsive admin framework for Ruby on Rails\n\n![Trestle-Screenshot-1](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle\u002Fassets\u002F7600\u002F5fb3265b-bc34-4fc9-8a96-2977db8571a1)|![Trestle-Screenshot-2](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle\u002Fassets\u002F7600\u002Fc6ff3af6-4f6f-4978-9a81-79060ae5f33c)\n|:-:|:-:|\n\n\n## Getting Started\n\nTo start using Trestle, first add it to your application's Gemfile:\n\n```ruby\ngem 'trestle'\n```\n\nRun `bundle install`, and then run the install generator to create the initial configuration file and customization hooks:\n\n    $ rails generate trestle:install\n\nThen create your first admin resource (assuming you have an existing `Article` model):\n\n    $ rails generate trestle:resource Article\n\nAfter restarting your Rails server, visit http:\u002F\u002Flocalhost:3000\u002Fadmin to view your newly created admin. You will find the admin definition in `app\u002Fadmin\u002Farticles_admin.rb` ready to customize.\n\n\n## Example\n\n```ruby\nTrestle.resource(:posts) do\n  # Add a link to this admin in the main navigation\n  menu do\n    group :blog_management, priority: :first do\n      item :posts, icon: \"fa fa-file-text-o\"\n    end\n  end\n\n  # Define custom scopes for the index view\n  scopes do\n    scope :all, default: true\n    scope :published\n    scope :drafts, -> { Post.unpublished }\n  end\n\n  # Define the index view table listing\n  table do\n    column :title, link: true\n    column :author, ->(post) { post.author.name }\n    column :published, align: :center do |post|\n      status_tag(icon(\"fa fa-check\"), :success) if post.published?\n    end\n    column :updated_at, header: \"Last Updated\", align: :center\n    actions\n  end\n\n  # Define the form structure for the new & edit actions\n  form do\n    # Organize fields into tabs and sidebars\n    tab :post do\n      text_field :title\n\n      # Define custom form fields for easy re-use\n      editor :body\n    end\n\n    tab :metadata do\n      # Layout fields based on a 12-column grid\n      row do\n        col(sm: 6) { select :author, User.all }\n        col(sm: 6) { tag_select :tags }\n      end\n    end\n\n    sidebar do\n      # Render a custom partial: app\u002Fviews\u002Fadmin\u002Fposts\u002F_sidebar.html.erb\n      render \"sidebar\"\n    end\n  end\nend\n```\n\n\n## Plugins\n\nThe following plugins are currently available:\n\n| Name | Description | Links |\n| --- | --- | --- |\n| *trestle-auth* | User authentication plugin | [GitHub](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle-auth) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-auth) |\n| *trestle-search* | Search plugin | [GitHub](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle-search) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-search) |\n| *trestle-tinymce* | [TinyMCE](https:\u002F\u002Fwww.tinymce.com\u002F) (WYSIWYG editor) integration | [GitHub](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle-tinymce) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-tinymce) |\n| *trestle-simplemde* | [SimpleMDE](https:\u002F\u002Fsimplemde.com\u002F) (Markdown editor) integration | [GitHub](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle-simplemde) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-simplemde) |\n| *trestle-sidekiq* | [Sidekiq](http:\u002F\u002Fsidekiq.org\u002F) integration | [GitHub](https:\u002F\u002Fgithub.com\u002FTrestleAdmin\u002Ftrestle-sidekiq) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-sidekiq) |\n| *trestle-active_storage* | [Active Storage](https:\u002F\u002Fguides.rubyonrails.org\u002Factive_storage_overview.html) integration | [GitHub](https:\u002F\u002Fgithub.com\u002Frichardvenneman\u002Ftrestle-active_storage) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-active_storage) |\n| *trestle-mobility* | [Mobility](https:\u002F\u002Fgithub.com\u002Fshioyama\u002Fmobility) integration | [GitHub](https:\u002F\u002Fgithub.com\u002Frichardvenneman\u002Ftrestle-mobility) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-mobility) |\n| *trestle-omniauth* | OmniAuth authentication plugin | [GitHub](https:\u002F\u002Fgithub.com\u002Fairhorns\u002Ftrestle-omniauth) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-omniauth) |\n| *trestle-auth-otp* | 2FA\u002FOTP user authentication | [GitHub](https:\u002F\u002Fgithub.com\u002FMcRipper\u002Ftrestle-auth-otp) \\| [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Ftrestle-auth-otp) |\n\n\n## Development\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md) for information on developing and contributing to Trestle.\n\n\n## License\n\nThe gem is available as open source under the terms of the [LGPLv3 License](https:\u002F\u002Fopensource.org\u002Flicenses\u002FLGPL-3.0).\n","Trestle 是一个为 Ruby on Rails 应用程序设计的现代响应式管理框架。它提供了直观且高度可定制的后台管理系统，支持快速创建和管理资源。其核心功能包括基于角色的访问控制、自定义表单和视图布局以及强大的导航菜单系统。Trestle 采用简洁的 DSL（领域特定语言）来定义资源及其行为，使得开发者能够以最少的代码实现复杂的功能。此外，该框架还内置了多种实用工具，如数据过滤器、排序选项及分页等，进一步提升了用户体验。适用于需要构建高效、美观且易于维护的后台管理界面的各种 Rails 项目中。","2026-06-11 03:15:58","top_language"]