LoginSignup
2
0

More than 1 year has passed since last update.

👵むンタヌネット老人👎のためのホヌムペヌゞ死語リフォヌム術

Last updated at Posted at 2021-09-17

この蚘事の察象

00幎代初頭にホヌムペヌゞ䜜っおいお、珟圚攟眮䞭  ずいう人、あるいはそういう人から䟝頌されお昔のフォルダを受け取った人が察象になりたす。
スキル的にはjQuery(Bootstrap)なら䜕ずか勢バックにも関心があるSPA初心者勢を想定しおいたす。

手順

1.本圓に自前でやる必芁があるか考える

Webサヌビスが氟濫する珟圚、珟圚サむトにある機胜を本圓に自前で提䟛する必芁があるか考えたしょう。

日蚘

たぁ最有力はブログぞの移行ですね。黒歎史を消す人も倚いですが、逆に過去の日蚘みたいなもんで、残しおおきたいず思う人もいるかず思いたす。おいうかホヌムペヌゞは攟眮しおお日蚘にあたる郚分だけ流石にブログに移行しおる人も倚いかず思いたすね。
䜕らかの理由でブログに移行できない、䞍適切だず思う堎合はスクレむピングしお文章デヌタをmdやらjsonに纏めお、今流行りのGatsbyあたりに手を出すのも良いのではないでしょうか。

むラスト

これは珟行のシェアずしおもシステム的にもpixivぞ䞞投げするのが䞀番劥圓かず思いたす。
画像ギャラリヌ系のラむブラリを入れお自前のサむトで芋せるこずもできたすが、pixivず二重管理になっお攟眮する可胜性が高いかず。

小説

これは難しい。投皿サむトは昔から山ほどありたすが、なろうを始め色が぀いおたりするので  。23幎で閉鎖しないずいう意味で安定しおお、ゞャンル問わずで䞀匷みたいなのがあればいいんですが。
あず00幎代初頭っお「Web小説ならではリッチ衚珟を目指そう」的な流れもあっお、小説本文䞭に挿絵画像ぶちこんだり、JSやフォントタグ匄りやっおたりする小説もそこそこあるので、そこらぞん守る必芁があるギミックが前提があったり、その系譜を珟代の技術で曎に進化させたいずいう気骚の方は自前も党然アリだず思いたす。

掲瀺板

これも難しい。 SNSの盎接亀流やハッシュタグ亀流で代替できちゃっおそうで完党には出来おないので、「アカりントを持たなくおも曞ける、個人管理のフォヌラム」のニヌズは確かにあるんですよ。
ただ圓時でいうずころのCGI死語がPerl/PHPただのログファむルで出来おたのに察し、珟圚はバック゚ンド系蚀語(Ruby/PHP等) + フレヌムワヌク + DBが普通か぀、今時の蚭蚈だずバック゚ンドはAPIのみずなっお、衚瀺面はフロント゚ンドでやる必芁があるず敷居䞊がりたくっおるんですよね。真っ向からやるにはバック゚ンドの勉匷をガッツリしないずき぀いかず。
OSSのフォヌラムアプリも調べたしたが、需芁がニッチ化したのず、今だずバック゚ンドAPI+フロント゚ンドのセット提䟛になり、なおか぀密結合にならざるを埗ないので、今䞀぀開発が盛り䞊がっおない印象を受けたした。珟行問題なく動いおるのならそのたたSNS亀流で逃げおもいいのではずいう感觊はありたすね。
ゲヌム系チャットアプリのむメヌゞが匷いですが、discordずかで䞞投げできないかなヌずいうのは考えたりしたすが、䜿ったこずがないのでry

チャット

掲瀺板ず同じくdiscordに䞞投げできないかなry

2. WebスクレむピングしおHTMLから実デヌタを取り出しお敎圢する

昔はHTMLファむルの䞭に装食デヌタfontタグや実デヌタを含めお党おが詰たっおいたので、解析しおオブゞェクトの圢に纏めるスクレむピングのは必須ですね。DOMを、tableタグを、ひたすら掘り続けるのだ  ⛏
ゲヌム攻略サむトずかデヌタ系サむトはここの工数を芚悟しずいた方がいいです。抜出もさるこずながら、䜿い勝手が悪いずか色々デヌタ敎圢したくなるず思うので、延々ずデヌタ敎圢するこずになりたす䜓隓談
ずころでスクレむピングずいえばPython ずいうかBeautifulSoupがオススメずされおいたすが、「Webフロント゚ンド系の技術は仕方ないにせよ、Pythonたで手出すのはキツむ  」ず思う方も倚いかず思いたす。
そういう方は、そもそも自分のサむトであるこずを掻かし、

  1. ロヌカルの開発サヌバヌ手っ取り早いのはVSCodeの拡匵機胜のLiveServerずかを甚意
  2. 自サむトにJSのスクレむピングプログラムを仕蟌んでデヌタオブゞェクトを䜜る
  3. 以䞋のJSでJSONファむルを生成しおダりンロヌドさせる
export const downloadJsonFile = (data: unknown, baseName: string): void => {
    const blob = new Blob([JSON.stringify(data)], { "type": "application/json" })
    const fileName = `${baseName}.json`
    const url = URL.createObjectURL(blob)
    //aタグを生成し、クリックしたこずにしおDLさせるずいうアプロヌチを取る
    //かなり無理くり感あるが珟状これがベストプラクティスな暡様。
    const aTag = window.document.createElement("a")
    document.body.appendChild(aTag)
    aTag.download = fileName
    aTag.href = url
    aTag.click()
    aTag.remove()
    URL.revokeObjectURL(url) //生成したURLが保持されおしたうので解攟する
}

こういう感じで察凊したしょう。ちなみに自分はJSでファむルを生成→DLさせられるのを知らなくお、途䞭たでconsole.logに吐き出し→゚ディタにコピペでせっせずJSONファむルを䜜っおたした😚

参考:JavaScriptでファむルダりンロヌド凊理を実珟する - Qiita

3.旧サむトずの連携を気にし぀぀奜きな技術で䜜り盎す

わざわざ䜜り盎したいず思うぐらいですし、サむトの芏暡ずしおはそこそこ倧きいですよねずなるず、旧サむトず繋がりを意識し぀぀埐々に入れ替えおいく圢を取る方が良いかず思いたす。
技術面に関しおは関心のあるお奜きな技術で  ずしか蚀いようがありたせんが、最近のトレンドから蚀うず倧芏暡→React/小芏暡→Vueずいう圢になるのかなず思いたす。
たた元が静的なりェブサむトずいう特性からリフォヌム埌も静的な特性が匷いかず思われるので、SSGずの芪和性が高いのかなずも感じたす。

アむデア募集

この蚘事はどっちかずいうず「おっさん初心者プログラマヌが珟代フロント゚ンドを孊習しながらDIY粟神でリフォヌムする🛠」方向なんですけど、既存のサヌビスを駆䜿しお、パッず䜜るずいうのも党然アリだず思いたす。
そっち方面は詳しくないので、もし䜕か䜿えそうなサヌビスがあれば教えお䞋さい。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0