38 lines
947 B
Factor
38 lines
947 B
Factor
|
! Copyright (C) 2009 Slava Pestov.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: parser arrays namespaces sequences random help.markup kernel io
|
||
|
io.styles colors.constants ;
|
||
|
IN: help.tips
|
||
|
|
||
|
SYMBOL: tips
|
||
|
|
||
|
tips [ V{ } clone ] initialize
|
||
|
|
||
|
SYNTAX: TIP: parse-definition >array tips get push ;
|
||
|
|
||
|
: a-tip ( -- tip ) tips get random ;
|
||
|
|
||
|
SYMBOL: tip-of-the-day-style
|
||
|
|
||
|
H{
|
||
|
{ page-color COLOR: lavender }
|
||
|
{ border-width 5 }
|
||
|
{ wrap-margin 500 }
|
||
|
} tip-of-the-day-style set-global
|
||
|
|
||
|
: $tip-of-the-day ( element -- )
|
||
|
drop
|
||
|
[
|
||
|
tip-of-the-day-style get
|
||
|
[
|
||
|
last-element off
|
||
|
"Tip of the day" $heading a-tip print-element nl
|
||
|
"— " print-element "all-tips-of-the-day" ($link)
|
||
|
]
|
||
|
with-nesting
|
||
|
] ($heading) ;
|
||
|
|
||
|
: tip-of-the-day. ( -- ) { $tip-of-the-day } print-content nl ;
|
||
|
|
||
|
: $tips-of-the-day ( element -- )
|
||
|
drop tips get [ nl nl ] [ print-element ] interleave ;
|