OSDN Git Service

start
[hmh/wiki.git] / lib-wikifunc.ml
1 (defun-wiki-inline2 page (text page target name1 value1 name2 value2)
2         (set-wikivar 'text 'page 'target)
3         (motor-raw "[[link:../../wiki.hml/[[Proj]]/[[page]]")
4         (if name1
5                 (progn  (setvar 'wiki_name1 name1
6                                 'wiki_value1 value1)
7                         (motor-raw "?[[name1]]=[[value1]]")))
8         (if name2
9                 (progn  (setvar 'wiki_name2 name2
10                                 'wiki_value2 value2)
11                         (motor-raw "&[[name2]]=[[value2]]")))
12         (if (not-emptyp target)
13                         (motor-raw ":[[target]]"))
14         (if text
15                         (motor-raw " [[text]]]]")
16                 (motor-raw " [[page]]]]")))
17
18 (defun-wiki-inline2 proj (text proj page target name1 value1 name2 value2)
19         (setvar 'wiki_text text
20                 'wiki_proj proj
21                 'wiki_page page
22                 'wiki_target target)
23         (motor-raw "[[link:../../wiki.hml/[[proj]]/[[page]]")
24         (if name1
25                 (progn  (setvar 'wiki_name1 name1
26                                 'wiki_value1 value1)
27                         (motor-raw "?[[name1]]=[[value1]]")))
28         (if name2
29                 (progn  (setvar 'wiki_name2 name2
30                                 'wiki_value2 value2)
31                         (motor-raw "&[[name2]]=[[value2]]")))
32         (if (not-emptyp target)
33                         (motor-raw ":[[target]]"))
34         (if text
35                         (motor-raw " [[text]]]]")
36                 (motor-raw "]]")))
37
38 (defun-wiki-inline2 imagefile (alt name)
39         (setvar 'wiki_alt alt
40                 'wiki_name name)
41         (motor-raw "[[image:../../file.hml?Proj=[[Proj]]&Filename=[[name]]:class=frame [[alt]]]]")
42 )
43
44 (defun-wiki-inline2 filelink (text name target)
45         (setvar 'wiki_text text
46                         'wiki_name name
47                         'wiki_target target)
48         (cond (
49                         (emptyp target)
50                         (if (not-emptyp text)
51                                         (motor-raw "[[link:../../file.hml?Proj=[[Proj]]&Filename=[[name]] [[text]]]]")
52                                 (motor-raw "[[link:../../file.hml?Proj=[[Proj]]&Filename=[[name]]]]")
53                         )
54                 )
55                 (       1
56                         (if (not-emptyp text)
57                                         (motor-raw "[[link:../../file.hml?Proj=[[Proj]]&Filename=[[name]]:[[target]] [[text]]]]")
58                                 (motor-raw "[[link:../../file.hml?Proj=[[Proj]]&Filename=[[name]]:[[target]]]]")
59                         )
60                 )
61         )
62 )
63
64 (defun-wiki-link ShowLogin ()
65         (motor-raw "showLogin();")
66 )
67
68 (defun-wiki-link GotoPage (page)
69         (if page
70                         (motor-raw (concat "gotoPage('" (js page) "');"))
71                 (motor-raw "gotoPage(Page);")
72         )
73 )
74
75 (defun-wiki-link EditPage (page)
76         (if page
77                         (motor-raw (concat "gotoPage('" (js page) "',{'Edit':'1'});"))
78                 (motor-raw "gotoPage(Page,{'Edit':'1'});")
79         )
80 )
81
82 (defun-wiki-link Logout ()
83         (motor-raw "opLogout();")
84 )
85
86 (defun-wiki-command PageIndex (vpage vtitle)
87         (wiki-page-index nil (wikivar vpage) (wikivar vtitle))
88 )
89
90 (defun-wiki-command PageIndexCategory (cat vpage vtitle)
91         (wiki-page-index cat (wikivar vpage) (wikivar vtitle))
92 )
93
94 (defun-wiki-command PageIndexSpecial (vpage vtitle)
95         (wiki-page-index-special (wikivar vpage) (wikivar vtitle))
96 )
97
98 (defun-wiki-command CategoryIndex (vname)
99         (wiki-category-index (wikivar vname))
100 )
101
102 (defun-wiki-command AddCategory (cat)
103         (if Writer
104                         (wiki-add-category cat)
105         )
106 )
107
108 (defun-wiki-command DelCategory (cat)
109         (if Writer
110                 ($sqlite3 'database
111                         (sql "begin")
112                         (sql "delete from WikiCategory where CID in (select CID from CategoryList where PID=:pid and CName=:cat)"
113                                 :bind ':pid PID ':cat cat)
114                         (sql "delete from CategoryList where PID=:pid and CName=:cat"
115                                 :bind ':pid PID ':cat cat)
116                         (sql "end")
117                 )
118         )
119 )