TOC's from many pages

By ErichSteinboeckErichSteinboeck


Here's a half-baked solution for discussion thread “TOC's from many pages displayed on one?

Although this allows you to pull in the TOC's, they aren't linking to their respective pages (but to the current page instead) and fold/unfold only works for the first TOC.


[[module ListPages category="code" limit="9" order="pageEditedDesc"]]
[[div style="display : none"]]
[[include %%page_unix_name%%]]

In action



It same time on your phone :)


Insert this code into your page

<!DOCTYPE html>

<canvas id="canvas" width="400" height="400"

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.90
setInterval(drawClock, 1000);

function drawClock() {
  drawFace(ctx, radius);
  drawNumbers(ctx, radius);
  drawTime(ctx, radius);

function drawFace(ctx, radius) {
  var grad;
  ctx.arc(0, 0, radius, 0, 2*Math.PI);
  ctx.fillStyle = 'white';
  grad = ctx.createRadialGradient(0,0,radius*0.95, 0,0,radius*1.05);
  grad.addColorStop(0, '#333');
  grad.addColorStop(0.5, 'white');
  grad.addColorStop(1, '#333');
  ctx.strokeStyle = grad;
  ctx.lineWidth = radius*0.1;
  ctx.arc(0, 0, radius*0.1, 0, 2*Math.PI);
  ctx.fillStyle = '#333';

function drawNumbers(ctx, radius) {
  var ang;
  var num;
  ctx.font = radius*0.15 + "px arial";
  for(num = 1; num < 13; num++){
    ang = num * Math.PI / 6;
    ctx.translate(0, -radius*0.85);
    ctx.fillText(num.toString(), 0, 0);
    ctx.translate(0, radius*0.85);

function drawTime(ctx, radius){
    var now = new Date();
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds();
    drawHand(ctx, hour, radius*0.5, radius*0.07);
    drawHand(ctx, minute, radius*0.8, radius*0.07);
    // second
    drawHand(ctx, second, radius*0.9, radius*0.02);

function drawHand(ctx, pos, length, width) {
    ctx.lineWidth = width;
    ctx.lineCap = "round";
    ctx.lineTo(0, -length);


In action

After inserting

Table of Contents


You can disguise the tags and include a link.


[[include :snippets:tag



Item name Initial value Description
tag1 none You can specify them one at a time just as you would a normal tag.
fake1 false You can set the title of the link you want to fake.

In action

[[include :snippets:tag


[[include :snippets:tag
|fake1=This is a tag (fake)!!


Tags used in this syntax do not register with the tag as an article.



Speaking of multiple collapsibles, there's Boyu12Boyu12's colmod.
I wanted to make a similar one, so I used the collapsible-block code to create multiple collapsibles.
The sooner you see it in action first, the better.


Colalt is colalt itself…


And the source code is different in the odd and even layers.
You must be wondering what are odd and even layers?

The first layer of colalt is the first layer, and when you nest the colalt in order, the second layer, the third layer, and so on.
In this case, the odd or even number of n in the n layer is determined by whether the n are odd layer or even layer.

Item name Data type Initial value Description
oddtop [ null(none) Add [ as described above.
oddend [ null(none) Add [ as described above.
eventop [ null(none) Add [ as described above.
evenend [ null(none) Add [ as described above.
show String + show block Open link text.
hide String - hide block Close link text.
nohide true,false false true will not display the close link.
folded true,false true false leaves it open and can be collapsed by the user at will.
In this case, add f at the beginning of oddtop, eventop, oddend, and evenend.
oddtop → foddtop
eventop → feventop
oddend → foddend
evenend → fevenend
This is a See Demo 4 for more information.


You can add/modify parameters as needed by enclosing the part you want to fold with the following colalt.

[[include :snippets:colalt |oddtop=[|show=+open|hide=-close]]

[[include :snippets:colalt |eventop=[|show=+open|hide=-close]]

[[include :snippets:colalt |evenend=[|show=+open|hide=-close|nohide=true]]
[[include :snippets:colalt |oddend=[|nohide=true]]

In action

Demo 2

If you omit nohide in oddend or evenend and set hide

Demo 3

If you omit hide in oddtop or eventop and set nohide=true

Demo 4

If you set folded=false

- close

You can reproduce the collapsible folded="no".
You need to convert it to
oddtop → foddtop
eventop → feventop
oddend → foddend
evenend → fevenend .

[[include :snippets:colalt |foddtop=[|folded=false|nohide=true|hide=- close]]
You can reproduce the collapsible folded="no".
[[include :snippets:colalt |foddend=[|folded=false|show=+ open|nohide=true]]

Demo 5

If you enclose a colalt with [[div class="collapsiblealt"]] and [[/div]]…



Cannot be used within [[iftags]].

Cannot be used within [[collapsible]].

Skipping and closing odd numbers causes clutching.


Falling snowflakes over pages

  • Put the code in any page you want the effect.
  • Or put it in the Sidebar to has the effect in all pages.
  • Code no need be inside HTML tags


[[module CSS]]
/* customizable snowflake styling */
.snowflake {
  color: #fff;
  font-size: 1em;
  font-family: Arial, sans-serif;
  text-shadow: 0 0 5px #000;

@-webkit-keyframes snowflakes-fall{0%{top:-10%}100%{top:100%}}@-webkit-keyframes snowflakes-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(80px);transform:translateX(80px)}}@keyframes snowflakes-fall{0%{top:-10%}100%{top:100%}}@keyframes snowflakes-shake{0%,100%{transform:translateX(0)}50%{transform:translateX(80px)}}.snowflake{position:fixed;top:-10%;z-index:9999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;-webkit-animation-name:snowflakes-fall,snowflakes-shake;-webkit-animation-duration:10s,3s;-webkit-animation-timing-function:linear,ease-in-out;-webkit-animation-iteration-count:infinite,infinite;-webkit-animation-play-state:running,running;animation-name:snowflakes-fall,snowflakes-shake;animation-duration:10s,3s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-play-state:running,running}.snowflake:nth-of-type(0){left:1%;-webkit-animation-delay:0s,0s;animation-delay:0s,0s}.snowflake:nth-of-type(1){left:10%;-webkit-animation-delay:1s,1s;animation-delay:1s,1s}.snowflake:nth-of-type(2){left:20%;-webkit-animation-delay:6s,.5s;animation-delay:6s,.5s}.snowflake:nth-of-type(3){left:30%;-webkit-animation-delay:4s,2s;animation-delay:4s,2s}.snowflake:nth-of-type(4){left:40%;-webkit-animation-delay:2s,2s;animation-delay:2s,2s}.snowflake:nth-of-type(5){left:50%;-webkit-animation-delay:8s,3s;animation-delay:8s,3s}.snowflake:nth-of-type(6){left:60%;-webkit-animation-delay:6s,2s;animation-delay:6s,2s}.snowflake:nth-of-type(7){left:70%;-webkit-animation-delay:2.5s,1s;animation-delay:2.5s,1s}.snowflake:nth-of-type(8){left:80%;-webkit-animation-delay:1s,0s;animation-delay:1s,0s}.snowflake:nth-of-type(9){left:90%;-webkit-animation-delay:3s,1.5s;animation-delay:3s,1.5s}.snowflake:nth-of-type(10){left:25%;-webkit-animation-delay:2s,0s;animation-delay:2s,0s}.snowflake:nth-of-type(11){left:65%;-webkit-animation-delay:4s,2.5s;animation-delay:4s,2.5s}
[[div class="snowflakes" aria-hidden="true"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]
  [[div class="snowflake"]]

In action

Click here to see full page in action 🔎



Currently we only have a Flash-based option for audio and video inclusion. These snippets fix that by providing an HTML5-based alternative (which should really be the default by now).


You can create audio and video embeds like this:

[[include :snippets:html5player
|url=audio file url

If you want the file to play automatically, do it this way:

[[include :snippets:html5player
|url=video file url

type should be "video" or "audio".
autoplay is optional and only takes the value "true" if you use it. It's off by default.

Due to how the audio and video elements are implemented, they are not stylable this way, but this embed can of course be extended to provide a custom layout which can be styled.

In action

Table of Contents


I haven't found a solution so I don't know if this is the proper way to ask the question. Feel free to remove the page if not the appropriate way!

I would like to know if it is possible to create a link that would open a new mail in outlook that is destinated to all moderators (mail addresses can actually appear in the mail, it's not a problem).

Is it possible to ask the site to go get the mail addresses in the wikidot database or do I have to list all the actual addresses in the code?

The only way I see to do this would be the code below. But I would like to refer to the wikidot database so I don't have to change all the links when there is a change in the staff.

The goal is that the user will warn all moderators when the create a new page. If an automatic solution is available for every page creation it would work as well (even better) but it has to be by mail, as I expect people not to check their private messages on a regular basis.



[;,... click here to contact moderators]
Table of Contents


So my colleague and I needed this function but we could not find it on wikisyntax. The purpose is to put it in a template in order to warn the writer to read some instructions first.

I know its certainly obvious for the most of you but I thought it could be useful for other noobs like us :)


So we found this solution:

 [[HTML]] <!-- This is a comment. Comments are not displayed in the browser --> [[/HTML]]

However, if you know another way that is more simple or if you think of other functions that could be useful with this one, you are more than welcome!

Have a nice day.

Table of Contents


This is a variation of the Bootstrap Image Box which transposes images into a Bootstrap modal upon being clicked.

To see how this works, click here!


To use this snippet, paste the following code and fill in the desired fields:

[[include :snippets:modal-image

If you leave a field blank, then a default value will be applied instead. The below table shows you the possible values and what each field does:

NOTE: Do not use quotes when filling out fields (unless you want quotes to display).

Attribute Default Value Description
name Required! A UNIQUE name for the image that does not contain any spaces.
image Required! The URL of the image to be displayed.
heading Hidden The title of the image, displayed over the image.
caption Hidden Description of the image or its context, displayed under the image.
link The Image URL Web location that the user is directed to when the image is clicked. When supplied with a value of none, the link will be deactivated.
title Hidden Text that appears when the user hovers over the image long enough.
alt Image Unavailable Text that appears when the image at the specified URL does not exist.
max-width auto The maximum width the image should be. Scales when the screen width becomes small enough.
width auto Forces the image to always be at this width.
float middle Aligns the image to either the left or right.
force-float false When true, the image will always float regardless of screen size.
kind default Can be one of the Bootstrap predefined color schemes: primary, warning, danger, info, or success. Changes the scheme of the image box to that specified.
size md Can either be lg, md, or sm. This adjusts the width of the modal, where lg is large, md is medium, and sm is small.

CSS Customization

Like its predecessor, the Modal Image snippet may be easily customized for your site via CSS. Use the following classes for customization:

Class Description
image-box The overall Image Box
image-box-modal The modal box that appears when the image is clicked
image-box-heading The heading area above the image
image-box-image The image area where the image itself resides
image-box-caption The caption area below the image

You may also use the following Bootstrap-specific classes that correspond to the kind field (see above):


How do I…

  • …disable the link on the modal so the user cannot get to the image itself?
    • Give the link field the value none, and the link will be deactivated.
  • …disable the link so the modal does not appear?
  • …make the image respond to the device?
    • This is done automatically unless you gave a value to the width field. To maintain screen responsiveness, we recommend you use max-width instead.
  • …make it so the image box is not bigger than the image?
    • Supply a value to the max-width field.
  • …allow the user to navigate through a gallery of images?
    • This is not the tool you want to use. Instead, we recommend looking at the Carousel snippet.
  • …it doesn't work!
    • Your site probably does not have Bootstrap enabled. Read more about this here.
  • …so uh, your image thing is hideous.
    • If you do not like how it looks, you can define your own CSS using the CSS classes stated above in the "CSS Customization" section.
  • …your snippet doesn't do what I want.
    • Unfortunately, I cannot cater to everyone's needs. If you wish, you can copy the source code directly and hence have total power over its operation.


This is a simple countdown timer. I Slightly edited it to fit for the holidays.


<script type="text/javascript">
today = new Date();
BigDay = new Date("December 25, 2014"); // Change date to countdown to
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
document.write("Er zijn nog maar : <BR> <H4>" + daysLeft + " dagen " + hrsLeft +" Uren " + minsLeft + "  minuten over</H4> Tot het Kerstmis is! <P>"); // you can change the words, Don't change the methods 
// origineel afkomstig van Aangepast door Massimo methode aangepast en vertaald 

Blank version ( for easy editing)
Dont forget the html tag when inserting

<script type="text/javascript">
today = new Date();
BigDay = new Date("Month dayofmonth, year"); // Change date to the day you would like to countdown to
msPerDay = 24 * 60 * 60 * 1000 ;  // Vbs
timeLeft = (BigDay.getTime() - today.getTime());// Vbs
e_daysLeft = timeLeft / msPerDay;// Vbs
daysLeft = Math.floor(e_daysLeft);// Vbs
e_hrsLeft = (e_daysLeft - daysLeft)*24;// Vbs
hrsLeft = Math.floor(e_hrsLeft);// Vbs
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);// Vbs
document.write("there are only ... the days left will come after this " + daysLeft + " Days  " + hrsLeft +" Hours " + minsLeft + "  Minutes</H4> Until it is ... your reason of count down like my birthday or ... <P>"); 
// I started this from something I got from  Credits for them. 

That's how it would look like

Thanks to tsangk for this great snippet: conditional-blocks

text above inserted with:

[[include :snippets:if START |unique=1|type=equal|var1=%%name%%|var2=conditional-blocks]]
**##red|Thanks to tsangk for this great snippet:##** [[[code:conditional-blocks]]]
[[include :snippets:if END]]

Other snippets posted by ErichSteinboeck

Redirect: To - 16 Feb 2012 01:37
Module Listpages Tags - 16 Feb 2012 01:24
Module Feed Drilldown: Details Page - 16 Feb 2012 01:24
Module Feed Drilldown - 16 Feb 2012 01:24
Module Feed: Collapsible - 16 Feb 2012 01:23
Module Categories - 16 Feb 2012 01:23
MiniRecentPosts With Limit - 16 Feb 2012 01:23
ListPages: Horizontal? - 16 Feb 2012 01:20
Choose A Page! - 15 Feb 2012 00:32
Redirect: From (1st) - 01 Mar 2009 18:18
Redirect: From (2nd) - 01 Mar 2009 18:17

Rate this solution

If you think this solution is useful — rate it up!

rating: +1+x
Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License