DITA

ditamap内データのエレメントデータについて

  • 3rd 3月 2016
  • DITA

FrameMakerを利用したDITA案件が増えてきている。
1点今後のためにメモ。

ditamap内に定義される各種データに、2バイト文字が利用されることがある。
メタ情報の設定場所なので多々でてくる。

ditamapのデータは他のFMデータと同じようにしてテキストデータを取得できるのだが
ditamapデータはFMに投げ込まれた時にテンプレートとEDDが紐付いていることを
忘れてはならない。

ある要素の内容についてF_ApiGetTextなどを利用して取得するのだが
ditamap用のテンプレートで各要素に設定されているフォントが
2バイト文字に対応していない場合、プログラム側でどうやって
処理しようとしても必ず文字化けとなってしまい正しい値を取得できない・・・。
また、取得できたとしてもEDD側で要素に対してPrefixが設定されている場合
予定なテキストデータまでくっついて取得できてしまう。

ditamapに定義されているデータを表紙などに利用しようとする場合に
ditamapにはテンプレートとEDDが強く関連していることを念頭に
おいておかなければならない。
単なる各種ditaデータへのパスが定義されているMAPデータではないということ

FDK Reference … dita

  • 10th 2月 2016
  • DITA

FrameMaker12 以降 ditaという点ではかなり頑張ってきたFrameMaker
カスタマイズ用にFDKも公開されており活用させていただいています。

が…マニュアルが英語なのは仕方がないと思っていますが
dita関連のメソッドやプロパティなど利用できるのであれば
FDK Referenceにはしっかりと記述して欲しいものです。

いくつかのプロパティやメソッドはReferenceには書かれていないものの
実際にはAPIが用意されていました…。

Adobeさんにはドキュメント類のアップデートもお願いしたいと思います。

FrameMaker DITA 表の列幅

  • 2nd 2月 2016
  • DITA

FrameMakerで用意されているDITA用構造化アプリケーションだが、
FMファイル上で指定した表幅をそのまま維持したい場合、つまり
表列幅の実サイズをdita、XMLに書き出したい場合は
デフォルトで用意されている構造化アプリケーションのRWルールを
書き換える必要がある。

Rwルールファイルの最後の方に以下の一文があるので
これをコメントアウトする。

writer use proportional width;

これをコメントアウトすることで
tgroup要素直下のcolspec要素のcolwidth属性の属性値に
実サイズがインチで出力される。

※ インチ以外の出力は無理…。

デフォルトの場合は表幅に対する比率がcolwidth属性に指定されることになっている。
pgwide属性を利用することが想定されているということ。

2016.02.02 追記

dita側でcolspec要素を設定して各列の幅を指定するも、テンプレートに充てて構造化データとしてレイアウトされると
colspec要素が邪魔となって表のレイアウトが崩れてしまう…。RWルールでcolspecをdropするとエラーも崩れもなく
表レイアウトされるが、幅の指定がpgwide頼みとなってしまい列幅が均等になってしまう…。解決先を模索中…。

Oxygen XML WebApp

  • 21st 1月 2016
  • DITA

ブラウザベースのXML編集に関してはCKEditorやJQueryを利用したモジュールで構築していることが殆どでしたが
oXygen XML WebAppを利用したシステム構築を検討中です。

demo はこちらです。
https://www.oxygenxml.com/webapp-demo-aws/app/oxygen.html

SDKも公開されているので、細かい部分を調整してかなり便利で安定したEditorに仕上げられそうです。
編集中のツリー表示ができればさらに良いのでこのあたりはJQueryを利用してモジュールを組み込みたいですね。

oxygen

FrameMaker12 目次項目に文字書式が適用されているとリンクしない

  • 3rd 2月 2015
  • DITA

DITAデータを統合文書としてFM文書へとコンバートしFrameMakerの目次作成機能を利用して目次を作成している。

目次項目のレイアウトはFrameMakerのリファレンスページに設定した内容に基づいて出力される。
目次項目のページ番号が表示される部分にのみ文字書式を設定してある場合、PDFを生成した際に
文字書式が設定されている部分にはリンクが設定されない。

今回の場合はページ番号部に設定したいてため、目次内容(目次テキスト部)にはリンクが設定
されているものの、ページ番号部分にはリンクが設定されないという状況が生じた。

重篤な問題のため早期解決をお願いしたい所…。

WS000158

※ 上記の図でおわかりになるとおり、枠線がない部分はクリックしてもリンクが効かないという状況

DITAで運用した際に、目次項目テキストにkeywordなどのタグが設定される可能性がある。
FrameMakerの標準仕様ではDITAのkeywordタグには自動的に文字書式が設定される。
この場合も文字書式が設定されるためPDFではリンクが設定されない。

ditamapからFrameMaker統合文書作成時の注意

  • 21st 1月 2015
  • DITA

FrameMakerにてDITAを運用する中で、ditamapファイルから統合文書を作成する場合がある。

この場合、FrameMakerではcompositeつまり統合文書等の構造化アプリケーションに設定された
テンプレートが利用される仕組みになっている。

このditamapから統合文書変換時にテンプレートは正しく適用されるが、
RWルールは適用されない。また統合文書用のテンプレートがconceptや
topic,taskなどが利用していたテンプレートとカラー定義やコンディショナルの
設定が異なる場合にすべてエラーとして認識しブックエラーが多数出力される。

ある程度の大きさのditamapを統合文書に変換する際にはエラーの出現により
数十分間作業ができなくなることがあるので注意が必要。
また、ditamapを統合文書に変換する際にはすべての構造化アプリケーションの
適用がされるよう改善されることを望みたい。(主にRWルールの適用)

DITA-FrameMaker統合文書

  • 9th 1月 2015
  • DITA

ditaデータにおいて以下のような構造を持つ部分があるとする。
(DITAスキーマ的にはなんら問題はない記述)

 <fig>
   ∟<title>fig 1.1 title text</title>
   ∟<image />

 
このような構造を持つditaをFrameMaker統合文書として
保存するとなぜか以下のように構造変換されてしまう。

 <fig>
   ∟<image />
   ∟<fm-figtitle>fig 1.1 title text</fm-figtitle>

 
このように統合文書ではFMの各種機能を利用できるようにするために
FM側で勝手に構造変換してしまう部分がある。
相互参照やIndexなどFMマーカなどを利用して実現する部分で
このような仕様が存在するようである。
HELPや資料に書いてあることとないことがあるために非常に困ってしまう。
(EDDやその他の設定ファイルにも変換定義がされていない)

fig直下title要素は利用しないこととして、image要素の後ろに
desc要素で画像の説明書きをするように元となるditaデータを調整したいと思う。

ここから、2015/1/9 追記です。

上記の件ですが、以下のようにすれば勝ってにtitle要素がfm-figtitle要素に変換されることなく
統合文書を作成できました。


 <fig>
   ∟<title>fig 1.1 title text</title>
   ∟<desc>fig 1.1 desc text</desc>
   ∟<image />

title要素とimage要素の間にdesc要素を挿入すると、このままの構造で
統合文書が生成されました。

DITAToo – Review no.4 [データ投入]

  • 11th 12月 2014
  • DITA

map,ditaをアップロードするにはいくつかの方法がある。

手動でアップロード

Repository内のアップロードしたいフォルダを選択して、
DitaTooAuthorのメニュー [File] – [Upload]から[Files…]か[Projects…]をクリックし、
アップロードしたいデータを選択しアップロードする方法。

WS000109

FrameMakerと連携

FrameMakerの標準メニューにある[CMS] – [接続マネージャ] をクリックし必要な情報を設定する。
正しい設定がされるとレポジトリポッドが表示される。

WS000107

WS000108

いずれかの方法でフォルダにアップロードできたら
DitaTooAuthor,FrameMakerから文書をmapに関連づける。
下記の画面参照

WS000112

アップロードされたデータは、DitaTooAutohr上でも配置を編集できる。
勿論、FrameMaker上でmapを編集することも可能

WS000113

Windows上のDitaToo WorkSpace

このようにしてアップされた各データはDitaTooインストール時に設定したWorkSpace上にファイルとして配置されている。
repositoryの階層情報がすべてそのままWorkSpaceフォルダに展開されている。

※ 今日はここまで

次回はアップされたmapとditaデータの関連付けと、履歴管理について考察してみる。

DITAToo – Review no.3 [フォルダ作成]

  • 10th 12月 2014
  • DITA

DitaTooAdmin,DitaTooAuthorのインストールと環境設定などができたので
実際のデータを投入し管理したい。

DitaTooは管理者がDitaTooAdminでフォルダを作成して、
そのフォルダ内に各種プロジェクトデータを格納して管理する。
作成するフォルダを運用上でどのような単位とするのかを
管理者は検討しておく必要がある。

ちなみに、フォルダの下にフォルダ…と階層を深くすることができる。
権限を考慮し必要に応じてフォルダでデータを区切る事が可能。

プロジェクトというのはDITAMAP,BOOKMAPのいずれかとなる
従って構成としては以下のように管理される。

root
  ∟ folderA
       ∟ projectA(mapデータ)
          ∟ 各種ditaデータ
       ∟ projectB(mapデータ)
          ∟ 各種ditaデータ
  ∟ folderB
       ∟ projectC(mapデータ)
          ∟ 各種ditaデータ

今回「sample」というプロジェクトを作成してみる。
プロジェクトを作成した場合に、データベースや
ワークスペースがどのように変化したのかを調べてみた。

ditatooのデータベースは以下のテーブル構成からなっている。

  • prolog
  • repository
  • settings
  • translations
  • users

プロジェクトの作成で更新されたのはrepositoryテーブルであった。
repositoryテーブルの構造定義は以下のようになっている。

※ インストール直後ではrootフォルダに関する定義のみが存在している。

WS000105

Id:オートインクリメント
Fileid:NULL
Title:NULL
Name:指定したプロジェクト名
Path:空
Type:FOLDER
Size:dataカラムサイズ
Createor:フォルダ作成ユーザー名
Modified:フォルダ作成日時
Data:XMLデータが格納されている以下のようなXMLデータとなっていた。

WS000105

恐らくは作成したフォルダに関する各種プロパティ情報が定義されたXML
だと思われる。主にフォルダに関する権限情報と思われる。
画面上の「dev」は、今回レビュー用に定義したユーザー名。

※ 上記以外のカラムはすべてNULLとなっていた。

今日はここまで

DITAToo – Review no.2 [DITATooAuthorインストール]

  • 8th 12月 2014
  • DITA

DITAToo Authorをインストールする。

WS000091

DITATooとしてのインストール作業はこれで終わりですね。
非常に簡単にインストールできる。

ちなみにデータベース側はこのような構成になっている。

WS000095

データベースも非常にシンプルな構成。
仕様が公開されていなくても、開発者が見ればだいたいのことは
つかめると思われる。

手始めにDITATooAdminでユーザーを追加し、ユーザーにパーミッションを設定する。
パーミッションの設定画面は以下のようになっていた。

WS000096

設定可能なのは閲覧、追加、削除、サブフォルダの追加、削除これらが
どのような意味で、どのような単位で処理されるのかは要調査。

DITATooAuthorを起動し、指定されたユーザーでログインする。
以下に環境設定画面を示す。
※ 各画面詳細仕様についてのドキュメントは存在していない

WS000097

表示系の設定、ログ、警告、リンクの設定が可能なよう。
リンク時の元画像を別管理するか、ブランチ時の画像リンクの設定などができるようだ。

WS000094

利用するエディタ(プライマリ、セカンダリ)の設定、DITA OTの場所、ワークスペースの設定が可能。

WS000099

HTML、PDF、CHM、RTFに関連したカスタマイズ設定

WS000100

トピック特殊化に関連したテンプレート設定?

WS000101

翻訳作業時、別環境で作業時の間処理をスキップする設定やダウンロード時のZIP化の設定
実際にどのような設定がされるのかは、今後確かめてみる。

WS000102

MYSQLの設定

今日はここまで。