Free web encyclopedia for any IT projects on its own engine

Introduction



When I was trying to promote my latest project (web chat), I ran into the fact that there is virtually nowhere to write about it. The situation concerns not only wiki projects, but in general the entire Runet. Large sites have a policy that you cannot write about your project - you must either buy advertising, or someone else must write about you. If we consider specifically wiki sites, then even getting to Lurk or Wikireality is problematic, not to mention such a giant as Wikipedia. Although then I found a couple of small uncensored wiki portals, for which I wrote two unique reviews on my chat. They inspired me to create a free wiki resource for IT development.



Why write your own wiki engine when there are ready ones?



Well, first of all, it was interesting to me. Creating a ready-made website using a template in a few clicks is boring and doesn't deserve the attention of the audience. And a new development with its own interface is likely to attract more interest. In addition, it seems to me easier to write code for certain tasks from scratch, taking as a basis any framework to simplify development, than to redo the heaps of someone else's code for yourself.



image



More about wikiclick.ru



Wikiclick.ru is a free web-based encyclopedia of IT development. Here you can write about your site, application, service, game or other development, for example, about your framework or library, and your article will not be regarded as spam. And the navigator will automatically create a tree-like table of contents for your page by h1-h6 headings. A discussion in the form of a tree of comments will also be available on the page with your project. The created page can be found in the version history, in the site search, in the selection by the specified tags, or in the corresponding section to which your development belongs. In the project overview, you can limit yourself to only a small description, and the community will eventually supplement the article. You can also attach pictures.



Now it is fashionable to make multilingual sites, but the last project taught me that I have no idea how to promote a site in another country, and how to moderate it when I only know technical English, so I dropped this idea at the start. Although, perhaps, in the future I will implement multilingualism in the engine itself.



About the WikiClick engine



The server is written like a blunder - a lot of duplicate code, comments are completely absent, and some lines are written bypassing the framework's methods, for example, visualization. But for the rest, I combed it: it works great and quickly adjusts for itself (unless you are confused by the lack of an admin panel). The whole development of WikiClick took me about a month.



I like the way the WikiClick engine turned out - it is compact, beautiful, fast, the server code kept within 1000 lines. A new entry is made to the version log only if the page was written from a different ip or on a different day - this mechanism allows you to save all key versions of the page without typing a bunch of identical duplicates with edits from one user. Your comments are saved to the session, and while it has not expired, you can edit them. A good responsive layout almost immediately fit the mobile version. The discussion in the form of a tree of comments at the bottom of the page seems more convenient than on Wikipedia or on Lurka (Although I am not an active participant in these projects and my opinion is controversial). Using HTML code in page content looks more flexible and is likely to be more familiar to developers.And the heading navigator turned out to be much simpler than those I found on the Internet, and it works on the client side without creating a load on the server. It is made in jquery and is suitable for reuse, although it requires the author to follow the sequence of headers:



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: I hope my bike was able to interest you (we will consider this as a beta test).



Links



wikiclick.ru

Project on GitHub



All Articles