pukiwikiの記事を流し込む の履歴ソース(No.1)
更新[[プログラミング/svelte]] * 本格的に移行するかどうかは分からないけど [#ma28df7f] このサイトは pukiwiki を使って作られていて、 どうやら全部で 500 ページくらいあるみたい(え?! これをデータとして流し込んでみるとブログっぽい雰囲気を醸し出せそう。 - 個々のページが pukiwiki 文法なのか markdown 文法なのかを表すフラグを用意する - pukiwiki 文法の場合、表示の際に pukiwiki → markdown → html の変換を行う sqlite では enum は使えないらしいので該当項目は Int で我慢する。 prisma/schema.prisma model Article { id Int @id @default(autoincrement()) author User @relation(fields: [authorId], references: [id]) authorId String @map("author_id") title String body String newRevisionId Int? @unique @map("new_revision_id") oldRevision Article? @relation("ArticleRevision", fields: [newRevisionId], references: [id]) newRevision Article? @relation("ArticleRevision") createdAt DateTime @default(now()) @map("created_at") deletedAt DateTime? @map("deleted_at") attachments Attachment[] + syntax Int @default(0) // 0:MARKDOWN, 1:PUKIWIKI @@index([deletedAt, title, createdAt]) @@index([newRevisionId, deletedAt, title]) @@index([newRevisionId, deletedAt, createdAt]) } LANG: console $ pnpm prisma migrate dev --name "add syntax column to Article" * データの取り込み [#wf9e09d4] pukiwiki/wiki に E38398E383ABE38397.txt みたいな訳の分からない名前のファイルがずら~っとあって、 これらが記事の本文 ファイル名は記事タイトルを英文字も全部含めて encodeURIComponent 的な変換をして % を取り除いたもの 日付はファイルの最終編集日時から取れる このほかに backup に E38182E38184E38195E381A4.gz みたいなファイルがたくさんあって、ここに編集履歴が入っている。 >>>>>>>>>> 1100902204 のように10個の ">" に続けてスペース、10桁の数値が続く行がセパレータになっていて、 間に昔の記事が挟まる。 https://www.yoheim.net/blog.php?q=20141002 によれば zlib を使うと .gz ファイルを node だけで解凍できる。 数値は unix timestamp なので、1000 を掛けると javascript で Date にできる~ https://qiita.com/shirokurotaitsu/items/5efd855900ec6135bbab これだけの情報があれば取り込みは簡単そう。
Counter: 572 (from 2010/06/03),
today: 2,
yesterday: 0