Redmine: 印刷対象外領域書けるマクロを作った


Redmineで印刷対象外の領域を書けるマクロを作りました。

https://github.com/taikii/redmine_noprint_macro

使い方

{{noprint}} の記述は、ブラウザで見る分には表示されますが、ブラウザで印刷しようとすると対象外となります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{{noprint
## 関連Wikiページ

* [[HogeHoge]]
* [[FugaFuga]]

## 関連Issue

* ##123
* ##456
}}

動機

よくあるトラブルの対応方法とか作業手順とかをWikiに書いておいたとして、その問い合わせを受けたときに、Redmineが公開運用をしている場合はWikiページのリンクを渡すことができますが、非公開の場合はそういうわけにはいかないですよね。

Redmineが非公開でアクセス権もない人にWikiページの情報を渡そうとする場合は、ブラウザでPDF印刷(Chromeとかにある印刷→PDFで保存)して渡すことになると思います。(RedmineにはPDFエクスポートする機能がありますが、一旦忘れましょう。)

しかしですね、ブラウザでPDF印刷するとリンクがそのままPDF化されてしまいます。つまり、他のWikiページへのリンクやチケットへのリンクもそのままPDF化されてしまいます。渡された側としてはアクセスできないリンクがあると混乱しますよね?「リンク先にアクセスできないんですけど?」っていう余計なやり取りが発生してしまうかもしれません。

じゃあ、他のWikiページやチケットへのリンクは書かないようにする…のは、折角のWikiの利点が失われてしまいます。「過去にこういうIssueがあってこの手順ができた」とか「この問題の原因はこっちのWikiページ参照」とか書きたいじゃないですか。

そいういうときに「関連Wikiページ」とか「関連Issue」をまとめたセクションを作って、Redmineにアクセス権がある人に対してはそのまま表示し、PDF印刷して渡す場合はそのセクションは印刷されないようにしてやろう、と考えました。

そういう感じです。