如何在rebol VID中创建可点击的链接?
假设我想创建一个列出推文的 Twitter 客户端。如何在文本区域中创建和检测可点击链接?
更新:我的意思是在 rebol VID 中
Let's say I want to create a twitter client which list tweets. How would I create and detect a clickable link within a text zone ?
Update: I mean in rebol VID
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个检测
face/text
中的 URL 并覆盖超链接的脚本:http://www.ross-gill.com/r/link-up.html它基于下面文章中的模式,因此您可能需要根据您的规范调整识别模式。链接通过
to-link
函数传递,默认情况下与to-url
相同This is a script that detects URLs in
face/text
and overlays hyperlinks: http://www.ross-gill.com/r/link-up.htmlIt's based on the pattern in the article below, so you may need to adapt the recognition pattern to your specifications. The links are passed through a
to-link
function which by default is the same asto-url
原则上,您希望:
REBOL.org 使用与以下代码非常相似的代码来执行此操作。请注意,实现包含三个元素:
简单地将 URL 包装在锚标记中的外部函数
<前><代码>;; =======================================
;;定义由提供
;;安德鲁·马丁,2004 年 6 月 15 日
;; ....并非所有内容都需要用于定位 URL ...所以
;;随意删除不必要的物品
八位字节:字符集 [#"^(00)" - #"^(FF)"]
数字:字符集“0123456789”
数字:[一些数字]
上:字符集 [#"A" - #"Z"]
下:字符集 [#"a" - #"z"]
Alpha:联合上下
Alpha:[一些Alpha]
AlphaDigit:联合 Alpha 数字
AlphaDigits:[一些 AlphaDigit]
十六进制:字符集“0123456789ABCDEFabcdef”
字符:联合 AlphaDigit 字符集“-_~+*'”
字符:[一些[字符|逃脱]]
转义:[#"%" 十六进制十六进制]
路径:union AlphaDigit 字符集“-_~+*'/.?=&{}#”
域标签:Chars
域:[域-标签任意 [#"."域标签]]
IP 地址:[数字 #"."数字#“。”数字#“。”数字]
用户:[一些[Char |逃亡| #"."]]
主持人:[域名| IP地址]
电子邮件^:[用户#“@”主机]
网址^:[[“http://”| “ftp://”| “https://”]一些路径]
;;在字符串中定位 URL 的函数
;;并在找到每个时调用操作函数
;; ===========================================
查找 url:func [
字符串[字符串!]
动作-函数 [函数!]
/本地 开始 停止
][
解析/所有字符串[
任何 [
开始:复制 url url^ 停止:(
停止:更改/部分 开始操作-func url 停止
打印开始
)
通过 ;;这取决于动作功能设置作为结束标记
|跳过
]
结尾
]
返回字符串
]
;;动作函数的用法示例
;;用锚标记替换 url 引用
;; =============================================
target-string: {这个字符串中有这个url http://www.test.com/path
还有这个:https://www.test.com/example.php}
查找 url 目标字符串
func [url][打印 url return rejoin [{} url ]]
探测目标字符串
{此字符串具有此 url http://www.test.com/path;在其中
还有这个:https://www.test.com/example.php}
注释
In principle, you want to:
REBOL.org uses code very similar to the code below to do that. Note there are three elements to the implementation:
an external function that simply wraps a URL in an anchor tag
Notes