/
267.txt
104 lines (77 loc) · 5.92 KB
/
267.txt
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[8] [[UGC]] 系 [[Webアプリケーション]]、[[MUA]]、
[[HTML]] の [[authoring tool]] など、色々な[[ソフトウェア]]で、
[[平文]]や[[利用者]]の入力文、あるいは [[HTMLメール]]の[[地の文]]などから、
[[URL]] らしき部分を自動的に検出し、これを[[リンク]]として表示する機能が備わっています。
[9] 中には [[URL]] の、あるいは [[HTTP(S) URL]] など一部の [[URL]]
の構文を機械的に[[正規表現]]に変換しただけのような雑な実装もありますが、
実用上十分良好な[[利用者体験]]を提供するためには、
細かな調整が必要となります。
;; [10] 任意の [[URL]] を自動リンク化すると、 [CODE[:]] さえ入っていればほとんどどんな文章でも一部が
[[URL]] ということになってしまいます。
;; [11] [CODE(URI)@en[javascript:]] など、危険な動作を誘引する [[URL scheme]]
もあります。無邪気な実装は[[セキュリティーホール]]となりかねません。
;; [12] 実装の中には、 [[HTML]] の[[文字参照]]への変換と [[URL自動リンク]]の処理順序が不適切であるなど、
他の処理との兼ね合いで異常な動作をしたり、[[セキュリティー]]上の問題をはらんでいたりするものもあります。
[REFS[
- [153] [CITE@en[19313 – More checks for URIs]] ([TIME[2016-03-03 16:30:00 +09:00]] 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=19313>
- [154] [CITE@en[gecko-dev/mozTXTToHTMLConv.cpp at master · mozilla/gecko-dev]] ([TIME[2016-03-03 16:33:01 +09:00]] 版) <https://github.com/mozilla/gecko-dev/blob/master/netwerk/streamconv/converters/mozTXTToHTMLConv.cpp#L481>
-- [155] [CITE[Ben Bucksch - Projects - Mozilla - TXT->HTML Conversion]] ([TIME[2008-09-23 10:39:27 +09:00]] 版) <http://www.bucksch.org/1/projects/mozilla/16507/>
- [29] [CITE@ja[電子メール本文での日本語ドメイン名URL記述ガイド - 日本語.jp]]
([TIME[2015-10-15 22:13:24 +09:00]] 版)
<http://nihongojp.jp/support/mail_guide/writing.html>
- [30] [CITE[日本語ドメイン名URLクリック対応アプリケーション開発者ガイド ~メーラー編~]]
([TIME[2007-01-29 16:06:18 +09:00]] 版)
<http://nihongojp.jp/support/mail_guide/dev_guide.txt>
- [72] [CITE[Linkification of URLs - Google ドキュメント]]
( ([TIME[2014-05-24 03:35:02 +09:00]] 版))
<https://docs.google.com/document/d/1h9yPmUScIGt9gEquLjgf739GfEy8QJ6WG_hsc-OTkBU/edit?pli=1>
]REFS]
[FIG(quote)[
[FIGCAPTION[
[1] [CITE[Latest topics > Text LinkとLinkification - outsider reflex]]
([[YUKI "Piro" Hiroshi]] 著, [TIME[2016-03-03 16:56:45 +09:00]] 版)
<http://piro.sakura.ne.jp/latest/blosxom/mozilla/extension/2006-03-10_textlink.htm>
]FIGCAPTION]
> 「http://www.<em>mozilla</em>.org/」みたいに複数のテキストノードに分割されたURIも認識できる。
> 某新聞社のサイトのように「http://piro.sakura.ne.jp/」ってな全角文字で書かれたURIも認識できる。
> 2chでよくある「ttp://」で始まるURIも認識できる。ていうか最初はこれが目的だったんだよね……
]FIG]
[2] 「This is great: https://example.com/great.html. Thanks!」 の最後の「.」は
[[URL]] の一部ではなく[[英文]]の一部と解釈する必要があります。
[3] とすると「See www.example.com.」も [CODE[www.example.com.]] を表すのではなさそうです。
[4] 「See https://example.com/great.html, please.」 の「,」は
[[URL]] の一部ではなく[[英文]]の一部と解釈する必要があります。
[5] 「https://example.com/page[CODE(char)[U+3000]]です」は、
[CODE(char)[U+3000]] の前までを [[URL]] と解釈する必要があります。
;; [6] [[GitHub]] はこれを正しく扱えません。 [TIME[2016-08-10T03:43:06.200Z]]
[7] 「... (https://test.test/foo)、...」
で [[GitHub]] は [CODE[)]] のあともずっと [[URL]] の一部とみなします。
[TIME[2016-08-22T14:36:26.700Z]]
[13] [[はてなブックマーク]]の[[ブックマークコメント]]では、 [[URL]] の後に「>」
があると、「>」まで [[URL]] の一部とみなします。 [TIME[2017-01-19T10:27:49.100Z]]
[14] [[掲示板]]の自動リンクで、 [CODE[#!]] のような [CODE[!]] が [[URL]]
の一部と見なされず、その直前までが [[URL]] とみなされることがあります。
[15] [[W3C]] の[[メーリングリスト]]のアーカイブ:
[CITE@en[Re: Breaking the `opener` relationship.]] ([[Mike West]]著, [TIME[2017-04-28 17:10:13 +09:00]]) <https://lists.w3.org/Archives/Public/public-webappsec/2017Apr/0078.html>
は、なぜか
> `WindowProxy`'s `[[GetOwnProperty]]` uses
https://html.spec.whatwg.org/#isplatformobjectsameorigin-(-o-): I'd just
stick with that as a determinant of the properties listed in
https://html.spec.whatwg.org/#crossoriginproperties-(-o-).
を
> `WindowProxy`'s `[[GetOwnProperty]]` uses
<https://html.spec.whatwg.org/#isplatformobjectsameorigin-(-o>-): I'd just
stick with that as a determinant of the properties listed in
<https://html.spec.whatwg.org/#crossoriginproperties-(-o>-).
と解釈します。
[FIG(quote)[
[FIGCAPTION[
[16] [CITE[OPMLファイルやHTML、テキストファイルからの一括登録機能の追加 - はてなアンテナ日記 - 機能変更、お知らせなど]]
([TIME[2017-05-02 08:41:21 +09:00]])
<https://hatena.g.hatena.ne.jp/hatenaantenna/20060905/1157428635>
]FIGCAPTION]
> はてなアンテナで、複数のページを一括で登録する機能を追加しました。OPMLファイルやHTML、またテキストファイルに対応しています。(テキストファイルからはURLと判別できる文字列を抽出します。)
]FIG]
[17] [CITE[GitHub Flavored Markdown Spec]]
([TIME[2017-05-15 12:05:46 +09:00]])
<https://github.github.com/gfm/#autolinks-extension->