No.5431, No.5430, No.5429, No.5428, No.5427, No.5426, No.5425[7件]
by sakura. ⌚2025年9月23日(火) 11:55:04〔9時間前〕 <2978文字> 編集
🍁Re:5424◆実際にtegalog.xmlファイルをご覧頂くのが早いと思いますが、ここに掲載されている画像を見るだけでも概ね分かると思います。こういう感じのXML(っぽいテキストファイル)です。WordPressやMovable Typeのファイルを読むことはできません。
XMLではなく「XMLっぽい」と表現しているのは、XMLの仕様に完全には沿っていないからです。先のリンク先の注釈部分に少し解説してあります。
🍁Re:5425◆直接使ったことはなかったんですが(存在は知っていましたが)、2000年代のCGIっぽさが出ていて懐かしい感じのページですね!
🍁Re:5427◆力作の解説をありがとうございます!今後のどなたかにも役立つと思います。(╹◡╹)
🍁Re:5428◆ああ、そういえばそうですね。今の実装方法だと(設定機能に)容易には加えられないんですが、将来的にはできるようにしたいと思います。とりあえず今の時点でcrossorigin属性とintegrity属性を加えたい場合は、てがろぐ側の機能では読み込ませずに、スキンHTMLに直接script要素を書いて下さい。(スキンから [[JS:LIGHTBOX:JQ]] 等の記述を消して、その代わりにjQueryやLightbox等の望みのスクリプトを読み込むscript要素を書く方法です。)
管理画面の画像管理で自動的に読まれる方に関しては、(ユーザ側に設定の余地がない仕様な分だけ単純なので)もうちょっと早めに対処します。
🍁Re:5429◆とりあえず、ここに掲載されている画像をご覧下さい。これを見て「ああ、簡単だ」と思えれば簡単です(当たり前ですが^^;)。テキストエディタのmiをお使いになるくらいなら、おそらく「簡単だ」と思われるだろうと思います。
てがろぐでは、全投稿を1ファイル(tegalog.xml)で管理します。1件1行で記述し、本文中の改行は <br /> で表す必要がある、というような独自の制約がありますが、難しくはないでしょう。一意の投稿番号を割り振る必要がありますが、てがろぐ管理画面から(投稿番号を1から連番で)割り振り直す機能がありますから(ヘルプドキュメントの「全投稿の投稿番号をNo.1から連番になるよう再採番する機能の使い方」をご覧下さい)、データファイルを自力で作る時点ではテキトーな投稿番号で良いです。全部1でも。
変換作業はローカルでなくてもサーバ上でもどこでも好きなところですれば良いと思います。ローカルでする場合でもWindowsである必要はなくMacでもLinuxでも何でも大丈夫です。BOMなしのUTF-8が編集できればどんなエディタでも良いですから。もしCGI本体の編集が必要な場合は、改行コードを[LF]で保存できる方が望ましいですが、CGI本体の編集は必要ないケースも多いです(設置サーバ次第です)。
by nishishi. ⌚2025年9月23日(火) 11:19:48〔10時間前〕 回答/返信 <1319文字> 編集
5428
WindowsのPCを使っておらず(Mac)、nickyのログがPC内にはなく(サーバー上)、てがろぐCGIも未ダウンロードです
狙ったわけじゃないんですがすみません
.nkyファイルはサーバー提供のwebFTPで開いているので制御文字か判別できませんでした
UTF-8にはなっています。だいぶ前に手動で変えました
2020年04月22日(水)13:14タイトルほんぶん<br>2020-4-22.jpg40
曜日が日本語という以外はほぼ同じ仕様でしょうか?(↑コピペ
基本的にサーバー上で作業してきたのでローカルで行うとすればFTPとエディタ(mi)ぐらいです
windowsを使わない方法があれば…
by admin. ⌚2025年9月23日(火) 09:51:01〔12時間前〕 <332文字> 編集
"integrity" 及び crossorigin="anonymous" の値が設定されていないのが少し気になります。
利用しているCDNそれぞれで
https://releases.jquery.com/
https://cdnjs.com/libraries/lightbox2
属性が付与されたスクリプトタグをappendChildで挿入する形にして頂けると、SRIが担保されると思うので嬉しいです。
ユーザー側で設定するlightbox系ライブラリのJavaScriptやCSSファイルの読み込みでもこれらの値が設定できるといいんですが…。
ご検討どうぞよろしくお願いいたします。
by admin. ⌚2025年9月23日(火) 00:05:04〔21時間前〕 <365文字> 編集
昔に使っていた色々な日記ツールのログをてがろぐへ移植・統合する作業を行ったことがある者です。20年ほど昔にnickyを数ヶ月だけ使ったことがあるのを思い出し、古いデータを探してみたらログファイルを見つけたので試してみました。
以下、WindowsのPCをお使いで、nickyのログがPC内にあることと、てがろぐCGIを既にダウンロード済みであることを想定しています。
5426で既に書いて下さっている通り、nickyのログは西暦のフォルダ内に日付ごとの.nky形式のファイルが生成されていて
2005
├ 0101A.nky
├ 0102A.nky
├ …
…という感じです。この.nky形式のファイルをテキストエディタで開くと
2005/01/01(Sat)00:00[SOH]タイトル[SOH]本文本文本文本文<br>本文本文本文本文本文<br>[SOH]添付画像ファイル名[SOH]フラグ1[SOH]フラグ2[SOH][SOH][SOH][SOH]
…という構成になっています。※[SOH]の部分は制御文字(0x01)です。半角スペースやタブではありません
・フォルダ内にあるnky形式のデータを1つにまとめる
・文字コードをUTF-8に変換
・[SOH]の部分をてがろぐのxmlに則ったタグに変換
・日付に含まれている曜日の部分を除去
・nickyでは記録されていない、投稿日時の秒を00秒として補完
これらの処理を一括でWindows PowerShellで行います。
任意の場所に新しいフォルダを作り、.nky形式のファイルすべてを1つのフォルダにまとめてコピーしておくと楽です。
スタートメニュー
→「PowerShell」と検索
→「Windows PowerShell」を右クリックして「管理者として実行」を左クリック
PowerShellが起動したら、PowerShellが処理を行う場所を.nkyファイルがあるフォルダにするコマンドを入力します。
たとえば.nkyをまとめてあるフォルダが
C:\hoge\nickey\all
だったら
cd C:\hoge\nickey\all
と入力してEnterを押します。PowerShellの表示が
PS C:\hoge\nickey\all> _ ←アンダーバーが点滅
となればOKです。
次に、以下のコードの全文をコピーしてから、PowerShellの画面で右クリックして下さい。コピーしたコードが貼り付けられて実行されるはずです。
※PowerShellコマンドはAIに補助してもらいながら書きました。当方の手持ちの.nkyファイル数個で変換するところまでは動作確認済みですが、実際のてがろぐでの表示までは確認していませんのでご了承下さい。
長いので折り畳み
$output = "nicky2tegalog.txt"
Remove-Item $output -ErrorAction SilentlyContinue
$allLines = @()
Get-ChildItem *.nky | Sort-Object Name | ForEach-Object {
$bytes = Get-Content $_ -Encoding Byte
$raw = [System.Text.Encoding]::GetEncoding("euc-jp").GetString($bytes)
$raw = $raw -replace '\([A-Za-z]{3}\)', ''
$raw = $raw -replace '(\d{4}/\d{2}/\d{2})(\d{2}:\d{2})', '$1 $2'
$lines = $raw -split "`r?`n"
$allLines += $lines
}
$id = $allLines.Count
foreach ($line in $allLines) {
$fields = $line -split [char]1
if ($fields.Count -ge 4) {
$date = $fields[0].Trim()
if ($date -match '^\d{4}/\d{2}/\d{2} \d{2}:\d{2}$') {
$date += ":00"
}
$title = $fields[1].Trim()
$body = $fields[2].Trim()
$image = $fields[3].Trim()
$body = $body -replace '<br>', '<br/>'
if ($image -ne '') {
$body += "<br/>[PICT:$image]"
}
$entry = "<log><date>$date</date><id>$id</id><user>admin</user><cat></cat><comment>$title<br/>$body</comment></log>"
Add-Content $output $entry
$id--
}
}
Write-Host "処理完了:$output に保存されました"
処理が終わると、フォルダの中に「nicky2tegalog.txt」というtxtファイルが生成されます。これをテキストエディタで開いて中身をすべてコピーし、てがろぐのxmlファイル内の<tegalog>と</tegalog>の間に貼り付ければOKです。
あとはてがろぐ側の設定画面にある「投稿の一括調整」から、日付順に並び替えたり記事Noを採番し直したりして調整して下さい。記事のユーザー名をadminにしていますので、任意のユーザー名にしたい場合はテキストエディタで一括置換するなりして下さい。
画像はてがろぐをセットアップしたフォルダのimagesにまとめてアップロードすれば表示されるはずです。
1点気になったのが、当方のnickyのログの中に記事の投稿時刻が入力されておらず、日付と曜日しか記録されていないものが1件ありました。(「2004/11/27/(Sat)」となっていた)
上記のコードでは時刻の補完まではしていないので、てがろぐのxmlに貼り付けた後に<date>2004/11/27/</date>という風になっているものが含まれていないか念のため確認して、<date>2004/11/27 00:00:00</date>となるように手動で時刻を追加・修正して下さい。
by sakura. ⌚2025年9月22日(月) 21:55:41〔23時間前〕 <2899文字> 編集
ログデータはおそらく独自の形式でタイトルや画像URLを半角の空白で区切る1行タイプ。ログファイルは1投稿1ファイルです
by admin. ⌚2025年9月22日(月) 20:21:56〔25時間前〕 <92文字> 編集
http://sec-suzuki.com/usr/bin/perl/NICKI/%8E%E6%90%E0/...
データ形式は素人なのでわからないですけども……;;
by admin. ⌚2025年9月22日(月) 19:08:25〔26時間前〕 <175文字> 編集
5428です。てがろぐ自体がnickyのように自分でサーバーに設置して使うCGIツールなのと、nickyのログファイルが1日1ファイル式で多そうなことから、サーバー上・ブラウザ上だけでnicky→てがろぐへ1クリックで引っ越しを完結させる方法は私には思いつけないのですが、Macでも移植・引っ越し作業自体は可能です。ローカルで作業をする場合、とにかくまずは てがろぐのダウンロードと、FTPでnickyのログファイル群をダウンロードをして下さい。にししさんが5430でおっしゃっている画像を見て「ああ、簡単だ」と思えるようでしたらここから先の作業も簡単かと思います。(私が入力している間に にししさんの投稿が…/笑)
大まかに言うと
①ローカルでnkyファイル群をてがろぐの書式沿って変換・統合
②ダウンロードしたてがろぐのzipを解凍し、説明に従ってサーバーに設置 ・動作確認をする
③ローカル側のてがろぐフォルダにあるtegalog.xml(てがろぐのログファイル)をテキストエディタで開き、①で変換したnickyのログを貼り付けて保存
④ ③で更新したtegalog.xmlと、nickyで使っていた画像ファイル群をFTPでサーバーにアップロード
⑤サーバー上のてがろぐで、nickyのログが表示されるか確認
という流れです。
当方にMac環境がないので実際の動作確認はできないのですが、AIに尋ねてみたらMacなら最初から入っているPythonで>>5428で書いたWindowsPowerShellと同等の処理ができるとのことです。
以下、AIからの回答を引用・整理しました。
✅Miで変換用のPythonスクリプトを用意する(上記①の部分にあたります)
Miを起動して、下記のコードを貼り付けて「convert_nicky.py」というファイル名で保存します。
長いので折り畳み
import re
def normalize_date(jp_date):
# 例: "2020年04月22日(水)13:14"
match = re.match(r'(\d{4})年(\d{2})月(\d{2})日.*?(\d{2}):(\d{2})', jp_date)
if match:
yyyy, mm, dd, hh, mi = match.groups()
return f"{yyyy}/{mm}/{dd} {hh}:{mi}:00"
return jp_date.strip() # 変換できなかった場合はそのまま返す
output = "nicky2tegalog.txt"
lines = []
for fname in sorted(glob.glob("*.nky")):
with open(fname, "rb") as f:
raw = f.read()
text = raw.decode("euc_jp")
text = text.replace("<br>", "<br/>")
for line in text.splitlines():
fields = line.split("\x01")
if len(fields) >= 4:
date = normalize_date(fields[0].strip())
title = fields[1].strip()
body = fields[2].strip()
image = fields[3].strip()
if image:
body += "<br/>[PICT:" + image + "]"
lines.append((date, title, body))
with open(output, "w", encoding="utf-8") as out:
for i, (date, title, body) in enumerate(reversed(lines), 1):
out.write(f"<log><date>{date}</date><id>{i}</id><user>admin</user><cat></cat><comment>{title}<br/>{body}</comment></log>\n")
✅ nkyファイルをまとめたフォルダを作る
デスクトップに nicky_logs というフォルダを作って、そこにFTPでダウンロードしてきた.nkyファイル群と、先ほど作ったconvert_nicky.py を一緒に入れます。
✅ ターミナル上でnicky_logsフォルダを開く
ターミナルを起動して、下記のコードを入力してEnterを押します。
✅ ターミナルでPythonスクリプトを実行する
下記のコードを入力してEnterを押します。
するとconvert_nicky.pyが実行されて、デスクトップのnicky_logsフォルダ内に「nicky2tegalog.txt」というファイルが生成されているはずです。
✅ txtファイルの中身をtegalog.xmlに貼り付けて保存(上記③の部分にあたります)
Miでnicky2tegalog.txtを開いて、中身をすべて選択してコピーしておきます。
次にMiでローカルのてがろぐフォルダにあるtegalog.xmlを開きます。
画像で濃くなっている部分のように、
<?xml version="1.0" encoding="UTF-8" ?>
<tegalog>
と
</tegalog>
の間に、先ほどコピーしておいたnicky2tegalog.txtの中身を貼り付けます。先頭の2行や</tegalog>を消してしまわないように注意して下さい。貼り付けたら上書き保存をします。
✅ 更新したxmlとnickyの画像群をFTPでアップロード(上記④の部分にあたります)
FTPソフトを起動し、更新したtegalog.xmlをアップロードします。
そして同じくFTPで、nickyで使用していた画像ファイルをサーバー上のimagesフォルダの中にすべてアップロードします。
✅ ブラウザで動作確認(上記⑤の部分にあたります)
ブラウザからサーバーに設置したてがろぐにアクセスして、正常に表示されるか確認して下さい。nickyのログが正常に移植・表示されていた場合は、てがろぐの管理画面にアクセスして
全投稿の一括調整(投稿日時順ソート、投稿番号の再採番) を行って下さい。