Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cysec-lab/OverleafWithGit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

20 Commits

Repository files navigation

WatchOverleaf

  • Overleaf プロジェクトを Git/GitHub で差分管理する機能を Overleaf の無償版(Community)に追加する
  • Overleaf プロジェクトを編集し, PDF が出力されるタイミングでリポジトリに PUSH する

Overleaf とは (https://ja.overleaf.com/) Overleaf Community 版 (https://github.com/overleaf/overleaf)

依存関係

セットアップ

GitHub

CUI 操作

$ git clone https://github.com/cysec-lab/OverleafWithGit.git
$ cd OverleafWithGit
$ sudo docker-compose up -d # サイズは10GB程度.削減する場合は, Latexの不要なパッケージを削除する
$ sudo docker exec watch-overleaf /bin/bash -c "cd /var/www/sharelatex; grunt user:create-admin --email=admin@example.com" # Adminユーザの作成, 実行後に表示されるURLにアクセスしパスワードを設定する
$ # http://localhost に設定した認証情報でアクセスし, 適当なOverLeafプロジェクトを作成する
$ sudo docker ps ## 出力は例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ffd1bee143c1 takukitamura/watch-overleaf "/sbin/my_init" 29 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp watch-overleaf
99475ae05634 redis:5 "docker-entrypoint.s..." 43 hours ago Up 13 seconds 6379/tcp redis
3ab5222f1753 mongo "docker-entrypoint.s..." 4 days ago Up 13 seconds (healthy) 27017/tcp mongo
$ docker exec -it ffd1bee143c1 bash ## 以下, watch-overleafコンテナ内
root@ffd1bee143c1:/# cd ~/watchOverleaf/
root@ffd1bee143c1:~/watchOverleaf# git pull origin master
root@ffd1bee143c1:~/watchOverleaf# cp main.py demo.py # ソースコードをコピーする
root@ffd1bee143c1:~/watchOverleaf# vim demo.py ## プログラム内に, 書き換え必須 ✅もしくは, 書き換えが必要かもしれない と書いてある変数を適宜書き換え保存する
~~~
# ユーザ変数
# OverleafのプロジェクトID, ユーザID
# 1. latex編集画面で, Webデベロッパーツールを開く
# 2. コンソールで以下の入力をして出力されるものが, プロジェクトID, ユーザID
# > project_id
# "5f8d2f5e40a9cd007604f46b"
# > user_id
# "5f8f784af6e341007b878a51"
#
# 書き換え必須 ✅
PROJECT_ID = '5f8d2f5e40a9cd007604f46b' # プロジェクトを一意に決める
# 書き換え必須 ✅
USER_ID = '5f8f784af6e341007b878a51' # ユーザを一意に決める
# 書き換え必須 ✅
GITHUB_USER_NAME = 'TakuKitamura' # GitHubのID
# 書き換え必須 ✅
GITHUB_REPO_NAME = 'verified-mqtt-parser-paper' # Overleafプロジェクトをホスティングしたいリポジトリ名
# NginxのAccessログのパス, 書き換えの必要が出るかもしれない
NGINX_LOG_PATH = '/var/log/nginx/access.log'
# 書き換えが必要かもしれない
GIT_BRANCH_NAME = 'master' # GitHubリポジトリ上でホスティングするブランチ名
# 書き換えが必要かもしれない
PAPER_DIR_NAME = 'overleaf' # リポジトリルートに作成されるディレクトリ名
# 書き換えが必要かもしれない
EXCLUDE_LIST = './exclude_list' # OverLeafプロジェクトから余計なファイルがPUSHされた場合は, ここに追加する
~~~
root@ffd1bee143c1:~/watchOverleaf# vim ~/.netrc ## gitコマンドの認証を自動で行う .netrcを作成する. 下記は例
machine github.com
 login TakuKitamura
 password xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
root@ffd1bee143c1:~/watchOverleaf# python3 demo.py
root@ffd1bee143c1:~/watchOverleaf# exit

プログラム起動後, 再度 http://localhost にアクセスする. OverLeaf プロジェクト内の文書を変更し, PDF が更新されるのを確認する.そして, その変更がリポジトリ直下の overleaf ディレクトリに反映されていれば動作している. 永続化は $ nohup python3 demo.py & などする

トラブルシューティング

プログラムは動作しているが, リポジトリに変更が反映されない

コンテナ内でNGINX_LOG_PATHが指す先のログが正しく反映されているか確認する. 例えば, $ tail /var/log/nginx/access.log などでログが更新されているか, NGINX_LOG_PATHが間違っていないか確認する

OverLeaf で文書を編集する際のカーソルの位置が変だ

どうやら, フォントが等幅でないとそうなるんだそう. なので, ブラウザのフォント設定から等幅フォントを選択すればなおる.

日本語文書の作り方がわからない

参考にさせていただきました. https://doratex.hatenablog.jp/entry/20180503/1525338512

プログラムが動かない

すいませんが, Pull Requestやissueください. まだまだ, バグはあると思います.

TODO

  • ユーザが与える変数をコマンドオプションから与えられるようにする
  • git の認証情報をプログラムごとに分けられるようにする
  • あるであろうバグの修正
  • リファクタリング

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /