Calendar

出典: Fukudat

MediaWiki で簡単にダイナミックにカレンダーをジェネる方法はないものかと考えていたが, 下のようなテンプレートを作れば良いことがわかった. テンプレートとして存在しうるカレンダーすべて(何曜日から始まるか x 何日間あるか)を列挙しておき,つきの名前やリンク先をパラメータで渡してカスタマイズできるようにしている. 曜日は7個,1ヶ月の日数は4個(28日,29日,30日,31日)なので全部で28種類である.

以下のパラメータがある(カッコ内はデフォルト値).

  • header: カレンダーのヘッダー (カレンダー)
  • footer: カレンダーのフッター ()
  • color1: ヘッダー部分の背景色 (#ccccff)
  • color2: 曜日見出し部分の背景色 (#eeeeff)
  • color3: フッター部分の背景色 (#eeeeff)
  • color4: 日曜日の背景色 (#ffeeee)
  • color5: 土曜日の背景色 (#eeeeff)
  • width: 幅 (150px)
  • float: 配置 (right)
  • prefix: 日付につけるリンクのプレフィックス (/)
  • suffix: 日付につけるリンクのプレフィックス ()
  • s[1-31]: 各日付につけるスタイル (inherit)
  • c[1-31]: 各日付の色 (inherit)

prefix="abc", suffix="xyz" と指定すると,15日は [[abc15xyz]] にリンクすることになる.デフォルトでは prefix="/", suffix="" なので [[/15]],つまり,サブページ /15 に飛ぶ.

日曜日から始まる28日のカレンダー
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
日曜日から始まる29日のカレンダー
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29
日曜日から始まる30日のカレンダー
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
日曜日から始まる31日のカレンダー
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
月曜日から始まる28日のカレンダー
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28
月曜日から始まる29日のカレンダー
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29
月曜日から始まる30日のカレンダー
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
月曜日から始まる31日のカレンダー
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
火曜日から始まる28日のカレンダー
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28
火曜日から始まる29日のカレンダー
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29
火曜日から始まる30日のカレンダー
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
火曜日から始まる31日のカレンダー
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
水曜日から始まる28日のカレンダー
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
水曜日から始まる29日のカレンダー
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29
水曜日から始まる30日のカレンダー
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
水曜日から始まる31日のカレンダー
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
木曜日から始まる28日のカレンダー
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
木曜日から始まる29日のカレンダー
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29
木曜日から始まる30日のカレンダー
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
木曜日から始まる31日のカレンダー
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
金曜日から始まる28日のカレンダー
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
金曜日から始まる29日のカレンダー
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
金曜日から始まる30日のカレンダー
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
金曜日から始まる31日のカレンダー
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
土曜日から始まる28日のカレンダー
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
土曜日から始まる29日のカレンダー
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
土曜日から始まる30日のカレンダー
1
2 3 4 5 6 7 8
9