Revisão | 130 (tree) |
---|---|
Hora | 2023-01-07 12:36:42 |
Autor | ![]() |
0.9.2
SNSリンクURLをhttpからhttpsに変更しました。
ツイッターのリンクURLを /share? から /intent/tweet? に変更しました。
同梱の samples を修正・微調整しました。
TemplateNotFoundException のメッセージでテンプレート適用対象のファイル名を表示するようにしました。
依存ライブラリ fx-util 0.4.8 -> 0.4.9
exewrap 1.6.5 -> 1.6.6
@@ -5,10 +5,10 @@ | ||
5 | 5 | --- |
6 | 6 | [JIS X 4051(日本語文書の組版方法)]: https://kikakurui.com/x4/X4051-2004-02.html |
7 | 7 | |
8 | -組版(くみはん)とは、原稿及びレイアウト(デザイン)の指定に従って、文字・図版・写真などを配置する作業の総称です。 | |
8 | +組版《くみはん》とは、原稿及びレイアウト(デザイン)の指定に従って、文字・図版・写真などを配置する作業の総称です。 | |
9 | 9 | 印刷の一工程としては、文字や図版などの要素を配置し、紙面を構成することです。組み付けともいいます。 |
10 | 10 | 本来は活版印刷の用語であり、文字どおり版を物理的に組むこと、 |
11 | -活字を並べて結束糸で縛ったものを「組み版」と呼んだことに由来しています。 | |
11 | +活字を並べて結束糸で縛ったものを「組《く》み版《はん》」と呼んだことに由来しています。 | |
12 | 12 | |
13 | 13 | <!--more--> |
14 | 14 |
@@ -6,9 +6,9 @@ | ||
6 | 6 | サイトやブログを作成してインターネット上に公開することをWebパブリッシングと言います。 |
7 | 7 | 直訳すると出版ですね。 |
8 | 8 | |
9 | -古くは梓の木を版木として文字を刻んでいたことから、 | |
10 | -出版のことを「上梓(じょうし)」とも言います。 | |
11 | -実際は、梓(あずさ)のことではなくキササゲという木のことだそうです。 | |
9 | +古くは梓《あずさ》の木を版木として文字を刻んでいたことから、 | |
10 | +出版のことを「上梓《じょうし》」とも言います。 | |
11 | +実際は、梓のことではなくキササゲという木のことだそうです。 | |
12 | 12 | このキササゲの英語名がCatalpa ovataです。 |
13 | 13 | |
14 | 14 | Catalpa ovataが、この静的サイトジェネレーターの名前の由来となっています。 |
@@ -23,6 +23,7 @@ | ||
23 | 23 | import freemarker.template.Template; |
24 | 24 | import freemarker.template.TemplateException; |
25 | 25 | import freemarker.template.TemplateNotFoundException; |
26 | +import freemarker.template.utility.StringUtil; | |
26 | 27 | import net.osdn.catalpa.Context; |
27 | 28 | import net.osdn.catalpa.Handler; |
28 | 29 | import net.osdn.catalpa.Util; |
@@ -121,8 +122,23 @@ | ||
121 | 122 | name += ".ftl"; |
122 | 123 | } |
123 | 124 | FileTime lastModifiedTime = null; |
124 | - Template template = context.getFreeMarker().getTemplate(name); | |
125 | - | |
125 | + Template template = null; | |
126 | + try { | |
127 | + template = context.getFreeMarker().getTemplate(name); | |
128 | + } catch(TemplateNotFoundException original) { | |
129 | + String msg = original.getMessage() != null ? original.getMessage() : ""; | |
130 | + if(!msg.startsWith("Template not found")) { | |
131 | + throw original; | |
132 | + } | |
133 | + | |
134 | + TemplateNotFoundException exception = new TemplateNotFoundException( | |
135 | + original.getTemplateName(), | |
136 | + original.getCustomLookupCondition(), | |
137 | + "\"" + context.getRelativeInputPath() + "\" に適用するテンプレート " + StringUtil.jQuote(original.getTemplateName()) + " が見つかりません。"); | |
138 | + exception.setStackTrace(original.getStackTrace()); | |
139 | + throw exception; | |
140 | + } | |
141 | + | |
126 | 142 | if(template != null) { |
127 | 143 | TemplateLoader tl = context.getFreeMarker().getTemplateLoader(); |
128 | 144 | Object templateSource = tl.findTemplateSource(name); |