summaryrefslogtreecommitdiff
path: root/gwblog.bas
blob: afd34a0256d24776b407a2adb4223e9b35307a7e (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
10 REM ========================
11 REM The path to the blog
12 REM should be stored in
13 REM SITEDIR$.  This string
14 REM is auto-assigned by the
15 REM calling batch file
16 REM GO.BAT
17 REM ========================
20 REM
30 IF RIGHT$(SITEDIR$,1) = "\" THEN SITEDIR$ = LEFT$(SITEDIR$, LEN(SITEDIR$)-1)
500 REM =======================
501 REM Startup Code
502 REM =======================
509 REM Retrieve the current directory and configure subs
510 IF LEN(SITEDIR$) = 0 THEN GOSUB 15500 ELSE CURDIR$ = SITEDIR$
520 PAGEDIR$ = CURDIR$ + "\PAGES"
530 POSTDIR$ = CURDIR$ + "\POSTS"
540 STATICDIR$ = CURDIR$ + "\STATIC"
550 HDRFILE$ = CURDIR$ + "\POSTHDR.HTM"
560 FTRFILE$ = CURDIR$ + "\POSTFTR.HTM"
570 DESTDIR$ = CURDIR$ + "\BUILD"
580 IF LFN = 1 THEN HTMLEXT$ = "html" ELSE HTMLEXT$ = "htm"
700 REM =======================
701 REM Disk scanning
702 REM =======================

710 REM Scan pages first
720 DIREC$ = PAGEDIR$ + "\*.TXT"
730 GOSUB 15000
735 DIREC$ = PAGEDIR$
740 GOSUB 16000
750 DIM PAGES$[LC],PAGETIT$[LC]
760 PAGECNT=LC
770 FOR I=1 TO LC:PAGES$[I] = SFL$[I]:PAGETIT$[I] = TIT$[I]:NEXT I 

780 REM Scan posts
790 DIREC$ = POSTDIR$ + "\*.TXT"
800 GOSUB 15000
805 DIREC$ = POSTDIR$
810 GOSUB 16000
820 DIM POSTS$[LC],POSTTIT$[LC]
830 POSTCNT=LC
840 FOR I=1 TO LC:POSTS$[I] = SFL$[I]:POSTTIT$[I] = TIT$[I]:NEXT I 

850 PRINT "Processing";PAGECNT;" pages and";POSTCNT;" posts..."

900 REM =======================
901 REM Prepare template data
902 REM =======================
905 ILBL = 8:GOSUB 24000
910 DIM LBL$[ILBL+CFGCNT], REPL$[ILBL+CFGCNT]
915 LBL$[1] = "title":REPL$[1] = "Blog!"
920 LBL$[2] = "next":REPL$[2] = ""
925 LBL$[3] = "previous":REPL$[3] = ""
930 LINKURL$ = POSTS$[POSTCNT]:LINKLBL$="Latest Post":GOSUB 19000
935 LBL$[4] = "latest":REPL$[4] = LINKHTML$
940 URLCOUNT = PAGECNT:DIM URLS$[URLCOUNT], LBLS$[URLCOUNT]
945 FOR I = 1 TO URLCOUNT:URLS$[I] = PAGES$[I]:LBLS$[I] = PAGETIT$[I]:NEXT I
950 GOSUB 19100
955 ERASE URLS$, LBLS$
960 LBL$[5] = "pages":REPL$[5] = HTMLLST$
965 LBL$[6] = "date":REPL$[6] = ""
970 LBL$[7] = "postlist":REPL$[7] = "<a href='allposts.htm'>All Posts</a>"
975 LBL$[8] = "rss":REPL$[8] = "<a href='posts.rss'>RSS Feed</a>"
980 GOSUB 24100
990 ILBL = ILBL + CFGCNT

1000 REM ======================
1001 REM Process pages
1000 REM ======================
1120 FOR FINDEX = 1 TO PAGECNT
1125     PRINT "Processing ";PAGES$[FINDEX];"..."
1130     TFILE$ = PAGEDIR$ + "\" + PAGES$[FINDEX]
1135     PTITL$ = PAGETIT$[FINDEX]
1140     OUTFILE$ = DESTDIR$ + "\" + LEFT$(PAGES$[FINDEX], LEN(PAGES$[FINDEX])-3) + HTMLEXT$
1150     GOSUB 6000
1160 NEXT FINDEX
1200 REM ======================
1201 REM Process posts
1202 REM ======================
1205 ERASE SFL$,TIT$
1210 DIM SFL$[POSTCNT], TIT$[POSTCNT]
1215 FOR I = 1 TO POSTCNT:SFL$[I] = POSTS$[I]:TIT$[I] = POSTTIT$[I]:NEXT I
1217 LC = POSTCNT
1220 FOR FINDEX = 1 TO POSTCNT
1225     PRINT "Processing ";POSTS$[FINDEX];"..."
1230     DIREC$ = POSTDIR$
1240     OUTFILE$ = DESTDIR$ + "\" + LEFT$(POSTS$[FINDEX], LEN(POSTS$[FINDEX])-3) + HTMLEXT$
1250     GOSUB 5000
1260 NEXT FINDEX
1300 REM ======================
1301 REM Deploy static files
1302 REM ======================
1305 PRINT "Deploying static files..."
1310 SRCD$ = STATICDIR$
1320 DESTD$ = DESTDIR$ + "\STATIC"
1330 SHELL "MKDIR "+DESTD$
1340 GOSUB 21000
1400 REM ======================
1401 REM Index page
1402 REM ======================
1410 SRCD$ = DESTDIR$ + "\" + LEFT$(POSTS$[POSTCNT], LEN(POSTS$[POSTCNT])-3) + HTMLEXT$
1420 DESTD$ = DESTDIR$ + "\INDEX." + HTMLEXT$
1430 PRINT "Creating index.htm from latest post..."
1440 SHELL "COPY "+SRCD$+" "+DESTD$
1500 REM ======================
1501 REM List of all posts
1502 REM ======================
1505 PRINT "Generating a list of posts..."
1510 PTITL$ = "All Posts"
1520 TFILE$ = "allposts.tmp"
1530 OPEN TFILE$ FOR OUTPUT AS #9
1540 PRINT#9, "h1. List of All Posts"
1545 PRINT#9, ""
1550 FOR FINDEX = POSTCNT TO 1 STEP -1
1560     DT$ = LEFT$(POSTS$[FINDEX],4) + "-" + MID$(POSTS$[FINDEX],5,2) + "-" + MID$(POSTS$[FINDEX],7,2)
1570     LBL$ = POSTTIT$[FINDEX] + " (" + DT$ + ")"
1580     PRINT#9, "* ";CHR$(34);LBL$;CHR$(34);":";LEFT$(POSTS$[FINDEX], 8);".htm  "
1590 NEXT FINDEX
1600 PRINT#9, ""
1605 CLOSE#9
1610 OUTFILE$ = DESTDIR$ + "\ALLPOSTS." + HTMLEXT$
1620 GOSUB 6000
1630 SHELL "DEL "+TFILE$
1700 PRINT "Creating an RSS feed..."
1710 GOSUB 8000
1990 PRINT "Site Generation Complete."
1998 SYSTEM
1999 END