Skip to content

Commit 60474f1

Browse files
committed
add readme.md
1 parent ee7c1b2 commit 60474f1

File tree

1 file changed

+166
-0
lines changed

1 file changed

+166
-0
lines changed

readme.md

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
<!-- Document: readme.md
2+
3+
Shell OpenSearch のマニュアル
4+
5+
Metadata:
6+
7+
id - 27b7cd63-6bcd-4043-a037-f8114f36f387
8+
author - <qq542vev at https://purl.org/meta/me/>
9+
version - 0.1.0
10+
date - 2022-11-30
11+
since - 2022-11-30
12+
copyright - Copyright (C) 2022-2022 qq542vev. Some rights reserved.
13+
license - <CC-BY at https://creativecommons.org/licenses/by/4.0/>
14+
package - shell-opensearch
15+
16+
See Also:
17+
18+
* <Project homepage at https://github.com/qq542vev/shell-opensearch>
19+
* <Bag report at https://github.com/qq542vev/shell-opensearch/issues>
20+
-->
21+
22+
Shell OepnSearch は [POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/) 準拠の ShellScript で作成された OepnSearch 対応の検索クライアントです。[OpenSearch 1.1](https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md) の仕様に準拠した OpenSearch description documents (以下 OSDD に省略) を利用して端末環境から検索などを行えます。
23+
24+
# インストール
25+
26+
Shell OepnSearch を利用するためには、お使いのコンピューターに [XMLStarlet](https://xmlstar.sourceforge.net/) がインストールされている必要があります。また `opensearch add``opensearch update` を利用する際には [GNU Wget](https://www.gnu.org/software/wget/) または [curl](https://curl.se/) もインストールされている必要があります。
27+
28+
[GitHub Releases](https://github.com/qq542vev/shell-opensearch/releases) から最新版の opensearch をダウンロードして、任意の場所に設置してください。`opensearch` を実行し、コマンドのヘルプが表示されたら完了です。
29+
30+
~~~
31+
opensearch --help
32+
~~~
33+
34+
# 使用方法
35+
36+
## 検索エンジンを追加する
37+
38+
検索を行うには任意の OSDD を追加する必要があります。`opensearch add` で追加が可能です。例として以下のコマンドで http://www.example.com/opensearch.xml にある OSDD を example という識別子で追加を行います。
39+
40+
~~~
41+
opensearch add example 'http://www.example.com/opensearch.xml'
42+
~~~
43+
44+
追加した OSDD はデフォルトでは、`~/.shell-opensearch` 内に配置されます。URL は OSDD だけではなく、OSDD へのリンクが記載されている HTML / XHTML の指定も可能です。
45+
46+
~~~
47+
opensearch add example 'http://www.example.com/index.html'
48+
~~~
49+
50+
階層的な識別子も可能です。以下の場合は、 `~/.shell-opensearch/example/ja.xml` に配置されます。
51+
52+
~~~
53+
opensearch add example/ja 'http://www.example.com/ja/opensearch.xml'
54+
~~~
55+
56+
## 検索を行う
57+
58+
任意の OSDD を使用して検索を行えます。例えば以下のコマンドは example という識別子の検索エンジンで検索を行います。
59+
60+
~~~
61+
opensearch search example keyword1 keyword2 ...
62+
~~~
63+
64+
この場合には、`~/.shell-opensearch/example.xml` が利用されます。Shell OpenSearch では 0個以上の keyword を渡せますが、OSDD によっては1個以上の keyword が必要です。検索エンジンの識別子は `,` (カンマ)で区切ることにより、複数の指定も可能です。
65+
66+
~~~
67+
opensearch search example1,example2
68+
~~~
69+
70+
この場合には、`~/.shell-opensearch/example1.xml``~/.shell-opensearch/example2.xml` が利用されます。
71+
72+
`~/.shell-opensearch` 内のディレクトリを指定することも可能です。ディレクトリを指定するには末尾が `/` (スラッシュ)で終了する必要があります。ディレクトリ以下の全ての `*.xml` ファイルが利用されます。
73+
74+
~~~
75+
opensearch search example/
76+
~~~
77+
78+
任意の OSDD を利用する場合は、識別子の引数をファイルパスに置き換えてください。ただしファイルパスは、`/`, `./`, .`./` の何れかで開始する必要があります。複数のファイルを指定することは不可能です。
79+
80+
~~~
81+
opensearch search ./example.xml
82+
~~~
83+
84+
## Web ブラウザーで開く
85+
86+
デフォルトでは検索結果の URL を表示するのみですが、URL を Web ブラウザーなどを開いて検索結果を表示するには `-e`, `--extarnal` オプションを使用します。`--extarnal` のみで環境変数 `BROWSER` の値に、`--extarnal=COMMAND` で任意のコマンドに URL を引数として渡します。
87+
88+
~~~
89+
export BROWSER=firefox
90+
opensearch search example --extarnal
91+
~~~
92+
93+
~~~
94+
opensearch search example --extarnal=firefox
95+
~~~
96+
97+
### MIME Type を指定する
98+
99+
OSDD によっては検索リクエストが複数定義されている場合があり、受容する MIME Type を変更することで検索リクエストの MIME Type を変更が可能です。デファルトでは `text/html``application/xhtml+xml` の優先度が高く設定しています。受容する MIME Type と優先度を変更するには `-t`, `--accept-type` オプションを使用します。
100+
101+
`,` (カンマ)で区切り複数の MIME Type を指定が可能です。MIME Typeを記述する MIME Type の順番によって優先度が変化します。最初に記述した MIME Type の優先度が最も高く、最後に記述した MIME Type の優先度が最も低いです。OSDD 内に受容する MIME Type に一致する検索リクエストが定義されていない場合は、エラーです。
102+
103+
例として RSS の検索リクエストを指定するのは以下のコマンドです。
104+
105+
~~~
106+
opensearch search example --accept-type 'application/rss+xml,application/rdf+xml'
107+
~~~
108+
109+
`*` (アスタリスク)を指定することで任意レスポンスタイプにマッチします。例として `text/*` は全てのテキストメディアに、`*/*` で全てのメディアにマッチします。
110+
111+
~~~
112+
opensearch search example --accept-type '*/*'
113+
~~~
114+
115+
### 検索パラメータを指定する
116+
117+
OSDD によっては検索リクエストが特定の検索パラメータに対応している場合があります。特定の検索パラメータを指定するには `-p`, `--template-parameter` を使用します。OpenSearch 1.1 で定義されているコアセットの検索パラメータ(無修飾パラメータ)を指定するコマンドは以下です。
118+
119+
~~~
120+
opensearch search example --template-parameter 'count=100'
121+
~~~
122+
123+
拡張されたパラメータ(完全修飾パラメータ)を指定する場合は、検索パラメータの名前空間を指定する必要があります。
124+
125+
~~~
126+
opensearch search example --template-parameter '{http://example.com/opensearchextensions/1.0/}color=blue'
127+
~~~
128+
129+
## 更新
130+
131+
OSDD 内に `<Url rel="self" type="application/opensearchdescription+xml" template="..."/>` の定義がある場合は、OSDD を更新することが可能です。
132+
133+
~~~
134+
opensearch update example
135+
~~~
136+
137+
## 一覧を表示
138+
139+
利用が可能な OSDD の識別子と検索エンジン名が一覧で表示されます。
140+
141+
~~~
142+
opensearch list
143+
~~~
144+
145+
## OSDD の詳細を表示
146+
147+
`opensearch show` で OSDD の詳細の表示が可能です。
148+
149+
~~~
150+
opensearch show example
151+
~~~
152+
153+
デフォルトでは [YAML](https://yaml.org/) に似た形式で表示されます。XML で表示を行うには、`-f`, `--format` を指定します。
154+
155+
~~~
156+
opensearch show --format xml example
157+
~~~
158+
159+
# ToDo
160+
161+
* ShellSpec で `opensearch` の全ての機能のテストを行う。
162+
163+
# リンク
164+
165+
* [OpenSearch 1.1 Draft 6](https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md)
166+
* [Open Search 仕様書 1.1 ドラフト4版](https://sites.google.com/site/tsukamoto/doc/opensearch/spec-1-1-draft4)

0 commit comments

Comments
 (0)