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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
---
title: Creating MozSearch plugins
slug: Creating_MozSearch_plugins
tags:
- Search plugins
translation_of: Mozilla/Creating_MozSearch_plugins
---
<p>Firefox 2에서는 검색 플러그 인을 작성하기 위해서 Amazon A9의 OpenSearch포맷을 단순화한 MozSearch를 지원 하고 있습니다. OpenSearch 검색 플러그 인도 물론 지원 되고 있습니다. 자세한 것은 <a class="external" href="http://opensearch.a9.com/">OpenSearch</a> 사이트를 참조해 주세요.</p>
<p>MozSearch 검색 플러그인은 검색 엔진과 URL을 해석하는데 필요한 요소들을 정의한 XML파일입니다.</p>
<div class="note">
<b>주의:</b> MozSearch는 Firefox에서만 지원됩니다. 만약 다른 웹 브라우저 호환이 되는 플러그인을 사용하고 싶다면 표준 OpenSearch 포맷을 사용해야 합니다. 두 포맷은 매우 비슷해서 바꾸는 데 큰 문제는 없습니다.</div>
<h2 id=".ED.94.8C.EB.9F.AC.EA.B7.B8_.EC.9D.B8_.ED.8C.8C.EC.9D.BC" name=".ED.94.8C.EB.9F.AC.EA.B7.B8_.EC.9D.B8_.ED.8C.8C.EC.9D.BC">플러그 인 파일</h2>
<p>검색 엔진을 설명하는 XML파일은 매우 간단하고 기본적인 템플릿입니다. 이탤릭으로 되어 있는 곳은는 쓰고 있는 검색 엔진의 필요에 따라 바꿀 수 있습니다.</p>
<pre class="eval"><SearchPlugin xmlns="<span class="nowiki">http://www.mozilla.org/2006/browser/search/</span>">
<ShortName><i>engineName</i></ShortName>
<Description><i>engineDescription</i></Description>
<InputEncoding><i>inputEncoding</i></InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,<i>imageData</i></Image>
<Url type="text/html" method="<i>method</i>" template="<i>searchURL</i>">
<Param name="<i>paramName1</i>" value="<i>paramName1</i>"/>
...
<Param name="<i>paramNameN</i>" value="<i>paramValueN</i>"/>
</Url>
<Url type="application/x-suggestions+json" template="<i>suggestionURL</i>"/>
<SearchForm><i>searchFormURL</i></SearchForm>
</SearchPlugin>
</pre>
<dl>
<dt>
<b>ShortName</b></dt>
<dd>
검색 엔진에 대한 간단한 이름.</dd>
<dt>
<b>Description</b></dt>
<dd>
검색 엔진에 대한 간단한 설명.</dd>
<dt>
<b>InputEncoding</b></dt>
<dd>
검색 엔진이 데이터 입력에 사용하는 문자 인코딩 방식.</dd>
<dt>
<b>Image</b></dt>
<dd>
검색 엔진을 표시하는 Base-64로 인코딩 된 16x16의 아이콘. 이 코드를 작성하는데 사용할 수 있는 편리한 <a class="external" href="http://software.hixie.ch/utilities/cgi/data/data">The data: URI kitchen</a>을 사용할 수 있습니다.</dd>
<dt>
<b>Url</b></dt>
<dd>
검색에 사용한다 한 개 또는 복수의 URL. <code>method</code> 속성은 결과를 얻기 위해서 code>GET</code>과 <code>POST</code> 요청 어느 쪽을 사용하는지 지정합니다.<code>template</code> 속성은 검색 쿼리의 기본이 되는 URL을 지정합니다.</dd>
</dl>
<dl>
<dd>
당신이 설정할 수 있는 두 가지 URL 형식이 있습니다:</dd>
</dl>
<ul>
<li><code>type="text/html"</code>는 실제 검색 결과 그 자체의 URL을 설정하기 위해서 사용됩니다.</li>
<li><code>type="application/x-suggestions+json"</code>는 검색 키워드 자동 완성 기능에 사용되는 URL을 설정하기 위해서 사용됩니다.</li>
</ul>
<dl>
<dd>
어느 쪽의 URL을 사용하던지 사용자가 검색 플러그인에 입력한 검색 키워드로 <code>{searchTerms}</code>을 사용할 수 있습니다.</dd>
</dl>
<dl>
<dd>
검색 자동완성 기능의 쿼리로 지정된 URL 템플릿은 JSON 형식으로 제공 되어야 합니다. 서버 상에서 검색 자동완성 기능을 개발하는 것에 대해서는 <a href="ko/Supporting_search_suggestions_in_search_plugins">검색 플러그인에서 자동 완성 지원</a>을 참고하십시오.</dd>
</dl>
<p><br>
<img alt="Image:SearchSuggestionSample.png"></p>
<dl>
<dt>
<b>Param</b></dt>
<dd>
검색 쿼리를 통과 시키기 위해 필요한 키값의 페어 파라미터입니다.이 값을 지정하면 사용자가 검색 바에 입력한 검색 어구를 삽입하기 위한 <code>{searchTerms}</code>을 사용할 수 있습니다.</dd>
</dl>
<dl>
<dt>
<b>SearchForm</b></dt>
<dd>
플러그 인 사이트의 검색 페이지를 열기 위한 URL. 이것은 Firefox에 사용자가 직접 웹 사이트를 방문하는 방법을 제공합니다.</dd>
</dl>
<h2 id=".EA.B2.80.EC.83.89_.EC.97.94.EC.A7.84_.EC.9E.90.EB.8F.99_.EC.B0.BE.EA.B8.B0" name=".EA.B2.80.EC.83.89_.EC.97.94.EC.A7.84_.EC.9E.90.EB.8F.99_.EC.B0.BE.EA.B8.B0">검색 엔진 자동 찾기</h2>
<p>검색 플러그 인을 제공하고 있는 웹 사이트는 Firefox 사용자가 플러그 인을 간단하게 다운로드해 인스톨 할 수 있도록 알려 줄 수 있습니다.</p>
<p>자동 찾기를 지원하려면, 웹페이지 <code><HEAD></code> 요소에 아래 내용을 추가하면 됩니다.:</p>
<pre class="eval"><link rel="search" type="application/opensearchdescription+xml" title="<i>searchTitle</i>" href="<i>pluginURL</i>">
</pre>
<p>이탤릭의 항목은 아래에서 설명하고 있습니다.:</p>
<dl>
<dt>
<b>searchTitle</b></dt>
<dd>
"MDC에서 검색" 이나 'Yahoo! 검색"과 같이 실행하는 검색의 이름입니다.이 값은, 플러그 인 파일의 ShortName과 일치시킬 필요가 있습니다.</dd>
</dl>
<dl>
<dt>
<b>pluginURL</b></dt>
<dd>
웹 브라우저가 다운로드할 수 있는 XML 검색 플러그 인의 URL 입니다.</dd>
</dl>
<p>만약 당신의 웹 사이트가 다수의 검색 플러그 인을 제공하고 있다면 모두 자동 찾기를 지원하게 할 수 있습니다.예를 들면:</p>
<pre class="eval"><link rel="search" type="application/opensearchdescription+xml" title="MySite: 저자" href="<a class="external" href="http://www.mysite.com/mysiteauthor.xml" rel="freelink">http://www.mysite.com/mysiteauthor.xml</a>">
<link rel="search" type="application/opensearchdescription+xml" title="MySite: 제목" href="<a class="external" href="http://www.mysite.com/mysitetitle.xml" rel="freelink">http://www.mysite.com/mysitetitle.xml</a>">
</pre>
<p>이 방법으로 당신의 사이트는 저자로서 검색과 타이틀로서 검색을 다른 요소로 플러그 인을 제공할 수 있습니다.</p>
<h2 id=".EC.98.88.EC.A0.9C:__Yahoo.21_.EA.B2.80.EC.83.89" name=".EC.98.88.EC.A0.9C:__Yahoo.21_.EA.B2.80.EC.83.89">예제: Yahoo! 검색</h2>
<p>아래 XML 파일은 Yahoo! 검색을 이용하기 위해 Firefox2에 번들된 검색 플러그인 입니다.</p>
<p> </p>
<pre><SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Yahoo</ShortName>
<Description>Yahoo Search</Description>
<InputEncoding>UTF-8</InputEncoding>
<SuggestionUrl>http://ff.search.yahoo.com/gossip?output=fxjson&command=</SuggestionUrl>
<Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRguUm/fT+UwAAOw==</Image>
<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
<Param name="p" value="{searchTerms}"/>
<Param name="ei" value="UTF-8"/>
<Param name="fr" value="moz2"/>
</Url>
<SearchForm>http://search.yahoo.com/</SearchForm>
</SearchPlugin>
</pre>
<p>만약 사용자가 Yahoo! 검색 엔진 플러그인을 선택해 검색 상자에 'mozilla'라고 입력한 후 엔터키를 누르면 Firefox는 검색 기능을 수행하기 위해 플러그인에서 설명된 방법을 사용합니다.</p>
<pre class="eval"><span class="nowiki">http://search.yahoo.com/search?p=mozilla&ei=UTF-8&fr=moz2</span>
</pre>
<p><br>
만약 사용자가 검색 플러그인의 확대경 아이콘을 클릭하면, 웹 사이트로 이동합니다. 도구 메뉴 웹 검색 옵션을 선택하면, 브라우저는 <code><SearchForm></code>에 <tt><span class="nowiki">http://search.yahoo.com/</span></tt>을 포함 합니다.</p>
<h2 id=".EC.98.88.EC.A0.9C_MDC_.EA.B2.80.EC.83.89" name=".EC.98.88.EC.A0.9C_MDC_.EA.B2.80.EC.83.89">예제 MDC 검색</h2>
<p>이 플러그 인으로 Mozilla Developer Center의 웹 사이트를 간단하게 검색할 수 있습니다.</p>
<pre><SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>MDC</ShortName>
<Description>Mozilla Developer Center search</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz%2F%2Fz8DJQAggJiQOe%2Ffv2fv7Oz8rays%2FN%2BVkfG%2FiYnJfyD%2F1%2BrVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw%2F8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi%2FG%2BQKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo%2BMXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia%2BCuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq%2FvLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg%2FkdypqCg4H8lUIACnQ%2FSOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD%2BaDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D</Image>
<Url type="text/html" method="GET" template="http://developer.mozilla.org/en/docs/Special:Search?search={searchTerms}"/>
<SearchForm>http://developer.mozilla.org/en/docs/Special:Search</SearchForm>
</SearchPlugin>
</pre>
<p><br>
예제에서는 검색 엔진의 파라미터를 정의하기 위해 <code><Param></code>는 아니고 단순하게 템플릿 URL을 사용하고 있는 것에 주의해 주십시오. 이것은 실제로 메소드로서 <code>GET</code>을 사용할 때에 적당한 방법입니다. <code><Param></code>는 <code>POST</code>을 위해 사용해야 합니다.</p>
<p> </p>
<h2 id=".EB.AC.B8.EC.A0.9C_.ED.95.B4.EA.B2.B0_.EB.B0.A9.EB.B2.95" name=".EB.AC.B8.EC.A0.9C_.ED.95.B4.EA.B2.B0_.EB.B0.A9.EB.B2.95">문제 해결 방법</h2>
<p>만약 당신의 검색 플러그 인 XML 파일에 오류가 있으면 Firefox 2에 플러그 인을 추가할 때에 에러를 나타내게 될 것입니다. 에러 메세지는 완전한 것은 아니지만 문제를 찾는 데 도움이 될 것입니다.</p>
<ul>
<li>검색 플러그 인이 정형식well formed 인가 확인해 주십시오. 파일을 Firefox에 직접 읽어들이게 하는 것에 의해서 확인할 수 있습니다. 템플릿 URL안의 ampersand(&)(&) 이하 &amp;가 Escape가 된 태그는 마지막의 slash나 일치하는 종료 태그로 닫혀져야 합니다.</li>
</ul>
<ul>
<li><code>xmlns</code> 속성은 중요합니다.<code>xmlns</code> 속성 없이는 "Bon Echo could not download the plugin from (URL)"이라는 에러 메시지가 표시됩니다.</li>
</ul>
<p>또한, 검색 플러그 인 서비스는 플러그 인 개발자가 사용할 로그의 구조를 제공합니다.
<i>
about:config</i>
의 '<code>browser.search.log</code>'을 <code>true</code>로 해야 합니다. 검색 플러그 인이 추가되면 로그 정보가 Firefox 의<a href="ko/JavaScript_Console">오류 정보</a>(도구-> 오류 정보)에 표시됩니다.</p>
<h2 id="OpenSearch" name="OpenSearch">OpenSearch</h2>
<p><a href="ko/Firefox_2">Firefox 2</a>의 검색 결과를 공유하기 위해서 Amazon A9의 <a class="external" href="http://opensearch.a9.com/">OpenSearch</a> 형식되 지원합니다. <a class="external" href="http://opensearch.a9.com/spec/1.1/description/">OpenSearch 사용법</a>을 이용해 XML 플러그인을 제작 했다면 <a class="external" href="http://www.mozilla.org/support/firefox/profile">사용자 프로필</a> 또는 어플리케이션 폴더, <a href="ko/Bundles">설치 번들</a> 안의 <tt>searchengines</tt> 디렉토리에 넣어 줌으로서 검색엔진을 추가할 수 있습니다</p>
<p>OpenSearch 파일은<a href="#.EA.B2.80.EC.83.89_.EC.97.94.EC.A7.84_.EC.9E.90.EB.8F.99_.EC.B0.BE.EA.B8.B0">검색 엔진 자동 찾기</a>에 설명한 방법을 통해 표시할 수 있습니다.</p>
<p>OpenSearch 형식은 Mozilla SearchPlugin 형식과 닮아 있으나 가장 큰 차이는 루트 요소와 XML 네임 스페이스가 다른 것입니다.</p>
<pre><?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
...
</OpenSearchDescription>
</pre>
<h2 id=".EC.B0.B8.EA.B3.A0_.EC.9E.90.EB.A3.8C" name=".EC.B0.B8.EA.B3.A0_.EC.9E.90.EB.A3.8C">참고 자료</h2>
<ul>
<li>A9.com <a class="external" href="http://opensearch.a9.com/">OpenSearch 문서</a></li>
<li>Technorati.com <a class="external" href="http://technorati.com/osd.xml">osd.xml</a></li>
<li>자동 찾기 방식: bugzilla {{ Bug(340208) }}</li>
<li><a class="external" href="http://en.wikipedia.org/wiki/Data:_URI_scheme"><tt>data:</tt> URI schema</a></li>
<li><a class="external" href="http://www.searchplugins.net">searchplugins.net</a> - Firefox2에서 사용 가능한 OpenSearch</li>
</ul>
<p>플러그 인의 작성. <a class="external" href="http://www.searchplugins.net/pluginlist.aspx">작성된 검색 플러그 목록</a></p>
<p>{{ languages( { "ca": "ca/Creaci_de_connectors_MozSearch", "en": "en/Creating_MozSearch_plugins", "it": "it/Creare_Plugin_MozSearch", "ja": "ja/Creating_MozSearch_plugins" } ) }}</p>
|