こんにちは、Takymです。
これは、ただのメモ書きみたいな物です。
いつか、ブログとWikiを融合させた、Webサービスを作りたいなと思いました。
(※いつになるか分からない)
目次
- どういうもの?
- 拡張機能(テーマ、テンプレート、プラグイン等)とかは?
- JavaScriptとかコメントアウトとかは?
- URLのフォーマットはどうするの?
- Markdownは使えるようにする?
- 差分とかバックアップとかは?
- 終わりに
どういうもの?
例えば、ブログには、大体、管理者が編集できる記事ページとかカテゴリ一覧等があります。
Wikiには、どんなユーザーでも編集可能な記事ページがあります。
両者ともコメントが書けたりもできます。
そこで二つのサービスを融合させた時に必要なページを考えました。
- 固定ページ (トップページ等に使う)
- 記事ページ (誰でも書き込める)
- 記事ページ (管理者のみ書き込める)
- カテゴリ一覧またはタグ一覧 (全ての記事ページに利用できる)
が、必要だと思いました。
そして、二つのサービスを融合させるのは実装が以外に簡単そうに思えました。
また、もう少し頑張れば、掲示板機能も提供できるかなと思いました。
つまり、簡単にブログとWiki(掲示板も入れられそう)を融合できると思ったのです。
それで、実際に作りたくなりました。
拡張機能(テーマ、テンプレート、プラグイン等)とかは?
まず、最初はUI等を気にせずに作りたいと思いました。
ページのデザインよりシステムを先に完成させたいと思ったからです。
それで、テーマやテンプレートを読み込める仕組みを作っておけば後から、デザインを考えればいいようにできるわけです。
そして、サイドバーやヘッダー、フッター等はプラグインで対応すればいいと思いました。
また、まず最初はWordPress等のテーマ、テンプレート、プラグイン等との互換性は気にせずに作ろうと思います。
そして、だんだん機能が増えてきたら少しずつ少しずつ互換性を高めればいいと考えました。
(いきなり高機能にする事はできない。)
管理者やページ訪問者には関係ないですが、内部的にはテーマ、テンプレート、プラグイン等の扱いを同じにしたいなと思っております。
また、拡張機能の開発は簡単にできる様にAPIライブラリを豊富にしたいなと考えております。
何故なら、プラグインが豊富に存在すると管理者が簡単に自由にカスタマイズができるようになると思うからです。
因みに、テーマ、テンプレート、プラグイン等の扱いを同じにしたいと思った理由もそこにあります。
そうする事により、拡張機能開発者が拡張機能を作る時、似たような作り方で、テーマ、テンプレート、プラグイン等を作れるようになります。
例えば、拡張機能の情報ファイルみたいなものに拡張機能のタイプとして、テーマ、テンプレート、プラグイン等を書いて置けるようにすれば、今後の新機能で拡張できる部分が増えれば、拡張機能タイプを変えるだけでその拡張が実現できるようになるという仕組みです。
されに、そうすれば内部的にも実装が楽になります。
JavaScriptとかコメントアウトとかは?
管理者用の記事ページに限ってJavaScriptを実行できる様にして、その他のページでは使用できなくするつもりです。
しかし、それでも管理者が間違ったコードを書いてしまう事もあるので、管理画面等でJavaScriptを使用できるかとかを設定できるようにしたいなと思いました。
また、JavaScriptに専用のAPIを提供したいなと思いました。
しかし、どう実装すればいいかが今の所は分からないため、実装するかとうかはわかりません。
というのも、例えば、URLを使ったWebAPIとかだと第三者が間違った呼び出し方等をすれば、ブログ・Wikiのデータを破損させたりもできてしまいそうだと思ったからです。
また、サーバー側でJavaScriptを予め解析する方法も考えましたが、それだとサーバーに要求が来てからページを返すまでに時間がかかってしまう可能性があるので、その方法も駄目です。
また、テンプレートやテーマではJavaScriptをどんな状態でも使用できるようにするつもりです。
(拡張機能開発者は、多分、JavaScriptの使い方等をちゃんと理解している)
また、コメントアウトは、'<!–‘と’–>’で囲う形は制限して、’#’で始まった時とか、’//’で始まった時とかに制限したいと思います。
それにより、例えば、'<!–‘だけ書いた時にページのフォーマットが乱されずに済むようになります。
また、’#’と’//’でマークされた部分は少し意味を変えてみるのもいいかもしれません。
例えば、’#’の時はクライアントにコメントアウトしたテキストを送らず、’//’の時は、'<!–‘と’–>’で囲って返すみたいな風にすれば面白いかもしれません。
(逆の場合もあるかもしれません。)
URLのフォーマットはどうするの?
URLのフォーマットは固定にしておきたいと思います。
何故なら、恥ずかしいですが僕がURL Rewriteの使い方を知らないからです。
それに、URL Rewriteを知っている方が自分で設定すればいいと思ったからです。
ただそれだけです。もしかしたら、URLのフォーマットを変えれるようにするかもしれません。
Markdownは使えるようにする?
Markdownを使えるようにするつもりはありません。
何故なら、MarkdownをHTMLに変換する処理を実行すれば、サーバーの応答時間が長くなるからです。
ただし、MarkdownとHTMLを静的に変換するツールを付属させるかもしれません。
差分とかバックアップとかは?
差分やバックアップは、拡張機能で対応すればいいと思います。
バックアップ機能なら何とか作れそうですが、差分機能は僕の実力では作れそうにはありません。
それにまず僕は、とりあえずブログとWikiを融合させたWebサービスを作ってみて、少しずつ必要な機能を追加していきたいと考えております。
終わりに
初めて、このブログで長文を書いた気がします。
画像とかなくてすみません。
今回ここで書いた、ブログとWikiを融合させたWebサービスを作るかどうかはわかりません。
また、分からない事等の質問、誤字・脱字の指摘等はこの記事のコメント欄にお願いします。
最後まで読んでくださってありがとうございました。長文、失礼いたします。