Home
Hypersport
Cancel

Nokogiri - 解析 HTML5

Nokogiri 使 Ruby 可以调用 Gumbo HTML5 解析器 并返回 Nokogiri::HTML::Document。 ⚠ 仅 v1.12.0 及更高版本支持 HTML5 ⚠ 目前暂不支持 JRuby 用法 解析 HTML5 文档: doc = Nokogiri.HTML5(string) 解析 HTML5 片段: fragment = Noko...

Nokogiri - 解析 HTML XML

解析字符串 html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>") xml_doc = Nokogiri::XML("<root><aliens><alien>&l...

Nokogiri 简介

关于 Nokogiri Nokogiri(鋸)使 Ruby 可以简单轻松地处理 XML 和 HTML。它提供了合理、易懂的 API,用于读写、修改和查询文档。它依赖于 libxml2、libgumbo 和 xerces 等原生解析器,处理速度快且符合标准。 指导原则 Nokogiri 努力遵循的指导原则: 默认情况下,将所有文档视为 不受信任 来确保安全 ...

Ubuntu 使用 rbenv 安装任意版本 Ruby

Ubuntu 使用 apt 包管理器安装的 Ruby 版本较老,可以使用 rbenv 安装最新或其他版本并管理 Ruby 版本。 1. 安装 rbenv sudo apt install rbenv 2. 安装最新的 ruby-build 默认安装的 ruby-build 版本较老,导致只能安装老版本的 Ruby。 卸载默认的老版本 ruby-build sudo...

TFStore

新开发的网站 TFStore。 一个用户浏览、搜索、上传 TestFlight 邀请码的平台,所有邀请码均为用户上传,所有应用均通过 TestFlight 应用程序下载安装。 开发语言:Ruby 开发框架:Ruby on Rails 前端框架:Stimulus 数据库:PostgreSQL 代...

安装 Stimulus

在应用程序中安装 Stimulus,需要添加 @hotwired/stimulus npm 包。或者在 <script type="module"> 标签中导入 stimul.js。 使用 Stimulus for Rails 如果将 Stimulus for Rails 和 import map 一起使用,那么会自动从 app/javascript/controllers ...

Stimulus - 使用外部资源

上一章节介绍了如何使用值加载和保存控制器的内部状态。但是有时候控制器需要跟踪外部资源的状态,这里的外部资源是指任何不在 DOM 或 Stimulus 中的内容。例如,发出 HTTP 请求并在请求状态发生变化时做出响应,或者启动一个计时器,并在控制器断开连接时停止它。 异步加载 HTML Basecamp 初始页面通过加载和插入远程 HTML 片段异步填充的方式保证页面加载速度,并使视图不...

Stimulus - 状态管理

大多数现代框架都鼓励始终在 JavaScript 中保持状态的做法,它们将 DOM 视为只写目标,通过从服务端获得的 JSON 渲染客户端模板。 Stimulus 采用了不同的做法,将应用的状态以属性的方式存在于 DOM 中,控制器本身是无状态的。这种方法使得可以从任何地方(初始文档、Ajax 请求、Turbo 访问,甚至是另一个 JavaScript 库)使用 HTML,并且无需任何显式...

Stimulus - 弹性设计

尽管剪贴板 API 在当前浏览器中得到了很好的支持,但仍然要想到可能有少数人在旧版本的浏览器中使用我们的应用程序。 还应该预想到人们在访问应用程序时时不时地会遇到问题。例如,间歇性的网络连接问题或 CDN 可用性问题都可能会阻止部分或全部 JavaScript 加载。 有些人认为不值得为老版本浏览器提供支持,或者认为间歇性的网络问题在刷新后就会自动解决。但通常情况下,可以以一种优雅的构建...

Stimulus - Building Something Real

在前面的章节中实现了第一个控制器,并了解了 Stimulus 如何将 HTML 连接到 JavaScript,现在通过重新实现 Basecamp 网站上一个的控制器来看一下如何在真实应用中使用 Stimulus。 封装 DOM 剪贴板的 API Basecamp 网站 UI 中的按钮: 当点击按钮的时候,Basecamp 会将文本(例如 URL 或电子邮件地址)复制到剪贴板。 W...