0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

文言Advent Calendar 2019

Day 4

文言縦書きレンダリングに挑戦

Last updated at Posted at 2019-12-22

はじめに

前回

linuxっぽいデバイスエラー
/dev/stdoutや/dev/nullとか指定出来ないパスエラーに悩まされつまづいていました

実行

レンダリング処理はソースファイルを読み、縦書きにレンダリングし、svgファイルとして出力します。

/dev/stdout 標準出力が割り当てられないなら、実際のファイルを割り当てる方法があれば出力出来るかも。

ソースファイルをrenderでgrep しました。
functon renderで実装されているので引数で渡す方法を探します。

ソースはimportではなく、requireで、node_modulesフォルダも無いので頑張れば読めるかもしれません。

わからないなりに格闘。自前で呼ぶ関数を実装を試みました。

が、しかし、コマンドラインに渡す口がありそうです。

usageとにらめっこし、よく読んでみると、
outputオプションで行けそうです

node ./build/wenyan.js —render helloworld.wy —output ./renders/helloworld.svg

エラーが消えました。
rendersフォルダの中を見ると、ファイルが出来ました。
何故かファイル名がhelloworld.svg.000.svgで中身は一文字もありません。

文字はありませんが、古文書風の用紙、見ていて美しさにテンションあがります。

ソースの指定を見直し、再実行

node ./build/wenyan.js —render ./examples/helloworld.wy —output ./renders/helloworld.svg

な、なんとsvgのファイルサイズ増えました。
ドキドキしながらブラウザで表示してみると、縦書きのソースコード入りで表示出来ました。

ビルドエラー出てたけど、上手く行ってたのでしょうか。

念のため、ビルド前のwenyan.jsで実行してみると、…

同じファイルが作成されました。

今までの試行錯誤を思い、自分のレベルの低さに悲しくなりましたが、ソース出力は嬉しくてサンプルソース、片っ端から生成しました。

おわりに

ファイル名が不思議な感じですが、生成された縦書きソースはうっとりです。

引き続き、仕組みを見ていきたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?