37
株株株株株株株株株株株株株株株株株株 株株株株株株株株 株株 株株 Confluence と DITA ととと Web とととととととととと

Confluence と DITA によるWebマニュアル作成フロー

Embed Size (px)

DESCRIPTION

2014/02/25 #augj での発表資料です。 Confluenceのストレージフォーマット(XML)をDITA変換してWebマニュアルを作成した事例を紹介します。

Citation preview

Page 1: Confluence と DITA によるWebマニュアル作成フロー

株式会社インターネットイニシアティブプロダクト推進部

山口 貴史

Confluence と DITA によるWeb マニュアル作成フロー

Page 2: Confluence と DITA によるWebマニュアル作成フロー

‐ 2 ‐

Confluence 使ってます(どっぷり浸かっています) 導入事例が載りました

• http://www.ricksoft.jp/case-studies/iij

Page 3: Confluence と DITA によるWebマニュアル作成フロー

‐ 3 ‐

自己紹介

IIJ 勤務• ドキュメント書き• 製品 / サービスのサポート担当• 非プログラマー

• 簡単なスクリプトくらいなら…

休日はネコとかカモとか探してます

Page 4: Confluence と DITA によるWebマニュアル作成フロー

‐ 4 ‐

本日のネタ 製品マニュアルの編集環境として Confluence を活用する事例を紹

介します。• Word も InDesign もテキストエディタも要らなくなります

• メンテナーには速い PC と高機能な XML エディタを

書き溜めたコンテンツをいかに再利用するか

Page 5: Confluence と DITA によるWebマニュアル作成フロー

‐ 5 ‐

ある日の注文 シンプルな Web ( HTML )マニュアルを作りたい 変更をすぐに反映したい 専門技術なしで編集したい 変更管理もしたい

Confluence なら誰でも書けるよね• 絵も Gliffy で描けるし• じゃぁ何とかするので Confluence で原稿書いてください

Page 6: Confluence と DITA によるWebマニュアル作成フロー

‐ 6 ‐

できたモノ

Page 7: Confluence と DITA によるWebマニュアル作成フロー

‐ 7 ‐

宣伝 SlicePoint 提供開始しました

Page 8: Confluence と DITA によるWebマニュアル作成フロー

‐ 8 ‐

事例その1 SlicePoint FAQ とユーザーガイド( Web マニュアル)

• http://www.slicepoint.jp/

Confluence で原稿書いてます

Page 9: Confluence と DITA によるWebマニュアル作成フロー

‐ 9 ‐

宣伝その2 クラウドサービスもあります

• Confluence や SlicePoint も導入できます

Page 10: Confluence と DITA によるWebマニュアル作成フロー

‐ 10 ‐

事例その2 IIJ GIO ホスティングパッケージサービス API Reference

• http://manual.iij.jp/gp/gpapi/

Confluence で原稿書いてます

Page 11: Confluence と DITA によるWebマニュアル作成フロー

‐ 11 ‐

Confluence と DITA

Page 12: Confluence と DITA によるWebマニュアル作成フロー

‐ 12 ‐

いきさつ シンプルな作業フローで Web マニュアルを作りたい Confluence で書いて HTML エクスポートしては? PDF も出せま

す シンプルとは言っても手は入れたい(レイアウトとか) うちの製品でそういうの( Web マニュアル内製)やってたよね? それは DITA を使ってます。 DITA は書き手の訓練が少々必要です

DITA のマークアップは XML だね Confluence のストレージフォーマットも XML らしいね

変換でなんとかなるんじゃない?

Page 13: Confluence と DITA によるWebマニュアル作成フロー

‐ 13 ‐

宣伝 件のうちの製品

• ルータ製品 SEIL (ザイル)シリーズ

Page 14: Confluence と DITA によるWebマニュアル作成フロー

‐ 14 ‐

DITA 事例 SEIL シリーズ技術情報( Web マニュアル)

• http://www.seil.jp/support/

DITA で書いてますConfluence 使ってません(まだ)

昔は TeX > PDF でした

多機種展開するプロダクトにはよくマッチします

Page 15: Confluence と DITA によるWebマニュアル作成フロー

‐ 15 ‐

DITA って? Darwin Information Typing Architecture (DITA)

• IBM 社がマニュアル製作のために(全部置き換える前提で)考えた本気仕様• OASIS に仕様を寄付• XML ベースのマークアップ記法

• 同一ソースから色々なフォーマットでアウトプットできる• HTML, PDF, ePub, Windows Help, etc…

推進団体• DITA コンソーシアムジャパン• http://dita-jp.org/

DITA Open Toolkit• http://dita-ot.github.io/• DITA のオープンソース実装

日本語の導入情報もぼちぼち増えてきました

Page 16: Confluence と DITA によるWebマニュアル作成フロー

‐ 16 ‐

Confluence と DITA

ドキュメント作成ツールとしてみた場合… Confluence は CMS

• WordPress, MovableType, Wiki, etc…• 文章の入力や管理、閲覧を支援するツール• Web フォームなどで編集する

• マークアップの知識が不要• がっちりした独自システムで提供され、文書データはデータベースの中

DITA は変換システム• TeX, DocBook, Sphinx, etc…• テキスト(ソース)を任意の文書(ファイル)に変換するツール• テキストエディタや XML エディタで編集する

• マークアップの知識が必要• ツール自体を部品として組み込める。文書データは個別のテキストファイル• 大抵、テーブル(表)を書くときに泣きます

• 対応した WISYWIG 系のエディタが導入できると便利

Page 17: Confluence と DITA によるWebマニュアル作成フロー

‐ 17 ‐

DITA を扱える CMS 文書の作成・管理が主軸になってしまう

• 専門のエディタと連携した総合環境的なシステム• Confluence のような手軽さやコミュニティ機能とは別路線

高価なのです…

Page 18: Confluence と DITA によるWebマニュアル作成フロー

‐ 18 ‐

DITA の利点 機械的処理に有利

• XML なので大抵の処理系で扱える。• XHTML より構造化ルールが厳格

マニュアル作成のために作られた仕様である• 書式に従うだけでマニュアルっぽくなる

• (書き手の個性を出しにくい)

翻訳(多言語対応)に有利• 文章の body 部分しか持たず、レイアウト要素は文章と切り離されているた

め、重複部分の翻訳が必要無い• XML で構造化されているため、除外処理が容易(翻訳支援ソフト次第)

Page 19: Confluence と DITA によるWebマニュアル作成フロー

‐ 19 ‐

使用ツールと環境 Confluence

• 編集環境

DITA Open Toolkit (DITA-OT)• HTML マニュアルの生成

Confluence Wiki の内容を DITA に変換するスクリプト• 自作( XSLT )

Git (GitHub Enterprise)• 生成物のバージョン管理(省略)

Jenkins• 自動生成・自動デプロイ(省略)

ビルド用ホスト• DITA-OT が動く Java 実行環境 (JRE) があればWindows PC でもよい

Page 20: Confluence と DITA によるWebマニュアル作成フロー

‐ 20 ‐

(概ね)なんとかなりました。 Confluence にスペースを作ってマニュアルを書く スペースを XML エクスポートする XSLT で DITA フォーマットに加工する DITA Open Toolkit で HTML に変換する GitHub Enterprise でバージョン管理する 公開サーバにデプロイする

Confluence で 編集

GitHub でバージョン管理

エクスポートして料理

XSLT で DITAに

DITA で HTML に

公開サーバにデプロイ

Page 21: Confluence と DITA によるWebマニュアル作成フロー

‐ 21 ‐

舞台裏

Page 22: Confluence と DITA によるWebマニュアル作成フロー

‐ 22 ‐

もう少し踏み込みます Confluence にマニュアル作成スペースを作る Confluence からの XML エクスポート Confluence のストレージフォーマットの解析 DITAへの変換

Page 23: Confluence と DITA によるWebマニュアル作成フロー

‐ 23 ‐

Confluence のマニュアル作成スペース ふつうのスペース

• 内部的なメタ情報を少々追加(ただのテーブル)

原稿

作法とか

ワークフロー的な情報

セクションごとのメタ情報

赤入れ(指摘)は随時コメントに

テンプレートをいくつか用意

Page 24: Confluence と DITA によるWebマニュアル作成フロー

‐ 24 ‐

Confluence からの XML エクスポート (Web) Web からエクスポート

Page 25: Confluence と DITA によるWebマニュアル作成フロー

‐ 25 ‐

Confluence からの XML エクスポート (API)

/// ログインしてトークンを取得String token = (String)client.execute("confluence2.login", new Object[] {user, pass});/// エクスポート URL を取得String exportUrl = (String)client.execute("confluence2.exportSpace", new Object[] {token, spaceKey,"TYPE_XML" });

API を利用• Java を使用しています

• login メソッドでトークンを取得

• トークン、スペースキー、エクスポートタイプを指定して exportSpace

• ダウンロード URL ( ZIP ファイル)が取得できる

Page 26: Confluence と DITA によるWebマニュアル作成フロー

‐ 26 ‐

エクスポートの中身 全部入り

• バックアップデータなので当然ながら全部入っている• ページの内容(履歴も)• 添付ファイル(履歴も)• コメント• ラベル• etc…

添付ファイルが格納されているGl iffy の作図データも入っている

スペース内の全ページ、全履歴、メタデータ等詰まった大きな XML

エクスポート(バックアップ)に関する情報日付とかスペース名とか

Page 27: Confluence と DITA によるWebマニュアル作成フロー

‐ 27 ‐

entities.xml こんな感じ

ページっぽい

いいね!っぽい

Page 28: Confluence と DITA によるWebマニュアル作成フロー

‐ 28 ‐

手がかり ID で探索してみると

発見

それっぽい

ページの中身はまた別らしい

配下のページの ID 一覧

Page 29: Confluence と DITA によるWebマニュアル作成フロー

‐ 29 ‐

ツリーを復元する ホームページの ID を起点に、配下のページ ID を探索していく

それらしく再現できる

ページのファイル名はページ ID を使うことにした

DITA では <topicref> のネストで目次階層を表現する

Page 30: Confluence と DITA によるWebマニュアル作成フロー

‐ 30 ‐

ページ本文を調べる ボディ部分は CDATAセクションに格納されている

セクションマクロは独自 XML 表記

基本的なマークアップはHTML そのもの

( DITA でもほぼ同じ)

Page 31: Confluence と DITA によるWebマニュアル作成フロー

‐ 31 ‐

添付ファイル 添付ファイルは厄介

添付ページごとのフォルダ(たぶん)

添付ファイルごとのフォルダ

添付ファイルのバイナリ履歴付き

ファイル名やファイル形式はentities.xml で辿る

Page 32: Confluence と DITA によるWebマニュアル作成フロー

‐ 32 ‐

添付ファイル どう繋げるか

"Page" に "Attachment"として ID が入っている

"Attachment" に ファイル名等が入っている

<p>  <ac:image>    <ri:attachment ri:filename="logout002.png" />  </ac:image></p>

本文には ファイル名で書かれている

Page 33: Confluence と DITA によるWebマニュアル作成フロー

‐ 33 ‐

DITA的応用( FAQ ) テンプレートとコンディショナル処理

“Q” と “ A” の枠をFAQ テンプレートでつくっておく「枠ごとコピぺで増やしてね!」

ページ内の情報からDITA のフィルタ属性を埋める

HTML 出力時に付加する” class”

Confluence ライターもDITA ライターも楽々

Page 34: Confluence と DITA によるWebマニュアル作成フロー

‐ 34 ‐

課題 アウトソースしづらい

• 社内運用の Confluence に外部から接続させるのはセキュリティ的に難しい• Confluence で書いてくれるアウトソース先の捜索

メンテナーの確保• XSLT しか使っていないとはいえ、独自実装なのでメンテナンス要員は確保

しておかないとブラックボックス化してしまう

DITA を活かせていない• バリデーションの厳しい変換ツールとしての役割のみ• 目的は達せているが DITA 書きとしては物足りない

Confluence上でのメタ情報記述• ラジオボタンやセレクトボックスがほしいところ

• タスクマクロ流用では通知頻度がはんぱない…

Page 35: Confluence と DITA によるWebマニュアル作成フロー

‐ 35 ‐

勝手に宣伝 実はプロダクトもあります

• WikiWorks• http://wikiworks.jp/• ナレッジオンデマンド株式会社• Confluence を活用したドキュメンテーション・ワークフレーム

Page 36: Confluence と DITA によるWebマニュアル作成フロー

‐ 36 ‐

XML エディタ紹介 <oXygen/> XML Editor

• DITA 編集が楽になります(編集しなくて済むようになるわけですが…)• XSLT の編集と実行にも便利

Page 37: Confluence と DITA によるWebマニュアル作成フロー

‐ 37 ‐

ありがとうございました