Masafumi Yokoyama
null+****@clear*****
Sat Feb 28 12:05:54 JST 2015
Masafumi Yokoyama 2015-02-28 12:05:54 +0900 (Sat, 28 Feb 2015) New Revision: ba4d2cceaeff88654506450d8b8200430af8e363 https://github.com/groonga/groonga-beginners-book-ja/commit/ba4d2cceaeff88654506450d8b8200430af8e363 Message: Prepare Re:VIEW Added files: .gitignore 00-intro.re 01-what-is-full-text-search.re 02-what-is-groonga.re 03-install.re 80-appendix.re 90-postscript.re Gemfile Gemfile.lock README.md Rakefile catalog.yml config.yml stylesheet.css Added: .gitignore (+3 -0) 100644 =================================================================== --- /dev/null +++ .gitignore 2015-02-28 12:05:54 +0900 (71c129c) @@ -0,0 +1,3 @@ +*.html +*.pdf +*.epub Added: 00-intro.re (+4 -0) 100644 =================================================================== --- /dev/null +++ 00-intro.re 2015-02-28 12:05:54 +0900 (0eb50bc) @@ -0,0 +1,4 @@ += はじめに + +本書は、これから全文検索システムの開発に携わる人のために書かれた全文検 +索エンジンGroongaの入門書です。 Added: 01-what-is-full-text-search.re (+3 -0) 100644 =================================================================== --- /dev/null +++ 01-what-is-full-text-search.re 2015-02-28 12:05:54 +0900 (ac744c0) @@ -0,0 +1,3 @@ += 全文検索とは + +全文検索とは Added: 02-what-is-groonga.re (+1 -0) 100644 =================================================================== --- /dev/null +++ 02-what-is-groonga.re 2015-02-28 12:05:54 +0900 (ff7e919) @@ -0,0 +1 @@ += Groongaとは Added: 03-install.re (+1 -0) 100644 =================================================================== --- /dev/null +++ 03-install.re 2015-02-28 12:05:54 +0900 (56e79db) @@ -0,0 +1 @@ += インストール Added: 80-appendix.re (+1 -0) 100644 =================================================================== --- /dev/null +++ 80-appendix.re 2015-02-28 12:05:54 +0900 (f4f7873) @@ -0,0 +1 @@ += 参考文献 Added: 90-postscript.re (+1 -0) 100644 =================================================================== --- /dev/null +++ 90-postscript.re 2015-02-28 12:05:54 +0900 (293da78) @@ -0,0 +1 @@ += おわりに Added: Gemfile (+4 -0) 100644 =================================================================== --- /dev/null +++ Gemfile 2015-02-28 12:05:54 +0900 (c7778ad) @@ -0,0 +1,4 @@ +source "https://rubygems.org/" + +gem "rake" +gem "review" Added: Gemfile.lock (+12 -0) 100644 =================================================================== --- /dev/null +++ Gemfile.lock 2015-02-28 12:05:54 +0900 (758b790) @@ -0,0 +1,12 @@ +GEM + remote: https://rubygems.org/ + specs: + rake (10.4.2) + review (1.4.0) + +PLATFORMS + ruby + +DEPENDENCIES + rake + review Added: README.md (+27 -0) 100644 =================================================================== --- /dev/null +++ README.md 2015-02-28 12:05:54 +0900 (66dcbfb) @@ -0,0 +1,27 @@ +# groonga-beginners-book-ja + +## Requirements + +* [Re:VIEW](https://github.com/kmuto/review) + +## Preparation + +### Debian GNU/Linux, Ubuntu + +```zsh +% sudo apt-get install texlive-lang-cjk zip +``` + +## Usage + +### generate PDF + +```zsh +% rake generate:pdf +``` + +### generate EPUB + +```zsh +% rake generate:epub +``` Added: Rakefile (+37 -0) 100644 =================================================================== --- /dev/null +++ Rakefile 2015-02-28 12:05:54 +0900 (6036340) @@ -0,0 +1,37 @@ +require "fileutils" +require "yaml" + +def base_dir + File.expand_path(File.dirname(__FILE__)) +end + +def config_path + File.join(base_dir, "config.yml") +end + +def configurations + @configurations ||= YAML.load(File.read(config_path)) +end + +def bookname + configurations["bookname"] +end + +namespace :generate do + desc "generate HTML" + task :html do |re_path| + system("review-compile", "--target=html", "--all") + end + + desc "generate PDF" + task :pdf do + pdf_path = "#{bookname}.pdf" + FileUtils.rm(pdf_path) if File.exist?(pdf_path) + system("review-pdfmaker", config_path) + end + + desc "generate EPUB" + task :epub do + system("review-epubmaker", config_path) + end +end Added: catalog.yml (+13 -0) 100644 =================================================================== --- /dev/null +++ catalog.yml 2015-02-28 12:05:54 +0900 (aefa76a) @@ -0,0 +1,13 @@ +PREDEF: + - 00-intro.re + +CHAPS: + - 01-what-is-full-text-search.re + - 02-what-is-groonga.re + - 03-install.re + +APPENDIX: + - 80-appendix.re + +POSTDEF: + - 90-postscript.re Added: config.yml (+236 -0) 100644 =================================================================== --- /dev/null +++ config.yml 2015-02-28 12:05:54 +0900 (4b04484) @@ -0,0 +1,236 @@ +# review-epubmaker向けの設定ファイルの例。 +# yamlファイルをRe:VIEWファイルのある場所に置き、 +# 「review-epubmaker yamlファイル」を実行すると、<bookname>.epubファイルが +# 生成されます。 +# このファイルはUTF-8エンコーディングで記述してください。 + +# ブック名(ファイル名になるもの。ASCII範囲の文字を使用) +bookname: groonga-beginners-book-ja + +# 書名 +booktitle: ゼロからはじめる全文検索エンジンGroonga入門 + +# 著者名。「, 」で区切って複数指定できる +aut: ["Masafumi Yokoyama"] + +# 以下はオプション +# 以下はオプション(autと同じように配列書式で複数指定可能)。 +# a-が付いているものはcreator側、 +# 付いていないものはcontributor側(二次協力者)に入る +# a-adp, adp: 異なるメディア向けに作り直した者 +# a-ann, ann: 注釈記述者 +# a-arr, arr: アレンジした者 +# a-art, art: グラフィックデザインおよび芸術家 +# a-asn, asn: 関連・かつての所有者・関係者 +# a-aqt, aqt: 大きく引用された人物 +# a-aft, aft: 後書き・奥付の責任者 +# a-aui, aui: 序論・序文・前書きの責任者 +# a-ant, ant: 目録責任者 +# a-bkp, bkp: メディア制作責任者 +# a-clb, clb: 限定参加または補足者 +# a-cmm, cmm: 解釈・分析・考察者 +# a-dsr, dsr: デザイナ +# a-edt, edt: 編集者 +# a-ill, ill: イラストレータ +# a-lyr, lyr: 歌詞作成者 +# a-mdc, mdc: メタデータセットの一次的責任者 +# a-mus, mus: 音楽家 +# a-nrt, nrt: 語り手 +# a-oth, oth: その他 +# a-pht, pht: 撮影責任者 +# a-prt, prt: 出版社 +# a-red, red: 項目の枠組起草者 +# a-rev, rev: 評論者 +# a-spn, spn: 援助者 +# a-ths, ths: 監督者 +# a-trc, trc: 筆記・タイプ作業者 +# a-trl, trl: 翻訳者 + +# rights: 権利表記(配列で複数指定可) +# date: 刊行日(省略した場合は実行時の日付) +# description: 説明 +# subject: 短い説明用タグ(配列で複数指定可) +# type: 書籍のカテゴリーなど(配列で複数指定可) +# format: メディアタイプおよび特徴(配列で複数指定可) +# source: 出版物生成の重要なリソース情報(配列で複数指定可) +# relation: 補助的リソース(配列で複数指定可) +# coverage: 内容の範囲や領域(配列で複数指定可) + + +# デバッグフラグ。nullでないときには一時ファイルをカレントディレクトリに作成し、削除もしない +debug: null + +# htmlext: HTMLファイルの拡張子(省略した場合はhtml) +# +# CSSファイル(配列で複数指定可) +stylesheet: ["stylesheet.css"] + +# ePUBのバージョン (2か3) +# epubversion: 2 +# HTMLのバージョン (4か5。epubversionを3にしたときには5にする) +# htmlversion: 4 + +# 目次として抽出する見出しレベル +toclevel: 3 + +# 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする +# +# 本文でセクション番号を表示する見出しレベル +secnolevel: 2 + +# 付録の連番のスタイル。null(アラビア数字1〜。デフォルト)、alpha(英字A〜)、roman(ローマ数字I〜) +# appendix_format: null + +# 以下のsecnolevelはまだ未実装。 +# 前付でセクション番号を表示する見出しレベル(未実装) +# pre_secnolevel: 0 +# 後付(付録)でセクション番号を表示する見出しレベル(未実装) +# post_secnolevel: 1 +# 部番号を表示する見出しレベル(未実装) +# part_secnolevel: 1 + +# EPUB2標準の目次以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない) +# ePUB3においてはこの設定によらず必ず作成される +# mytoc: true + +# 表紙にするHTMLファイル。ファイル名を指定すると表紙として入る +# cover: null +# 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg) +# coverimage: null +# 表紙の後に大扉ページを作成するか。省略した場合はnull (作成しない) +# titlepage: null +# 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る +# titlefile: null +# 原書大扉ページにするHTMLファイル。ファイル名を指定すると原書大扉として入る +# originaltitlefile: null +# 権利表記ページファイル。ファイル名を指定すると権利表記として入る +# creditfile: null + +# 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる +# colophon: true + +# 裏表紙ファイル (画像はcoversまたはimagesに配置する)。ファイル名を指定すると裏表紙として入る +# backcover: null + +# プロフィールページファイル。ファイル名を指定すると著者紹介として入る +# profile: null +# プロフィールページの目次上の見出し +# profiletitle: 著者紹介 + +# 広告ファイル。ファイル名を指定すると広告として入る +# advfile: null + +# 取り込む画像が格納されているディレクトリ。省略した場合は以下 +# imagedir: images + +# 取り込むフォントが格納されているディレクトリ。省略した場合は以下 +# fontdir: fonts + +# imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下 +# image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"] + +# fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下 +# font_ext: ["ttf", "woff", "otf"] + +# review-compileに渡すパラメータ +params: --stylesheet=stylesheet.css +# Pygmentsカラーリングを利用する (pygments外部gemが必要) +# pygments: true + +# カタログファイル名を指定する +catalogfile: catalog.yml +# 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5)。 +# page_metric: A5 +# あるいは、配列で指定することもできる +# 各数字の意味は、順にリストの行数、リストの1行字数、テキストの行数、テキストの1行字数、1kバイト毎のページ数 +# page_metric: [40,80,40,80,2] + +# 以下のパラメータを有効にするときには、 +# epubmaker: +# パラメータ: 値 +# パラメータ: 値 +# ... +# という構成にする必要がある(インデントさせる) + +# epubmaker: +# 目次を要素の階層表現にしない。省略した場合(null)は階層化する。 +# 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに +# パスしない目次ができるが、そのようなときにはこれをtrueにする +# flattoc: null +# 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ) +# flattocindent: true +# NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない +# ncxindent: +#- +#- - +# フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される +# プログラムには実行権限が必要 +# ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。 +# 渡される引数1=作業用展開ディレクトリ +# hook_beforeprocess: null +# 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。 +# 渡される引数1=作業用展開ディレクトリ +# hook_afterfrontmatter: null +# 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。 +# 渡される引数1=作業用展開ディレクトリ +# hook_afterbody: null +# 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。 +# 渡される引数1=作業用展開ディレクトリ +# hook_afterbackmatter: null +# 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。 +# 渡される引数1=作業用展開ディレクトリ +# hook_aftercopyimage: null +# ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。 +# 渡される引数1=ePUB準備ディレクトリ +# hook_prepack: null +# 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む) +# なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる +# verify_target_images: null +# verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列 +# force_include_images: [] +# Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか +# rename_for_legacy: null +# ePUBアーカイブの非圧縮実行 +# zip_stage1: "zip -0Xq" +# ePUBアーカイブの圧縮実行 +# zip_stage2: "zip -Xr9Dq" +# ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS) +# zip_addpath: null +# EPUBで表紙をコンテンツに含めるか。デフォルトでは作成されない。yesにするとiBooks等でも最初に表紙が表示されるようになる +# cover_linear: null +# +# epubmaker:階層を使うものはここまで + +# LaTeX用のスタイルファイル(styディレクトリ以下に置くこと) +# texstyle: samplemacro +# LaTeX用のdocumentclassを指定する +# texdocumentclass: ["jsarticle", "b5paper,oneside"] +# LaTeX用のコマンドを指定する(platex or lualatex) +# texcommand: "platex" +# LaTeX用のオプションを指定する(default: "-kanji=#{kanji}") +# texoptions: "-kanji=utf-8" +# LaTeX用のdvi変換コマンドを指定する(dvipdfmx) +# dvicommand: "dvipdfmx" +# LaTeX用のdvi変換コマンドのオプションを指定する +# dvioptions: "-d 5" + +# 以下のパラメータを有効にするときには、 +# pdfmaker: +# パラメータ: 値 +# パラメータ: 値 +# ... +# という構成にする必要がある(インデントさせる) +# +# pdfmaker: +# TeXコンパイル前に実行するプログラム。変換後のTeXソースを調整したいときに使用する。 +# 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ +# hook_beforetexcompile: null +# TeXコンパイル後に実行するプログラム。索引作業をして再度コンパイルしたいときなどに使用する。 +# 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ +# hook_aftertexcompile: null +# PDF(book.pdf)作成後に実行するプログラム。PDFに加工を施したいときに使用する。 +# 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ +# hook_afterdvipdf: null +# +# pdfmaker:階層を使うものはここまで + Added: stylesheet.css (+108 -0) 100644 =================================================================== --- /dev/null +++ stylesheet.css 2015-02-28 12:05:54 +0900 (dcfd4e3) @@ -0,0 +1,108 @@ + �� charset "utf-8"; + +h1 { + color: #000080; + font-weight: bold; + text-align: center; +} + +h2 { + color: #000080; + font-weight: bold; + border-bottom: dotted 1px #000080; + margin-top: 1em; +} + +h3 { + color: #000080; + border-bottom: dotted 1px #000080; + margin-top: 1em; +} + +p.lead { + padding: 1em; + background: #c0c0ff; +} + +p.footnote { + font-size: xx-small; + padding: 1em; + background: #d0d0d0; +} + +p.sourcecaption { + font-weight: bold; + text-align: center; +} +p.imagecaption { + font-weight: bold; + text-align: center; +} +p.listcaption { + font-weight: bold; + text-align: center; +} +p.emlistcaption { + font-weight: bold; + text-align: center; +} +p.tablecaption { + font-weight: bold; + text-align: center; +} +p.notecaption { + font-weight: bold; + text-align: center; +} + +img { + text-align: center; +} + +table { + border: solid 1px #000000; + width: 90%; + margin-bottom: 1em; +} + +th { + border-bottom: solid 1px #000000; + background: #800000; + color: #ffffff; +} + +span.kw { + font-weight: bold; +} + +div.column { + padding: 0.5em; + background: #ffd0d0; + border: dotted 2px #808080; +} + +div.image { + text-align: center; +} + +div h5 { + font-size: larger; + border-bottom: solid 1px #000000; +} + +p { + text-indent: 1em; +} + +p.caption { + font-weight: bold; + text-indent: 0em; +} + +p.noindent { + text-indent: 0em; +} + +p.flushright { + text-align: right; +} -------------- next part -------------- HTML����������������������������...Download