@zonuexe/techbook-mcp 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -1
- package/README.md +39 -20
- package/dist/adapters/publishers/google-books.d.ts +4 -0
- package/dist/adapters/publishers/google-books.d.ts.map +1 -0
- package/dist/adapters/publishers/google-books.js +75 -0
- package/dist/adapters/publishers/google-books.js.map +1 -0
- package/dist/adapters/publishers/isbn-publisher-codes.d.ts +21 -0
- package/dist/adapters/publishers/isbn-publisher-codes.d.ts.map +1 -0
- package/dist/adapters/publishers/isbn-publisher-codes.js +49 -0
- package/dist/adapters/publishers/isbn-publisher-codes.js.map +1 -0
- package/dist/adapters/publishers/juse-p.d.ts +3 -0
- package/dist/adapters/publishers/juse-p.d.ts.map +1 -0
- package/dist/adapters/publishers/juse-p.js +110 -0
- package/dist/adapters/publishers/juse-p.js.map +1 -0
- package/dist/adapters/publishers/registry.d.ts.map +1 -1
- package/dist/adapters/publishers/registry.js +4 -0
- package/dist/adapters/publishers/registry.js.map +1 -1
- package/dist/application/get-book-by-isbn.d.ts +3 -2
- package/dist/application/get-book-by-isbn.d.ts.map +1 -1
- package/dist/application/get-book-by-isbn.js +22 -3
- package/dist/application/get-book-by-isbn.js.map +1 -1
- package/dist/config/credentials.d.ts +8 -0
- package/dist/config/credentials.d.ts.map +1 -0
- package/dist/config/credentials.js +32 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/main.js +15 -1
- package/dist/main.js.map +1 -1
- package/dist/setup.d.ts +2 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +43 -0
- package/dist/setup.js.map +1 -0
- package/flake.lock +61 -0
- package/package.json +1 -1
- package/.claude/settings.local.json +0 -38
- package/.codex/skills/techbook-mcp-release-prep/SKILL.md +0 -105
- package/.github/workflows/test.yml +0 -72
- package/.oxlintrc.json +0 -12
- package/AGENTS.md +0 -100
- package/deno.json +0 -3
- package/src/adapters/cache/memory-cache.ts +0 -31
- package/src/adapters/cache/null-cache.ts +0 -8
- package/src/adapters/calil.ts +0 -57
- package/src/adapters/html/cheerio-parser.ts +0 -50
- package/src/adapters/http/fetch-client.ts +0 -47
- package/src/adapters/http/mock-client.ts +0 -77
- package/src/adapters/openbd.ts +0 -142
- package/src/adapters/publishers/base.ts +0 -279
- package/src/adapters/publishers/book-tech.ts +0 -117
- package/src/adapters/publishers/born-digital.ts +0 -143
- package/src/adapters/publishers/coronasha.ts +0 -139
- package/src/adapters/publishers/gihyo.ts +0 -120
- package/src/adapters/publishers/impress.ts +0 -103
- package/src/adapters/publishers/lambdanote.ts +0 -146
- package/src/adapters/publishers/manatee.ts +0 -113
- package/src/adapters/publishers/maruzen-publishing.ts +0 -129
- package/src/adapters/publishers/optronics.ts +0 -113
- package/src/adapters/publishers/oreilly-japan.ts +0 -133
- package/src/adapters/publishers/peaks.ts +0 -98
- package/src/adapters/publishers/personal-media.ts +0 -168
- package/src/adapters/publishers/registry.ts +0 -38
- package/src/adapters/publishers/rutles.ts +0 -149
- package/src/adapters/publishers/saiensu.ts +0 -136
- package/src/adapters/publishers/seshop.ts +0 -121
- package/src/adapters/publishers/tatsu-zine.ts +0 -142
- package/src/adapters/publishers/techbookfest.ts +0 -179
- package/src/application/get-book-by-isbn.ts +0 -50
- package/src/application/get-book-detail.ts +0 -40
- package/src/application/search-books.ts +0 -64
- package/src/domain/book.ts +0 -35
- package/src/domain/publisher.ts +0 -18
- package/src/main.ts +0 -14
- package/src/mcp/server.ts +0 -113
- package/src/mcp/tools.ts +0 -71
- package/src/ports/cache.ts +0 -5
- package/src/ports/html-parser.ts +0 -15
- package/src/ports/http.ts +0 -17
- package/tests/fixtures/book-tech-detail.html +0 -51
- package/tests/fixtures/book-tech-search.html +0 -91
- package/tests/fixtures/born-digital-detail.html +0 -62
- package/tests/fixtures/born-digital-search.html +0 -51
- package/tests/fixtures/calil-book.html +0 -987
- package/tests/fixtures/coronasha-detail.html +0 -41
- package/tests/fixtures/coronasha-search.html +0 -61
- package/tests/fixtures/gihyo-detail.html +0 -42
- package/tests/fixtures/gihyo-search.json +0 -54
- package/tests/fixtures/impress-detail-epub.html +0 -746
- package/tests/fixtures/impress-detail-social.html +0 -689
- package/tests/fixtures/lambdanote-search.html +0 -66
- package/tests/fixtures/manatee-detail.html +0 -53
- package/tests/fixtures/manatee-search.html +0 -59
- package/tests/fixtures/maruzen-detail.html +0 -51
- package/tests/fixtures/maruzen-search.html +0 -60
- package/tests/fixtures/openbd-response.json +0 -110
- package/tests/fixtures/optronics-detail.html +0 -30
- package/tests/fixtures/optronics-search.html +0 -75
- package/tests/fixtures/oreilly-detail.html +0 -52
- package/tests/fixtures/oreilly-ebook-list.html +0 -53
- package/tests/fixtures/peaks-detail.html +0 -39
- package/tests/fixtures/peaks-top.html +0 -50
- package/tests/fixtures/personal-media-detail.html +0 -32
- package/tests/fixtures/personal-media-search.html +0 -39
- package/tests/fixtures/rutles-detail.html +0 -32
- package/tests/fixtures/rutles-search.html +0 -62
- package/tests/fixtures/saiensu-detail.html +0 -41
- package/tests/fixtures/saiensu-search.html +0 -65
- package/tests/fixtures/seshop-detail.html +0 -45
- package/tests/fixtures/seshop-search.html +0 -58
- package/tests/fixtures/tatsu-zine-detail-free.html +0 -24
- package/tests/fixtures/tatsu-zine-search.html +0 -40
- package/tests/fixtures/techbookfest-search.json +0 -73
- package/tests/unit/adapters/base.test.ts +0 -441
- package/tests/unit/adapters/calil.test.ts +0 -69
- package/tests/unit/adapters/openbd.test.ts +0 -185
- package/tests/unit/adapters/publishers/book-tech.test.ts +0 -186
- package/tests/unit/adapters/publishers/born-digital.test.ts +0 -194
- package/tests/unit/adapters/publishers/coronasha.test.ts +0 -207
- package/tests/unit/adapters/publishers/gihyo.test.ts +0 -137
- package/tests/unit/adapters/publishers/impress.test.ts +0 -129
- package/tests/unit/adapters/publishers/lambdanote.test.ts +0 -85
- package/tests/unit/adapters/publishers/manatee.test.ts +0 -165
- package/tests/unit/adapters/publishers/maruzen-publishing.test.ts +0 -179
- package/tests/unit/adapters/publishers/optronics.test.ts +0 -208
- package/tests/unit/adapters/publishers/oreilly-japan.test.ts +0 -194
- package/tests/unit/adapters/publishers/peaks.test.ts +0 -177
- package/tests/unit/adapters/publishers/personal-media.test.ts +0 -199
- package/tests/unit/adapters/publishers/rutles.test.ts +0 -173
- package/tests/unit/adapters/publishers/saiensu.test.ts +0 -169
- package/tests/unit/adapters/publishers/seshop.test.ts +0 -174
- package/tests/unit/adapters/publishers/tatsu-zine.test.ts +0 -172
- package/tests/unit/adapters/publishers/techbookfest.test.ts +0 -94
- package/tests/unit/adapters/registry.test.ts +0 -37
- package/tests/unit/application/get-book-by-isbn.test.ts +0 -176
- package/tests/unit/application/get-book-detail.test.ts +0 -102
- package/tests/unit/application/search-books.test.ts +0 -137
- package/tsconfig.json +0 -17
package/src/mcp/tools.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
export const TOOLS = [
|
|
2
|
-
{
|
|
3
|
-
name: "search_books",
|
|
4
|
-
description:
|
|
5
|
-
"書名・著者名から日本語技術書を検索し、書誌情報の一覧を返します。" +
|
|
6
|
-
"複数の出版社を横断して検索します。",
|
|
7
|
-
inputSchema: {
|
|
8
|
-
type: "object",
|
|
9
|
-
properties: {
|
|
10
|
-
title: {
|
|
11
|
-
type: "string",
|
|
12
|
-
description: "書名(部分一致)",
|
|
13
|
-
},
|
|
14
|
-
author: {
|
|
15
|
-
type: "string",
|
|
16
|
-
description: "著者名(部分一致)",
|
|
17
|
-
},
|
|
18
|
-
publisher: {
|
|
19
|
-
type: "string",
|
|
20
|
-
description:
|
|
21
|
-
"出版社IDで検索対象を絞り込みます。指定しない場合は全出版社を検索します。" +
|
|
22
|
-
"利用可能なIDは list_publishers で確認できます。",
|
|
23
|
-
},
|
|
24
|
-
limit: {
|
|
25
|
-
type: "number",
|
|
26
|
-
description: "1出版社あたりの最大取得件数(デフォルト: 10、最大: 50)",
|
|
27
|
-
default: 10,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: "get_book_detail",
|
|
34
|
-
description: "書籍の公式ページURLから詳細な書誌情報を取得します。",
|
|
35
|
-
inputSchema: {
|
|
36
|
-
type: "object",
|
|
37
|
-
required: ["url"],
|
|
38
|
-
properties: {
|
|
39
|
-
url: {
|
|
40
|
-
type: "string",
|
|
41
|
-
description: "書籍の公式ページURL(出版社サイトのURL)",
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
name: "list_publishers",
|
|
48
|
-
description: "対応している出版社の一覧とIDを返します。",
|
|
49
|
-
inputSchema: {
|
|
50
|
-
type: "object",
|
|
51
|
-
properties: {},
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: "get_book_by_isbn",
|
|
56
|
-
description:
|
|
57
|
-
"ISBNから書誌情報を取得します。" +
|
|
58
|
-
"openBDで出版社を特定し、可能であれば出版社サイトから詳細情報を取得します。" +
|
|
59
|
-
"出版社サイトから取得できない場合はopenBDのデータを返します。",
|
|
60
|
-
inputSchema: {
|
|
61
|
-
type: "object",
|
|
62
|
-
required: ["isbn"],
|
|
63
|
-
properties: {
|
|
64
|
-
isbn: {
|
|
65
|
-
type: "string",
|
|
66
|
-
description: "ISBN-13(ハイフンあり・なし両対応、例: 978-4-908686-20-7)",
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
] as const;
|
package/src/ports/cache.ts
DELETED
package/src/ports/html-parser.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface HtmlElement {
|
|
2
|
-
text(): string;
|
|
3
|
-
html(): string | null;
|
|
4
|
-
attr(name: string): string | undefined;
|
|
5
|
-
find(selector: string): HtmlElement[];
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface HtmlDocument {
|
|
9
|
-
select(selector: string): HtmlElement[];
|
|
10
|
-
selectOne(selector: string): HtmlElement | null;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface HtmlParser {
|
|
14
|
-
parse(html: string): HtmlDocument;
|
|
15
|
-
}
|
package/src/ports/http.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface RequestOptions {
|
|
2
|
-
headers?: Record<string, string>;
|
|
3
|
-
timeout?: number;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export interface HttpResponse {
|
|
7
|
-
readonly status: number;
|
|
8
|
-
readonly url: string;
|
|
9
|
-
text(): Promise<string>;
|
|
10
|
-
/** ヘッダー値を取得する。複数値は `, ` 結合。存在しない場合は null。 */
|
|
11
|
-
header(name: string): string | null;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface HttpClient {
|
|
15
|
-
get(url: string, options?: RequestOptions): Promise<HttpResponse>;
|
|
16
|
-
post(url: string, body: string, options?: RequestOptions): Promise<HttpResponse>;
|
|
17
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="ja">
|
|
3
|
-
<head><meta charset="utf-8"><title>BOOK TECH | 次のステップへ!React実践開発 サクサク作って学ぶ UI/テスト/デプロイ</title></head>
|
|
4
|
-
<body>
|
|
5
|
-
<div class="contents-base">
|
|
6
|
-
<div class="contents-book">
|
|
7
|
-
<div class="contents-book-inner">
|
|
8
|
-
<div class="contents-book-item">
|
|
9
|
-
<div class="contents-book-item-detail-wrap">
|
|
10
|
-
<div class="contents-book-item-detail-thumb">
|
|
11
|
-
<img src="https://booktech-share.s3-ap-northeast-1.amazonaws.com/books/d80ffe3d.webp" class="thumb" alt="次のステップへ!React実践開発 サクサク作って学ぶ UI/テスト/デプロイ">
|
|
12
|
-
</div>
|
|
13
|
-
<div class="contents-book-item-detail-price_include_tax">
|
|
14
|
-
2,178円<span class="tax">(税込)</span>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
|
-
<div class="contents-book-about">
|
|
20
|
-
<div class="contents-book-about-title">
|
|
21
|
-
<h1>次のステップへ!React実践開発 サクサク作って学ぶ UI/テスト/デプロイ</h1>
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<div class="contents-book-about-publicationdate my-1" style="font-size: 0.85em;">
|
|
25
|
-
発売日:
|
|
26
|
-
2026/2/20
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
<div class="d-flex flex-wrap align-items-center gap-1">
|
|
30
|
-
<a class="badge bg-light text-dark border" href="/books?q%5Bpublisher_relations_publisher_id_in%5D%5B%5D=4">
|
|
31
|
-
<i class="fas fa-building me-1"></i>インプレス NextPublishing
|
|
32
|
-
</a>
|
|
33
|
-
<a class="badge bg-light text-dark border" href="/books?q%5Bauthor_relations_author_id_in%5D%5B%5D=2205">
|
|
34
|
-
<i class="fas fa-user me-1"></i>philosophy (著)
|
|
35
|
-
</a>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
<div class="contents-book-about-id" style="font-size: 0.85em;">
|
|
39
|
-
ISBN:
|
|
40
|
-
9784295604136
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
<div class="contents-book-about-description scroll">
|
|
44
|
-
TypeScriptによる型安全な開発、各種ホスティングサービスへの公開方法などを解説します。
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
</body>
|
|
51
|
-
</html>
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="ja">
|
|
3
|
-
<head><meta charset="utf-8"><title>BOOK TECH | 「TypeScript」の検索結果</title></head>
|
|
4
|
-
<body>
|
|
5
|
-
<div class="contents-base">
|
|
6
|
-
<div class="contents-index">
|
|
7
|
-
<div class="contents-index-wrap">
|
|
8
|
-
|
|
9
|
-
<div class="contents-index-item">
|
|
10
|
-
<div class="contents-index-item-lang">
|
|
11
|
-
<a class="contents-index-item-large-lang-wrap" href="/books?q%5Bbook_category_in%5D%5B%5D=%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BBIT">コンピュータ・IT</a>
|
|
12
|
-
</div>
|
|
13
|
-
<div class="contents-index-item-detail-wrap">
|
|
14
|
-
<div class="contents-index-item-detail">
|
|
15
|
-
<div class="contents-index-item-detail-thumb">
|
|
16
|
-
<a class="book-ribbon-link" href="/books/d80ffe3d-f3fe-458b-95ee-b4dd3327fab2">
|
|
17
|
-
<img src="https://booktech-share.s3-ap-northeast-1.amazonaws.com/books/d80ffe3d.webp" class="thumb" alt="次のステップへ!React実践開発 サクサク作って学ぶ UI/テスト/デプロイ">
|
|
18
|
-
</a>
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="contents-index-item-detail">
|
|
22
|
-
<div class="contents-index-item-detail-title">
|
|
23
|
-
次のステップへ!React実践開発 サクサク作って学ぶ UI/テスト/デプロイ
|
|
24
|
-
</div>
|
|
25
|
-
<div class="my-1" style="font-size: 0.85em;">
|
|
26
|
-
発売日: 2026/2/20
|
|
27
|
-
</div>
|
|
28
|
-
<div class="d-none d-lg-block d-flex flex-wrap align-items-center gap-1">
|
|
29
|
-
<a class="badge bg-light text-dark border" href="/books?q%5Bpublisher_relations_publisher_id_in%5D%5B%5D=4">
|
|
30
|
-
<i class="fas fa-building me-1"></i>インプレス NextPublishing
|
|
31
|
-
</a>
|
|
32
|
-
<a class="badge bg-light text-dark border" href="/books?q%5Bauthor_relations_author_id_in%5D%5B%5D=2205">
|
|
33
|
-
<i class="fas fa-user me-1"></i>philosophy (著)
|
|
34
|
-
</a>
|
|
35
|
-
</div>
|
|
36
|
-
<div class="contents-index-item-detail-description scroll">
|
|
37
|
-
TypeScriptによる型安全な開発を解説します。
|
|
38
|
-
</div>
|
|
39
|
-
<div class="contents-index-item-detail-price_include_tax">
|
|
40
|
-
<div>
|
|
41
|
-
2,178円<span class="tax">(税込)</span>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<div class="contents-index-item">
|
|
49
|
-
<div class="contents-index-item-lang">
|
|
50
|
-
<a class="contents-index-item-large-lang-wrap" href="/books?q%5Bbook_category_in%5D%5B%5D=%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BBIT">コンピュータ・IT</a>
|
|
51
|
-
</div>
|
|
52
|
-
<div class="contents-index-item-detail-wrap">
|
|
53
|
-
<div class="contents-index-item-detail">
|
|
54
|
-
<div class="contents-index-item-detail-thumb">
|
|
55
|
-
<a class="book-ribbon-link" href="/books/a52f6467-5d0c-4d76-9351-19a0ab76eb96">
|
|
56
|
-
<img src="https://booktech-share.s3-ap-northeast-1.amazonaws.com/books/a52f6467.webp" class="thumb" alt="React環境構築の教科書">
|
|
57
|
-
</a>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
<div class="contents-index-item-detail">
|
|
61
|
-
<div class="contents-index-item-detail-title">
|
|
62
|
-
React環境構築の教科書
|
|
63
|
-
</div>
|
|
64
|
-
<div class="my-1" style="font-size: 0.85em;">
|
|
65
|
-
発売日: 2020/8/21
|
|
66
|
-
</div>
|
|
67
|
-
<div class="d-none d-lg-block d-flex flex-wrap align-items-center gap-1">
|
|
68
|
-
<a class="badge bg-light text-dark border" href="/books?q%5Bpublisher_relations_publisher_id_in%5D%5B%5D=4">
|
|
69
|
-
<i class="fas fa-building me-1"></i>インプレス NextPublishing
|
|
70
|
-
</a>
|
|
71
|
-
<a class="badge bg-light text-dark border" href="/books?q%5Bauthor_relations_author_id_in%5D%5B%5D=107">
|
|
72
|
-
<i class="fas fa-user me-1"></i>井手 優太 (著)
|
|
73
|
-
</a>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="contents-index-item-detail-description scroll">
|
|
76
|
-
TypeScriptを使ったコンパイル環境を解説します。
|
|
77
|
-
</div>
|
|
78
|
-
<div class="contents-index-item-detail-price_include_tax">
|
|
79
|
-
<div>
|
|
80
|
-
3,300円<span class="tax">(税込)</span>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
</div>
|
|
88
|
-
</div>
|
|
89
|
-
</div>
|
|
90
|
-
</body>
|
|
91
|
-
</html>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="ja">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="euc-jp">
|
|
5
|
-
<title>ボーンデジタルオンラインブックストア</title>
|
|
6
|
-
<script>
|
|
7
|
-
var Colorme = {"page":"product","shop":{"account_id":"PA01427945","title":"\u30dc\u30fc\u30f3\u30c7\u30b8\u30bf\u30eb\u30aa\u30f3\u30e9\u30a4\u30f3\u30d6\u30c3\u30af\u30b9\u30c8\u30a2","pixel_ids":[]},"basket":{"total_price":0,"items":[]},"customer":{"id":null},"inventory_control":"none","product":{"shop_uid":"PA01427945","id":167400957,"name":"\u3010PDF\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u7248\u3011HTML\u89e3\u4f53\u65b0\u66f8 \u30fc\u4ed5\u69d8\u304b\u3089\u7d10\u89e3\u304f\u672c\u683c\u5165\u9580","model_number":"20220061","stock_num":null,"sales_price":3200,"sales_price_including_tax":3520,"variants":[],"category":{"id_big":2520692,"id_small":0},"groups":[{"id":2072447}],"members_price":3200,"members_price_including_tax":3520}};
|
|
8
|
-
</script>
|
|
9
|
-
</head>
|
|
10
|
-
<body>
|
|
11
|
-
<div class="p-product-wrap">
|
|
12
|
-
<div class="p-product-heading js-product-fix">
|
|
13
|
-
<div class="theiaStickySidebar">
|
|
14
|
-
<div class="p-product-heading__unit">
|
|
15
|
-
<div class="p-large-image">
|
|
16
|
-
<div class="p-large-image__image-wrap c-image-wrap">
|
|
17
|
-
<div class="c-image-box js-thumbnail-set">
|
|
18
|
-
<img src="https://img07.shop-pro.jp/PA01427/945/product/167400957.png?cmsp_timestamp=20220328140327" alt="" class="c-image-box__image js-lazyload" />
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
<div id="cart-form" class="p-product-heading__unit">
|
|
24
|
-
<div class="p-cart-form">
|
|
25
|
-
<div class="p-cart-form__info">
|
|
26
|
-
<div class="p-cart-form__name">
|
|
27
|
-
【PDFダウンロード版】HTML解体新書 ー仕様から紐解く本格入門
|
|
28
|
-
</div>
|
|
29
|
-
<div class="p-cart-form__price c-product-info__price">
|
|
30
|
-
販売価格 3,520円(税込)
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
<div class="p-product-body">
|
|
39
|
-
<div class="p-product-body-inner">
|
|
40
|
-
<div class="p-product-body__model">
|
|
41
|
-
20220061
|
|
42
|
-
</div>
|
|
43
|
-
<div class="p-product-body__name">
|
|
44
|
-
【PDFダウンロード版】HTML解体新書 ー仕様から紐解く本格入門
|
|
45
|
-
</div>
|
|
46
|
-
<div class="p-product-body__price">
|
|
47
|
-
販売価格 3,520円(税込)
|
|
48
|
-
</div>
|
|
49
|
-
<div class="p-product-body__description">
|
|
50
|
-
判型:B5判、オール2C<br />
|
|
51
|
-
総ページ数:352ページ<br />
|
|
52
|
-
発売日:2022年4月7日<br />
|
|
53
|
-
著者:太田 良典、中村 直樹<br />
|
|
54
|
-
発行・発売:株式会社 ボーンデジタル<br />
|
|
55
|
-
<br />
|
|
56
|
-
HTMLによる、HTMLのための、HTMLだけの本。
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
</body>
|
|
62
|
-
</html>
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="ja">
|
|
3
|
-
<head><meta charset="euc-jp"><title>ボーンデジタルオンラインブックストア</title></head>
|
|
4
|
-
<body>
|
|
5
|
-
<ul class="c-product-list">
|
|
6
|
-
|
|
7
|
-
<li class="c-product-list__item">
|
|
8
|
-
<a href="?pid=167400957" class="c-product-list__image-wrap c-image-wrap c-image-wrap--link">
|
|
9
|
-
<div class="c-image-box">
|
|
10
|
-
<img src="https://img07.shop-pro.jp/PA01427/945/product/167400957_th.png?cmsp_timestamp=20220328140327" alt="【PDFダウンロード版】HTML解体新書 ー仕様から紐解く本格入門" class="c-image-box__image js-lazyload" />
|
|
11
|
-
</div>
|
|
12
|
-
</a>
|
|
13
|
-
<a href="?pid=167400957" class="c-product-list__name">
|
|
14
|
-
【PDFダウンロード版】HTML解体新書 ー仕様から紐解く本格入門
|
|
15
|
-
</a>
|
|
16
|
-
<div class="c-product-info__price c-product-list__price">
|
|
17
|
-
3,520円(税込)
|
|
18
|
-
</div>
|
|
19
|
-
</li>
|
|
20
|
-
|
|
21
|
-
<li class="c-product-list__item">
|
|
22
|
-
<a href="?pid=144269584" class="c-product-list__image-wrap c-image-wrap c-image-wrap--link">
|
|
23
|
-
<div class="c-image-box">
|
|
24
|
-
<img src="https://img07.shop-pro.jp/PA01427/945/product/144269584_th.jpg?cmsp_timestamp=20190920142519" alt="【電子書籍版】インクルーシブHTML+CSS & JavaScript" class="c-image-box__image js-lazyload" />
|
|
25
|
-
</div>
|
|
26
|
-
</a>
|
|
27
|
-
<a href="?pid=144269584" class="c-product-list__name">
|
|
28
|
-
【電子書籍版】インクルーシブHTML+CSS & JavaScript
|
|
29
|
-
</a>
|
|
30
|
-
<div class="c-product-info__price c-product-list__price">
|
|
31
|
-
2,640円(税込)
|
|
32
|
-
</div>
|
|
33
|
-
</li>
|
|
34
|
-
|
|
35
|
-
<li class="c-product-list__item">
|
|
36
|
-
<a href="?pid=167401111" class="c-product-list__image-wrap c-image-wrap c-image-wrap--link">
|
|
37
|
-
<div class="c-image-box">
|
|
38
|
-
<img src="https://img07.shop-pro.jp/PA01427/945/product/167401111_th.png?cmsp_timestamp=20220328141320" alt="HTML解体新書 ー仕様から紐解く本格入門" class="c-image-box__image js-lazyload" />
|
|
39
|
-
</div>
|
|
40
|
-
</a>
|
|
41
|
-
<a href="?pid=167401111" class="c-product-list__name">
|
|
42
|
-
HTML解体新書 ー仕様から紐解く本格入門
|
|
43
|
-
</a>
|
|
44
|
-
<div class="c-product-info__price c-product-list__price">
|
|
45
|
-
3,520円(税込)
|
|
46
|
-
</div>
|
|
47
|
-
</li>
|
|
48
|
-
|
|
49
|
-
</ul>
|
|
50
|
-
</body>
|
|
51
|
-
</html>
|