ダミーテキスト

Webページのレイアウトを考えるとき、FireWorksでページのレイアウトデザインを作成して、それを元にパーツ画像・ボタン類などを作成、あとはDreamWeaverなり、テキストエディタなりでHTMLとCSSを組んでいく・・・という流れがごくごく一般的だと思います。
 

デザインだけで内容が全く決まっていない、というとき、テキスト部分には、たとえば、「ダミーテキスト」などの仮のテキストの羅列を入れることが多いのですが、やはり同じ内容のテキストの羅列だと、完成したときのイメージが湧かない、と言われたこともありました。
 

FireWorksで、ダミーテキスト生成して挿入する下のようなコマンドを作成して、%APPDATA%\Adobe\FireWorks CS4\Commands へ放り込んで使っています。やっていることは至極単純で、テキストファイルの各行を配列に読み込んで、乱数で得られた数字を使って数回、配列から読み出しているだけ。
 

問題は、それに使用するテキストファイルの内容。ある程度日本語として文法が正しく、かつ、それ文章自体は意味をなさない・・・という、とにかく訳のわからないテキストが理想です(笑)
ネットから勝手に取って使用すると「著作権が・・・」とかあると思うので、パブリックドメインのテキストがないか調べて、僕は3つのテキストを選択しました。パブリックドメインなので、どう使おうと自由、という非常にありがたいものです。。。
 

僕が選んだのは、聖書の英語訳と日本語訳。それと、平家物語の原文。もちろん全文読み込んだりすると処理に非常に時間がかかるので適当に抜き出し、加工を加えました。

ダミーテキストのソースファイル

でも、これだけだと不満があって、英文と日本文が適度に混じったテキストがないか探索中です。手っ取り早く、技術文書などの専門書から取るのがいいのですが・・・なかなかパブリックドメインのものがねぇ~、ないんですよねぇ~。
 

ダミーテキストとしての僕の理想は、日本語と英語が適度に混ざって、かつ、カタカナもある程度混じって、なおかつ、意味が分からないテキスト(笑) そんなのないですかねぇ~・・・。
 

/************************************************************************
 ダミーテキスト挿入.jsf for FireWorks CS4
 %APPDATA%\Adobe\FireWorks CS4\Commands へ入れとく。
 
 ファイルが本当にテキストファイルかどうかのチェックはしていない。
*************************************************************************/
var num   = 5;
var times = 1;

insertDummyText = function(n,t)
{
  var file = fw.browseForFileURL("open","ダミーテキストファイルを開く");

  if(file == null)
	  throw new Error("ファイルが指定されていません");

	var fin = Files.open(file);
  var lines = [];
  var line_ = null;
  var out = [];

  while((line_ = fin.readline()) != null)
    {
      if(line_.match(/^\s*$/))
        continue;

      lines.push(line_);
    }

  fin.close();

  for(var i = 0;i < t;i++)
    {
      for(var j = 0;j < n;j++)
        {
          var index = parseInt(Math.random() * lines.length);
          out.push(lines[index]);
        }
      if(i < t - 1)
        out.push("\n\n");
    }

  var dom = fw.getDocumentDOM();

  dom.setTextAutoExpand(false);
  
  if(typeof fw.selection[0] == "undefined")
    dom.addNewText({top:5,right:dom.width/2,bottom:120,left: 5},true);

  var runs = fw.selection[0].textRuns;

  runs.textRuns = [{changedAttrs: {}, characters: out.join('')}];
  fw.selection[0].textRuns = runs;
}

try{insertDummyText(num,times);}catch(e){alert(e.message);}