独自のエンジンでのITプロジェクトのための無料のWeb百科事典

前書き



私が最新のプロジェクト(ウェブチャット)を宣伝しようとしていたとき、私はそれについて書く場所が事実上ないという事実に出くわしました。この状況は、ウィキプロジェクトだけでなく、ルネット全体に関係しています。大規模なサイトには、プロジェクトについて書くことができないというポリシーがあります。広告を購入するか、他の誰かがあなたについて書く必要があります。特にウィキサイトを考えると、ウィキペディアのような巨人は言うまでもなく、ラークやウィキリアリティにたどり着くのも問題です。それから、私はチャットで2つのユニークなレビューを書いたいくつかの小さな無修正のwikiポータルを見つけました。彼らは私にIT開発のための無料のwikiリソースを作成するように促しました。



準備ができているのに、なぜ独自のwikiエンジンを作成するのですか?



さて、まず第一に、それは私にとって面白かったです。テンプレートを使用して数回クリックするだけで既製のWebサイトを作成するのは退屈であり、視聴者の注意を引く価値はありません。そして、独自のインターフェースを備えた新しい開発は、より多くの関心を引き付ける可能性があります。さらに、他の誰かのコードの山を自分でやり直すよりも、開発を簡素化するためのフレームワークを基本として、特定のタスクのコードを最初から作成する方が簡単なようです。



画像



wikiclick.ruの詳細



Wikiclick.ruは、無料のWebベースのIT開発百科事典です。ここでは、サイト、アプリケーション、サービス、ゲーム、その他の開発について、たとえばフレームワークやライブラリについて書くことができます。記事はスパムとは見なされません。また、ナビゲーターは、h1-h6の見出しによって、ページのツリーのようなコンテンツテーブルを自動的に作成します。コメントツリーの形式でのディスカッションも、プロジェクトのページで利用できます。作成されたページは、バージョン履歴、サイト検索、指定されたタグによる選択、または開発が属する対応するセクションにあります。プロジェクトの概要では、簡単な説明に限定することができ、コミュニティは最終的に記事を補足します。写真を添付することもできます。



今では多言語サイトを作るのが流行ですが、前回のプロジェクトで、他国でサイトを宣伝する方法や、技術英語しかわからないときにモデレートする方法がわからないことがわかったので、最初はこのアイデアを捨てました。おそらく、将来的にはエンジン自体に多言語を実装する予定ですが。



WikiClickエンジンについて



サーバーは大失敗のように書かれています-多くの重複したコード、コメントは完全に存在せず、一部の行は、視覚化などのフレームワークメソッドをバイパスして書かれています。しかし、残りの部分については、私はそれを組み合わせました:それはうまく機能し、それ自体にすばやく調整されます(管理パネルの欠如に混乱していない限り)。WikiClickの開発全体で約1か月かかりました。



WikiClickエンジンの結果が気に入っています。コンパクトで美しく、高速で、サーバーコードは1000行以内に収められています。ページが別のIPから、または別の日に書き込まれた場合にのみ、バージョンログに新しいエントリが作成されます。このメカニズムを使用すると、1人のユーザーが編集した同一の重複を大量に収集することなく、ページのすべての主要バージョンを保存できます。コメントはセッションに保存され、有効期限が切れていない間は編集できます。応答性の良いレイアウトは、ほとんどすぐにモバイルバージョンに適合します。ページの下部にあるコメントツリーの形での議論は、WikipediaやLurkaよりも便利なようです(私はこれらのプロジェクトに積極的に参加しておらず、私の意見は議論の余地がありますが)。ページのコンテンツでHTMLコードを使用すると、柔軟性が高まり、開発者にとってなじみのあるものになる可能性があります。また、タイトルナビゲーターは、インターネットで見つけたものよりもはるかにシンプルで、サーバーに負荷をかけることなくクライアント側で機能することがわかりました。これはjqueryで作成され、再利用に適していますが、作成者はヘッダーのシーケンスに従う必要があります。



if ($('.cords').length) {
  $h = 'h1, h2, h3, h4, h5, h6';
  $ah = $('article').find($h);
  if ($ah.length >=3) {
    $('.cords').html('<div></div><ul class="level0" data-level="0"><ul>');
    $ol = $('.level0');
    $str = '';
    $.each($ah, function(i, elm) {
      if (i < $ah.length-1) {			
        a = $ah.eq(i).prop('tagName'); b = $ah.eq(i+1).prop('tagName');
      }
      $(this).html('<selection id="H'+i+'">'+$(this).html()+'</selection>');
      $str += '<li><a href="#H'+i+'">'+$(this).text()+'</li>';
      if (i < $ah.length-1 && a>b) $str+='</ul>';
      if (a<b && !(a=='H1' && b=='H2')) $str += '<ul>';
      if (i == $ah.length-1) {
        for (i = parseInt($(this).prop('tagName').substring(1)); i>=3; i--) {
          $str += '</ul>';
        }
        console.log($str);
        $ol.html($str);
      }
    });
  }
}


PS:私のバイクがあなたの興味を引くことができたと思います(これはベータテストと見なされます)。



リンク



GitHubのwikiclick.ru

プロジェクト



All Articles