キワキワの鉄研

文字数 5,923文字

総裁、少し落ち着いたみたいだなあ。お金なくて慌ててる著者にいろいろお説教してたけど、でもその総裁自身が少し焦ってたもんなー。
でも総裁は正しいことをおっしゃってましたわ。さすが総裁ですわ。

わたくしたちも総裁の支援のためにがんばらないと。

で、どうするの? お金ないって総裁も著者も言ってたし。
今年のJAM(国際鉄道模型コンベンション)のあとはオリンピック関連で2019年、2020年は開催されないのです。今年に賭けるしかないのです。それゆえ総裁も著者さんも迷っていたのです。

でも、総裁の大御心は決まりましたわ。


参加するしかないのです。

幾多の困難が想像されるとしても。

やっぱりそうするしかないわよね。
2年間の空白があとに生じるとしても、そうするしかないですわ。
あ、それと!


神楽坂らせんさんの連載、終わっちゃった!!

やはり終わってしまいましたわね。
やはり、って。どーすんの! らせんさんに悪いことしちゃったかなあ。
いまさらどうもなりませんわ。わたくしたちは、わたくしたちのなすべき本来の目的をなすまでですわ。
詩音ちゃんほんと、少し怖いところあるなあ。手段選ばないもんなあ。

でも、どーすんの?

あれからあと、わたくしが行ったことを少し紹介しますわ。
な、なに? なにをしたの?(詩音ちゃん怖い……)
まず、らせんさんから知らされたGithubからZIPファイル形式でPythonスクリプトをダウンロードしました。そしてPythonそのものをダウンロードします。
そこはらせんさんのとこ参照だねー。
そして取りあえず実行してみます。
まー、いきなり取りあえず実行するのはあぶないけど、相手がらせんさんだから大丈夫でしょう。それに何かあっても自己責任だし。
常にリスクのないところに見返りはないのですわ。ちなみに実行するに当たってわたくしはWindowsPowerShellを使ったのですが、コマンドプロンプトでも特に差はないのですからよいのです。


詳しいことはググれば良いわよね。
パソコンのなかのファイルがどこにどうあるかの情報をパスと呼びます。

どのドライブのどのフォルダのそのなかのどのフォルダにあるのか。さらにそのフォルダの中のどのフォルダにあるのか。

それをパソコンは自分では自動認識出来ないので、知らせてあげる必要があります。

でも私はあんまり意識しないでつかっちゃってるけど。
それはプログラム自身を作った人がそういうことを意識しないですむように工夫してあるからなのです。

でも、この場合は工夫のしようがないので、ダウンロードしたファイルのアイコンをshiftを押しながら右クリックして、右クリックメニューにでる『パスのコピー』を選択します。

あ、これならパソコンのどのフォルダに見えてるアイコンのファイルがどう格納されてるか、一気に分かるんだ……。
実はこのコピーしたパスはWordやExcel、CLIPSTUDIOやSAIなどでも「ファイルを開く」のメニューの「ファイル名」の入力欄にペーストすれば、そのままそのファイルを開けるのですわ。
「ファイルを開く」でフォルダのなかを開いていって探さなくても良いんだ!

便利だなー!!

あと、PowerShellなりではCUI、文字でファイル操作コマンドを打たねばなりません。

cdはチェンジディレクトリという意味。このコマンドで今使う作業ディレクトリの階層を変えます。

らせんさんのプログラムを使うためにその階層に降ります。

cd のあとにパスをペーストしてあげますが、そのとき、前後の「”」ダブルクオーテーションと、パスのファイル名をとってあげてください。

わ、エラーが出た!!
エラーが出たら、そのエラーの意味を理解するのが大事です。

  + CategoryInfo          : ObjectNotFound: (C:\Users\****\git...Epub\TalkGet.py:String) [Set-Location], 

ItemNotFoundException

    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand


注:(****)のところにはWindowsをインストールしたときに決めていたPCのユーザー名が入ることが多いです。

わからーん! わかんないわよっ!
PathNotFound、パスが見つからないException(例外)ですから、システムがパスを見つけられなかったといっているのです。

つまり入力したパスが間違っているのですわ。

え、でもなんでだろう?
PowerShellではカーソルキーの上を押せば、さっき入力したコマンドがまたでますわ。
あれ、あ! ファイル名を全部削除し損ねてた!
それならやり直せばいいのですわ。
PS C:\Users\****\github\TalkMakerToEpub>

になったー!!

たまたまこの場合はユーザーフォルダの下にgithubフォルダを作って、さらにその下にTalkMakerToEpubフォルダを作ってあったのです。Githubについてはそのうちまたやれればやりますけど、ここでは割愛しますわ。
で、ここでらせんさんの書いたとおり、

Python TalkGet.py

と入力してリターンね。

そのTalkGet.pyのあとに半角スペース、それに続いてhttps://talkmaker.com/works/episode/eac687d8b5c8470df2b345304966571c.html


を入れてしまいましょう。

え、それ、すごく呪文っぽいけどどっかで見たような……。
Python TalkGet.py https://talkmaker.com/works/episode/eac687d8b5c8470df2b345304966571c.html


ですわ。手入力では大変ですので、コピペすると良いですわ。

わ、ばーっとテキストが出てきた! しかもこれ、もしかすると……この連載!?
そうです。このPythonのプログラムでトークメーカーに掲載されている私たちの作品の情報を読み取って、台詞と吹き出し情報を抜き出しているのですわ。


pythonと入力するのはPythonのコマンドであること、そのあとにそのpythonで実行するべき実行ファイル名、そのあとにその実行ファイル名に渡すURLをPCに指示したのです。

あ、でも著者さんのところでは上手く行かなかったみたい。
それは著者さん、Anacondaではなく普通にPythonだけをインストールしてしまったからなのですわ。beautifulsoup4とrequestを追加で入れなくては動きません。この二つはこのTalkGetで使われているコマンドに対応したライブラリパッケージ、プログラム集なのです。
へー。でもこれ、たしか昔私たちがRaspberryPIを使ったときにも同じ問題が起きたような。
今は一人で全部をプログラミングするのは大変ですから、よく使う便利なプログラムはライブラリとしてまとめておいて、みんなが使えるようにするのですわ。

らせんさんの紹介しているのはそのライブラリをインストールするpipというパッケージ管理ツールです。基本的にPythonの最新バージョンには標準で添付されているのでそのまま使えますわ。

python -m pip install [パッケージ名]

これでインストール出来ます。

で、あとはsigilで読み込めばepub、電子書籍形式になるわけだねー。らせんさんのいうとおり。すごーい。


しかもリフローepubなのでスマホでもスマホの狭い画面に合わせて文字組みし直してくれるので、読みやすく読めますわ。
すごいすごい。


でも、これに吹き出しの枠がないし、台詞の間に隙間空きすぎてないかなあ。

それをいじるために、わたくしはとても大変な目に遭ったのですわ。
それが詩音ちゃんの1.5日徹夜の理由!?
最後は頭が朦朧としてきてどうにもならなくなったのですわ……。
詩音ちゃん、そんな無理を!
そもそも、わたくし、Pythonをいじったのは今回が初めてでしたわ。ですからこのプログラムで何が行われているのか、それすら全く分からなかったのです。
その状態からプログラム書き換えて枠付けるようにしたんだね……。ただ枠を付けるだけなのに。
そのただの枠を付けるためには、epubというものの仕組みも理解しなければなりません。

epubがhtmlファイルをベースにしていると先に申し上げましたが、その体裁を整えるところを望むとおりにするには、CSSというものもいじらなくてはならないのです。

CSS! それ、ホームページとかでつかうやつだ! でも私には全然わかんない!
わたくしも最初、そうでしたわ。でも、やるしかないと覚悟して、いじり始めたのです。
詩音ちゃんチャレンジャーだなあ。でも、いじるったって怖くてできないわよ。
でも、怖がっているだけでは先に進めませんわ。幸いコンピュータは前に戻る方法がいくつかありますわ。

たとえばコマンドをコメントにしてしまって機能しないようにする方法。そうすればエラーが出たり誤動作してくれて、そのコマンドがなぜ必要だったのかが分かります。

ひいいい! わざとそんなことしちゃうの!?
でも、これももとのちゃんと動くプログラムのソースコードが公開されているからこそできる方法ですわ。もとのソースコードを公開してくれているらせんさんに感謝ですわ。もとのソースコードが間違っていたら、この方法で理解するのはまず無理ですから。
そうだねー。ありがたいよねー。
ちなみにAllStorys.pyを実行した場合についてはらせんさんの解説で問題ないですわ。仕組み的には目次ページから各ページのURLを抜き出して、そのURLに対してそれぞれTalkGet.pyを実行しているのですから。


大事なのはTalkGet.pyなのですわ。これがトークメーカー投稿作品のデータ取得とepub用のデータ生成の心臓になっているのです。

そうなのか……。でも、詩音ちゃん、それを理解したんだね。すごい……。
すごくはないのですわ。わたくしは作ったのではありません。らせんさんがつくったものに手を加えただけなのです。ゼロから作ったらせんさんのアイディアを借りただけなのですわ。
そうなのか……。
ともあれ、吹き出しの枠をなんとかしたいと考えました。


そこでhtmlを見てみます。らせんさんのプログラムでできたxhtmlを読んでみます。


ええっ、htmlって、読めるの!?
タグの意味さえ分かれば何とかなるのですわ。

<br>タグは強制改行だから分かるとして、

<p>タグと

<div>タグがよく分からないと思いますわ。

実はトークメーカー、タグの山括弧入れると表示されなくなります。

というわけで、そこは山括弧は全角の不等号で置き換えてます。ごめーんね。

pタグは

<p><br></p><div class="img_Center"><img src="../Images/02b3ee1518ff87090bda92754aef8b95.png" width="70%"></div>

とか、

<p class="iconClear"><br></p>

ってなってるね。


そうです。そこで注目なのは、このclassですわ。

htmlファイルの書式は、CSSファイルで設定します。

そしてその<p>と</p>で挟まれたところ、<div>と</div>の間のテキストは、CSSファイルで設定したclass名のclassの設定が適用されるのですわ。

CSSファイルを見ると、たしかに


.iconClear {

    clear: both;

}


ってところがある!

ほかにも

.iconL {

    float: left;

    padding-top: 0.5em;

    padding-left: 0em;

    padding-right: 0.5em;

    padding-bottom: 0.5em;

    text-align: center;

    display: inline;

    max-width: 10%;

}


.iconR {

    float: right;

    padding-top: 0.5em;

    padding-left: 0em;

    padding-right: 0.5em;

    padding-bottom: 0.5em;

    text-align: center;

    display: inline;

    max-width: 10%;

}

 となってますわね。

ほんとだ! xhtmlにも

<img src="../Images/b8c0cee1ffaba9ce90e968b0345988bd.jpg" class="iconL" width="30%"/>

ってclass=”iconL”ってなってるところがある!

昔のhtmlだったらいちいち本文に対して見た目をその都度設定していたのですが、classを設定して、それをdivタグやpタグで挟んだ本文にclassを対応させれば
同じclass使ってるところは全部同じ見え方に揃えられるんだ!
そういうことですわ。ですから、吹き出しのところの本文もclass名を付けたdivタグで囲んであげて、あとはそのdivにclassの属性を与えて、CSSでそれを設定すれば、一気に吹き出しの書式が変えられます。
そういえばhtmlみてると、吹き出し本文をdivタグが囲ってる。でもこのdivタグ、class="なんとかかんとか"ってなってないなあ。
CSSにはborderという属性があって、ピクセル数を設定すればそのピクセル数の枠を文章につけてくれる設定ができますわ。Googleで調べました。
じゃあ、classに「.balloon_L」とか設定して、    border: 1px solid #111111;とか設定すればもう吹き出しっぽく見えちゃうんじゃない?(今Googleで調べた♡)
わたくしもそう思いましたわ。ところが……。
ええっ、ダメだったの?
その詳細は次のお話にしますわ。字数がもう多すぎますから。
……詩音ちゃんも総裁みたいな事言うんだよなー。もー。
つづきます!!
ワンクリックで応援できます。
(ログインが必要です)

登場人物紹介

葛城御波 かつらぎ みなみ:国語洞察力に優れたアイドル並み容姿の子。でも密かに変態。しかしイマジネーション能力は随一。

その驚異の類推能力でどこまでできるのか?

武者小路詩音 むしゃのこうじ しおん:鉄研内で、模型の腕は随一。高校入学が遅れたので、実は他のみんなより年上。鉄道・運輸工学教授の娘で、超癒し系の超お嬢様。模型テツとしての腕前も一級。

実は電子書籍や書籍にも詳しい。


ビューワー設定

背景色
  • 生成り
  • 水色