アメリカ駐在員の簡単レシピ集

はじめに

アメリカに赴任して困るのは、スーパーの食材が色々と日本と違うところです。肉は薄切り肉は売ってないし、野菜も結構違います。

赴任してすぐにキャベツを買ったら、日本と違いすごく硬くて、千切りにしても食べられなかったのを思い出します。

アジア系スーパーに行けばある程度、日本と同じ野菜は買えるのですが、ものによっては高くつきます。そこで、なるべくローカルスーパーで揃う食材で、簡単に作れるレシピ集を作りました。

Expat Recipes

和食

洋食

子供に九九を練習させたい

小学校2年生になると、かけ算九九を頑張って覚えますよね。
最近は、単語カードみたいなのが学校で配られて、頑張って覚えるようです。

ただ、カードだと、苦手な段とか、感覚でしかわからないですよね。
そこで、Android & Kindleアプリを作ってみました。

小学校の先生は算数の教材として、保護者は子どもの勉強や九九の練習アプリとしてご活用ください。

 

九九アプリ

九九アプリ

ChromebookAndroidスマホタブレット、KindleFireで、完全無料で利用できる九九の練習アプリです。
れんしゅうモード、ランダムモード、とっくんモード、スコア表があります。
各アプリストアは、こちら↓

 

 

  • 「れんしゅうモード」:1の段~9の段を練習します。
  • 「ランダムモード」:ランダムな10問が出ます。
  • 「とっくんモード」:まちがった問題が自動で出てきて特訓できます。
  • 「スコア」:それぞれモードのベストスコアを確認できます。

 

九九アプリ

 

小学2年生で習う九九を、このアプリを使って練習できます。
小学校の先生が、以下の教材として、授業で利用することを想定しています。

 

  • 九九指導後の練習
  • ちょっとした算数の空き時間の自習
  • クラスの仲間で、ベストスコアのタイムや、取得したメダルの競争
  • 九九を覚えるための宿題

 

広告が表示されますが、全て無料で利用できます。
なお、子供に不適切だと思われる広告は除いてあります。

 

 

 

どうやったら子供が本を読むようになるか?

 「本を読むと、賢くなる」よく聞く話ですが、本当でしょうか。「本を読む子が、賢い」では?とか思ったりします。しかし、親としては、子供に本を読んでほしい気持ちはどこかにあると思います。かくゆう私もその一人です。

 うちの場合は、毎週の様に市民センターに併設されている小さめの図書館に通い(主に妻が)、毎週1人10冊位借りて読んでいます。小さい頃から絵本をこのペースで読み聞かせしていたら(主に妻が)、小学生低学年の頃には、いつの間にか、自分で読みたい本を読む様になっていました。今では私より子供の方が、よく本を読んでいます。

 

2つのハードル

私の経験から、子供に本を読む習慣をつけるのは、次の2つの大きなハードルがあると考えます。

 

  1. 幼少期
    • 絵本を読み聞かせることができるか
  2. 小学校低〜中学年
    • 絵本から読み物へ進化できるか

 

幼少期:絵本を読み聞かせることができるか

 まず、親がせっせと、幼少期に絵本を読み聞かせることです。娯楽を求める子供にとって、絵本が楽しみになります。ここでは、いかに親が頑張って続けられるかがキーになってくる様に思います。

 近くに日本の図書館がない場合、フリーの絵本もあったりします。また、海外の場合、日本人のコミニティのFacebookとかがあったりすると、そこで絵本をやり取りしてたりします。その様な場所を活用しましょう。

 

 

小学校低〜中学年:絵本から読み物へ進化できるか

 個人的にはこのハードルが最も難関です。逆に言うと、このハードルを越えれば、あとは勝手に子供が進んで本を読む様になります。しかし、はじめは、今まで絵がたくさんあった本なのに、文字だけになります。子供も「うわ、こんなの読めない」と思うはずです。

 私は次のことをして、このハードルを超えるように働きかけました。

 

  1. 絵本、マンガ、イラスト多めの本を自分で読ませる
  2. テレビアニメの原作を勧める
  3. 「どうわがいっぱい」背表紙の本を勧める
  4. 子供の好きな絵本の作家や、好きなイラストの本を勧める

 

絵本、マンガ、イラスト多めの本を自分で読ませる

 まず、大人に読んでもらうのではなく、マンガでもいいから自分で読む習慣をつけることが大切です。そのために、絵本やマンガを使いましょう。マンガはダメという考えは捨てましょう。大人になっても漫画を読んでる人、いっぱいいますよ。小説だって、昔はサブカルチャーだったんです。あと、日本の漫画は世界に誇れる立派な文化です。全然問題ありません。

 また、イラストがふんだんで読みやすい本、たくさんあります。

 

 

テレビアニメの原作を勧める

 子供は流行りに敏感です。流行りのテレビアニメも活用しましょう。ワンピース、ナルト、名探偵コナンちびまる子ちゃんSPY×FAMILYとか、マンガが原作ですよね。図書館で借りましょう。全部というわけではありませんが、少年誌のマンガだと、話の内容も小学生向けて安心ですよね。(少年誌=少年ジャンプ、少年マガジン、少年サンデー、コロコロ、など)

 また、少年誌だと何が良いって、漢字にフリガナがふってあるんです。青年誌(ヤングジャンプヤングマガジン、など)だと、フリガナがないから、子供にとってストレスなんですよね。

 

「どうわがいっぱい」背表紙の本を勧める

 実は講談社の本の背表紙に、こんなマークがついていることがあります。これは文字が大きくて、読み物をはじめる子にぴったりのマークです。おばけずかんシリーズはこのマークがついています。ぜひ、探してみてください。

どうわがいっぱいシリーズのマーク
子供の好きな絵本の作家や、好きなイラストの本を勧める

 子供が興味があることを、本に繋げましょう。イラスト、話の内容(冒険、虫、恐竜、料理、お菓子、武士)など、自分の子供が好きな物、ご存知ですよね?その内容の本を探して勧めてみてはどうでしょう。

 子供の好きな領域の幅を広めるには、好きな分野のちょっと外を勧めるのがいいと思います。例えば、女の子でお菓子作りが好きなら、ルルとララシリーズの、ケーキとか、クッキーとかを作る本とか。科学系が好きな子なら、サバイバルシリーズや、Dr .STONEとか。武士や忍者が好きなら、角川の歴史まんがとか。例えば、こっそり借りてきて、本棚に置いておくだけでいいんです。子供が暇な時に、手を伸ばして読んだらこっちのものです。ダメもとでやてみてください。

 

以上

フリー小説をKindleの縦書きファイルへ変換する(3)※青空文庫

  1. はじめに
  2. 1話ごとのテキストを、一括でダウンロード
  3. Powershellで、1つのファイル(EPUB)を生成(小説家になろう 版)
    1. 青空文庫 版
  4. Kindle PreviewerでMOBIファイルへ変換し、USB接続でKindleへ転送

Powershellで、1つのファイル(EPUB)を生成

以下のPowerShellを使えば、実行するだけで、epubファイルが生成されます。
青空文庫のHTMLは、ダウンロードしたHTMLは、目次が外れてしまうのと、縦書きにならないのが難点です。
このPowerShellは、目次と縦書きを実現します。

例えば、15少年漂流記(ちょっとなまえちがうけど)を例に変換してみましょう。
www.aozora.gr.jp

ファイルのダウンロード

青空文庫は、基本的に1つのファイルになっているようです。
なので、ダウンロードは1回ですみました。

XHTMLファイルをダウンロードする

実行する際のファイル構成

実行する際の注意点

  • 検証済環境:Windows10、PowerShell Ver. 5.1.19041.2364
  • html2epub.ps1の文字コード=Shift-JIS
  • 作業フォルダは英数字のフォルダで作業してください
  • あたり前ですが、ZIPファイルは解凍してください。ZIPファイルのままでは、powershellは実行できません。
html2epub.ps1

下記のテキストをテキストエディタにコピー&ペーストして
「html2epub.ps1」と言うファイル名で保存します。

###########################################################
# Title:  青空文庫のHTMLに目次を追加してepubファイルにする
# Created:2023/03/15

# Usage:
# > Powershell 実行方法
# > PowerShell -ExecutionPolicy RemoteSigned -file .\html2epub.ps1 "title" xxx.html

# File Tree:
#  book.epub = zip
#   ├ META-INF
#   │  └ container.xml
#   ├ OEBPS
#   │  ├ book.html
#   │  ├ content.opf
#   │  └ toc.ncx
#   └ mimetype
###########################################################
$outFile   = 'book\OEBPS\book.html'  # 結合後のファイル名

if([string]::IsNullorEmpty($Args[0])){
  Write-Host "Usage: PowerShell -ExecutionPolicy RemoteSigned -file .\html2epub.ps1 `"title`""
  Write-Host "" 
  exit
}
$htmlTitle = $Args[0]
Write-Host "Titile  :" $htmlTitle
$uuid = "html2epub-" + ( Get-Date -Format "yyyyMMdd-HHmmss" )
$htmlStyle = "<style type=`"text/css`">
    <!--
        body, h1, p {
            writing-mode: vertical-rl;
            text-orientation: upright;
            -webkit-writing-mode:vertical-rl;
            -epub-writing-mode:vertical-rl;
            -moz-writing-mode:vertical-rl;
            -o-writing-mode:vertical-rl;
        }
    -->
</style>"

$opfBody = "<?xml version=`"1.0`" encoding=`"utf-8`"?>
<package version=`"2.0`" unique-identifier=`"BookId`" xmlns=`"http://www.idpf.org/2007/opf`">
  <metadata xmlns:dc=`"http://purl.org/dc/elements/1.1/`" xmlns:opf=`"http://www.idpf.org/2007/opf`">
    <meta content=`"horizontal-rl`" name=`"primary-writing-mode`"/>
    <dc:identifier id=`"BookId`" opf:scheme=`"UUID`">urn:uuid:" + $uuid + "</dc:identifier>
    <dc:language>ja</dc:language>
    <dc:title>" + $htmlTitle + "</dc:title>
    <dc:date opf:event=`"modification`" xmlns:opf=`"http://www.idpf.org/2007/opf`">" + ( Get-Date -UFormat "%Y-%m-%d" ) + "</dc:date>
  </metadata>
  <manifest>
    <item id=`"book.html`" href=`"book.html`" media-type=`"application/xhtml+xml`"/>
    <item id=`"ncx`" href=`"toc.ncx`" media-type=`"application/x-dtbncx+xml`"/>
  </manifest>
  <spine toc=`"ncx`">
    <itemref idref=`"book.html`"/>
  </spine>
</package>"

$containerBody = "<?xml version=`"1.0`" encoding=`"UTF-8`"?>
<container version=`"1.0`" xmlns=`"urn:oasis:names:tc:opendocument:xmlns:container`">
    <rootfiles>
        <rootfile full-path=`"OEBPS/content.opf`" media-type=`"application/oebps-package+xml`"/>
   </rootfiles>
</container>"

$ncxBody = "<?xml version=`"1.0`" encoding=`"utf-8`"?>
<!DOCTYPE ncx PUBLIC `"-//NISO//DTD ncx 2005-1//EN`"
   `"http://www.daisy.org/z3986/2005/ncx-2005-1.dtd`">
<ncx xmlns=`"http://www.daisy.org/z3986/2005/ncx/`" version=`"2005-1`">
  <head>
    <meta name=`"dtb:uid`" content=`"urn:uuid:" + $uuid + "`" />
    <meta name=`"dtb:depth`" content=`"0`" />
    <meta name=`"dtb:totalPageCount`" content=`"0`" />
    <meta name=`"dtb:maxPageNumber`" content=`"0`" />
  </head>
<docTitle>
  <text>" + $htmlTitle + "</text>
</docTitle>
<navMap>
<navPoint id=`"navPoint-1`" playOrder=`"1`">
  <navLabel>
    <text>目次へ</text>
  </navLabel>
  <content src=`"book.html`" />
</navPoint>
</navMap>
</ncx>"

$mimetype = "application/epub+zip"

# ---------------------------------------------------------
# 結合後のファイルがあった場合は削除
Write-Host "Delete  : book dir, book.epub, book.zip"

If(Test-Path "book"){
  Remove-Item -Path "book" -Recurse
}
If(Test-Path "book.epub"){
  Remove-Item -Path "book.epub"
}
If(Test-Path "book.zip"){
  Remove-Item -Path "book.zip"
}

# フォルダ&ファイルの生成
New-Item "book"          -ItemType Directory > $null
New-Item "book\META-INF" -ItemType Directory > $null
New-Item "book\OEBPS"    -ItemType Directory > $null
Write-Output $containerBody | Out-File -FilePath "book\META-INF\container.xml"  -Append -Encoding UTF8
Write-Output $mimetype      | Out-File -FilePath "book\mimetype"                -Append -Encoding UTF8
Write-Output $opfBody       | Out-File -FilePath "book\OEBPS\content.opf"       -Append -Encoding UTF8
Write-Output $ncxBody       | Out-File -FilePath "book\OEBPS\toc.ncx"           -Append -Encoding UTF8

# ---------------------------------------------------------
# 目次の生成
$orgHtml = $Args[1]
Write-Host "SrcHtml :" $orgHtml
$xmlDoc = [xml](Get-Content $orgHtml -Encoding Default)
# $xmlNav = [Xml.Xpath.XPathNavigator]$xmlDoc.CreateNavigator()

$val = 0  # カウンター
$agenda = $xmlDoc.html.body.div.div|
  foreach {
    if( $null -ne $_ ){
      if( $_['h3'] -ne $null){
        "&nbsp;&nbsp;<a href=`"#" + $_['h3'].a.id + "`">" + $_['h3'].a.InnerXML + "</a><br />`n"
      }
      if( $_['h4'] -ne $null){
        "&nbsp;&nbsp;&nbsp;&nbsp;<a href=`"#" + $_['h4'].a.id + "`">" + $_['h4'].a.InnerXML + "</a><br />`n"
      }
      $val = $val + 1
      Write-Host -NoNewline ("`r" + "Progress: ${val}")
    }
  }
Write-Host ""
$agendaAll = "<h1 style=`"page-break-before:always`">目次</h1>`n" + $agenda
#Write-Host $agendaAll

#$Navi.Select("//h4")
#$Navi.Select("//h4") | select Name

# ---------------------------------------------------------
# 本文へ目次を挿入
[string]$srcStr = "<div class=`"main_text`"><br />"
[string]$destStr = $agendaAll + $srcStr
(Get-Content $orgHtml -Encoding Default) | foreach { $_ -replace $srcStr,$destStr } | Set-Content $outFile -Encoding Default

# CSSを挿入
[string]$srcCssStr = "</head>"
[string]$desCsstStr = $htmlStyle + $srcStr
(Get-Content $outFile -Encoding Default) | foreach { $_ -replace $srcCssStr,$desCsstStr } | Set-Content $outFile -Encoding Default

# ---------------------------------------------------------
# ZIP圧縮 & 拡張子変更
Compress-Archive -Path "book" -DestinationPath "book.zip"
Rename-Item -Path "book.zip" -NewName "book.epub"
Write-Host "Created : book.epub"

実行例

PowerShell -ExecutionPolicy RemoteSigned -file .\html2epub.ps1 "無人島に生きる十六人" .\42767_15618.html

実行例
  • book.epubファイルができていたら成功です。

以上

フリー小説をKindleの縦書きファイルへ変換する(4)

  1. はじめに
  2. 1話ごとのテキストを、一括でダウンロード
  3. Powershellで、1つのファイル(EPUB)を生成(小説家になろう版)
    1. 青空文庫版
  4. Kindle PreviewerでMOBIファイルへ変換し、USB接続でKindleへ転送

 

Kindle PreviewerでMOBIファイルへ変換し、USB接続してKindleへ転送

amazonのフリーツール「Kindle Previewer」を使えば.mobiファイルへエクスポートが可能です。今回は、Kindle Previewer Ver.3.7.1.0を使いました。

手順

  1. Kindle Previewer」からダウンロードし、ウィザードに従ってインストールします。
  2. Kindle Previewerを起動し、.epubファイルをドラッグ&ドロップで開きます。
    1. この後、ファイルの読み込みと変換に数分時間がかかります。
    2. テキストファイルの数は、約300個ファイルが上限のようです。それ以上だとエラーになり途中で止まってしまいました。
    3. KindlePreviewerへD&D
  3. エクスポートします。
    1. エクスポート
    2. エクスポートするファイルの拡張子は「.mobi」を選びました。
    3. ファイル名は、本のタイトルなど、分かりやすい名前にした方がいいかと思います。
  4. USBケーブルでKindle端末とPCをつないでファイルを転送
    1. USBケーブルでPCとKindle端末をつなぐと、PCにドライブが追加されます。
    2. 保存先は、Kindle端末のdocuments」フォルダです。
    3. エクスポートしたファイルを、Kindle端末へ保存します。
  5. PCから接続を外し、Kindle端末のマイライブラリから、作成した本を開きます。
    1. 無事開けました。
    2. Kindleで開いた様子、1ページ目は目次

      目次には「目次へ」から1ページ目へジャンプできます。

      1話目の様子

       

以上

フリー小説をKindleの縦書きファイルへ変換する(3)※小説家になろう版

  1. はじめに
  2. 1話ごとのテキストを、一括でダウンロード
  3. Powershellで、1つのファイル(EPUB)を生成
    1. 青空文庫 版
  4. Kindle PreviewerでMOBIファイルへ変換し、USB接続でKindleへ転送

Powershellで、1つのファイル(EPUB)を生成

以下のPowerShellを使えば、実行するだけで、epubファイルが生成されます。

実行する際のファイル構成

実行する際の注意点

  • 検証済環境:Windows10、PowerShell Ver. 5.1.19041.2364
  • txts2epub.ps1の文字コード=Shift-JIS
  • 作業フォルダは英数字のフォルダで作業してください
  • あたり前ですが、ZIPファイルは解凍してください。ZIPファイルのままでは、powershellは実行できません。
txts2epub.ps1

下記のテキストをテキストエディタにコピー&ペーストして
「txts2epub.ps1」と言うファイル名で保存します。

###########################################################
# Title:  小説になろうのテキスト群をを、結合してepubファイルにする
# Created:2023/02/28
# Updated:2025/05/08 なろうのDLテキストファイル名の仕様変更に対応

# Usage:
# > Powershell 実行方法
# > PowerShell -ExecutionPolicy RemoteSigned -file .\txts2epub.ps1 "title"

# File Tree:
#  book.epub = zip
#   ├ META-INF
#   │  └ container.xml
#   ├ OEBPS
#   │  ├ book.html
#   │  ├ content.opf
#   │  └ toc.ncx
#   └ mimetype
###########################################################
$fileList  = Get-ChildItem -Name "*.txt" | Sort-Object LastWriteTime
$outFile   = 'book\OEBPS\book.html'  # 結合後のファイル名
$hr_string = '********************************************'  # 初めにコメントがある場合の区切り文字

# 見出しを取得する
function getEachSubject( $file ) {
	$midashi_array = Get-Content $file -TotalCount 15 -Encoding UTF8
  if ($midashi_array.Contains($hr_string)) {
    # 区切り文字がある場合は、その次の行を取得する
    for($i=0; $i -lt $midashi_array.Length; $i++){
      if($midashi_array[$i] -eq $hr_string){
        # Write-Output $midashi_array[$i + 1]
        $midashi = $midashi_array[$i + 1]
        break
      }
    }
  } else {
    # 1行目を取得
    $midashi = Get-Content $fileNameHashTable[($key)] -Encoding UTF8 | Select-Object -First 1
  }
  return $midashi
}


if([string]::IsNullorEmpty($Args[0])){
  Write-Host "Usage: PowerShell -ExecutionPolicy RemoteSigned -file .\txts2epub.ps1 `"title`""
  Write-Host "" 
  exit
}
$htmlTitle = $Args[0]
Write-Host "Titile  :" $htmlTitle
$uuid = "txts2epub-" + ( Get-Date -Format "yyyyMMdd-HHmmss" )
$htmlHeader = "<html>
<head>
<title>" + $htmlTitle + "</title>
<meta http-equiv=`"Content-Type`" content=`"text/html; charset=utf-8`" />
<style type=`"text/css`">
    <!--
        body, h1, p {
            writing-mode: vertical-rl;
            text-orientation: upright;
            -webkit-writing-mode:vertical-rl;
            -epub-writing-mode:vertical-rl;
            -moz-writing-mode:vertical-rl;
            -o-writing-mode:vertical-rl;
        }
    -->
</style>    
</head>
<body>"
$htmlFooter = "</body>
</html>"

$opfBody = "<?xml version=`"1.0`" encoding=`"utf-8`"?>
<package version=`"2.0`" unique-identifier=`"BookId`" xmlns=`"http://www.idpf.org/2007/opf`">
  <metadata xmlns:dc=`"http://purl.org/dc/elements/1.1/`" xmlns:opf=`"http://www.idpf.org/2007/opf`">
    <meta content=`"horizontal-rl`" name=`"primary-writing-mode`"/>
    <dc:identifier id=`"BookId`" opf:scheme=`"UUID`">urn:uuid:" + $uuid + "</dc:identifier>
    <dc:language>ja</dc:language>
    <dc:title>" + $htmlTitle + "</dc:title>
    <dc:date opf:event=`"modification`" xmlns:opf=`"http://www.idpf.org/2007/opf`">" + ( Get-Date -UFormat "%Y-%m-%d" ) + "</dc:date>
  </metadata>
  <manifest>
    <item id=`"book.html`" href=`"book.html`" media-type=`"application/xhtml+xml`"/>
    <item id=`"ncx`" href=`"toc.ncx`" media-type=`"application/x-dtbncx+xml`"/>
  </manifest>
  <spine toc=`"ncx`">
    <itemref idref=`"book.html`"/>
  </spine>
</package>"

$containerBody = "<?xml version=`"1.0`" encoding=`"UTF-8`"?>
<container version=`"1.0`" xmlns=`"urn:oasis:names:tc:opendocument:xmlns:container`">
    <rootfiles>
        <rootfile full-path=`"OEBPS/content.opf`" media-type=`"application/oebps-package+xml`"/>
   </rootfiles>
</container>"

$ncxBody = "<?xml version=`"1.0`" encoding=`"utf-8`"?>
<!DOCTYPE ncx PUBLIC `"-//NISO//DTD ncx 2005-1//EN`"
   `"http://www.daisy.org/z3986/2005/ncx-2005-1.dtd`">
<ncx xmlns=`"http://www.daisy.org/z3986/2005/ncx/`" version=`"2005-1`">
  <head>
    <meta name=`"dtb:uid`" content=`"urn:uuid:" + $uuid + "`" />
    <meta name=`"dtb:depth`" content=`"0`" />
    <meta name=`"dtb:totalPageCount`" content=`"0`" />
    <meta name=`"dtb:maxPageNumber`" content=`"0`" />
  </head>
<docTitle>
  <text>" + $htmlTitle + "</text>
</docTitle>
<navMap>
<navPoint id=`"navPoint-1`" playOrder=`"1`">
  <navLabel>
    <text>目次へ</text>
  </navLabel>
  <content src=`"book.html`" />
</navPoint>
</navMap>
</ncx>"

$mimetype = "application/epub+zip"

# ---------------------------------------------------------
# 結合後のファイルがあった場合は削除
Write-Host "Delete  : book dir, book.epub, book.zip"

If(Test-Path "book"){
  Remove-Item -Path "book" -Recurse
}
If(Test-Path "book.epub"){
  Remove-Item -Path "book.epub"
}
If(Test-Path "book.zip"){
  Remove-Item -Path "book.zip"
}

# フォルダ&ファイルの生成
New-Item "book"          -ItemType Directory > $null
New-Item "book\META-INF" -ItemType Directory > $null
New-Item "book\OEBPS"    -ItemType Directory > $null
Write-Output $containerBody | Out-File -FilePath "book\META-INF\container.xml"  -Append -Encoding UTF8
Write-Output $mimetype      | Out-File -FilePath "book\mimetype"                -Append -Encoding UTF8
Write-Output $opfBody       | Out-File -FilePath "book\OEBPS\content.opf"       -Append -Encoding UTF8
Write-Output $ncxBody       | Out-File -FilePath "book\OEBPS\toc.ncx"           -Append -Encoding UTF8

# ---------------------------------------------------------
$cnt = 0  # カウンター

# define hash table
$fileNameHashTable = @{};
$fileIndexHashTable = @{};

# ファイル名と、ソートするキーの取得
foreach($f in $fileList){
  # set index 
  # ファイル名が「第NNN部分~.txt」となるので、1文字目を飛ばして、部分で分割(split)して数字を取得
  # 2025/05/08 なろうの仕様変更により、8行目以降の数字を取得
  $fileIndexHashTable.Add($cnt , [int]$f.Substring(8).Split('.txt')[0]);
  # set file name
  $fileNameHashTable.Add($cnt , $f);
  $cnt++
}

# indexでソート
$fileIndexHashTable = $fileIndexHashTable.GetEnumerator() | sort -Property value

# ヘッダの出力
Write-Output $htmlHeader | Out-File -FilePath $outFile -Append -Encoding UTF8

# 目次の生成
Write-Output ( "<h1>目次</h1>`r`n<p>" )  | Out-File -FilePath $outFile -Append -Encoding UTF8
foreach($fileEnt in $fileIndexHashTable){
  $key = $fileEnt.Key;
  $val = $fileEnt.Value;
  # ファイル名を目次にする
  # $midashi = [System.IO.Path]::GetFileNameWithoutExtension($fileNameHashTable[($key)])
  # 2025/05/08 なろうの仕様変更により、ファイルの1行目を目次にする
  $midashi = getEachSubject($fileNameHashTable[($key)])
  Write-Output ( "<a href=`"#" + $val + "`">" + $val + "  " + $midashi + "</a><br />" )  | Out-File -FilePath $outFile -Append -Encoding UTF8
}
Write-Output ( "`r`n</p>`r`n" )  | Out-File -FilePath $outFile -Append -Encoding UTF8

# 本文の生成
foreach($fileEnt in $fileIndexHashTable){
  $key = $fileEnt.Key;
  $val = $fileEnt.Value;
  # Write-Host ( $fileNameHashTable[($key)] )
  # PROGRESS
  Write-Host -NoNewline ("`r" + "Progress: ${val} / ${cnt} ")
  
  # 2025/05/08 なろうの仕様変更により、ファイルの1行目を目次にする
  # $midashi = [System.IO.Path]::GetFileNameWithoutExtension($fileNameHashTable[($key)])
  $midashi = getEachSubject($fileNameHashTable[($key)])
  Write-Output ( "<h1 id=`"" + $val + "`" style=`"page-break-before:always`">" + $val + "  " + $midashi + "</h1>`r`n<p>" ) | Out-File -FilePath $outFile -Append -Encoding UTF8

  #$htmlBody = Get-Content  -Encoding UTF8  
  # Get-Content $htmlBody -Encoding UTF8   | Out-File -FilePath $outFile -Append -Encoding UTF8

  $htmlBody = [System.IO.File]::ReadAllText($fileNameHashTable[($key)]).Replace("`r`n","<br />`r`n")
  ($htmlBody + "`r`n</p>`r`n" )| Out-File -FilePath $outFile -Append -Encoding UTF8
}

# フッタの出力
Write-Output $htmlFooter | Out-File -FilePath $outFile -Append -Encoding UTF8
Write-Host ""

# ---------------------------------------------------------
# ZIP圧縮 & 拡張子変更
Compress-Archive -Path "book" -DestinationPath "book.zip"
Rename-Item -Path "book.zip" -NewName "book.epub"
Write-Host "Created : book.epub"
実行方法
  • スタートメニュー等からPowerShellを起動
powershell console
  • txts2epub.ps1を実行

cdコマンドで、カレントフォルダを小説のテキストとpowershellを置いたPATHへ移動してから、実行してください。

PS C:\> cd C:\tensura_work\
PS C:\tensura_work> PowerShell -ExecutionPolicy RemoteSigned -file .\txts2epub.ps1 "[伏瀬] 転生したらスライムだった件"
Titile  : [伏瀬] 転生したらスライムだった件
Delete  : book dir, book.epub, book.zip
Progress: 304 / 304
Created : book.epub
powershell実行例
  • book.epubファイルができていたら成功です。
book.epubの確認

以上

フリー小説をKindleの縦書きファイルへ変換する(2)

  1. はじめに
  2. 1話ごとのテキストを、一括でダウンロード
  3. Powershellで、1つのファイル(EPUB)を生成(小説家になろう版)
    1. 青空文庫版 
  4. Kindle PreviewerでMOBIファイルへ変換し、USB接続でKindleへ転送

1話ごとのテキストを、一括でダウンロード

小説家になろう」の場合

<訂正>

2025年5月時点で、以下のクロームプラグインは削除されているようです。

代わりに以下のバッチファイルでダウンロードができそうです。

nyanshiba.hatenablog.com

 

一括でダウンロードするために、chromeプラグインをインストールします。

一括ダウンロードの概要

 

  1. 拡張機能のインストール
    1. 小説家になろうダウンローダー
    2. 小説家になろう一括DLプラグイン
  2. 一括ダウンロード
    1. 小説家になろう」で、TXTダウンロードをするためには、ユーザ登録が必要です。事前に登録してください。
    2. 例えば「転生したらスライムだった件」なら、この一覧のページに行きます。ページの下の方に「TXTダウンロード」のリンクがあります。
    3. TXTダウンロードのリンク

       

    4. 小説家になろう一括ダウンロード
  3. ZIPファイルになってダウンロードされる
    1. ダウンロードしたZIPファイル

以上