新規作成 | 管理 | 差分 | 検索 | FrontPage | ページ一覧 | 更新履歴 | RSS

PlugInを駆使して予定表を作る - 予定表です。

管理

予定表です。

レシピ

管理
夏休みの予定表♪

$prefix/YYYY-MM-DD という日別のページを作成する

管理

こればっかりは手で入力しないと。

予定のデータを取り出す関数を作る

管理

$prefixと通日を引数に取り、

のリストを返す関数

(def read-daypage 予定を取り出す
     (lambda ($prefix $daynum)
       (let (($date (date $daynum)))
         (cat '[[' $date ' ' $prefix '/' $date ']]')
         (replace '\\n' (br) (replace '\\n$' '' (read (cat $prefix '/' $date)))))))

日付・内容という2カラムの表に整形する

管理
(tabulate 2
          (bold 日付 内容)
          (map (pa read-daypage CalTest)
               (from-to (day-number) (+ (day-number) 6))))

できあがりの品

管理

今日から一ヶ月ほどを表示してみましょう。 ‥‥‥と思ったけど縦がやけに長いので1週間にします。

日付内容
2021-05-16?
2021-05-17?
2021-05-18?
2021-05-19?
2021-05-20?
2021-05-21?
2021-05-22?

練習問題

管理

日付・曜日・予定 の3カラムの表を作りなさい

管理

表から任意の期間(span)を抜き出しなさい

管理

予定の入っていない日をとばして表示しなさい

管理

1日1ページではなく、1ヶ月1ページでデータを作れるようにしなさい

管理

多次元表現可能な表から任意の平面部分を抜き出しなさい

管理

カレンダーに日別ページへのリンクをつけなさい

管理

こんばんは。sseではお世話になってます。おもしろそうなので挑戦してみました。 - hirofummy

シンプル版

SuMoTuWeThFrSa
******01?
02?03?04?05?06?07?08?
09?10?11?12?13?14?15?
16?17?18?19?20?21?22?
23?24?25?26?27?28?29?
30?31?

今日の日付が太字版

SuMoTuWeThFrSa
******01?
02?03?04?05?06?07?08?
09?10?11?12?13?14?15?
16?17?18?19?20?21?22?
23?24?25?26?27?28?29?
30?31?

どもども。いかにも「関数にして下さい」といわんばかりの作りがいいですねー。(笑) --SHIMADA 2003-07-25 (Fri) 11:36:21

う、見透かされてしまいました。ところで書き込んだ日付を埋め込む?にはどうしたらいいのでしょうか。 -- hirofummy 2003-07-25 (Fri) 21:21頃

{{now}} と記入すればいいらしいです。(←はエスケープしてます)。 --SHIMADA 2003-07-25 (Fri) 22:02:34

なるほど、ありがとうございます。 --hirofummy 2003-07-25 (Fri) 22:35:13

#((lambda ($prefix $year-month)
    (let (($year-month (list (head 2 (split '-' $year-month))))
          ($format (pa sprintf '%04d-%02d-%02d'))
          ($today? (pa eq (today)))
          ($make-link (pa sprintf (cat '[[%s ' $prefix '/%s]]'))))
      (tabulate
        7
        (bold Su Mo Tu We Th Fr Sa)
        (repeat-times (day-of-week $year-month 1) '*')
        (map (lambda ($day)
               (let (($year-month-day ($format $year-month $day)))
                 (let (($link ($make-link $day $year-month-day)))
                   (if ($today? $year-month-day) (bold $link) $link))))
             (from-to 1 (last-days $year-month))))))
  CalTest (today))

こちらも修正。 --hirofummy 2003-08-20 (Wed) 20:27:19

tag-linksを使った予定表

管理
ちょいと挑戦してみました…こんな感じ?>ricaさん -たろう 2003-08-19 (Tue) 15:15:24

SuMoTuWeThFrSa
******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

あれぇぇ。できるのぉぉ!? 前にちょっと考えてみたときに、なんか一応理由があって、現在の tag-links だと無理って思ったんだけど…(理由はもう忘れた)。- rica 2003-08-19 (Tue) 15:49:16

理由を思い出したけど、すごい勘違いだった事が判明…。- rica 2003-08-19 (Tue) 15:53:52

あ、tag-links って、このページ内に書いたのはダメなんでしたっけ? てすと。

2003-08-31: リナザウを買わない。

先頭10文字(半角)切り出し版

管理
全角文字が半分にされて文字化けすることがあったりします。あとリンクがありません… -たろう 2003-08-20 (Wed) 13:54:36

SuMoTuWeThFrSa
******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

週間表示版

管理
これはきっとお祭りだと思うので参加します。 --hirofummy 2003-08-20 (Wed) 16:21:30

日付内容
2021-05-16
2021-05-17
2021-05-18
2021-05-19
2021-05-20
2021-05-21
2021-05-22

複合版

管理
日付内容
2021-05-16?
2021-05-17?
2021-05-18?
2021-05-19?
2021-05-20?
2021-05-21?
2021-05-22?

う、微妙に衝突を起こしたような。内容が失われていなければいいのですが。 --hirofummy 2003-08-20 (Wed) 16:41:31

SuMoTuWeThFrSa
******01?
02?
03?
04?
05?
06?
07?
08?
09?
10?
11?
12?
13?
14?
15?
16?
17?
18?
19?
20?
21?
22?
23?
24?
25?
26?
27?
28?
29?
30?
31?

なんだかとってつけたように増築しているから、ソースが汚い(T_T) -たろう 2003-08-20 (Wed) 16:53:30

#((lambda ($prefix $year-month)
    (let (($str-head (lambda ($str $len) (cat (head $len (split '' $str)))))
          ($year-month (list (head 2 (split '-' $year-month))))
          ($format (pa sprintf '%04d-%02d-%02d'))
          ($today? (pa eq (today)))
          ($make-link (pa sprintf (cat '[[%s ' $prefix '/%s]]'))))
      (tabulate
        7
        (bold Su Mo Tu We Th Fr Sa)
        (repeat-times (day-of-week $year-month 1) '*')
        (map (lambda ($day)
               (let (($year-month-day ($format $year-month $day)))
                 (join (br)
                       (let (($link ($make-link $day $year-month-day)))
                         (if ($today? $year-month-day) (bold $link) $link))
                       (map (lambda ($str)
                              ($str-head (replace '\[\[.*\]\]' '' $str) 10))
                            (sort (tag-links $year-month-day))))))
             (from-to 1 (last-days $year-month))))))
  CalTest (today))

こんなのはどうでしょうか。 --hirofummy 2003-08-20 (Wed) 18:40:33

少し修正しました。 --hirofummy 2003-08-20 (Wed) 19:31:41

ああ、すばらしい(T_T)感涙…さすが、hirofummy兄さん…っていうか、lambdaとletを組み合わせて、簡易処理をまとめておくなんて技、すっかり忘れていました… -たろう 2003-08-20 (Wed) 20:03:48

最初は内部defにしようと思ったのですが、説明文を書くのが面倒という情けない理由でletとlambdaの組み合わせと相成りました。 --hirofummy 2003-08-20 (Wed) 21:39:42