KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

androidでapche velocityは動くのだろうか

テンプレートエンジンとしてVelocityを使っているのだけど、androidでの使い方がよくわからなかった。というのもandroidではファイルの読み込みがassetmanagerを経由することが多く、パスから読み込むVelocityでそのまま読み込めるのかが気になっていた。

velocity.apache.org

 

アンドロイド用のテンプレートエンジンでも、assetsからファイルを読み込むタイプのものはあるようで、それを使えばいいのだろうけど。今ある資産を流用したい場合にはちょっと面倒である。

nickel-shingo.hatenablog.com

 

テンプレートファイルと、置き換えるテキストはマージすることで文章ができあがるが。

Velocity.mergeTemplate()

この場合ファイルを指定する必要がある。ファイルじゃなくて、Stringをそのまま代入する場合は、Velocity.evaluateを使うようだ。これはandroidで動いた。一旦assetsからstringに変換してからVelocity.evaluateでマージする方法なら行けそう。

 

java.akjava.com

web.plus-idea.net

www.techscore.com

 

        InputStream TEXT_CSS = mngr.open(templatePath+OPS_PATH+CSS_PATH+TEXT_CSS_VM);
            BufferedReader br = new BufferedReader(    new InputStreamReader(TEXT_CSS));
            StringBuilder sb = new StringBuilder();
            String line;
            while *1 != null) {
                sb.append(line);
            }
            System.out.println(sb.toString());

            br.close();
            StringWriter writers=new StringWriter();
            Velocity.evaluate(velocityContext,bw,"",sb.toString());

*1:line = br.readLine(