アーカイブ - sinonome (2 / 4)

グローバルモディファイアreplaceがなぜか動作しなくなっていたので、修正しました。
おそらくDEFINEREPLACEなどを実装した際のうっかりミスだと思われます。

あと、出力されるコードの相対パス部分に./を含むケースがありましたが、./を含まないように変更しました。特に.././resources/foobar.cssのような(途中に./を含むような)不自然なケースもありましたが、これが修正されました。
そもそも相対パス生成部分の実装にすっきりしない部分があり、どうせなら根本的になおしたいと思っていたのですが、なかなかそこまではできないので、ひとまず機械的に./を削除しています。

今まではサイトファイルの出力先に相対パスしか使えませんでしたが、絶対パスも使えるようになりました。
プロファイルディレクトリsettings.txt内のoutput_directoryで絶対パスを指定してください。

output_directory, D:\sinonome_sitefile\

システムディレクトリなどの本当にヤバい場所を指定してしまうのは(書き込み時にアラートの類が出るとしても)まあマズいだろうと思いますが、むしろ普通のディレクトリに別のサイトの静的ファイル一式を置いており、うっかりそのパスを指定してしまった、というような悲劇のほうがよっぽどあり得るかと思います。くれぐれもお気をつけください。

その他、内部の細かい変更をしています。

  • 辞書ファイルの拡張子を.cから.dicに変更
  • README.md 細部変更

ソフトウェアのバージョン管理を、このバージョンよりGitHubに移行しました。
またGitHubではバージョン番号は普通につけるのが推奨されているようなので、普通の付け方に変更しました。

リリース一覧のページで、変更点の確認が可能です。
ダウンロードするには、「Latest」と書いてあるバージョンのAssetsの中の「Source code (zip)」というリンクをクリックしてください。

Assetsの中のSource codeからダウンロード

なお恥ずかしながら、GitHubはあまり使ったことがなく、ヤバいくらい見切り発車です。
ソフトウェアの完成度よりも、むしろ私の完成度の方がアルファバージョン未満であり、初心者です。
よろしくお願いします。

まず非常に重要な変更点として、タグ記号を[:~:]から{~}に変更しました。
Markdownで[]はよく使われるため、これを避けたいという意図です。
(当初はMarkdownの利用を考えていなかったので、他の言語と被らないという基準で[:~:]としていました)

ダウンロード

変更点

重要な変更
  • タグ記号を[:~:]から{~}に変更
  • strformモディファイアの値にAYA/YAYA準拠の「$」を使っていたのを「%」に変更
    (モディファイア値の変数展開とバッティングすることを忘れていたため)
機能追加
  • 投稿のメタ情報にSKIPGENERATEと書くと、ファイルとして出力しないようにした
    (値は必要なく、1行にSKIPGENERATEと書くだけ)
  • 投稿ファイルのメタ情報にDEFINE REPLACE RE_DEFINE RE_REPLACEを追加
    詳細→リソース(ユーザー向け)
  • sinonome 独自のログを出力を実装(プロファイルディレクトリに log.txt を出力します)
その他変更・修正等
  • DATE 未指定の場合は出力時刻が使用されるが、その場合にdate系のタグで出力できていなかったのを修正
  • 範囲タグを入れ子にした場合に誤検知していたが、ある程度きちんと判定するようにした
  • サンプルテーマの修正

ダウンロード

記事ファイルの記述フォーマットを変更

まず最重要事項として、記事・ウェブページファイルの記述フォーマットを変更しました。以下のようになります。
単純なMarkdown形式になったので、各種テキストエディターの色分け機能やアウトライン機能との親和性向上が望めます。

本文の最高レベルの見出しが##になってしまったのは残念ですが、上記の恩恵を考えるとまあいいかなという気がしています。

<!--
TAG: このファイルの投稿に適用するタグ名
-->

# 休日が終わった
<!--
DATE: 2022-06-19
OUTPUTPATH: holiday-end
-->

## いいいいいいいい

本文本文本文本文本文本文本文本文
本文本文本文本文本文本文本文本文

# 休日が始まった
<!--
DATE: 2022-06-18
OUTPUTPATH: holiday-start
-->

## ああああああああ

本文本文本文本文本文本文本文本文
本文本文本文本文本文本文本文本文

..

変更内容

記事ファイル・ウェブページファイルのフォーマット変更
  • 上述の通り、フォーマットを変更
  • メタ情報で指定していたセパレータ変更機能(SEP・SECTIONSEP)を廃止
  • ファイルや各記事等のメタ情報を(必要なければ)入力不要とした
  • {entrybody}等のモディファイアheadinglevelの挙動を変更
    旧)「#」を何タグで出力するかを決める
    新)「##」を何タグで出力するかを決める
    (一番上のレベルのタグからheading1~のクラスが付与されるのは変更なし)
  • 同梱サンプルテーマを新フォーマットで書き直し
機能・タグ・モディファイア等の追加
  • 下書き機能の実装(タイトルの前に(draft)と書くだけ)
  • {tagid}追加(タグのタグID(英数字の方)を出力)
  • グローバルモディファイアstrform追加(出力内容がある場合、書式化して出力)
  • {entries}タグにtagモディファイアを追加(指定したタグを設定した投稿のみ表示できます)
  • {if}タグのモディファイアにneを追加(一致しない場合に真、いわゆる!=
  • アーカイブマッピング用のタグに以下を追加
    <entrydateyear> DATEの年部分
    <entrydatemonth> DATEの月部分
    <entrytag> TAGで最初に指定したタグのタグID
各種変更・修正
  • YAYA 5.69.7.0 → 5.71.2.0
  • モディファイアheadinglevelを指定可能なタグについて、指定していないのに指定されているものとして処理していたのを修正
  • 基本設定remove_blankline, 1で、preタグ内でも改行を削除してしまっていたのを修正
  • {entryfield}の出力がコロン記号まで含んでいたのを修正
  • {pageid}タグを削除(OUTPUTPATHの値等で代用してください)
  • sino.exeをリビルド(少しサイズが小さくなりました 150KB→90KB)
preview 7 の記事ファイルの扱いの変更に関連する項目
  • アーカイブのループの際、entryarchive のコンテキストで{archivetitle}タグは何も返さないように変更(ファイル別アーカイブがなくなったため)
  • {datafiletitle}タグを廃止し、ウェブページ専用の{pagefiletitle}タグを追加した
  • 以下のモディファイア、および値を廃止した
    {entries}file
    {entryprev}`{entrynext}scopeの値のうちfile`
  • 記事ファイル処理時に出力していたファイル「-sortbydate.md」を生成されないようにした
  • ログ取得時、Markdown変換用SAORIのI/Oが大量に記録されてしまうため、リクエスト直前とレスポンス直後にiologのon/offを切り替えるようにした(YAYAのSETSETTING()関数を使用)