qiita2review をインストール

# qiita2review

https://github.com/nanbuwks/qiita2review


「qiita2reviewの使い方」
https://qiita.com/nanbuwks/items/5625acb49580084696c5

「Re:VIEW を apache で動かす」
https://qiita.com/nanbuwks/items/dd15819ec7798a9eca7b

で紹介した、マルチユーザーで記事を執筆してPDF本を作るオンラインシステムをインストールする説明です。



# 環境

- Ubuntu 22.04 LTS 
- Re:VIEW 5.8

:::note 
2024/12/25 追記

以下でも動作確認OKでした。

- Ubuntu 24.04 LTS 
- Re:VIEW 5.10


:::

「AWS 上に Re:VIEW 環境を構築する (Ubuntu22.04 + Re:VIEW5.8)」
https://qiita.com/nanbuwks/items/653dda3993ebc23e6081
でインストールした環境です。

# 下準備

まず、Webサーバで動作させるために apache と php をインストールします
```
$ sudo apt install apache2 php python3-pip
```
apache の動作を確認してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3b0d1a42-f2b3-8b02-2ed1-1a543bed8a4a.png)


次に、qiita2review は、内部で markdown パーサ mdmd を使っています。mdmd が必要とするライブラリをインストールします。
```

$ sudo pip install mistletoe
```

作業場所 `/var/www/html ` での作業のため、`root` ユーザになっておきます。

```
$ sudo bash
```

# インストール

httpd の DocumentRoot で作業します。その他の場所を使う場合は適宜読み替えてください。

```
# cd /var/www/html
```

テストページを削除

```
# rm index.html
```

小冊子ごとにディレクトリを分けることにします。今回は milkV というディレクトリにしました。

```
# mkdir milkV
# chown www-data:www-data milkV
# cd milkV
```


ここに、github.com:nanbuwks/qiita2review.git
https://github.com/nanbuwks/qiita2review
の内容を展開します。

/var/www/html/milkV に以下のものがあるようにします。

```
# ls
README.md  compile.php      make.php       md2review_special.sh  new.php        qiitaget.sh     scalemd.rb            test.sh
articles   escapeincode.rb  makeauthor.rb  mdmd                  preimage.rb    qiitagetold.sh  slash2braceincode.rb  texblock.rb
book       index.php        makeurl.rb     mdmdorig              preprocess.rb  qiitamd.rb      template              texinline.rb
```
また、qiita2review が用いる markdown パーサ mdmd 

https://github.com/nanbuwks/mdmd

を `milkV/mdmd` に展開します。

`milkV/mdmd` の中身が以下のようになっているようにします。
```
# ls mdmd
LICENSE  README.md  mdmd.py  mdmd_renderer.py
```

ファイル所有者を調整します。

```
# chown -R www-data:www-data *
```
# 動作テスト

サーバにWebブラウザでアクセスします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8378b24e-41ec-4f33-4e67-32fd6d97a0bd.png)

`milkV/` ディレクトリをクリックすると以下の画面になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/51fb5928-92dc-3092-0c03-9160d23f3016.png)

# 書誌デザインの調整

「Re:VIEW でレイアウトを調整してみよう」
https://qiita.com/nanbuwks/items/4dd9230058d1510dc93c

 などの変更については、この時点でインスールしておくのが楽です。

 template ディレクトリ内に書誌デザインに係るファイルを配置していきます。


 今回は、config.yml および review-ext.yb,Gemfile, sty/review-custom.sty を配置しました。

 
# つかっていく
 


あとは 「qiita2reviewの使い方」
https://qiita.com/nanbuwks/items/5625acb49580084696c5
を見て設定していきます。

# トラブルシューティング

記事を登録したけど pdf 化がうまくいかないとき

今回記事名として `webserver` という名前にしています。
個別記事は `articles` ディレクトリに収容されています。
その中の `webserver` ディレクトリに移ります。
```
# cd articles/webserver/
# ls
Gemfile   catalog.yml  doc     lib           normalmd2.md      qiitaall.md         sty        temp.md       webserver.pdf
Rakefile  config.yml   images  normalmd1.md  qiita2review.yml  qiitanopreample.md  style.css  webserver.md  webserver.re
```
実行プログラムは 記事ディレクトリから見て 2つ上の階層にあります。

```
 
 ls ../..
README.md  compile.php      make.php       md2review_special.sh  new.php        qiitaget.sh     scalemd.rb            test.sh
articles   escapeincode.rb  makeauthor.rb  mdmd                  preimage.rb    qiitagetold.sh  slash2braceincode.rb  texblock.rb
book       index.php        makeurl.rb     mdmdorig              preprocess.rb  qiitamd.rb      template              texinline.rb

```

この中の、`compile.php` が pdf 化するスクリプトです。
該当箇所
```
<?php
passthru("export LC_CTYPE=en_US.UTF-8; export LANG=en_US.UTF-8; cd articles/".$sectionName." ; ../../qiitaget.sh > /dev/null ".$sectionName);


  ?>
```
シェルスクリプトを記事名を引数にとって実行しています。
この処理をコマンドラインで実行してみます。


```
# ../../qiitaget.sh webserver
```
qiita から記事と画像ファイルをダウンロードし、markdown を re 形式に変換して Re:VIEW にかけます。 

```
https://qiita.com/kazueda/items/736fa17584659426f056
rm: cannot remove 'qiita.md': No such file or directory
--2024-01-25 10:20:16--  https://qiita.com/kazueda/items/736fa17584659426f056.md
Resolving qiita.com (qiita.com)... 52.199.238.89, 57.181.68.9, 35.73.20.90, ...
Connecting to qiita.com (qiita.com)|52.199.238.89|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/x-markdown]
Saving to: ‘qiitaall.md’

qiitaall.md                                [ <=>                                                                       ]   2.74K  --.-KB/s    in 0s      

2024-01-25 10:20:17 (288 MB/s) - ‘qiitaall.md’ saved [2802]

python3: can't open file '/var/www/html/milkV/articles/webserver/../../mdmd/mdmd.py': [Errno 2] No such file or directory
No URLs found in images.list.
review-pdfmaker  config.yml
ℹ INFO    compiling webserver.tex  
ℹ INFO    uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
ℹ INFO    uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
ℹ INFO    uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex
ℹ INFO    dvipdfmx -d 5 -z 9 __REVIEW_BOOK__.dvi
✔ SUCCESS built book.pdf           
```

book.pdf はできているけど 途中でエラーが出てますね。


```
python3: can't open file '/var/www/html/milkV/articles/webserver/../../mdmd/mdmd.py': [Errno 2] No such file or directory
```

これは、markdown パーサ mdmd が必要なところに配置されていないためです。
mdmd をインストールしなおせば、解決しました。