Skip to content

Instantly share code, notes, and snippets.

@daiiz
Last active October 12, 2015 14:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daiiz/41c5fa81ec765fa295c6 to your computer and use it in GitHub Desktop.
Save daiiz/41c5fa81ec765fa295c6 to your computer and use it in GitHub Desktop.
// 実行方法:
// $ node generate-plantuml.js [RDF形式のテキストファイルパス] > b.plantuml
// このあと、
// $ GRAPHVIZ_DOT=$(which dot) plantuml -charset UTF-8 -tpng b.plantuml
// のように実行して b.png を得る
var fs = require('fs');
var readline = require('readline');
// 対象ファイルのパスは第一引数で受け取る
var file = fs.ReadStream(process.argv[2]);
var rl = readline.createInterface({
'input': file,
'output': {}
});
// 「Perl,rdfs:subClassOf,プログラミング言語」を「プログラミング言語 <|-- Perl」
// のように変換して表示する
// なんか禁止文字多いっぽいので適宜置換する
var mark = ' <|-- ';
console.log('@startuml');
rl.on('line', function (line) {
var row = line.trim().split(',');
var res = row[2] + mark + row[0];
res = res.replace('&', 'アンド');
res = res.replace('&', 'アンド');
res = res.replace('・', '');
res = res.replace('%', 'パーセント');
res = res.replace('%', 'パーセント');
res = res.replace('「', '');
res = res.replace('」', '');
console.log(res);
}).on('close', function() {
console.log('@enduml');
});
rl.resume();
@daiiz
Copy link
Author

daiiz commented Oct 12, 2015

これについて書いている記事:
http://daiiz.hatenablog.com/entry/2015/10/12/233644

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment