Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

キャッシュを出力して差分があるかどうか判定する #106

Closed
tsutaj opened this issue Nov 24, 2022 · 5 comments
Closed
Milestone

Comments

@tsutaj
Copy link
Owner

tsutaj commented Nov 24, 2022

概要

PDF を出力すると差分が必ず出てしまうが、これが必要な差分なのか否かを判断する手段がない

何かを出力する際にはキャッシュも出力するようにし、差分があるときだけ更新するようにしたい

実装

  • キャッシュファイルを ss-out/cache.json か何かで持つ
  • 成果物ごとにキャッシュを持つ
    • 成果物ごとに出力するタイミングが異なるため。例えば HTML 出力と PDF 出力は必ずしも同じバージョンで行われたものとは限らない
  • コンテンツ・添付ファイルに対応するキャッシュを持たせる
    • どの形式で出力するにしても、内部では必ず HTML 形式で出力するようにし、その結果を SHA256 checksum か何かにして contents キーに保存しておく。
    • 添付ファイルも 1 つずつ checksum 化して保存しておく
  • 成果物 (Markdown / HTML / PDF) を出力するとき、直前に出力したものに対応するキャッシュと差分がなければスキップする
    • 例えば PDF を出力してくれというコマンドが来たら、内部で HTML を作って checksum を計算して dict を作る。これが cache_dict[dict] と同一であれば PDF を作らずに処理を終了する。そうでなければ cache_dict[dict] を更新して PDF を作る。
"md": {
    問題 A: {
        "contents": コンテンツに対応するキャッシュ,
        "assets": {
            "file_1": 添付ファイル 1 に対応するキャッシュ,
            "file_2": 添付ファイル 2 に対応するキャッシュ,
            ...
        }
    },
    ...
},
"html": {
    問題 A: {
        "contents": コンテンツに対応するキャッシュ,
        "assets": {
            "file_1": 添付ファイル 1 に対応するキャッシュ,
            "file_2": 添付ファイル 2 に対応するキャッシュ,
            ...
        }
    }
},
"pdf": {
    問題 A: {
        "contents": コンテンツに対応するキャッシュ,
        "assets": {
            "file_1": 添付ファイル 1 に対応するキャッシュ,
            "file_2": 添付ファイル 2 に対応するキャッシュ,
            ...
        }
    }
}
@tsutaj tsutaj added this to the v1.7.0 milestone Nov 24, 2022
@tsutaj
Copy link
Owner Author

tsutaj commented Nov 24, 2022

assets のファイル名は ss-out からの相対パスが良さそう。環境の違いを吸収したいため

@tsutaj
Copy link
Owner Author

tsutaj commented Nov 24, 2022

テンプレートだけ変わったときに対応できていない

追記: これ気のせいじゃないか?中身の HTML が変わったらハッシュ変わるのでテンプレート変わっても大丈夫そう

@tsutaj
Copy link
Owner Author

tsutaj commented Nov 24, 2022

キャッシュを無視して強制的に上書きする機能がほしい

@tsutaj tsutaj modified the milestones: v1.7.0, v1.7.1 Nov 24, 2022
@tsutaj
Copy link
Owner Author

tsutaj commented Nov 24, 2022

#109 でオプション追加した。

対応したので close

@tsutaj tsutaj closed this as completed Nov 24, 2022
@tsutaj tsutaj modified the milestones: v1.7.2, v1.7.0 Nov 24, 2022
@tsutaj
Copy link
Owner Author

tsutaj commented Nov 25, 2022

ファイルの存在性くらいチェックするべきな気がしてきた (ファイルが存在しないのに保存しなかったらやばくない?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant